diff --git a/src/bin/ephoto.h b/src/bin/ephoto.h index 857c03a..8450a09 100644 --- a/src/bin/ephoto.h +++ b/src/bin/ephoto.h @@ -240,6 +240,7 @@ struct _Ephoto_Config Evas_Object *slide_move; Evas_Object *show_folders; Evas_Object *thumb_aspect; + Evas_Object *panel_size; }; struct _Ephoto @@ -261,7 +262,6 @@ struct _Ephoto Evas_Object *single_browser; Evas_Object *slideshow; Evas_Object *dir_browser; - Evas_Object *right_menu; Evas_Object *file_popup; Eina_Bool folders_toggle; diff --git a/src/bin/ephoto_config.c b/src/bin/ephoto_config.c index 962f4dd..2781547 100644 --- a/src/bin/ephoto_config.c +++ b/src/bin/ephoto_config.c @@ -44,6 +44,13 @@ _config_save_cb(void *data, Evas_Object *obj EINA_UNUSED, ephoto->config->smooth = elm_check_state_get(ephoto->config->smooth_scale); ephoto->config->folders = elm_check_state_get(ephoto->config->show_folders); ephoto->config->thumbnail_aspect = elm_check_state_get(ephoto->config->thumb_aspect); + if (elm_spinner_value_get(ephoto->config->panel_size) > 0) + { + ephoto->config->left_size = (elm_spinner_value_get(ephoto->config->panel_size) / 0.05) * 0.05; + ephoto->config->right_size = (elm_spinner_value_get(ephoto->config->panel_size) / 0.05) * 0.05; + evas_object_size_hint_weight_set(ephoto->dir_browser, ephoto->config->left_size, EVAS_HINT_EXPAND); + } + if (elm_spinner_value_get(ephoto->config->slide_time) > 0) ephoto->config->slideshow_timeout = elm_spinner_value_get(ephoto->config->slide_time); @@ -72,7 +79,8 @@ _open_hv_select(void *data, Evas_Object *obj, void *event_info) static void _config_general(Ephoto *ephoto, Evas_Object *parent) { - Evas_Object *table, *check, *hoversel, *entry, *label; + Evas_Object *table, *check, *hoversel, *entry, *label, *spinner; + char buf[PATH_MAX]; table = elm_table_add(parent); EPHOTO_EXPAND(table); @@ -121,11 +129,30 @@ _config_general(Ephoto *ephoto, Evas_Object *parent) ephoto->config->thumb_aspect = check; label = elm_label_add(table); - elm_object_text_set(label, _("Top Level Directory")); + elm_object_text_set(label, _("File Panel Size")); EPHOTO_ALIGN(label, 0.5, 0.5); elm_table_pack(table, label, 0, 5, 1, 1); evas_object_show(label); + spinner = elm_spinner_add(table); + elm_spinner_editable_set(spinner, EINA_TRUE); + snprintf(buf, PATH_MAX, "%%1.2f %s", _("Weight (1.0 Max)")); + elm_spinner_label_format_set(spinner, buf); + elm_spinner_step_set(spinner, .05); + elm_spinner_value_set(spinner, ephoto->config->left_size); + elm_spinner_min_max_set(spinner, 0, 1); + EPHOTO_EXPAND(spinner); + EPHOTO_FILL(spinner); + elm_table_pack(table, spinner, 0, 6, 1, 1); + evas_object_show(spinner); + ephoto->config->panel_size = spinner; + + label = elm_label_add(table); + elm_object_text_set(label, _("Top Level Directory")); + EPHOTO_ALIGN(label, 0.5, 0.5); + elm_table_pack(table, label, 0, 7, 1, 1); + evas_object_show(label); + hoversel = elm_hoversel_add(table); elm_hoversel_hover_parent_set(hoversel, ephoto->win); elm_hoversel_item_add(hoversel, _("Root Directory"), NULL, 0, @@ -140,7 +167,7 @@ _config_general(Ephoto *ephoto, Evas_Object *parent) evas_object_data_set(hoversel, "ephoto", ephoto); EPHOTO_WEIGHT(hoversel, EVAS_HINT_EXPAND, EVAS_HINT_FILL); EPHOTO_FILL(hoversel); - elm_table_pack(table, hoversel, 0, 6, 1, 1); + elm_table_pack(table, hoversel, 0, 8, 1, 1); evas_object_show(hoversel); ephoto->config->open_dir = hoversel; @@ -153,7 +180,7 @@ _config_general(Ephoto *ephoto, Evas_Object *parent) ELM_SCROLLER_POLICY_OFF); EPHOTO_EXPAND(entry); EPHOTO_FILL(entry); - elm_table_pack(table, entry, 0, 7, 1, 1); + elm_table_pack(table, entry, 0, 9, 1, 1); evas_object_show(entry); ephoto->config->open_dir_custom = entry; } @@ -422,7 +449,7 @@ _config_bindings(Evas_Object *parent) "Home: Navigate First
" "Left Arrow: Navigate Previous
" "Right Arrow: Navigate Next
" - "Space: Navigate Next
" + "Space: Navigate Next
" "End: Navigate Last
" "Ctrl+Delete: Delete Image
" "F2 Rename Image
" @@ -793,8 +820,8 @@ ephoto_config_init(Ephoto *ephoto) ephoto->config->window_width = 900*elm_config_scale_get(); ephoto->config->window_height = 500*elm_config_scale_get(); ephoto->config->fsel_hide = 0; - ephoto->config->left_size = .2; - ephoto->config->right_size = .2; + ephoto->config->left_size = .25; + ephoto->config->right_size = .25; ephoto->config->open = eina_stringshare_add(eina_environment_home_get()); ephoto->config->prompts = 1; ephoto->config->drop = 0; diff --git a/src/bin/ephoto_directory_browser.c b/src/bin/ephoto_directory_browser.c index 86c44d6..aa8eaef 100644 --- a/src/bin/ephoto_directory_browser.c +++ b/src/bin/ephoto_directory_browser.c @@ -474,6 +474,7 @@ _dir_go_trash(void *data, Evas_Object *obj EINA_UNUSED, elm_genlist_highlight_mode_set(db->fsel, EINA_TRUE); EPHOTO_EXPAND(db->fsel); EPHOTO_FILL(db->fsel); + evas_object_size_hint_min_set(db->fsel, 195*elm_config_scale_get(), 0); evas_object_smart_callback_add(db->fsel, "expand,request", _on_list_expand_req, db); evas_object_smart_callback_add(db->fsel, "contract,request", @@ -707,6 +708,7 @@ _ephoto_directory_view_add(Ephoto_Directory_Browser *db) elm_genlist_highlight_mode_set(db->fsel, EINA_TRUE); EPHOTO_EXPAND(db->fsel); EPHOTO_FILL(db->fsel); + evas_object_size_hint_min_set(db->fsel, 195*elm_config_scale_get(), 0); evas_object_smart_callback_add(db->fsel, "expand,request", _on_list_expand_req, db); evas_object_smart_callback_add(db->fsel, "contract,request", @@ -1368,6 +1370,7 @@ ephoto_directory_browser_add(Ephoto *ephoto, Evas_Object *parent) db->main = box; elm_box_horizontal_set(db->main, EINA_FALSE); + evas_object_size_hint_min_set(db->main, 195*elm_config_scale_get(), 0); evas_object_event_callback_add(db->main, EVAS_CALLBACK_DEL, _ephoto_main_del, db); evas_object_data_set(db->main, "directory_browser", db); diff --git a/src/bin/ephoto_main.c b/src/bin/ephoto_main.c index 383ed2d..f1a9c72 100644 --- a/src/bin/ephoto_main.c +++ b/src/bin/ephoto_main.c @@ -111,10 +111,9 @@ _ephoto_slideshow_show(Ephoto *ephoto, Ephoto_Entry *entry) evas_object_hide(ephoto->single_browser); evas_object_hide(ephoto->thumb_browser); elm_object_focus_set(ephoto->slideshow, EINA_TRUE); - elm_panes_content_left_min_size_set(ephoto->layout, 0); - elm_panes_content_left_size_set(ephoto->layout, 0.0); elm_table_unpack(ephoto->main, ephoto->statusbar); evas_object_hide(ephoto->dir_browser); + elm_box_unpack(ephoto->layout, ephoto->dir_browser); evas_object_hide(ephoto->statusbar); evas_object_freeze_events_set(ephoto->single_browser, EINA_TRUE); evas_object_freeze_events_set(ephoto->thumb_browser, EINA_TRUE); @@ -156,9 +155,8 @@ _ephoto_slideshow_back(void *data, Evas_Object *obj EINA_UNUSED, } 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); evas_object_show(ephoto->dir_browser); + elm_box_pack_start(ephoto->layout, ephoto->dir_browser); } elm_table_pack(ephoto->main, ephoto->statusbar, 0, 2, 1, 1); evas_object_show(ephoto->statusbar); @@ -271,8 +269,8 @@ _folder_icon_clicked(void *data, Evas_Object *obj, 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); + evas_object_show(ephoto->dir_browser); + elm_box_pack_start(ephoto->layout, ephoto->dir_browser); ephoto->folders_toggle = EINA_TRUE; ret = elm_icon_standard_set(ephoto->folders_icon, "folder-open"); if (!ret) @@ -281,8 +279,8 @@ _folder_icon_clicked(void *data, Evas_Object *obj, } else { - elm_panes_content_left_min_size_set(ephoto->layout, 0); - elm_panes_content_left_size_set(ephoto->layout, 0.0); + evas_object_hide(ephoto->dir_browser); + elm_box_unpack(ephoto->layout, ephoto->dir_browser); ephoto->folders_toggle = EINA_FALSE; ret = elm_icon_standard_set(ephoto->folders_icon, "folder"); if (!ret) @@ -323,15 +321,6 @@ _exit_icon_clicked(void *data, Evas_Object *obj EINA_UNUSED, evas_object_del(ephoto->win); } -static void -_ephoto_left_pane_resized(void *data, Evas_Object *obj EINA_UNUSED, - void *event_info EINA_UNUSED) -{ - Ephoto *ephoto = data; - - ephoto->config->left_size = elm_panes_content_left_size_get(ephoto->layout); -} - /*Toggle determines whether to toggle folder visibility, or just force visible*/ void ephoto_show_folders(Ephoto *ephoto, Eina_Bool toggle) @@ -340,10 +329,9 @@ ephoto_show_folders(Ephoto *ephoto, Eina_Bool toggle) 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_box_pack_end(ephoto->layout, ephoto->dir_browser); + ephoto->folders_toggle = EINA_TRUE; ret = elm_icon_standard_set(ephoto->folders_icon, "folder-open"); if (!ret) elm_object_text_set(ephoto->folders_button, _("Hide Folders")); @@ -351,9 +339,8 @@ ephoto_show_folders(Ephoto *ephoto, Eina_Bool toggle) } else if (ephoto->folders_toggle) { - elm_panes_content_left_min_size_set(ephoto->layout, 0); - elm_panes_content_left_size_set(ephoto->layout, 0.0); evas_object_hide(ephoto->dir_browser); + elm_box_unpack(ephoto->layout, ephoto->dir_browser); ephoto->folders_toggle = EINA_FALSE; ret = elm_icon_standard_set(ephoto->folders_icon, "folder"); if (!ret) @@ -416,18 +403,18 @@ ephoto_window_add(const char *path) elm_win_resize_object_add(ephoto->win, ephoto->main); evas_object_show(ephoto->main); - ephoto->layout = elm_panes_add(ephoto->main); + ephoto->layout = elm_box_add(ephoto->main); + elm_box_horizontal_set(ephoto->layout, EINA_TRUE); + elm_box_homogeneous_set(ephoto->layout, EINA_FALSE); EPHOTO_EXPAND(ephoto->layout); EPHOTO_FILL(ephoto->layout); - evas_object_smart_callback_add(ephoto->layout, "unpress", - _ephoto_left_pane_resized, ephoto); elm_table_pack(ephoto->main, ephoto->layout, 0, 0, 1, 2); evas_object_show(ephoto->layout); ephoto->pager = elm_table_add(ephoto->layout); EPHOTO_EXPAND(ephoto->pager); EPHOTO_FILL(ephoto->pager); - elm_object_part_content_set(ephoto->layout, "right", ephoto->pager); + elm_box_pack_end(ephoto->layout, ephoto->pager); evas_object_show(ephoto->pager); ephoto->thumb_browser = ephoto_thumb_browser_add(ephoto, ephoto->layout); @@ -466,11 +453,9 @@ ephoto_window_add(const char *path) _ephoto_slideshow_back, ephoto); ephoto->dir_browser = ephoto_directory_browser_add(ephoto, ephoto->layout); - EPHOTO_WEIGHT(ephoto->dir_browser, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + EPHOTO_WEIGHT(ephoto->dir_browser, ephoto->config->left_size, EVAS_HINT_EXPAND); EPHOTO_FILL(ephoto->dir_browser); - elm_panes_content_left_min_size_set(ephoto->layout, 0); - elm_panes_content_left_size_set(ephoto->layout, ephoto->config->left_size); - elm_object_part_content_set(ephoto->layout, "left", ephoto->dir_browser); + elm_box_pack_start(ephoto->layout, ephoto->dir_browser); evas_object_show(ephoto->dir_browser); ephoto->statusbar = elm_box_add(ephoto->main); @@ -632,8 +617,7 @@ ephoto_window_add(const char *path) if (!ephoto->config->folders) { evas_object_hide(ephoto->dir_browser); - elm_panes_content_left_min_size_set(ephoto->layout, 0); - elm_panes_content_left_size_set(ephoto->layout, 0.0); + elm_box_unpack(ephoto->layout, ephoto->dir_browser); ephoto->folders_toggle = EINA_FALSE; ret = elm_icon_standard_set(ephoto->folders_icon, "folder"); if (!ret) @@ -643,9 +627,7 @@ ephoto_window_add(const char *path) 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); - ret = elm_icon_standard_set(ephoto->folders_icon, "folder-open"); + 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")); diff --git a/src/bin/ephoto_single_browser.c b/src/bin/ephoto_single_browser.c index 5faa42f..67ec395 100644 --- a/src/bin/ephoto_single_browser.c +++ b/src/bin/ephoto_single_browser.c @@ -1049,19 +1049,15 @@ _close_editor(void *data, Evas_Object *obj EINA_UNUSED, { Ephoto_Single_Browser *sb = data; - elm_object_part_content_unset(sb->mhbox, "right"); - elm_panes_content_right_size_set(sb->mhbox, 0.0); - - if (sb->ephoto->folders_toggle) - { - - elm_panes_content_left_size_set(sb->ephoto->layout, sb->ephoto->config->left_size); - evas_object_show(sb->ephoto->dir_browser); - elm_table_pack(sb->ephoto->main, sb->ephoto->statusbar, 0, 2, 1, 1); - evas_object_show(sb->ephoto->statusbar); - } evas_object_del(sb->edit_main); sb->edit_main = NULL; + if (sb->ephoto->folders_toggle) + { + evas_object_show(sb->ephoto->dir_browser); + elm_box_pack_start(sb->ephoto->layout, sb->ephoto->dir_browser); + } + elm_table_pack(sb->ephoto->main, sb->ephoto->statusbar, 0, 2, 1, 1); + evas_object_show(sb->ephoto->statusbar); } static void @@ -1606,7 +1602,7 @@ _ephoto_single_browser_recalc(Ephoto_Single_Browser *sb) sb->viewer = _viewer_add(sb->main, sb->entry->path, sb); if (sb->viewer) { - elm_object_part_content_set(sb->mhbox, "left", sb->viewer); + elm_box_pack_start(sb->mhbox, sb->viewer); evas_object_show(sb->viewer); evas_object_event_callback_add(sb->viewer, EVAS_CALLBACK_MOUSE_WHEEL, _mouse_wheel, sb); @@ -1626,7 +1622,7 @@ _ephoto_single_browser_recalc(Ephoto_Single_Browser *sb) _("This image does not exist or is corrupted!")); EPHOTO_EXPAND(sb->nolabel); EPHOTO_FILL(sb->nolabel); - elm_object_part_content_set(sb->mhbox, "left", sb->nolabel); + elm_box_pack_start(sb->mhbox, sb->nolabel); evas_object_show(sb->nolabel); ephoto_title_set(sb->ephoto, _("Bad Image")); } @@ -1760,7 +1756,8 @@ _editor_menu(void *data, Evas_Object *obj EINA_UNUSED, void *event_data EINA_UNU itc->func.state_get = NULL; itc->func.del = NULL; - elm_panes_content_left_size_set(sb->ephoto->layout, 0.0); + if (evas_object_visible_get(sb->ephoto->dir_browser)) + elm_box_unpack(sb->ephoto->layout, sb->ephoto->dir_browser); if (evas_object_visible_get(sb->ephoto->statusbar)) elm_table_unpack(sb->ephoto->main, sb->ephoto->statusbar); evas_object_hide(sb->ephoto->dir_browser); @@ -1768,10 +1765,9 @@ _editor_menu(void *data, Evas_Object *obj EINA_UNUSED, void *event_data EINA_UNU frame = elm_frame_add(sb->mhbox); elm_object_text_set(frame, _("Edit")); - EPHOTO_EXPAND(frame); + EPHOTO_WEIGHT(frame, sb->ephoto->config->right_size, EVAS_HINT_EXPAND); EPHOTO_FILL(frame); - elm_object_part_content_set(sb->mhbox, "right", frame); - elm_panes_content_right_size_set(sb->mhbox, sb->ephoto->config->right_size); + elm_box_pack_end(sb->mhbox, frame); evas_object_show(frame); box = elm_box_add(frame); @@ -2099,19 +2095,11 @@ _ephoto_main_back(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EIN evas_object_del(sb->event); sb->event = NULL; } - _close_editor(sb, NULL, NULL); + if (sb->editing) + _close_editor(sb, NULL, NULL); evas_object_smart_callback_call(sb->main, "back", sb->entry); } -static void -_ephoto_right_pane_resized(void *data, Evas_Object *obj EINA_UNUSED, - void *event_info EINA_UNUSED) -{ - Ephoto_Single_Browser *sb = data; - - sb->ephoto->config->right_size = elm_panes_content_right_size_get(sb->mhbox); -} - static void _ephoto_main_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) @@ -2573,11 +2561,10 @@ ephoto_single_browser_add(Ephoto *ephoto, Evas_Object *parent) EPHOTO_FILL(sb->main); evas_object_data_set(sb->main, "single_browser", sb); - sb->mhbox = elm_panes_add(sb->main); + sb->mhbox = elm_box_add(sb->main); + elm_box_horizontal_set(sb->mhbox, EINA_TRUE); EPHOTO_EXPAND(sb->mhbox); EPHOTO_FILL(sb->mhbox); - elm_panes_content_right_size_set(sb->mhbox, 0.0); - evas_object_smart_callback_add(sb->mhbox, "unpress", _ephoto_right_pane_resized, sb); elm_box_pack_end(sb->main, sb->mhbox); evas_object_show(sb->mhbox);