From 96c1afb3828c2660429b7ce2dfd0c72d9fa763ee Mon Sep 17 00:00:00 2001 From: Stephen Houston Date: Thu, 10 Mar 2016 22:24:01 -0600 Subject: [PATCH] Ephoto: Add a keybinding list to the settings dialog --- src/bin/ephoto_config.c | 94 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 92 insertions(+), 2 deletions(-) diff --git a/src/bin/ephoto_config.c b/src/bin/ephoto_config.c index cf0ac51..92ff0ab 100644 --- a/src/bin/ephoto_config.c +++ b/src/bin/ephoto_config.c @@ -116,6 +116,8 @@ _config_save_cb(void *data, Evas_Object *obj EINA_UNUSED, if (elm_object_text_get(ephoto->config->slide_trans)) eina_stringshare_replace(&ephoto->config->slideshow_transition, elm_object_text_get(ephoto->config->slide_trans)); + + evas_object_del(popup); } static void @@ -344,6 +346,80 @@ _link_anchor(void *data, Evas_Object *obj, void *event_info) evas_object_show(button); } +static Evas_Object * +_ephoto_config_bindings(Evas_Object *parent) +{ + Evas_Object *box, *scroller, *entry; + Eina_Strbuf *sbuf = eina_strbuf_new(); + + box = elm_box_add(parent); + elm_box_horizontal_set(box, EINA_FALSE); + evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_show(box); + + scroller = elm_scroller_add(box); + evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(scroller, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_box_pack_end(box, scroller); + evas_object_show(scroller); + + entry = elm_entry_add(scroller); + elm_entry_editable_set(entry, EINA_FALSE); + elm_entry_line_wrap_set(entry, ELM_WRAP_NONE); + evas_object_size_hint_weight_set(entry, 0.0, 0.0); + evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL); + eina_strbuf_append_printf(sbuf, + _("General Bindings
" + "F1: Settings Panel
" + "F5: Start Slideshow
" + "F11: Toggle Fullscreen

" + "Thumbnail Browser Bindings
" + "Ctrl+Shift+f: Toggle File Selector
" + "Ctrl++: Zoom In
" + "Ctrl+-: Zoom Out
" + "Ctrl+Tab: View Image
" + "Ctrl+c: Copy Image
" + "Ctrl+x: Cut Image
" + "Ctrl+v: Paste Image
" + "Ctrl+a: Select All
" + "Ctrl+f: Toggle Search
" + "Ctrl+Delete: Delete Image
" + "F2: Rename Image
" + "Escape: Clear Selection

" + "Single Browser Bindings
" + "Ctrl+Shift+0: Zoom 1:1
" + "Ctrl++: Zoom In
" + "Ctrl+-: Zoom Out
" + "Ctrl+0: Zoom Fit
" + "Ctrl+Shift+l: Rotate Counter Clockwise
" + "Ctrl+l: Flip Horizontal
" + "Ctrl+Shift+r: Rotate Clockwise
" + "Ctrl+r: Flip Vertical
" + "Ctrl+Shift+s: Save Image As
" + "Ctrl+s: Save Image
" + "Ctrl+u: Reset Image
" + "Home: Navigate First
" + "Left Arrow: Navigate Previous
" + "Right Arrow: Navigate Next
" + "End: Navigate Last
" + "Escape: Return to Thumbnail Browser

" + "Slideshow Bindings
" + "Space: Play/Pause Slideshow
" + "Home: Navigate First
" + "Left Arrow: Navigate Previous
" + "Right Arrow: Navigate Next
" + "End: Navigate Last
" + "Escape: Quit Slideshow
")); + elm_object_text_set(entry, eina_strbuf_string_get(sbuf)); + elm_object_content_set(scroller, entry); + evas_object_show(entry); + + evas_object_show(box); + + return box; +} + static Evas_Object * _ephoto_config_about(Evas_Object *parent) { @@ -438,10 +514,12 @@ _segment_changed(void *data EINA_UNUSED, Evas_Object *o, void *event) Evas_Object *page = elm_object_item_data_get(it); Evas_Object *gen = evas_object_data_get(o, "gen"); Evas_Object *slide = evas_object_data_get(o, "slide"); + Evas_Object *kb = evas_object_data_get(o, "bindings"); Evas_Object *about = evas_object_data_get(o, "about"); evas_object_hide(gen); evas_object_hide(slide); + evas_object_hide(kb); evas_object_hide(about); evas_object_show(page); } @@ -450,8 +528,8 @@ void ephoto_config_main(Ephoto *ephoto) { Evas_Object *popup, *table, *segment, *button, *ic; - Evas_Object *gen, *slide, *about, *sep; - Elm_Object_Item *geni, *slidei, *abouti; + Evas_Object *gen, *slide, *kb, *about, *sep; + Elm_Object_Item *geni, *slidei, *kbi, *abouti; popup = elm_popup_add(ephoto->win); elm_popup_scrollable_set(popup, EINA_TRUE); @@ -467,6 +545,8 @@ ephoto_config_main(Ephoto *ephoto) elm_table_pack(table, gen, 0, 2, 1, 1); slide = _ephoto_config_slideshow(ephoto, table); elm_table_pack(table, slide, 0, 2, 1, 1); + kb = _ephoto_config_bindings(table); + elm_table_pack(table, kb, 0, 2, 1, 1); about = _ephoto_config_about(table); elm_table_pack(table, about, 0, 2, 1, 1); @@ -479,6 +559,7 @@ ephoto_config_main(Ephoto *ephoto) evas_object_data_set(segment, "gen", gen); evas_object_data_set(segment, "slide", slide); + evas_object_data_set(segment, "bindings", kb); evas_object_data_set(segment, "about", about); ic = elm_icon_add(segment); @@ -495,6 +576,13 @@ ephoto_config_main(Ephoto *ephoto) evas_object_show(ic); slidei = elm_segment_control_item_add(segment, ic, _("Slideshow")); + ic = elm_icon_add(segment); + elm_icon_order_lookup_set(ic, ELM_ICON_LOOKUP_FDO_THEME); + evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); + elm_icon_standard_set(ic, "input-keyboard"); + evas_object_show(ic); + kbi = elm_segment_control_item_add(segment, ic, _("Bindings")); + ic = elm_icon_add(segment); elm_icon_order_lookup_set(ic, ELM_ICON_LOOKUP_FDO_THEME); evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); @@ -514,8 +602,10 @@ ephoto_config_main(Ephoto *ephoto) elm_object_item_data_set(geni, gen); elm_object_item_data_set(slidei, slide); + elm_object_item_data_set(kbi, kb); elm_object_item_data_set(abouti, about); evas_object_hide(slide); + evas_object_hide(kb); evas_object_hide(about); elm_segment_control_item_selected_set(geni, EINA_TRUE);