forked from enlightenment/efl
fileselector: refine code and theme
Summary: refine code and theme, hopefully solve the issue that the height of file list (genlist) is calculated wrong. Test Plan: elementary_test -to fileselector Reviewers: SanghyeonLee, jpeg, cedric Subscribers: taxi2se Differential Revision: https://phab.enlightenment.org/D3715 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This commit is contained in:
parent
91e5ecd075
commit
ecc4e26236
|
@ -1,8 +1,8 @@
|
|||
group { name: "elm/entry/path/separator/default";
|
||||
images.image: "sym_right_glow_normal.png" COMP;
|
||||
parts {
|
||||
part { name: "icon"; mouse_events: 0;
|
||||
description { state: "default" 0.0;
|
||||
image { "icon"; nomouse;
|
||||
desc { "default";
|
||||
image.normal: "sym_right_glow_normal.png";
|
||||
FIXED_SIZE(15, 15)
|
||||
aspect: 1.0 1.0;
|
||||
|
@ -14,21 +14,17 @@ group { name: "elm/entry/path/separator/default";
|
|||
group { name: "elm/fileselector/base/default";
|
||||
data.item: "path_separator" "<item relsize=15x15 vsize=full href=path/separator></item>";
|
||||
parts {
|
||||
part { name: "elm.swallow.up"; type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
fixed: 1 1;
|
||||
swallow { "elm.swallow.up";
|
||||
desc { "default";
|
||||
align: 0.0 0.0;
|
||||
min: 5 5;
|
||||
rel1.offset: 3 3;
|
||||
rel2.relative: 0.0 0.0;
|
||||
rel2.offset: 3 3;
|
||||
}
|
||||
}
|
||||
part { name: "elm.swallow.home"; type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
fixed: 1 1;
|
||||
align: 0.0 0.0;
|
||||
min: 5 5;
|
||||
swallow { "elm.swallow.home";
|
||||
desc { "default";
|
||||
align: 0.0 0.5;
|
||||
rel1 {
|
||||
to: "elm.swallow.up";
|
||||
relative: 1.0 0.0;
|
||||
|
@ -41,9 +37,9 @@ group { name: "elm/fileselector/base/default";
|
|||
}
|
||||
}
|
||||
}
|
||||
part { name: "elm.swallow.search"; type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
fixed: 1 1;
|
||||
swallow { "elm.swallow.search";
|
||||
desc { "default";
|
||||
min: 65 0;
|
||||
rel1 {
|
||||
to: "elm.swallow.home";
|
||||
relative: 1.0 0.0;
|
||||
|
@ -52,101 +48,22 @@ group { name: "elm/fileselector/base/default";
|
|||
rel2 {
|
||||
to_y: "elm.swallow.home";
|
||||
relative: 1.0 1.0;
|
||||
offset: -4 0;
|
||||
offset: -4 -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
part { name: "elm.spinner.clip"; type: RECT;
|
||||
swallow { "elm.swallow.ok";
|
||||
description { state: "default" 0.0;
|
||||
rel1.to: "elm.swallow.spinner";
|
||||
rel2.to: "elm.swallow.spinner";
|
||||
color: 255 255 255 0;
|
||||
}
|
||||
description { state: "visible" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
color: 255 255 255 255;
|
||||
}
|
||||
}
|
||||
part { name: "elm.swallow.spinner"; type: SWALLOW;
|
||||
clip_to: "elm.spinner.clip";
|
||||
description { state: "default" 0.0;
|
||||
fixed: 1 1;
|
||||
align: 1.0 0.0;
|
||||
min: 5 5;
|
||||
rel1.relative: 1.0 0.0;
|
||||
rel1.offset: -4 3;
|
||||
rel2.relative: 1.0 0.0;
|
||||
rel2.offset: -4 3;
|
||||
}
|
||||
}
|
||||
part { name: "elm.swallow.files"; type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
align: 1.0 0.0;
|
||||
min: 10 10;
|
||||
rel1 {
|
||||
to_y: "elm.swallow.home";
|
||||
relative: 0.0 1.0;
|
||||
offset: 3 3;
|
||||
}
|
||||
rel2 {
|
||||
to_y: "elm.swallow.path";
|
||||
relative: 1.0 0.0;
|
||||
offset: -4 -4;
|
||||
}
|
||||
}
|
||||
}
|
||||
part { name: "elm.swallow.path"; type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
fixed: 1 1;
|
||||
align: 0.5 1.0;
|
||||
rel1 {
|
||||
to_y: "elm.swallow.filename";
|
||||
relative: 0.0 0.0;
|
||||
offset: 3 -4;
|
||||
}
|
||||
rel2 {
|
||||
to_y: "elm.swallow.filename";
|
||||
relative: 1.0 0.0;
|
||||
offset: -4 -4;
|
||||
}
|
||||
}
|
||||
}
|
||||
part { name: "elm.swallow.filename"; type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
fixed: 1 1;
|
||||
align: 0.5 1.0;
|
||||
rel1 {
|
||||
to_y: "elm.swallow.filters";
|
||||
relative: 0.0 0.0;
|
||||
offset: 3 -4;
|
||||
}
|
||||
rel2 {
|
||||
to_y: "elm.swallow.filters";
|
||||
relative: 1.0 0.0;
|
||||
offset: -4 -4;
|
||||
}
|
||||
}
|
||||
}
|
||||
part { name: "elm.swallow.filters"; type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
fixed: 1 1;
|
||||
align: 1.0 1.0;
|
||||
rel1 {
|
||||
to_y: "elm.swallow.ok";
|
||||
relative: 1.0 0.0;
|
||||
offset: -4 -4;
|
||||
}
|
||||
rel2 {
|
||||
to_y: "elm.swallow.ok";
|
||||
relative: 1.0 0.0;
|
||||
offset: -4 -4;
|
||||
}
|
||||
rel1.relative: 1.0 1.0;
|
||||
rel1.offset: -4 -4;
|
||||
rel2.relative: 1.0 1.0;
|
||||
rel2.offset: -4 -4;
|
||||
}
|
||||
}
|
||||
part { name: "elm.swallow.cancel"; type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
fixed: 1 1;
|
||||
align: 1.0 1.0;
|
||||
swallow { "elm.swallow.cancel";
|
||||
desc { "default";
|
||||
align: 1.0 0.5;
|
||||
rel1 {
|
||||
to: "elm.swallow.ok";
|
||||
relative: 0.0 0.0;
|
||||
|
@ -159,14 +76,86 @@ group { name: "elm/fileselector/base/default";
|
|||
}
|
||||
}
|
||||
}
|
||||
part { name: "elm.swallow.ok"; type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
fixed: 1 1;
|
||||
swallow { "elm.swallow.filters";
|
||||
desc { "default";
|
||||
align: 1.0 1.0;
|
||||
rel1.relative: 1.0 1.0;
|
||||
rel1.offset: -4 -4;
|
||||
rel2.relative: 1.0 1.0;
|
||||
rel2.offset: -4 -4;
|
||||
rel1 {
|
||||
to_y: "elm.swallow.ok";
|
||||
relative: 1.0 0.0;
|
||||
offset: -4 -4;
|
||||
}
|
||||
rel2 {
|
||||
to_y: "elm.swallow.ok";
|
||||
relative: 1.0 0.0;
|
||||
offset: -4 -4;
|
||||
}
|
||||
}
|
||||
}
|
||||
swallow { "elm.swallow.filename";
|
||||
desc { "default";
|
||||
align: 0.5 1.0;
|
||||
rel1 {
|
||||
to_y: "elm.swallow.filters";
|
||||
relative: 0.0 0.0;
|
||||
offset: 3 -4;
|
||||
}
|
||||
rel2 {
|
||||
to_y: "elm.swallow.filters";
|
||||
relative: 1.0 0.0;
|
||||
offset: -4 -4;
|
||||
}
|
||||
}
|
||||
}
|
||||
swallow { "elm.swallow.path";
|
||||
desc { "default";
|
||||
align: 0.5 1.0;
|
||||
rel1 {
|
||||
to_y: "elm.swallow.filename";
|
||||
relative: 0.0 0.0;
|
||||
offset: 3 -4;
|
||||
}
|
||||
rel2 {
|
||||
to_y: "elm.swallow.filename";
|
||||
relative: 1.0 0.0;
|
||||
offset: -4 -4;
|
||||
}
|
||||
}
|
||||
}
|
||||
swallow { "elm.swallow.files";
|
||||
desc { "default";
|
||||
rel1 {
|
||||
to_y: "elm.swallow.home";
|
||||
relative: 0.0 1.0;
|
||||
offset: 3 3;
|
||||
}
|
||||
rel2 {
|
||||
to_y: "elm.swallow.path";
|
||||
relative: 1.0 0.0;
|
||||
offset: -4 -4;
|
||||
}
|
||||
}
|
||||
}
|
||||
swallow { "elm.swallow.spinner";
|
||||
clip: "elm.spinner.clip";
|
||||
desc { "default";
|
||||
fixed: 1 1;
|
||||
align: 1.0 0.0;
|
||||
rel1.relative: 1.0 0.0;
|
||||
rel1.offset: -4 3;
|
||||
rel2.relative: 1.0 0.0;
|
||||
rel2.offset: -4 3;
|
||||
}
|
||||
}
|
||||
rect { "elm.spinner.clip";
|
||||
desc { "default";
|
||||
fixed: 1 1;
|
||||
rel1.to: "elm.swallow.spinner";
|
||||
rel2.to: "elm.swallow.spinner";
|
||||
color: 255 255 255 0;
|
||||
}
|
||||
desc { "visible";
|
||||
inherit: "default" 0.0;
|
||||
color: 255 255 255 255;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -194,20 +183,8 @@ group { name: "elm/fileselector/base/default";
|
|||
|
||||
group { name: "elm/fileselector_entry/base/default";
|
||||
parts {
|
||||
part { name: "elm.swallow.entry"; type: SWALLOW;
|
||||
scale: 1;
|
||||
description { state: "default" 0.0;
|
||||
align: 0.0 0.5;
|
||||
min: 50 4;
|
||||
rel2 { to_x: "elm.swallow.button";
|
||||
relative: 0.0 1.0;
|
||||
offset: -1 -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
part { name: "elm.swallow.button"; type: SWALLOW;
|
||||
scale: 1;
|
||||
description { state: "default" 0.0;
|
||||
swallow { "elm.swallow.button"; scale;
|
||||
desc { "default";
|
||||
align: 1.0 0.0;
|
||||
fixed: 1 0;
|
||||
min: 40 4;
|
||||
|
@ -217,5 +194,15 @@ group { name: "elm/fileselector_entry/base/default";
|
|||
}
|
||||
}
|
||||
}
|
||||
swallow { "elm.swallow.entry"; scale;
|
||||
desc { "default";
|
||||
align: 0.0 0.5;
|
||||
min: 50 4;
|
||||
rel2 { to_x: "elm.swallow.button";
|
||||
relative: 0.0 1.0;
|
||||
offset: -1 -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -74,19 +74,6 @@ _elm_fileselector_smart_del_do(Elm_Fileselector_Data *sd)
|
|||
evas_obj_smart_del(eo_super(sd->obj, MY_CLASS));
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_elm_fileselector_elm_layout_sizing_eval(Eo *obj, Elm_Fileselector_Data *sd EINA_UNUSED)
|
||||
{
|
||||
Evas_Coord minw = -1, minh = -1;
|
||||
|
||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
|
||||
|
||||
elm_coords_finger_size_adjust(1, &minw, 1, &minh);
|
||||
edje_object_size_min_restricted_calc
|
||||
(wd->resize_obj, &minw, &minh, minw, minh);
|
||||
evas_object_size_hint_min_set(obj, minw, minh);
|
||||
}
|
||||
|
||||
static void
|
||||
_mirrored_set(Evas_Object *obj, Eina_Bool rtl)
|
||||
{
|
||||
|
@ -105,16 +92,16 @@ _elm_fileselector_elm_widget_theme_apply(Eo *obj, Elm_Fileselector_Data *sd)
|
|||
const char *style;
|
||||
const char *data;
|
||||
char buf[1024];
|
||||
|
||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
|
||||
|
||||
Eina_Bool int_ret = EINA_FALSE;
|
||||
|
||||
int_ret = elm_obj_widget_theme_apply(eo_super(obj, MY_CLASS));
|
||||
if (!int_ret) return EINA_FALSE;
|
||||
|
||||
style = elm_widget_style_get(obj);
|
||||
_mirrored_set(obj, elm_widget_mirrored_get(obj));
|
||||
|
||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
|
||||
|
||||
data = edje_object_data_get
|
||||
(wd->resize_obj, "path_separator");
|
||||
if (data) sd->path_separator = data;
|
||||
|
@ -122,36 +109,24 @@ _elm_fileselector_elm_widget_theme_apply(Eo *obj, Elm_Fileselector_Data *sd)
|
|||
|
||||
snprintf(buf, sizeof(buf), "fileselector/%s", style);
|
||||
|
||||
#define SWALLOW(part_name, object_ptn) \
|
||||
if (object_ptn) \
|
||||
{ \
|
||||
elm_widget_style_set(object_ptn, buf); \
|
||||
if (!elm_layout_content_set(obj, part_name, object_ptn)) \
|
||||
evas_object_hide(object_ptn); \
|
||||
}
|
||||
elm_widget_style_set(sd->up_button, buf);
|
||||
elm_widget_style_set(sd->home_button, buf);
|
||||
elm_widget_style_set(sd->spinner, "wheel");
|
||||
|
||||
SWALLOW("elm.swallow.up", sd->up_button);
|
||||
SWALLOW("elm.swallow.home", sd->home_button);
|
||||
SWALLOW("elm.swallow.spinner", sd->spinner);
|
||||
elm_object_style_set(sd->spinner, "wheel");
|
||||
|
||||
if (!elm_layout_content_set(obj, "elm.swallow.files", sd->files_view))
|
||||
evas_object_hide(sd->files_view);
|
||||
|
||||
SWALLOW("elm.swallow.path", sd->path_entry);
|
||||
SWALLOW("elm.swallow.filename", sd->name_entry);
|
||||
SWALLOW("elm.swallow.search", sd->search_entry);
|
||||
elm_widget_style_set(sd->path_entry, buf);
|
||||
elm_widget_style_set(sd->name_entry, buf);
|
||||
elm_widget_style_set(sd->search_entry, buf);
|
||||
|
||||
snprintf(buf, sizeof(buf), "fileselector/actions/%s", style);
|
||||
SWALLOW("elm.swallow.filters", sd->filter_hoversel);
|
||||
SWALLOW("elm.swallow.cancel", sd->cancel_button);
|
||||
SWALLOW("elm.swallow.ok", sd->ok_button);
|
||||
|
||||
#undef SWALLOW
|
||||
if (sd->filter_hoversel)
|
||||
elm_widget_style_set(sd->filter_hoversel, buf);
|
||||
|
||||
edje_object_message_signal_process(wd->resize_obj);
|
||||
|
||||
elm_layout_sizing_eval(obj);
|
||||
if (sd->ok_button)
|
||||
{
|
||||
elm_widget_style_set(sd->cancel_button, buf);
|
||||
elm_widget_style_set(sd->ok_button, buf);
|
||||
}
|
||||
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
@ -1266,9 +1241,6 @@ _files_list_add(Evas_Object *obj)
|
|||
li = elm_genlist_add(obj);
|
||||
evas_object_data_set(li, "parent", obj);
|
||||
elm_widget_mirrored_automatic_set(li, EINA_FALSE);
|
||||
evas_object_size_hint_align_set(li, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(li, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_min_set(li, 100, 100);
|
||||
|
||||
eo_event_callback_add
|
||||
(li, EVAS_SELECTABLE_INTERFACE_EVENT_SELECTED, _on_item_selected, obj);
|
||||
|
@ -1287,8 +1259,6 @@ _files_list_add(Evas_Object *obj)
|
|||
eo_event_callback_add
|
||||
(li, EVAS_OBJECT_EVENT_KEY_DOWN, _files_key_down, obj);
|
||||
|
||||
elm_widget_sub_object_add(obj, li);
|
||||
|
||||
return li;
|
||||
}
|
||||
|
||||
|
@ -1318,8 +1288,6 @@ _files_grid_add(Evas_Object *obj)
|
|||
eo_event_callback_add
|
||||
(grid, EVAS_OBJECT_EVENT_KEY_DOWN, _files_key_down, obj);
|
||||
|
||||
elm_widget_sub_object_add(obj, grid);
|
||||
|
||||
return grid;
|
||||
}
|
||||
|
||||
|
@ -1471,8 +1439,8 @@ EOLIAN static void
|
|||
_elm_fileselector_evas_object_smart_add(Eo *obj, Elm_Fileselector_Data *priv)
|
||||
{
|
||||
Evas_Object *ic, *bt, *en, *pb;
|
||||
|
||||
EINA_REFCOUNT_INIT(priv);
|
||||
const char *data;
|
||||
char buf[1024];
|
||||
|
||||
evas_obj_smart_add(eo_super(obj, MY_CLASS));
|
||||
elm_widget_sub_object_parent_add(obj);
|
||||
|
@ -1485,86 +1453,44 @@ _elm_fileselector_evas_object_smart_add(Eo *obj, Elm_Fileselector_Data *priv)
|
|||
(obj, "fileselector", "base", elm_widget_style_get(obj)))
|
||||
CRI("Failed to set layout!");
|
||||
|
||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
|
||||
|
||||
data = edje_object_data_get
|
||||
(wd->resize_obj, "path_separator");
|
||||
if (data) priv->path_separator = data;
|
||||
else priv->path_separator = "/";
|
||||
|
||||
snprintf(buf, sizeof(buf), "fileselector/%s", elm_widget_style_get(obj));
|
||||
|
||||
// up btn
|
||||
ic = elm_icon_add(obj);
|
||||
elm_icon_standard_set(ic, "arrow_up");
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
bt = elm_button_add(obj);
|
||||
elm_widget_mirrored_automatic_set(bt, EINA_FALSE);
|
||||
elm_object_part_content_set(bt, "icon", ic);
|
||||
elm_object_domain_translatable_text_set(bt, PACKAGE, N_("Up"));
|
||||
evas_object_size_hint_align_set(bt, 0.0, 0.0);
|
||||
eo_event_callback_add
|
||||
(bt, EVAS_CLICKABLE_INTERFACE_EVENT_CLICKED, _on_dir_up, obj);
|
||||
|
||||
elm_widget_sub_object_add(obj, bt);
|
||||
|
||||
priv->up_button = bt;
|
||||
elm_object_style_set(priv->up_button, buf);
|
||||
elm_object_part_content_set(obj, "elm.swallow.up", priv->up_button);
|
||||
|
||||
// home btn
|
||||
ic = elm_icon_add(obj);
|
||||
elm_icon_standard_set(ic, "home");
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
bt = elm_button_add(obj);
|
||||
elm_widget_mirrored_automatic_set(bt, EINA_FALSE);
|
||||
elm_object_part_content_set(bt, "icon", ic);
|
||||
elm_object_domain_translatable_text_set(bt, PACKAGE, N_("Home"));
|
||||
evas_object_size_hint_align_set(bt, 0.0, 0.0);
|
||||
eo_event_callback_add
|
||||
(bt, EVAS_CLICKABLE_INTERFACE_EVENT_CLICKED, _home, obj);
|
||||
|
||||
priv->home_button = bt;
|
||||
elm_object_style_set(priv->home_button, buf);
|
||||
elm_object_part_content_set(obj, "elm.swallow.home", priv->home_button);
|
||||
|
||||
// spinner
|
||||
pb = elm_progressbar_add(obj);
|
||||
elm_widget_sub_object_add(obj, pb);
|
||||
priv->spinner = pb;
|
||||
|
||||
// XXX: will fail for dynamic finger size changing
|
||||
priv->thumbnail_size.w = elm_config_finger_size_get() * 2 - GENGRID_PADDING;
|
||||
priv->thumbnail_size.h = priv->thumbnail_size.w;
|
||||
|
||||
priv->sort_type = ELM_FILESELECTOR_SORT_BY_FILENAME_ASC;
|
||||
priv->sort_method = strcoll;
|
||||
|
||||
// files_view
|
||||
priv->files_view = _files_list_add(obj);
|
||||
|
||||
// path entry
|
||||
en = elm_entry_add(obj);
|
||||
elm_entry_scrollable_set(en, EINA_TRUE);
|
||||
elm_widget_mirrored_automatic_set(en, EINA_FALSE);
|
||||
elm_entry_single_line_set(en, EINA_TRUE);
|
||||
elm_entry_line_wrap_set(en, ELM_WRAP_CHAR);
|
||||
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
eo_event_callback_add
|
||||
(en, ELM_ENTRY_EVENT_ANCHOR_CLICKED, _anchor_clicked, obj);
|
||||
eo_event_callback_add
|
||||
(en, ELM_WIDGET_EVENT_FOCUSED, _on_text_focused, obj);
|
||||
eo_event_callback_add
|
||||
(en, ELM_WIDGET_EVENT_UNFOCUSED, _on_text_unfocused, obj);
|
||||
eo_event_callback_add
|
||||
(en, ELM_ENTRY_EVENT_ACTIVATED, _on_text_activated, obj);
|
||||
|
||||
elm_widget_sub_object_add(obj, en);
|
||||
priv->path_entry = en;
|
||||
|
||||
// name entry
|
||||
en = elm_entry_add(obj);
|
||||
elm_entry_scrollable_set(en, EINA_TRUE);
|
||||
elm_widget_mirrored_automatic_set(en, EINA_FALSE);
|
||||
elm_entry_editable_set(en, EINA_TRUE);
|
||||
elm_entry_single_line_set(en, EINA_TRUE);
|
||||
elm_entry_line_wrap_set(en, ELM_WRAP_CHAR);
|
||||
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
elm_widget_sub_object_add(obj, en);
|
||||
priv->name_entry = en;
|
||||
|
||||
//search entry
|
||||
// search entry
|
||||
ic = elm_icon_add(obj);
|
||||
elm_icon_standard_set(ic, "search");
|
||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||
|
@ -1578,18 +1504,67 @@ _elm_fileselector_evas_object_smart_add(Eo *obj, Elm_Fileselector_Data *priv)
|
|||
PACKAGE, N_("Search"));
|
||||
elm_object_part_content_set(en, "icon", ic);
|
||||
elm_entry_icon_visible_set(en, EINA_TRUE);
|
||||
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
eo_event_callback_add
|
||||
(en, ELM_ENTRY_EVENT_CHANGED, _preedit_cb, obj);
|
||||
evas_object_data_set(obj, "search", en);
|
||||
|
||||
elm_widget_sub_object_add(obj, en);
|
||||
priv->search_entry = en;
|
||||
elm_object_style_set(priv->search_entry, buf);
|
||||
elm_object_part_content_set(obj, "elm.swallow.search", priv->search_entry);
|
||||
|
||||
// spinner
|
||||
pb = elm_progressbar_add(obj);
|
||||
priv->spinner = pb;
|
||||
elm_object_style_set(priv->spinner, "wheel");
|
||||
elm_object_part_content_set(obj, "elm.swallow.spinner", priv->spinner);
|
||||
|
||||
// XXX: will fail for dynamic finger size changing
|
||||
priv->thumbnail_size.w = elm_config_finger_size_get() * 2 - GENGRID_PADDING;
|
||||
priv->thumbnail_size.h = priv->thumbnail_size.w;
|
||||
|
||||
priv->sort_type = ELM_FILESELECTOR_SORT_BY_FILENAME_ASC;
|
||||
priv->sort_method = strcoll;
|
||||
|
||||
// path entry
|
||||
en = elm_entry_add(obj);
|
||||
elm_entry_scrollable_set(en, EINA_TRUE);
|
||||
elm_widget_mirrored_automatic_set(en, EINA_FALSE);
|
||||
elm_entry_single_line_set(en, EINA_TRUE);
|
||||
elm_entry_line_wrap_set(en, ELM_WRAP_CHAR);
|
||||
|
||||
eo_event_callback_add
|
||||
(en, ELM_ENTRY_EVENT_ANCHOR_CLICKED, _anchor_clicked, obj);
|
||||
eo_event_callback_add
|
||||
(en, ELM_WIDGET_EVENT_FOCUSED, _on_text_focused, obj);
|
||||
eo_event_callback_add
|
||||
(en, ELM_WIDGET_EVENT_UNFOCUSED, _on_text_unfocused, obj);
|
||||
eo_event_callback_add
|
||||
(en, ELM_ENTRY_EVENT_ACTIVATED, _on_text_activated, obj);
|
||||
|
||||
priv->path_entry = en;
|
||||
elm_object_style_set(priv->path_entry, buf);
|
||||
elm_object_part_content_set(obj, "elm.swallow.path", priv->path_entry);
|
||||
|
||||
// name entry
|
||||
en = elm_entry_add(obj);
|
||||
elm_entry_scrollable_set(en, EINA_TRUE);
|
||||
elm_widget_mirrored_automatic_set(en, EINA_FALSE);
|
||||
elm_entry_editable_set(en, EINA_TRUE);
|
||||
elm_entry_single_line_set(en, EINA_TRUE);
|
||||
elm_entry_line_wrap_set(en, ELM_WRAP_CHAR);
|
||||
|
||||
priv->name_entry = en;
|
||||
elm_object_style_set(priv->name_entry, buf);
|
||||
elm_object_part_content_set(obj, "elm.swallow.filename", priv->name_entry);
|
||||
|
||||
// ok cancel button
|
||||
elm_fileselector_buttons_ok_cancel_set(obj, EINA_TRUE);
|
||||
elm_fileselector_is_save_set(obj, EINA_FALSE);
|
||||
|
||||
// files_view
|
||||
priv->files_view = _files_list_add(obj);
|
||||
elm_object_part_content_set(obj, "elm.swallow.files", priv->files_view);
|
||||
|
||||
#define HANDLER_ADD(e, fn) \
|
||||
priv->handlers = eina_list_append(priv->handlers, \
|
||||
ecore_event_handler_add(e, fn, obj));
|
||||
|
@ -1601,7 +1576,7 @@ _elm_fileselector_evas_object_smart_add(Eo *obj, Elm_Fileselector_Data *priv)
|
|||
HANDLER_ADD(EIO_MONITOR_DIRECTORY_DELETED, _resource_deleted);
|
||||
#undef HANDLER_ADD
|
||||
|
||||
elm_obj_widget_theme_apply(obj);
|
||||
elm_obj_layout_sizing_eval(obj);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
|
@ -1737,8 +1712,14 @@ EOLIAN static void
|
|||
_elm_fileselector_buttons_ok_cancel_set(Eo *obj, Elm_Fileselector_Data *sd, Eina_Bool visible)
|
||||
{
|
||||
Evas_Object *bt;
|
||||
Eina_Bool bt_exists = EINA_FALSE;
|
||||
|
||||
if (visible && (!sd->ok_button))
|
||||
visible = !!visible;
|
||||
bt_exists = !!sd->ok_button;
|
||||
|
||||
if (!(visible ^ bt_exists)) return;
|
||||
|
||||
if (visible)
|
||||
{
|
||||
// cancel btn
|
||||
bt = elm_button_add(obj);
|
||||
|
@ -1749,6 +1730,7 @@ _elm_fileselector_buttons_ok_cancel_set(Eo *obj, Elm_Fileselector_Data *sd, Eina
|
|||
(bt, EVAS_CLICKABLE_INTERFACE_EVENT_CLICKED, _canc, obj);
|
||||
|
||||
sd->cancel_button = bt;
|
||||
elm_object_part_content_set(obj, "elm.swallow.cancel", sd->cancel_button);
|
||||
|
||||
// ok btn
|
||||
bt = elm_button_add(obj);
|
||||
|
@ -1759,10 +1741,9 @@ _elm_fileselector_buttons_ok_cancel_set(Eo *obj, Elm_Fileselector_Data *sd, Eina
|
|||
(bt, EVAS_CLICKABLE_INTERFACE_EVENT_CLICKED, _ok, obj);
|
||||
|
||||
sd->ok_button = bt;
|
||||
|
||||
elm_obj_widget_theme_apply(obj);
|
||||
elm_object_part_content_set(obj, "elm.swallow.ok", sd->ok_button);
|
||||
}
|
||||
else if (!visible)
|
||||
else
|
||||
{
|
||||
ELM_SAFE_FREE(sd->cancel_button, evas_object_del);
|
||||
ELM_SAFE_FREE(sd->ok_button, evas_object_del);
|
||||
|
@ -2117,7 +2098,7 @@ EOLIAN static Eina_Bool
|
|||
_elm_fileselector_elm_interface_fileselector_mime_types_filter_append(Eo *obj, Elm_Fileselector_Data *sd, const char *mime_types, const char *filter_name)
|
||||
{
|
||||
Elm_Fileselector_Filter *ff;
|
||||
Eina_Bool need_theme = EINA_FALSE;
|
||||
char buf[1024];
|
||||
|
||||
if (!mime_types) return EINA_FALSE;
|
||||
|
||||
|
@ -2133,7 +2114,9 @@ _elm_fileselector_elm_interface_fileselector_mime_types_filter_append(Eo *obj, E
|
|||
sd->current_filter = ff;
|
||||
sd->filter_hoversel = elm_hoversel_add(obj);
|
||||
elm_object_text_set(sd->filter_hoversel, ff->filter_name);
|
||||
need_theme = EINA_TRUE;
|
||||
snprintf(buf, sizeof(buf), "fileselector/actions/%s", elm_widget_style_get(obj));
|
||||
elm_widget_style_set(sd->filter_hoversel, buf);
|
||||
elm_object_part_content_set(obj, "elm.swallow.filters", sd->filter_hoversel);
|
||||
}
|
||||
elm_hoversel_item_add(sd->filter_hoversel, ff->filter_name, NULL, ELM_ICON_NONE, _current_filter_changed, ff);
|
||||
|
||||
|
@ -2145,9 +2128,6 @@ _elm_fileselector_elm_interface_fileselector_mime_types_filter_append(Eo *obj, E
|
|||
_schedule_populate(obj, sd, sd->path, NULL);
|
||||
}
|
||||
|
||||
if (need_theme)
|
||||
elm_obj_widget_theme_apply(obj);
|
||||
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
|
@ -2165,7 +2145,7 @@ _elm_fileselector_elm_interface_fileselector_custom_filter_append(Eo *obj, Elm_F
|
|||
{
|
||||
Elm_Fileselector_Filter *ff;
|
||||
Elm_Fileselector_Custom_Filter *custom_filter;
|
||||
Eina_Bool need_theme = EINA_FALSE;
|
||||
char buf[1024];
|
||||
|
||||
if (!func) return EINA_FALSE;
|
||||
|
||||
|
@ -2189,7 +2169,9 @@ _elm_fileselector_elm_interface_fileselector_custom_filter_append(Eo *obj, Elm_F
|
|||
sd->current_filter = ff;
|
||||
sd->filter_hoversel = elm_hoversel_add(obj);
|
||||
elm_object_text_set(sd->filter_hoversel, ff->filter_name);
|
||||
need_theme = EINA_TRUE;
|
||||
snprintf(buf, sizeof(buf), "fileselector/actions/%s", elm_widget_style_get(obj));
|
||||
elm_widget_style_set(sd->filter_hoversel, buf);
|
||||
elm_object_part_content_set(obj, "elm.swallow.filters", sd->filter_hoversel);
|
||||
}
|
||||
elm_hoversel_item_add(sd->filter_hoversel, ff->filter_name, NULL, ELM_ICON_NONE, _current_filter_changed, ff);
|
||||
|
||||
|
@ -2201,9 +2183,6 @@ _elm_fileselector_elm_interface_fileselector_custom_filter_append(Eo *obj, Elm_F
|
|||
_schedule_populate(obj, sd, sd->path, NULL);
|
||||
}
|
||||
|
||||
if (need_theme)
|
||||
elm_obj_widget_theme_apply(obj);
|
||||
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
|
@ -2410,8 +2389,9 @@ _elm_fileselector_elm_widget_focus_next(Eo *obj EINA_UNUSED, Elm_Fileselector_Da
|
|||
if (sd->files_view) items = eina_list_append(items, sd->files_view);
|
||||
if (sd->path_entry) items = eina_list_append(items, sd->path_entry);
|
||||
if (sd->name_entry) items = eina_list_append(items, sd->name_entry);
|
||||
if (sd->filter_hoversel) items = eina_list_append(items, sd->filter_hoversel);
|
||||
if (sd->cancel_button) items = eina_list_append(items, sd->cancel_button);
|
||||
if (sd->ok_button) items = eina_list_append(items, sd->ok_button);
|
||||
if (sd->ok_button) items = eina_list_append(items, sd->ok_button);
|
||||
|
||||
if (_elm_config->access_mode)
|
||||
return elm_widget_focus_list_next_get(obj, items, eina_list_data_get, dir, next, next_item);
|
||||
|
@ -2440,6 +2420,7 @@ _elm_fileselector_elm_widget_focus_direction(Eo *obj EINA_UNUSED, Elm_Fileselect
|
|||
if (sd->files_view) items = eina_list_append(items, sd->files_view);
|
||||
if (sd->path_entry) items = eina_list_append(items, sd->path_entry);
|
||||
if (sd->name_entry) items = eina_list_append(items, sd->name_entry);
|
||||
if (sd->filter_hoversel) items = eina_list_append(items, sd->filter_hoversel);
|
||||
if (sd->cancel_button) items = eina_list_append(items, sd->cancel_button);
|
||||
if (sd->ok_button) items = eina_list_append(items, sd->ok_button);
|
||||
|
||||
|
|
|
@ -40,7 +40,6 @@ class Elm.Fileselector (Elm.Layout, Elm.Interface_Fileselector,
|
|||
Elm.Widget.event;
|
||||
Elm.Widget.theme_apply;
|
||||
Elm.Widget.focus_next_manager_is;
|
||||
Elm.Layout.sizing_eval;
|
||||
Elm.Layout.text.set;
|
||||
Elm.Interface_Fileselector.selected_paths.get;
|
||||
Elm.Interface_Fileselector.custom_filter_append;
|
||||
|
|
Loading…
Reference in New Issue