forked from enlightenment/efl
support "guide text" for entries. trivial internal + theme changes :)
SVN revision: 69961
This commit is contained in:
parent
5c9c7f9a7e
commit
ddf6442fb6
|
@ -718,11 +718,34 @@ group { name: "elm/entry/base/default";
|
||||||
tag: "preedit" "+ underline=on underline_color=#000";
|
tag: "preedit" "+ underline=on underline_color=#000";
|
||||||
tag: "preedit_sel" "+ backing=on backing_color=#000 color=#FFFFFF";
|
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 {
|
data {
|
||||||
// item: context_menu_orientation "horizontal";
|
// item: context_menu_orientation "horizontal";
|
||||||
}
|
}
|
||||||
parts {
|
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";
|
part { name: "elm.text";
|
||||||
type: TEXTBLOCK;
|
type: TEXTBLOCK;
|
||||||
mouse_events: 1;
|
mouse_events: 1;
|
||||||
|
@ -773,6 +796,18 @@ group { name: "elm/entry/base/default";
|
||||||
action: STATE_SET "default" 0.0;
|
action: STATE_SET "default" 0.0;
|
||||||
target: "elm.text";
|
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";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -796,8 +831,31 @@ group { name: "elm/entry/base-mixedwrap/default";
|
||||||
tag: "preedit" "+ underline=on underline_color=#000";
|
tag: "preedit" "+ underline=on underline_color=#000";
|
||||||
tag: "preedit_sel" "+ backing=on backing_color=#000 color=#FFFFFF";
|
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 {
|
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";
|
part { name: "elm.text";
|
||||||
description { state: "default" 0.0;
|
description { state: "default" 0.0;
|
||||||
fixed: 1 0;
|
fixed: 1 0;
|
||||||
|
@ -838,8 +896,31 @@ group { name: "elm/entry/base-charwrap/default";
|
||||||
tag: "preedit" "+ underline=on underline_color=#000";
|
tag: "preedit" "+ underline=on underline_color=#000";
|
||||||
tag: "preedit_sel" "+ backing=on backing_color=#000 color=#FFFFFF";
|
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 {
|
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";
|
part { name: "elm.text";
|
||||||
description { state: "default" 0.0;
|
description { state: "default" 0.0;
|
||||||
fixed: 1 0;
|
fixed: 1 0;
|
||||||
|
@ -863,6 +944,24 @@ group { name: "elm/entry/base-charwrap/default";
|
||||||
group { name: "elm/entry/base-nowrap/default";
|
group { name: "elm/entry/base-nowrap/default";
|
||||||
inherit: "elm/entry/base/default";
|
inherit: "elm/entry/base/default";
|
||||||
parts {
|
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";
|
part { name: "elm.text";
|
||||||
description { state: "default" 0.0;
|
description { state: "default" 0.0;
|
||||||
text {
|
text {
|
||||||
|
@ -902,8 +1001,31 @@ group { name: "elm/entry/base-single/default";
|
||||||
tag: "preedit" "+ underline=on underline_color=#000";
|
tag: "preedit" "+ underline=on underline_color=#000";
|
||||||
tag: "preedit_sel" "+ backing=on backing_color=#000 color=#FFFFFF";
|
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 {
|
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";
|
part { name: "elm.text";
|
||||||
multiline: 0;
|
multiline: 0;
|
||||||
description { state: "default" 0.0;
|
description { state: "default" 0.0;
|
||||||
|
@ -1057,6 +1179,24 @@ group { name: "elm/entry/base-nowrap-noedit/default";
|
||||||
group { name: "elm/entry/base-password/default";
|
group { name: "elm/entry/base-password/default";
|
||||||
inherit: "elm/entry/base/default";
|
inherit: "elm/entry/base/default";
|
||||||
parts {
|
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";
|
part { name: "elm.text";
|
||||||
entry_mode: PASSWORD;
|
entry_mode: PASSWORD;
|
||||||
multiline: 0;
|
multiline: 0;
|
||||||
|
|
|
@ -2039,13 +2039,13 @@ test_entry8(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
|
||||||
bt = elm_icon_add(win);
|
bt = elm_icon_add(win);
|
||||||
elm_icon_standard_set(bt, "home");
|
elm_icon_standard_set(bt, "home");
|
||||||
evas_object_size_hint_min_set(bt, 48, 48);
|
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);
|
evas_object_show(bt);
|
||||||
elm_object_part_content_set(en3, "icon", bt);
|
elm_object_part_content_set(en3, "icon", bt);
|
||||||
|
|
||||||
bt = elm_icon_add(win);
|
bt = elm_icon_add(win);
|
||||||
elm_icon_standard_set(bt, "delete");
|
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_size_hint_min_set(bt, 48, 48);
|
||||||
evas_object_show(bt);
|
evas_object_show(bt);
|
||||||
elm_object_part_content_set(en3, "end", bt);
|
elm_object_part_content_set(en3, "end", bt);
|
||||||
|
@ -2074,6 +2074,7 @@ test_entry8(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
|
||||||
evas_object_show(rect);
|
evas_object_show(rect);
|
||||||
|
|
||||||
en4 = elm_entry_add(win);
|
en4 = elm_entry_add(win);
|
||||||
|
elm_object_part_text_set(en4, "guide", "Type in here");
|
||||||
elm_entry_scrollable_set(en4, EINA_TRUE);
|
elm_entry_scrollable_set(en4, EINA_TRUE);
|
||||||
elm_entry_bounce_set(en4, EINA_TRUE, EINA_TRUE);
|
elm_entry_bounce_set(en4, EINA_TRUE, EINA_TRUE);
|
||||||
elm_entry_autocapital_type_set(en4, EINA_TRUE);
|
elm_entry_autocapital_type_set(en4, EINA_TRUE);
|
||||||
|
|
|
@ -81,6 +81,7 @@ struct _Widget_Data
|
||||||
Eina_Bool prediction_allow : 1;
|
Eina_Bool prediction_allow : 1;
|
||||||
Eina_Bool input_panel_return_key_disabled : 1;
|
Eina_Bool input_panel_return_key_disabled : 1;
|
||||||
Eina_Bool autoreturnkey : 1;
|
Eina_Bool autoreturnkey : 1;
|
||||||
|
Eina_Bool havetext : 1;
|
||||||
Elm_Cnp_Mode cnp_mode : 2;
|
Elm_Cnp_Mode cnp_mode : 2;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -379,6 +380,18 @@ _delay_write(void *data)
|
||||||
return ECORE_CALLBACK_CANCEL;
|
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 *
|
static Elm_Entry_Markup_Filter *
|
||||||
_filter_new(Elm_Entry_Filter_Cb func, void *data)
|
_filter_new(Elm_Entry_Filter_Cb func, void *data)
|
||||||
{
|
{
|
||||||
|
@ -588,6 +601,8 @@ _theme_hook(Evas_Object *obj)
|
||||||
elm_widget_highlight_in_theme_set(obj, EINA_FALSE);
|
elm_widget_highlight_in_theme_set(obj, EINA_FALSE);
|
||||||
}
|
}
|
||||||
_sizing_eval(obj);
|
_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(evas_object_evas_get(obj));
|
||||||
evas_event_thaw_eval(evas_object_evas_get(obj));
|
evas_event_thaw_eval(evas_object_evas_get(obj));
|
||||||
}
|
}
|
||||||
|
@ -1555,6 +1570,7 @@ _entry_changed_common_handling(void *data, const char *event)
|
||||||
{
|
{
|
||||||
Widget_Data *wd = elm_widget_data_get(data);
|
Widget_Data *wd = elm_widget_data_get(data);
|
||||||
Evas_Coord minh;
|
Evas_Coord minh;
|
||||||
|
const char *text;
|
||||||
if (!wd) return;
|
if (!wd) return;
|
||||||
evas_event_freeze(evas_object_evas_get(data));
|
evas_event_freeze(evas_object_evas_get(data));
|
||||||
wd->changed = EINA_TRUE;
|
wd->changed = EINA_TRUE;
|
||||||
|
@ -1579,6 +1595,14 @@ _entry_changed_common_handling(void *data, const char *event)
|
||||||
* any access to wd after this could be invalid */
|
* any access to wd after this could be invalid */
|
||||||
evas_object_smart_callback_call(data, event, NULL);
|
evas_object_smart_callback_call(data, event, NULL);
|
||||||
_check_enable_return_key(data);
|
_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
|
static void
|
||||||
|
@ -2181,6 +2205,8 @@ _text_append_idler(void *data)
|
||||||
evas_event_thaw(evas_object_evas_get(obj));
|
evas_event_thaw(evas_object_evas_get(obj));
|
||||||
evas_event_thaw_eval(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 there's still more to go, renew the idler, else, cleanup */
|
||||||
if (wd->append_text_position < wd->append_text_len)
|
if (wd->append_text_position < wd->append_text_len)
|
||||||
{
|
{
|
||||||
|
@ -2277,9 +2303,14 @@ _elm_entry_text_set(Evas_Object *obj, const char *item, const char *entry)
|
||||||
if (!wd) return;
|
if (!wd) return;
|
||||||
evas_event_freeze(evas_object_evas_get(obj));
|
evas_event_freeze(evas_object_evas_get(obj));
|
||||||
if (!entry) entry = "";
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2317,6 +2348,10 @@ _elm_entry_text_set(Evas_Object *obj, const char *item, const char *entry)
|
||||||
{
|
{
|
||||||
edje_object_part_text_set(wd->ent, "elm.text", entry);
|
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(evas_object_evas_get(obj));
|
||||||
evas_event_thaw_eval(evas_object_evas_get(obj));
|
evas_event_thaw_eval(evas_object_evas_get(obj));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue