efl_ui: remove nstate widget

Summary:
this doesn't seem to serve a purpose anymore and there's no point in
keeping it in tree

fix T7866

Reviewers: woohyun, Jaehyun_Cho

Reviewed By: Jaehyun_Cho

Subscribers: cedric, #reviewers, #committers

Tags: #efl_widgets

Maniphest Tasks: T7866

Differential Revision: https://phab.enlightenment.org/D9176
This commit is contained in:
Mike Blumenkrantz 2019-06-26 09:55:41 -04:00
parent e962e6be4f
commit 0e65d0c651
18 changed files with 12 additions and 343 deletions

View File

@ -173,7 +173,6 @@ collections {
#include "edc/efl/calendar.edc"
#include "edc/efl/navigation_bar.edc"
#include "edc/efl/navigation_layout.edc"
#include "edc/efl/nstate.edc"
// XXX: mobile mode needs invisible scrollers... make signals that do this
#include "edc/efl/scroller.edc"
#include "edc/efl/list.edc"

View File

@ -1,10 +0,0 @@
group { "efl/nstate";
inherit: "efl/button";
programs {
program {
signal: "mouse,clicked,1"; source: "event";
action: SIGNAL_EMIT "efl,action,state,changed" "efl";
}
}
}

View File

@ -94,7 +94,6 @@ elementary_test_src = [
'test_naviframe.c',
'test_naviframe_complex.c',
'test_notify.c',
'test_nstate.c',
'test_panel.c',
'test_panes.c',
'test_ui_panes.c',

View File

@ -55,7 +55,6 @@ void test_clock_pause(void *data, Evas_Object *obj, void *event_info);
void test_combobox(void *data, Evas_Object *obj, void *event_info);
void test_check(void *data, Evas_Object *obj, void *event_info);
void test_check_toggle(void *data, Evas_Object *obj, void *event_info);
void test_nstate(void *data, Evas_Object *obj, void *event_info);
void test_radio(void *data, Evas_Object *obj, void *event_info);
void test_layout(void *data, Evas_Object *obj, void *event_info);
void test_layout2(void *data, Evas_Object *obj, void *event_info);
@ -1109,7 +1108,6 @@ add_tests:
ADD_TEST(NULL, "Range Values", "Progressbar", test_progressbar);
ADD_TEST(NULL, "Range Values", "Progressbar 2", test_progressbar2);
ADD_TEST_EO(NULL, "Range Values", "Efl.Ui.Progressbar", test_ui_progressbar);
ADD_TEST_EO(NULL, "Range Values", "Efl.Ui.Nstate", test_nstate);
ADD_TEST_EO(NULL, "Range Values", "Efl.Ui.Slider", test_ui_slider);
ADD_TEST_EO(NULL, "Range Values", "Efl.Ui.Slider_Interval", test_slider_interval);

View File

@ -1,34 +0,0 @@
#ifdef HAVE_CONFIG_H
# include "elementary_config.h"
#endif
#include <Efl_Ui.h>
#include <Elementary.h>
static void
_state_changed_cb(void *data EINA_UNUSED, const Efl_Event *ev)
{
int val = efl_ui_nstate_value_get(ev->object);
efl_text_set(ev->object, eina_slstr_printf("nstate = %d", val));
}
void
test_nstate(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Evas_Object *win, *bx, *nstate;
win = efl_add_ref(EFL_UI_WIN_CLASS, NULL,
efl_text_set(efl_added, "N-state widget"),
elm_win_autodel_set(efl_added, EINA_TRUE));
bx = efl_add(EFL_UI_BOX_CLASS, win);
efl_content_set(win, bx);
nstate = efl_add(EFL_UI_NSTATE_CLASS, win);
efl_event_callback_add(nstate, EFL_UI_NSTATE_EVENT_CHANGED,
_state_changed_cb, NULL);
efl_ui_nstate_count_set(nstate, 5);
efl_text_set(nstate, "nstate = 0");
efl_pack(bx, nstate);
efl_gfx_entity_size_set(win, EINA_SIZE2D(120, 80));
}

View File

@ -4,7 +4,7 @@
#include <Efl_Ui.h>
#include <Elementary.h>
#define MAX_NUM_OF_CONTENT 18
#define MAX_NUM_OF_CONTENT 17
const Efl_Class *content_class[MAX_NUM_OF_CONTENT];
@ -143,9 +143,8 @@ test_part_background(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void
content_class[12] = EFL_UI_BG_CLASS;
content_class[13] = EFL_UI_IMAGE_CLASS;
content_class[14] = EFL_UI_IMAGE_ZOOMABLE_CLASS;
content_class[15] = EFL_UI_NSTATE_CLASS;
content_class[16] = EFL_UI_SPIN_CLASS;
content_class[17] = EFL_UI_SPIN_BUTTON_CLASS;
content_class[15] = EFL_UI_SPIN_CLASS;
content_class[16] = EFL_UI_SPIN_BUTTON_CLASS;
win = efl_add_ref(EFL_UI_WIN_CLASS, NULL,
efl_text_set(efl_added, "Widget Part Background"),

View File

@ -456,7 +456,7 @@ _animation_cb(void *data, const Efl_Event *ev)
{
Params *params = data;
efl_ui_active_view_view_manager_animation_enabled_set(efl_ui_active_view_manager_get(params->active_view), efl_ui_nstate_value_get(ev->object));
efl_ui_active_view_view_manager_animation_enabled_set(efl_ui_active_view_manager_get(params->active_view), efl_ui_check_selected_get(ev->object));
}
static void
@ -478,8 +478,8 @@ view_animation_cb(void *data,
efl_added, NULL));
ck = efl_add(EFL_UI_CHECK_CLASS, box);
efl_event_callback_add(ck, EFL_UI_NSTATE_EVENT_CHANGED, _animation_cb, params);
efl_ui_nstate_value_set(ck, efl_ui_active_view_view_manager_animation_enabled_get(efl_ui_active_view_manager_get(params->active_view)));
efl_event_callback_add(ck, EFL_UI_CHECK_EVENT_SELECTED_CHANGED, _animation_cb, params);
efl_ui_check_selected_set(ck, efl_ui_active_view_view_manager_animation_enabled_get(efl_ui_active_view_manager_get(params->active_view)));
efl_text_set(ck, "Animation");
efl_pack_end(box, ck);
efl_gfx_entity_visible_set(ck, 1);

View File

@ -114,7 +114,7 @@ test_ui_panel2(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event
check = efl_add(EFL_UI_CHECK_CLASS, box);
efl_ui_check_selected_set(check, elm_config_scroll_thumbscroll_enabled_get());
efl_text_set(check, "Enable thumb scroll (temporarily");
efl_event_callback_add(check, EFL_UI_NSTATE_EVENT_CHANGED, _check_changed, NULL);
efl_event_callback_add(check, EFL_UI_CHECK_EVENT_SELECTED_CHANGED, _check_changed, NULL);
efl_gfx_hint_weight_set(check, EVAS_HINT_EXPAND, 0);
efl_pack(box, check);

View File

@ -33,7 +33,7 @@ efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
auto cb_val = std::bind([bx] (efl::ui::Radio &obj EINA_UNUSED)
{ std::cout << "val is now: " << bx.selected_value_get() << std::endl; },
std::placeholders::_1);
efl::eolian::event_add(efl::ui::Nstate::changed_event, radio, cb_val);
efl::eolian::event_add(efl::ui::Radio_Group::value_changed_event, radio, cb_val);
efl::ui::Radio radio2(instantiate, win);
radio2.text_set("Radio 2");
@ -43,18 +43,18 @@ efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
ic2.icon_set("file");
radio2.content_set(ic2);
bx.pack_end(radio2);
efl::eolian::event_add(efl::ui::Nstate::changed_event, radio2, cb_val);
efl::eolian::event_add(efl::ui::Radio_Group::value_changed_event, radio2, cb_val);
efl::ui::Radio radio3(instantiate, win);
radio3.text_set("Radio 3");
radio3.state_value_set(3);
bx.pack_end(radio3);
efl::eolian::event_add(efl::ui::Nstate::changed_event, radio3, cb_val);
efl::eolian::event_add(efl::ui::Radio_Group::value_changed_event, radio3, cb_val);
efl::ui::Radio radio4(instantiate, win);
radio4.text_set("Radio 4");
radio4.state_value_set(4);
bx.pack_end(radio4);
efl::eolian::event_add(efl::ui::Nstate::changed_event, radio4, cb_val);
efl::eolian::event_add(efl::ui::Radio_Group::value_changed_event, radio4, cb_val);
}
EFL_MAIN()

View File

@ -207,7 +207,6 @@ EAPI void efl_ui_focus_relation_free(Efl_Ui_Focus_Relations *rel);
# include <efl_ui_clock.h>
# include <efl_ui_image_factory.eo.h>
# include <efl_ui_video.h>
# include <efl_ui_nstate.h>
# include <efl_ui_calendar.h>
# include <efl_ui_button_eo.h>

View File

@ -249,7 +249,6 @@ typedef Eo Efl_Ui_Focus_Manager;
#include <elm_mirroring.h>
#include <elm_need.h>
#include <elm_notify.h>
#include <efl_ui_nstate.h>
#include <elm_object.h>
#include <elm_panel.h>

View File

@ -5,7 +5,6 @@
#define EFL_ACCESS_OBJECT_PROTECTED
#define EFL_ACCESS_WIDGET_ACTION_PROTECTED
#define ELM_LAYOUT_PROTECTED
#define EFL_UI_NSTATE_PROTECTED
#define EFL_PART_PROTECTED
#include <Elementary.h>

View File

@ -1,155 +0,0 @@
#ifdef HAVE_CONFIG_H
# include "elementary_config.h"
#endif
#define EFL_UI_NSTATE_PROTECTED
#include "Elementary.h"
#include "elm_priv.h"
#include "efl_ui_nstate.eo.h"
#include "efl_ui_button_private.h"
#include "efl_ui_nstate_private.h"
#define MY_CLASS EFL_UI_NSTATE_CLASS
#define MY_CLASS_NAME "Efl.Ui.Nstate"
static Eina_Bool _key_action_activate(Evas_Object *obj, const char *params);
static void _state_active(Evas_Object *obj, Efl_Ui_Nstate_Data *sd);
static const Elm_Action key_actions[] = {
{"activate", _key_action_activate},
{NULL, NULL}
};
static void
_on_state_changed(void *data,
Evas_Object *o EINA_UNUSED,
const char *emission EINA_UNUSED,
const char *source EINA_UNUSED)
{
efl_ui_nstate_activate(data);
}
EOLIAN static Efl_Object *
_efl_ui_nstate_efl_object_constructor(Eo *obj, Efl_Ui_Nstate_Data *pd)
{
if (!elm_widget_theme_klass_get(obj))
elm_widget_theme_klass_set(obj, "nstate");
obj = efl_constructor(efl_super(obj, MY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME);
pd->state = 0;
// Default: 2 states
pd->nstate = 2;
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL);
efl_layout_signal_callback_add
(wd->resize_obj, "efl,action,state,changed", "*", obj, _on_state_changed, NULL);
//TODO: Add ATSPI call here
return obj;
}
static void
_next_state_set(Efl_Ui_Nstate_Data *sd)
{
++sd->state;
if (sd->state == sd->nstate) sd->state = 0;
}
static void
_state_signal_emit(Evas_Object *obj, Efl_Ui_Nstate_Data *sd)
{
char buf[64];
sprintf(buf, "efl,state,changed,%d", sd->state);
elm_layout_signal_emit(obj, buf, "efl");
edje_object_message_signal_process(elm_layout_edje_get(obj));
elm_layout_sizing_eval(obj);
}
static void
_state_active(Evas_Object *obj, Efl_Ui_Nstate_Data *sd)
{
_state_signal_emit(obj, sd);
efl_event_callback_legacy_call(obj, EFL_UI_NSTATE_EVENT_CHANGED, NULL);
}
EOLIAN static int
_efl_ui_nstate_count_get(const Eo *obj EINA_UNUSED, Efl_Ui_Nstate_Data *pd)
{
return pd->nstate;
}
EOLIAN static void
_efl_ui_nstate_count_set(Eo *obj EINA_UNUSED, Efl_Ui_Nstate_Data *pd, int nstate)
{
if (pd->nstate == nstate) return;
pd->nstate = nstate;
pd->state = 0;
}
EOLIAN static int
_efl_ui_nstate_value_get(const Eo *obj EINA_UNUSED, Efl_Ui_Nstate_Data *pd)
{
return pd->state;
}
static Eina_Bool
_is_valid_state(Efl_Ui_Nstate_Data *sd, int state)
{
if (sd->state == state || (state < 0 || state >= sd->nstate))
return EINA_FALSE;
return EINA_TRUE;
}
EOLIAN static void
_efl_ui_nstate_value_set(Eo *obj, Efl_Ui_Nstate_Data *pd, int state)
{
if (!_is_valid_state(pd, state)) return;
pd->state = state;
_state_active(obj, pd);
}
EOLIAN static Eina_Error
_efl_ui_nstate_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Nstate_Data *pd)
{
Eina_Error int_ret = EFL_UI_THEME_APPLY_ERROR_GENERIC;
int_ret = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
if (int_ret == EFL_UI_THEME_APPLY_ERROR_GENERIC) return int_ret;
_state_signal_emit(obj, pd);
return int_ret;
}
static Eina_Bool
_key_action_activate(Evas_Object *obj, const char *params EINA_UNUSED)
{
efl_ui_nstate_activate(obj);
return EINA_TRUE;
}
EOLIAN static void
_efl_ui_nstate_activate(Eo *obj, Efl_Ui_Nstate_Data *_pd)
{
_next_state_set(_pd);
_state_active(obj, _pd);
}
EOLIAN static void
_efl_ui_nstate_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME, klass);
}
/* Standard widget overrides */
ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_nstate, Efl_Ui_Nstate_Data)
#include "efl_ui_nstate.eo.c"

