Erase Page kindof does stuff now.

This commit is contained in:
Jaime Thomas
2008-09-25 17:39:40 +00:00
parent cf143e69a3
commit fd60c7700e
3 changed files with 151 additions and 12 deletions

View File

@ -7,6 +7,7 @@ static void ecdb_cb_welcome_page_buttons_clicked(void *data, Evas_Object *o,
const char *emission, const char *source);
static void ecdb_cb_page_hide_finished(void *data, Evas_Object *o,
const char *emission, const char *source);
static void ecdb_cb_return_main(Ewl_Widget *w, void *ev_data, void *data);
static void ecdb_filelist_show(void);
static void ecdb_welcome_page_show(void);
static void ecdb_erase_page_show(void);
@ -495,21 +496,68 @@ ecdb_erase_page_show(void)
if (!swallow)
{
Ewl_Widget *embed, *box, *b, *c;
Evas_Object *ewl_swallow;
Evas_Coord x, y, w, h;
swallow = edje_object_add(ecore_evas_get(em->main_win_ee));
evas_object_name_set(swallow, "erase_page");
edje_object_file_set(swallow, em->theme_path,
"ecdb/erase_page");
edje_object_signal_callback_add(swallow, "hide,finished",
"erase_page", ecdb_cb_page_hide_finished,
NULL);
edje_object_part_geometry_get(gui, "action_area",
evas_object_name_set(swallow, "erase_page");
evas_object_data_set(swallow, "hide_signal",
"ecdb,erase_page,hide");
edje_object_part_geometry_get(gui, "active_area",
&x, &y, &w, &h);
evas_object_move(swallow, x, y);
evas_object_resize(swallow, w, h);
edje_object_part_swallow(gui, "action_area", swallow);
evas_object_show(swallow);
embed = ewl_embed_new();
ewl_object_fill_policy_set(EWL_OBJECT(embed),
EWL_FLAG_FILL_ALL);
ewl_swallow = ewl_embed_canvas_set(EWL_EMBED(embed),
ecore_evas_get(em->main_win_ee),
(void *)(long)ecore_evas_software_x11_window_get
(em->main_win_ee));
ewl_embed_focus_set(EWL_EMBED(embed), TRUE);
ewl_widget_show(embed);
box = ewl_vbox_new();
ewl_container_child_append(EWL_CONTAINER(embed), box);
ewl_object_fill_policy_set(EWL_OBJECT(box),
EWL_FLAG_FILL_SHRINKABLE);
ewl_widget_show(box);
b = ewl_button_new();
ewl_button_label_set(EWL_BUTTON(b), "Return");
ewl_container_child_append(EWL_CONTAINER(box), b);
ewl_callback_append(b, EWL_CALLBACK_CLICKED,
ecdb_cb_return_main, swallow);
ewl_widget_show(b);
b = ewl_button_new();
ewl_button_label_set(EWL_BUTTON(b), "Erase");
ewl_container_child_append(EWL_CONTAINER(box), b);
ewl_widget_show(b);
c = ewl_checkbutton_new();
ewl_button_label_set(EWL_BUTTON(c), "Quick Erase?");
ewl_container_child_append(EWL_CONTAINER(box), c);
ewl_widget_show(c);
evas_object_name_set(ewl_swallow, "ewl_erase_page");
edje_object_part_geometry_get(swallow, "active_area",
&x, &y, &w, &h);
evas_object_move(ewl_swallow, x, y);
evas_object_resize(ewl_swallow, w, h);
edje_object_part_swallow(swallow, "action_area", ewl_swallow);
edje_object_signal_callback_add(swallow, "hide,finished",
"erase_page", ecdb_cb_page_hide_finished,
NULL);
evas_object_show(ewl_swallow);
}
else if (edje_object_part_swallow_get(gui, "action_area") != swallow)
@ -529,3 +577,16 @@ ecdb_cb_page_hide_finished(void *data, Evas_Object *o, const char *emission,
{
ecdb_page_hide(source);
}
static void
ecdb_cb_return_main(Ewl_Widget *w, void *ev_data, void *data)
{
Evas_Object *swallow = data;
char *signal;
signal = evas_object_data_get(swallow, "hide_signal");
edje_object_signal_emit(swallow, signal, "ecdb");
ecdb_welcome_page_show();
}