Ecore_x: Add atom related with indicator type.

It can support several types of indicator
This commit is contained in:
Jiyoun Park 2013-03-05 14:25:50 +09:00
parent 004d519f06
commit d70feacf9b
7 changed files with 163 additions and 3 deletions

View File

@ -1,4 +1,9 @@
2013-03-05 Jiyoun Park (Jypar)
2013-03-05 Jiyoun Park (Jypark)
* Ecore_x: Add atom related with indicator type.
It can support several types of indicator
2013-03-05 Jiyoun Park (Jypark)
* Ecore_x: Fix dangling pointer problem related with shmget fail

1
NEWS
View File

@ -68,6 +68,7 @@ Additions:
* Add infrastructure to handle buggy touchscreen in Ecore_Input_Evas.
* Add infrastructure to handle message between ecore and parent ecore in Ecore_Evas.
* Edje textblock: Added support for size_range.
* Ecore_x: Add atom related with indicator type.
Deprecations:
* ecore_x:

View File

@ -1266,6 +1266,13 @@ typedef enum _Ecore_X_Illume_Indicator_Opacity_Mode
ECORE_X_ILLUME_INDICATOR_TRANSPARENT
} Ecore_X_Illume_Indicator_Opacity_Mode;
typedef enum _Ecore_X_Illume_Indicator_Type_Mode
{
ECORE_X_ILLUME_INDICATOR_TYPE_UNKNOWN = 0,
ECORE_X_ILLUME_INDICATOR_TYPE_1,
ECORE_X_ILLUME_INDICATOR_TYPE_2
} Ecore_X_Illume_Indicator_Type_Mode; /**< @since 1.8 */
typedef enum _Ecore_X_Illume_Window_State
{
ECORE_X_ILLUME_WINDOW_STATE_NORMAL = 0,
@ -2537,11 +2544,13 @@ EAPI Ecore_X_Illume_Indicator_State ecore_x_e_illume_indicator_state_get(
EAPI void ecore_x_e_illume_indicator_state_send(Ecore_X_Window win, Ecore_X_Illume_Indicator_State state);
EAPI void ecore_x_e_illume_indicator_opacity_set(Ecore_X_Window win, Ecore_X_Illume_Indicator_Opacity_Mode mode);
EAPI Ecore_X_Illume_Indicator_Opacity_Mode ecore_x_e_illume_indicator_opacity_get(Ecore_X_Window win);
EAPI void ecore_x_e_illume_indicator_opacity_send(Ecore_X_Window win, Ecore_X_Illume_Indicator_Opacity_Mode mode);
EAPI void ecore_x_e_illume_indicator_type_set(Ecore_X_Window win, Ecore_X_Illume_Indicator_Type_Mode mode); /**< @since 1.8 */
EAPI Ecore_X_Illume_Indicator_Type_Mode ecore_x_e_illume_indicator_type_get(Ecore_X_Window win); /**< @since 1.8 */
EAPI void ecore_x_e_illume_indicator_type_send(Ecore_X_Window win, Ecore_X_Illume_Indicator_Type_Mode mode); /**< @since 1.8 */
EAPI void
ecore_x_e_illume_window_state_set(Ecore_X_Window win,
Ecore_X_Illume_Window_State state);

View File

@ -245,6 +245,9 @@ EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE;
EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_OPAQUE;
EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSLUCENT;
EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSPARENT;
EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_MODE;
EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_1;
EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_2;
EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_AVAILABLE_ANGLE;
EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE;
EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ROTATE_ROOT_ANGLE;

View File

@ -271,6 +271,9 @@ EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE = 0;
EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_OPAQUE= 0;
EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSLUCENT = 0;
EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSPARENT = 0;
EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_MODE = 0;
EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_1 = 0;
EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_2 = 0;
EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_AVAILABLE_ANGLE = 0;
EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE = 0;
EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_ROTATE_ROOT_ANGLE = 0;
@ -576,6 +579,9 @@ const Atom_Item atom_items[] =
{ "_E_ILLUME_INDICATOR_OPAQUE", &ECORE_X_ATOM_E_ILLUME_INDICATOR_OPAQUE },
{ "_E_ILLUME_INDICATOR_TRANSLUCENT", &ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSLUCENT },
{ "_E_ILLUME_INDICATOR_TRANSPARENT", &ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSPARENT },
{ "_E_ILLUME_INDICATOR_TYPE", &ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_MODE },
{ "_E_ILLUME_INDICATOR_TYPE_0", &ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_1 },
{ "_E_ILLUME_INDICATOR_TYPE_1", &ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_2 },
{ "_E_ILLUME_ROTATE_WINDOW_AVAILABLE_ANGLES", &ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_AVAILABLE_ANGLE },
{ "_E_ILLUME_ROTATE_WINDOW_ANGLE", &ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE },
{ "_E_ILLUME_ROTATE_ROOT_ANGLE", &ECORE_X_ATOM_E_ILLUME_ROTATE_ROOT_ANGLE },

View File

@ -1788,6 +1788,74 @@ ecore_x_e_illume_indicator_opacity_send(Ecore_X_Window win,
0, 0, 0, 0);
}
static Ecore_X_Atom
_ecore_x_e_indicator_type_atom_get(Ecore_X_Illume_Indicator_Type_Mode mode)
{
switch (mode)
{
case ECORE_X_ILLUME_INDICATOR_TYPE_1:
return ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_1;
case ECORE_X_ILLUME_INDICATOR_TYPE_2:
return ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_2;
default:
break;
}
return 0;
}
static Ecore_X_Illume_Indicator_Type_Mode
_ecore_x_e_indicator_type_get(Ecore_X_Atom atom)
{
if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_1)
return ECORE_X_ILLUME_INDICATOR_TYPE_1;
if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_2)
return ECORE_X_ILLUME_INDICATOR_TYPE_2;
return ECORE_X_ILLUME_INDICATOR_TYPE_UNKNOWN;
}
EAPI void
ecore_x_e_illume_indicator_type_set(Ecore_X_Window win,
Ecore_X_Illume_Indicator_Type_Mode mode)
{
Ecore_X_Atom atom = 0;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
atom = _ecore_x_e_indicator_type_atom_get(mode);
ecore_x_window_prop_atom_set(win,
ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_MODE,
&atom, 1);
}
EAPI Ecore_X_Illume_Indicator_Type_Mode
ecore_x_e_illume_indicator_type_get(Ecore_X_Window win)
{
Ecore_X_Atom atom;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
if (!ecore_x_window_prop_atom_get(win,
ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_MODE,
&atom, 1))
return ECORE_X_ILLUME_INDICATOR_TYPE_UNKNOWN;
return _ecore_x_e_indicator_type_get(atom);
}
EAPI void
ecore_x_e_illume_indicator_type_send(Ecore_X_Window win,
Ecore_X_Illume_Indicator_Type_Mode mode)
{
LOGFN(__FILE__, __LINE__, __FUNCTION__);
ecore_x_client_message32_send(win,
ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_MODE,
ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
_ecore_x_e_indicator_type_atom_get(mode),
0, 0, 0, 0);
}
static Ecore_X_Atom
_ecore_x_e_illume_window_state_atom_get(Ecore_X_Illume_Window_State state)
{

View File

@ -1839,6 +1839,74 @@ ecore_x_e_illume_indicator_opacity_send(Ecore_X_Window win,
0, 0, 0, 0);
}
static Ecore_X_Atom
_ecore_x_e_indicator_type_atom_get(Ecore_X_Illume_Indicator_Type_Mode mode)
{
switch (mode)
{
case ECORE_X_ILLUME_INDICATOR_TYPE_1:
return ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_1;
case ECORE_X_ILLUME_INDICATOR_TYPE_2:
return ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_2;
default:
break;
}
return 0;
}
static Ecore_X_Illume_Indicator_Type_Mode
_ecore_x_e_indicator_type_get(Ecore_X_Atom atom)
{
if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_1)
return ECORE_X_ILLUME_INDICATOR_TYPE_1;
if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_2)
return ECORE_X_ILLUME_INDICATOR_TYPE_2;
return ECORE_X_ILLUME_INDICATOR_TYPE_UNKNOWN;
}
EAPI void
ecore_x_e_illume_indicator_type_set(Ecore_X_Window win,
Ecore_X_Illume_Indicator_Type_Mode mode)
{
Ecore_X_Atom atom = 0;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
atom = _ecore_x_e_indicator_type_atom_get(mode);
ecore_x_window_prop_atom_set(win,
ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_MODE,
&atom, 1);
}
EAPI Ecore_X_Illume_Indicator_Type_Mode
ecore_x_e_illume_indicator_type_get(Ecore_X_Window win)
{
Ecore_X_Atom atom = 0;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
if (!ecore_x_window_prop_atom_get(win,
ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_MODE,
&atom, 1))
return ECORE_X_ILLUME_INDICATOR_TYPE_UNKNOWN;
return _ecore_x_e_indicator_type_get(atom);
}
EAPI void
ecore_x_e_illume_indicator_type_send(Ecore_X_Window win,
Ecore_X_Illume_Indicator_Type_Mode mode)
{
LOGFN(__FILE__, __LINE__, __FUNCTION__);
ecore_x_client_message32_send(win,
ECORE_X_ATOM_E_ILLUME_INDICATOR_TYPE_MODE,
ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
_ecore_x_e_indicator_type_atom_get(mode),
0, 0, 0, 0);
}
static Ecore_X_Atom
_ecore_x_e_illume_window_state_atom_get(Ecore_X_Illume_Window_State state)
{