From a3b8fefa24435ceb1cb92a023e9c0171d9c6ce01 Mon Sep 17 00:00:00 2001 From: Ji-Youn Park Date: Thu, 2 Jun 2016 17:10:41 +0830 Subject: [PATCH] elm_win: remove illume command send from eo 1. remain elm_win_type_set 2. remain elm_win_alpha_set 3. remain elm_win_available_profile_set/get app usually set availble profile into window, and app fw or other lib can read it. so I remain get/set api both. 4. remove elm_win_profile_set/get from eo 5. remove illume feture in eo and move it to legacy --- src/lib/elementary/elm_win.c | 159 +++++++++++++++------------- src/lib/elementary/elm_win.eo | 98 +++++------------ src/lib/elementary/elm_win_legacy.h | 56 ++++++++++ 3 files changed, 166 insertions(+), 147 deletions(-) diff --git a/src/lib/elementary/elm_win.c b/src/lib/elementary/elm_win.c index 8b717837f4..982950e58c 100644 --- a/src/lib/elementary/elm_win.c +++ b/src/lib/elementary/elm_win.c @@ -4626,44 +4626,6 @@ _elm_win_available_profiles_get(Eo *obj EINA_UNUSED, Elm_Win_Data *sd, char ***p } } -EOLIAN static void -_elm_win_profile_set(Eo *obj EINA_UNUSED, Elm_Win_Data *sd, const char *profile) -{ - /* check to see if a given profile is present in an available profiles */ - if ((profile) && (sd->profile.available_list)) - { - Eina_Bool found = EINA_FALSE; - unsigned int i; - for (i = 0; i < sd->profile.count; i++) - { - if (!strcmp(profile, - sd->profile.available_list[i])) - { - found = EINA_TRUE; - break; - } - } - if (!found) return; - } - - if (ecore_evas_window_profile_supported_get(sd->ee)) - { - if (!profile) _elm_win_profile_del(sd); - ecore_evas_window_profile_set(sd->ee, profile); - } - else - { - if (_internal_elm_win_profile_set(sd, profile)) - _elm_win_profile_update(sd); - } -} - -EOLIAN static const char* -_elm_win_profile_get(Eo *obj EINA_UNUSED, Elm_Win_Data *sd) -{ - return sd->profile.name; -} - EOLIAN static void _elm_win_urgent_set(Eo *obj EINA_UNUSED, Elm_Win_Data *sd, Elm_Win_Urgent_Mode urgent) { @@ -5023,43 +4985,6 @@ _elm_win_prop_focus_skip_set(Eo *obj EINA_UNUSED, Elm_Win_Data *sd, Eina_Bool sk TRAP(sd, focus_skip_set, skip); } -EOLIAN static void -_elm_win_illume_command_send(Eo *obj EINA_UNUSED, Elm_Win_Data *sd, Elm_Illume_Command command, void *params) -{ - (void) params; - -#ifdef HAVE_ELEMENTARY_X - _internal_elm_win_xwindow_get(sd); - if (sd->x.xwin) - { - switch (command) - { - case ELM_ILLUME_COMMAND_FOCUS_BACK: - ecore_x_e_illume_focus_back_send(sd->x.xwin); - break; - - case ELM_ILLUME_COMMAND_FOCUS_FORWARD: - ecore_x_e_illume_focus_forward_send(sd->x.xwin); - break; - - case ELM_ILLUME_COMMAND_FOCUS_HOME: - ecore_x_e_illume_focus_home_send(sd->x.xwin); - break; - - case ELM_ILLUME_COMMAND_CLOSE: - ecore_x_e_illume_close_send(sd->x.xwin); - break; - - default: - break; - } - } -#else - (void)sd; - (void)command; -#endif -} - EOLIAN static Eina_Bool _elm_win_keygrab_set(Eo *obj EINA_UNUSED, Elm_Win_Data *sd, const char *key, Evas_Modifier_Mask modifiers EINA_UNUSED, Evas_Modifier_Mask not_modifiers EINA_UNUSED, int priority EINA_UNUSED, Elm_Win_Keygrab_Mode grab_mode) { @@ -6360,4 +6285,88 @@ elm_win_size_step_get(const Evas_Object *obj, int *w, int *h) efl_gfx_size_hint_step_get(obj, w, h); } +EAPI void +elm_win_illume_command_send(Evas_Object *obj, Elm_Illume_Command command, void *params) +{ + ELM_WIN_CHECK(obj); + ELM_WIN_DATA_GET_OR_RETURN(obj, sd); + + (void) params; + +#ifdef HAVE_ELEMENTARY_X + _internal_elm_win_xwindow_get(sd); + if (sd->x.xwin) + { + switch (command) + { + case ELM_ILLUME_COMMAND_FOCUS_BACK: + ecore_x_e_illume_focus_back_send(sd->x.xwin); + break; + + case ELM_ILLUME_COMMAND_FOCUS_FORWARD: + ecore_x_e_illume_focus_forward_send(sd->x.xwin); + break; + + case ELM_ILLUME_COMMAND_FOCUS_HOME: + ecore_x_e_illume_focus_home_send(sd->x.xwin); + break; + + case ELM_ILLUME_COMMAND_CLOSE: + ecore_x_e_illume_close_send(sd->x.xwin); + break; + + default: + break; + } + } +#else + (void)sd; + (void)command; +#endif +} + +EAPI void +elm_win_profile_set(Evas_Object *obj, const char *profile) +{ + ELM_WIN_CHECK(obj); + ELM_WIN_DATA_GET_OR_RETURN(obj, sd); + + /* check to see if a given profile is present in an available profiles */ + if ((profile) && (sd->profile.available_list)) + { + Eina_Bool found = EINA_FALSE; + unsigned int i; + for (i = 0; i < sd->profile.count; i++) + { + if (!strcmp(profile, + sd->profile.available_list[i])) + { + found = EINA_TRUE; + break; + } + } + if (!found) return; + } + + if (ecore_evas_window_profile_supported_get(sd->ee)) + { + if (!profile) _elm_win_profile_del(sd); + ecore_evas_window_profile_set(sd->ee, profile); + } + else + { + if (_internal_elm_win_profile_set(sd, profile)) + _elm_win_profile_update(sd); + } +} + +EAPI const char* +elm_win_profile_get(const Evas_Object *obj) +{ + ELM_WIN_CHECK(obj) NULL; + ELM_WIN_DATA_GET_OR_RETURN(obj, sd, NULL); + + return sd->profile.name; +} + #include "elm_win.eo.c" diff --git a/src/lib/elementary/elm_win.eo b/src/lib/elementary/elm_win.eo index 1d160fdeb7..a6e87fefce 100644 --- a/src/lib/elementary/elm_win.eo +++ b/src/lib/elementary/elm_win.eo @@ -130,20 +130,6 @@ enum Elm.Win.Keygrab_Mode window]] } -enum Elm.Illume_Command -{ - [[Available commands that can be sent to the Illume manager. - - When running under an Illume session, a window may send commands to the - Illume manager to perform different actions. - ]] - - focus_back, [[Reverts focus to the previous window]] - focus_forward, [[Sends focus to the next window in the list]] - focus_home, [[Hides all windows to show the Home screen]] - close [[Closes the currently active window]] -} - enum Elm.Win.Modal_Mode { [[Defines the mode of a modal window]] @@ -583,6 +569,32 @@ class Elm.Win (Elm.Widget, Elm.Interface.Atspi.Window, name: string @nullable; } } + @property type { /* FIXME: before finalize */ + [[The type of the window. + + It is a hint of how the Window Manager should handle it. + + The window type is a constructing property that need to be set at + creation within \@ref eo_add. + + Note: Once set, it can NOT be modified afterward. + ]] + /* FIXME-doc + Example: + @code + win = eo_add(ELM_WIN_CLASS, NULL, elm_obj_win_type_set(ELM_WIN_BASIC)); + @endcode + */ + set { + [[Can only be used at creation time, within \@ref eo_add.]] + } + get { + [[If the object is not window object, return #ELM_WIN_UNKNOWN.]] + } + values { + type: Elm.Win.Type(Elm.Win.Type.unknown); + } + } @property available_profiles { set { [[Set the array of available profiles to a window. @@ -664,23 +676,6 @@ class Elm.Win (Elm.Widget, Elm.Interface.Atspi.Window, layer: int; [[The layer of the window.]] } } - @property profile { - set { - [[Set the profile of a window. - - @since 1.8 - ]] - } - get { - [[Get the profile of a window. - - @since 1.8 - ]] - } - values { - profile: string; [[The string value of a window profile.]] - } - } @property main_menu { get { [[Get the Main Menu of a window.]] @@ -714,32 +709,6 @@ class Elm.Win (Elm.Widget, Elm.Interface.Atspi.Window, return: Evas.Object; [[The inlined image object or $null if none exists.]] } } - @property type { /* FIXME: before finalize */ - [[The type of the window. - - It is a hint of how the Window Manager should handle it. - - The window type is a constructing property that need to be set at - creation within \@ref eo_add. - - Note: Once set, it can NOT be modified afterward. - ]] - /* FIXME-doc - Example: - @code - win = eo_add(ELM_WIN_CLASS, NULL, elm_obj_win_type_set(ELM_WIN_BASIC)); - @endcode - */ - set { - [[Can only be used at creation time, within \@ref eo_add.]] - } - get { - [[If the object is not window object, return #ELM_WIN_UNKNOWN.]] - } - values { - type: Elm.Win.Type(Elm.Win.Type.unknown); - } - } @property fake_canvas @protected { set { [[Internal. Used to completent the fake window type.]] @@ -764,21 +733,6 @@ class Elm.Win (Elm.Widget, Elm.Interface.Atspi.Window, id that created the service.]] } } - illume_command_send { - [[Send a command to the windowing environment - - This is intended to work in touchscreen or small screen device - environments where there is a more simplistic window management - policy in place. This uses the window object indicated to select - which part of the environment to control (the part that this - window lives in), and provides a command and an optional - parameter structure (use NULL for this if not needed). - ]] - params { - @in command: Elm.Illume_Command; [[The command to send.]] - @in params: void * @optional; [[Optional parameters for the command.]] - } - } activate { [[Activate a window object. diff --git a/src/lib/elementary/elm_win_legacy.h b/src/lib/elementary/elm_win_legacy.h index 65fd71758f..e64a423753 100644 --- a/src/lib/elementary/elm_win_legacy.h +++ b/src/lib/elementary/elm_win_legacy.h @@ -31,6 +31,25 @@ typedef enum ELM_WIN_INDICATOR_TRANSPARENT /** Transparentizes the indicator */ } Elm_Win_Indicator_Opacity_Mode; +/** + * @brief Available commands that can be sent to the Illume manager. + * + * When running under an Illume session, a window may send commands to the + * Illume manager to perform different actions. + * + * @ingroup Elm + */ +typedef enum +{ + ELM_ILLUME_COMMAND_FOCUS_BACK = 0, /** Reverts focus to the previous window + */ + ELM_ILLUME_COMMAND_FOCUS_FORWARD, /** Sends focus to the next window in the + * list */ + ELM_ILLUME_COMMAND_FOCUS_HOME, /** Hides all windows to show the Home screen + */ + ELM_ILLUME_COMMAND_CLOSE /** Closes the currently active window */ +} Elm_Illume_Command; + /** * Adds a window object. If this is the first window created, pass NULL as * @p parent. @@ -904,3 +923,40 @@ EAPI void elm_win_size_step_set(Evas_Object *obj, int w, int h); */ EAPI void elm_win_size_step_get(const Evas_Object *obj, int *w, int *h); +/** + * @brief Send a command to the windowing environment + * + * This is intended to work in touchscreen or small screen device environments + * where there is a more simplistic window management policy in place. This + * uses the window object indicated to select which part of the environment to + * control (the part that this window lives in), and provides a command and an + * optional parameter structure (use NULL for this if not needed). + * + * @param[in] params Optional parameters for the command. + * + * @ingroup Elm_Win + */ +EAPI void elm_win_illume_command_send(Evas_Object *obj, Elm_Illume_Command command, void *params); + +/** + * @brief Set the profile of a window. + * + * @param[in] profile The string value of a window profile. + * + * @since 1.8 + * + * @ingroup Elm_Win + */ +EAPI void elm_win_profile_set(Evas_Object *obj, const char *profile); + +/** + * @brief Get the profile of a window. + * + * @return The string value of a window profile. + * + * @since 1.8 + * + * @ingroup Elm_Win + */ +EAPI const char *elm_win_profile_get(const Evas_Object *obj); +