forked from enlightenment/efl
elm frame - add more styles (icon, border and overlay variants)
this shoulpd have been day 0, but now add new styles that add an elm.swallow.icon spot for an icon in the frame and a style that looks like a border (also with icon as borders have them) and a close button too. overlay variants are for overlaying so might be semi-transparent
This commit is contained in:
parent
6a657acf13
commit
7c16765e1b
|
@ -11,15 +11,20 @@ group { name: "elm/frame/base/default";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
WIN_SHAD("base", "shadow", "win_shad_flat.png", 10, 10, 7, 14, 0.25);
|
WIN_SHAD("base", "shadow", "win_shad_flat.png", 10, 10, 7, 14, 0.25);
|
||||||
part { name: "base"; type: RECT;
|
part { name: "base"; type: SPACER;
|
||||||
scale: 1;
|
scale: 1;
|
||||||
description { state: "default" 0.0;
|
description { state: "default" 0.0;
|
||||||
rel1.offset: 6 6;
|
rel1.offset: 6 6;
|
||||||
rel2.offset: -7 -7;
|
rel2.offset: -7 -7;
|
||||||
color: 80 80 80 255;
|
|
||||||
offscale;
|
offscale;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
part { name: "top_bg"; type: RECT;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel.to: "top";
|
||||||
|
color: 80 80 80 255;
|
||||||
|
}
|
||||||
|
}
|
||||||
part { name: "top"; type: SPACER;
|
part { name: "top"; type: SPACER;
|
||||||
scale: 1;
|
scale: 1;
|
||||||
description { state: "default" 0.0;
|
description { state: "default" 0.0;
|
||||||
|
@ -33,15 +38,14 @@ group { name: "elm/frame/base/default";
|
||||||
part { name: "elm.text"; type: TEXT;
|
part { name: "elm.text"; type: TEXT;
|
||||||
scale: 1;
|
scale: 1;
|
||||||
description { state: "default" 0.0;
|
description { state: "default" 0.0;
|
||||||
|
rel.to: "base";
|
||||||
rel1.offset: 4 4;
|
rel1.offset: 4 4;
|
||||||
rel1.to: "base";
|
|
||||||
rel2.relative: 1.0 0.0;
|
rel2.relative: 1.0 0.0;
|
||||||
rel2.offset: -5 4;
|
rel2.offset: -5 4;
|
||||||
rel2.to: "base";
|
|
||||||
align: 0.0 0.0;
|
align: 0.0 0.0;
|
||||||
color: 255 255 255 255;
|
color: 255 255 255 255;
|
||||||
text { font: FNBD; size: 10;
|
text { font: FNBD; size: 10;
|
||||||
align: 0.0 0.0;
|
align: 0.0 0.5;
|
||||||
min: 0 1;
|
min: 0 1;
|
||||||
}
|
}
|
||||||
fixed: 0 1;
|
fixed: 0 1;
|
||||||
|
@ -133,6 +137,117 @@ group { name: "elm/frame/base/default";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
group { name: "elm/frame/base/icon";
|
||||||
|
inherit: "elm/frame/base/default";
|
||||||
|
parts {
|
||||||
|
part { name: "elm.swallow.icon"; type: SWALLOW;
|
||||||
|
insert_after: "top_bg";
|
||||||
|
scale: 1;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel.to: "base";
|
||||||
|
rel1.to_y: "elm.text";
|
||||||
|
rel2.to_y: "elm.text";
|
||||||
|
rel1.offset: 4 0;
|
||||||
|
rel2.relative: 0.0 0.0;
|
||||||
|
rel2.offset: 4 -1;
|
||||||
|
align: 0.0 0.5;
|
||||||
|
min: 15 15;
|
||||||
|
offscale;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "elm.text";
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.to_x: "elm.swallow.icon";
|
||||||
|
rel1.relative: 1.0 0.0;
|
||||||
|
min: 0 15;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
group { name: "elm/frame/base/border";
|
||||||
|
inherit: "elm/frame/base/icon";
|
||||||
|
parts {
|
||||||
|
part { name: "top_bg";
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
color: 32 32 32 255;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "elm.text";
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel2.to_x: "close";
|
||||||
|
rel2.relative: 0.0 0.0;
|
||||||
|
min: 0 15;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "close";
|
||||||
|
scale: 1;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel.to: "base";
|
||||||
|
rel1.to_y: "elm.text";
|
||||||
|
rel2.to_y: "elm.text";
|
||||||
|
rel1.offset: -5 0;
|
||||||
|
rel1.relative: 1.0 0.0;
|
||||||
|
rel2.offset: -5 -1;
|
||||||
|
align: 1.0 0.5;
|
||||||
|
min: 15 15;
|
||||||
|
max: 15 15;
|
||||||
|
offscale;
|
||||||
|
image.normal: "i-close";
|
||||||
|
color: 255 255 255 255;
|
||||||
|
}
|
||||||
|
description { state: "clicked" 0.0;
|
||||||
|
inherit: "default" 0.0;
|
||||||
|
color: 220 220 220 255;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
program { signal: "mouse,down,1"; source: "close";
|
||||||
|
action: STATE_SET "clicked" 0.0;
|
||||||
|
target: "close";
|
||||||
|
}
|
||||||
|
program { signal: "mouse,up,1"; source: "close";
|
||||||
|
action: STATE_SET "default" 0.0;
|
||||||
|
target: "close";
|
||||||
|
}
|
||||||
|
program { signal: "mouse,clicked,1"; source: "close";
|
||||||
|
action: SIGNAL_EMIT "elm,action,click,close" "elm";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
group { name: "elm/frame/base/overlay";
|
||||||
|
inherit: "elm/frame/base/default";
|
||||||
|
parts {
|
||||||
|
part { name: "bg";
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
color: 0 0 0 160;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
group { name: "elm/frame/base/icon_overlay";
|
||||||
|
inherit: "elm/frame/base/icon";
|
||||||
|
parts {
|
||||||
|
part { name: "bg";
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
color: 0 0 0 160;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
group { name: "elm/frame/base/border_overlay";
|
||||||
|
inherit: "elm/frame/base/border";
|
||||||
|
parts {
|
||||||
|
part { name: "bg";
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
color: 0 0 0 160;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
group { name: "elm/frame/base/pad_small";
|
group { name: "elm/frame/base/pad_small";
|
||||||
parts {
|
parts {
|
||||||
part { name: "b0"; type: SPACER;
|
part { name: "b0"; type: SPACER;
|
||||||
|
|
|
@ -89,6 +89,21 @@ test_scaling2(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_
|
||||||
evas_object_show(fr);
|
evas_object_show(fr);
|
||||||
|
|
||||||
fr = elm_frame_add(win);
|
fr = elm_frame_add(win);
|
||||||
|
elm_object_style_set(fr, "icon");
|
||||||
|
elm_object_text_set(fr, "Scale: 0.75");
|
||||||
|
lb = elm_label_add(win);
|
||||||
|
elm_object_text_set(lb,
|
||||||
|
"Parent frame scale<br/>"
|
||||||
|
"is 0.75. Child should<br/>"
|
||||||
|
"inherit it.");
|
||||||
|
elm_object_content_set(fr, lb);
|
||||||
|
elm_object_scale_set(fr, 0.75);
|
||||||
|
evas_object_show(lb);
|
||||||
|
elm_box_pack_end(bx, fr);
|
||||||
|
evas_object_show(fr);
|
||||||
|
|
||||||
|
fr = elm_frame_add(win);
|
||||||
|
elm_object_style_set(fr, "border");
|
||||||
elm_object_text_set(fr, "Scale: 1.0");
|
elm_object_text_set(fr, "Scale: 1.0");
|
||||||
lb = elm_label_add(win);
|
lb = elm_label_add(win);
|
||||||
elm_object_text_set(lb,
|
elm_object_text_set(lb,
|
||||||
|
@ -102,6 +117,21 @@ test_scaling2(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_
|
||||||
evas_object_show(fr);
|
evas_object_show(fr);
|
||||||
|
|
||||||
fr = elm_frame_add(win);
|
fr = elm_frame_add(win);
|
||||||
|
elm_object_style_set(fr, "overlay");
|
||||||
|
elm_object_text_set(fr, "Scale: 1.5");
|
||||||
|
lb = elm_label_add(win);
|
||||||
|
elm_object_text_set(lb,
|
||||||
|
"Parent frame scale<br/>"
|
||||||
|
"is 1.5. Child should<br/>"
|
||||||
|
"inherit it.");
|
||||||
|
elm_object_content_set(fr, lb);
|
||||||
|
evas_object_show(lb);
|
||||||
|
elm_object_scale_set(fr, 1.5);
|
||||||
|
elm_box_pack_end(bx, fr);
|
||||||
|
evas_object_show(fr);
|
||||||
|
|
||||||
|
fr = elm_frame_add(win);
|
||||||
|
elm_object_style_set(fr, "icon_overlay");
|
||||||
elm_object_text_set(fr, "Scale: 2.0");
|
elm_object_text_set(fr, "Scale: 2.0");
|
||||||
lb = elm_label_add(win);
|
lb = elm_label_add(win);
|
||||||
elm_object_text_set(lb,
|
elm_object_text_set(lb,
|
||||||
|
@ -114,6 +144,20 @@ test_scaling2(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_
|
||||||
elm_box_pack_end(bx, fr);
|
elm_box_pack_end(bx, fr);
|
||||||
evas_object_show(fr);
|
evas_object_show(fr);
|
||||||
|
|
||||||
|
fr = elm_frame_add(win);
|
||||||
|
elm_object_style_set(fr, "border_overlay");
|
||||||
|
elm_object_text_set(fr, "Scale: 3.0");
|
||||||
|
lb = elm_label_add(win);
|
||||||
|
elm_object_text_set(lb,
|
||||||
|
"Parent frame scale<br/>"
|
||||||
|
"is 3.0. Child should<br/>"
|
||||||
|
"inherit it.");
|
||||||
|
elm_object_content_set(fr, lb);
|
||||||
|
evas_object_show(lb);
|
||||||
|
elm_object_scale_set(fr, 3.0);
|
||||||
|
elm_box_pack_end(bx, fr);
|
||||||
|
evas_object_show(fr);
|
||||||
|
|
||||||
evas_object_resize(win, 320, 320);
|
evas_object_resize(win, 320, 320);
|
||||||
evas_object_show(win);
|
evas_object_show(win);
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,6 +94,15 @@ _on_frame_clicked(void *data,
|
||||||
evas_object_smart_callback_call(data, "clicked", NULL);
|
evas_object_smart_callback_call(data, "clicked", NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_on_frame_close(void *data,
|
||||||
|
Evas_Object *obj EINA_UNUSED,
|
||||||
|
const char *sig EINA_UNUSED,
|
||||||
|
const char *src EINA_UNUSED)
|
||||||
|
{
|
||||||
|
evas_object_smart_callback_call(data, "close", NULL);
|
||||||
|
}
|
||||||
|
|
||||||
/* using deferred sizing evaluation, just like the parent */
|
/* using deferred sizing evaluation, just like the parent */
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_frame_efl_canvas_group_group_calculate(Eo *obj, Efl_Ui_Frame_Data *sd)
|
_efl_ui_frame_efl_canvas_group_group_calculate(Eo *obj, Efl_Ui_Frame_Data *sd)
|
||||||
|
@ -139,6 +148,9 @@ _efl_ui_frame_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Frame_Data *_pd EINA_UN
|
||||||
edje_object_signal_callback_add
|
edje_object_signal_callback_add
|
||||||
(wd->resize_obj, "elm,action,click", "elm",
|
(wd->resize_obj, "elm,action,click", "elm",
|
||||||
_on_frame_clicked, obj);
|
_on_frame_clicked, obj);
|
||||||
|
edje_object_signal_callback_add
|
||||||
|
(wd->resize_obj, "elm,action,close", "elm",
|
||||||
|
_on_frame_close, obj);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
* @ref Elm_Layout :
|
* @ref Elm_Layout :
|
||||||
* - @c "clicked" - The user has clicked the frame's label
|
* - @c "clicked" - The user has clicked the frame's label
|
||||||
* - @c "language,changed" - the program's language changed (since 1.9)
|
* - @c "language,changed" - the program's language changed (since 1.9)
|
||||||
|
* - @c "close" - The user has clicked the close button if there is one
|
||||||
*
|
*
|
||||||
* Default content parts of the frame widget that you can use for are:
|
* Default content parts of the frame widget that you can use for are:
|
||||||
* @li "default" - A content of the frame
|
* @li "default" - A content of the frame
|
||||||
|
|
Loading…
Reference in New Issue