tag: "preedit" "+ underline=on underline_color=#000";
tag: "preedit_sel" "+ backing=on backing_color=#000 color=#FFFFFF";
}
+ style { name: "entry_textblock_guide_style";
+ base: "font=Sans font_size=10 color=#00000040 wrap=word text_class=entry left_margin=4 right_margin=4 ellipsis=0.0";
+ tag: "em" "+ font_style=Oblique";
+ tag: "hilight" "+ font_weight=Bold";
+ }
}
data {
// item: context_menu_orientation "horizontal";
}
parts {
+ part { name: "elm.guide";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1.to: "elm.text";
+ rel2.to: "elm.text";
+ text {
+ style: "entry_textblock_guide_style";
+ min: 0 1;
+ align: 0.0 0.0;
+ }
+ }
+ description { state: "hidden" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
part { name: "elm.text";
type: TEXTBLOCK;
mouse_events: 1;
action: STATE_SET "default" 0.0;
target: "elm.text";
}
+ program { name: "gdisable";
+ signal: "elm,guide,disabled";
+ source: "elm";
+ action: STATE_SET "hidden" 0.0;
+ target: "elm.guide";
+ }
+ program { name: "genable";
+ signal: "elm,guide,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "elm.guide";
+ }
}
}
tag: "preedit" "+ underline=on underline_color=#000";
tag: "preedit_sel" "+ backing=on backing_color=#000 color=#FFFFFF";
}
+ style { name: "entry_textblock_guide_style_mixedwrap";
+ base: "font=Sans font_size=10 color=#00000040 wrap=mixed text_class=entry left_margin=4 right_margin=4 ellipsis=0.0";
+ tag: "em" "+ font_style=Oblique";
+ tag: "hilight" "+ font_weight=Bold";
+ }
}
parts {
+ part { name: "elm.guide";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1.to: "elm.text";
+ rel2.to: "elm.text";
+ text {
+ style: "entry_textblock_guide_style_mixedwrap";
+ min: 0 1;
+ align: 0.0 0.0;
+ }
+ }
+ description { state: "hidden" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
part { name: "elm.text";
description { state: "default" 0.0;
fixed: 1 0;
tag: "preedit" "+ underline=on underline_color=#000";
tag: "preedit_sel" "+ backing=on backing_color=#000 color=#FFFFFF";
}
+ style { name: "entry_textblock_guide_style_charwrap";
+ base: "font=Sans font_size=10 color=#00000040 wrap=char text_class=entry left_margin=4 right_margin=4 ellipsis=0.0";
+ tag: "em" "+ font_style=Oblique";
+ tag: "hilight" "+ font_weight=Bold";
+ }
}
parts {
+ part { name: "elm.guide";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1.to: "elm.text";
+ rel2.to: "elm.text";
+ text {
+ style: "entry_textblock_guide_style_charwrap";
+ min: 0 1;
+ align: 0.0 0.0;
+ }
+ }
+ description { state: "hidden" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
part { name: "elm.text";
description { state: "default" 0.0;
fixed: 1 0;
group { name: "elm/entry/base-nowrap/default";
inherit: "elm/entry/base/default";
parts {
+ part { name: "elm.guide";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1.to: "elm.text";
+ rel2.to: "elm.text";
+ text {
+ style: "entry_textblock_guide_style";
+ min: 0 1;
+ align: 0.0 0.0;
+ }
+ }
+ description { state: "hidden" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
part { name: "elm.text";
description { state: "default" 0.0;
text {
tag: "preedit" "+ underline=on underline_color=#000";
tag: "preedit_sel" "+ backing=on backing_color=#000 color=#FFFFFF";
}
+ style { name: "entry_single_textblock_guide_style";
+ base: "font=Sans font_size=10 color=#00000080 wrap=none text_class=entry left_margin=4 right_margin=4 ellipsis=0.0";
+ tag: "em" "+ font_style=Oblique";
+ tag: "hilight" "+ font_weight=Bold";
+ }
}
parts {
+ part { name: "elm.guide";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1.to: "elm.text";
+ rel2.to: "elm.text";
+ text {
+ style: "entry_single_textblock_guide_style";
+ min: 0 1;
+ align: 0.0 0.0;
+ }
+ }
+ description { state: "hidden" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
part { name: "elm.text";
multiline: 0;
description { state: "default" 0.0;
group { name: "elm/entry/base-password/default";
inherit: "elm/entry/base/default";
parts {
+ part { name: "elm.guide";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1.to: "elm.text";
+ rel2.to: "elm.text";
+ text {
+ style: "entry_single_textblock_guide_style";
+ min: 0 1;
+ align: 0.0 0.0;
+ }
+ }
+ description { state: "hidden" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
part { name: "elm.text";
entry_mode: PASSWORD;
multiline: 0;
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_color_set(bt, 128, 0, 0, 128);
evas_object_show(bt);
elm_object_part_content_set(en3, "icon", bt);
bt = elm_icon_add(win);
elm_icon_standard_set(bt, "delete");
- evas_object_color_set(bt, 255, 0, 0, 128);
+ evas_object_color_set(bt, 128, 0, 0, 128);
evas_object_size_hint_min_set(bt, 48, 48);
evas_object_show(bt);
elm_object_part_content_set(en3, "end", bt);
evas_object_show(rect);
en4 = elm_entry_add(win);
+ elm_object_part_text_set(en4, "guide", "Type in here");
elm_entry_scrollable_set(en4, EINA_TRUE);
elm_entry_bounce_set(en4, EINA_TRUE, EINA_TRUE);
elm_entry_autocapital_type_set(en4, EINA_TRUE);
Eina_Bool prediction_allow : 1;
Eina_Bool input_panel_return_key_disabled : 1;
Eina_Bool autoreturnkey : 1;
+ Eina_Bool havetext : 1;
Elm_Cnp_Mode cnp_mode : 2;
};
return ECORE_CALLBACK_CANCEL;
}
+static void
+_elm_entry_update_guide(Evas_Object *obj, Eina_Bool havetext)
+{
+ Widget_Data *wd = elm_widget_data_get(obj);
+ if (!wd) return;
+ if ((havetext) && (!wd->havetext))
+ edje_object_signal_emit(wd->ent, "elm,guide,disabled", "elm");
+ else if ((!havetext) && (wd->havetext))
+ edje_object_signal_emit(wd->ent, "elm,guide,enabled", "elm");
+ wd->havetext = havetext;
+}
+
static Elm_Entry_Markup_Filter *
_filter_new(Elm_Entry_Filter_Cb func, void *data)
{
elm_widget_highlight_in_theme_set(obj, EINA_FALSE);
}
_sizing_eval(obj);
+ wd->havetext = !wd->havetext;
+ _elm_entry_update_guide(obj, !wd->havetext);
evas_event_thaw(evas_object_evas_get(obj));
evas_event_thaw_eval(evas_object_evas_get(obj));
}
{
Widget_Data *wd = elm_widget_data_get(data);
Evas_Coord minh;
+ const char *text;
if (!wd) return;
evas_event_freeze(evas_object_evas_get(data));
wd->changed = EINA_TRUE;
* any access to wd after this could be invalid */
evas_object_smart_callback_call(data, event, NULL);
_check_enable_return_key(data);
+ text = edje_object_part_text_get(wd->ent, "elm.text");
+ if (text)
+ {
+ if (text[0])
+ _elm_entry_update_guide(data, EINA_TRUE);
+ else
+ _elm_entry_update_guide(data, EINA_FALSE);
+ }
}
static void
evas_event_thaw(evas_object_evas_get(obj));
evas_event_thaw_eval(evas_object_evas_get(obj));
+ _elm_entry_update_guide(obj, EINA_TRUE);
+
/* If there's still more to go, renew the idler, else, cleanup */
if (wd->append_text_position < wd->append_text_len)
{
if (!wd) return;
evas_event_freeze(evas_object_evas_get(obj));
if (!entry) entry = "";
- if (item && strcmp(item, "default"))
+ if (item)
{
- edje_object_part_text_set(wd->ent, item, entry);
+ if (!strcmp(item, "guide"))
+ edje_object_part_text_set(wd->ent, "elm.guide", entry);
+ else
+ edje_object_part_text_set(wd->ent, item, entry);
+ evas_event_thaw(evas_object_evas_get(obj));
+ evas_event_thaw_eval(evas_object_evas_get(obj));
return;
}
{
edje_object_part_text_set(wd->ent, "elm.text", entry);
}
+ if ((entry) && (entry[0]))
+ _elm_entry_update_guide(obj, EINA_TRUE);
+ else
+ _elm_entry_update_guide(obj, EINA_FALSE);
evas_event_thaw(evas_object_evas_get(obj));
evas_event_thaw_eval(evas_object_evas_get(obj));
}