}
///////////////////////////////////////////////////////////////////////////////
+ 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";
data.item: "min_font_size" "8";
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);
/* 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");
struct _Widget_Data
{
Evas_Object *scroller;
- Evas_Object *box;
Evas_Object *entry;
Evas_Object *icon;
Evas_Object *end;
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);
{
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);
}
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;
{
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);
}
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;