View File

@ -1,39 +0,0 @@
class @beta Efl.Ui.Nstate extends Efl.Ui.Button
{
[[Efl UI nstate class]]
methods {
activate @protected {
[[Activate widget]]
}
@property count {
[[Maximum number of states]]
set {
}
get {
}
values {
nstate: int; [[The number of states.]]
}
}
@property value {
set {
[[Set the particular state given in (0...nstate}.]]
}
get {
[[Get the state value.]]
}
values {
state: int; [[The state.]]
}
}
}
implements {
class.constructor;
Efl.Object.constructor;
Efl.Ui.Widget.theme_apply;
Efl.Ui.Widget.widget_input_event_handler;
}
events {
changed: void; [[Called when the value changed.]]
}
}

View File

@ -1,24 +0,0 @@
/**
* @defgroup Elm_Nstate Nstate
* @ingroup Elementary
*
* @image html nstate_inheritance_tree.png
* @image latex nstate_inheritance_tree.eps
*
* @image html img/widget/nstate/preview-00.png
* @image latex img/widget/nstate/preview-00.eps
*
* A Nstate is a widget which displays one of the state among states defined by user.
*
* This widget inherits from the @ref Button, so that all the functions acting on @ref Button also work for nstate objects.
*
* This widget emits the following signals, besides the ones sent from
* @ref Button:
* - @c "state,changed" - whenever state of nstate is changed
*
* Default content parts of the nstate widget that you can use are the
* the same that you use with the @ref Button
* @{
*/
#include "efl_ui_nstate.eo.h"

