diff --git a/legacy/elementary/config/default/base.src b/legacy/elementary/config/default/base.src index ea450eb442..a8c42ac3ab 100644 --- a/legacy/elementary/config/default/base.src +++ b/legacy/elementary/config/default/base.src @@ -1,6 +1,6 @@ group "Elm_Config" struct { value "config_version" int: 65537; - value "engine" int: 0; + value "engine" string: "software_x11"; value "thumbscroll_enable" uchar: 1; value "thumbscroll_threshold" int: 24; value "thumbscroll_momentum_threshold" double: 100.0; diff --git a/legacy/elementary/config/illume/base.src b/legacy/elementary/config/illume/base.src index 851114b437..bdeaac277a 100644 --- a/legacy/elementary/config/illume/base.src +++ b/legacy/elementary/config/illume/base.src @@ -1,6 +1,6 @@ group "Elm_Config" struct { value "config_version" int: 65537; - value "engine" int: 0; + value "engine" string: "software_x11"; value "thumbscroll_enable" uchar: 1; value "thumbscroll_threshold" int: 24; value "thumbscroll_momentum_threshold" double: 100.0; diff --git a/legacy/elementary/config/standard/base.src b/legacy/elementary/config/standard/base.src index badf183546..42abf5a6b6 100644 --- a/legacy/elementary/config/standard/base.src +++ b/legacy/elementary/config/standard/base.src @@ -1,6 +1,6 @@ group "Elm_Config" struct { value "config_version" int: 65537; - value "engine" int: 0; + value "engine" string: "software_x11"; value "thumbscroll_enable" uchar: 0; value "thumbscroll_threshold" int: 4; value "thumbscroll_momentum_threshold" double: 100.0; diff --git a/legacy/elementary/src/lib/elm_config.c b/legacy/elementary/src/lib/elm_config.c index c5536341f0..b5750fe6e5 100644 --- a/legacy/elementary/src/lib/elm_config.c +++ b/legacy/elementary/src/lib/elm_config.c @@ -13,6 +13,22 @@ Elm_Config *_elm_config = NULL; char *_elm_profile = NULL; static Eet_Data_Descriptor *_config_edd = NULL; +const char *_elm_engines[] = { + "software_x11", + "fb", + "directfb", + "software_16_x11", + "software_8_x11", + "xrender_x11", + "opengl_x11", + "software_gdi", + "software_16_wince_gdi", + "sdl", + "software_16_sdl", + "opengl_sdl", + NULL +}; + static void _desc_init(void); static void _desc_shutdown(void); static void _profile_fetch_from_conf(void); @@ -207,7 +223,7 @@ _desc_init(void) EET_DATA_DESCRIPTOR_ADD_BASIC(_config_edd, Elm_Config, "config_version", config_version, EET_T_INT); EET_DATA_DESCRIPTOR_ADD_BASIC(_config_edd, Elm_Config, "engine", engine, - EET_T_INT); + EET_T_STRING); EET_DATA_DESCRIPTOR_ADD_BASIC(_config_edd, Elm_Config, "thumbscroll_enable", thumbscroll_enable, EET_T_UCHAR); EET_DATA_DESCRIPTOR_ADD_BASIC(_config_edd, Elm_Config, @@ -529,6 +545,7 @@ _config_free(void) { eina_stringshare_del(fontdir); } + if (_elm_config->engine) eina_stringshare_del(_elm_config->engine); if (_elm_config->theme) eina_stringshare_del(_elm_config->theme); if (_elm_config->modules) eina_stringshare_del(_elm_config->modules); free(_elm_config); @@ -612,7 +629,7 @@ _config_load(void) * without the config, but do we want that? */ _elm_config = ELM_NEW(Elm_Config); _elm_config->config_version = ELM_CONFIG_VERSION; - _elm_config->engine = ELM_SOFTWARE_X11; + _elm_config->engine = eina_stringshare_add("software_x11"); _elm_config->thumbscroll_enable = EINA_TRUE; _elm_config->thumbscroll_threshold = 24; _elm_config->thumbscroll_momentum_threshold = 100.0; @@ -871,55 +888,55 @@ _env_get(void) (!strcasecmp(s, "x")) || (!strcasecmp(s, "software-x11")) || (!strcasecmp(s, "software_x11"))) - _elm_config->engine = ELM_SOFTWARE_X11; + eina_stringshare_replace(&_elm_config->engine, ELM_SOFTWARE_X11); else if ((!strcasecmp(s, "opengl")) || (!strcasecmp(s, "gl")) || (!strcasecmp(s, "opengl-x11")) || (!strcasecmp(s, "opengl_x11"))) - _elm_config->engine = ELM_OPENGL_X11; + eina_stringshare_replace(&_elm_config->engine, ELM_OPENGL_X11); else if ((!strcasecmp(s, "x11-8")) || (!strcasecmp(s, "x18")) || (!strcasecmp(s, "software-8-x11")) || (!strcasecmp(s, "software_8_x11"))) - _elm_config->engine = ELM_SOFTWARE_8_X11; + eina_stringshare_replace(&_elm_config->engine, ELM_SOFTWARE_8_X11); else if ((!strcasecmp(s, "x11-16")) || (!strcasecmp(s, "x16")) || (!strcasecmp(s, "software-16-x11")) || (!strcasecmp(s, "software_16_x11"))) - _elm_config->engine = ELM_SOFTWARE_16_X11; + eina_stringshare_replace(&_elm_config->engine, ELM_SOFTWARE_16_X11); else if ((!strcasecmp(s, "xrender")) || (!strcasecmp(s, "xr")) || (!strcasecmp(s, "xrender-x11")) || (!strcasecmp(s, "xrender_x11"))) - _elm_config->engine = ELM_XRENDER_X11; + eina_stringshare_replace(&_elm_config->engine, ELM_XRENDER_X11); else if ((!strcasecmp(s, "fb")) || (!strcasecmp(s, "software-fb")) || (!strcasecmp(s, "software_fb"))) - _elm_config->engine = ELM_SOFTWARE_FB; + eina_stringshare_replace(&_elm_config->engine, ELM_SOFTWARE_FB); else if ((!strcasecmp(s, "directfb")) || (!strcasecmp(s, "dfb"))) - _elm_config->engine = ELM_SOFTWARE_DIRECTFB; + eina_stringshare_replace(&_elm_config->engine, ELM_SOFTWARE_DIRECTFB); else if ((!strcasecmp(s, "sdl")) || (!strcasecmp(s, "software-sdl")) || (!strcasecmp(s, "software_sdl"))) - _elm_config->engine = ELM_SOFTWARE_SDL; + eina_stringshare_replace(&_elm_config->engine, ELM_SOFTWARE_SDL); else if ((!strcasecmp(s, "sdl-16")) || (!strcasecmp(s, "software-16-sdl")) || (!strcasecmp(s, "software_16_sdl"))) - _elm_config->engine = ELM_SOFTWARE_16_SDL; + eina_stringshare_replace(&_elm_config->engine, ELM_SOFTWARE_16_SDL); else if ((!strcasecmp(s, "opengl-sdl")) || (!strcasecmp(s, "opengl_sdl")) || (!strcasecmp(s, "gl-sdl")) || (!strcasecmp(s, "gl_sdl"))) - _elm_config->engine = ELM_OPENGL_SDL; + eina_stringshare_replace(&_elm_config->engine, ELM_OPENGL_SDL); else if ((!strcasecmp(s, "gdi")) || (!strcasecmp(s, "software-gdi")) || (!strcasecmp(s, "software_gdi"))) - _elm_config->engine = ELM_SOFTWARE_WIN32; + eina_stringshare_replace(&_elm_config->engine, ELM_SOFTWARE_WIN32); else if ((!strcasecmp(s, "wince-gdi")) || (!strcasecmp(s, "software-16-wince-gdi")) || (!strcasecmp(s, "software_16_wince_gdi"))) - _elm_config->engine = ELM_SOFTWARE_16_WINCE; + eina_stringshare_replace(&_elm_config->engine, ELM_SOFTWARE_16_WINCE); } s = getenv("ELM_THUMBSCROLL_ENABLE"); @@ -1051,10 +1068,12 @@ _elm_config_init(void) void _elm_config_sub_init(void) { - if ((_elm_config->engine == ELM_SOFTWARE_X11) || - (_elm_config->engine == ELM_SOFTWARE_16_X11) || - (_elm_config->engine == ELM_XRENDER_X11) || - (_elm_config->engine == ELM_OPENGL_X11)) +#define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name)) + if (ENGINE_COMPARE(ELM_SOFTWARE_X11) || + ENGINE_COMPARE(ELM_SOFTWARE_16_X11) || + ENGINE_COMPARE(ELM_XRENDER_X11) || + ENGINE_COMPARE(ELM_OPENGL_X11)) +#undef ENGINE_COMPARE { #ifdef HAVE_ELEMENTARY_X unsigned int val = 1000; @@ -1174,15 +1193,12 @@ _elm_config_profile_set(const char *profile) void _elm_config_shutdown(void) { - if ((_elm_config->engine == ELM_SOFTWARE_X11) || - (_elm_config->engine == ELM_SOFTWARE_16_X11) || - (_elm_config->engine == ELM_XRENDER_X11) || - (_elm_config->engine == ELM_OPENGL_X11) || - (_elm_config->engine == ELM_SOFTWARE_SDL) || - (_elm_config->engine == ELM_SOFTWARE_16_SDL) || - (_elm_config->engine == ELM_OPENGL_SDL) || - (_elm_config->engine == ELM_SOFTWARE_WIN32) || - (_elm_config->engine == ELM_SOFTWARE_16_WINCE)) +#define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name)) + if (ENGINE_COMPARE(ELM_SOFTWARE_X11) || + ENGINE_COMPARE(ELM_SOFTWARE_16_X11) || + ENGINE_COMPARE(ELM_XRENDER_X11) || + ENGINE_COMPARE(ELM_OPENGL_X11)) +#undef ENGINE_COMPARE { #ifdef HAVE_ELEMENTARY_X ecore_event_handler_del(_prop_change_handler); diff --git a/legacy/elementary/src/lib/elm_main.c b/legacy/elementary/src/lib/elm_main.c index 5cb57be4ba..c55e82894b 100644 --- a/legacy/elementary/src/lib/elm_main.c +++ b/legacy/elementary/src/lib/elm_main.c @@ -564,10 +564,12 @@ elm_quicklaunch_sub_init(int argc, char **argv) evas_init(); edje_init(); _elm_config_sub_init(); - if ((_elm_config->engine == ELM_SOFTWARE_X11) || - (_elm_config->engine == ELM_SOFTWARE_16_X11) || - (_elm_config->engine == ELM_XRENDER_X11) || - (_elm_config->engine == ELM_OPENGL_X11)) +#define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name)) + if (ENGINE_COMPARE(ELM_SOFTWARE_X11) || + ENGINE_COMPARE(ELM_SOFTWARE_16_X11) || + ENGINE_COMPARE(ELM_XRENDER_X11) || + ENGINE_COMPARE(ELM_OPENGL_X11)) +#undef ENGINE_COMPARE { #ifdef HAVE_ELEMENTARY_X ecore_x_init(NULL); @@ -597,24 +599,28 @@ elm_quicklaunch_sub_shutdown(void) _elm_module_shutdown(); ecore_imf_shutdown(); ecore_evas_shutdown(); - if ((_elm_config->engine == ELM_SOFTWARE_X11) || - (_elm_config->engine == ELM_SOFTWARE_16_X11) || - (_elm_config->engine == ELM_XRENDER_X11) || - (_elm_config->engine == ELM_OPENGL_X11)) +#define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name)) + if (ENGINE_COMPARE(ELM_SOFTWARE_X11) || + ENGINE_COMPARE(ELM_SOFTWARE_16_X11) || + ENGINE_COMPARE(ELM_XRENDER_X11) || + ENGINE_COMPARE(ELM_OPENGL_X11)) +#undef ENGINE_COMPARE { #ifdef HAVE_ELEMENTARY_X ecore_x_disconnect(); #endif } - if ((_elm_config->engine == ELM_SOFTWARE_X11) || - (_elm_config->engine == ELM_SOFTWARE_16_X11) || - (_elm_config->engine == ELM_XRENDER_X11) || - (_elm_config->engine == ELM_OPENGL_X11) || - (_elm_config->engine == ELM_SOFTWARE_SDL) || - (_elm_config->engine == ELM_SOFTWARE_16_SDL) || - (_elm_config->engine == ELM_OPENGL_SDL) || - (_elm_config->engine == ELM_SOFTWARE_WIN32) || - (_elm_config->engine == ELM_SOFTWARE_16_WINCE)) +#define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name)) + if (ENGINE_COMPARE(ELM_SOFTWARE_X11) || + ENGINE_COMPARE(ELM_SOFTWARE_16_X11) || + ENGINE_COMPARE(ELM_XRENDER_X11) || + ENGINE_COMPARE(ELM_OPENGL_X11) || + ENGINE_COMPARE(ELM_SOFTWARE_SDL) || + ENGINE_COMPARE(ELM_SOFTWARE_16_SDL) || + ENGINE_COMPARE(ELM_OPENGL_SDL) || + ENGINE_COMPARE(ELM_SOFTWARE_WIN32) || + ENGINE_COMPARE(ELM_SOFTWARE_16_WINCE)) +#undef ENGINE_COMPARE evas_cserve_disconnect(); edje_shutdown(); evas_shutdown(); @@ -678,10 +684,12 @@ elm_quicklaunch_seed(void) ecore_main_loop_iterate(); evas_object_del(win); ecore_main_loop_iterate(); - if ((_elm_config->engine == ELM_SOFTWARE_X11) || - (_elm_config->engine == ELM_SOFTWARE_16_X11) || - (_elm_config->engine == ELM_XRENDER_X11) || - (_elm_config->engine == ELM_OPENGL_X11)) +#define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name)) + if (ENGINE_COMPARE(ELM_SOFTWARE_X11) || + ENGINE_COMPARE(ELM_SOFTWARE_16_X11) || + ENGINE_COMPARE(ELM_XRENDER_X11) || + ENGINE_COMPARE(ELM_OPENGL_X11)) +#undef ENGINE_COMPARE { # ifdef HAVE_ELEMENTARY_X ecore_x_sync(); @@ -829,10 +837,12 @@ elm_quicklaunch_fork(int argc, char **argv, char *cwd, void (postfork_func) (voi evas_init(); edje_init(); _elm_config_sub_init(); - if ((_elm_config->engine == ELM_SOFTWARE_X11) || - (_elm_config->engine == ELM_SOFTWARE_16_X11) || - (_elm_config->engine == ELM_XRENDER_X11) || - (_elm_config->engine == ELM_OPENGL_X11)) +#define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name)) + if (ENGINE_COMPARE(ELM_SOFTWARE_X11) || + ENGINE_COMPARE(ELM_SOFTWARE_16_X11) || + ENGINE_COMPARE(ELM_XRENDER_X11) || + ENGINE_COMPARE(ELM_OPENGL_X11)) +#undef ENGINE_COMPARE { # ifdef HAVE_ELEMENTARY_X ecore_x_init(NULL); diff --git a/legacy/elementary/src/lib/elm_priv.h b/legacy/elementary/src/lib/elm_priv.h index c289db4637..6ccf0be12a 100644 --- a/legacy/elementary/src/lib/elm_priv.h +++ b/legacy/elementary/src/lib/elm_priv.h @@ -39,24 +39,6 @@ struct _Elm_Theme int ref; }; -typedef enum _Elm_Engine -{ - ELM_SOFTWARE_X11, - ELM_SOFTWARE_FB, - ELM_SOFTWARE_DIRECTFB, - ELM_SOFTWARE_16_X11, - ELM_SOFTWARE_8_X11, - ELM_XRENDER_X11, - ELM_OPENGL_X11, - ELM_SOFTWARE_WIN32, - ELM_SOFTWARE_16_WINCE, - ELM_SOFTWARE_SDL, - ELM_SOFTWARE_16_SDL, - ELM_OPENGL_SDL -} Elm_Engine; - - - /* increment this whenever we change config enough that you need new * defaults for elm to work. */ @@ -67,10 +49,26 @@ typedef enum _Elm_Engine #define ELM_CONFIG_FILE_GENERATION 0x0001 #define ELM_CONFIG_VERSION ((ELM_CONFIG_EPOCH << 16) | ELM_CONFIG_FILE_GENERATION) +/* note: always remember to sync it with elm_config.c */ +extern const char *_elm_engines[]; + +#define ELM_SOFTWARE_X11 (_elm_engines[0]) +#define ELM_SOFTWARE_FB (_elm_engines[1]) +#define ELM_SOFTWARE_DIRECTFB (_elm_engines[2]) +#define ELM_SOFTWARE_16_X11 (_elm_engines[3]) +#define ELM_SOFTWARE_8_X11 (_elm_engines[4]) +#define ELM_XRENDER_X11 (_elm_engines[5]) +#define ELM_OPENGL_X11 (_elm_engines[6]) +#define ELM_SOFTWARE_WIN32 (_elm_engines[7]) +#define ELM_SOFTWARE_16_WINCE (_elm_engines[8]) +#define ELM_SOFTWARE_SDL (_elm_engines[9]) +#define ELM_SOFTWARE_16_SDL (_elm_engines[10]) +#define ELM_OPENGL_SDL (_elm_engines[11]) + struct _Elm_Config { int config_version; - int engine; + const char *engine; Eina_Bool thumbscroll_enable; int thumbscroll_threshold; double thumbscroll_momentum_threshold; diff --git a/legacy/elementary/src/lib/elm_win.c b/legacy/elementary/src/lib/elm_win.c index 9a12e1b9f2..d3ad9a2b68 100644 --- a/legacy/elementary/src/lib/elm_win.c +++ b/legacy/elementary/src/lib/elm_win.c @@ -323,36 +323,41 @@ static void _elm_win_xwindow_get(Elm_Win *win) { win->xwin = 0; - switch (_elm_config->engine) + +#define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name)) + if (ENGINE_COMPARE(ELM_SOFTWARE_X11)) { - case ELM_SOFTWARE_X11: - if (win->ee) win->xwin = ecore_evas_software_x11_window_get(win->ee); - break; - case ELM_SOFTWARE_FB: - case ELM_SOFTWARE_DIRECTFB: - case ELM_SOFTWARE_16_WINCE: - case ELM_SOFTWARE_SDL: - case ELM_SOFTWARE_16_SDL: - case ELM_OPENGL_SDL: - break; - case ELM_SOFTWARE_16_X11: - if (win->ee) win->xwin = ecore_evas_software_x11_16_window_get(win->ee); - break; - case ELM_SOFTWARE_8_X11: - if (win->ee) win->xwin = ecore_evas_software_x11_8_window_get(win->ee); - break; - case ELM_XRENDER_X11: - if (win->ee) win->xwin = ecore_evas_xrender_x11_window_get(win->ee); - break; - case ELM_OPENGL_X11: - if (win->ee) win->xwin = ecore_evas_gl_x11_window_get(win->ee); - break; - case ELM_SOFTWARE_WIN32: - if (win->ee) win->xwin = (long)ecore_evas_win32_window_get(win->ee); - break; - default: - break; + if (win->ee) win->xwin = ecore_evas_software_x11_window_get(win->ee); } + else if (ENGINE_COMPARE(ELM_SOFTWARE_X11) || + ENGINE_COMPARE(ELM_SOFTWARE_FB) || + ENGINE_COMPARE(ELM_SOFTWARE_16_WINCE) || + ENGINE_COMPARE(ELM_SOFTWARE_SDL) || + ENGINE_COMPARE(ELM_SOFTWARE_16_SDL) || + ENGINE_COMPARE(ELM_OPENGL_SDL)) + { + } + else if (ENGINE_COMPARE(ELM_SOFTWARE_16_X11)) + { + if (win->ee) win->xwin = ecore_evas_software_x11_16_window_get(win->ee); + } + else if (ENGINE_COMPARE(ELM_SOFTWARE_8_X11)) + { + if (win->ee) win->xwin = ecore_evas_software_x11_8_window_get(win->ee); + } + else if (ENGINE_COMPARE(ELM_XRENDER_X11)) + { + if (win->ee) win->xwin = ecore_evas_xrender_x11_window_get(win->ee); + } + else if (ENGINE_COMPARE(ELM_OPENGL_X11)) + { + if (win->ee) win->xwin = ecore_evas_gl_x11_window_get(win->ee); + } + else if (ENGINE_COMPARE(ELM_SOFTWARE_WIN32)) + { + if (win->ee) win->xwin = (long)ecore_evas_win32_window_get(win->ee); + } +#undef ENGINE_COMPARE } #endif @@ -906,22 +911,26 @@ elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type) const char *fontpath; win = ELM_NEW(Elm_Win); - switch (_elm_config->engine) + +#define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name)) + if (ENGINE_COMPARE(ELM_SOFTWARE_X11)) { - case ELM_SOFTWARE_X11: win->ee = ecore_evas_software_x11_new(NULL, 0, 0, 0, 1, 1); #ifdef HAVE_ELEMENTARY_X win->client_message_handler = ecore_event_handler_add (ECORE_X_EVENT_CLIENT_MESSAGE, _elm_win_client_message, win); #endif - break; - case ELM_SOFTWARE_FB: + } + else if (ENGINE_COMPARE(ELM_SOFTWARE_FB)) + { win->ee = ecore_evas_fb_new(NULL, 0, 1, 1); - break; - case ELM_SOFTWARE_DIRECTFB: + } + else if (ENGINE_COMPARE(ELM_SOFTWARE_DIRECTFB)) + { win->ee = ecore_evas_directfb_new(NULL, 1, 0, 0, 1, 1); - break; - case ELM_SOFTWARE_16_X11: + } + else if (ENGINE_COMPARE(ELM_SOFTWARE_16_X11)) + { win->ee = ecore_evas_software_x11_16_new(NULL, 0, 0, 0, 1, 1); if (!win->ee) { @@ -932,8 +941,9 @@ elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type) win->client_message_handler = ecore_event_handler_add (ECORE_X_EVENT_CLIENT_MESSAGE, _elm_win_client_message, win); #endif - break; - case ELM_SOFTWARE_8_X11: + } + else if (ENGINE_COMPARE(ELM_SOFTWARE_8_X11)) + { win->ee = ecore_evas_software_x11_8_new(NULL, 0, 0, 0, 1, 1); if (!win->ee) { @@ -944,8 +954,9 @@ elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type) win->client_message_handler = ecore_event_handler_add (ECORE_X_EVENT_CLIENT_MESSAGE, _elm_win_client_message, win); #endif - break; - case ELM_XRENDER_X11: + } + else if (ENGINE_COMPARE(ELM_XRENDER_X11)) + { win->ee = ecore_evas_xrender_x11_new(NULL, 0, 0, 0, 1, 1); if (!win->ee) { @@ -956,8 +967,9 @@ elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type) win->client_message_handler = ecore_event_handler_add (ECORE_X_EVENT_CLIENT_MESSAGE, _elm_win_client_message, win); #endif - break; - case ELM_OPENGL_X11: + } + else if (ENGINE_COMPARE(ELM_OPENGL_X11)) + { win->ee = ecore_evas_gl_x11_new(NULL, 0, 0, 0, 1, 1); if (!win->ee) { @@ -968,40 +980,43 @@ elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type) win->client_message_handler = ecore_event_handler_add (ECORE_X_EVENT_CLIENT_MESSAGE, _elm_win_client_message, win); #endif - break; - case ELM_SOFTWARE_WIN32: + } + else if (ENGINE_COMPARE(ELM_SOFTWARE_WIN32)) + { win->ee = ecore_evas_software_gdi_new(NULL, 0, 0, 1, 1); - break; - case ELM_SOFTWARE_16_WINCE: + } + else if (ENGINE_COMPARE(ELM_SOFTWARE_16_WINCE)) + { win->ee = ecore_evas_software_wince_gdi_new(NULL, 0, 0, 1, 1); - break; - case ELM_SOFTWARE_SDL: + } + else if (ENGINE_COMPARE(ELM_SOFTWARE_SDL)) + { win->ee = ecore_evas_sdl_new(NULL, 0, 0, 0, 0, 0, 1); if (!win->ee) { CRITICAL("Software SDL engine create failed. Try software."); win->ee = ecore_evas_software_x11_new(NULL, 0, 0, 0, 1, 1); } - break; - case ELM_SOFTWARE_16_SDL: + } + else if (ENGINE_COMPARE(ELM_SOFTWARE_16_SDL)) + { win->ee = ecore_evas_sdl16_new(NULL, 0, 0, 0, 0, 0, 1); if (!win->ee) { CRITICAL("Sofware-16-SDL engine create failed. Try software."); win->ee = ecore_evas_software_x11_new(NULL, 0, 0, 0, 1, 1); } - break; - case ELM_OPENGL_SDL: + } + else if (ENGINE_COMPARE(ELM_OPENGL_SDL)) + { win->ee = ecore_evas_gl_sdl_new(NULL, 1, 1, 0, 0); if (!win->ee) { CRITICAL("OpenGL SDL engine create failed. Try software."); win->ee = ecore_evas_software_x11_new(NULL, 0, 0, 0, 1, 1); } - break; - default: - break; } + if (!win->ee) { ERR("Cannot create window."); @@ -1073,24 +1088,11 @@ elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type) _elm_win_list = eina_list_append(_elm_win_list, win->win_obj); - switch (_elm_config->engine) + if (ENGINE_COMPARE(ELM_SOFTWARE_FB)) { - case ELM_SOFTWARE_16_WINCE: - case ELM_SOFTWARE_FB: ecore_evas_fullscreen_set(win->ee, 1); - break; - case ELM_SOFTWARE_X11: - case ELM_SOFTWARE_16_X11: - case ELM_SOFTWARE_8_X11: - case ELM_XRENDER_X11: - case ELM_OPENGL_X11: - case ELM_SOFTWARE_WIN32: - case ELM_SOFTWARE_SDL: - case ELM_SOFTWARE_16_SDL: - case ELM_OPENGL_SDL: - default: - break; } +#undef ENGINE_COMPARE if (_elm_config->focus_highlight_enable) elm_win_focus_highlight_enabled_set(win->win_obj, EINA_TRUE); @@ -1513,19 +1515,22 @@ elm_win_fullscreen_set(Evas_Object *obj, Eina_Bool fullscreen) ELM_CHECK_WIDTYPE(obj, widtype); win = elm_widget_data_get(obj); if (!win) return; - switch (_elm_config->engine) + +#define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name)) + if (ENGINE_COMPARE(ELM_SOFTWARE_FB) || + ENGINE_COMPARE(ELM_SOFTWARE_16_WINCE)) { - case ELM_SOFTWARE_16_WINCE: - case ELM_SOFTWARE_FB: // these engines... can ONLY be fullscreen - break; - default: + return; + } + else + { ecore_evas_fullscreen_set(win->ee, fullscreen); #ifdef HAVE_ELEMENTARY_X _elm_win_xwin_update(win); #endif - break; } +#undef ENGINE_COMPARE } /** @@ -1543,18 +1548,19 @@ elm_win_fullscreen_get(const Evas_Object *obj) ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE; win = elm_widget_data_get(obj); if (!win) return EINA_FALSE; - switch (_elm_config->engine) + +#define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name)) + if (ENGINE_COMPARE(ELM_SOFTWARE_FB) || + ENGINE_COMPARE(ELM_SOFTWARE_16_WINCE)) { - case ELM_SOFTWARE_16_WINCE: - case ELM_SOFTWARE_FB: // these engines... can ONLY be fullscreen return EINA_TRUE; - break; - default: - return ecore_evas_fullscreen_get(win->ee); - break; } - return EINA_FALSE; + else + { + return ecore_evas_fullscreen_get(win->ee); + } +#undef ENGINE_COMPARE } /**