diff --git a/data/themes/default_entry.edc b/data/themes/default_entry.edc index 3002807a0..f383f2af0 100644 --- a/data/themes/default_entry.edc +++ b/data/themes/default_entry.edc @@ -96,8 +96,30 @@ group { text_class: "entry"; } } + description { + state: "disabled" 0.0; + inherit: "default" 0.0; + color: 128 128 128 255; + } } } + + programs { + program { + name: "disable"; + signal: "e,state,disabled"; + source: "e"; + action: STATE_SET "disabled" 0.0; + target: "e.text.text"; + } + program { + name: "enable"; + signal: "e,state,enabled"; + source: "e"; + action: STATE_SET "default" 0.0; + target: "e.text.text"; + } + } } group { diff --git a/src/bin/e_editable.c b/src/bin/e_editable.c index 7c2921ccc..57f9b7c54 100644 --- a/src/bin/e_editable.c +++ b/src/bin/e_editable.c @@ -846,6 +846,27 @@ e_editable_char_size_get(Evas_Object *editable, int *w, int *h) if (h) *h = sd->average_char_h; } +EAPI void +e_editable_enable (Evas_Object *editable) +{ + E_Editable_Smart_Data *sd; + + if ((!editable) || (!(sd = evas_object_smart_data_get(editable)))) + return; + + edje_object_signal_emit(sd->text_object, "e,state,enabled", "e"); +} + +EAPI void +e_editable_disable (Evas_Object *editable) +{ + E_Editable_Smart_Data *sd; + + if ((!editable) || (!(sd = evas_object_smart_data_get(editable)))) + return; + + edje_object_signal_emit(sd->text_object, "e,state,disabled", "e"); +} /* Private functions */ /* A utility function to insert some text inside the editable object. diff --git a/src/bin/e_editable.h b/src/bin/e_editable.h index a6ec44c7e..c09feaf82 100644 --- a/src/bin/e_editable.h +++ b/src/bin/e_editable.h @@ -42,5 +42,8 @@ EAPI void e_editable_selection_hide (Evas_Object *editable); EAPI int e_editable_pos_get_from_coords (Evas_Object *editable, Evas_Coord x, Evas_Coord y); EAPI void e_editable_char_size_get (Evas_Object *editable, int *w, int *h); +EAPI void e_editable_enable (Evas_Object *entry); +EAPI void e_editable_disable (Evas_Object *entry); + #endif #endif diff --git a/src/bin/e_entry.c b/src/bin/e_entry.c index 864d6f01a..d1dd80c67 100644 --- a/src/bin/e_entry.c +++ b/src/bin/e_entry.c @@ -291,7 +291,8 @@ e_entry_enable(Evas_Object *entry) if (sd->enabled) return; - edje_object_signal_emit(entry, "e,state,enabled", "e"); + edje_object_signal_emit(sd->entry_object, "e,state,enabled", "e"); + e_editable_enable(sd->editable_object); if (sd->focused) e_editable_cursor_show(sd->editable_object); sd->enabled = 1; @@ -313,7 +314,8 @@ e_entry_disable(Evas_Object *entry) if (!sd->enabled) return; - edje_object_signal_emit(entry, "e,state,disabled", "e"); + edje_object_signal_emit(sd->entry_object, "e,state,disabled", "e"); + e_editable_disable(sd->editable_object); e_editable_cursor_hide(sd->editable_object); sd->enabled = 0; }