forked from enlightenment/efl
add a proper elm api to request a prefeered evas rendering engine.
SVN revision: 68553
This commit is contained in:
parent
8b7e99754d
commit
8a65fc1495
|
@ -15,6 +15,7 @@ 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;
|
||||||
static Eet_Data_Descriptor *_config_font_overlay_edd = NULL;
|
static Eet_Data_Descriptor *_config_font_overlay_edd = NULL;
|
||||||
|
const char *_elm_preferred_engine = NULL;
|
||||||
|
|
||||||
static Ecore_Poller *_elm_cache_flush_poller = NULL;
|
static Ecore_Poller *_elm_cache_flush_poller = NULL;
|
||||||
|
|
||||||
|
@ -1419,7 +1420,6 @@ elm_config_all_flush(void)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_translation_init()
|
_translation_init()
|
||||||
{
|
{
|
||||||
|
@ -1448,6 +1448,11 @@ _elm_config_init(void)
|
||||||
_desc_init();
|
_desc_init();
|
||||||
_profile_fetch_from_conf();
|
_profile_fetch_from_conf();
|
||||||
_config_load();
|
_config_load();
|
||||||
|
if (_elm_preferred_engine) eina_stringshare_del(_elm_preferred_engine);
|
||||||
|
if (_elm_config->engine)
|
||||||
|
_elm_preferred_engine = eina_stringshare_add(_elm_config->engine);
|
||||||
|
else
|
||||||
|
_elm_preferred_engine = NULL;
|
||||||
_translation_init();
|
_translation_init();
|
||||||
_env_get();
|
_env_get();
|
||||||
_config_apply();
|
_config_apply();
|
||||||
|
@ -1543,6 +1548,18 @@ _elm_config_engine_set(const char *engine)
|
||||||
_elm_config->engine = eina_stringshare_add(engine);
|
_elm_config->engine = eina_stringshare_add(engine);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EAPI const char *
|
||||||
|
elm_preferred_engine_get(void)
|
||||||
|
{
|
||||||
|
return _elm_preferred_engine;
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
elm_preferred_engine_set(const char *engine)
|
||||||
|
{
|
||||||
|
eina_stringshare_replace(&(_elm_preferred_engine), engine);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
_elm_config_profile_set(const char *profile)
|
_elm_config_profile_set(const char *profile)
|
||||||
{
|
{
|
||||||
|
@ -1595,6 +1612,11 @@ _elm_config_shutdown(void)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
_config_free();
|
_config_free();
|
||||||
|
if (_elm_preferred_engine)
|
||||||
|
{
|
||||||
|
eina_stringshare_del(_elm_preferred_engine);
|
||||||
|
_elm_preferred_engine = NULL;
|
||||||
|
}
|
||||||
if (_elm_profile)
|
if (_elm_profile)
|
||||||
{
|
{
|
||||||
free(_elm_profile);
|
free(_elm_profile);
|
||||||
|
|
|
@ -50,6 +50,33 @@ EAPI const char *elm_engine_get(void);
|
||||||
*/
|
*/
|
||||||
EAPI void elm_engine_set(const char *engine);
|
EAPI void elm_engine_set(const char *engine);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get Elementary's preferred engine to use.
|
||||||
|
*
|
||||||
|
* @return The rendering engine's name
|
||||||
|
* @note there's no need to free the returned string, here.
|
||||||
|
*
|
||||||
|
* This gets the global rendering engine that is applied to all Elementary
|
||||||
|
* applications and is PREFERRED by the application. This can (and will)
|
||||||
|
* override the engine configured for all applications which.
|
||||||
|
*
|
||||||
|
* @see elm_preferred_engine_set()
|
||||||
|
*/
|
||||||
|
EAPI const char *elm_preferred_engine_get(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Set Elementary's preferred rendering engine for use.
|
||||||
|
*
|
||||||
|
* @param engine The rendering engine's name
|
||||||
|
*
|
||||||
|
* Note that it will take effect only to Elementary windows created after
|
||||||
|
* this is called. This overrides the engine set by configuration at
|
||||||
|
* application startup. Note that it is a hint and may not be honored.
|
||||||
|
*
|
||||||
|
* @see elm_win_add()
|
||||||
|
*/
|
||||||
|
EAPI void elm_preferred_engine_set(const char *engine);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -273,6 +273,7 @@ extern const char *_elm_lib_dir;
|
||||||
extern int _elm_log_dom;
|
extern int _elm_log_dom;
|
||||||
extern Eina_List *_elm_win_list;
|
extern Eina_List *_elm_win_list;
|
||||||
extern int _elm_win_deferred_free;
|
extern int _elm_win_deferred_free;
|
||||||
|
extern const char *_elm_preferred_engine;
|
||||||
|
|
||||||
#ifdef ENABLE_NLS
|
#ifdef ENABLE_NLS
|
||||||
/* Our gettext wrapper, used to disable translation of elm if the app
|
/* Our gettext wrapper, used to disable translation of elm if the app
|
||||||
|
|
|
@ -867,7 +867,7 @@ _elm_win_xwindow_get(Elm_Win *win)
|
||||||
{
|
{
|
||||||
win->xwin = 0;
|
win->xwin = 0;
|
||||||
|
|
||||||
#define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name))
|
#define ENGINE_COMPARE(name) (!strcmp(_elm_preferred_engine, name))
|
||||||
if (ENGINE_COMPARE(ELM_SOFTWARE_X11))
|
if (ENGINE_COMPARE(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);
|
||||||
|
@ -1745,7 +1745,7 @@ elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type)
|
||||||
if (win->ee) \
|
if (win->ee) \
|
||||||
elm_engine_set(ecore_evas_engine_name_get(win->ee)); \
|
elm_engine_set(ecore_evas_engine_name_get(win->ee)); \
|
||||||
} while (0)
|
} while (0)
|
||||||
#define ENGINE_COMPARE(name) (_elm_config->engine && !strcmp(_elm_config->engine, name))
|
#define ENGINE_COMPARE(name) (_elm_preferred_engine && !strcmp(_elm_preferred_engine, name))
|
||||||
|
|
||||||
win->kbdmode = ELM_WIN_KEYBOARD_UNKNOWN;
|
win->kbdmode = ELM_WIN_KEYBOARD_UNKNOWN;
|
||||||
win->indmode = ELM_WIN_INDICATOR_UNKNOWN;
|
win->indmode = ELM_WIN_INDICATOR_UNKNOWN;
|
||||||
|
@ -1907,11 +1907,11 @@ elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type)
|
||||||
_elm_win_frame_add(win, "default");
|
_elm_win_frame_add(win, "default");
|
||||||
// _elm_win_pointer_add(win, "default");
|
// _elm_win_pointer_add(win, "default");
|
||||||
}
|
}
|
||||||
else if (!strncmp(_elm_config->engine, "shot:", 5))
|
else if (!strncmp(_elm_preferred_engine, "shot:", 5))
|
||||||
{
|
{
|
||||||
win->ee = ecore_evas_buffer_new(1, 1);
|
win->ee = ecore_evas_buffer_new(1, 1);
|
||||||
ecore_evas_manual_render_set(win->ee, EINA_TRUE);
|
ecore_evas_manual_render_set(win->ee, EINA_TRUE);
|
||||||
win->shot.info = eina_stringshare_add(_elm_config->engine + 5);
|
win->shot.info = eina_stringshare_add(_elm_preferred_engine + 5);
|
||||||
_shot_init(win);
|
_shot_init(win);
|
||||||
}
|
}
|
||||||
#undef FALLBACK_TRY
|
#undef FALLBACK_TRY
|
||||||
|
@ -2433,7 +2433,7 @@ elm_win_fullscreen_set(Evas_Object *obj, Eina_Bool fullscreen)
|
||||||
win = elm_widget_data_get(obj);
|
win = elm_widget_data_get(obj);
|
||||||
if (!win) return;
|
if (!win) return;
|
||||||
// YYY: handle if win->img_obj
|
// YYY: handle if win->img_obj
|
||||||
#define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name))
|
#define ENGINE_COMPARE(name) (!strcmp(_elm_preferred_engine, name))
|
||||||
if (ENGINE_COMPARE(ELM_SOFTWARE_FB) ||
|
if (ENGINE_COMPARE(ELM_SOFTWARE_FB) ||
|
||||||
ENGINE_COMPARE(ELM_SOFTWARE_16_WINCE))
|
ENGINE_COMPARE(ELM_SOFTWARE_16_WINCE))
|
||||||
{
|
{
|
||||||
|
@ -2458,7 +2458,7 @@ 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;
|
||||||
#define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name))
|
#define ENGINE_COMPARE(name) (!strcmp(_elm_preferred_engine, name))
|
||||||
if (ENGINE_COMPARE(ELM_SOFTWARE_FB) ||
|
if (ENGINE_COMPARE(ELM_SOFTWARE_FB) ||
|
||||||
ENGINE_COMPARE(ELM_SOFTWARE_16_WINCE))
|
ENGINE_COMPARE(ELM_SOFTWARE_16_WINCE))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue