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
This commit is contained in:
Ji-Youn Park 2016-06-02 17:10:41 +08:30
parent 2bf508836d
commit a3b8fefa24
3 changed files with 166 additions and 147 deletions

View File

@ -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"

View File

@ -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.

View File

@ -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);