View File

@ -1,57 +0,0 @@
#ifndef EFL_UI_NSTATE_PRIVATE_H
#define EFL_UI_NSTATE_PRIVATE_H
#include "Elementary.h"
/* DO NOT USE THIS HEADER UNLESS YOU ARE PREPARED FOR BREAKING OF YOUR
* CODE. THIS IS ELEMENTARY'S INTERNAL WIDGET API (for now) AND IS NOT
* FINAL. CALL elm_widget_api_check(ELM_INTERNAL_API_VERSION) TO CHECK
* IT AT RUNTIME.
*/
/**
* @addtogroup Widget
* @{
*
* @section efl-ui-nstate-class The Efl Ui Nstate Class
*
*/
/**
* Base widget smart data extended with nstate instance data.
*/
typedef struct _Efl_Ui_Nstate_Data
{
int nstate;
int state;
} Efl_Ui_Nstate_Data;
/**
* @}
*/
#define EFL_UI_NSTATE_DATA_GET(o, sd) \
Efl_Ui_Nstate_Data * sd = efl_data_scope_get(o, EFL_UI_NSTATE_CLASS)
#define EFL_UI_NSTATE_DATA_GET_OR_RETURN(o, ptr) \
EFL_UI_NSTATE_DATA_GET(o, ptr); \
if (EINA_UNLIKELY(!ptr)) \
{ \
ERR("No widget data for object %p (%s)", \
o, evas_object_type_get(o)); \
return; \
}
#define EFL_UI_NSTATE_DATA_GET_OR_RETURN_VAL(o, ptr, val) \
EFL_UI_NSTATE_DATA_GET(o, ptr); \
if (EINA_UNLIKELY(!ptr)) \
{ \
ERR("No widget data for object %p (%s)", \
o, evas_object_type_get(o)); \
return val; \
}
#define EFL_UI_NSTATE_CHECK(obj) \
if (EINA_UNLIKELY(!efl_isa((obj), EFL_UI_NSTATE_CLASS))) \
return;
#endif

