From 5810b792982c1fb8c01462acbabaaf6911fd1657 Mon Sep 17 00:00:00 2001 From: Hanspeter Portner Date: Sun, 16 Nov 2008 12:29:33 +0100 Subject: [PATCH] added elementary layout, clock. prototyped plugin configuration --- data/default/Vera.ttf | Bin 0 -> 65932 bytes data/default/VeraBd.ttf | Bin 0 -> 58716 bytes data/default/default.edc | 132 ++++++++++++++++++++++----- data/default/notepad.ttf | Bin 31312 -> 0 bytes src/lib/ego.c | 125 ++++++------------------- src/lib/ego.h | 8 ++ src/lib/elementary.c | 86 ++++++++++++++++++ src/lib/elementary.h | 2 - src/lib/evas.c | 15 ++- src/lib/macro.h | 44 ++++++++- src/plugin/egoplayer.c | 231 ++++++++++++++++++++++++++++++++++++++++++----- src/plugin/egoplayer.h | 6 ++ test/showcase.edc | 2 - test/showcase.lua | 47 +++++----- 14 files changed, 515 insertions(+), 183 deletions(-) create mode 100644 data/default/Vera.ttf create mode 100644 data/default/VeraBd.ttf delete mode 100644 data/default/notepad.ttf diff --git a/data/default/Vera.ttf b/data/default/Vera.ttf new file mode 100644 index 0000000000000000000000000000000000000000..58cd6b5e61eff273e920942e28041f8ddcf1e1b5 GIT binary patch literal 65932 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 literal 0 HcwPel00001 diff --git a/data/default/VeraBd.ttf b/data/default/VeraBd.ttf new file mode 100644 index 0000000000000000000000000000000000000000..51d6111d722981a86766cc99c53f1956e5c0a229 GIT binary patch literal 58716 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 z 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 literal 0 HcwPel00001 diff --git a/data/default/default.edc b/data/default/default.edc index 5e670ce..b9b4e34 100644 --- a/data/default/default.edc +++ b/data/default/default.edc @@ -1,5 +1,6 @@ fonts { - font: "notepad.ttf" "default"; + font: "Vera.ttf" "default"; + font: "VeraBd.ttf" "bold"; } images { @@ -21,21 +22,19 @@ collections { parts { part { - name: "bg"; + name :"bg"; type: RECT; - mouse_events: 0; description { state: "default" 0.0; - rel1.relative: 0.0 0.0; - rel2.relative: 1.0 1.0; - color: 0 0 0 255; + rel1.relative: 0 0; + rel2.relative: 1 1; + color: 32 32 32 255; } } part { name: "content"; type: SWALLOW; - mouse_events: 1; description { state: "default" 0.0; rel1.relative: 0.0 0.0; @@ -47,12 +46,12 @@ collections { name: "busy"; type: IMAGE; mouse_events: 0; + repeat_events: 1; description { state: "default" 0.0; - rel1.relative: 0.5 0.5; - rel1.offset: -16 -16; - rel2.relative: 0.5 0.5; - rel2.offset: 16 16; + aspect: 1 1; + rel1.relative: 0.05 0.90; + rel2.relative: 0.10 0.95; image { tween: "busy-1.png"; tween: "busy-2.png"; @@ -72,45 +71,128 @@ collections { color: 255 255 255 255; } } + + part { + name: "message"; + type: TEXT; + effect: SOFT_SHADOW; + mouse_events: 0; + repeat_events: 1; + description { + state: "default" 0.0; + rel1.relative: 0.10 0.90; + rel1.offset: 16 0; + rel2.relative: 1.00 0.95; + text { + align: 0 0.5; + text: ""; + font: "default"; + size: 16; + } + color: 0 0 0 0; + color3: 232 232 232 0; + } + description { + state: "default" 1.0; + inherit: "default" 0.0; + color: 0 0 0 255; + color3: 232 232 232 255; + } + } part { - name: "overlay"; - type: IMAGE; + name: "config.clip"; + type: RECT; mouse_events: 1; + repeat_events: 1; description { state: "default" 0.0; - rel1.relative: 0.0 0.0; - rel2.relative: 1.0 1.0; + rel1.relative: 0.5 0.5; + rel2.relative: 0.5 0.5; + color: 255 255 255 0; + } + description { + state: "default" 1.0; + rel1.relative: 0.3 0.3; + rel2.relative: 0.7 0.7; color: 255 255 255 255; - image.normal: "border.png"; - image.border: 10 10 10 10; + } + } + part { + name: "config.content"; + type: SWALLOW; + clip_to: "config.clip"; + description { + state: "default" 0.0; + rel1.relative: 0 0; + rel1.to: "config.clip"; + rel2.relative: 1 1; + rel2.to: "config.clip"; + } + } + + part { + name: "overlay"; + type: RECT; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + rel1.relative: 0 0; + rel2.relative: 1 1; + color: 255 255 255 0; } } } programs { program { - signal: "load,start"; - after: "busy,loop"; + signal: "idle,start"; + after: "idle,loop"; } program { - signal: "load,stop"; + signal: "idle,stop"; action: ACTION_STOP; - target: "busy,loop"; - after: "busy,halt"; + target: "idle,loop"; + after: "idle,halt"; } program { - name: "busy,loop"; + name: "idle,loop"; action: STATE_SET "default" 1.0; transition: LINEAR 0.3; target: "busy"; - after: "busy,loop"; + target: "message"; + after: "idle,loop"; } program { - name: "busy,halt"; + name: "idle,halt"; action: STATE_SET "default" 0.0; transition: LINEAR 0.3; target: "busy"; + target: "message"; + } + + program { + signal: "mouse,clicked,3"; + source: "overlay"; + after: "config,show"; + } + program { + signal: "mouse,clicked,3"; + source: "config.content"; + after: "config,hide"; + } + program { + name: "config,show"; + action: STATE_SET "default" 1.0; + transition: DECELERATE 0.3; + target: "config.clip"; + } + program { + name: "config,hide"; + action: STATE_SET "default" 0.0; + transition: ACCELERATE 0.3; + target: "config.clip"; } } } diff --git a/data/default/notepad.ttf b/data/default/notepad.ttf deleted file mode 100644 index f24ad4b05b9716a941164ffdb67e0c4405c09612..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 31312 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 diff --git a/src/lib/ego.c b/src/lib/ego.c index 5ccea4b..d5605f3 100644 --- a/src/lib/ego.c +++ b/src/lib/ego.c @@ -22,9 +22,6 @@ #include "elementary.h" #include "transform.h" -static Evas_Smart *ego_smart = NULL; -static glob_L = NULL; - void luaopen_ego (lua_State *L) { @@ -58,6 +55,8 @@ luaopen_ego (lua_State *L) luaobj_new_class (L, "cEntry", cEntry); luaobj_new_class (L, "cBubble", cBubble); luaobj_new_class (L, "cHover", cHover); + luaobj_new_class (L, "cLayout", cLayout); + luaobj_new_class (L, "cClock", cClock); } void @@ -143,27 +142,23 @@ ego_sandbox (lua_State *L, int level) /* * ego smart class implementatoin */ +static lua_State *glob_L = NULL; +static Evas_Smart_Class parent_sc = {NULL}; +static Evas_Smart_Class sc = {NULL}; + static void -ego_smart_class_add (Evas_Object *eobj) +ego_smart_class_add (Evas_Object *obj) { - printf ("ego_smart_class_add\n"); - - lua_State *L = evas_object_smart_data_get (eobj); - L = glob_L; - Evas *evas = evas_object_evas_get (eobj); - evas_object_smart_data_set (eobj, L); - + lua_State *L = glob_L; + parent_sc.add (obj); + // register main class luaobj_Object *lobj = lua_newuserdata (L, sizeof (luaobj_Object)); luaobj_set_class (L, -1, lobj, "cEgo"); - lobj->data = eobj; + lobj->data = obj; evas_object_data_set (lobj->data, "luaobj", luaobj_new_ref (L, -1)); lua_setglobal (L, "ego"); - // create clipper - Evas_Object *clipper = evas_object_rectangle_add (evas); - evas_object_data_set (eobj, "clipper", clipper); - // read in buffer at index -1 if (lua_pcall (L, 0, LUA_MULTRET, 0)) { @@ -172,88 +167,26 @@ ego_smart_class_add (Evas_Object *eobj) } } -static void -ego_smart_class_del (Evas_Object *eobj) -{ - Evas_Object *clipper = evas_object_data_get (eobj, "clipper"); - evas_object_del (clipper); -} - -static void -ego_smart_class_move (Evas_Object *eobj, int x, int y) +static Evas_Smart * +ego_smart_class_new (void) { - Evas_Object *clipper = evas_object_data_get (eobj, "clipper"); - evas_object_move (clipper, x, y); -} - -static void -ego_smart_class_resize (Evas_Object *eobj, int w, int h) -{ - Evas_Object *clipper = evas_object_data_get (eobj, "clipper"); - evas_object_resize (clipper, w, h); -} - -static void -ego_smart_class_show (Evas_Object *eobj) -{ - Evas_Object *clipper = evas_object_data_get (eobj, "clipper"); - evas_object_show (clipper); -} - -static void -ego_smart_class_hide (Evas_Object *eobj) -{ - Evas_Object *clipper = evas_object_data_get (eobj, "clipper"); - evas_object_hide (clipper); -} - -static void -ego_smart_class_color_set (Evas_Object *eobj, int r, int g, int b, int a) -{ - Evas_Object *clipper = evas_object_data_get (eobj, "clipper"); - evas_object_color_set (clipper, r, g, b, a); -} - -static void -ego_smart_class_clip_set (Evas_Object *eobj, Evas_Object *clip) -{ - Evas_Object *clipper = evas_object_data_get (eobj, "clipper"); - evas_object_clip_set (clipper, clip); -} - -static void -ego_smart_class_clip_unset (Evas_Object *eobj) -{ - Evas_Object *clipper = evas_object_data_get (eobj, "clipper"); - evas_object_clip_unset (clipper); -} - -static void -ego_smart_class_calculate (Evas_Object *eobj) -{ - // TODO + if (!parent_sc.name) + { + parent_sc.name = "parent_ego"; + parent_sc.version = EVAS_SMART_CLASS_VERSION; + evas_object_smart_clipped_smart_set (&parent_sc); + } + if (!sc.name) + { + sc.name = "ego"; + sc.version = EVAS_SMART_CLASS_VERSION; + evas_object_smart_clipped_smart_set (&sc); + sc.add = ego_smart_class_add; + } + return evas_smart_class_new (&sc); } /* - * ego smart class definition - */ -Evas_Smart_Class ego_smart_class = { - "ego_smart_class", - EVAS_SMART_CLASS_VERSION, - ego_smart_class_add, - ego_smart_class_del, - ego_smart_class_move, - ego_smart_class_resize, - ego_smart_class_show, - ego_smart_class_hide, - ego_smart_class_color_set, - ego_smart_class_clip_set, - ego_smart_class_clip_unset, - ego_smart_class_calculate, - NULL -}; - -/* * ego smart class creation */ Evas_Object * @@ -261,9 +194,7 @@ ego_object_add (Evas *evas, lua_State *L) { // create smart object glob_L = L; - if (!ego_smart) - ego_smart = evas_smart_class_new (&ego_smart_class); - return evas_object_smart_add (evas, ego_smart); + return evas_object_smart_add (evas, ego_smart_class_new ()); } diff --git a/src/lib/ego.h b/src/lib/ego.h index 99a790a..c998768 100644 --- a/src/lib/ego.h +++ b/src/lib/ego.h @@ -4,6 +4,14 @@ #include #include +typedef struct _Ego Ego; +struct _Ego { + Evas *evas; + lua_State *L; + Evas_Object *obj; + Evas_Object *clip; +}; + void luaopen_ego (lua_State *L); void ego_sandbox (lua_State *L, int level); diff --git a/src/lib/elementary.c b/src/lib/elementary.c index 03fa2e3..77045f3 100644 --- a/src/lib/elementary.c +++ b/src/lib/elementary.c @@ -461,3 +461,89 @@ const luaobj_Reg *cHover[] = { NULL }; +/* + * Elementary Layout + */ + +static int +llayout_set_group (lua_State *L) +{ + luaobj_Object *obj = (luaobj_Object *) lua_touserdata (L, 1); + const char *group = luaL_checkstring (L, 2); + lua_getfield (L, LUA_REGISTRYINDEX, "ego_file"); + const char *file = luaL_checkstring (L, -1); + elm_layout_file_set (obj->data, file, group); + return 0; +} + +static int +llayout_set_content (lua_State *L) +{ + luaobj_Object *obj = (luaobj_Object *) lua_touserdata (L, 1); + lua_rawgeti (L, 2, 1); + lua_rawgeti (L, 2, 2); + luaobj_Object *con = (luaobj_Object *) lua_touserdata (L, -1); + elm_layout_content_set ( + obj->data, + luaL_checkstring (L, -2), + con->data); + return 0; +} + +const struct luaL_Reg lLayout_set[] = { + {"group", llayout_set_group}, + {"content", llayout_set_content}, + {NULL, NULL} // sentinel +}; + +const luaobj_Reg mLayout = { + lNil, + lNil, + lLayout_set, + lNil +}; + +const luaobj_Reg *cLayout[] = { + &mClass, + &mObject, + &mLayout, + NULL +}; + +/* + * Elementary Clock + */ + +SET_TAB3INTEGER (lclock_set_time, elm_clock_time_set); +GET_TAB3INTEGER (lclock_get_time, elm_clock_time_get); +SET_BOOL (lclock_set_edit, elm_clock_edit_set); +SET_BOOL (lclock_set_show_am_pm, elm_clock_show_am_pm_set); +SET_BOOL (lclock_set_show_seconds, elm_clock_show_seconds_set); + +const struct luaL_Reg lClock_set[] = { + {"time", lclock_set_time}, + {"edit", lclock_set_edit}, + {"show_am_pm", lclock_set_show_am_pm}, + {"show_seconds", lclock_set_show_seconds}, + {NULL, NULL} // sentinel +}; + +const struct luaL_Reg lClock_get[] = { + {"time", lclock_get_time}, + {NULL, NULL} // sentinel +}; + +const luaobj_Reg mClock = { + lNil, + lClock_get, + lClock_set, + lNil +}; + +const luaobj_Reg *cClock[] = { + &mClass, + &mObject, + &mClock, + NULL +}; + diff --git a/src/lib/elementary.h b/src/lib/elementary.h index 0f53b2f..0bbf71c 100644 --- a/src/lib/elementary.h +++ b/src/lib/elementary.h @@ -12,10 +12,8 @@ extern const luaobj_Reg *cLabel[]; extern const luaobj_Reg *cToggle[]; extern const luaobj_Reg *cFrame[]; extern const luaobj_Reg *cTable[]; -/* extern const luaobj_Reg *cClock[]; extern const luaobj_Reg *cLayout[]; -*/ extern const luaobj_Reg *cHover[]; extern const luaobj_Reg *cEntry[]; /* diff --git a/src/lib/evas.c b/src/lib/evas.c index 4b40919..0a7c03c 100644 --- a/src/lib/evas.c +++ b/src/lib/evas.c @@ -4,12 +4,17 @@ #include "image.h" #include "animator.h" #include "smart.h" +#include "ego.h" #include #include extern luaobj_Ref *rSmart; +/* FIXME + * smart_member_add of edje and ego don't like each other + */ + #define FN_ADD_OBJ(EGO_FUNC, EGO_CLASS, E_FUNC) \ static int \ EGO_FUNC (lua_State *L) \ @@ -20,7 +25,8 @@ EGO_FUNC (lua_State *L) \ luaobj_set_class (L, -1, tar, EGO_CLASS); \ tar->data = E_FUNC (evas_object_evas_get (obj->data)); \ evas_object_data_set (tar->data, "luaobj", luaobj_new_ref (L, -1)); \ - evas_object_clip_set (tar->data, obj->data); \ + evas_object_smart_member_add (tar->data, obj->data); \ + evas_object_clip_set (tar->data, evas_object_smart_clipped_clipper_get (obj->data)); \ if (set) \ { \ lua_getfield (L, -1, "set"); \ @@ -42,7 +48,8 @@ EGO_FUNC (lua_State *L) \ luaobj_set_class (L, -1, tar, EGO_CLASS); \ tar->data = (Evas_Object *) E_FUNC (obj->data); \ evas_object_data_set (tar->data, "luaobj", luaobj_new_ref (L, -1)); \ - evas_object_clip_set (tar->data, obj->data); \ + evas_object_smart_member_add (tar->data, obj->data); \ + evas_object_clip_set (tar->data, evas_object_smart_clipped_clipper_get (obj->data)); \ if (set) \ { \ lua_getfield (L, -1, "set"); \ @@ -165,6 +172,8 @@ FN_ADD_ELM (levas_fn_table, "cTable", elm_table_add); FN_ADD_ELM (levas_fn_entry, "cEntry", elm_entry_add); FN_ADD_ELM (levas_fn_bubble, "cBubble", elm_bubble_add); FN_ADD_ELM (levas_fn_hover, "cHover", elm_hover_add); +FN_ADD_ELM (levas_fn_layout, "cLayout", elm_layout_add); +FN_ADD_ELM (levas_fn_clock, "cClock", elm_clock_add); static int levas_fn_quit (lua_State * L) @@ -206,6 +215,8 @@ const luaL_Reg lEgo_fn [] = { {"entry", levas_fn_entry}, {"bubble", levas_fn_bubble}, {"hover", levas_fn_hover}, + {"layout", levas_fn_layout}, + {"clock", levas_fn_clock}, {"quit", levas_fn_quit}, diff --git a/src/lib/macro.h b/src/lib/macro.h index 8778e0c..5969ba6 100644 --- a/src/lib/macro.h +++ b/src/lib/macro.h @@ -301,6 +301,40 @@ EGO_FUNC (lua_State *L) \ } /* + * tab3integer macros + */ + +#define GET_TAB3INTEGER(EGO_FUNC, E_FUNC) \ +static int \ +EGO_FUNC (lua_State *L) \ +{ \ + luaobj_Object *obj = lua_touserdata (L, 1); \ + int p1, p2, p3; \ + E_FUNC (obj->data, &p1, &p2, &p3); \ + lua_newtable (L); \ + lua_pushnumber (L, p1); lua_rawseti (L, -2, 1); \ + lua_pushnumber (L, p2); lua_rawseti (L, -2, 2); \ + lua_pushnumber (L, p3); lua_rawseti (L, -2, 3); \ + return 1; \ +} + +#define SET_TAB3INTEGER(EGO_FUNC, E_FUNC) \ +static int \ +EGO_FUNC (lua_State *L) \ +{ \ + luaobj_Object *obj = lua_touserdata (L, 1); \ + lua_rawgeti (L, 2, 1); \ + lua_rawgeti (L, 2, 2); \ + lua_rawgeti (L, 2, 3); \ + E_FUNC ( \ + obj->data, \ + luaL_checkinteger (L, -3),\ + luaL_checkinteger (L, -2),\ + luaL_checkinteger (L, -1)); \ + return 0; \ +} + +/* * tab4integer macros */ @@ -314,8 +348,8 @@ EGO_FUNC (lua_State *L) \ lua_newtable (L); \ lua_pushnumber (L, p1); lua_rawseti (L, -2, 1); \ lua_pushnumber (L, p2); lua_rawseti (L, -2, 2); \ - lua_pushnumber (L, p2); lua_rawseti (L, -2, 3); \ - lua_pushnumber (L, p2); lua_rawseti (L, -2, 4); \ + lua_pushnumber (L, p3); lua_rawseti (L, -2, 3); \ + lua_pushnumber (L, p4); lua_rawseti (L, -2, 4); \ return 1; \ } @@ -338,7 +372,7 @@ EGO_FUNC (lua_State *L) \ } /* - * tab4integer macros + * tab4float macros */ #define GET_TAB4FLOAT(EGO_FUNC, E_FUNC) \ @@ -351,8 +385,8 @@ EGO_FUNC (lua_State *L) \ lua_newtable (L); \ lua_pushnumber (L, p1); lua_rawseti (L, -2, 1); \ lua_pushnumber (L, p2); lua_rawseti (L, -2, 2); \ - lua_pushnumber (L, p2); lua_rawseti (L, -2, 3); \ - lua_pushnumber (L, p2); lua_rawseti (L, -2, 4); \ + lua_pushnumber (L, p3); lua_rawseti (L, -2, 3); \ + lua_pushnumber (L, p4); lua_rawseti (L, -2, 4); \ return 1; \ } diff --git a/src/plugin/egoplayer.c b/src/plugin/egoplayer.c index f155ce9..0169e06 100644 --- a/src/plugin/egoplayer.c +++ b/src/plugin/egoplayer.c @@ -1,5 +1,29 @@ #include "egoplayer.h" +/* + * manages the use of the function NPN_PluginThreadAsyncCall + * and its alternative implementation with XEvents + * + * 1: enable plugin for + * - gecko < 1.9 + * - webkit + * + * 0: plugin runs only with + * - gecko >= 1.9 + */ +#define COMPLIANT 0 + +/* + * manages the use of the windowed and windowless mode of plugins + * + * 1: plugin runs in windowed mode + * - gecko < 1.9 + * + * 0: plugin runs in windowless mode (transparency) + * - gecko >= 1.9 + */ +#define WINDOWED 1 + void mep_asynccall (void *data) { @@ -8,10 +32,20 @@ mep_asynccall (void *data) if (!pi->done) { usleep (1000); // max 100 fps +#if COMPLIANT + XSendEvent ( + pi->display, + pi->window, + 1, + NoEventMask, + (XEvent *) &(pi->msg)); +#else NPN_PluginThreadAsyncCall (pi->instance, mep_asynccall, (void *) pi); +#endif /* COMPLIANT */ } } +#if WINDOWED int mep_animator (void *data) { @@ -19,6 +53,7 @@ mep_animator (void *data) evas_render (pi->evas); return 1; } +#endif /* WINDOWED */ void mep_event_handler (Widget xtwidget, void *data, XEvent *xevent, Boolean *b) @@ -77,7 +112,7 @@ NPP_HandleEvent (NPP instance, void *xevent) evas_event_feed_mouse_up(evas, ev.xbutton.button, EVAS_BUTTON_NONE, 0, NULL); break; case MotionNotify: - printf ("MotionNotify\n"); + //printf ("MotionNotify\n"); evas_event_feed_mouse_move(evas, ev.xmotion.x, ev.xmotion.y, 0, NULL); break; case EnterNotify: @@ -167,9 +202,11 @@ NPP_HandleEvent (NPP instance, void *xevent) printf ("ColormapNotify\n"); break; case ClientMessage: - printf ("ClientMessage\n"); +#if COMPLIANT + //printf ("ClientMessage\n"); if (ev.xclient.message_type == pi->atom) - ecore_main_loop_iterate (); + mep_asynccall (pi); +#endif break; case MappingNotify: printf ("MappingNotify\n"); @@ -185,11 +222,13 @@ NPP_HandleEvent (NPP instance, void *xevent) NPError NPP_Initialize (void) { + const char *ref = "ego"; eet_init (); ecore_init (); - ecore_config_init ("ego"); + ecore_config_init (ref); evas_init (); edje_init (); + elm_init (1, &ref); return NPERR_NO_ERROR; } @@ -205,6 +244,7 @@ NPP_GetJavaClass () void NPP_Shutdown (void) { + elm_shutdown (); edje_shutdown (); evas_shutdown (); ecore_config_shutdown (); @@ -305,6 +345,94 @@ NPP_Destroy (NPP instance, NPSavedData** save) return NPERR_NO_ERROR; } +static void +_config_fps_read (void *data) +{ + PluginInstance *pi = (PluginInstance *) data; + int fps = ecore_config_int_get ("fps"); + ecore_animator_frametime_set (1.0 / (double) fps); + edje_frametime_set (1.0 / (double) fps); +} + +static void +_config_fps_write (void *data, Evas_Object *obj, void *event_info) +{ + PluginInstance *pi = (PluginInstance *) data; + int fps = atoi (elm_entry_entry_get (obj)); + ecore_config_int_set ("fps", fps); + _config_fps_read (pi); +} + +static void +_config_theme_read (void *data) +{ + PluginInstance *pi = (PluginInstance *) data; + char path[256]; + sprintf (path, "%s/%s", THEMEDIR, ecore_config_theme_get ("theme")); + edje_object_file_set (pi->theme_obj, path, "ego/theme"); +} + +static void +_config_theme_write (void *data, Evas_Object *obj, void *event_info) +{ + PluginInstance *pi = (PluginInstance *) data; + ecore_config_theme_set ("theme", elm_entry_entry_get (obj)); + _config_theme_read (pi); +} + +static void +_config_engine_read (void *data) +{ + PluginInstance *pi = (PluginInstance *) data; + int method = evas_render_method_lookup (ecore_config_string_get ("engine")); + if (method != evas_output_method_get (pi->evas)) + { + evas_output_method_set (pi->evas, method); + evas_output_size_set (pi->evas, pi->width, pi->height); + evas_output_viewport_set (pi->evas, 0, 0, pi->width, pi->height); + + if (method == evas_render_method_lookup ("software_x11")) + { + printf ("software_x11\n"); + Evas_Engine_Info_Software_X11 *einfo = (Evas_Engine_Info_Software_X11 *) evas_engine_info_get (pi->evas); + /* the following is specific to the engine */ + einfo->info.display = pi->display; + einfo->info.visual = pi->visual; + einfo->info.colormap = pi->colormap; + einfo->info.drawable = (Drawable) pi->window; + einfo->info.depth = pi->depth; + einfo->info.rotation = 0; + einfo->info.debug = 0; + evas_engine_info_set(pi->evas, (Evas_Engine_Info *) einfo); + } + else if (method == evas_render_method_lookup ("gl_x11")) + { + printf ("gl_x11\n"); + Evas_Engine_Info_GL_X11 *einfo = (Evas_Engine_Info_GL_X11 *) evas_engine_info_get (pi->evas); + /* the following is specific to the engine */ + einfo->info.display = pi->display; + einfo->info.visual = pi->visual; + einfo->info.colormap = pi->colormap; + einfo->info.drawable = (Drawable) pi->window; + einfo->info.depth = pi->depth; + evas_engine_info_set(pi->evas, (Evas_Engine_Info *) einfo); + } + } +} + +static void +_config_engine_write (void *data, Evas_Object *obj, void *event_info) +{ + PluginInstance *pi = (PluginInstance *) data; + int ptr; + printf ("%d\n", pi->engine_toggle); + if (pi->engine_toggle == 0) + ecore_config_string_set ("engine", "gl_x11"); + else + ecore_config_string_set ("engine", "software_x11"); + _config_engine_read (pi); +} + NPError NPP_SetWindow (NPP instance, NPWindow *window) { @@ -342,27 +470,16 @@ NPP_SetWindow (NPP instance, NPWindow *window) pi->depth = ws_info->depth; pi->colormap = ws_info->colormap; - int output_method = evas_render_method_lookup ("software_x11"); - evas_output_method_set (pi->evas, output_method); - evas_output_size_set (pi->evas, pi->width, pi->height); - evas_output_viewport_set (pi->evas, 0, 0, pi->width, pi->height); - { - Evas_Engine_Info_Software_X11 *einfo = (Evas_Engine_Info_Software_X11 *) evas_engine_info_get (pi->evas); - /* the following is specific to the engine */ - einfo->info.display = pi->display; - einfo->info.visual = pi->visual; - einfo->info.colormap = pi->colormap; - einfo->info.drawable = (Drawable) pi->window; - einfo->info.depth = pi->depth; - einfo->info.rotation = 0; - einfo->info.debug = 0; - evas_engine_info_set(pi->evas, (Evas_Engine_Info *) einfo); - } + char path[256]; + sprintf (path, "%s/%s", CONFIGDIR, "config.edb"); + ecore_config_file_load (path); + + _config_fps_read (pi); + _config_engine_read (pi); // add animator to render evas ecore_animator_add (mep_animator, pi); ecore_animator_frametime_set (1.0 / 25.0); - edje_frametime_set (1.0 / 25.0); evas_event_feed_mouse_in (pi->evas, 0, NULL); // load ego file @@ -379,16 +496,77 @@ NPP_SetWindow (NPP instance, NPWindow *window) printf ("%d: %s\n", i, keys[i]); free (keys); + // ego if (luaL_loadbuffer (pi->L, globbuf, globbufsize, NULL)) printf ("ego load chunk error: %s\n", luaL_checkstring (pi->L, -1)); - Evas_Object *ego = ego_object_add (pi->evas, pi->L); - evas_object_resize (ego, pi->width, pi->height); - evas_object_show (ego); + pi->ego_obj = ego_object_add (pi->evas, pi->L); + evas_object_show (pi->ego_obj); + evas_object_focus_set (pi->ego_obj, 1); + + // theme + pi->theme_obj = edje_object_add (pi->evas); + //edje_object_file_set (pi->theme_obj, THEMEDIR"/default.edj", "ego/theme"); + _config_theme_read (pi); + edje_object_part_swallow (pi->theme_obj, "content", pi->ego_obj); + edje_object_part_text_set (pi->theme_obj, "message", "loading"); + edje_object_signal_emit (pi->theme_obj, "idle,start", ""); + evas_object_resize (pi->theme_obj, pi->width, pi->height); + evas_object_show (pi->theme_obj); + + // menu + { + Evas_Object *tab = elm_table_add (pi->theme_obj); + elm_table_homogenous_set (tab, 0); + evas_object_show (tab); + + Evas_Object *lab_fps = elm_label_add (pi->theme_obj); + elm_label_label_set (lab_fps, "fps"); + elm_table_pack (tab, lab_fps, 0, 0, 1, 1); + evas_object_show (lab_fps); + + Evas_Object *entry_fps = elm_entry_add (pi->theme_obj); + elm_entry_entry_set (entry_fps, "25"); + elm_entry_single_line_set (entry_fps, 1); + elm_entry_editable_set (entry_fps, 1); + elm_table_pack (tab, entry_fps, 1, 0, 1, 1); + evas_object_show (entry_fps); + + Evas_Object *lab_engine = elm_label_add (pi->theme_obj); + elm_label_label_set (lab_engine, "engine"); + elm_table_pack (tab, lab_engine, 0, 1, 1, 1); + evas_object_show (lab_engine); + + Evas_Object *toggle_engine = elm_toggle_add (pi->theme_obj); + elm_toggle_states_labels_set (toggle_engine, "software_x11", "gl_x11"); + elm_toggle_state_pointer_set (toggle_engine, &(pi->engine_toggle)); + elm_toggle_state_set (toggle_engine, 1); + elm_table_pack (tab, toggle_engine, 1, 1, 1, 1); + evas_object_show (toggle_engine); + evas_object_smart_callback_add (toggle_engine, "changed", _config_engine_write, pi); + + Evas_Object *lab_theme = elm_label_add (pi->theme_obj); + elm_label_label_set (lab_theme, "theme"); + elm_table_pack (tab, lab_theme, 0, 2, 1, 1); + evas_object_show (lab_theme); + + Evas_Object *entry_theme = elm_entry_add (pi->theme_obj); + elm_entry_entry_set (entry_theme, "default.edj"); + elm_entry_single_line_set (entry_theme, 1); + elm_entry_editable_set (entry_theme, 1); + elm_table_pack (tab, entry_theme, 1, 2, 1, 1); + evas_object_show (entry_theme); + + pi->config_obj = elm_frame_add (pi->theme_obj); + elm_frame_label_set (pi->config_obj, "E Goes Online"); + elm_frame_content_set (pi->config_obj, tab); + edje_object_part_swallow (pi->theme_obj, "config.content", pi->config_obj); + } free (globbuf); eet_close (fl_file); // set up message system +#if WINDOWED Widget xtwidget = XtWindowToWidget (pi->display, pi->window); long event_mask = NoEventMask | ExposureMask | @@ -402,14 +580,17 @@ NPP_SetWindow (NPP instance, NPWindow *window) XSelectInput (pi->display, pi->window, event_mask); XtAddEventHandler (xtwidget, event_mask, True, mep_event_handler, pi); - pi->atom = XInternAtom (pi->display, "edje_atom", False); +#endif /* WINDOWED */ +#if COMPLIANT + pi->atom = XInternAtom (pi->display, "edje_atom", False); pi->msg.type = ClientMessage; pi->msg.display = pi->display; pi->msg.window = pi->window; pi->msg.message_type = pi->atom; pi->msg.format = 32; pi->msg.data.l[0] = 0; +#endif /* COMPLIANT */ pi->done = 0; diff --git a/src/plugin/egoplayer.h b/src/plugin/egoplayer.h index 43b2f42..a094b3b 100644 --- a/src/plugin/egoplayer.h +++ b/src/plugin/egoplayer.h @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include "ego.h" @@ -49,6 +50,11 @@ typedef struct _PluginInstance pthread_t trigger_id; int done; + Evas_Object *ego_obj; + Evas_Object *theme_obj; + Evas_Object *config_obj; + int engine_toggle; + NPBool exists; /* Does the widget already exist? */ int action; /* What action should we take? (GET or REFRESH) */ diff --git a/test/showcase.edc b/test/showcase.edc index 5d93a4e..512787d 100644 --- a/test/showcase.edc +++ b/test/showcase.edc @@ -14,7 +14,6 @@ collections { part { name: "content"; type: SWALLOW; - mouse_events: 0; description { state: "default" 0.0; rel1.relative: 0.2 0.2; @@ -71,7 +70,6 @@ collections { part { name: "bar_content"; type: SWALLOW; - mouse_events: 1; description { state: "default" 0.0; rel1.relative: -0.1 0.05; diff --git a/test/showcase.lua b/test/showcase.lua index 60636d1..9992ff9 100644 --- a/test/showcase.lua +++ b/test/showcase.lua @@ -45,23 +45,37 @@ scr = ego:scroller { content_min_limit = {true, false} } +-- clock +clck = ego:clock { + visible = true, + size_hint_wdight = {1, 1}, + edit = false, + show_am_pm = false, + show_seconds = true +} + -- frame frm = ego:frame { size_hint_weight = {1, 1}, visible = true, label = 'frame', - content = ego:rectangle { - size_hint_weight = {1, 1}, - visible = true, - color = {255, 0, 0, 255}, - callback_mouse_down = function (self, button, x, y, X, Y) - hov:show () - end - } + content = clck } -- layout lay = ego:edje { + focus = 1, + callback_key_down = function (self, key) + if key == 'Escape' then + ego:quit () + elseif key == 't' then + if ego.visible then + ego:hide () + else + ego:show () + end + end + end, layer = 1, group = 'layout', visible = true, @@ -70,20 +84,3 @@ lay = ego:edje { lay.bg_content.swallow = frm lay.bar_content.swallow = scr --- hover -hov = ego:hover { - parent = ego, - target = frm, - content = { - 'middle', - ego:rectangle { - size_hint_weight = {1, 1}, - visible = true, - color = {0, 255, 0, 255}, - callback_mouse_down = function (self, button, x, y, X, Y) - hov:hide () - end - } - } -} - -- 2.11.4.GIT