Ephoto: Make the Save As dialog use a popup to match all other dialogs.

This commit is contained in:
Stephen Houston 2015-10-30 16:05:00 -05:00
parent 485d0342d7
commit c34f579eea
1 changed files with 26 additions and 13 deletions

View File

@ -1075,17 +1075,29 @@ static void
_save_image_as(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Ephoto_Single_Browser *sb = data;
Evas_Object *win, *box, *fsel;
Evas_Object *popup, *frame, *fsel, *rect, *table;
int h;
win = elm_win_inwin_add(sb->ephoto->win);
evas_object_show(win);
evas_object_geometry_get(sb->ephoto->win, 0, 0, 0, &h);
box = elm_box_add(win);
elm_box_horizontal_set(box, EINA_FALSE);
evas_object_size_hint_weight_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
popup = elm_popup_add(sb->ephoto->win);
elm_popup_scrollable_set(popup, EINA_TRUE);
elm_object_part_text_set(popup, "title,text", _("Save Image As"));
elm_popup_orient_set(popup, ELM_POPUP_ORIENT_CENTER);
fsel = elm_fileselector_add(box);
table = elm_table_add(popup);
evas_object_size_hint_weight_set(table, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(table, EVAS_HINT_FILL, EVAS_HINT_FILL);
rect = evas_object_rectangle_add(evas_object_evas_get(popup));
evas_object_color_set(rect, 0, 0, 0, 0);
evas_object_size_hint_min_set(rect, 0, h/1.5);
evas_object_size_hint_weight_set(rect, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_fill_set(rect, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_table_pack(table, rect, 0, 0, 1, 1);
evas_object_show(rect);
fsel = elm_fileselector_add(table);
elm_fileselector_is_save_set(fsel, EINA_TRUE);
elm_fileselector_expandable_set(fsel, EINA_FALSE);
elm_fileselector_path_set(fsel, sb->ephoto->config->directory);
@ -1093,13 +1105,14 @@ _save_image_as(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_U
elm_fileselector_mime_types_filter_append(fsel, "image/*", _("Image Files"));
evas_object_size_hint_weight_set(fsel, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(fsel, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_smart_callback_add(fsel, "done", _save_image_as_done, win);
elm_box_pack_end(box, fsel);
evas_object_smart_callback_add(fsel, "done", _save_image_as_done, popup);
elm_table_pack(table, fsel, 0, 0, 1, 1);
evas_object_show(fsel);
evas_object_show(box);
evas_object_data_set(win, "single_browser", sb);
elm_win_inwin_content_set(win, box);
evas_object_show(table);
evas_object_data_set(popup, "single_browser", sb);
elm_object_content_set(popup, table);
evas_object_show(popup);
}
static void