Ephoto: Implement open/closed folder icon changing and clean up some fdo icons.

This commit is contained in:
Stephen 'Okra' Houston 2017-05-08 16:21:41 -05:00
parent 5759135ad3
commit 9474ceaa00
6 changed files with 112 additions and 56 deletions

View File

@ -247,6 +247,7 @@ struct _Ephoto
Evas_Object *pager; Evas_Object *pager;
Evas_Object *statusbar; Evas_Object *statusbar;
Evas_Object *folders_button; Evas_Object *folders_button;
Evas_Object *folders_icon;
Evas_Object *view_button; Evas_Object *view_button;
Evas_Object *controls_left; Evas_Object *controls_left;
Evas_Object *controls_right; Evas_Object *controls_right;

View File

@ -240,7 +240,7 @@ _on_list_expand_req(void *data, Evas_Object *obj EINA_UNUSED,
} }
static void static void
_on_list_contract_req(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, _on_list_contract_req(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info) void *event_info)
{ {
Ephoto_Directory_Browser *db = data; Ephoto_Directory_Browser *db = data;
@ -261,9 +261,13 @@ _on_list_expanded(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
{ {
Ephoto_Directory_Browser *db = data; Ephoto_Directory_Browser *db = data;
Elm_Object_Item *it = event_info; Elm_Object_Item *it = event_info;
Evas_Object *icon;
Ephoto_Entry *entry; Ephoto_Entry *entry;
const char *path; const char *path;
icon = elm_object_item_part_content_get(it, "elm.swallow.icon");
elm_icon_standard_set(icon, "folder-open");
if (db->initializing) if (db->initializing)
return; return;
@ -285,9 +289,13 @@ _on_list_contracted(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
{ {
Ephoto_Directory_Browser *db = data; Ephoto_Directory_Browser *db = data;
Elm_Object_Item *it = event_info; Elm_Object_Item *it = event_info;
Evas_Object *icon;
Ephoto_Entry *entry; Ephoto_Entry *entry;
const char *path; const char *path;
icon = elm_object_item_part_content_get(it, "elm.swallow.icon");
elm_icon_standard_set(icon, "folder");
if (db->initializing) if (db->initializing)
return; return;
@ -357,14 +365,26 @@ _dir_item_text_get(void *data, Evas_Object *obj EINA_UNUSED,
} }
static Evas_Object * static Evas_Object *
_dir_item_icon_get(void *data EINA_UNUSED, Evas_Object *obj, _dir_item_icon_get(void *data, Evas_Object *obj,
const char *part) const char *part)
{ {
Ephoto_Entry *entry = data;
if (!strcmp(part, "elm.swallow.end")) if (!strcmp(part, "elm.swallow.end"))
return NULL; return NULL;
Evas_Object *ic = elm_icon_add(obj); Evas_Object *ic = elm_icon_add(obj);
elm_icon_standard_set(ic, "folder"); if (entry->item)
{
if (elm_genlist_item_expanded_get(entry->item))
elm_icon_standard_set(ic, "folder-open");
else
elm_icon_standard_set(ic, "folder");
}
else
{
elm_icon_standard_set(ic, "folder");
}
return ic; return ic;
} }

View File

@ -267,13 +267,15 @@ _folder_icon_clicked(void *data, Evas_Object *obj,
void *event_info EINA_UNUSED) void *event_info EINA_UNUSED)
{ {
Ephoto *ephoto = data; Ephoto *ephoto = data;
int ret = 0;
if (!ephoto->folders_toggle) if (!ephoto->folders_toggle)
{ {
elm_panes_content_left_min_size_set(ephoto->layout, 0); elm_panes_content_left_min_size_set(ephoto->layout, 0);
elm_panes_content_left_size_set(ephoto->layout, ephoto->config->left_size); elm_panes_content_left_size_set(ephoto->layout, ephoto->config->left_size);
ephoto->folders_toggle = EINA_TRUE; ephoto->folders_toggle = EINA_TRUE;
if (elm_object_text_get(obj)) ret = elm_icon_standard_set(ephoto->folders_icon, "folder-open");
if (!ret)
elm_object_text_set(obj, _("Hide Folders")); elm_object_text_set(obj, _("Hide Folders"));
elm_object_tooltip_text_set(obj, _("Hide Folders")); elm_object_tooltip_text_set(obj, _("Hide Folders"));
} }
@ -282,7 +284,8 @@ _folder_icon_clicked(void *data, Evas_Object *obj,
elm_panes_content_left_min_size_set(ephoto->layout, 0); elm_panes_content_left_min_size_set(ephoto->layout, 0);
elm_panes_content_left_size_set(ephoto->layout, 0.0); elm_panes_content_left_size_set(ephoto->layout, 0.0);
ephoto->folders_toggle = EINA_FALSE; ephoto->folders_toggle = EINA_FALSE;
if (elm_object_text_get(obj)) ret = elm_icon_standard_set(ephoto->folders_icon, "folder");
if (!ret)
elm_object_text_set(obj, _("Show Folders")); elm_object_text_set(obj, _("Show Folders"));
elm_object_tooltip_text_set(obj, _("Show Folders")); elm_object_tooltip_text_set(obj, _("Show Folders"));
} }
@ -333,13 +336,18 @@ _ephoto_left_pane_resized(void *data, Evas_Object *obj EINA_UNUSED,
void void
ephoto_show_folders(Ephoto *ephoto, Eina_Bool toggle) ephoto_show_folders(Ephoto *ephoto, Eina_Bool toggle)
{ {
int ret = 0;
if (!ephoto->folders_toggle || !toggle) if (!ephoto->folders_toggle || !toggle)
{ {
elm_panes_content_left_min_size_set(ephoto->layout, 0); elm_panes_content_left_min_size_set(ephoto->layout, 0);
elm_panes_content_left_size_set(ephoto->layout, ephoto->config->left_size); elm_panes_content_left_size_set(ephoto->layout, ephoto->config->left_size);
evas_object_show(ephoto->dir_browser); evas_object_show(ephoto->dir_browser);
ephoto->folders_toggle = EINA_TRUE; ephoto->folders_toggle = EINA_TRUE;
elm_object_tooltip_text_set(ephoto->folders_button, _("Hide Folders")); ret = elm_icon_standard_set(ephoto->folders_icon, "folder-open");
if (!ret)
elm_object_text_set(ephoto->folders_button, _("Hide Folders"));
elm_object_tooltip_text_set(ephoto->folders_button, _("Hide Folders"));
} }
else if (ephoto->folders_toggle) else if (ephoto->folders_toggle)
{ {
@ -347,7 +355,10 @@ ephoto_show_folders(Ephoto *ephoto, Eina_Bool toggle)
elm_panes_content_left_size_set(ephoto->layout, 0.0); elm_panes_content_left_size_set(ephoto->layout, 0.0);
evas_object_hide(ephoto->dir_browser); evas_object_hide(ephoto->dir_browser);
ephoto->folders_toggle = EINA_FALSE; ephoto->folders_toggle = EINA_FALSE;
elm_object_tooltip_text_set(ephoto->folders_button, _("Show Folders")); ret = elm_icon_standard_set(ephoto->folders_icon, "folder");
if (!ret)
elm_object_text_set(ephoto->folders_button, _("Show Folders"));
elm_object_tooltip_text_set(ephoto->folders_button, _("Show Folders"));
} }
} }
@ -476,6 +487,7 @@ ephoto_window_add(const char *path)
20*elm_config_scale_get()); 20*elm_config_scale_get());
ret = elm_icon_standard_set(ic, "folder"); ret = elm_icon_standard_set(ic, "folder");
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_BOTH, 1, 1); evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
ephoto->folders_icon = ic;
but = elm_button_add(ephoto->statusbar); but = elm_button_add(ephoto->statusbar);
elm_object_part_content_set(but, "icon", ic); elm_object_part_content_set(but, "icon", ic);
@ -624,14 +636,20 @@ ephoto_window_add(const char *path)
elm_panes_content_left_min_size_set(ephoto->layout, 0); elm_panes_content_left_min_size_set(ephoto->layout, 0);
elm_panes_content_left_size_set(ephoto->layout, 0.0); elm_panes_content_left_size_set(ephoto->layout, 0.0);
ephoto->folders_toggle = EINA_FALSE; ephoto->folders_toggle = EINA_FALSE;
elm_object_tooltip_text_set(ephoto->folders_button, _("Show Folders")); ret = elm_icon_standard_set(ephoto->folders_icon, "folder");
if (!ret)
elm_object_text_set(ephoto->folders_button, _("Show Folders"));
elm_object_tooltip_text_set(ephoto->folders_button, _("Show Folders"));
} }
else else
{ {
ephoto->folders_toggle = EINA_TRUE; ephoto->folders_toggle = EINA_TRUE;
elm_panes_content_left_min_size_set(ephoto->layout, 0); elm_panes_content_left_min_size_set(ephoto->layout, 0);
elm_panes_content_left_size_set(ephoto->layout, ephoto->config->left_size); elm_panes_content_left_size_set(ephoto->layout, ephoto->config->left_size);
elm_object_tooltip_text_set(ephoto->folders_button, _("Hide Folders")); ret = elm_icon_standard_set(ephoto->folders_icon, "folder-open");
if (!ret)
elm_object_text_set(ephoto->folders_button, _("Hide Folders"));
elm_object_tooltip_text_set(ephoto->folders_button, _("Hide Folders"));
} }
if (ephoto->config->firstrun) if (ephoto->config->firstrun)
{ {

View File

@ -1656,6 +1656,17 @@ _edit_function_item_add(Evas_Object *parent, const char *icon, const char *label
evas_object_show(button); evas_object_show(button);
} }
char *
_item2_text_get(void *data, Evas_Object *obj EINA_UNUSED, const char *part EINA_UNUSED)
{
char *txt = data;
if (txt)
return strdup(txt);
else
return NULL;
}
char * char *
_item_text_get(void *data, Evas_Object *obj EINA_UNUSED, const char *part EINA_UNUSED) _item_text_get(void *data, Evas_Object *obj EINA_UNUSED, const char *part EINA_UNUSED)
{ {
@ -1696,6 +1707,7 @@ _edit_item_add(Evas_Object *parent, Elm_Object_Item *par, const char *icon, cons
{ {
Evas_Object *ic; Evas_Object *ic;
Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new(); Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
Elm_Genlist_Item_Class *itc2 = elm_genlist_item_class_new();
itc = elm_genlist_item_class_new(); itc = elm_genlist_item_class_new();
itc->item_style = "default"; itc->item_style = "default";
@ -1704,15 +1716,30 @@ _edit_item_add(Evas_Object *parent, Elm_Object_Item *par, const char *icon, cons
itc->func.state_get = NULL; itc->func.state_get = NULL;
itc->func.del = NULL; itc->func.del = NULL;
ic = elm_icon_add(parent); itc2 = elm_genlist_item_class_new();
evas_object_size_hint_min_set(ic, 20*elm_config_scale_get(), itc2->item_style = "no_icon";
20*elm_config_scale_get()); itc2->func.text_get = _item2_text_get;
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); itc2->func.content_get = NULL;
elm_icon_standard_set(ic, icon); itc2->func.state_get = NULL;
evas_object_data_set(ic, "label", label); itc2->func.del = NULL;
elm_genlist_item_append(parent, itc, ic, par, if (icon)
ELM_GENLIST_ITEM_NONE, callback, data); {
ic = elm_icon_add(parent);
evas_object_size_hint_min_set(ic, 20*elm_config_scale_get(),
20*elm_config_scale_get());
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
elm_icon_standard_set(ic, icon);
evas_object_data_set(ic, "label", label);
elm_genlist_item_append(parent, itc, ic, par,
ELM_GENLIST_ITEM_NONE, callback, data);
}
else
{
elm_genlist_item_append(parent, itc2, label, par,
ELM_GENLIST_ITEM_NONE, callback, data);
}
} }
static void static void
@ -1786,43 +1813,43 @@ _editor_menu(void *data, Evas_Object *obj EINA_UNUSED, void *event_data EINA_UNU
_go_flip_horiz, sb); _go_flip_horiz, sb);
_edit_item_add(list, par, "object-flip-vertical", _("Flip Vertical"), _edit_item_add(list, par, "object-flip-vertical", _("Flip Vertical"),
_go_flip_vert, sb); _go_flip_vert, sb);
par = elm_genlist_item_append(list, itc, _("Color"), NULL, ELM_GENLIST_ITEM_GROUP, par = elm_genlist_item_append(list, itc, _("Adjustable Filters"), NULL, ELM_GENLIST_ITEM_GROUP,
NULL, NULL); NULL, NULL);
elm_genlist_item_select_mode_set(par, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); elm_genlist_item_select_mode_set(par, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
_edit_item_add(list, par, "insert-image", _("Auto Equalize"), _edit_item_add(list, par, NULL, _("Brightness/Contrast/Gamma"),
_go_auto_eq, sb);
_edit_item_add(list, par, "insert-image", _("Brightness/Contrast/Gamma"),
_go_bcg, sb); _go_bcg, sb);
_edit_item_add(list, par, "insert-image", _("Hue/Saturation/Value"), _edit_item_add(list, par, NULL, _("Hue/Saturation/Value"),
_go_hsv, sb); _go_hsv, sb);
_edit_item_add(list, par, "insert-image", _("Color Levels"), _edit_item_add(list, par, NULL, _("Color Levels"),
_go_color, sb); _go_color, sb);
_edit_item_add(list, par, "insert-image", _("Red Eye Removal"), _edit_item_add(list, par, NULL, _("Red Eye Removal"),
_go_reye, sb); _go_reye, sb);
par = elm_genlist_item_append(list, itc, _("Filters"), NULL, ELM_GENLIST_ITEM_GROUP, par = elm_genlist_item_append(list, itc, _("Quick Filters"), NULL, ELM_GENLIST_ITEM_GROUP,
NULL, NULL); NULL, NULL);
elm_genlist_item_select_mode_set(par, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); elm_genlist_item_select_mode_set(par, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
_edit_item_add(list, par, "insert-image", _("Black and White"), _edit_item_add(list, par, NULL, _("Auto Equalize"),
_go_auto_eq, sb);
_edit_item_add(list, par, NULL, _("Black and White"),
_go_black_and_white, sb); _go_black_and_white, sb);
_edit_item_add(list, par, "insert-image", _("Blur"), _edit_item_add(list, par, NULL, _("Blur"),
_go_blur, sb); _go_blur, sb);
_edit_item_add(list, par, "insert-image", _("Dither"), _edit_item_add(list, par, NULL, _("Dither"),
_go_dither, sb); _go_dither, sb);
_edit_item_add(list, par, "insert-image", _("Edge Detect"), _edit_item_add(list, par, NULL, _("Edge Detect"),
_go_edge, sb); _go_edge, sb);
_edit_item_add(list, par, "insert-image", _("Emboss"), _edit_item_add(list, par, NULL, _("Emboss"),
_go_emboss, sb); _go_emboss, sb);
_edit_item_add(list, par, "insert-image", _("Invert Colors"), _edit_item_add(list, par, NULL, _("Invert Colors"),
_go_invert, sb); _go_invert, sb);
_edit_item_add(list, par, "insert-image", _("Old Photo"), _edit_item_add(list, par, NULL, _("Old Photo"),
_go_old_photo, sb); _go_old_photo, sb);
_edit_item_add(list, par, "insert-image", _("Painting"), _edit_item_add(list, par, NULL, _("Painting"),
_go_painting, sb); _go_painting, sb);
_edit_item_add(list, par, "insert-image", _("Posterize"), _edit_item_add(list, par, NULL, _("Posterize"),
_go_posterize, sb); _go_posterize, sb);
_edit_item_add(list, par, "insert-image", _("Sharpen"), _edit_item_add(list, par, NULL, _("Sharpen"),
_go_sharpen, sb); _go_sharpen, sb);
_edit_item_add(list, par, "insert-image", _("Sketch"), _edit_item_add(list, par, NULL, _("Sketch"),
_go_sketch, sb); _go_sketch, sb);
vbox = elm_box_add(box); vbox = elm_box_add(box);
@ -1864,8 +1891,8 @@ _add_edit_menu_items(Ephoto_Single_Browser *sb, Evas_Object *menu)
{ {
Elm_Object_Item *menu_it; Elm_Object_Item *menu_it;
menu_it = elm_menu_item_add(menu, NULL, "insert-image", _("File"), NULL, NULL); menu_it = elm_menu_item_add(menu, NULL, "document-properties", _("File"), NULL, NULL);
elm_menu_item_add(menu, menu_it, "insert-image", _("Edit"), _editor_menu, sb); elm_menu_item_add(menu, menu_it, "edit-cut", _("Edit"), _editor_menu, sb);
elm_menu_item_add(menu, menu_it, "edit-clear", _("Reset"), _reset_image, sb); elm_menu_item_add(menu, menu_it, "edit-clear", _("Reset"), _reset_image, sb);
elm_menu_item_add(menu, menu_it, "document-save", _("Save"), _save_image, sb); elm_menu_item_add(menu, menu_it, "document-save", _("Save"), _save_image, sb);
elm_menu_item_add(menu, menu_it, "document-save-as", _("Save As"), elm_menu_item_add(menu, menu_it, "document-save-as", _("Save As"),
@ -2373,11 +2400,11 @@ ephoto_single_browser_show_controls(Ephoto *ephoto)
evas_object_size_hint_min_set(ic, 20*elm_config_scale_get(), evas_object_size_hint_min_set(ic, 20*elm_config_scale_get(),
20*elm_config_scale_get()); 20*elm_config_scale_get());
ret = elm_icon_standard_set(ic, "view-list-icons"); ret = elm_icon_standard_set(ic, "view-list-icons");
if (!ret)
ret = elm_image_file_set(ic, PACKAGE_DATA_DIR "/images/grid.png", NULL);
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_BOTH, 1, 1); evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
but = elm_button_add(ephoto->statusbar); but = elm_button_add(ephoto->statusbar);
if (!ret)
elm_object_text_set(but, _("View Thumbnails"));
elm_object_part_content_set(but, "icon", ic); elm_object_part_content_set(but, "icon", ic);
elm_object_tooltip_text_set(but, _("View Thumbnails")); elm_object_tooltip_text_set(but, _("View Thumbnails"));
elm_object_tooltip_orient_set(but, ELM_TOOLTIP_ORIENT_TOP); elm_object_tooltip_orient_set(but, ELM_TOOLTIP_ORIENT_TOP);
@ -2387,9 +2414,6 @@ ephoto_single_browser_show_controls(Ephoto *ephoto)
ephoto->view_button = but; ephoto->view_button = but;
elm_object_tooltip_text_set(ephoto->view_button, _("View Thumbnails"));
evas_object_smart_callback_add(ephoto->view_button, "clicked", _ephoto_main_back, sb);
ic = elm_icon_add(ephoto->controls_left); ic = elm_icon_add(ephoto->controls_left);
evas_object_size_hint_min_set(ic, 20*elm_config_scale_get(), evas_object_size_hint_min_set(ic, 20*elm_config_scale_get(),
20*elm_config_scale_get()); 20*elm_config_scale_get());
@ -2489,7 +2513,7 @@ ephoto_single_browser_show_controls(Ephoto *ephoto)
ic = elm_icon_add(ephoto->controls_right); ic = elm_icon_add(ephoto->controls_right);
evas_object_size_hint_min_set(ic, 20*elm_config_scale_get(), evas_object_size_hint_min_set(ic, 20*elm_config_scale_get(),
20*elm_config_scale_get()); 20*elm_config_scale_get());
ret = elm_icon_standard_set(ic, "insert-image"); ret = elm_icon_standard_set(ic, "edit-cut");
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_BOTH, 1, 1); evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
but = elm_button_add(ephoto->controls_right); but = elm_button_add(ephoto->controls_right);

View File

@ -759,10 +759,6 @@ _add_icon(Evas_Object *parent, const char *icon, const char *label, Evas_Object
evas_object_size_hint_min_set(ic, 20*elm_config_scale_get(), evas_object_size_hint_min_set(ic, 20*elm_config_scale_get(),
20*elm_config_scale_get()); 20*elm_config_scale_get());
ret = elm_icon_standard_set(ic, icon); ret = elm_icon_standard_set(ic, icon);
if (!ret && !strcmp(icon, "view-list-details"))
ret = elm_image_file_set(ic, PACKAGE_DATA_DIR "/images/single.png", NULL);
else if (!ret && !strcmp(icon, "view-list-icons"))
ret = elm_image_file_set(ic, PACKAGE_DATA_DIR "/images/grid.png", NULL);
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_BOTH, 1, 1); evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
but = elm_button_add(parent); but = elm_button_add(parent);
@ -836,10 +832,7 @@ ephoto_slideshow_show_controls(Ephoto *ephoto)
elm_object_content_set(ss->notify, ss->notify_box); elm_object_content_set(ss->notify, ss->notify_box);
evas_object_show(ss->notify_box); evas_object_show(ss->notify_box);
if (ephoto->prev_state == EPHOTO_STATE_SINGLE) but = _add_icon(ss->notify_box, "edit-undo", _("Back"), NULL);
but = _add_icon(ss->notify_box, "view-list-details", _("Back"), NULL);
else
but = _add_icon(ss->notify_box, "view-list-icons", _("Back"), NULL);
evas_object_smart_callback_add(but, "clicked", _back, ss); evas_object_smart_callback_add(but, "clicked", _back, ss);
but = _add_icon(ss->notify_box, "go-first", _("First"), NULL); but = _add_icon(ss->notify_box, "go-first", _("First"), NULL);
evas_object_smart_callback_add(but, "clicked", _first, ss); evas_object_smart_callback_add(but, "clicked", _first, ss);

View File

@ -2029,14 +2029,14 @@ ephoto_thumb_browser_show_controls(Ephoto *ephoto)
ic = elm_icon_add(ephoto->statusbar); ic = elm_icon_add(ephoto->statusbar);
evas_object_size_hint_min_set(ic, 20*elm_config_scale_get(), evas_object_size_hint_min_set(ic, 20*elm_config_scale_get(),
20*elm_config_scale_get()); 20*elm_config_scale_get());
ret = elm_icon_standard_set(ic, "view-list-details"); ret = elm_icon_standard_set(ic, "document-open");
if (!ret)
ret = elm_image_file_set(ic, PACKAGE_DATA_DIR "/images/single.png", NULL);
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_BOTH, 1, 1); evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
but = elm_button_add(ephoto->statusbar); but = elm_button_add(ephoto->statusbar);
if (!ret)
elm_object_text_set(but, _("View Image"));
elm_object_part_content_set(but, "icon", ic); elm_object_part_content_set(but, "icon", ic);
elm_object_tooltip_text_set(but, _("View Images")); elm_object_tooltip_text_set(but, _("View Image"));
elm_object_tooltip_orient_set(but, ELM_TOOLTIP_ORIENT_TOP); elm_object_tooltip_orient_set(but, ELM_TOOLTIP_ORIENT_TOP);
evas_object_smart_callback_add(but, "clicked", _view_single, tb); evas_object_smart_callback_add(but, "clicked", _view_single, tb);
elm_box_pack_after(ephoto->statusbar, but, ephoto->folders_button); elm_box_pack_after(ephoto->statusbar, but, ephoto->folders_button);