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 *statusbar;
Evas_Object *folders_button;
Evas_Object *folders_icon;
Evas_Object *view_button;
Evas_Object *controls_left;
Evas_Object *controls_right;

View File

@ -240,7 +240,7 @@ _on_list_expand_req(void *data, Evas_Object *obj EINA_UNUSED,
}
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)
{
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;
Elm_Object_Item *it = event_info;
Evas_Object *icon;
Ephoto_Entry *entry;
const char *path;
icon = elm_object_item_part_content_get(it, "elm.swallow.icon");
elm_icon_standard_set(icon, "folder-open");
if (db->initializing)
return;
@ -285,9 +289,13 @@ _on_list_contracted(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
{
Ephoto_Directory_Browser *db = data;
Elm_Object_Item *it = event_info;
Evas_Object *icon;
Ephoto_Entry *entry;
const char *path;
icon = elm_object_item_part_content_get(it, "elm.swallow.icon");
elm_icon_standard_set(icon, "folder");
if (db->initializing)
return;
@ -357,14 +365,26 @@ _dir_item_text_get(void *data, Evas_Object *obj EINA_UNUSED,
}
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)
{
Ephoto_Entry *entry = data;
if (!strcmp(part, "elm.swallow.end"))
return NULL;
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;
}

View File

@ -267,13 +267,15 @@ _folder_icon_clicked(void *data, Evas_Object *obj,
void *event_info EINA_UNUSED)
{
Ephoto *ephoto = data;
int ret = 0;
if (!ephoto->folders_toggle)
{
elm_panes_content_left_min_size_set(ephoto->layout, 0);
elm_panes_content_left_size_set(ephoto->layout, ephoto->config->left_size);
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_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_size_set(ephoto->layout, 0.0);
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_tooltip_text_set(obj, _("Show Folders"));
}
@ -333,13 +336,18 @@ _ephoto_left_pane_resized(void *data, Evas_Object *obj EINA_UNUSED,
void
ephoto_show_folders(Ephoto *ephoto, Eina_Bool toggle)
{
int ret = 0;
if (!ephoto->folders_toggle || !toggle)
{
elm_panes_content_left_min_size_set(ephoto->layout, 0);
elm_panes_content_left_size_set(ephoto->layout, ephoto->config->left_size);
evas_object_show(ephoto->dir_browser);
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)
{
@ -347,7 +355,10 @@ ephoto_show_folders(Ephoto *ephoto, Eina_Bool toggle)
elm_panes_content_left_size_set(ephoto->layout, 0.0);
evas_object_hide(ephoto->dir_browser);
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());
ret = elm_icon_standard_set(ic, "folder");
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
ephoto->folders_icon = ic;
but = elm_button_add(ephoto->statusbar);
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_size_set(ephoto->layout, 0.0);
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
{
ephoto->folders_toggle = EINA_TRUE;
elm_panes_content_left_min_size_set(ephoto->layout, 0);
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)
{

View File

@ -1656,6 +1656,17 @@ _edit_function_item_add(Evas_Object *parent, const char *icon, const char *label
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 *
_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;
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->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.del = NULL;
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);
itc2 = elm_genlist_item_class_new();
itc2->item_style = "no_icon";
itc2->func.text_get = _item2_text_get;
itc2->func.content_get = NULL;
itc2->func.state_get = NULL;
itc2->func.del = NULL;
elm_genlist_item_append(parent, itc, ic, par,
ELM_GENLIST_ITEM_NONE, callback, data);
if (icon)
{
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
@ -1786,43 +1813,43 @@ _editor_menu(void *data, Evas_Object *obj EINA_UNUSED, void *event_data EINA_UNU
_go_flip_horiz, sb);
_edit_item_add(list, par, "object-flip-vertical", _("Flip Vertical"),
_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);
elm_genlist_item_select_mode_set(par, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
_edit_item_add(list, par, "insert-image", _("Auto Equalize"),
_go_auto_eq, sb);
_edit_item_add(list, par, "insert-image", _("Brightness/Contrast/Gamma"),
_edit_item_add(list, par, NULL, _("Brightness/Contrast/Gamma"),
_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);
_edit_item_add(list, par, "insert-image", _("Color Levels"),
_edit_item_add(list, par, NULL, _("Color Levels"),
_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);
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);
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);
_edit_item_add(list, par, "insert-image", _("Blur"),
_edit_item_add(list, par, NULL, _("Blur"),
_go_blur, sb);
_edit_item_add(list, par, "insert-image", _("Dither"),
_edit_item_add(list, par, NULL, _("Dither"),
_go_dither, sb);
_edit_item_add(list, par, "insert-image", _("Edge Detect"),
_edit_item_add(list, par, NULL, _("Edge Detect"),
_go_edge, sb);
_edit_item_add(list, par, "insert-image", _("Emboss"),
_edit_item_add(list, par, NULL, _("Emboss"),
_go_emboss, sb);
_edit_item_add(list, par, "insert-image", _("Invert Colors"),
_edit_item_add(list, par, NULL, _("Invert Colors"),
_go_invert, sb);
_edit_item_add(list, par, "insert-image", _("Old Photo"),
_edit_item_add(list, par, NULL, _("Old Photo"),
_go_old_photo, sb);
_edit_item_add(list, par, "insert-image", _("Painting"),
_edit_item_add(list, par, NULL, _("Painting"),
_go_painting, sb);
_edit_item_add(list, par, "insert-image", _("Posterize"),
_edit_item_add(list, par, NULL, _("Posterize"),
_go_posterize, sb);
_edit_item_add(list, par, "insert-image", _("Sharpen"),
_edit_item_add(list, par, NULL, _("Sharpen"),
_go_sharpen, sb);
_edit_item_add(list, par, "insert-image", _("Sketch"),
_edit_item_add(list, par, NULL, _("Sketch"),
_go_sketch, sb);
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;
menu_it = elm_menu_item_add(menu, NULL, "insert-image", _("File"), NULL, NULL);
elm_menu_item_add(menu, menu_it, "insert-image", _("Edit"), _editor_menu, sb);
menu_it = elm_menu_item_add(menu, NULL, "document-properties", _("File"), NULL, NULL);
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, "document-save", _("Save"), _save_image, sb);
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(),
20*elm_config_scale_get());
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);
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_tooltip_text_set(but, _("View Thumbnails"));
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;
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);
evas_object_size_hint_min_set(ic, 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);
evas_object_size_hint_min_set(ic, 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);
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(),
20*elm_config_scale_get());
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);
but = elm_button_add(parent);
@ -836,10 +832,7 @@ ephoto_slideshow_show_controls(Ephoto *ephoto)
elm_object_content_set(ss->notify, ss->notify_box);
evas_object_show(ss->notify_box);
if (ephoto->prev_state == EPHOTO_STATE_SINGLE)
but = _add_icon(ss->notify_box, "view-list-details", _("Back"), NULL);
else
but = _add_icon(ss->notify_box, "view-list-icons", _("Back"), NULL);
but = _add_icon(ss->notify_box, "edit-undo", _("Back"), NULL);
evas_object_smart_callback_add(but, "clicked", _back, ss);
but = _add_icon(ss->notify_box, "go-first", _("First"), NULL);
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);
evas_object_size_hint_min_set(ic, 20*elm_config_scale_get(),
20*elm_config_scale_get());
ret = elm_icon_standard_set(ic, "view-list-details");
if (!ret)
ret = elm_image_file_set(ic, PACKAGE_DATA_DIR "/images/single.png", NULL);
ret = elm_icon_standard_set(ic, "document-open");
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
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_tooltip_text_set(but, _("View Images"));
elm_object_tooltip_text_set(but, _("View Image"));
elm_object_tooltip_orient_set(but, ELM_TOOLTIP_ORIENT_TOP);
evas_object_smart_callback_add(but, "clicked", _view_single, tb);
elm_box_pack_after(ephoto->statusbar, but, ephoto->folders_button);