[Elementary] For icon/end elements, use swallow parts in the scroller theme instead of an Elm_Box.
This defines a new theme group for elm_scrolled_entry: "elm/scroller/entry/$THEME". Themes that wants to support the icon/end feature in scrolled entry should implement parts "elm.swallow.icon" and "elm.swallow.end". Black&White theme has been changed, Effeniht changes to come on a later commit. SVN revision: 52657
This commit is contained in:
parent
c9a4a09aaa
commit
8c4df25efe
|
@ -709,6 +709,565 @@ collections {
|
|||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
group { name: "elm/scroller/entry/default";
|
||||
|
||||
script {
|
||||
public sbvis_v, sbvis_h, sbalways_v, sbalways_h, sbvis_timer;
|
||||
public timer0(val) {
|
||||
new v;
|
||||
v = get_int(sbvis_v);
|
||||
if (v) {
|
||||
v = get_int(sbalways_v);
|
||||
if (!v) {
|
||||
emit("do-hide-vbar", "");
|
||||
set_int(sbvis_v, 0);
|
||||
}
|
||||
}
|
||||
v = get_int(sbvis_h);
|
||||
if (v) {
|
||||
v = get_int(sbalways_h);
|
||||
if (!v) {
|
||||
emit("do-hide-hbar", "");
|
||||
set_int(sbvis_h, 0);
|
||||
}
|
||||
}
|
||||
set_int(sbvis_timer, 0);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
images {
|
||||
image: "shelf_inset.png" COMP;
|
||||
image: "bt_sm_base2.png" COMP;
|
||||
image: "bt_sm_shine.png" COMP;
|
||||
image: "bt_sm_hilight.png" COMP;
|
||||
image: "sb_runnerh.png" COMP;
|
||||
image: "sb_runnerv.png" COMP;
|
||||
}
|
||||
parts {
|
||||
part { name: "bg";
|
||||
type: RECT;
|
||||
description { state: "default" 0.0;
|
||||
rel1.offset: 2 2;
|
||||
rel2.offset: -3 -3;
|
||||
}
|
||||
}
|
||||
part { name: "clipper";
|
||||
type: RECT;
|
||||
mouse_events: 0;
|
||||
description { state: "default" 0.0;
|
||||
rel1.to: "bg";
|
||||
rel2.to: "bg";
|
||||
rel1.offset: 2 2;
|
||||
rel2.offset: -3 -3;
|
||||
}
|
||||
}
|
||||
part { name: "contentclipper";
|
||||
type: RECT;
|
||||
mouse_events: 0;
|
||||
clip_to: "clipper";
|
||||
description { state: "default" 0.0;
|
||||
rel1.to: "elm.swallow.icon";
|
||||
rel1.relative: 1.0 0.0;
|
||||
rel2.to: "elm.swallow.end";
|
||||
rel2.relative: 0.0 1.0;
|
||||
}
|
||||
}
|
||||
part { name: "elm.swallow.icon";
|
||||
type: SWALLOW;
|
||||
clip_to: "clipper";
|
||||
description { state: "default" 0.0;
|
||||
fixed: 1 1;
|
||||
rel1 {
|
||||
to: "bg";
|
||||
relative: 0.0 0.0;
|
||||
offset: 0 0;
|
||||
}
|
||||
rel2 {
|
||||
to: "bg";
|
||||
relative: 0.0 1.0;
|
||||
offset: -1 -1;
|
||||
}
|
||||
visible: 0;
|
||||
}
|
||||
description { state: "visible" 0.0;
|
||||
fixed: 1 1;
|
||||
align: 0.0 1.0;
|
||||
rel1 {
|
||||
to: "bg";
|
||||
relative: 0.0 0.0;
|
||||
offset: 0 0;
|
||||
}
|
||||
rel2 {
|
||||
to: "bg";
|
||||
relative: 0.0 1.0;
|
||||
offset: -1 -1;
|
||||
}
|
||||
visible: 1;
|
||||
}
|
||||
}
|
||||
part { name: "elm.swallow.end";
|
||||
type: SWALLOW;
|
||||
clip_to: "clipper";
|
||||
description { state: "default" 0.0;
|
||||
fixed: 1 1;
|
||||
rel1 {
|
||||
to: "bg";
|
||||
relative: 1.0 0.0;
|
||||
offset: 0 0;
|
||||
}
|
||||
rel2 {
|
||||
to: "bg";
|
||||
relative: 1.0 1.0;
|
||||
offset: -1 -1;
|
||||
}
|
||||
visible: 0;
|
||||
}
|
||||
description { state: "visible" 0.0;
|
||||
fixed: 1 1;
|
||||
align: 1.0 1.0;
|
||||
rel1 {
|
||||
to: "bg";
|
||||
relative: 1.0 0.0;
|
||||
offset: 0 0;
|
||||
}
|
||||
rel2 {
|
||||
to: "bg";
|
||||
relative: 1.0 1.0;
|
||||
offset: -1 -1;
|
||||
}
|
||||
visible: 1;
|
||||
}
|
||||
}
|
||||
part { name: "conf_over";
|
||||
mouse_events: 0;
|
||||
description { state: "default" 0.0;
|
||||
rel1.to: "bg";
|
||||
rel2.to: "bg";
|
||||
image {
|
||||
normal: "shelf_inset.png";
|
||||
border: 7 7 7 7;
|
||||
middle: 0;
|
||||
}
|
||||
fill.smooth : 0;
|
||||
}
|
||||
}
|
||||
part { name: "elm.swallow.content";
|
||||
clip_to: "contentclipper";
|
||||
type: SWALLOW;
|
||||
description { state: "default" 0.0;
|
||||
rel1 {
|
||||
to: "elm.swallow.icon";
|
||||
relative: 1.0 0.0;
|
||||
offset: 4 4;
|
||||
}
|
||||
rel2 {
|
||||
to: "elm.swallow.end";
|
||||
relative: 0.0 1.0;
|
||||
offset: -5 -5;
|
||||
}
|
||||
}
|
||||
}
|
||||
part { name: "sb_vbar_clip_master";
|
||||
type: RECT;
|
||||
mouse_events: 0;
|
||||
description { state: "default" 0.0;
|
||||
}
|
||||
description { state: "hidden" 0.0;
|
||||
visible: 0;
|
||||
color: 255 255 255 0;
|
||||
}
|
||||
}
|
||||
part { name: "sb_vbar_clip";
|
||||
clip_to: "sb_vbar_clip_master";
|
||||
type: RECT;
|
||||
mouse_events: 0;
|
||||
description { state: "default" 0.0;
|
||||
}
|
||||
description { state: "hidden" 0.0;
|
||||
visible: 0;
|
||||
color: 255 255 255 0;
|
||||
}
|
||||
}
|
||||
part { name: "sb_vbar";
|
||||
type: RECT;
|
||||
mouse_events: 0;
|
||||
description { state: "default" 0.0;
|
||||
fixed: 1 1;
|
||||
visible: 0;
|
||||
min: 17 17;
|
||||
align: 1.0 0.0;
|
||||
rel1 {
|
||||
relative: 0.0 0.0;
|
||||
offset: -2 2;
|
||||
to_y: "elm.swallow.content";
|
||||
to_x: "elm.swallow.end";
|
||||
}
|
||||
rel2 {
|
||||
relative: 0.0 0.0;
|
||||
offset: -2 -1;
|
||||
to_y: "sb_hbar";
|
||||
to_x: "elm.swallow.end";
|
||||
}
|
||||
}
|
||||
}
|
||||
part { name: "sb_vbar_runner";
|
||||
clip_to: "sb_vbar_clip";
|
||||
mouse_events: 0;
|
||||
description { state: "default" 0.0;
|
||||
min: 3 3;
|
||||
max: 3 99999;
|
||||
rel1.to: "sb_vbar";
|
||||
rel2.to: "sb_vbar";
|
||||
image {
|
||||
normal: "sb_runnerv.png";
|
||||
border: 0 0 4 4;
|
||||
}
|
||||
fill.smooth: 0;
|
||||
}
|
||||
}
|
||||
part { name: "elm.dragable.vbar";
|
||||
clip_to: "sb_vbar_clip";
|
||||
mouse_events: 0;
|
||||
dragable {
|
||||
x: 0 0 0;
|
||||
y: 1 1 0;
|
||||
confine: "sb_vbar";
|
||||
}
|
||||
description { state: "default" 0.0;
|
||||
fixed: 1 1;
|
||||
min: 17 17;
|
||||
rel1 {
|
||||
relative: 0.5 0.5;
|
||||
offset: 0 0;
|
||||
to: "sb_vbar";
|
||||
}
|
||||
rel2 {
|
||||
relative: 0.5 0.5;
|
||||
offset: 0 0;
|
||||
to: "sb_vbar";
|
||||
}
|
||||
image {
|
||||
normal: "bt_sm_base2.png";
|
||||
border: 6 6 6 6;
|
||||
}
|
||||
image.middle: SOLID;
|
||||
}
|
||||
}
|
||||
part { name: "sb_vbar_over1";
|
||||
clip_to: "sb_vbar_clip";
|
||||
mouse_events: 0;
|
||||
description { state: "default" 0.0;
|
||||
rel1.to: "elm.dragable.vbar";
|
||||
rel2.relative: 1.0 0.5;
|
||||
rel2.to: "elm.dragable.vbar";
|
||||
image {
|
||||
normal: "bt_sm_hilight.png";
|
||||
border: 6 6 6 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
part { name: "sb_vbar_over2";
|
||||
clip_to: "sb_vbar_clip";
|
||||
mouse_events: 0;
|
||||
description { state: "default" 0.0;
|
||||
rel1.to: "elm.dragable.vbar";
|
||||
rel2.to: "elm.dragable.vbar";
|
||||
image {
|
||||
normal: "bt_sm_shine.png";
|
||||
border: 6 6 6 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
part { name: "sb_hbar_clip_master";
|
||||
type: RECT;
|
||||
mouse_events: 0;
|
||||
description { state: "default" 0.0;
|
||||
}
|
||||
description { state: "hidden" 0.0;
|
||||
visible: 0;
|
||||
color: 255 255 255 0;
|
||||
}
|
||||
}
|
||||
part { name: "sb_hbar_clip";
|
||||
clip_to: "sb_hbar_clip_master";
|
||||
type: RECT;
|
||||
mouse_events: 0;
|
||||
description { state: "default" 0.0;
|
||||
}
|
||||
description { state: "hidden" 0.0;
|
||||
visible: 0;
|
||||
color: 255 255 255 0;
|
||||
}
|
||||
}
|
||||
part { name: "sb_hbar";
|
||||
type: RECT;
|
||||
mouse_events: 0;
|
||||
description { state: "default" 0.0;
|
||||
fixed: 1 1;
|
||||
visible: 0;
|
||||
min: 17 17;
|
||||
align: 0.0 1.0;
|
||||
rel1 {
|
||||
relative: 0.0 1.0;
|
||||
offset: 2 -2;
|
||||
to_x: "elm.swallow.content";
|
||||
}
|
||||
rel2 {
|
||||
relative: 0.0 1.0;
|
||||
offset: -1 -2;
|
||||
to_x: "sb_vbar";
|
||||
}
|
||||
}
|
||||
}
|
||||
part { name: "sb_hbar_runner";
|
||||
clip_to: "sb_hbar_clip";
|
||||
mouse_events: 0;
|
||||
description { state: "default" 0.0;
|
||||
min: 3 3;
|
||||
max: 99999 3;
|
||||
rel1.to: "sb_hbar";
|
||||
rel2.to: "sb_hbar";
|
||||
image {
|
||||
normal: "sb_runnerh.png";
|
||||
border: 4 4 0 0;
|
||||
}
|
||||
fill.smooth: 0;
|
||||
}
|
||||
}
|
||||
part { name: "elm.dragable.hbar";
|
||||
clip_to: "sb_hbar_clip";
|
||||
mouse_events: 0;
|
||||
dragable {
|
||||
x: 1 1 0;
|
||||
y: 0 0 0;
|
||||
confine: "sb_hbar";
|
||||
}
|
||||
description { state: "default" 0.0;
|
||||
fixed: 1 1;
|
||||
min: 17 17;
|
||||
rel1 {
|
||||
relative: 0.5 0.5;
|
||||
offset: 0 0;
|
||||
to: "sb_hbar";
|
||||
}
|
||||
rel2 {
|
||||
relative: 0.5 0.5;
|
||||
offset: 0 0;
|
||||
to: "sb_hbar";
|
||||
}
|
||||
image {
|
||||
normal: "bt_sm_base2.png";
|
||||
border: 6 6 6 6;
|
||||
}
|
||||
image.middle: SOLID;
|
||||
}
|
||||
}
|
||||
part { name: "sb_hbar_over1";
|
||||
clip_to: "sb_hbar_clip";
|
||||
mouse_events: 0;
|
||||
description { state: "default" 0.0;
|
||||
rel1.to: "elm.dragable.hbar";
|
||||
rel2.relative: 1.0 0.5;
|
||||
rel2.to: "elm.dragable.hbar";
|
||||
image {
|
||||
normal: "bt_sm_hilight.png";
|
||||
border: 6 6 6 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
part { name: "sb_hbar_over2";
|
||||
clip_to: "sb_hbar_clip";
|
||||
mouse_events: 0;
|
||||
description { state: "default" 0.0;
|
||||
rel1.to: "elm.dragable.hbar";
|
||||
rel2.to: "elm.dragable.hbar";
|
||||
image {
|
||||
normal: "bt_sm_shine.png";
|
||||
border: 6 6 6 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
programs {
|
||||
program { name: "load";
|
||||
signal: "load";
|
||||
source: "";
|
||||
script {
|
||||
set_state(PART:"sb_hbar_clip", "hidden", 0.0);
|
||||
set_state(PART:"sb_vbar_clip", "hidden", 0.0);
|
||||
set_int(sbvis_h, 0);
|
||||
set_int(sbvis_v, 0);
|
||||
set_int(sbalways_v, 0);
|
||||
set_int(sbalways_h, 0);
|
||||
set_int(sbvis_timer, 0);
|
||||
}
|
||||
}
|
||||
program { name: "icon_show";
|
||||
signal: "elm,action,show,icon";
|
||||
source: "elm";
|
||||
action: STATE_SET "visible" 0.0;
|
||||
target: "elm.swallow.icon";
|
||||
}
|
||||
program { name: "icon_hide";
|
||||
signal: "elm,action,hide,icon";
|
||||
source: "elm";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "elm.swallow.icon";
|
||||
}
|
||||
program { name: "end_show";
|
||||
signal: "elm,action,show,end";
|
||||
source: "elm";
|
||||
action: STATE_SET "visible" 0.0;
|
||||
target: "elm.swallow.end";
|
||||
}
|
||||
program { name: "end_hide";
|
||||
signal: "elm,action,hide,end";
|
||||
source: "elm";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "elm.swallow.end";
|
||||
}
|
||||
program { name: "vbar_show";
|
||||
signal: "elm,action,show,vbar";
|
||||
source: "elm";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "sb_vbar_clip_master";
|
||||
}
|
||||
program { name: "vbar_hide";
|
||||
signal: "elm,action,hide,vbar";
|
||||
source: "elm";
|
||||
action: STATE_SET "hidden" 0.0;
|
||||
target: "sb_vbar_clip_master";
|
||||
}
|
||||
program { name: "vbar_show_always";
|
||||
signal: "elm,action,show_always,vbar";
|
||||
source: "elm";
|
||||
script {
|
||||
new v;
|
||||
v = get_int(sbvis_v);
|
||||
v |= get_int(sbalways_v);
|
||||
if (!v) {
|
||||
set_int(sbalways_v, 1);
|
||||
emit("do-show-vbar", "");
|
||||
set_int(sbvis_v, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
program { name: "vbar_show_notalways";
|
||||
signal: "elm,action,show_notalways,vbar";
|
||||
source: "elm";
|
||||
script {
|
||||
new v;
|
||||
v = get_int(sbalways_v);
|
||||
if (v) {
|
||||
set_int(sbalways_v, 0);
|
||||
v = get_int(sbvis_v);
|
||||
if (!v) {
|
||||
emit("do-hide-vbar", "");
|
||||
set_int(sbvis_v, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
program { name: "sb_vbar_show";
|
||||
signal: "do-show-vbar";
|
||||
source: "";
|
||||
action: STATE_SET "default" 0.0;
|
||||
transition: LINEAR 1.0;
|
||||
target: "sb_vbar_clip";
|
||||
}
|
||||
program { name: "sb_vbar_hide";
|
||||
signal: "do-hide-vbar";
|
||||
source: "";
|
||||
action: STATE_SET "hidden" 0.0;
|
||||
transition: LINEAR 1.0;
|
||||
target: "sb_vbar_clip";
|
||||
}
|
||||
|
||||
program { name: "hbar_show";
|
||||
signal: "elm,action,show,hbar";
|
||||
source: "elm";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "sb_hbar_clip_master";
|
||||
}
|
||||
program { name: "hbar_hide";
|
||||
signal: "elm,action,hide,hbar";
|
||||
source: "elm";
|
||||
action: STATE_SET "hidden" 0.0;
|
||||
target: "sb_hbar_clip_master";
|
||||
}
|
||||
program { name: "hbar_show_always";
|
||||
signal: "elm,action,show_always,hbar";
|
||||
source: "elm";
|
||||
script {
|
||||
new v;
|
||||
v = get_int(sbvis_h);
|
||||
v |= get_int(sbalways_h);
|
||||
if (!v) {
|
||||
set_int(sbalways_h, 1);
|
||||
emit("do-show-hbar", "");
|
||||
set_int(sbvis_h, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
program { name: "hbar_show_notalways";
|
||||
signal: "elm,action,show_notalways,hbar";
|
||||
source: "elm";
|
||||
script {
|
||||
new v;
|
||||
v = get_int(sbalways_h);
|
||||
if (v) {
|
||||
set_int(sbalways_h, 0);
|
||||
v = get_int(sbvis_h);
|
||||
if (!v) {
|
||||
emit("do-hide-hbar", "");
|
||||
set_int(sbvis_h, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
program { name: "sb_hbar_show";
|
||||
signal: "do-show-hbar";
|
||||
source: "";
|
||||
action: STATE_SET "default" 0.0;
|
||||
transition: LINEAR 1.0;
|
||||
target: "sb_hbar_clip";
|
||||
}
|
||||
program { name: "sb_hbar_hide";
|
||||
signal: "do-hide-hbar";
|
||||
source: "";
|
||||
action: STATE_SET "hidden" 0.0;
|
||||
transition: LINEAR 1.0;
|
||||
target: "sb_hbar_clip";
|
||||
}
|
||||
|
||||
program { name: "scroll";
|
||||
signal: "elm,action,scroll";
|
||||
source: "elm";
|
||||
script {
|
||||
new v;
|
||||
v = get_int(sbvis_v);
|
||||
v |= get_int(sbalways_v);
|
||||
if (!v) {
|
||||
emit("do-show-vbar", "");
|
||||
set_int(sbvis_v, 1);
|
||||
}
|
||||
v = get_int(sbvis_h);
|
||||
v |= get_int(sbalways_h);
|
||||
if (!v) {
|
||||
emit("do-show-hbar", "");
|
||||
set_int(sbvis_h, 1);
|
||||
}
|
||||
v = get_int(sbvis_timer);
|
||||
if (v > 0) cancel_timer(v);
|
||||
v = timer(2.0, "timer0", 0);
|
||||
set_int(sbvis_timer, v);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
group { name: "elm/label/base/default";
|
||||
data.item: "default_font_size" "24";
|
||||
|
|
|
@ -293,8 +293,8 @@ test_entry_scrolled(void *data, Evas_Object *obj, void *event_info)
|
|||
en = elm_scrolled_entry_add(win);
|
||||
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
|
||||
elm_scrolled_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
|
||||
elm_scrolled_entry_entry_set(en, "This is a single line");
|
||||
elm_scrolled_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
|
||||
elm_scrolled_entry_single_line_set(en, 1);
|
||||
elm_scrolled_entry_select_all(en);
|
||||
evas_object_show(en);
|
||||
|
@ -313,15 +313,20 @@ test_entry_scrolled(void *data, Evas_Object *obj, void *event_info)
|
|||
|
||||
/* scrolled entry with icon/end widgets*/
|
||||
en = elm_scrolled_entry_add(win);
|
||||
elm_scrolled_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
|
||||
elm_scrolled_entry_single_line_set(en, 1);
|
||||
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
bt = elm_button_add(win);
|
||||
elm_button_label_set(bt, "left");
|
||||
bt = elm_icon_add(win);
|
||||
elm_icon_standard_set(bt, "home");
|
||||
evas_object_size_hint_min_set(bt, 48, 48);
|
||||
evas_object_color_set(bt, 255, 0, 0, 128);
|
||||
evas_object_show(bt);
|
||||
elm_scrolled_entry_icon_set(en, bt);
|
||||
bt = elm_button_add(win);
|
||||
elm_button_label_set(bt, "right");
|
||||
bt = elm_icon_add(win);
|
||||
elm_icon_standard_set(bt, "delete");
|
||||
evas_object_color_set(bt, 255, 0, 0, 128);
|
||||
evas_object_size_hint_min_set(bt, 48, 48);
|
||||
evas_object_show(bt);
|
||||
elm_scrolled_entry_end_set(en, bt);
|
||||
elm_scrolled_entry_entry_set(en, "scrolled entry with icon and end objects");
|
||||
|
|
|
@ -35,7 +35,6 @@ typedef struct _Widget_Data Widget_Data;
|
|||
struct _Widget_Data
|
||||
{
|
||||
Evas_Object *scroller;
|
||||
Evas_Object *box;
|
||||
Evas_Object *entry;
|
||||
Evas_Object *icon;
|
||||
Evas_Object *end;
|
||||
|
@ -287,17 +286,12 @@ elm_scrolled_entry_add(Evas_Object *parent)
|
|||
elm_widget_signal_callback_add_hook_set(obj, _signal_callback_add_hook);
|
||||
elm_widget_signal_callback_del_hook_set(obj, _signal_callback_del_hook);
|
||||
|
||||
wd->box = elm_box_add(parent);
|
||||
elm_widget_resize_object_set(obj, wd->box);
|
||||
elm_box_horizontal_set(wd->box, EINA_TRUE);
|
||||
elm_box_homogenous_set(wd->box, EINA_FALSE);
|
||||
evas_object_show(wd->box);
|
||||
|
||||
wd->scroller = elm_scroller_add(parent);
|
||||
elm_scroller_custom_widget_base_theme_set(wd->scroller, "scroller", "entry");
|
||||
elm_widget_resize_object_set(obj, wd->scroller);
|
||||
evas_object_size_hint_weight_set(wd->scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(wd->scroller, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_scroller_bounce_set(wd->scroller, 0, 0);
|
||||
elm_box_pack_start(wd->box, wd->scroller);
|
||||
evas_object_show(wd->scroller);
|
||||
|
||||
wd->entry = elm_entry_add(parent);
|
||||
|
@ -348,10 +342,15 @@ elm_scrolled_entry_icon_set(Evas_Object *obj, Evas_Object *icon)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Evas_Object *edje;
|
||||
if (!wd || !icon) return;
|
||||
if (wd->icon == icon) return;
|
||||
if (wd->icon) evas_object_del(wd->icon);
|
||||
wd->icon = icon;
|
||||
elm_box_pack_before(wd->box, wd->icon, wd->scroller);
|
||||
edje = _elm_scroller_edje_object_get(wd->scroller);
|
||||
if (!edje) return;
|
||||
edje_object_part_swallow(edje, "elm.swallow.icon", wd->icon);
|
||||
edje_object_signal_emit(edje, "elm,action,show,icon", "elm");
|
||||
_sizing_eval(obj);
|
||||
}
|
||||
|
||||
|
@ -388,8 +387,12 @@ elm_scrolled_entry_icon_unset(Evas_Object *obj)
|
|||
if (!wd) return NULL;
|
||||
if (wd->icon)
|
||||
{
|
||||
Evas_Object *edje = _elm_scroller_edje_object_get(wd->scroller);
|
||||
if (!edje) return NULL;
|
||||
ret = wd->icon;
|
||||
elm_box_unpack(wd->box, wd->icon);
|
||||
edje_object_part_unswallow(edje, wd->icon);
|
||||
edje_object_signal_emit(edje, "elm,action,hide,icon", "elm");
|
||||
wd->icon = NULL;
|
||||
_sizing_eval(obj);
|
||||
}
|
||||
return ret;
|
||||
|
@ -432,10 +435,15 @@ elm_scrolled_entry_end_set(Evas_Object *obj, Evas_Object *end)
|
|||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Evas_Object *edje;
|
||||
if (!wd || !end) return;
|
||||
if (wd->end == end) return;
|
||||
if (wd->end) evas_object_del(wd->end);
|
||||
wd->end = end;
|
||||
elm_box_pack_after(wd->box, wd->end, wd->scroller);
|
||||
edje = _elm_scroller_edje_object_get(wd->scroller);
|
||||
if (!edje) return;
|
||||
edje_object_part_swallow(edje, "elm.swallow.end", wd->end);
|
||||
edje_object_signal_emit(edje, "elm,action,show,end", "elm");
|
||||
_sizing_eval(obj);
|
||||
}
|
||||
|
||||
|
@ -472,8 +480,12 @@ elm_scrolled_entry_end_unset(Evas_Object *obj)
|
|||
if (!wd) return NULL;
|
||||
if (wd->end)
|
||||
{
|
||||
Evas_Object *edje = _elm_scroller_edje_object_get(wd->scroller);
|
||||
if (!edje) return NULL;
|
||||
ret = wd->end;
|
||||
elm_box_unpack(wd->box, wd->end);
|
||||
edje_object_part_unswallow(edje, wd->end);
|
||||
edje_object_signal_emit(edje, "elm,action,hide,end", "elm");
|
||||
wd->end = NULL;
|
||||
_sizing_eval(obj);
|
||||
}
|
||||
return ret;
|
||||
|
|
|
@ -142,6 +142,8 @@ void elm_object_sub_tooltip_content_cb_set(Evas_Object *eventare
|
|||
|
||||
Eina_Bool _elm_dangerous_call_check(const char *call);
|
||||
|
||||
Evas_Object *_elm_scroller_edje_object_get(Evas_Object *obj);
|
||||
|
||||
extern char *_elm_appname;
|
||||
extern Elm_Config *_elm_config;
|
||||
extern const char *_elm_data_dir;
|
||||
|
|
|
@ -378,6 +378,14 @@ elm_scroller_add(Evas_Object *parent)
|
|||
return obj;
|
||||
}
|
||||
|
||||
Evas_Object *
|
||||
_elm_scroller_edje_object_get(Evas_Object *obj)
|
||||
{
|
||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (!wd) return NULL;
|
||||
return elm_smart_scroller_edje_object_get(wd->scr);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the content of the scroller widget (the object to be scrolled around).
|
||||
|
|
Loading…
Reference in New Issue