From 35b714e9f9ae117549766f09a489eef585c3ad6d Mon Sep 17 00:00:00 2001 From: Anuj Asher Date: Thu, 10 May 2018 13:02:43 +0530 Subject: [PATCH] Rearrange structures to reduce padding Change-Id: I46c766e9bbc755f07c9aea649c165395d6361ce0 Signed-off-by: Anuj Asher --- src/lib/elm_priv.h | 128 ++++++++++++------------ src/lib/elm_widget.h | 8 +- src/lib/elm_widget_check.h | 2 +- src/lib/elm_widget_conform.h | 24 ++--- src/lib/elm_widget_datetime.h | 6 +- src/lib/elm_widget_entry.h | 26 ++--- src/lib/elm_widget_image.h | 18 ++-- src/lib/elm_widget_index.h | 6 +- src/lib/elm_widget_panel.h | 2 +- src/lib/elm_widget_popup.h | 14 +-- src/lib/elm_widget_progressbar.h | 12 +-- src/lib/elm_widget_radio.h | 4 +- src/lib/elm_widget_spinner.h | 4 +- src/mobile_lib/elm_widget_ctxpopup.h | 14 +-- src/mobile_lib/elm_widget_genlist.h | 139 ++++++++++++++------------- 15 files changed, 206 insertions(+), 201 deletions(-) diff --git a/src/lib/elm_priv.h b/src/lib/elm_priv.h index 5d2266aa9..1dc9e5180 100644 --- a/src/lib/elm_priv.h +++ b/src/lib/elm_priv.h @@ -191,16 +191,7 @@ extern const char *_elm_engines[]; struct _Elm_Config { - int config_version; - const char *engine; - const char *accel; - unsigned char accel_override; - unsigned char vsync; - unsigned char thumbscroll_enable; - int thumbscroll_threshold; - int thumbscroll_hold_threshold; double thumbscroll_momentum_threshold; - int thumbscroll_flick_distance_tolerance; double thumbscroll_friction; double thumbscroll_min_friction; double thumbscroll_friction_standard; @@ -211,16 +202,39 @@ struct _Elm_Config double page_scroll_friction; double bring_in_scroll_friction; double zoom_friction; - unsigned char thumbscroll_bounce_enable; double thumbscroll_border_friction; double thumbscroll_sensitivity_friction; - unsigned char scroll_smooth_start_enable; // double scroll_smooth_time_interval;; // not used anymore double scroll_smooth_amount; // double scroll_smooth_history_weight;; // not used anymore // double scroll_smooth_future_time;; // not used anymore double scroll_smooth_time_window; double scale; + double fps; + double tooltip_delay; + double popup_horizontal_align; + double popup_vertical_align; + double longpress_timeout; + double password_show_last_timeout; + double glayer_zoom_finger_factor; + double glayer_zoom_wheel_factor; + double glayer_zoom_distance_tolerance; + double glayer_rotate_finger_enable; + double glayer_rotate_angular_tolerance; + double glayer_line_min_length; + double glayer_line_distance_tolerance; + double glayer_line_angular_tolerance; + double glayer_long_tap_start_timeout; + double glayer_double_tap_timeout; + double auto_throttle_amount; + double transition_duration_factor; + double magnifier_scale; + int config_version; + const char *engine; + const char *accel; + int thumbscroll_threshold; + int thumbscroll_hold_threshold; + int thumbscroll_flick_distance_tolerance; int win_no_border; int bgpixmap; int compositing; @@ -228,16 +242,47 @@ struct _Elm_Config Eina_List *font_overlays; int font_hinting; int cache_flush_poll_interval; - unsigned char cache_flush_enable; int image_cache; int font_cache; int edje_cache; int edje_collection_cache; int finger_size; - double fps; const char *theme; const char *modules; - double tooltip_delay; + int toolbar_shrink_mode; + int icon_size; + unsigned int glayer_flick_time_limit_ms; + int week_start; + int weekend_start; + int weekend_len; + int year_min; + int year_max; + Eina_List *color_overlays; + Eina_List *color_palette; + const char *indicator_service_0; + const char *indicator_service_90; + const char *indicator_service_180; + const char *indicator_service_270; + Eina_List *bindings; + int gl_depth; + int gl_stencil; + int gl_msaa; +// TIZEN_ONLY(20150705): Genlist item align feature + const char *scroll_item_valign; +// + + // TIZEN_ONLY(20180321): gesture layer needs their own tap area size to handle sensitivity. + int glayer_tap_finger_size; + // + Elm_Focus_Autoscroll_Mode focus_autoscroll_mode; /**< This shows the focus auto scroll mode. By default, @c ELM_FOCUS_AUTOSCROLL_MODE_SHOW is set. */ + Elm_Slider_Indicator_Visible_Mode slider_indicator_visible_mode; /**< this sets the slider indicator visible mode */ + + unsigned char accel_override; + unsigned char vsync; + unsigned char thumbscroll_enable; + unsigned char thumbscroll_bounce_enable; + unsigned char scroll_smooth_start_enable; + unsigned char cache_flush_enable; unsigned char cursor_engine_only; unsigned char focus_highlight_enable; unsigned char focus_highlight_animate; @@ -245,59 +290,25 @@ struct _Elm_Config unsigned char focus_move_policy; /**< This show how the elementary focus is moved to another object. Focus can be moved by click or mouse_in. */ unsigned char item_select_on_focus_disable; /**< This shows the disabled status of select on focus feature. This value is false by default so that select on focus feature is enabled by default.*/ unsigned char first_item_focus_on_first_focus_in; /**< This sets the first item focus on first focus in feature*/ - Elm_Focus_Autoscroll_Mode focus_autoscroll_mode; /**< This shows the focus auto scroll mode. By default, @c ELM_FOCUS_AUTOSCROLL_MODE_SHOW is set. */ - Elm_Slider_Indicator_Visible_Mode slider_indicator_visible_mode; /**< this sets the slider indicator visible mode */ - double popup_horizontal_align; - double popup_vertical_align; - Eina_Bool popup_scrollable; - int toolbar_shrink_mode; unsigned char fileselector_expand_enable; unsigned char fileselector_double_tap_navigation_enable; unsigned char inwin_dialogs_enable; - int icon_size; - double longpress_timeout; unsigned char effect_enable; unsigned char desktop_entry; unsigned char context_menu_disabled; unsigned char password_show_last; - double password_show_last_timeout; unsigned char glayer_zoom_finger_enable; - double glayer_zoom_finger_factor; - double glayer_zoom_wheel_factor; - double glayer_zoom_distance_tolerance; - double glayer_rotate_finger_enable; - double glayer_rotate_angular_tolerance; - double glayer_line_min_length; - double glayer_line_distance_tolerance; - double glayer_line_angular_tolerance; - unsigned int glayer_flick_time_limit_ms; - double glayer_long_tap_start_timeout; - double glayer_double_tap_timeout; - Eina_Bool access_mode; unsigned char glayer_continues_enable; - int week_start; - int weekend_start; - int weekend_len; - int year_min; - int year_max; - Eina_List *color_overlays; - Eina_List *color_palette; unsigned char softcursor_mode; unsigned char auto_norender_withdrawn; unsigned char auto_norender_iconified_same_as_withdrawn; unsigned char auto_flush_withdrawn; unsigned char auto_dump_withdrawn; unsigned char auto_throttle; - double auto_throttle_amount; - const char *indicator_service_0; - const char *indicator_service_90; - const char *indicator_service_180; - const char *indicator_service_270; unsigned char selection_clear_enable; unsigned char disable_external_menu; unsigned char clouseau_enable; unsigned char magnifier_enable; - double magnifier_scale; unsigned char audio_mute_effect; unsigned char audio_mute_background; unsigned char audio_mute_music; @@ -308,30 +319,19 @@ struct _Elm_Config unsigned char audio_mute_all; unsigned char win_auto_focus_enable; unsigned char win_auto_focus_animate; - double transition_duration_factor; unsigned char naviframe_prev_btn_auto_pushed; unsigned char spinner_min_max_filter_enable; - Eina_List *bindings; + // TIZEN_ONLY(20170120): entry: Add configuration for the default value of select_allow + unsigned char entry_select_allow; + // + Eina_Bool popup_scrollable; + Eina_Bool access_mode; Eina_Bool atspi_mode; - int gl_depth; - int gl_stencil; - int gl_msaa; -// TIZEN_ONLY(20150705): Genlist item align feature Eina_Bool scroll_item_align_enable; - const char *scroll_item_valign; -// // TIZEN_ONLY(20161202): This config is for applying UI mirroring // automatically according to language setting Eina_Bool language_auto_mirrored; // - // TIZEN_ONLY(20170120): entry: Add configuration for the default value of select_allow - unsigned char entry_select_allow; - // - - // TIZEN_ONLY(20180321): gesture layer needs their own tap area size to handle sensitivity. - int glayer_tap_finger_size; - // - /* Not part of the EET file */ Eina_Bool is_mirrored : 1; Eina_Bool translate : 1; diff --git a/src/lib/elm_widget.h b/src/lib/elm_widget.h index 2334f6665..387045cb3 100644 --- a/src/lib/elm_widget.h +++ b/src/lib/elm_widget.h @@ -374,6 +374,7 @@ typedef struct _Elm_Widget_Smart_Class */ typedef struct _Elm_Widget_Smart_Data { + double scale; Evas_Object *obj; /**< object pointer for this widget smart data */ Evas_Object *parent_obj; /**< parent object of a widget in the elementary tree */ Evas_Object *parent2; /**< parent object for an inlined window */ @@ -398,7 +399,6 @@ typedef struct _Elm_Widget_Smart_Data int scroll_hold; int scroll_freeze; - double scale; Elm_Theme *theme; const char *style; const char *focus_highlight_style; /**< custom focus style for a widget */ @@ -429,6 +429,9 @@ typedef struct _Elm_Widget_Smart_Data //TIZEN_ONLY(20160725): Add attributes set function and store the list Eina_List *attr_list; // +// TIZEN_ONLY(20150705): Genlist item align feature + const char *scroll_item_valign; +// /* this is a hook to be set on-the-fly on widgets. this is code * handling the request of showing a specific region from an inner @@ -478,8 +481,7 @@ typedef struct _Elm_Widget_Smart_Data Eina_Bool highlight_grabbing : 1; // // TIZEN_ONLY(20150705): Genlist item align feature - Eina_Bool scroll_item_align_enable; - const char *scroll_item_valign; + Eina_Bool scroll_item_align_enable : 1; // /* TIZEN_ONLY(20161222): Update show region geometry when entry is resized */ diff --git a/src/lib/elm_widget_check.h b/src/lib/elm_widget_check.h index e04e42269..c715518fc 100644 --- a/src/lib/elm_widget_check.h +++ b/src/lib/elm_widget_check.h @@ -27,8 +27,8 @@ typedef struct _Elm_Check_Data Elm_Check_Data; struct _Elm_Check_Data { - Eina_Bool state; Eina_Bool *statep; + Eina_Bool state; }; /** diff --git a/src/lib/elm_widget_conform.h b/src/lib/elm_widget_conform.h index 9f403f592..59d45de6f 100644 --- a/src/lib/elm_widget_conform.h +++ b/src/lib/elm_widget_conform.h @@ -27,6 +27,13 @@ typedef struct _Elm_Conformant_Data Elm_Conformant_Data; struct _Elm_Conformant_Data { + struct + { + double start; // time started + Ecore_Animator *animator; // animaton timer + Evas_Coord auto_x, auto_y; // desired delta + Evas_Coord x, y; // current delta + } delta; Evas_Object *win; Evas_Object *portrait_indicator; Evas_Object *landscape_indicator; @@ -39,23 +46,11 @@ struct _Elm_Conformant_Data Ecore_X_Virtual_Keyboard_State vkb_state; Ecore_X_Illume_Clipboard_State clipboard_state; #endif - struct - { - Ecore_Animator *animator; // animaton timer - double start; // time started - Evas_Coord auto_x, auto_y; // desired delta - Evas_Coord x, y; // current delta - } delta; Ecore_Job *show_region_job; Elm_Win_Indicator_Mode indmode; Elm_Win_Indicator_Opacity_Mode ind_o_mode; Ecore_Timer *land_indi_timer; Ecore_Timer *port_indi_timer; - - //TIZEN_ONLY(20160728) : indicator opacity mode implementation// - Ecore_Timer *indicator_effect_timer; - Eina_Bool on_indicator_effect : 1; - //END //TIZEN_ONLY(20161220) : quickpanel visibility// int quickpanel_state; //END @@ -63,6 +58,11 @@ struct _Elm_Conformant_Data int rot; Evas_Object *indicator; Ecore_Timer *indi_timer; + + //TIZEN_ONLY(20160728) : indicator opacity mode implementation// + Ecore_Timer *indicator_effect_timer; + Eina_Bool on_indicator_effect : 1; + //END }; /* Enum to identify conformant swallow parts */ diff --git a/src/lib/elm_widget_datetime.h b/src/lib/elm_widget_datetime.h index 891ebb68b..c0e29fb70 100644 --- a/src/lib/elm_widget_datetime.h +++ b/src/lib/elm_widget_datetime.h @@ -54,12 +54,12 @@ struct _Elm_Datetime_Module_Data struct _Datetime_Field { Evas_Object *item_obj; - char fmt[ELM_DATETIME_MAX_FIELD_FORMAT_LEN]; - Elm_Datetime_Field_Type type; const char *separator; int location; /* location of the field as per * current format */ int min, max; + Elm_Datetime_Field_Type type; + char fmt[ELM_DATETIME_MAX_FIELD_FORMAT_LEN]; Eina_Bool fmt_exist : 1; /* whether field format is * present or not */ Eina_Bool visible : 1; /* whether field can be @@ -89,9 +89,9 @@ struct _Elm_Datetime_Data Datetime_Field field_list[ELM_DATETIME_TYPE_COUNT]; struct tm curr_time, min_limit, max_limit; Elm_Datetime_Module_Data *mod_data; - char format[ELM_DATETIME_MAX_FORMAT_LEN]; Evas_Object *access_obj; int enabled_field_count; + char format[ELM_DATETIME_MAX_FORMAT_LEN]; Eina_Bool user_format : 1; /* whether user set * format or default * format. */ diff --git a/src/lib/elm_widget_entry.h b/src/lib/elm_widget_entry.h index ce85da72a..550703479 100644 --- a/src/lib/elm_widget_entry.h +++ b/src/lib/elm_widget_entry.h @@ -30,6 +30,13 @@ typedef struct _Mod_Api Mod_Api; typedef struct _Elm_Entry_Data Elm_Entry_Data; struct _Elm_Entry_Data { + struct + { + Evas_Object *hover_parent; /**< hover parent object. entry is a hover parent object by default */ + Evas_Object *pop; /**< hidden icon for hover target */ + Evas_Object *hover; /**< hover object */ + const char *hover_style; /**< style of a hover object */ + } anchor_hover; Evas_Object *hit_rect, *entry_edje, *scr_edje; Evas_Object *hoversel; @@ -86,13 +93,6 @@ struct _Elm_Entry_Data int input_panel_imdata_len; int input_panel_layout_variation; int validators; - struct - { - Evas_Object *hover_parent; /**< hover parent object. entry is a hover parent object by default */ - Evas_Object *pop; /**< hidden icon for hover target */ - Evas_Object *hover; /**< hover object */ - const char *hover_style; /**< style of a hover object */ - } anchor_hover; // TIZEN_ONLY(20170512): Support accessibility for entry anchors. Eina_List *anchor_atspi_rects; Eina_List *anchor_highlight_rects; @@ -101,6 +101,12 @@ struct _Elm_Entry_Data Elm_Cnp_Mode cnp_mode; Elm_Sel_Format drop_format; +#ifdef HAVE_ELEMENTARY_WAYLAND + Ecore_Job *cbhm_init_job; // TIZEN ONLY + Eldbus_Proxy *cbhm_proxy; // TIZEN ONLY + Eldbus_Connection *cbhm_conn; // TIZEN ONLY + Eina_Bool cbhm_init_done : 1; // TIZEN ONLY +#endif Eina_Bool input_panel_return_key_disabled : 1; Eina_Bool drag_selection_asked : 1; Eina_Bool sel_handler_disabled : 1; @@ -137,12 +143,6 @@ struct _Elm_Entry_Data Eina_Bool cursor_handler_shown : 1; // TIZEN ONLY Eina_Bool mgf_bg_color_set : 1; // TIZEN ONLY Eina_Bool long_pressing : 1; // TIZEN ONLY -#ifdef HAVE_ELEMENTARY_WAYLAND - Ecore_Job *cbhm_init_job; // TIZEN ONLY - Eina_Bool cbhm_init_done : 1; // TIZEN ONLY - Eldbus_Proxy *cbhm_proxy; // TIZEN ONLY - Eldbus_Connection *cbhm_conn; // TIZEN ONLY -#endif }; typedef struct _Elm_Entry_Item_Provider Elm_Entry_Item_Provider; diff --git a/src/lib/elm_widget_image.h b/src/lib/elm_widget_image.h index 9830ab980..da588f7f2 100644 --- a/src/lib/elm_widget_image.h +++ b/src/lib/elm_widget_image.h @@ -43,6 +43,15 @@ typedef enum typedef struct _Elm_Image_Data Elm_Image_Data; struct _Elm_Image_Data { + struct { + Ecore_Thread *th; + Eina_Stringshare *file, *key; // only for file_get() + void *todo; // opaque internal + } async; + + double scale; + double frame_duration; + Eo *self; Evas_Object *hit_rect; Evas_Object *img; @@ -53,9 +62,6 @@ struct _Elm_Image_Data const char *key; void *remote_data; - double scale; - double frame_duration; - Evas_Coord img_x, img_y, img_w, img_h; int load_size; @@ -64,12 +70,6 @@ struct _Elm_Image_Data Elm_Image_Orient orient; - struct { - Ecore_Thread *th; - Eina_Stringshare *file, *key; // only for file_get() - void *todo; // opaque internal - } async; - Elm_Image_Preload_Status preload_status; Eina_Bool aspect_fixed : 1; diff --git a/src/lib/elm_widget_index.h b/src/lib/elm_widget_index.h index dc9a9a6bc..20165a9e7 100644 --- a/src/lib/elm_widget_index.h +++ b/src/lib/elm_widget_index.h @@ -27,6 +27,7 @@ typedef struct _Elm_Index_Data Elm_Index_Data; struct _Elm_Index_Data { + double delay_change_time; Evas_Object *event_rect[2]; /**< rectangle objects for event handling */ Evas_Object *bx[2]; // 2 - for now all that's supported Eina_List *items; /* 1 list. N levels, but only 2 @@ -37,12 +38,11 @@ struct _Elm_Index_Data int level; Evas_Coord dx, dy; Ecore_Timer *delay; - double delay_change_time; + int group_num, default_num; + int show_group, next_group; Eina_Bool level_active[2]; /**< a flag for the activeness of a level. activeness means the box is filled with contents. */ - int group_num, default_num; - int show_group, next_group; Eina_Bool mouse_down : 1; Eina_Bool horizontal : 1; diff --git a/src/lib/elm_widget_panel.h b/src/lib/elm_widget_panel.h index 443496074..8566d4f38 100644 --- a/src/lib/elm_widget_panel.h +++ b/src/lib/elm_widget_panel.h @@ -28,6 +28,7 @@ typedef struct _Elm_Panel_Data Elm_Panel_Data; struct _Elm_Panel_Data { + double content_size_ratio; Evas_Object *bx, *content; Evas_Object *event; Evas_Object *scr_ly; @@ -37,7 +38,6 @@ struct _Elm_Panel_Data Elm_Panel_Orient orient; - double content_size_ratio; Evas_Coord down_x, down_y; Evas_Coord handler_size; Ecore_Timer *timer; diff --git a/src/lib/elm_widget_popup.h b/src/lib/elm_widget_popup.h index 4aca3094a..ecef90c7d 100644 --- a/src/lib/elm_widget_popup.h +++ b/src/lib/elm_widget_popup.h @@ -58,6 +58,12 @@ struct _Elm_Popup_Data Evas_Display_Mode dispmode; // + //TIZEN_ONLY(20161107): Supprot scrollable content + //FIXME: genlist only now, it should be changed to support other scrollable. + Evas_Coord min_scrollable_content_h; + Eina_Bool scrollable_content: 1; + // + Eina_Bool visible : 1; Eina_Bool scr_size_recalc : 1; Eina_Bool scroll : 1; @@ -66,12 +72,6 @@ struct _Elm_Popup_Data //TIZEN_ONLY(20160624): add a allow eval flag not to call another sizing eval during sizing eval Eina_Bool allow_eval : 1; // - - //TIZEN_ONLY(20161107): Supprot scrollable content - //FIXME: genlist only now, it should be changed to support other scrollable. - Evas_Coord min_scrollable_content_h; - Eina_Bool scrollable_content: 1; - // }; typedef struct _Elm_Popup_Item_Data Elm_Popup_Item_Data; @@ -89,7 +89,7 @@ struct _Action_Area_Data { Evas_Object *obj; Evas_Object *btn; - Eina_Bool delete_me; + Eina_Bool delete_me : 1; }; /** diff --git a/src/lib/elm_widget_progressbar.h b/src/lib/elm_widget_progressbar.h index 9abd01670..c1dd4ff18 100644 --- a/src/lib/elm_widget_progressbar.h +++ b/src/lib/elm_widget_progressbar.h @@ -29,26 +29,26 @@ typedef struct _Elm_Progress_Status Elm_Progress_Status; struct _Elm_Progressbar_Data { + double val; /**< Value of progressbar */ Evas_Object *spacer; /**< The rect actual progressbar area, gets the progressbar size and gets the events */ const char *units; /**< The units will be displayed on progressbar */ Evas_Coord size; /**< Width or height of progressbar */ - double val; /**< Value of progressbar */ + Eina_List *progress_status; /**< The list of _Elm_Progress_Status. To save the progress value(in percentage) each part of given progress bar */ + + char *(*unit_format_func)(double val); /**< The function pointer will be called when user wants to set a customized unit format */ + void (*unit_format_free)(char *str); /**< The freeing function for the format string */ Eina_Bool horizontal : 1; /**< Whether progressbar style is horizontal */ Eina_Bool inverted : 1; /**< Whether direction of progressbar is LTR */ Eina_Bool pulse : 1; /**< Whether object is put in the pulsing mode */ Eina_Bool pulse_state : 1; /**< To start the pulsing animation, otherwise to stop it */ - Eina_List *progress_status; /**< The list of _Elm_Progress_Status. To save the progress value(in percentage) each part of given progress bar */ - - char *(*unit_format_func)(double val); /**< The function pointer will be called when user wants to set a customized unit format */ - void (*unit_format_free)(char *str); /**< The freeing function for the format string */ }; struct _Elm_Progress_Status { - const char *part_name; double val; + const char *part_name; }; /** diff --git a/src/lib/elm_widget_radio.h b/src/lib/elm_widget_radio.h index 763c23dc4..2f2e6e979 100644 --- a/src/lib/elm_widget_radio.h +++ b/src/lib/elm_widget_radio.h @@ -37,9 +37,9 @@ struct _Group struct _Elm_Radio_Data { int value; - Eina_Bool state; - Group *group; + + Eina_Bool state : 1; }; /** diff --git a/src/lib/elm_widget_spinner.h b/src/lib/elm_widget_spinner.h index ee0b61a5a..46662c36f 100644 --- a/src/lib/elm_widget_spinner.h +++ b/src/lib/elm_widget_spinner.h @@ -36,12 +36,12 @@ typedef enum _Elm_Spinner_Format_Type typedef struct _Elm_Spinner_Data Elm_Spinner_Data; struct _Elm_Spinner_Data { - Evas_Object *ent, *inc_button, *dec_button, *text_button; - const char *label; double val, val_min, val_max, val_base; double step; /**< step for the value change. 1 by default. */ double drag_prev_pos, drag_val_step; double spin_speed, interval, first_interval; + Evas_Object *ent, *inc_button, *dec_button, *text_button; + const char *label; int round; int decimal_points; Ecore_Timer *delay_change_timer; /**< a timer for a delay,changed smart callback */ diff --git a/src/mobile_lib/elm_widget_ctxpopup.h b/src/mobile_lib/elm_widget_ctxpopup.h index 4617008f1..3da0d4f18 100644 --- a/src/mobile_lib/elm_widget_ctxpopup.h +++ b/src/mobile_lib/elm_widget_ctxpopup.h @@ -31,19 +31,19 @@ typedef struct _Elm_Ctxpopup_Item_Data Elm_Ctxpopup_Item_Data; typedef struct _Elm_Ctxpopup_Data Elm_Ctxpopup_Data; struct _Elm_Ctxpopup_Item_Data { - Elm_Widget_Item_Data *base; - - const char *label; - Evas_Object *icon; - Evas_Object *btn; - Eina_Stringshare *style; - struct { Evas_Smart_Cb org_func_cb; const void *org_data; Evas_Object *cobj; } wcb; + + Elm_Widget_Item_Data *base; + + const char *label; + Evas_Object *icon; + Evas_Object *btn; + Eina_Stringshare *style; }; struct _Elm_Ctxpopup_Data diff --git a/src/mobile_lib/elm_widget_genlist.h b/src/mobile_lib/elm_widget_genlist.h index 3724e050c..e10d3b0d1 100644 --- a/src/mobile_lib/elm_widget_genlist.h +++ b/src/mobile_lib/elm_widget_genlist.h @@ -37,6 +37,33 @@ typedef enum struct _Elm_Genlist_Data { + struct + { + Elm_Gen_Item *it; + int dir; + Eina_List *move_items; + Ecore_Animator *anim; + } reorder; + struct + { + Eina_List *items; + Eina_List *pending_items; + Ecore_Animator *anim; + int cnt; + } del_fx; + struct + { + Eina_List *items; + Ecore_Animator *anim; + int cnt; + } add_fx; + + /* longpress timeout. this value comes from _elm_config by + * default. this can be changed by + * elm_genlist_longpress_timeout_set() */ + double longpress_timeout; + double start_time; + Eina_Inlist_Sorted_State *state; Evas_Object *hit_rect; Evas_Object *pan_obj; @@ -59,19 +86,9 @@ struct _Elm_Genlist_Data // * being // * repositioned */ - struct - { - Elm_Gen_Item *it; - int dir; - Eina_List *move_items; - Ecore_Animator *anim; - } reorder; - Elm_Object_Item *last_selected_item; int minw, minh; - Eina_Bool scr_minw : 1; - Eina_Bool scr_minh : 1; unsigned int item_count; Evas_Coord pan_x, pan_y; Elm_Object_Select_Mode select_mode; @@ -98,7 +115,6 @@ struct _Elm_Genlist_Data Elm_List_Mode mode; Ecore_Timer *scr_hold_timer; const char *decorate_it_type; - double start_time; Evas_Coord prev_x, prev_y, prev_mx, prev_my; Evas_Coord cur_x, cur_y, cur_mx, cur_my; @@ -110,10 +126,6 @@ struct _Elm_Genlist_Data /* maximum number of items per block */ int max_items_per_block; - /* longpress timeout. this value comes from _elm_config by - * default. this can be changed by - * elm_genlist_longpress_timeout_set() */ - double longpress_timeout; Eina_Compare_Cb item_compare_cb; Eina_Compare_Cb item_compare_data_cb; @@ -124,6 +136,43 @@ struct _Elm_Genlist_Data Evas_Object *g_layer; Elm_Gen_Item *g_item; const char *g_type; + Eina_Hash *size_caches; + Evas_Coord finger_minw, finger_minh; + int processed_sizes; + Ecore_Job *dummy_job; + Ecore_Timer *scr_timer; + Elm_Gen_Item *key_down_item; +// TIZEN ONLY(20150701) : Banded Color UX Feature + /*for banded ux*/ + Elm_Gen_Item *top_drawn_item; + Evas_Object *banded_bg_rect; /* banded color + background feature. + enabled only + un-scrollable. */ +// TIZEN_ONLY + Elm_Gen_Item *highlighted_item; + Evas_Coord viewport_w, viewport_h; + Elm_Gen_Item *atspi_item_to_highlight; + // TIZEN_ONLY(20180326) : Atspi: enhance finding next and prev item on screen's edge + int scroll_delta_y_backup; + // + Elm_Gen_Item *aligned_item; + + Eina_List *filter_queue; + Eina_List *filtered_list; + void *filter_data; + unsigned int processed_count; + unsigned int filtered_count; + Ecore_Idle_Enterer *queue_filter_enterer; + Elm_Genlist_Item_Scrollto_Type focus_scrollto_type; + + Elm_Gen_Item *adjusted_item; + Evas_Object *focus_bg; + + /* this is genlist item Fx effect on Add/Remove */ + Eina_Bool fx_mode : 1; + Eina_Bool scr_minw : 1; + Eina_Bool scr_minh : 1; Eina_Bool select_on_focus_enabled : 1; Eina_Bool decorate_all_mode : 1; Eina_Bool reorder_mode : 1; /* a flag @@ -141,7 +190,6 @@ struct _Elm_Genlist_Data Eina_Bool homogeneous : 1; Eina_Bool realization_mode : 1; - Eina_Hash *size_caches; Eina_Bool on_sub_del : 1; @@ -164,68 +212,23 @@ struct _Elm_Genlist_Data * multi * selection */ Eina_Bool sorting : 1; - Evas_Coord finger_minw, finger_minh; - int processed_sizes; Eina_Bool calc_done : 1; Eina_Bool was_selected : 1; - Ecore_Job *dummy_job; - Ecore_Timer *scr_timer; Eina_Bool no_cache : 1; - Elm_Gen_Item *key_down_item; Eina_Bool on_hold : 1; /* a flag for check * item selected or * not */ - /* this is genlist item Fx effect on Add/Remove */ - Eina_Bool fx_mode : 1; - struct - { - Eina_List *items; - Eina_List *pending_items; - Ecore_Animator *anim; - int cnt; - } del_fx; - struct - { - Eina_List *items; - Ecore_Animator *anim; - int cnt; - } add_fx; - // TIZEN ONLY(20150701) : Banded Color UX Feature /*for banded ux*/ - Elm_Gen_Item *top_drawn_item; - Evas_Object *banded_bg_rect; /* banded color - background feature. - enabled only - un-scrollable. */ Eina_Bool banded_bg_on : 1; // TIZEN_ONLY Eina_Bool is_access : 1; - Elm_Gen_Item *highlighted_item; - Evas_Coord viewport_w, viewport_h; - Elm_Gen_Item *atspi_item_to_highlight; - // TIZEN_ONLY(20180326) : Atspi: enhance finding next and prev item on screen's edge - int scroll_delta_y_backup; - // - Elm_Gen_Item *aligned_item; - - Eina_List *filter_queue; - Eina_List *filtered_list; - void *filter_data; - unsigned int processed_count; - unsigned int filtered_count; - Ecore_Idle_Enterer *queue_filter_enterer; - Eina_Bool filter; - Elm_Genlist_Item_Scrollto_Type focus_scrollto_type; - + Eina_Bool filter : 1; Eina_Bool unhighlight_skip: 1; - Elm_Gen_Item *adjusted_item; Eina_Bool bottom_margin_enabled : 1; Eina_Bool unhighlighted : 1; - Evas_Object *focus_bg; - Eina_Bool focus_on_selection_enabled : 1; }; @@ -262,6 +265,11 @@ struct Elm_Gen_Item_Type Ecore_Animator *banded_anim; // TIZEN ONLY + Evas_Coord reorder_offset; + + Ecore_Timer *highlight_timer; + Evas_Object *proxy; + Eina_Bool decorate_all_item_realized : 1; Eina_Bool tree_effect_finished : 1; /* tree effect */ Eina_Bool move_effect_enabled : 1; @@ -283,13 +291,8 @@ struct Elm_Gen_Item_Type Eina_Bool is_prepend : 1; Eina_Bool calc_done : 1; - - Evas_Coord reorder_offset; - - Ecore_Timer *highlight_timer; Eina_Bool multiline : 1; Eina_Bool resized : 1; - Evas_Object *proxy; }; @@ -325,11 +328,11 @@ struct _Item_Cache const Elm_Genlist_Item_Class *item_class; // it->itc Eina_Bool multiline; + Eina_List *contents; // content objects for reusing Eina_Bool selected : 1; // it->selected Eina_Bool disabled : 1; // it->disabled Eina_Bool expanded : 1; // it->item->expanded Eina_Bool tree : 1; // it->group - Eina_List *contents; // content objects for reusing }; typedef struct _Elm_Genlist_Pan_Data Elm_Genlist_Pan_Data; -- 2.34.1