forked from enlightenment/efl
Switching elm config's engine variable from enum to string ptr.
SVN revision: 54081
This commit is contained in:
parent
a012c4b511
commit
e667a17bc8
|
@ -1,6 +1,6 @@
|
||||||
group "Elm_Config" struct {
|
group "Elm_Config" struct {
|
||||||
value "config_version" int: 65537;
|
value "config_version" int: 65537;
|
||||||
value "engine" int: 0;
|
value "engine" string: "software_x11";
|
||||||
value "thumbscroll_enable" uchar: 1;
|
value "thumbscroll_enable" uchar: 1;
|
||||||
value "thumbscroll_threshold" int: 24;
|
value "thumbscroll_threshold" int: 24;
|
||||||
value "thumbscroll_momentum_threshold" double: 100.0;
|
value "thumbscroll_momentum_threshold" double: 100.0;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
group "Elm_Config" struct {
|
group "Elm_Config" struct {
|
||||||
value "config_version" int: 65537;
|
value "config_version" int: 65537;
|
||||||
value "engine" int: 0;
|
value "engine" string: "software_x11";
|
||||||
value "thumbscroll_enable" uchar: 1;
|
value "thumbscroll_enable" uchar: 1;
|
||||||
value "thumbscroll_threshold" int: 24;
|
value "thumbscroll_threshold" int: 24;
|
||||||
value "thumbscroll_momentum_threshold" double: 100.0;
|
value "thumbscroll_momentum_threshold" double: 100.0;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
group "Elm_Config" struct {
|
group "Elm_Config" struct {
|
||||||
value "config_version" int: 65537;
|
value "config_version" int: 65537;
|
||||||
value "engine" int: 0;
|
value "engine" string: "software_x11";
|
||||||
value "thumbscroll_enable" uchar: 0;
|
value "thumbscroll_enable" uchar: 0;
|
||||||
value "thumbscroll_threshold" int: 4;
|
value "thumbscroll_threshold" int: 4;
|
||||||
value "thumbscroll_momentum_threshold" double: 100.0;
|
value "thumbscroll_momentum_threshold" double: 100.0;
|
||||||
|
|
|
@ -13,6 +13,22 @@ Elm_Config *_elm_config = NULL;
|
||||||
char *_elm_profile = NULL;
|
char *_elm_profile = NULL;
|
||||||
static Eet_Data_Descriptor *_config_edd = 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_init(void);
|
||||||
static void _desc_shutdown(void);
|
static void _desc_shutdown(void);
|
||||||
static void _profile_fetch_from_conf(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",
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_config_edd, Elm_Config, "config_version",
|
||||||
config_version, EET_T_INT);
|
config_version, EET_T_INT);
|
||||||
EET_DATA_DESCRIPTOR_ADD_BASIC(_config_edd, Elm_Config, "engine", engine,
|
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",
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_config_edd, Elm_Config, "thumbscroll_enable",
|
||||||
thumbscroll_enable, EET_T_UCHAR);
|
thumbscroll_enable, EET_T_UCHAR);
|
||||||
EET_DATA_DESCRIPTOR_ADD_BASIC(_config_edd, Elm_Config,
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_config_edd, Elm_Config,
|
||||||
|
@ -529,6 +545,7 @@ _config_free(void)
|
||||||
{
|
{
|
||||||
eina_stringshare_del(fontdir);
|
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->theme) eina_stringshare_del(_elm_config->theme);
|
||||||
if (_elm_config->modules) eina_stringshare_del(_elm_config->modules);
|
if (_elm_config->modules) eina_stringshare_del(_elm_config->modules);
|
||||||
free(_elm_config);
|
free(_elm_config);
|
||||||
|
@ -612,7 +629,7 @@ _config_load(void)
|
||||||
* without the config, but do we want that? */
|
* without the config, but do we want that? */
|
||||||
_elm_config = ELM_NEW(Elm_Config);
|
_elm_config = ELM_NEW(Elm_Config);
|
||||||
_elm_config->config_version = ELM_CONFIG_VERSION;
|
_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_enable = EINA_TRUE;
|
||||||
_elm_config->thumbscroll_threshold = 24;
|
_elm_config->thumbscroll_threshold = 24;
|
||||||
_elm_config->thumbscroll_momentum_threshold = 100.0;
|
_elm_config->thumbscroll_momentum_threshold = 100.0;
|
||||||
|
@ -871,55 +888,55 @@ _env_get(void)
|
||||||
(!strcasecmp(s, "x")) ||
|
(!strcasecmp(s, "x")) ||
|
||||||
(!strcasecmp(s, "software-x11")) ||
|
(!strcasecmp(s, "software-x11")) ||
|
||||||
(!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")) ||
|
else if ((!strcasecmp(s, "opengl")) ||
|
||||||
(!strcasecmp(s, "gl")) ||
|
(!strcasecmp(s, "gl")) ||
|
||||||
(!strcasecmp(s, "opengl-x11")) ||
|
(!strcasecmp(s, "opengl-x11")) ||
|
||||||
(!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")) ||
|
else if ((!strcasecmp(s, "x11-8")) ||
|
||||||
(!strcasecmp(s, "x18")) ||
|
(!strcasecmp(s, "x18")) ||
|
||||||
(!strcasecmp(s, "software-8-x11")) ||
|
(!strcasecmp(s, "software-8-x11")) ||
|
||||||
(!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")) ||
|
else if ((!strcasecmp(s, "x11-16")) ||
|
||||||
(!strcasecmp(s, "x16")) ||
|
(!strcasecmp(s, "x16")) ||
|
||||||
(!strcasecmp(s, "software-16-x11")) ||
|
(!strcasecmp(s, "software-16-x11")) ||
|
||||||
(!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")) ||
|
else if ((!strcasecmp(s, "xrender")) ||
|
||||||
(!strcasecmp(s, "xr")) ||
|
(!strcasecmp(s, "xr")) ||
|
||||||
(!strcasecmp(s, "xrender-x11")) ||
|
(!strcasecmp(s, "xrender-x11")) ||
|
||||||
(!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")) ||
|
else if ((!strcasecmp(s, "fb")) ||
|
||||||
(!strcasecmp(s, "software-fb")) ||
|
(!strcasecmp(s, "software-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")) ||
|
else if ((!strcasecmp(s, "directfb")) ||
|
||||||
(!strcasecmp(s, "dfb")))
|
(!strcasecmp(s, "dfb")))
|
||||||
_elm_config->engine = ELM_SOFTWARE_DIRECTFB;
|
eina_stringshare_replace(&_elm_config->engine, ELM_SOFTWARE_DIRECTFB);
|
||||||
else if ((!strcasecmp(s, "sdl")) ||
|
else if ((!strcasecmp(s, "sdl")) ||
|
||||||
(!strcasecmp(s, "software-sdl")) ||
|
(!strcasecmp(s, "software-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")) ||
|
else if ((!strcasecmp(s, "sdl-16")) ||
|
||||||
(!strcasecmp(s, "software-16-sdl")) ||
|
(!strcasecmp(s, "software-16-sdl")) ||
|
||||||
(!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")) ||
|
else if ((!strcasecmp(s, "opengl-sdl")) ||
|
||||||
(!strcasecmp(s, "opengl_sdl")) ||
|
(!strcasecmp(s, "opengl_sdl")) ||
|
||||||
(!strcasecmp(s, "gl-sdl")) ||
|
(!strcasecmp(s, "gl-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")) ||
|
else if ((!strcasecmp(s, "gdi")) ||
|
||||||
(!strcasecmp(s, "software-gdi")) ||
|
(!strcasecmp(s, "software-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")) ||
|
else if ((!strcasecmp(s, "wince-gdi")) ||
|
||||||
(!strcasecmp(s, "software-16-wince-gdi")) ||
|
(!strcasecmp(s, "software-16-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");
|
s = getenv("ELM_THUMBSCROLL_ENABLE");
|
||||||
|
@ -1051,10 +1068,12 @@ _elm_config_init(void)
|
||||||
void
|
void
|
||||||
_elm_config_sub_init(void)
|
_elm_config_sub_init(void)
|
||||||
{
|
{
|
||||||
if ((_elm_config->engine == ELM_SOFTWARE_X11) ||
|
#define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name))
|
||||||
(_elm_config->engine == ELM_SOFTWARE_16_X11) ||
|
if (ENGINE_COMPARE(ELM_SOFTWARE_X11) ||
|
||||||
(_elm_config->engine == ELM_XRENDER_X11) ||
|
ENGINE_COMPARE(ELM_SOFTWARE_16_X11) ||
|
||||||
(_elm_config->engine == ELM_OPENGL_X11))
|
ENGINE_COMPARE(ELM_XRENDER_X11) ||
|
||||||
|
ENGINE_COMPARE(ELM_OPENGL_X11))
|
||||||
|
#undef ENGINE_COMPARE
|
||||||
{
|
{
|
||||||
#ifdef HAVE_ELEMENTARY_X
|
#ifdef HAVE_ELEMENTARY_X
|
||||||
unsigned int val = 1000;
|
unsigned int val = 1000;
|
||||||
|
@ -1174,15 +1193,12 @@ _elm_config_profile_set(const char *profile)
|
||||||
void
|
void
|
||||||
_elm_config_shutdown(void)
|
_elm_config_shutdown(void)
|
||||||
{
|
{
|
||||||
if ((_elm_config->engine == ELM_SOFTWARE_X11) ||
|
#define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name))
|
||||||
(_elm_config->engine == ELM_SOFTWARE_16_X11) ||
|
if (ENGINE_COMPARE(ELM_SOFTWARE_X11) ||
|
||||||
(_elm_config->engine == ELM_XRENDER_X11) ||
|
ENGINE_COMPARE(ELM_SOFTWARE_16_X11) ||
|
||||||
(_elm_config->engine == ELM_OPENGL_X11) ||
|
ENGINE_COMPARE(ELM_XRENDER_X11) ||
|
||||||
(_elm_config->engine == ELM_SOFTWARE_SDL) ||
|
ENGINE_COMPARE(ELM_OPENGL_X11))
|
||||||
(_elm_config->engine == ELM_SOFTWARE_16_SDL) ||
|
#undef ENGINE_COMPARE
|
||||||
(_elm_config->engine == ELM_OPENGL_SDL) ||
|
|
||||||
(_elm_config->engine == ELM_SOFTWARE_WIN32) ||
|
|
||||||
(_elm_config->engine == ELM_SOFTWARE_16_WINCE))
|
|
||||||
{
|
{
|
||||||
#ifdef HAVE_ELEMENTARY_X
|
#ifdef HAVE_ELEMENTARY_X
|
||||||
ecore_event_handler_del(_prop_change_handler);
|
ecore_event_handler_del(_prop_change_handler);
|
||||||
|
|
|
@ -564,10 +564,12 @@ elm_quicklaunch_sub_init(int argc, char **argv)
|
||||||
evas_init();
|
evas_init();
|
||||||
edje_init();
|
edje_init();
|
||||||
_elm_config_sub_init();
|
_elm_config_sub_init();
|
||||||
if ((_elm_config->engine == ELM_SOFTWARE_X11) ||
|
#define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name))
|
||||||
(_elm_config->engine == ELM_SOFTWARE_16_X11) ||
|
if (ENGINE_COMPARE(ELM_SOFTWARE_X11) ||
|
||||||
(_elm_config->engine == ELM_XRENDER_X11) ||
|
ENGINE_COMPARE(ELM_SOFTWARE_16_X11) ||
|
||||||
(_elm_config->engine == ELM_OPENGL_X11))
|
ENGINE_COMPARE(ELM_XRENDER_X11) ||
|
||||||
|
ENGINE_COMPARE(ELM_OPENGL_X11))
|
||||||
|
#undef ENGINE_COMPARE
|
||||||
{
|
{
|
||||||
#ifdef HAVE_ELEMENTARY_X
|
#ifdef HAVE_ELEMENTARY_X
|
||||||
ecore_x_init(NULL);
|
ecore_x_init(NULL);
|
||||||
|
@ -597,24 +599,28 @@ elm_quicklaunch_sub_shutdown(void)
|
||||||
_elm_module_shutdown();
|
_elm_module_shutdown();
|
||||||
ecore_imf_shutdown();
|
ecore_imf_shutdown();
|
||||||
ecore_evas_shutdown();
|
ecore_evas_shutdown();
|
||||||
if ((_elm_config->engine == ELM_SOFTWARE_X11) ||
|
#define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name))
|
||||||
(_elm_config->engine == ELM_SOFTWARE_16_X11) ||
|
if (ENGINE_COMPARE(ELM_SOFTWARE_X11) ||
|
||||||
(_elm_config->engine == ELM_XRENDER_X11) ||
|
ENGINE_COMPARE(ELM_SOFTWARE_16_X11) ||
|
||||||
(_elm_config->engine == ELM_OPENGL_X11))
|
ENGINE_COMPARE(ELM_XRENDER_X11) ||
|
||||||
|
ENGINE_COMPARE(ELM_OPENGL_X11))
|
||||||
|
#undef ENGINE_COMPARE
|
||||||
{
|
{
|
||||||
#ifdef HAVE_ELEMENTARY_X
|
#ifdef HAVE_ELEMENTARY_X
|
||||||
ecore_x_disconnect();
|
ecore_x_disconnect();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
if ((_elm_config->engine == ELM_SOFTWARE_X11) ||
|
#define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name))
|
||||||
(_elm_config->engine == ELM_SOFTWARE_16_X11) ||
|
if (ENGINE_COMPARE(ELM_SOFTWARE_X11) ||
|
||||||
(_elm_config->engine == ELM_XRENDER_X11) ||
|
ENGINE_COMPARE(ELM_SOFTWARE_16_X11) ||
|
||||||
(_elm_config->engine == ELM_OPENGL_X11) ||
|
ENGINE_COMPARE(ELM_XRENDER_X11) ||
|
||||||
(_elm_config->engine == ELM_SOFTWARE_SDL) ||
|
ENGINE_COMPARE(ELM_OPENGL_X11) ||
|
||||||
(_elm_config->engine == ELM_SOFTWARE_16_SDL) ||
|
ENGINE_COMPARE(ELM_SOFTWARE_SDL) ||
|
||||||
(_elm_config->engine == ELM_OPENGL_SDL) ||
|
ENGINE_COMPARE(ELM_SOFTWARE_16_SDL) ||
|
||||||
(_elm_config->engine == ELM_SOFTWARE_WIN32) ||
|
ENGINE_COMPARE(ELM_OPENGL_SDL) ||
|
||||||
(_elm_config->engine == ELM_SOFTWARE_16_WINCE))
|
ENGINE_COMPARE(ELM_SOFTWARE_WIN32) ||
|
||||||
|
ENGINE_COMPARE(ELM_SOFTWARE_16_WINCE))
|
||||||
|
#undef ENGINE_COMPARE
|
||||||
evas_cserve_disconnect();
|
evas_cserve_disconnect();
|
||||||
edje_shutdown();
|
edje_shutdown();
|
||||||
evas_shutdown();
|
evas_shutdown();
|
||||||
|
@ -678,10 +684,12 @@ elm_quicklaunch_seed(void)
|
||||||
ecore_main_loop_iterate();
|
ecore_main_loop_iterate();
|
||||||
evas_object_del(win);
|
evas_object_del(win);
|
||||||
ecore_main_loop_iterate();
|
ecore_main_loop_iterate();
|
||||||
if ((_elm_config->engine == ELM_SOFTWARE_X11) ||
|
#define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name))
|
||||||
(_elm_config->engine == ELM_SOFTWARE_16_X11) ||
|
if (ENGINE_COMPARE(ELM_SOFTWARE_X11) ||
|
||||||
(_elm_config->engine == ELM_XRENDER_X11) ||
|
ENGINE_COMPARE(ELM_SOFTWARE_16_X11) ||
|
||||||
(_elm_config->engine == ELM_OPENGL_X11))
|
ENGINE_COMPARE(ELM_XRENDER_X11) ||
|
||||||
|
ENGINE_COMPARE(ELM_OPENGL_X11))
|
||||||
|
#undef ENGINE_COMPARE
|
||||||
{
|
{
|
||||||
# ifdef HAVE_ELEMENTARY_X
|
# ifdef HAVE_ELEMENTARY_X
|
||||||
ecore_x_sync();
|
ecore_x_sync();
|
||||||
|
@ -829,10 +837,12 @@ elm_quicklaunch_fork(int argc, char **argv, char *cwd, void (postfork_func) (voi
|
||||||
evas_init();
|
evas_init();
|
||||||
edje_init();
|
edje_init();
|
||||||
_elm_config_sub_init();
|
_elm_config_sub_init();
|
||||||
if ((_elm_config->engine == ELM_SOFTWARE_X11) ||
|
#define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name))
|
||||||
(_elm_config->engine == ELM_SOFTWARE_16_X11) ||
|
if (ENGINE_COMPARE(ELM_SOFTWARE_X11) ||
|
||||||
(_elm_config->engine == ELM_XRENDER_X11) ||
|
ENGINE_COMPARE(ELM_SOFTWARE_16_X11) ||
|
||||||
(_elm_config->engine == ELM_OPENGL_X11))
|
ENGINE_COMPARE(ELM_XRENDER_X11) ||
|
||||||
|
ENGINE_COMPARE(ELM_OPENGL_X11))
|
||||||
|
#undef ENGINE_COMPARE
|
||||||
{
|
{
|
||||||
# ifdef HAVE_ELEMENTARY_X
|
# ifdef HAVE_ELEMENTARY_X
|
||||||
ecore_x_init(NULL);
|
ecore_x_init(NULL);
|
||||||
|
|
|
@ -39,24 +39,6 @@ struct _Elm_Theme
|
||||||
int ref;
|
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
|
/* increment this whenever we change config enough that you need new
|
||||||
* defaults for elm to work.
|
* defaults for elm to work.
|
||||||
*/
|
*/
|
||||||
|
@ -67,10 +49,26 @@ typedef enum _Elm_Engine
|
||||||
#define ELM_CONFIG_FILE_GENERATION 0x0001
|
#define ELM_CONFIG_FILE_GENERATION 0x0001
|
||||||
#define ELM_CONFIG_VERSION ((ELM_CONFIG_EPOCH << 16) | ELM_CONFIG_FILE_GENERATION)
|
#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
|
struct _Elm_Config
|
||||||
{
|
{
|
||||||
int config_version;
|
int config_version;
|
||||||
int engine;
|
const char *engine;
|
||||||
Eina_Bool thumbscroll_enable;
|
Eina_Bool thumbscroll_enable;
|
||||||
int thumbscroll_threshold;
|
int thumbscroll_threshold;
|
||||||
double thumbscroll_momentum_threshold;
|
double thumbscroll_momentum_threshold;
|
||||||
|
|
|
@ -323,36 +323,41 @@ static void
|
||||||
_elm_win_xwindow_get(Elm_Win *win)
|
_elm_win_xwindow_get(Elm_Win *win)
|
||||||
{
|
{
|
||||||
win->xwin = 0;
|
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);
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
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
|
#endif
|
||||||
|
|
||||||
|
@ -906,22 +911,26 @@ elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type)
|
||||||
const char *fontpath;
|
const char *fontpath;
|
||||||
|
|
||||||
win = ELM_NEW(Elm_Win);
|
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);
|
win->ee = ecore_evas_software_x11_new(NULL, 0, 0, 0, 1, 1);
|
||||||
#ifdef HAVE_ELEMENTARY_X
|
#ifdef HAVE_ELEMENTARY_X
|
||||||
win->client_message_handler = ecore_event_handler_add
|
win->client_message_handler = ecore_event_handler_add
|
||||||
(ECORE_X_EVENT_CLIENT_MESSAGE, _elm_win_client_message, win);
|
(ECORE_X_EVENT_CLIENT_MESSAGE, _elm_win_client_message, win);
|
||||||
#endif
|
#endif
|
||||||
break;
|
}
|
||||||
case ELM_SOFTWARE_FB:
|
else if (ENGINE_COMPARE(ELM_SOFTWARE_FB))
|
||||||
|
{
|
||||||
win->ee = ecore_evas_fb_new(NULL, 0, 1, 1);
|
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);
|
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);
|
win->ee = ecore_evas_software_x11_16_new(NULL, 0, 0, 0, 1, 1);
|
||||||
if (!win->ee)
|
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
|
win->client_message_handler = ecore_event_handler_add
|
||||||
(ECORE_X_EVENT_CLIENT_MESSAGE, _elm_win_client_message, win);
|
(ECORE_X_EVENT_CLIENT_MESSAGE, _elm_win_client_message, win);
|
||||||
#endif
|
#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);
|
win->ee = ecore_evas_software_x11_8_new(NULL, 0, 0, 0, 1, 1);
|
||||||
if (!win->ee)
|
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
|
win->client_message_handler = ecore_event_handler_add
|
||||||
(ECORE_X_EVENT_CLIENT_MESSAGE, _elm_win_client_message, win);
|
(ECORE_X_EVENT_CLIENT_MESSAGE, _elm_win_client_message, win);
|
||||||
#endif
|
#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);
|
win->ee = ecore_evas_xrender_x11_new(NULL, 0, 0, 0, 1, 1);
|
||||||
if (!win->ee)
|
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
|
win->client_message_handler = ecore_event_handler_add
|
||||||
(ECORE_X_EVENT_CLIENT_MESSAGE, _elm_win_client_message, win);
|
(ECORE_X_EVENT_CLIENT_MESSAGE, _elm_win_client_message, win);
|
||||||
#endif
|
#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);
|
win->ee = ecore_evas_gl_x11_new(NULL, 0, 0, 0, 1, 1);
|
||||||
if (!win->ee)
|
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
|
win->client_message_handler = ecore_event_handler_add
|
||||||
(ECORE_X_EVENT_CLIENT_MESSAGE, _elm_win_client_message, win);
|
(ECORE_X_EVENT_CLIENT_MESSAGE, _elm_win_client_message, win);
|
||||||
#endif
|
#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);
|
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);
|
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);
|
win->ee = ecore_evas_sdl_new(NULL, 0, 0, 0, 0, 0, 1);
|
||||||
if (!win->ee)
|
if (!win->ee)
|
||||||
{
|
{
|
||||||
CRITICAL("Software SDL engine create failed. Try software.");
|
CRITICAL("Software SDL engine create failed. Try software.");
|
||||||
win->ee = ecore_evas_software_x11_new(NULL, 0, 0, 0, 1, 1);
|
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);
|
win->ee = ecore_evas_sdl16_new(NULL, 0, 0, 0, 0, 0, 1);
|
||||||
if (!win->ee)
|
if (!win->ee)
|
||||||
{
|
{
|
||||||
CRITICAL("Sofware-16-SDL engine create failed. Try software.");
|
CRITICAL("Sofware-16-SDL engine create failed. Try software.");
|
||||||
win->ee = ecore_evas_software_x11_new(NULL, 0, 0, 0, 1, 1);
|
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);
|
win->ee = ecore_evas_gl_sdl_new(NULL, 1, 1, 0, 0);
|
||||||
if (!win->ee)
|
if (!win->ee)
|
||||||
{
|
{
|
||||||
CRITICAL("OpenGL SDL engine create failed. Try software.");
|
CRITICAL("OpenGL SDL engine create failed. Try software.");
|
||||||
win->ee = ecore_evas_software_x11_new(NULL, 0, 0, 0, 1, 1);
|
win->ee = ecore_evas_software_x11_new(NULL, 0, 0, 0, 1, 1);
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!win->ee)
|
if (!win->ee)
|
||||||
{
|
{
|
||||||
ERR("Cannot create window.");
|
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);
|
_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);
|
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)
|
if (_elm_config->focus_highlight_enable)
|
||||||
elm_win_focus_highlight_enabled_set(win->win_obj, EINA_TRUE);
|
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);
|
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||||
win = elm_widget_data_get(obj);
|
win = elm_widget_data_get(obj);
|
||||||
if (!win) return;
|
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
|
// these engines... can ONLY be fullscreen
|
||||||
break;
|
return;
|
||||||
default:
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
ecore_evas_fullscreen_set(win->ee, fullscreen);
|
ecore_evas_fullscreen_set(win->ee, fullscreen);
|
||||||
#ifdef HAVE_ELEMENTARY_X
|
#ifdef HAVE_ELEMENTARY_X
|
||||||
_elm_win_xwin_update(win);
|
_elm_win_xwin_update(win);
|
||||||
#endif
|
#endif
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
#undef ENGINE_COMPARE
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1543,18 +1548,19 @@ elm_win_fullscreen_get(const Evas_Object *obj)
|
||||||
ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
|
ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
|
||||||
win = elm_widget_data_get(obj);
|
win = elm_widget_data_get(obj);
|
||||||
if (!win) return EINA_FALSE;
|
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
|
// these engines... can ONLY be fullscreen
|
||||||
return EINA_TRUE;
|
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
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue