diff --git a/legacy/elementary/data/themes/Makefile.am b/legacy/elementary/data/themes/Makefile.am index c5806d9b6b..717080189f 100644 --- a/legacy/elementary/data/themes/Makefile.am +++ b/legacy/elementary/data/themes/Makefile.am @@ -144,7 +144,47 @@ bt_spinner_up.png \ bt_spinner_down.png \ bt_spinner_hilight.png \ up.png \ -down.png +down.png \ +emo-angry.png \ +emo-angry-shout.png \ +emo-crazy-laugh.png \ +emo-evil-laugh.png \ +emo-evil.png \ +emo-goggle-smile.png \ +emo-grumpy.png \ +emo-grumpy-smile.png \ +emo-guilty.png \ +emo-guilty-smile.png \ +emo-haha.png \ +emo-half-smile.png \ +emo-happy-panting.png \ +emo-happy.png \ +emo-indifferent.png \ +emo-kiss.png \ +emo-knowing-grin.png \ +emo-laugh.png \ +emo-little-bit-sorry.png \ +emo-love-lots.png \ +emo-love.png \ +emo-minimal-smile.png \ +emo-not-happy.png \ +emo-not-impressed.png \ +emo-omg.png \ +emo-opensmile.png \ +emo-smile.png \ +emo-sorry.png \ +emo-squint-laugh.png \ +emo-surprised.png \ +emo-suspicious.png \ +emo-tongue-dangling.png \ +emo-tongue-poke.png \ +emo-uh.png \ +emo-unhappy.png \ +emo-very-sorry.png \ +emo-what.png \ +emo-wink.png \ +emo-worried.png \ +emo-wtf.png default.edj: Makefile $(EXTRA_DIST) $(EDJE_CC) $(EDJE_FLAGS) \ diff --git a/legacy/elementary/data/themes/default.edc b/legacy/elementary/data/themes/default.edc index 8b34593172..4d2106eaac 100644 --- a/legacy/elementary/data/themes/default.edc +++ b/legacy/elementary/data/themes/default.edc @@ -5479,6 +5479,127 @@ collections { } /////////////////////////////////////////////////////////////////////////////// + group { name: "elm/entry/emoticon/angry/default"; images.image: + "emo-angry.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-angry.png"; } } } } + group { name: "elm/entry/emoticon/angry-shout/default"; images.image: + "emo-angry-shout.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-angry-shout.png"; } } } } + group { name: "elm/entry/emoticon/crazy-laugh/default"; images.image: + "emo-crazy-laugh.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-crazy-laugh.png"; } } } } + group { name: "elm/entry/emoticon/evil-laugh/default"; images.image: + "emo-evil-laugh.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-evil-laugh.png"; } } } } + group { name: "elm/entry/emoticon/evil/default"; images.image: + "emo-evil.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-evil.png"; } } } } + group { name: "elm/entry/emoticon/goggle-smile/default"; images.image: + "emo-goggle-smile.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-goggle-smile.png"; } } } } + group { name: "elm/entry/emoticon/grumpy/default"; images.image: + "emo-grumpy.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-grumpy.png"; } } } } + group { name: "elm/entry/emoticon/grumpy-smile/default"; images.image: + "emo-grumpy-smile.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-grumpy-smile.png"; } } } } + group { name: "elm/entry/emoticon/guilty/default"; images.image: + "emo-guilty.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-guilty.png"; } } } } + group { name: "elm/entry/emoticon/guilty-smile/default"; images.image: + "emo-guilty-smile.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-guilty-smile.png"; } } } } + group { name: "elm/entry/emoticon/haha/default"; images.image: + "emo-haha.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-haha.png"; } } } } + group { name: "elm/entry/emoticon/half-smile/default"; images.image: + "emo-half-smile.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-half-smile.png"; } } } } + group { name: "elm/entry/emoticon/happy-panting/default"; images.image: + "emo-happy-panting.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-happy-panting.png"; } } } } + group { name: "elm/entry/emoticon/happy/default"; images.image: + "emo-happy.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-happy.png"; } } } } + group { name: "elm/entry/emoticon/indifferent/default"; images.image: + "emo-indifferent.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-indifferent.png"; } } } } + group { name: "elm/entry/emoticon/kiss/default"; images.image: + "emo-kiss.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-kiss.png"; } } } } + group { name: "elm/entry/emoticon/knowing-grin/default"; images.image: + "emo-knowing-grin.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-knowing-grin.png"; } } } } + group { name: "elm/entry/emoticon/laugh/default"; images.image: + "emo-laugh.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-laugh.png"; } } } } + group { name: "elm/entry/emoticon/little-bit-sorry/default"; images.image: + "emo-little-bit-sorry.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-little-bit-sorry.png"; } } } } + group { name: "elm/entry/emoticon/love-lots/default"; images.image: + "emo-love-lots.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-love-lots.png"; } } } } + group { name: "elm/entry/emoticon/love/default"; images.image: + "emo-love.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-love.png"; } } } } + group { name: "elm/entry/emoticon/minimal-smile/default"; images.image: + "emo-minimal-smile.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-minimal-smile.png"; } } } } + group { name: "elm/entry/emoticon/not-happy/default"; images.image: + "emo-not-happy.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-not-happy.png"; } } } } + group { name: "elm/entry/emoticon/not-impressed/default"; images.image: + "emo-not-impressed.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-not-impressed.png"; } } } } + group { name: "elm/entry/emoticon/omg/default"; images.image: + "emo-omg.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-omg.png"; } } } } + group { name: "elm/entry/emoticon/opensmile/default"; images.image: + "emo-opensmile.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-opensmile.png"; } } } } + group { name: "elm/entry/emoticon/smile/default"; images.image: + "emo-smile.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-smile.png"; } } } } + group { name: "elm/entry/emoticon/sorry/default"; images.image: + "emo-sorry.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-sorry.png"; } } } } + group { name: "elm/entry/emoticon/squint-laugh/default"; images.image: + "emo-squint-laugh.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-squint-laugh.png"; } } } } + group { name: "elm/entry/emoticon/surprised/default"; images.image: + "emo-surprised.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-surprised.png"; } } } } + group { name: "elm/entry/emoticon/suspicious/default"; images.image: + "emo-suspicious.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-suspicious.png"; } } } } + group { name: "elm/entry/emoticon/tongue-dangling/default"; images.image: + "emo-tongue-dangling.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-tongue-dangling.png"; } } } } + group { name: "elm/entry/emoticon/tongue-poke/default"; images.image: + "emo-tongue-poke.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-tongue-poke.png"; } } } } + group { name: "elm/entry/emoticon/uh/default"; images.image: + "emo-uh.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-uh.png"; } } } } + group { name: "elm/entry/emoticon/unhappy/default"; images.image: + "emo-unhappy.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-unhappy.png"; } } } } + group { name: "elm/entry/emoticon/very-sorry/default"; images.image: + "emo-very-sorry.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-very-sorry.png"; } } } } + group { name: "elm/entry/emoticon/what/default"; images.image: + "emo-what.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-what.png"; } } } } + group { name: "elm/entry/emoticon/wink/default"; images.image: + "emo-wink.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-wink.png"; } } } } + group { name: "elm/entry/emoticon/worried/default"; images.image: + "emo-worried.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-worried.png"; } } } } + group { name: "elm/entry/emoticon/wtf/default"; images.image: + "emo-wtf.png" COMP; parts { part { name: "icon"; mouse_events: 0; description { state: "default" 0.0; max: 64 64; image.normal: + "emo-wtf.png"; } } } } +//------------------------------------------------------------ group { name: "elm/entry/base/default"; styles { @@ -23093,5 +23214,4 @@ collections { } } } - } diff --git a/legacy/elementary/data/themes/emo-angry-shout.png b/legacy/elementary/data/themes/emo-angry-shout.png new file mode 100644 index 0000000000..25477c5e91 Binary files /dev/null and b/legacy/elementary/data/themes/emo-angry-shout.png differ diff --git a/legacy/elementary/data/themes/emo-angry.png b/legacy/elementary/data/themes/emo-angry.png new file mode 100644 index 0000000000..e1510772a4 Binary files /dev/null and b/legacy/elementary/data/themes/emo-angry.png differ diff --git a/legacy/elementary/data/themes/emo-crazy-laugh.png b/legacy/elementary/data/themes/emo-crazy-laugh.png new file mode 100644 index 0000000000..4e8793717c Binary files /dev/null and b/legacy/elementary/data/themes/emo-crazy-laugh.png differ diff --git a/legacy/elementary/data/themes/emo-evil-laugh.png b/legacy/elementary/data/themes/emo-evil-laugh.png new file mode 100644 index 0000000000..1a0ec3a799 Binary files /dev/null and b/legacy/elementary/data/themes/emo-evil-laugh.png differ diff --git a/legacy/elementary/data/themes/emo-evil.png b/legacy/elementary/data/themes/emo-evil.png new file mode 100644 index 0000000000..32233fd8da Binary files /dev/null and b/legacy/elementary/data/themes/emo-evil.png differ diff --git a/legacy/elementary/data/themes/emo-goggle-smile.png b/legacy/elementary/data/themes/emo-goggle-smile.png new file mode 100644 index 0000000000..a0e485908d Binary files /dev/null and b/legacy/elementary/data/themes/emo-goggle-smile.png differ diff --git a/legacy/elementary/data/themes/emo-grumpy-smile.png b/legacy/elementary/data/themes/emo-grumpy-smile.png new file mode 100644 index 0000000000..12e301fd72 Binary files /dev/null and b/legacy/elementary/data/themes/emo-grumpy-smile.png differ diff --git a/legacy/elementary/data/themes/emo-grumpy.png b/legacy/elementary/data/themes/emo-grumpy.png new file mode 100644 index 0000000000..7de77fa6d3 Binary files /dev/null and b/legacy/elementary/data/themes/emo-grumpy.png differ diff --git a/legacy/elementary/data/themes/emo-guilty-smile.png b/legacy/elementary/data/themes/emo-guilty-smile.png new file mode 100644 index 0000000000..57de06e74c Binary files /dev/null and b/legacy/elementary/data/themes/emo-guilty-smile.png differ diff --git a/legacy/elementary/data/themes/emo-guilty.png b/legacy/elementary/data/themes/emo-guilty.png new file mode 100644 index 0000000000..071deb0d9f Binary files /dev/null and b/legacy/elementary/data/themes/emo-guilty.png differ diff --git a/legacy/elementary/data/themes/emo-haha.png b/legacy/elementary/data/themes/emo-haha.png new file mode 100644 index 0000000000..760535dfc3 Binary files /dev/null and b/legacy/elementary/data/themes/emo-haha.png differ diff --git a/legacy/elementary/data/themes/emo-half-smile.png b/legacy/elementary/data/themes/emo-half-smile.png new file mode 100644 index 0000000000..529f60a177 Binary files /dev/null and b/legacy/elementary/data/themes/emo-half-smile.png differ diff --git a/legacy/elementary/data/themes/emo-happy-panting.png b/legacy/elementary/data/themes/emo-happy-panting.png new file mode 100644 index 0000000000..c6461bc6c5 Binary files /dev/null and b/legacy/elementary/data/themes/emo-happy-panting.png differ diff --git a/legacy/elementary/data/themes/emo-happy.png b/legacy/elementary/data/themes/emo-happy.png new file mode 100644 index 0000000000..a8a3c0bdbb Binary files /dev/null and b/legacy/elementary/data/themes/emo-happy.png differ diff --git a/legacy/elementary/data/themes/emo-indifferent.png b/legacy/elementary/data/themes/emo-indifferent.png new file mode 100644 index 0000000000..254133b0ed Binary files /dev/null and b/legacy/elementary/data/themes/emo-indifferent.png differ diff --git a/legacy/elementary/data/themes/emo-kiss.png b/legacy/elementary/data/themes/emo-kiss.png new file mode 100644 index 0000000000..5eb606df0d Binary files /dev/null and b/legacy/elementary/data/themes/emo-kiss.png differ diff --git a/legacy/elementary/data/themes/emo-knowing-grin.png b/legacy/elementary/data/themes/emo-knowing-grin.png new file mode 100644 index 0000000000..589b44d571 Binary files /dev/null and b/legacy/elementary/data/themes/emo-knowing-grin.png differ diff --git a/legacy/elementary/data/themes/emo-laugh.png b/legacy/elementary/data/themes/emo-laugh.png new file mode 100644 index 0000000000..282c620f7f Binary files /dev/null and b/legacy/elementary/data/themes/emo-laugh.png differ diff --git a/legacy/elementary/data/themes/emo-little-bit-sorry.png b/legacy/elementary/data/themes/emo-little-bit-sorry.png new file mode 100644 index 0000000000..fced0e22af Binary files /dev/null and b/legacy/elementary/data/themes/emo-little-bit-sorry.png differ diff --git a/legacy/elementary/data/themes/emo-love-lots.png b/legacy/elementary/data/themes/emo-love-lots.png new file mode 100644 index 0000000000..4591fe8b68 Binary files /dev/null and b/legacy/elementary/data/themes/emo-love-lots.png differ diff --git a/legacy/elementary/data/themes/emo-love.png b/legacy/elementary/data/themes/emo-love.png new file mode 100644 index 0000000000..8fd0785038 Binary files /dev/null and b/legacy/elementary/data/themes/emo-love.png differ diff --git a/legacy/elementary/data/themes/emo-minimal-smile.png b/legacy/elementary/data/themes/emo-minimal-smile.png new file mode 100644 index 0000000000..c0051740e1 Binary files /dev/null and b/legacy/elementary/data/themes/emo-minimal-smile.png differ diff --git a/legacy/elementary/data/themes/emo-not-happy.png b/legacy/elementary/data/themes/emo-not-happy.png new file mode 100644 index 0000000000..91b4759525 Binary files /dev/null and b/legacy/elementary/data/themes/emo-not-happy.png differ diff --git a/legacy/elementary/data/themes/emo-not-impressed.png b/legacy/elementary/data/themes/emo-not-impressed.png new file mode 100644 index 0000000000..8a6901cab0 Binary files /dev/null and b/legacy/elementary/data/themes/emo-not-impressed.png differ diff --git a/legacy/elementary/data/themes/emo-omg.png b/legacy/elementary/data/themes/emo-omg.png new file mode 100644 index 0000000000..8f16f50068 Binary files /dev/null and b/legacy/elementary/data/themes/emo-omg.png differ diff --git a/legacy/elementary/data/themes/emo-opensmile.png b/legacy/elementary/data/themes/emo-opensmile.png new file mode 100644 index 0000000000..3e37d1876b Binary files /dev/null and b/legacy/elementary/data/themes/emo-opensmile.png differ diff --git a/legacy/elementary/data/themes/emo-smile.png b/legacy/elementary/data/themes/emo-smile.png new file mode 100644 index 0000000000..082731dc5b Binary files /dev/null and b/legacy/elementary/data/themes/emo-smile.png differ diff --git a/legacy/elementary/data/themes/emo-sorry.png b/legacy/elementary/data/themes/emo-sorry.png new file mode 100644 index 0000000000..757fbc7b8a Binary files /dev/null and b/legacy/elementary/data/themes/emo-sorry.png differ diff --git a/legacy/elementary/data/themes/emo-squint-laugh.png b/legacy/elementary/data/themes/emo-squint-laugh.png new file mode 100644 index 0000000000..0e1850b90d Binary files /dev/null and b/legacy/elementary/data/themes/emo-squint-laugh.png differ diff --git a/legacy/elementary/data/themes/emo-surprised.png b/legacy/elementary/data/themes/emo-surprised.png new file mode 100644 index 0000000000..0b980c602b Binary files /dev/null and b/legacy/elementary/data/themes/emo-surprised.png differ diff --git a/legacy/elementary/data/themes/emo-suspicious.png b/legacy/elementary/data/themes/emo-suspicious.png new file mode 100644 index 0000000000..15bcdc0035 Binary files /dev/null and b/legacy/elementary/data/themes/emo-suspicious.png differ diff --git a/legacy/elementary/data/themes/emo-tongue-dangling.png b/legacy/elementary/data/themes/emo-tongue-dangling.png new file mode 100644 index 0000000000..eb711ce831 Binary files /dev/null and b/legacy/elementary/data/themes/emo-tongue-dangling.png differ diff --git a/legacy/elementary/data/themes/emo-tongue-poke.png b/legacy/elementary/data/themes/emo-tongue-poke.png new file mode 100644 index 0000000000..932ef8569e Binary files /dev/null and b/legacy/elementary/data/themes/emo-tongue-poke.png differ diff --git a/legacy/elementary/data/themes/emo-uh.png b/legacy/elementary/data/themes/emo-uh.png new file mode 100644 index 0000000000..554ca35b31 Binary files /dev/null and b/legacy/elementary/data/themes/emo-uh.png differ diff --git a/legacy/elementary/data/themes/emo-unhappy.png b/legacy/elementary/data/themes/emo-unhappy.png new file mode 100644 index 0000000000..163ae6dbf1 Binary files /dev/null and b/legacy/elementary/data/themes/emo-unhappy.png differ diff --git a/legacy/elementary/data/themes/emo-very-sorry.png b/legacy/elementary/data/themes/emo-very-sorry.png new file mode 100644 index 0000000000..97091f2a13 Binary files /dev/null and b/legacy/elementary/data/themes/emo-very-sorry.png differ diff --git a/legacy/elementary/data/themes/emo-what.png b/legacy/elementary/data/themes/emo-what.png new file mode 100644 index 0000000000..a4724341c3 Binary files /dev/null and b/legacy/elementary/data/themes/emo-what.png differ diff --git a/legacy/elementary/data/themes/emo-wink.png b/legacy/elementary/data/themes/emo-wink.png new file mode 100644 index 0000000000..ad4553a576 Binary files /dev/null and b/legacy/elementary/data/themes/emo-wink.png differ diff --git a/legacy/elementary/data/themes/emo-worried.png b/legacy/elementary/data/themes/emo-worried.png new file mode 100644 index 0000000000..b081784d3d Binary files /dev/null and b/legacy/elementary/data/themes/emo-worried.png differ diff --git a/legacy/elementary/data/themes/emo-wtf.png b/legacy/elementary/data/themes/emo-wtf.png new file mode 100644 index 0000000000..5551d8b28e Binary files /dev/null and b/legacy/elementary/data/themes/emo-wtf.png differ diff --git a/legacy/elementary/src/bin/test_entry.c b/legacy/elementary/src/bin/test_entry.c index a795cbab78..8583b61ab9 100644 --- a/legacy/elementary/src/bin/test_entry.c +++ b/legacy/elementary/src/bin/test_entry.c @@ -84,21 +84,21 @@ test_entry(void *data, Evas_Object *obj, void *event_info) "
" "Also you can stick in items with (relsize + ascent): " - "" + "" " (full) " - "" + "" " (to the left)
" "Also (size + ascent): " - "" + "" " (full) " - "" + "" " (before this)
" "And as well (absize + ascent): " - "" + "" " (full) " - "" + "" " ... end." ); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); diff --git a/legacy/elementary/src/lib/Elementary.h.in b/legacy/elementary/src/lib/Elementary.h.in index 5e1a5ad5ea..e33a068a0a 100644 --- a/legacy/elementary/src/lib/Elementary.h.in +++ b/legacy/elementary/src/lib/Elementary.h.in @@ -699,6 +699,9 @@ extern "C" { EAPI void elm_entry_context_menu_item_add(Evas_Object *obj, const char *label, const char *icon_file, Elm_Icon_Type icon_type, Evas_Smart_Cb func, const void *data); EAPI void elm_entry_context_menu_disabled_set(Evas_Object *obj, Eina_Bool disabled); EAPI Eina_Bool elm_entry_context_menu_disabled_get(const Evas_Object *obj); + EAPI void elm_entry_item_provider_append(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *entry, const char *item), void *data); + EAPI void elm_entry_item_provider_prepend(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *entry, const char *item), void *data); + EAPI void elm_entry_item_provider_remove(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *entry, const char *item), void *data); EAPI char *elm_entry_markup_to_utf8(const char *s); EAPI char *elm_entry_utf8_to_markup(const char *s); /* smart callbacks called: diff --git a/legacy/elementary/src/lib/elm_entry.c b/legacy/elementary/src/lib/elm_entry.c index ba8db79df0..96ec569581 100644 --- a/legacy/elementary/src/lib/elm_entry.c +++ b/legacy/elementary/src/lib/elm_entry.c @@ -34,6 +34,7 @@ typedef struct _Mod_Api Mod_Api; typedef struct _Widget_Data Widget_Data; typedef struct _Elm_Entry_Context_Menu_Item Elm_Entry_Context_Menu_Item; +typedef struct _Elm_Entry_Item_Provider Elm_Entry_Item_Provider; struct _Widget_Data { @@ -49,6 +50,7 @@ struct _Widget_Data Evas_Coord downx, downy; Evas_Coord cx, cy, cw, ch; Eina_List *items; + Eina_List *item_providers; Mod_Api *api; // module api if supplied Eina_Bool changed : 1; Eina_Bool linewrap : 1; @@ -75,6 +77,12 @@ struct _Elm_Entry_Context_Menu_Item void *data; }; +struct _Elm_Entry_Item_Provider +{ + Evas_Object *(*func) (void *data, Evas_Object *entry, const char *item); + void *data; +}; + static const char *widtype = NULL; static void _del_hook(Evas_Object *obj); static void _theme_hook(Evas_Object *obj); @@ -161,6 +169,7 @@ _del_hook(Evas_Object *obj) { Widget_Data *wd = elm_widget_data_get(obj); Elm_Entry_Context_Menu_Item *it; + Elm_Entry_Item_Provider *ip; if ((wd->api) && (wd->api->obj_unhook)) wd->api->obj_unhook(obj); // module - unhook @@ -180,6 +189,10 @@ _del_hook(Evas_Object *obj) eina_stringshare_del(it->icon_group); free(it); } + EINA_LIST_FREE(wd->item_providers, ip) + { + free(ip); + } free(wd); } @@ -1161,15 +1174,20 @@ _get_item(void *data, Evas_Object *edje, const char *part, const char *item) { Widget_Data *wd = elm_widget_data_get(data); Evas_Object *o; + Eina_List *l; + Elm_Entry_Item_Provider *ip; + int ok = 0; - // FIXME: this is a test! need to have a standard set of "emoticons" or - // "icons" you can inline. but first be able to set add/del callbacks from - // the app/user of entry to first provide one. if they return NULL, fall - // back to here. + EINA_LIST_FOREACH(wd->item_providers, l, ip) + { + o = ip->func(ip->data, data, item); + if (o) return o; + } o = edje_object_add(evas_object_evas_get(data)); - _elm_theme_set(o, "button", "base", elm_widget_style_get(data)); - edje_object_part_text_set(o, "elm.text", item); - edje_object_signal_emit(o, "elm,state,text,visible", "elm"); + if (!strncmp(item, "emoticon/", 9)) + ok = _elm_theme_set(o, "entry", item, elm_widget_style_get(data)); + if (!ok) + _elm_theme_set(o, "entry/emoticon", "wtf", elm_widget_style_get(data)); return o; } @@ -1969,6 +1987,94 @@ elm_entry_context_menu_disabled_get(const Evas_Object *obj) return !wd->context_menu; } +/** + * This appends a custom item provider to the list for that entry + * + * This appends the given callback. The list is walked from beginning to end + * with each function called given the item href string in the text. If the + * function returns an object handle other than NULL (it should create an + * and object to do this), then this object is used to replace that item. If + * not the next provider is called until one provides an item object, or the + * default provider in entry does. + * + * @param obj The entry object + * @param func The function called to provide the item object + * @param data The data passed to @p func + * + * @ingroup Entry + */ +EAPI void +elm_entry_item_provider_append(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *entry, const char *item), void *data) +{ + ELM_CHECK_WIDTYPE(obj, widtype); + Widget_Data *wd = elm_widget_data_get(obj); + if (!wd) return; + if (!func) return; + Elm_Entry_Item_Provider *ip = calloc(1, sizeof(Elm_Entry_Item_Provider)); + if (!ip) return; + ip->func = func; + ip->data = data; + wd->item_providers = eina_list_append(wd->item_providers, ip); +} + +/** + * This prepends a custom item provider to the list for that entry + * + * This prepends the given callback. See elm_entry_item_provider_append() for + * more information + * + * @param obj The entry object + * @param func The function called to provide the item object + * @param data The data passed to @p func + * + * @ingroup Entry + */ +EAPI void +elm_entry_item_provider_prepend(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *entry, const char *item), void *data) +{ + ELM_CHECK_WIDTYPE(obj, widtype); + Widget_Data *wd = elm_widget_data_get(obj); + if (!wd) return; + if (!func) return; + Elm_Entry_Item_Provider *ip = calloc(1, sizeof(Elm_Entry_Item_Provider)); + if (!ip) return; + ip->func = func; + ip->data = data; + wd->item_providers = eina_list_prepend(wd->item_providers, ip); +} + +/** + * This removes a custom item provider to the list for that entry + * + * This removes the given callback. See elm_entry_item_provider_append() for + * more information + * + * @param obj The entry object + * @param func The function called to provide the item object + * @param data The data passed to @p func + * + * @ingroup Entry + */ +EAPI void +elm_entry_item_provider_remove(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *entry, const char *item), void *data) +{ + ELM_CHECK_WIDTYPE(obj, widtype); + Widget_Data *wd = elm_widget_data_get(obj); + Eina_List *l; + Elm_Entry_Item_Provider *ip; + if (!wd) return; + if (!func) return; + EINA_LIST_FOREACH(wd->item_providers, l, ip) + { + if ((ip->func == func) && (ip->data == data)) + { + wd->item_providers = eina_list_remove_list(wd->item_providers, l); + free(ip); + return; + } + } +} + /** * This converts a markup (HTML-like) string into UTF-8. *