forked from enlightenment/efl
Intruduce Efl.Ui.Panel (Create Efl Ui Widget from elm widget(elm_panel))
Summary: Create Efl Ui Widget from elm widget(elm_panel) Test Plan: elementary_test -> efl_ui_panel Reviewers: woohyun, Jaehyun_Cho, segfaultxavi Reviewed By: Jaehyun_Cho, segfaultxavi Subscribers: segfaultxavi, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D7238
This commit is contained in:
parent
2e2c225093
commit
d9a222ecf5
|
@ -1026,6 +1026,7 @@ elementary/themes/edc/efl/grid.edc \
|
|||
elementary/themes/edc/efl/navigation_bar.edc \
|
||||
elementary/themes/edc/efl/navigation_layout.edc \
|
||||
elementary/themes/edc/efl/tags.edc \
|
||||
elementary/themes/edc/efl/panel.edc \
|
||||
elementary/themes/edc/efl/nstate.edc \
|
||||
elementary/themes/edc/efl/panes.edc \
|
||||
elementary/themes/edc/efl/photocam.edc \
|
||||
|
|
|
@ -186,6 +186,7 @@ collections {
|
|||
#include "edc/efl/video.edc"
|
||||
#include "edc/efl/focus.edc"
|
||||
#include "edc/efl/tags.edc"
|
||||
#include "edc/efl/panel.edc"
|
||||
#include "edc/efl/tooltip.edc"
|
||||
#include "edc/efl/photocam.edc"
|
||||
#include "edc/efl/progress.edc"
|
||||
|
|
|
@ -0,0 +1,831 @@
|
|||
group { name: "efl/panel";
|
||||
data {
|
||||
item: "handler_size" "30";
|
||||
}
|
||||
parts {
|
||||
part { name: "efl.content";
|
||||
type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
group { name: "efl/panel/scrollable/left";
|
||||
parts {
|
||||
part { name: "efl.panel_area";
|
||||
type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
rel2.relative: 0.0 1.0;
|
||||
align: 0.0 0.5;
|
||||
fixed: 1 1;
|
||||
visible: 0;
|
||||
}
|
||||
description { state: "visible" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
visible: 1;
|
||||
}
|
||||
}
|
||||
part { name: "efl.event_area";
|
||||
type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
rel1 {
|
||||
relative: 1.0 0.0;
|
||||
to: "efl.panel_area";
|
||||
}
|
||||
rel2 {
|
||||
relative: 1.0 1.0;
|
||||
to: "efl.panel_area";
|
||||
}
|
||||
align: 0.0 0.5;
|
||||
fixed: 1 1;
|
||||
visible: 0;
|
||||
}
|
||||
description { state: "visible" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
visible: 1;
|
||||
}
|
||||
}
|
||||
part { name: "access.outline";
|
||||
type: RECT;
|
||||
repeat_events: 1;
|
||||
description { state: "default" 0.0;
|
||||
rel1.to: "efl.panel_area";
|
||||
rel2.to: "efl.panel_area";
|
||||
color: 0 0 0 0;
|
||||
}
|
||||
}
|
||||
part { name: "bg";
|
||||
type: RECT;
|
||||
description { state: "default" 0.0;
|
||||
rel1.to: "efl.panel_area";
|
||||
rel2.to: "efl.panel_area";
|
||||
color: 64 64 64 255;
|
||||
visible: 0;
|
||||
}
|
||||
description { state: "visible" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
visible: 1;
|
||||
}
|
||||
}
|
||||
part { name: "efl.content";
|
||||
type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
rel1.to: "efl.panel_area";
|
||||
rel2.to: "efl.panel_area";
|
||||
visible: 0;
|
||||
}
|
||||
description { state: "visible" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
visible: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
programs {
|
||||
program { name: "active";
|
||||
signal: "efl,state,content,visible";
|
||||
source: "efl";
|
||||
action: STATE_SET "visible" 0.0;
|
||||
target: "efl.panel_area";
|
||||
target: "efl.event_area";
|
||||
target: "bg";
|
||||
target: "efl.content";
|
||||
}
|
||||
program { name: "inactive";
|
||||
signal: "efl,state,content,hidden";
|
||||
source: "efl";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "efl.panel_area";
|
||||
target: "efl.event_area";
|
||||
target: "bg";
|
||||
target: "efl.content";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
group { name: "efl/panel/scrollable/right";
|
||||
parts {
|
||||
part { name: "efl.event_area";
|
||||
type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
rel2.relative: 0.0 1.0;
|
||||
align: 0.0 0.5;
|
||||
fixed: 1 1;
|
||||
visible: 0;
|
||||
}
|
||||
description { state: "visible" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
visible: 1;
|
||||
}
|
||||
}
|
||||
part { name: "efl.panel_area";
|
||||
type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
rel1 {
|
||||
relative: 1.0 0.0;
|
||||
to: "efl.event_area";
|
||||
}
|
||||
rel2 {
|
||||
relative: 1.0 1.0;
|
||||
to: "efl.event_area";
|
||||
}
|
||||
align: 0.0 0.5;
|
||||
fixed: 1 1;
|
||||
visible: 0;
|
||||
}
|
||||
description { state: "visible" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
visible: 1;
|
||||
}
|
||||
}
|
||||
part { name: "access.outline";
|
||||
type: RECT;
|
||||
repeat_events: 1;
|
||||
description { state: "default" 0.0;
|
||||
rel1.to: "efl.panel_area";
|
||||
rel2.to: "efl.panel_area";
|
||||
color: 0 0 0 0;
|
||||
}
|
||||
}
|
||||
part { name: "bg";
|
||||
type: RECT;
|
||||
description { state: "default" 0.0;
|
||||
rel1.to: "efl.panel_area";
|
||||
rel2.to: "efl.panel_area";
|
||||
color: 64 64 64 255;
|
||||
visible: 0;
|
||||
}
|
||||
description { state: "visible" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
visible: 1;
|
||||
}
|
||||
}
|
||||
part { name: "efl.content";
|
||||
type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
rel1.to: "efl.panel_area";
|
||||
rel2.to: "efl.panel_area";
|
||||
visible: 0;
|
||||
}
|
||||
description { state: "visible" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
visible: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
programs {
|
||||
program { name: "active";
|
||||
signal: "efl,state,content,visible";
|
||||
source: "efl";
|
||||
action: STATE_SET "visible" 0.0;
|
||||
target: "efl.panel_area";
|
||||
target: "efl.event_area";
|
||||
target: "bg";
|
||||
target: "efl.content";
|
||||
}
|
||||
program { name: "inactive";
|
||||
signal: "efl,state,content,hidden";
|
||||
source: "efl";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "efl.panel_area";
|
||||
target: "efl.event_area";
|
||||
target: "bg";
|
||||
target: "efl.content";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
group { name: "efl/panel/scrollable/top";
|
||||
parts {
|
||||
part { name: "efl.panel_area";
|
||||
type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
rel2.relative: 1.0 0.0;
|
||||
align: 0.5 0.0;
|
||||
fixed: 1 1;
|
||||
visible: 0;
|
||||
}
|
||||
description { state: "visible" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
visible: 1;
|
||||
}
|
||||
}
|
||||
part { name: "efl.event_area";
|
||||
type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
rel1 {
|
||||
relative: 0.0 1.0;
|
||||
to: "efl.panel_area";
|
||||
}
|
||||
rel2 {
|
||||
relative: 1.0 1.0;
|
||||
to: "efl.panel_area";
|
||||
}
|
||||
align: 0.5 0.0;
|
||||
fixed: 1 1;
|
||||
visible: 0;
|
||||
}
|
||||
description { state: "visible" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
visible: 1;
|
||||
}
|
||||
}
|
||||
part { name: "access.outline";
|
||||
type: RECT;
|
||||
repeat_events: 1;
|
||||
description { state: "default" 0.0;
|
||||
rel1.to: "efl.panel_area";
|
||||
rel2.to: "efl.panel_area";
|
||||
color: 0 0 0 0;
|
||||
}
|
||||
}
|
||||
part { name: "bg";
|
||||
type: RECT;
|
||||
description { state: "default" 0.0;
|
||||
rel1.to: "efl.panel_area";
|
||||
rel2.to: "efl.panel_area";
|
||||
color: 64 64 64 255;
|
||||
visible: 0;
|
||||
}
|
||||
description { state: "visible" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
visible: 1;
|
||||
}
|
||||
}
|
||||
part { name: "efl.content";
|
||||
type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
rel1.to: "efl.panel_area";
|
||||
rel2.to: "efl.panel_area";
|
||||
visible: 0;
|
||||
}
|
||||
description { state: "visible" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
visible: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
programs {
|
||||
program { name: "active";
|
||||
signal: "efl,state,content,visible";
|
||||
source: "efl";
|
||||
action: STATE_SET "visible" 0.0;
|
||||
target: "efl.panel_area";
|
||||
target: "efl.event_area";
|
||||
target: "bg";
|
||||
target: "efl.content";
|
||||
}
|
||||
program { name: "inactive";
|
||||
signal: "efl,state,content,hidden";
|
||||
source: "efl";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "efl.panel_area";
|
||||
target: "efl.event_area";
|
||||
target: "bg";
|
||||
target: "efl.content";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
group { name: "efl/panel/scrollable/bottom";
|
||||
parts {
|
||||
part { name: "efl.event_area";
|
||||
type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
rel2.relative: 1.0 0.0;
|
||||
align: 0.5 0.0;
|
||||
fixed: 1 1;
|
||||
visible: 0;
|
||||
}
|
||||
description { state: "visible" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
visible: 1;
|
||||
}
|
||||
}
|
||||
part { name: "efl.panel_area";
|
||||
type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
rel1 {
|
||||
relative: 0.0 1.0;
|
||||
to: "efl.event_area";
|
||||
}
|
||||
rel2 {
|
||||
relative: 1.0 1.0;
|
||||
to: "efl.event_area";
|
||||
}
|
||||
align: 0.5 0.0;
|
||||
fixed: 1 1;
|
||||
visible: 0;
|
||||
}
|
||||
description { state: "visible" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
visible: 1;
|
||||
}
|
||||
}
|
||||
part { name: "access.outline";
|
||||
type: RECT;
|
||||
repeat_events: 1;
|
||||
description { state: "default" 0.0;
|
||||
rel1.to: "efl.panel_area";
|
||||
rel2.to: "efl.panel_area";
|
||||
color: 0 0 0 0;
|
||||
}
|
||||
}
|
||||
part { name: "bg";
|
||||
type: RECT;
|
||||
description { state: "default" 0.0;
|
||||
rel1.to: "efl.panel_area";
|
||||
rel2.to: "efl.panel_area";
|
||||
color: 64 64 64 255;
|
||||
visible: 0;
|
||||
}
|
||||
description { state: "visible" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
visible: 1;
|
||||
}
|
||||
}
|
||||
part { name: "efl.content";
|
||||
type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
rel1.to: "efl.panel_area";
|
||||
rel2.to: "efl.panel_area";
|
||||
visible: 0;
|
||||
}
|
||||
description { state: "visible" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
visible: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
programs {
|
||||
program { name: "active";
|
||||
signal: "efl,state,content,visible";
|
||||
source: "efl";
|
||||
action: STATE_SET "visible" 0.0;
|
||||
target: "efl.panel_area";
|
||||
target: "efl.event_area";
|
||||
target: "bg";
|
||||
target: "efl.content";
|
||||
}
|
||||
program { name: "inactive";
|
||||
signal: "efl,state,content,hidden";
|
||||
source: "efl";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "efl.panel_area";
|
||||
target: "efl.event_area";
|
||||
target: "bg";
|
||||
target: "efl.content";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
group { name: "efl/panel/left";
|
||||
images.image: "bevel_out.png" COMP;
|
||||
images.image: "shine.png" COMP;
|
||||
images.image: "shadow_square_tiny.png" COMP;
|
||||
images.image: "holes_tiny_glow_vert.png" COMP;
|
||||
images.image: "holes_tiny_glow_horiz.png" COMP;
|
||||
images.image: "win_glow.png" COMP;
|
||||
images.image: "icon_arrow_right.png" COMP;
|
||||
images.image: "icon_arrow_left.png" COMP;
|
||||
images.image: "icon_arrow_up.png" COMP;
|
||||
images.image: "icon_arrow_down.png" COMP;
|
||||
data.item: "focus_highlight" "on";
|
||||
script {
|
||||
public is_rtl = 0;
|
||||
}
|
||||
parts {
|
||||
part { name: "shadow"; mouse_events: 0;
|
||||
description { state: "default" 0.0;
|
||||
rel1.offset: -3 -2;
|
||||
rel1.to: "base";
|
||||
rel2.offset: 2 4;
|
||||
rel2.to: "base";
|
||||
image.normal: "shadow_square_tiny.png";
|
||||
image.border: 6 6 6 6;
|
||||
fill.smooth: 0;
|
||||
}
|
||||
}
|
||||
part { name: "glow"; mouse_events: 0;
|
||||
description { state: "default" 0.0;
|
||||
image.normal: "win_glow.png";
|
||||
image.border: 9 9 9 9;
|
||||
image.middle: 0;
|
||||
rel1.offset: -5 -5;
|
||||
rel1.to: "base";
|
||||
rel2.offset: 4 4;
|
||||
rel2.to: "base";
|
||||
fill.smooth: 0;
|
||||
color: 255 255 255 0;
|
||||
visible: 0;
|
||||
}
|
||||
description { state: "focused" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
color: 255 255 255 255;
|
||||
visible: 1;
|
||||
}
|
||||
}
|
||||
part { name: "all"; type: SPACER;
|
||||
description { state: "default" 0.0;
|
||||
}
|
||||
}
|
||||
part { name: "base"; type: RECT;
|
||||
description { state: "default" 0.0;
|
||||
rel1.to_x: "all";
|
||||
rel2.to_x: "efl.swallow.event";
|
||||
rel2.relative: 0.0 1.0;
|
||||
rel2.offset: -4 -1;
|
||||
color: 64 64 64 255;
|
||||
}
|
||||
}
|
||||
part { name: "efl.content"; type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
rel1.offset: 4 4;
|
||||
rel1.to: "base";
|
||||
rel2.offset: -5 -5;
|
||||
rel2.to: "base";
|
||||
}
|
||||
}
|
||||
part { name: "bevel"; mouse_events: 0;
|
||||
description { state: "default" 0.0;
|
||||
rel1.to: "base";
|
||||
rel2.to: "base";
|
||||
image.normal: "bevel_out.png";
|
||||
image.border: 1 1 1 1;
|
||||
image.middle: 0;
|
||||
fill.smooth: 0;
|
||||
}
|
||||
}
|
||||
part { name: "shine"; mouse_events: 0;
|
||||
description { state: "default" 0.0;
|
||||
image.normal: "shine.png";
|
||||
rel1.offset: 0 -2;
|
||||
rel1.to: "base";
|
||||
rel2.relative: 1.0 0.0;
|
||||
rel2.offset: -1 2;
|
||||
rel2.to: "base";
|
||||
FIXED_SIZE(69, 5)
|
||||
}
|
||||
}
|
||||
part { name: "efl.swallow.event"; type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
fixed: 1 1;
|
||||
min: 20 20;
|
||||
max: 20 20;
|
||||
align: 1.0 0.5;
|
||||
rel1.relative: 1.0 0.0;
|
||||
rel2.relative: 1.0 1.0;
|
||||
color: 0 0 0 0;
|
||||
}
|
||||
description { state: "hidden" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
align: 0.0 0.5;
|
||||
rel1.relative: 0.0 0.0;
|
||||
rel2.relative: 0.0 1.0;
|
||||
}
|
||||
}
|
||||
part { name: "btn"; type: RECT;
|
||||
description { state: "default" 0.0;
|
||||
rel1.to: "efl.swallow.event";
|
||||
rel2.to: "efl.swallow.event";
|
||||
color: 0 0 0 0;
|
||||
}
|
||||
description { state: "hidden" 0.0;
|
||||
rel1.to: "efl.swallow.event";
|
||||
rel2.to: "efl.swallow.event";
|
||||
}
|
||||
}
|
||||
part { name: "dots"; mouse_events: 0;
|
||||
description { state: "default" 0.0;
|
||||
rel1.to: "icn";
|
||||
rel2.to: "icn";
|
||||
align: 0.0 0.5;
|
||||
image.normal: "holes_tiny_glow_vert.png";
|
||||
FIXED_SIZE(11, 17)
|
||||
}
|
||||
}
|
||||
part { name: "icn"; mouse_events: 0;
|
||||
scale: 1;
|
||||
description { state: "default" 0.0;
|
||||
fixed: 1 1;
|
||||
min: 20 20;
|
||||
max: 20 20;
|
||||
rel1.to: "btn";
|
||||
rel2.to: "btn";
|
||||
image.normal: "icon_arrow_left.png";
|
||||
}
|
||||
description { state: "hidden" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
image.normal: "icon_arrow_right.png";
|
||||
}
|
||||
}
|
||||
}
|
||||
programs {
|
||||
program {
|
||||
signal: "mouse,clicked,1"; source: "btn";
|
||||
action: SIGNAL_EMIT "efl,action,panel,toggle" "efl";
|
||||
}
|
||||
program {
|
||||
signal: "efl,action,show"; source: "efl";
|
||||
action: STATE_SET "default" 0.0;
|
||||
transition: DECELERATE 0.3;
|
||||
target: "efl.swallow.event";
|
||||
target: "base";
|
||||
}
|
||||
program {
|
||||
signal: "efl,action,show"; source: "efl";
|
||||
script {
|
||||
if (get_int(is_rtl) == 0)
|
||||
set_state(PART:"icn", "default", 0.0);
|
||||
else
|
||||
set_state(PART:"icn", "hidden", 0.0);
|
||||
}
|
||||
}
|
||||
program {
|
||||
signal: "edje,state,rtl";
|
||||
source: "edje";
|
||||
script {
|
||||
new st[31];
|
||||
new Float:vl;
|
||||
get_state(PART:"efl.swallow.event", st, 30, vl);
|
||||
if (!strcmp(st, "default"))
|
||||
set_state(PART:"icn", "hidden", 0.0);
|
||||
else
|
||||
set_state(PART:"icn", "default", 0.0);
|
||||
set_int(is_rtl, 1);
|
||||
}
|
||||
}
|
||||
program {
|
||||
signal: "edje,state,ltr";
|
||||
source: "edje";
|
||||
script {
|
||||
new st[31];
|
||||
new Float:vl;
|
||||
get_state(PART:"efl.swallow.event", st, 30, vl);
|
||||
if (!strcmp(st, "default"))
|
||||
set_state(PART:"icn", "default", 0.0);
|
||||
else
|
||||
set_state(PART:"icn", "hidden", 0.0);
|
||||
set_int(is_rtl, 0);
|
||||
}
|
||||
}
|
||||
program {
|
||||
signal: "efl,action,hide"; source: "efl";
|
||||
action: STATE_SET "hidden" 0.0;
|
||||
transition: ACCELERATE 0.3;
|
||||
target: "efl.swallow.event";
|
||||
}
|
||||
program {
|
||||
signal: "efl,action,hide"; source: "efl";
|
||||
script {
|
||||
if (get_int(is_rtl) == 0)
|
||||
set_state(PART:"icn", "hidden", 0.0);
|
||||
else
|
||||
set_state(PART:"icn", "default", 0.0);
|
||||
}
|
||||
}
|
||||
program { name: "hide1";
|
||||
signal: "efl,action,hide"; source: "efl";
|
||||
script {
|
||||
new x, y, w, h;
|
||||
if (get_int(is_rtl) == 0)
|
||||
{
|
||||
custom_state(PART:"base", "default", 0.0);
|
||||
set_state_val(PART:"base", STATE_REL1, -1.0, 0.0);
|
||||
get_geometry(PART:"efl.swallow.event", x, y, w, h);
|
||||
set_state_val(PART:"base", STATE_REL1_OFFSET, w, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
custom_state(PART:"base", "default", 0.0);
|
||||
set_state_val(PART:"base", STATE_REL1, -1.0, 0.0);
|
||||
set_state_val(PART:"base", STATE_REL2, -2.0, 1.0);
|
||||
get_geometry(PART:"efl.swallow.event", x, y, w, h);
|
||||
set_state_val(PART:"base", STATE_REL2_OFFSET, -w, 0);
|
||||
}
|
||||
}
|
||||
after: "hide2";
|
||||
}
|
||||
program { name: "hide2";
|
||||
action: STATE_SET "custom" 0.0;
|
||||
transition: ACCELERATE 0.3;
|
||||
target: "base";
|
||||
}
|
||||
program {
|
||||
signal: "efl,action,focus_highlight,show"; source: "efl";
|
||||
action: STATE_SET "focused" 0.0;
|
||||
transition: ACCELERATE 0.2;
|
||||
target: "glow";
|
||||
}
|
||||
program {
|
||||
signal: "efl,action,focus_highlight,hide"; source: "efl";
|
||||
action: STATE_SET "default" 0.0;
|
||||
transition: DECELERATE 0.5;
|
||||
target: "glow";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
group { name: "efl/panel/right";
|
||||
inherit: "efl/panel/left";
|
||||
parts {
|
||||
part { name: "base";
|
||||
description { state: "default" 0.0;
|
||||
rel1.relative: 1.0 0.0;
|
||||
rel1.to_x: "efl.swallow.event";
|
||||
rel1.offset: 3 0;
|
||||
rel2.relative: 1.0 1.0;
|
||||
rel2.to_x: "all";
|
||||
rel2.offset: -1 -1;
|
||||
}
|
||||
}
|
||||
part { name: "efl.swallow.event";
|
||||
description { state: "default" 0.0;
|
||||
align: 0.0 0.5;
|
||||
rel1.relative: 0.0 0.0;
|
||||
rel2.relative: 0.0 1.0;
|
||||
}
|
||||
description { state: "hidden" 0.0;
|
||||
align: 1.0 0.5;
|
||||
rel1.relative: 1.0 0.0;
|
||||
rel2.relative: 1.0 1.0;
|
||||
}
|
||||
}
|
||||
part { name: "dots";
|
||||
description { state: "default" 0.0;
|
||||
align: 1.0 0.5;
|
||||
}
|
||||
}
|
||||
part { name: "icn";
|
||||
description { state: "default" 0.0;
|
||||
image.normal: "icon_arrow_right.png";
|
||||
}
|
||||
description { state: "hidden" 0.0;
|
||||
image.normal: "icon_arrow_left.png";
|
||||
}
|
||||
}
|
||||
}
|
||||
programs {
|
||||
program { name: "hide1";
|
||||
script {
|
||||
new x, y, w, h;
|
||||
|
||||
custom_state(PART:"base", "default", 0.0);
|
||||
set_state_val(PART:"base", STATE_REL1, 1.0, 0.0);
|
||||
set_state_val(PART:"base", STATE_REL2, 2.0, 1.0);
|
||||
get_geometry(PART:"efl.swallow.event", x, y, w, h);
|
||||
set_state_val(PART:"base", STATE_REL2_OFFSET, -w, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
group { name: "efl/panel/top";
|
||||
inherit: "efl/panel/left";
|
||||
parts {
|
||||
part { name: "base";
|
||||
description { state: "default" 0.0;
|
||||
rel1.relative: 0.0 0.0;
|
||||
rel1.to_x: "all";
|
||||
rel1.to_y: "all";
|
||||
rel1.offset: 0 0;
|
||||
rel2.relative: 1.0 0.0;
|
||||
rel2.to_x: "all";
|
||||
rel2.to_y: "efl.swallow.event";
|
||||
rel2.offset: -1 -4;
|
||||
}
|
||||
}
|
||||
part { name: "efl.swallow.event";
|
||||
description { state: "default" 0.0;
|
||||
align: 0.5 1.0;
|
||||
rel1.relative: 0.0 1.0;
|
||||
rel2.relative: 1.0 1.0;
|
||||
}
|
||||
description { state: "hidden" 0.0;
|
||||
align: 0.5 0.0;
|
||||
rel1.relative: 0.0 0.0;
|
||||
rel2.relative: 1.0 0.0;
|
||||
}
|
||||
}
|
||||
part { name: "dots";
|
||||
description { state: "default" 0.0;
|
||||
align: 0.5 0.0;
|
||||
image.normal: "holes_tiny_glow_horiz.png";
|
||||
FIXED_SIZE(17, 11)
|
||||
}
|
||||
}
|
||||
part { name: "icn";
|
||||
description { state: "default" 0.0;
|
||||
image.normal: "icon_arrow_up.png";
|
||||
}
|
||||
description { state: "hidden" 0.0;
|
||||
image.normal: "icon_arrow_down.png";
|
||||
}
|
||||
}
|
||||
}
|
||||
programs {
|
||||
program { name: "hide1";
|
||||
script {
|
||||
new x, y, w, h;
|
||||
|
||||
custom_state(PART:"base", "default", 0.0);
|
||||
set_state_val(PART:"base", STATE_REL1, 0.0, -1.0);
|
||||
set_state_val(PART:"base", STATE_REL2, 1.0, 0.0);
|
||||
get_geometry(PART:"efl.swallow.event", x, y, w, h);
|
||||
set_state_val(PART:"base", STATE_REL1_OFFSET, 0, h);
|
||||
}
|
||||
}
|
||||
program {
|
||||
signal: "efl,action,show"; source: "efl";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "icn";
|
||||
}
|
||||
program {
|
||||
signal: "edje,state,rtl";
|
||||
source: "edje";
|
||||
script {
|
||||
new st[31];
|
||||
new Float:vl;
|
||||
get_state(PART:"efl.swallow.event", st, 30, vl);
|
||||
if (!strcmp(st, "default"))
|
||||
set_state(PART:"icn", "default", 0.0);
|
||||
else
|
||||
set_state(PART:"icn", "hidden", 0.0);
|
||||
}
|
||||
}
|
||||
program {
|
||||
signal: "edje,state,ltr";
|
||||
source: "edje";
|
||||
script {
|
||||
new st[31];
|
||||
new Float:vl;
|
||||
get_state(PART:"efl.swallow.event", st, 30, vl);
|
||||
if (!strcmp(st, "default"))
|
||||
set_state(PART:"icn", "default", 0.0);
|
||||
else
|
||||
set_state(PART:"icn", "hidden", 0.0);
|
||||
}
|
||||
}
|
||||
program {
|
||||
signal: "efl,action,hide"; source: "efl";
|
||||
action: STATE_SET "hidden" 0.0;
|
||||
target: "icn";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
group { name: "efl/panel/bottom";
|
||||
inherit: "efl/panel/top";
|
||||
parts {
|
||||
part { name: "base";
|
||||
description { state: "default" 0.0;
|
||||
rel1.relative: 0.0 1.0;
|
||||
rel1.to_x: "all";
|
||||
rel1.to_y: "efl.swallow.event";
|
||||
rel1.offset: 0 3;
|
||||
rel2.relative: 1.0 1.0;
|
||||
rel2.to_x: "all";
|
||||
rel2.to_y: "all";
|
||||
rel2.offset: -1 -1;
|
||||
}
|
||||
}
|
||||
part { name: "efl.swallow.event";
|
||||
description { state: "default" 0.0;
|
||||
align: 0.5 0.0;
|
||||
rel1.relative: 0.0 0.0;
|
||||
rel2.relative: 1.0 0.0;
|
||||
}
|
||||
description { state: "hidden" 0.0;
|
||||
align: 0.5 1.0;
|
||||
rel1.relative: 0.0 1.0;
|
||||
rel2.relative: 1.0 1.0;
|
||||
}
|
||||
}
|
||||
part { name: "dots";
|
||||
description { state: "default" 0.0;
|
||||
align: 0.5 0.0;
|
||||
image.normal: "holes_tiny_glow_horiz.png";
|
||||
FIXED_SIZE(17, 11)
|
||||
}
|
||||
}
|
||||
part { name: "icn";
|
||||
description { state: "default" 0.0;
|
||||
image.normal: "icon_arrow_down.png";
|
||||
}
|
||||
description { state: "hidden" 0.0;
|
||||
image.normal: "icon_arrow_up.png";
|
||||
}
|
||||
}
|
||||
}
|
||||
programs {
|
||||
program { name: "hide1";
|
||||
script {
|
||||
new x, y, w, h;
|
||||
custom_state(PART:"base", "default", 0.0);
|
||||
set_state_val(PART:"base", STATE_REL1, 0.0, 1.0);
|
||||
set_state_val(PART:"base", STATE_REL2, 1.0, 2.0);
|
||||
get_geometry(PART:"efl.swallow.event", x, y, w, h);
|
||||
set_state_val(PART:"base", STATE_REL2_OFFSET, 0, -h);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -29,6 +29,7 @@ elm_public_eolian_files = \
|
|||
lib/elementary/efl_ui_datepicker.eo \
|
||||
lib/elementary/efl_ui_timepicker.eo \
|
||||
lib/elementary/efl_ui_tags.eo \
|
||||
lib/elementary/efl_ui_panel.eo \
|
||||
lib/elementary/efl_ui_video.eo \
|
||||
lib/elementary/efl_ui_win.eo \
|
||||
lib/elementary/efl_ui_win_inlined.eo \
|
||||
|
@ -414,6 +415,7 @@ includesunstable_HEADERS = \
|
|||
lib/elementary/efl_ui_datepicker_private.h \
|
||||
lib/elementary/efl_ui_timepicker_private.h \
|
||||
lib/elementary/efl_ui_tags_private.h \
|
||||
lib/elementary/efl_ui_panel_private.h \
|
||||
lib/elementary/elm_widget_table.h \
|
||||
lib/elementary/elm_widget_thumb.h \
|
||||
lib/elementary/elm_widget_toolbar.h \
|
||||
|
@ -787,6 +789,7 @@ lib_elementary_libelementary_la_SOURCES = \
|
|||
lib/elementary/efl_ui_datepicker.c \
|
||||
lib/elementary/efl_ui_timepicker.c \
|
||||
lib/elementary/efl_ui_tags.c \
|
||||
lib/elementary/efl_ui_panel.c \
|
||||
lib/elementary/elm_slideshow.c \
|
||||
lib/elementary/elm_spinner.c \
|
||||
lib/elementary/elm_store.c \
|
||||
|
@ -1064,6 +1067,7 @@ bin/elementary/test_ui_spin_button.c \
|
|||
bin/elementary/test_ui_datepicker.c \
|
||||
bin/elementary/test_ui_timepicker.c \
|
||||
bin/elementary/test_ui_tags.c \
|
||||
bin/elementary/test_ui_panel.c \
|
||||
bin/elementary/test_slideshow.c \
|
||||
bin/elementary/test_spinner.c \
|
||||
bin/elementary/test_store.c \
|
||||
|
|
|
@ -136,6 +136,7 @@ test_ui_buttonspin.c \
|
|||
test_ui_datepicker.c \
|
||||
test_ui_timepicker.c \
|
||||
test_ui_tags.c \
|
||||
test_ui_panel.c \
|
||||
test_store.c \
|
||||
test_sys_notify.c \
|
||||
test_systray.c \
|
||||
|
|
|
@ -98,6 +98,7 @@ elementary_test_src = [
|
|||
'test_panel.c',
|
||||
'test_panes.c',
|
||||
'test_ui_panes.c',
|
||||
'test_ui_panel.c',
|
||||
'test_part_bg.c',
|
||||
'test_part_shadow.c',
|
||||
'test_photo.c',
|
||||
|
|
|
@ -189,6 +189,8 @@ void test_ui_spin_button(void *data, Evas_Object *obj, void *event_info);
|
|||
void test_ui_datepicker(void *data, Evas_Object *obj, void *event_info);
|
||||
void test_ui_timepicker(void *data, Evas_Object *obj, void *event_info);
|
||||
void test_ui_tags(void *data, Evas_Object *obj, void *event_info);
|
||||
void test_ui_panel(void *data, Evas_Object *obj, void *event_info);
|
||||
void test_ui_panel2(void *data, Evas_Object *obj, void *event_info);
|
||||
void test_index(void *data, Evas_Object *obj, void *event_info);
|
||||
void test_index2(void *data, Evas_Object *obj, void *event_info);
|
||||
void test_index3(void *data, Evas_Object *obj, void *event_info);
|
||||
|
@ -1165,6 +1167,8 @@ add_tests:
|
|||
ADD_TEST(NULL, "Dividers", "Panel Scrollable", test_panel2);
|
||||
ADD_TEST(NULL, "Dividers", "Panes", test_panes);
|
||||
ADD_TEST_EO(NULL, "Dividers", "Efl.Ui.Panes", test_panes_minsize);
|
||||
ADD_TEST_EO(NULL, "Dividers", "Efl.Ui.Panel", test_ui_panel);
|
||||
ADD_TEST_EO(NULL, "Dividers", "Efl.Ui.Panel Scrollable", test_ui_panel2);
|
||||
|
||||
//------------------------------//
|
||||
ADD_TEST(NULL, "Standardization", "Conformant", test_conformant);
|
||||
|
|
|
@ -0,0 +1,159 @@
|
|||
#ifdef HAVE_CONFIG_H
|
||||
# include "elementary_config.h"
|
||||
#endif
|
||||
#include <Elementary.h>
|
||||
|
||||
void
|
||||
test_ui_panel(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||
{
|
||||
char buf[PATH_MAX] = {0};
|
||||
Eo *win, *table, *panel;
|
||||
|
||||
win = efl_add_ref(EFL_UI_WIN_CLASS, NULL,
|
||||
efl_ui_win_type_set(efl_added, EFL_UI_WIN_BASIC),
|
||||
efl_text_set(efl_added, "Efl.Ui.Panel"),
|
||||
efl_ui_win_autodel_set(efl_added, EINA_TRUE));
|
||||
|
||||
table = efl_add(EFL_UI_TABLE_CLASS, win,
|
||||
efl_content_set(win, efl_added));
|
||||
|
||||
snprintf(buf, sizeof(buf), "%s/images/plant_01.jpg", elm_app_data_dir_get());
|
||||
efl_add(EFL_UI_IMAGE_CLASS, table,
|
||||
efl_file_set(efl_added, buf, NULL),
|
||||
efl_gfx_size_hint_weight_set(efl_added, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND),
|
||||
efl_gfx_size_hint_align_set(efl_added, EVAS_HINT_FILL, EVAS_HINT_FILL),
|
||||
efl_pack_table(table, efl_added, 0, 0, 4, 5));
|
||||
|
||||
// Top Panel
|
||||
panel = efl_add(EFL_UI_PANEL_CLASS, table,
|
||||
efl_ui_panel_orient_set(efl_added, EFL_UI_PANEL_ORIENT_TOP),
|
||||
efl_pack_table(table, efl_added, 0, 0, 4, 1));
|
||||
|
||||
efl_add(EFL_UI_BUTTON_CLASS, panel,
|
||||
efl_text_set(efl_added, "Top Panel"),
|
||||
efl_content_set(panel, efl_added));
|
||||
|
||||
// Left Panel
|
||||
panel = efl_add(EFL_UI_PANEL_CLASS, table,
|
||||
efl_ui_panel_orient_set(efl_added, EFL_UI_PANEL_ORIENT_LEFT),
|
||||
efl_pack_table(table, efl_added, 0, 2, 2, 1));
|
||||
|
||||
efl_add(EFL_UI_BUTTON_CLASS, panel,
|
||||
efl_text_set(efl_added, "Left Panel"),
|
||||
efl_content_set(panel, efl_added));
|
||||
|
||||
// Right Panel
|
||||
panel = efl_add(EFL_UI_PANEL_CLASS, table,
|
||||
efl_ui_panel_orient_set(efl_added, EFL_UI_PANEL_ORIENT_RIGHT),
|
||||
efl_pack_table(table, efl_added, 2, 2, 2, 1));
|
||||
|
||||
efl_add(EFL_UI_BUTTON_CLASS, panel,
|
||||
efl_text_set(efl_added, "Right Panel"),
|
||||
efl_content_set(panel, efl_added));
|
||||
|
||||
// Bottom Panel
|
||||
panel = efl_add(EFL_UI_PANEL_CLASS, table,
|
||||
efl_ui_panel_orient_set(efl_added, EFL_UI_PANEL_ORIENT_BOTTOM),
|
||||
efl_pack_table(table, efl_added, 0, 4, 4, 1));
|
||||
|
||||
efl_add(EFL_UI_BUTTON_CLASS, panel,
|
||||
efl_text_set(efl_added, "Bottom Panel"),
|
||||
efl_content_set(panel, efl_added));
|
||||
|
||||
efl_gfx_entity_size_set(win, EINA_SIZE2D(280, 320));
|
||||
}
|
||||
|
||||
static void
|
||||
_check_changed(void *data EINA_UNUSED, const Efl_Event *ev)
|
||||
{
|
||||
elm_config_scroll_thumbscroll_enabled_set(efl_ui_nstate_value_get(ev->object));
|
||||
}
|
||||
|
||||
static void
|
||||
_panel_toggled(void *data, const Efl_Event *ev)
|
||||
{
|
||||
Evas_Object *list;
|
||||
int i;
|
||||
|
||||
if (!efl_ui_nstate_value_get(data)) return;
|
||||
|
||||
list = efl_content_get(ev->object);
|
||||
evas_object_del(list);
|
||||
|
||||
list = elm_list_add(ev->object);
|
||||
evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(list, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
for (i = 0; i < 7; i++)
|
||||
elm_list_item_append(list, "panel list item", NULL, NULL, NULL, NULL);
|
||||
efl_content_set(ev->object, list);
|
||||
|
||||
printf("Panel toggled:%s\n", efl_ui_panel_hidden_get(ev->object) ? "hidden" : "visible");
|
||||
}
|
||||
|
||||
static void
|
||||
_btn_clicked(void *data, const Efl_Event *ev EINA_UNUSED)
|
||||
{
|
||||
Eo *panel = data;
|
||||
efl_ui_panel_toggle(panel);
|
||||
}
|
||||
void
|
||||
test_ui_panel2(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||
{
|
||||
int i;
|
||||
Eo *win, *box, *check, *btn, *table, *list, *panel;
|
||||
|
||||
win = efl_add_ref(EFL_UI_WIN_CLASS, NULL,
|
||||
efl_ui_win_type_set(efl_added, EFL_UI_WIN_BASIC),
|
||||
efl_text_set(efl_added, "Efl.Ui.Panel"),
|
||||
efl_ui_win_autodel_set(efl_added, EINA_TRUE));
|
||||
|
||||
box = efl_add(EFL_UI_BOX_CLASS, win,
|
||||
efl_content_set(win, efl_added));
|
||||
|
||||
efl_add(EFL_UI_CHECK_CLASS, box,
|
||||
efl_ui_check_selected_set(efl_added, elm_config_scroll_thumbscroll_enabled_get()),
|
||||
efl_text_set(efl_added, "Enable thumb scroll (temporarily"),
|
||||
efl_event_callback_add(efl_added, EFL_UI_NSTATE_EVENT_CHANGED, _check_changed, NULL),
|
||||
efl_gfx_size_hint_weight_set(efl_added, EVAS_HINT_EXPAND, 0),
|
||||
efl_pack(box, efl_added));
|
||||
|
||||
check = efl_add(EFL_UI_CHECK_CLASS, box,
|
||||
efl_text_set(efl_added, "Reset content on toggle"),
|
||||
efl_gfx_size_hint_weight_set(efl_added, EVAS_HINT_EXPAND, 0),
|
||||
efl_pack(box, efl_added));
|
||||
|
||||
btn = efl_add(EFL_UI_BUTTON_CLASS, box,
|
||||
efl_text_set(efl_added, "toggle"),
|
||||
efl_gfx_size_hint_weight_set(efl_added, EVAS_HINT_EXPAND, 0),
|
||||
efl_pack(box, efl_added));
|
||||
|
||||
table = efl_add(EFL_UI_TABLE_CLASS, box,
|
||||
efl_pack(box, efl_added));
|
||||
|
||||
list = elm_list_add(table);
|
||||
evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(list, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_show(list);
|
||||
for (i = 0; i < 20; i++)
|
||||
elm_list_item_append(list, "center list item", NULL, NULL, NULL, NULL);
|
||||
efl_pack_table(table, list, 0, 0, 1, 1);
|
||||
|
||||
panel = efl_add(EFL_UI_PANEL_CLASS, table,
|
||||
efl_ui_panel_orient_set(efl_added, EFL_UI_PANEL_ORIENT_LEFT),
|
||||
efl_ui_panel_scrollable_set(efl_added, EINA_TRUE),
|
||||
efl_ui_panel_hidden_set(efl_added, EINA_TRUE),
|
||||
efl_ui_panel_scrollable_content_size_set(efl_added, 0.75),
|
||||
efl_pack_table(table, efl_added, 0, 0, 1, 1));
|
||||
|
||||
list = elm_list_add(panel);
|
||||
evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(list, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
for (i = 0; i < 7; i++)
|
||||
elm_list_item_append(list, "left panel item", NULL, NULL, NULL, NULL);
|
||||
efl_content_set(panel, list);
|
||||
|
||||
efl_event_callback_add(panel, EFL_UI_PANEL_EVENT_TOGGLED, _panel_toggled, check);
|
||||
efl_event_callback_add(btn, EFL_UI_EVENT_CLICKED, _btn_clicked, panel);
|
||||
|
||||
efl_gfx_entity_size_set(win, EINA_SIZE2D(320, 400));
|
||||
}
|
|
@ -323,6 +323,7 @@ typedef Eo Efl_Ui_Focus_Manager;
|
|||
# include <efl_ui_datepicker.eo.h>
|
||||
# include <efl_ui_timepicker.eo.h>
|
||||
# include <efl_ui_tags.eo.h>
|
||||
# include <efl_ui_panel.eo.h>
|
||||
# include <efl_ui_image_factory.eo.h>
|
||||
# include <efl_ui_slider.eo.h>
|
||||
# include <efl_ui_slider_interval.eo.h>
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,95 @@
|
|||
enum Efl.Ui.Panel_Orient
|
||||
{
|
||||
[[Panel orientation mode]]
|
||||
|
||||
top, [[Panel (dis)appears from the top]]
|
||||
bottom, [[Panel (dis)appears from the bottom]]
|
||||
left, [[Panel (dis)appears from the left]]
|
||||
right [[Panel (dis)appears from the right]]
|
||||
}
|
||||
|
||||
struct Efl.Ui.Panel_Scroll_Info
|
||||
{
|
||||
[[Panel scroll information]]
|
||||
rel_x: double; [[content scrolled position (0.0 ~ 1.0) in the panel]]
|
||||
rel_y: double; [[content scrolled position (0.0 ~ 1.0) in the panel]]
|
||||
}
|
||||
|
||||
class Efl.Ui.Panel (Efl.Ui.Layout, Efl.Ui.Focus.Layer, Elm.Interface_Scrollable, Efl.Content,
|
||||
Efl.Access.Widget.Action)
|
||||
{
|
||||
[[Elementary panel class]]
|
||||
methods {
|
||||
@property orient {
|
||||
set {
|
||||
[[Sets the orientation of the panel
|
||||
|
||||
Sets from where the panel will (dis)appear.
|
||||
]]
|
||||
}
|
||||
get {
|
||||
[[Gets the orientation of the panel.]]
|
||||
}
|
||||
values {
|
||||
orient: Efl.Ui.Panel_Orient; [[The panel orientation.]]
|
||||
}
|
||||
}
|
||||
@property hidden {
|
||||
set {
|
||||
[[Sets the state of the panel.]]
|
||||
}
|
||||
get {
|
||||
[[Gets the state of the panel.]]
|
||||
}
|
||||
values {
|
||||
hidden: bool; [[If $true, the panel will run the animation to disappear.]]
|
||||
}
|
||||
}
|
||||
@property scrollable {
|
||||
set {
|
||||
[[Sets the scrollability of the panel.]]
|
||||
}
|
||||
get {
|
||||
[[Gets the state of the scrollability.
|
||||
]]
|
||||
}
|
||||
values {
|
||||
scrollable: bool; [[The scrollable state.]]
|
||||
}
|
||||
}
|
||||
@property scrollable_content_size {
|
||||
set {
|
||||
[[Sets the size of the scrollable panel.]]
|
||||
}
|
||||
get {
|
||||
[[Gets the size of the scrollable panel.
|
||||
]]
|
||||
}
|
||||
values {
|
||||
ratio: double; [[Size ratio]]
|
||||
}
|
||||
}
|
||||
toggle {
|
||||
[[Toggle the hidden state of the panel from code]]
|
||||
}
|
||||
}
|
||||
implements {
|
||||
Efl.Object.constructor;
|
||||
Efl.Object.destructor;
|
||||
Efl.Gfx.Entity.position { set; }
|
||||
Efl.Gfx.Entity.size { set; }
|
||||
Efl.Canvas.Group.group_member_add;
|
||||
Efl.Ui.Widget.theme_apply;
|
||||
Efl.Ui.Widget.on_disabled_update;
|
||||
Efl.Ui.Widget.on_access_update;
|
||||
Efl.Ui.Widget.widget_event;
|
||||
Efl.Ui.Widget.interest_region { get; }
|
||||
Efl.Access.Widget.Action.elm_actions { get; }
|
||||
Efl.Ui.Base.mirrored { set; }
|
||||
Efl.Content.content { get; set; }
|
||||
Efl.Content.content_unset;
|
||||
}
|
||||
events {
|
||||
toggled: void; [[Called when the hidden state was toggled]]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,81 @@
|
|||
#ifndef EFL_UI_PANEL_H
|
||||
#define EFL_UI_PANEL_H
|
||||
|
||||
#include "elm_interface_scrollable.h"
|
||||
#include "elm_widget_layout.h"
|
||||
#include "efl_ui_panel.eo.h"
|
||||
|
||||
/* DO NOT USE THIS HEADER UNLESS YOU ARE PREPARED FOR BREAKING OF YOUR
|
||||
* CODE. THIS IS ELEMENTARY'S INTERNAL WIDGET API (for now) AND IS NOT
|
||||
* FINAL. CALL elm_widget_api_check(EFL_UI_INTERNAL_API_VERSION) TO CHECK
|
||||
* IT AT RUNTIME.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @addtogroup Widget
|
||||
* @{
|
||||
*
|
||||
* @section elm-panel-class The Elementary Panel Class
|
||||
*
|
||||
* Elementary, besides having the @ref Panel widget, exposes its
|
||||
* foundation -- the Elementary Panel Class -- in order to create other
|
||||
* widgets which are a panel with some more logic on top.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Base layout smart data extended with panel instance data.
|
||||
*/
|
||||
typedef struct _Efl_Ui_Panel_Data Efl_Ui_Panel_Data;
|
||||
struct _Efl_Ui_Panel_Data
|
||||
{
|
||||
Evas_Object *bx, *content;
|
||||
Evas_Object *event;
|
||||
Evas_Object *scr_ly;
|
||||
Evas_Object *hit_rect, *panel_edje, *scr_edje;
|
||||
Evas_Object *scr_panel, *scr_event;
|
||||
|
||||
|
||||
Efl_Ui_Panel_Orient orient;
|
||||
|
||||
double content_size_ratio;
|
||||
Evas_Coord down_x, down_y;
|
||||
Evas_Coord handler_size;
|
||||
Ecore_Timer *timer;
|
||||
|
||||
Eina_Bool hidden : 1;
|
||||
Eina_Bool delete_me : 1;
|
||||
Eina_Bool scrollable : 1;
|
||||
Eina_Bool freeze: 1;
|
||||
Eina_Bool callback_added: 1;
|
||||
};
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
#define EFL_UI_PANEL_DATA_GET(o, sd) \
|
||||
Efl_Ui_Panel_Data * sd = efl_data_scope_get(o, EFL_UI_PANEL_CLASS)
|
||||
|
||||
#define EFL_UI_PANEL_DATA_GET_OR_RETURN(o, ptr) \
|
||||
EFL_UI_PANEL_DATA_GET(o, ptr); \
|
||||
if (EINA_UNLIKELY(!ptr)) \
|
||||
{ \
|
||||
ERR("No widget data for object %p (%s)", \
|
||||
o, evas_object_type_get(o)); \
|
||||
return; \
|
||||
}
|
||||
|
||||
#define EFL_UI_PANEL_DATA_GET_OR_RETURN_VAL(o, ptr, val) \
|
||||
EFL_UI_PANEL_DATA_GET(o, ptr); \
|
||||
if (EINA_UNLIKELY(!ptr)) \
|
||||
{ \
|
||||
ERR("No widget data for object %p (%s)", \
|
||||
o, evas_object_type_get(o)); \
|
||||
return val; \
|
||||
}
|
||||
|
||||
#define EFL_UI_PANEL_CHECK(obj) \
|
||||
if (EINA_UNLIKELY(!efl_isa((obj), EFL_UI_PANEL_CLASS))) \
|
||||
return
|
||||
|
||||
#endif
|
|
@ -154,6 +154,7 @@ pub_eo_files = [
|
|||
'efl_ui_slider_interval.eo',
|
||||
'efl_ui_spin.eo',
|
||||
'efl_ui_spin_button.eo',
|
||||
'efl_ui_panel.eo',
|
||||
'efl_ui_datepicker.eo',
|
||||
'efl_ui_timepicker.eo',
|
||||
'efl_ui_tags.eo',
|
||||
|
@ -437,6 +438,7 @@ elementary_headers_unstable = [
|
|||
'elm_widget_spinner.h',
|
||||
'efl_ui_spin_private.h',
|
||||
'efl_ui_spin_button_private.h',
|
||||
'efl_ui_panel_private.h',
|
||||
'efl_ui_datepicker_private.h',
|
||||
'efl_ui_timepicker_private.h',
|
||||
'efl_ui_tags_private.h',
|
||||
|
@ -806,6 +808,7 @@ elementary_src = [
|
|||
'efl_ui_slider_interval.c',
|
||||
'efl_ui_spin.c',
|
||||
'efl_ui_spin_button.c',
|
||||
'efl_ui_panel.c',
|
||||
'efl_ui_datepicker.c',
|
||||
'efl_ui_timepicker.c',
|
||||
'efl_ui_tags.c',
|
||||
|
|
Loading…
Reference in New Issue