View File

@ -235,7 +235,7 @@ _elm_dayselector_content_set(Eo *obj, Elm_Dayselector_Data *sd, const char *item
char buf[1024];
Elm_Dayselector_Item_Data *it = NULL;
EINA_SAFETY_ON_FALSE_RETURN_VAL(efl_isa(content, EFL_UI_NSTATE_CLASS), EINA_FALSE);
EINA_SAFETY_ON_FALSE_RETURN_VAL(efl_isa(content, EFL_UI_CHECK_CLASS), EINA_FALSE);
if (!item) return EINA_FALSE;
day = atoi(item + (strlen(item) - 1));

View File

@ -49,7 +49,6 @@ pub_eo_files = [
'efl_ui_image_zoomable.eo',
'efl_ui_layout.eo',
'efl_ui_layout_base.eo',
'efl_ui_nstate.eo',
'efl_ui_navigation_bar.eo',
'efl_ui_navigation_bar_part.eo',
'efl_ui_navigation_bar_part_back_button.eo',
@ -372,7 +371,6 @@ elementary_headers_unstable = [
'efl_ui_widget_scroller.h',
'efl_ui_widget_scroll_manager.h',
'efl_ui_widget_pan.h',
'efl_ui_nstate_private.h',
'Efl_Ui.h',
'efl_ui_tab_pager_private.h',
'efl_ui_tab_bar_private.h',
@ -514,7 +512,6 @@ elementary_pub_headers = [
'elm_notify.h',
'elm_notify_common.h',
'elm_notify_legacy.h',
'efl_ui_nstate.h',
'elm_object.h',
'elm_object_item.h',
'elm_panel.h',
@ -806,7 +803,6 @@ elementary_src = [
'elm_menu.c',
'elm_module.c',
'elm_notify.c',
'efl_ui_nstate.c',
'elm_panel.c',
'efl_ui_panes.c',
'elm_photo.c',