use new elm_frame style to have the close button
This commit is contained in:
parent
4e2275a569
commit
97019fe911
|
@ -85,31 +85,6 @@ collections
|
|||
}
|
||||
// SETTINGS
|
||||
|
||||
// settings bg
|
||||
part { name: "entice.settingsbg"; type: RECT;
|
||||
mouse_events: 1;
|
||||
repeat_events: 1;
|
||||
description { state: "default" 0.0;
|
||||
color: 64 64 64 255;
|
||||
rel.to: "entice.settings.panel";
|
||||
rel1.offset: 0 0;
|
||||
rel2.offset: -1 -1;
|
||||
visible: 0;
|
||||
}
|
||||
description { state: "shown" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
visible: 1;
|
||||
}
|
||||
}
|
||||
program { signal: "state,settingsbg,show"; source: "entice";
|
||||
action: STATE_SET "shown" 0.0;
|
||||
target: "entice.settingsbg";
|
||||
}
|
||||
program { signal: "state,settingsbg,hide"; source: "entice";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "entice.settingsbg";
|
||||
}
|
||||
|
||||
part { name: "entice.settings.panel"; type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
fixed: 1 1;
|
||||
|
@ -136,31 +111,6 @@ collections
|
|||
|
||||
// EXIF
|
||||
|
||||
// exif bg
|
||||
part { name: "entice.exifbg"; type: RECT;
|
||||
mouse_events: 1;
|
||||
repeat_events: 1;
|
||||
description { state: "default" 0.0;
|
||||
color: 64 64 64 255;
|
||||
rel.to: "entice.exif.panel";
|
||||
rel1.offset: 0 0;
|
||||
rel2.offset: -1 -1;
|
||||
visible: 0;
|
||||
}
|
||||
description { state: "shown" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
visible: 1;
|
||||
}
|
||||
}
|
||||
program { signal: "state,exifbg,show"; source: "entice";
|
||||
action: STATE_SET "shown" 0.0;
|
||||
target: "entice.exifbg";
|
||||
}
|
||||
program { signal: "state,exifbg,hide"; source: "entice";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "entice.exifbg";
|
||||
}
|
||||
|
||||
part { name: "entice.exif.panel"; type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
fixed: 1 1;
|
||||
|
|
|
@ -267,14 +267,12 @@ _cb_image_ctxpopup_settings_cb(void *win, Evas_Object *obj, void *event_info EIN
|
|||
if (entice->exif_shown)
|
||||
{
|
||||
elm_object_signal_emit(entice->layout, "state,exif,hide", "entice");
|
||||
elm_object_signal_emit(entice->layout, "state,exifbg,hide", "entice");
|
||||
entice->exif_shown = EINA_FALSE;
|
||||
}
|
||||
|
||||
if (!entice->settings_shown)
|
||||
{
|
||||
elm_object_signal_emit(entice->layout, "state,settings,show", "entice");
|
||||
elm_object_signal_emit(entice->layout, "state,settingsbg,show", "entice");
|
||||
entice->settings_shown = EINA_TRUE;
|
||||
}
|
||||
|
||||
|
@ -293,14 +291,12 @@ _cb_image_ctxpopup_exif_cb(void *win, Evas_Object *obj, void *event_info EINA_UN
|
|||
if (entice->settings_shown)
|
||||
{
|
||||
elm_object_signal_emit(entice->layout, "state,settings,hide", "entice");
|
||||
elm_object_signal_emit(entice->layout, "state,settingsbg,hide", "entice");
|
||||
entice->settings_shown = EINA_FALSE;
|
||||
}
|
||||
|
||||
if (!entice->exif_shown)
|
||||
{
|
||||
elm_object_signal_emit(entice->layout, "state,exif,show", "entice");
|
||||
elm_object_signal_emit(entice->layout, "state,exifbg,show", "entice");
|
||||
entice->exif_shown = EINA_TRUE;
|
||||
}
|
||||
|
||||
|
|
|
@ -70,16 +70,64 @@ static Entice_Exif_Entry entice_exif_gps_entries[] =
|
|||
{ NULL, "DateStamp:", "GPSDateStamp" },
|
||||
};
|
||||
|
||||
static Eina_Bool
|
||||
_entice_exif_focus_set_cb(void *win)
|
||||
{
|
||||
Entice *entice = evas_object_data_get(win, "entice");
|
||||
|
||||
entice->exif_timer = NULL;
|
||||
elm_object_focus_set(entice->event_kbd, EINA_TRUE);
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
_cb_op_exif_close(void *win,
|
||||
Evas_Object *obj,
|
||||
void *_event EINA_UNUSED)
|
||||
_entice_exif_key_down_cb(void *win,
|
||||
Evas *evas EINA_UNUSED,
|
||||
Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info)
|
||||
{
|
||||
Entice *entice;
|
||||
Evas_Event_Key_Down *ev;
|
||||
Eina_Bool ctrl, alt, shift, winm, meta, hyper; /* modifiers */
|
||||
|
||||
EINA_SAFETY_ON_NULL_RETURN(event_info);
|
||||
|
||||
ev = (Evas_Event_Key_Down *)event_info;
|
||||
|
||||
ctrl = evas_key_modifier_is_set(ev->modifiers, "Control");
|
||||
alt = evas_key_modifier_is_set(ev->modifiers, "Alt");
|
||||
shift = evas_key_modifier_is_set(ev->modifiers, "Shift");
|
||||
winm = evas_key_modifier_is_set(ev->modifiers, "Super");
|
||||
meta =
|
||||
evas_key_modifier_is_set(ev->modifiers, "Meta") ||
|
||||
evas_key_modifier_is_set(ev->modifiers, "AltGr") ||
|
||||
evas_key_modifier_is_set(ev->modifiers, "ISO_Level3_Shift");
|
||||
hyper = evas_key_modifier_is_set(ev->modifiers, "Hyper");
|
||||
|
||||
entice = evas_object_data_get(win, "entice");
|
||||
|
||||
/* No modifier */
|
||||
if (!ctrl && !alt && !shift && !winm && !meta && !hyper)
|
||||
{
|
||||
if (!strcmp(ev->key, "Escape"))
|
||||
{
|
||||
elm_object_signal_emit(entice->layout, "state,exif,hide", "entice");
|
||||
entice->exif_shown = EINA_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
entice->exif_timer = ecore_timer_add(0.1, _entice_exif_focus_set_cb, win);
|
||||
}
|
||||
|
||||
static void
|
||||
_entice_exif_close_cb(void *win,
|
||||
Evas_Object *obj,
|
||||
void *_event EINA_UNUSED)
|
||||
{
|
||||
Entice *entice;
|
||||
|
||||
entice = evas_object_data_get(win, "entice");
|
||||
elm_object_signal_emit(entice->layout, "state,exif,hide", "entice");
|
||||
elm_object_signal_emit(entice->layout, "state,exifbg,hide", "entice");
|
||||
entice->exif_shown = EINA_FALSE;
|
||||
}
|
||||
|
||||
|
@ -92,12 +140,9 @@ entice_exif_init(Evas_Object *win)
|
|||
{
|
||||
Entice *entice;
|
||||
Evas_Object *o;
|
||||
Evas_Object *scroller;
|
||||
Evas_Object *vbox;
|
||||
Evas_Object *hbox;
|
||||
Evas_Object *box;
|
||||
Evas_Object *icon;
|
||||
Evas_Object *frame;
|
||||
Evas_Object *scroller;
|
||||
Evas_Object *box;
|
||||
Evas_Object *table;
|
||||
size_t i;
|
||||
|
||||
|
@ -105,41 +150,29 @@ entice_exif_init(Evas_Object *win)
|
|||
if (entice->exif_created)
|
||||
return;
|
||||
|
||||
o = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(o, 0.0, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(o, 0.0, EVAS_HINT_FILL);
|
||||
o = elm_frame_add(win);
|
||||
elm_object_style_set(o, "border_overlay");
|
||||
elm_object_focus_allow_set(o, EINA_FALSE);
|
||||
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_object_text_set(o, "EXIF");
|
||||
if (!evas_object_key_grab(o, "Escape", 0, 0, EINA_TRUE))
|
||||
{
|
||||
ERR("Can not grab the 'Esc' key");
|
||||
}
|
||||
evas_object_show(o);
|
||||
vbox = o;
|
||||
|
||||
o = elm_box_add(vbox);
|
||||
evas_object_size_hint_weight_set(o, 0.0, 0.0);
|
||||
evas_object_size_hint_align_set(o, 1.0, 0.0);
|
||||
elm_box_horizontal_set(o, EINA_TRUE);
|
||||
elm_box_pack_end(vbox, o);
|
||||
evas_object_show(o);
|
||||
hbox = o;
|
||||
|
||||
o = elm_icon_add(win);
|
||||
evas_object_size_hint_align_set(o, 1.0, 0.0);
|
||||
elm_icon_standard_set(o, "window-close");
|
||||
evas_object_show(o);
|
||||
icon = o;
|
||||
|
||||
o = elm_button_add(vbox);
|
||||
elm_object_content_set(o, icon);
|
||||
evas_object_size_hint_align_set(o, 1.0, 0.0);
|
||||
elm_box_pack_end(hbox, o);
|
||||
evas_object_show(o);
|
||||
evas_object_smart_callback_add(o, "clicked",
|
||||
_cb_op_exif_close,
|
||||
frame = o;
|
||||
evas_object_smart_callback_add(frame, "close",
|
||||
_entice_exif_close_cb,
|
||||
win);
|
||||
evas_object_event_callback_add(frame, EVAS_CALLBACK_KEY_DOWN,
|
||||
_entice_exif_key_down_cb, win);
|
||||
|
||||
o = elm_scroller_add(win);
|
||||
elm_scroller_content_min_limit(o, EINA_TRUE, EINA_FALSE);
|
||||
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
||||
elm_box_pack_end(vbox, o);
|
||||
elm_object_content_set(frame, o);
|
||||
evas_object_show(o);
|
||||
scroller = o;
|
||||
|
||||
|
@ -152,20 +185,11 @@ entice_exif_init(Evas_Object *win)
|
|||
|
||||
/* EXIF informations */
|
||||
|
||||
o = elm_frame_add(box);
|
||||
o = elm_table_add(box);
|
||||
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_object_focus_allow_set(o, EINA_FALSE);
|
||||
elm_object_text_set(o, "EXIF");
|
||||
elm_box_pack_end(box, o);
|
||||
evas_object_show(o);
|
||||
frame = o;
|
||||
|
||||
o = elm_table_add(frame);
|
||||
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_object_content_set(frame, o);
|
||||
evas_object_show(o);
|
||||
table = o;
|
||||
|
||||
for (i = 0; i < sizeof(entice_exif_entries) / sizeof(Entice_Exif_Entry); i++)
|
||||
|
@ -190,18 +214,16 @@ entice_exif_init(Evas_Object *win)
|
|||
|
||||
/* GPS informations */
|
||||
|
||||
o = elm_frame_add(box);
|
||||
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_object_focus_allow_set(o, EINA_FALSE);
|
||||
elm_object_text_set(o, "GPS");
|
||||
o = elm_separator_add(box);
|
||||
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
|
||||
elm_separator_horizontal_set(o, EINA_TRUE);
|
||||
elm_box_pack_end(box, o);
|
||||
evas_object_show(o);
|
||||
frame = o;
|
||||
|
||||
o = elm_table_add(frame);
|
||||
o = elm_table_add(box);
|
||||
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_object_content_set(frame, o);
|
||||
elm_box_pack_end(box, o);
|
||||
evas_object_show(o);
|
||||
table = o;
|
||||
|
||||
|
@ -225,7 +247,7 @@ entice_exif_init(Evas_Object *win)
|
|||
entice_exif_gps_entries[i].button = o;
|
||||
}
|
||||
|
||||
elm_object_part_content_set(entice->layout, "entice.exif.panel", vbox);
|
||||
elm_object_part_content_set(entice->layout, "entice.exif.panel", frame);
|
||||
|
||||
entice->exif_created = EINA_TRUE;
|
||||
}
|
||||
|
|
|
@ -113,7 +113,6 @@ void entice_key_handle(Evas_Object *win, Evas_Event_Key_Down *ev)
|
|||
if (!entice->settings_shown)
|
||||
{
|
||||
elm_object_signal_emit(entice->layout, "state,settings,show", "entice");
|
||||
elm_object_signal_emit(entice->layout, "state,settingsbg,show", "entice");
|
||||
entice->settings_shown = EINA_TRUE;
|
||||
}
|
||||
}
|
||||
|
@ -123,7 +122,6 @@ void entice_key_handle(Evas_Object *win, Evas_Event_Key_Down *ev)
|
|||
if (!entice->exif_shown)
|
||||
{
|
||||
elm_object_signal_emit(entice->layout, "state,exif,show", "entice");
|
||||
elm_object_signal_emit(entice->layout, "state,exifbg,show", "entice");
|
||||
entice->exif_shown = EINA_TRUE;
|
||||
}
|
||||
}
|
||||
|
@ -133,11 +131,9 @@ void entice_key_handle(Evas_Object *win, Evas_Event_Key_Down *ev)
|
|||
fflush(stderr);
|
||||
|
||||
elm_object_signal_emit(entice->layout, "state,settings,hide", "entice");
|
||||
elm_object_signal_emit(entice->layout, "state,settingsbg,hide", "entice");
|
||||
entice->settings_shown = EINA_FALSE;
|
||||
|
||||
elm_object_signal_emit(entice->layout, "state,exif,hide", "entice");
|
||||
elm_object_signal_emit(entice->layout, "state,exifbg,hide", "entice");
|
||||
entice->exif_shown = EINA_FALSE;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -89,7 +89,6 @@ _cb_key_down(void *win,
|
|||
if (!strcmp(ev->key, "Escape"))
|
||||
{
|
||||
elm_object_signal_emit(entice->layout, "state,settings,hide", "entice");
|
||||
elm_object_signal_emit(entice->layout, "state,settingsbg,hide", "entice");
|
||||
entice->settings_shown = EINA_FALSE;
|
||||
}
|
||||
}
|
||||
|
@ -227,7 +226,6 @@ _cb_op_settings_close(void *win,
|
|||
|
||||
entice = evas_object_data_get(win, "entice");
|
||||
elm_object_signal_emit(entice->layout, "state,settings,hide", "entice");
|
||||
elm_object_signal_emit(entice->layout, "state,settingsbg,hide", "entice");
|
||||
entice->settings_shown = EINA_FALSE;
|
||||
}
|
||||
|
||||
|
@ -262,11 +260,8 @@ entice_settings_init(Evas_Object *win)
|
|||
Evas_Object *o;
|
||||
Evas_Object *frame;
|
||||
Evas_Object *scroller;
|
||||
Evas_Object *vbox;
|
||||
Evas_Object *hbox;
|
||||
Evas_Object *box;
|
||||
Evas_Object *hbox2;
|
||||
Evas_Object *icon;
|
||||
Evas_Object *rdg;
|
||||
int w;
|
||||
int h;
|
||||
|
@ -283,36 +278,8 @@ entice_settings_init(Evas_Object *win)
|
|||
ctx->config = entice->config;
|
||||
evas_object_geometry_get(win, NULL, NULL, &w, &h);
|
||||
|
||||
o = elm_box_add(win);
|
||||
evas_object_size_hint_weight_set(o, 0.0, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(o, 0.0, EVAS_HINT_FILL);
|
||||
evas_object_show(o);
|
||||
vbox = o;
|
||||
|
||||
o = elm_box_add(vbox);
|
||||
evas_object_size_hint_weight_set(o, 0.0, 0.0);
|
||||
evas_object_size_hint_align_set(o, 1.0, 0.0);
|
||||
elm_box_horizontal_set(o, EINA_TRUE);
|
||||
elm_box_pack_end(vbox, o);
|
||||
evas_object_show(o);
|
||||
hbox = o;
|
||||
|
||||
o = elm_icon_add(win);
|
||||
evas_object_size_hint_align_set(o, 1.0, 0.0);
|
||||
elm_icon_standard_set(o, "window-close");
|
||||
evas_object_show(o);
|
||||
icon = o;
|
||||
|
||||
o = elm_button_add(vbox);
|
||||
elm_object_content_set(o, icon);
|
||||
evas_object_size_hint_align_set(o, 1.0, 0.0);
|
||||
elm_box_pack_end(hbox, o);
|
||||
evas_object_smart_callback_add(o, "clicked",
|
||||
_cb_op_settings_close,
|
||||
win);
|
||||
evas_object_show(o);
|
||||
|
||||
o = elm_frame_add(win);
|
||||
elm_object_style_set(o, "border_overlay");
|
||||
elm_object_focus_allow_set(o, EINA_FALSE);
|
||||
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
@ -321,9 +288,11 @@ entice_settings_init(Evas_Object *win)
|
|||
{
|
||||
ERR("Can not grab the 'Esc' key");
|
||||
}
|
||||
elm_box_pack_end(vbox, o);
|
||||
evas_object_show(o);
|
||||
frame = o;
|
||||
evas_object_smart_callback_add(frame, "close",
|
||||
_cb_op_settings_close,
|
||||
win);
|
||||
evas_object_event_callback_add(frame, EVAS_CALLBACK_KEY_DOWN,
|
||||
_cb_key_down, win);
|
||||
|
||||
|
@ -470,7 +439,7 @@ entice_settings_init(Evas_Object *win)
|
|||
|
||||
elm_radio_value_set(rdg, ctx->config->order);
|
||||
|
||||
elm_object_part_content_set(entice->layout, "entice.settings.panel", vbox);
|
||||
elm_object_part_content_set(entice->layout, "entice.settings.panel", frame);
|
||||
|
||||
entice->settings_created = EINA_TRUE;
|
||||
}
|
||||
|
|
|
@ -60,6 +60,7 @@ struct Entice
|
|||
Evas_Object *close; /* close icon */
|
||||
Ecore_Timer *controls_timer;
|
||||
Ecore_Timer *settings_timer;
|
||||
Ecore_Timer *exif_timer;
|
||||
Eina_Bool settings_created;
|
||||
Eina_Bool settings_shown;
|
||||
Eina_Bool controls_shown;
|
||||
|
|
Loading…
Reference in New Issue