forked from enlightenment/enlightenment
99 lines
2.9 KiB
C
99 lines
2.9 KiB
C
#include "e_mod_main.h"
|
|
|
|
static Evas_Object *delay_win = NULL;
|
|
static double delay = 5.0;
|
|
|
|
static void
|
|
_cb_delay(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
|
|
{
|
|
delay = elm_slider_value_get(obj);
|
|
}
|
|
|
|
static void
|
|
_win_delete_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *info EINA_UNUSED)
|
|
{
|
|
// E_FREE_FUNC(delay_win, evas_object_del);
|
|
delay_win = NULL;
|
|
}
|
|
|
|
static void
|
|
_cb_ok(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *info EINA_UNUSED)
|
|
{
|
|
E_Action *a = e_action_find("shot_delay");
|
|
E_FREE_FUNC(delay_win, evas_object_del);
|
|
if (a)
|
|
{
|
|
char buf[128];
|
|
|
|
snprintf(buf, sizeof(buf), "%i", (int)(delay * 1000.0));
|
|
a->func.go(NULL, buf);
|
|
}
|
|
}
|
|
|
|
static void
|
|
_cb_cancel(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *info EINA_UNUSED)
|
|
{
|
|
E_FREE_FUNC(delay_win, evas_object_del);
|
|
}
|
|
|
|
void
|
|
win_delay(void)
|
|
{
|
|
Evas_Object *o, *o_bg, *o_bx, *o_sl;
|
|
|
|
if (delay_win) return;
|
|
|
|
delay_win = o = elm_win_add(NULL, NULL, ELM_WIN_DIALOG_BASIC);
|
|
elm_win_title_set(o, _("Select action to take with screenshot"));
|
|
evas_object_event_callback_add(o, EVAS_CALLBACK_DEL, _win_delete_cb, NULL);
|
|
ecore_evas_name_class_set(e_win_ee_get(o), "E", "_shot_dialog");
|
|
|
|
o_bg = o = elm_layout_add(delay_win);
|
|
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
|
elm_win_resize_object_add(delay_win, o);
|
|
e_theme_edje_object_set(o, "base/theme/dialog", "e/widgets/dialog/main");
|
|
evas_object_show(o);
|
|
|
|
o_sl = o = elm_slider_add(delay_win);
|
|
elm_slider_span_size_set(o, 240);
|
|
elm_object_text_set(o, _("Delay"));
|
|
elm_slider_indicator_show_set(o, EINA_FALSE);
|
|
elm_slider_unit_format_set(o, _("%1.1f sec"));
|
|
elm_slider_min_max_set(o, 1, 60);
|
|
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 1.0);
|
|
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
|
elm_object_part_content_set(o_bg, "e.swallow.content", o);
|
|
evas_object_show(o);
|
|
evas_object_smart_callback_add(o, "delay,changed", _cb_delay, NULL);
|
|
|
|
elm_slider_value_set(o_sl, delay);
|
|
|
|
o_bx = o = elm_box_add(delay_win);
|
|
elm_box_horizontal_set(o, EINA_TRUE);
|
|
elm_box_homogeneous_set(o, EINA_TRUE);
|
|
elm_object_part_content_set(o_bg, "e.swallow.buttons", o);
|
|
evas_object_show(o);
|
|
|
|
o = elm_button_add(delay_win);
|
|
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
|
elm_object_text_set(o, _("OK"));
|
|
elm_box_pack_end(o_bx, o);
|
|
evas_object_show(o);
|
|
evas_object_smart_callback_add(o, "clicked", _cb_ok, NULL);
|
|
|
|
o = elm_button_add(delay_win);
|
|
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
|
elm_object_text_set(o, _("Cancel"));
|
|
elm_box_pack_end(o_bx, o);
|
|
evas_object_show(o);
|
|
evas_object_smart_callback_add(o, "clicked", _cb_cancel, NULL);
|
|
|
|
evas_object_show(delay_win);
|
|
}
|
|
|
|
void
|
|
delay_abort(void)
|
|
{
|
|
E_FREE_FUNC(delay_win, evas_object_del);
|
|
}
|