diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am index d715e6c288..09c91c9e5b 100644 --- a/src/Makefile_Elementary.am +++ b/src/Makefile_Elementary.am @@ -180,7 +180,6 @@ elm_private_eolian_files = \ # Legacy classes - not part of public EO API elm_legacy_eolian_files = \ lib/elementary/efl_ui_clock_legacy.eo \ - lib/elementary/elm_systray.eo \ lib/elementary/elm_widget_item_static_focus.eo \ lib/elementary/elm_ctxpopup_part.eo \ lib/elementary/elm_dayselector_part.eo \ @@ -390,6 +389,8 @@ lib/elementary/elm_sys_notify_eo.c \ lib/elementary/elm_sys_notify_eo.legacy.c \ lib/elementary/elm_sys_notify_interface_eo.c \ lib/elementary/elm_sys_notify_interface_eo.legacy.c \ +lib/elementary/elm_systray_eo.c \ +lib/elementary/elm_systray_eo.legacy.c \ $(NULL) elm_legacy_eo_headers = \ @@ -587,6 +588,8 @@ lib/elementary/elm_sys_notify_eo.h \ lib/elementary/elm_sys_notify_eo.legacy.h \ lib/elementary/elm_sys_notify_interface_eo.h \ lib/elementary/elm_sys_notify_interface_eo.legacy.h \ +lib/elementary/elm_systray_eo.h \ +lib/elementary/elm_systray_eo.legacy.h \ $(NULL) diff --git a/src/bin/elementary/test_systray.c b/src/bin/elementary/test_systray.c index f4ade32c01..1b159aa337 100644 --- a/src/bin/elementary/test_systray.c +++ b/src/bin/elementary/test_systray.c @@ -6,7 +6,7 @@ // FIXME: systray has no proper legacy API and clearly isn't ready for prime // time with EO either. -#include "elm_systray.eo.h" +#include "elm_systray_eo.h" #define WIDTH 320 #define HEIGHT 160 diff --git a/src/lib/elementary/elm_systray.c b/src/lib/elementary/elm_systray.c index 0c6c3f0a09..a7bff14701 100644 --- a/src/lib/elementary/elm_systray.c +++ b/src/lib/elementary/elm_systray.c @@ -5,7 +5,7 @@ #include #include "elm_priv.h" -#include "elm_systray.eo.h" +#include "elm_systray_eo.h" #include "elm_systray_watcher.h" EAPI int ELM_EVENT_SYSTRAY_READY = 0; @@ -514,4 +514,4 @@ _elm_unneed_systray(void) } } -#include "elm_systray.eo.c" +#include "elm_systray_eo.c" diff --git a/src/lib/elementary/elm_systray.eo b/src/lib/elementary/elm_systray.eo deleted file mode 100644 index 076177fa71..0000000000 --- a/src/lib/elementary/elm_systray.eo +++ /dev/null @@ -1,125 +0,0 @@ -enum Elm.Systray.Category -{ - [[ - Category of the Status Notifier Item. - @since 1.8 - ]] - app_status, [[Indicators of application status]] - communications, [[Communications apps]] - sys_services, [[System Service apps]] - hardware, [[Hardware indicators]] - other [[Undefined category]] -} - -enum Elm.Systray.Status -{ - [[ - Application status information. - @since 1.8 - ]] - passive, [[Passive (normal)]] - active, [[Active]] - attention [[Needs Attention]] -} - -class Elm.Systray extends Efl.Object -{ - [[Elementary systray class]] - legacy_prefix: elm_systray; - eo_prefix: elm_obj_systray; - data: null; - methods { - @property id { - set { - [[Set the id of the Status Notifier Item.]] - } - get { - [[Get the id of the Status Notifier Item.]] - } - values { - id: string @nullable; [[Status notifier item ID]] - } - } - @property category { - set { - [[Set the category of the Status Notifier Item.]] - } - get { - [[Get the category of the Status Notifier Item.]] - } - values { - cat: Elm.Systray.Category; [[Category]] - } - } - @property icon_theme_path { - set { - [[Set the path to the theme where the icons can be found. Set this value to "" to use the default path.]] - } - get { - [[Get the path to the icon's theme currently in use.]] - } - values { - icon_theme_path: string @nullable; [[Icon theme path]] - } - } - @property menu { - set { - [[Set the object path of the D-Bus Menu that is to be show when the Status Notifier Item is activated by the user.]] - } - get { - [[Get the object path of the D-Bus Menu currently in use.]] - } - values { - menu: const(Efl.Object) @nullable; [[Object path for DBus menu]] - } - } - @property att_icon_name { - set { - [[Set the name of the attention icon to be used by the Status Notifier Item.]] - } - get { - [[Get the name of the attention icon used by the Status Notifier Item.]] - } - values { - att_icon_name: string @nullable; [[Attention icon name]] - } - } - @property status { - set { - [[Set the status of the Status Notifier Item.]] - } - get { - [[Get the status of the Status Notifier Item.]] - } - values { - st: Elm.Systray.Status; [[Status]] - } - } - @property icon_name { - set { - [[Set the name of the icon to be used by the Status Notifier Item.]] - } - get { - [[Get the name of the icon used by the Status Notifier Item.]] - } - values { - icon_name: string @nullable; [[Status icon name]] - } - } - @property title { - set { - [[Set the title of the Status Notifier Item.]] - } - get { - [[Get the title of the Status Notifier Item.]] - } - values { - title: string @nullable; [[Title]] - } - } - register { - [[Register this Status Notifier Item in the System Tray Watcher. This function should only be called after the event #ELM_EVENT_SYSTRAY_READY is emitted.]] - return: bool; [[$true on success, $false otherwise]] - } - } -} diff --git a/src/lib/elementary/elm_systray.h b/src/lib/elementary/elm_systray.h index 0e1953b472..b41ce8ce99 100644 --- a/src/lib/elementary/elm_systray.h +++ b/src/lib/elementary/elm_systray.h @@ -2,6 +2,6 @@ #ifdef EFL_BETA_API_SUPPORT # ifndef EFL_NOLEGACY_API_SUPPORT -# include "elm_systray.eo.legacy.h" +# include "elm_systray_eo.legacy.h" # endif #endif diff --git a/src/lib/elementary/elm_systray_eo.c b/src/lib/elementary/elm_systray_eo.c new file mode 100644 index 0000000000..0207773f38 --- /dev/null +++ b/src/lib/elementary/elm_systray_eo.c @@ -0,0 +1,250 @@ + +void _elm_systray_id_set(Eo *obj, void *pd, const char *id); + + +static Eina_Error +__eolian_elm_systray_id_set_reflect(Eo *obj, Eina_Value val) +{ + Eina_Error r = 0; const char *cval; + if (!eina_value_string_convert(&val, &cval)) + { + r = EINA_ERROR_VALUE_FAILED; + goto end; + } + elm_obj_systray_id_set(obj, cval); + end: + eina_value_flush(&val); + return r; +} + +EOAPI EFL_VOID_FUNC_BODYV(elm_obj_systray_id_set, EFL_FUNC_CALL(id), const char *id); + +const char *_elm_systray_id_get(const Eo *obj, void *pd); + + +static Eina_Value +__eolian_elm_systray_id_get_reflect(Eo *obj) +{ + const char *val = elm_obj_systray_id_get(obj); + return eina_value_string_init(val); +} + +EOAPI EFL_FUNC_BODY_CONST(elm_obj_systray_id_get, const char *, NULL); + +void _elm_systray_category_set(Eo *obj, void *pd, Elm_Systray_Category cat); + +EOAPI EFL_VOID_FUNC_BODYV(elm_obj_systray_category_set, EFL_FUNC_CALL(cat), Elm_Systray_Category cat); + +Elm_Systray_Category _elm_systray_category_get(const Eo *obj, void *pd); + +EOAPI EFL_FUNC_BODY_CONST(elm_obj_systray_category_get, Elm_Systray_Category, 0); + +void _elm_systray_icon_theme_path_set(Eo *obj, void *pd, const char *icon_theme_path); + + +static Eina_Error +__eolian_elm_systray_icon_theme_path_set_reflect(Eo *obj, Eina_Value val) +{ + Eina_Error r = 0; const char *cval; + if (!eina_value_string_convert(&val, &cval)) + { + r = EINA_ERROR_VALUE_FAILED; + goto end; + } + elm_obj_systray_icon_theme_path_set(obj, cval); + end: + eina_value_flush(&val); + return r; +} + +EOAPI EFL_VOID_FUNC_BODYV(elm_obj_systray_icon_theme_path_set, EFL_FUNC_CALL(icon_theme_path), const char *icon_theme_path); + +const char *_elm_systray_icon_theme_path_get(const Eo *obj, void *pd); + + +static Eina_Value +__eolian_elm_systray_icon_theme_path_get_reflect(Eo *obj) +{ + const char *val = elm_obj_systray_icon_theme_path_get(obj); + return eina_value_string_init(val); +} + +EOAPI EFL_FUNC_BODY_CONST(elm_obj_systray_icon_theme_path_get, const char *, NULL); + +void _elm_systray_menu_set(Eo *obj, void *pd, const Efl_Object *menu); + +EOAPI EFL_VOID_FUNC_BODYV(elm_obj_systray_menu_set, EFL_FUNC_CALL(menu), const Efl_Object *menu); + +const Efl_Object *_elm_systray_menu_get(const Eo *obj, void *pd); + +EOAPI EFL_FUNC_BODY_CONST(elm_obj_systray_menu_get, const Efl_Object *, NULL); + +void _elm_systray_att_icon_name_set(Eo *obj, void *pd, const char *att_icon_name); + + +static Eina_Error +__eolian_elm_systray_att_icon_name_set_reflect(Eo *obj, Eina_Value val) +{ + Eina_Error r = 0; const char *cval; + if (!eina_value_string_convert(&val, &cval)) + { + r = EINA_ERROR_VALUE_FAILED; + goto end; + } + elm_obj_systray_att_icon_name_set(obj, cval); + end: + eina_value_flush(&val); + return r; +} + +EOAPI EFL_VOID_FUNC_BODYV(elm_obj_systray_att_icon_name_set, EFL_FUNC_CALL(att_icon_name), const char *att_icon_name); + +const char *_elm_systray_att_icon_name_get(const Eo *obj, void *pd); + + +static Eina_Value +__eolian_elm_systray_att_icon_name_get_reflect(Eo *obj) +{ + const char *val = elm_obj_systray_att_icon_name_get(obj); + return eina_value_string_init(val); +} + +EOAPI EFL_FUNC_BODY_CONST(elm_obj_systray_att_icon_name_get, const char *, NULL); + +void _elm_systray_status_set(Eo *obj, void *pd, Elm_Systray_Status st); + +EOAPI EFL_VOID_FUNC_BODYV(elm_obj_systray_status_set, EFL_FUNC_CALL(st), Elm_Systray_Status st); + +Elm_Systray_Status _elm_systray_status_get(const Eo *obj, void *pd); + +EOAPI EFL_FUNC_BODY_CONST(elm_obj_systray_status_get, Elm_Systray_Status, 0); + +void _elm_systray_icon_name_set(Eo *obj, void *pd, const char *icon_name); + + +static Eina_Error +__eolian_elm_systray_icon_name_set_reflect(Eo *obj, Eina_Value val) +{ + Eina_Error r = 0; const char *cval; + if (!eina_value_string_convert(&val, &cval)) + { + r = EINA_ERROR_VALUE_FAILED; + goto end; + } + elm_obj_systray_icon_name_set(obj, cval); + end: + eina_value_flush(&val); + return r; +} + +EOAPI EFL_VOID_FUNC_BODYV(elm_obj_systray_icon_name_set, EFL_FUNC_CALL(icon_name), const char *icon_name); + +const char *_elm_systray_icon_name_get(const Eo *obj, void *pd); + + +static Eina_Value +__eolian_elm_systray_icon_name_get_reflect(Eo *obj) +{ + const char *val = elm_obj_systray_icon_name_get(obj); + return eina_value_string_init(val); +} + +EOAPI EFL_FUNC_BODY_CONST(elm_obj_systray_icon_name_get, const char *, NULL); + +void _elm_systray_title_set(Eo *obj, void *pd, const char *title); + + +static Eina_Error +__eolian_elm_systray_title_set_reflect(Eo *obj, Eina_Value val) +{ + Eina_Error r = 0; const char *cval; + if (!eina_value_string_convert(&val, &cval)) + { + r = EINA_ERROR_VALUE_FAILED; + goto end; + } + elm_obj_systray_title_set(obj, cval); + end: + eina_value_flush(&val); + return r; +} + +EOAPI EFL_VOID_FUNC_BODYV(elm_obj_systray_title_set, EFL_FUNC_CALL(title), const char *title); + +const char *_elm_systray_title_get(const Eo *obj, void *pd); + + +static Eina_Value +__eolian_elm_systray_title_get_reflect(Eo *obj) +{ + const char *val = elm_obj_systray_title_get(obj); + return eina_value_string_init(val); +} + +EOAPI EFL_FUNC_BODY_CONST(elm_obj_systray_title_get, const char *, NULL); + +Eina_Bool _elm_systray_register(Eo *obj, void *pd); + +EOAPI EFL_FUNC_BODY(elm_obj_systray_register, Eina_Bool, 0); + +static Eina_Bool +_elm_systray_class_initializer(Efl_Class *klass) +{ + const Efl_Object_Ops *opsp = NULL; + + const Efl_Object_Property_Reflection_Ops *ropsp = NULL; + +#ifndef ELM_SYSTRAY_EXTRA_OPS +#define ELM_SYSTRAY_EXTRA_OPS +#endif + + EFL_OPS_DEFINE(ops, + EFL_OBJECT_OP_FUNC(elm_obj_systray_id_set, _elm_systray_id_set), + EFL_OBJECT_OP_FUNC(elm_obj_systray_id_get, _elm_systray_id_get), + EFL_OBJECT_OP_FUNC(elm_obj_systray_category_set, _elm_systray_category_set), + EFL_OBJECT_OP_FUNC(elm_obj_systray_category_get, _elm_systray_category_get), + EFL_OBJECT_OP_FUNC(elm_obj_systray_icon_theme_path_set, _elm_systray_icon_theme_path_set), + EFL_OBJECT_OP_FUNC(elm_obj_systray_icon_theme_path_get, _elm_systray_icon_theme_path_get), + EFL_OBJECT_OP_FUNC(elm_obj_systray_menu_set, _elm_systray_menu_set), + EFL_OBJECT_OP_FUNC(elm_obj_systray_menu_get, _elm_systray_menu_get), + EFL_OBJECT_OP_FUNC(elm_obj_systray_att_icon_name_set, _elm_systray_att_icon_name_set), + EFL_OBJECT_OP_FUNC(elm_obj_systray_att_icon_name_get, _elm_systray_att_icon_name_get), + EFL_OBJECT_OP_FUNC(elm_obj_systray_status_set, _elm_systray_status_set), + EFL_OBJECT_OP_FUNC(elm_obj_systray_status_get, _elm_systray_status_get), + EFL_OBJECT_OP_FUNC(elm_obj_systray_icon_name_set, _elm_systray_icon_name_set), + EFL_OBJECT_OP_FUNC(elm_obj_systray_icon_name_get, _elm_systray_icon_name_get), + EFL_OBJECT_OP_FUNC(elm_obj_systray_title_set, _elm_systray_title_set), + EFL_OBJECT_OP_FUNC(elm_obj_systray_title_get, _elm_systray_title_get), + EFL_OBJECT_OP_FUNC(elm_obj_systray_register, _elm_systray_register), + ELM_SYSTRAY_EXTRA_OPS + ); + opsp = &ops; + + static const Efl_Object_Property_Reflection refl_table[] = { + {"id", __eolian_elm_systray_id_set_reflect, __eolian_elm_systray_id_get_reflect}, + {"icon_theme_path", __eolian_elm_systray_icon_theme_path_set_reflect, __eolian_elm_systray_icon_theme_path_get_reflect}, + {"att_icon_name", __eolian_elm_systray_att_icon_name_set_reflect, __eolian_elm_systray_att_icon_name_get_reflect}, + {"icon_name", __eolian_elm_systray_icon_name_set_reflect, __eolian_elm_systray_icon_name_get_reflect}, + {"title", __eolian_elm_systray_title_set_reflect, __eolian_elm_systray_title_get_reflect}, + }; + static const Efl_Object_Property_Reflection_Ops rops = { + refl_table, EINA_C_ARRAY_LENGTH(refl_table) + }; + ropsp = &rops; + + return efl_class_functions_set(klass, opsp, ropsp); +} + +static const Efl_Class_Description _elm_systray_class_desc = { + EO_VERSION, + "Elm.Systray", + EFL_CLASS_TYPE_REGULAR, + 0, + _elm_systray_class_initializer, + NULL, + NULL +}; + +EFL_DEFINE_CLASS(elm_systray_class_get, &_elm_systray_class_desc, EFL_OBJECT_CLASS, NULL); + +#include "elm_systray_eo.legacy.c" diff --git a/src/lib/elementary/elm_systray_eo.h b/src/lib/elementary/elm_systray_eo.h new file mode 100644 index 0000000000..d50dc412b8 --- /dev/null +++ b/src/lib/elementary/elm_systray_eo.h @@ -0,0 +1,236 @@ +#ifndef _ELM_SYSTRAY_EO_H_ +#define _ELM_SYSTRAY_EO_H_ + +#ifndef _ELM_SYSTRAY_EO_CLASS_TYPE +#define _ELM_SYSTRAY_EO_CLASS_TYPE + +typedef Eo Elm_Systray; + +#endif + +#ifndef _ELM_SYSTRAY_EO_TYPES +#define _ELM_SYSTRAY_EO_TYPES + +/** Category of the Status Notifier Item. + * + * @since 1.8 + * + * @ingroup Elm_Systray + */ +typedef enum +{ + ELM_SYSTRAY_CATEGORY_APP_STATUS = 0, /**< Indicators of application status */ + ELM_SYSTRAY_CATEGORY_COMMUNICATIONS, /**< Communications apps */ + ELM_SYSTRAY_CATEGORY_SYS_SERVICES, /**< System Service apps */ + ELM_SYSTRAY_CATEGORY_HARDWARE, /**< Hardware indicators */ + ELM_SYSTRAY_CATEGORY_OTHER /**< Undefined category */ +} Elm_Systray_Category; + +/** Application status information. + * + * @since 1.8 + * + * @ingroup Elm_Systray + */ +typedef enum +{ + ELM_SYSTRAY_STATUS_PASSIVE = 0, /**< Passive (normal) */ + ELM_SYSTRAY_STATUS_ACTIVE, /**< Active */ + ELM_SYSTRAY_STATUS_ATTENTION /**< Needs Attention */ +} Elm_Systray_Status; + + +#endif +/** Elementary systray class + * + * @ingroup Elm_Systray + */ +#define ELM_SYSTRAY_CLASS elm_systray_class_get() + +EWAPI const Efl_Class *elm_systray_class_get(void); + +/** + * @brief Set the id of the Status Notifier Item. + * + * @param[in] obj The object. + * @param[in] id Status notifier item ID + * + * @ingroup Elm_Systray + */ +EOAPI void elm_obj_systray_id_set(Eo *obj, const char *id); + +/** + * @brief Get the id of the Status Notifier Item. + * + * @param[in] obj The object. + * + * @return Status notifier item ID + * + * @ingroup Elm_Systray + */ +EOAPI const char *elm_obj_systray_id_get(const Eo *obj); + +/** + * @brief Set the category of the Status Notifier Item. + * + * @param[in] obj The object. + * @param[in] cat Category + * + * @ingroup Elm_Systray + */ +EOAPI void elm_obj_systray_category_set(Eo *obj, Elm_Systray_Category cat); + +/** + * @brief Get the category of the Status Notifier Item. + * + * @param[in] obj The object. + * + * @return Category + * + * @ingroup Elm_Systray + */ +EOAPI Elm_Systray_Category elm_obj_systray_category_get(const Eo *obj); + +/** + * @brief Set the path to the theme where the icons can be found. Set this + * value to "" to use the default path. + * + * @param[in] obj The object. + * @param[in] icon_theme_path Icon theme path + * + * @ingroup Elm_Systray + */ +EOAPI void elm_obj_systray_icon_theme_path_set(Eo *obj, const char *icon_theme_path); + +/** + * @brief Get the path to the icon's theme currently in use. + * + * @param[in] obj The object. + * + * @return Icon theme path + * + * @ingroup Elm_Systray + */ +EOAPI const char *elm_obj_systray_icon_theme_path_get(const Eo *obj); + +/** + * @brief Set the object path of the D-Bus Menu that is to be show when the + * Status Notifier Item is activated by the user. + * + * @param[in] obj The object. + * @param[in] menu Object path for DBus menu + * + * @ingroup Elm_Systray + */ +EOAPI void elm_obj_systray_menu_set(Eo *obj, const Efl_Object *menu); + +/** + * @brief Get the object path of the D-Bus Menu currently in use. + * + * @param[in] obj The object. + * + * @return Object path for DBus menu + * + * @ingroup Elm_Systray + */ +EOAPI const Efl_Object *elm_obj_systray_menu_get(const Eo *obj); + +/** + * @brief Set the name of the attention icon to be used by the Status Notifier + * Item. + * + * @param[in] obj The object. + * @param[in] att_icon_name Attention icon name + * + * @ingroup Elm_Systray + */ +EOAPI void elm_obj_systray_att_icon_name_set(Eo *obj, const char *att_icon_name); + +/** + * @brief Get the name of the attention icon used by the Status Notifier Item. + * + * @param[in] obj The object. + * + * @return Attention icon name + * + * @ingroup Elm_Systray + */ +EOAPI const char *elm_obj_systray_att_icon_name_get(const Eo *obj); + +/** + * @brief Set the status of the Status Notifier Item. + * + * @param[in] obj The object. + * @param[in] st Status + * + * @ingroup Elm_Systray + */ +EOAPI void elm_obj_systray_status_set(Eo *obj, Elm_Systray_Status st); + +/** + * @brief Get the status of the Status Notifier Item. + * + * @param[in] obj The object. + * + * @return Status + * + * @ingroup Elm_Systray + */ +EOAPI Elm_Systray_Status elm_obj_systray_status_get(const Eo *obj); + +/** + * @brief Set the name of the icon to be used by the Status Notifier Item. + * + * @param[in] obj The object. + * @param[in] icon_name Status icon name + * + * @ingroup Elm_Systray + */ +EOAPI void elm_obj_systray_icon_name_set(Eo *obj, const char *icon_name); + +/** + * @brief Get the name of the icon used by the Status Notifier Item. + * + * @param[in] obj The object. + * + * @return Status icon name + * + * @ingroup Elm_Systray + */ +EOAPI const char *elm_obj_systray_icon_name_get(const Eo *obj); + +/** + * @brief Set the title of the Status Notifier Item. + * + * @param[in] obj The object. + * @param[in] title Title + * + * @ingroup Elm_Systray + */ +EOAPI void elm_obj_systray_title_set(Eo *obj, const char *title); + +/** + * @brief Get the title of the Status Notifier Item. + * + * @param[in] obj The object. + * + * @return Title + * + * @ingroup Elm_Systray + */ +EOAPI const char *elm_obj_systray_title_get(const Eo *obj); + +/** + * @brief Register this Status Notifier Item in the System Tray Watcher. This + * function should only be called after the event #ELM_EVENT_SYSTRAY_READY is + * emitted. + * + * @param[in] obj The object. + * + * @return @c true on success, @c false otherwise + * + * @ingroup Elm_Systray + */ +EOAPI Eina_Bool elm_obj_systray_register(Eo *obj); + +#endif diff --git a/src/lib/elementary/elm_systray_eo.legacy.c b/src/lib/elementary/elm_systray_eo.legacy.c new file mode 100644 index 0000000000..d898bbd7ee --- /dev/null +++ b/src/lib/elementary/elm_systray_eo.legacy.c @@ -0,0 +1,102 @@ + +EAPI void +elm_systray_id_set(Elm_Systray *obj, const char *id) +{ + elm_obj_systray_id_set(obj, id); +} + +EAPI const char * +elm_systray_id_get(const Elm_Systray *obj) +{ + return elm_obj_systray_id_get(obj); +} + +EAPI void +elm_systray_category_set(Elm_Systray *obj, Elm_Systray_Category cat) +{ + elm_obj_systray_category_set(obj, cat); +} + +EAPI Elm_Systray_Category +elm_systray_category_get(const Elm_Systray *obj) +{ + return elm_obj_systray_category_get(obj); +} + +EAPI void +elm_systray_icon_theme_path_set(Elm_Systray *obj, const char *icon_theme_path) +{ + elm_obj_systray_icon_theme_path_set(obj, icon_theme_path); +} + +EAPI const char * +elm_systray_icon_theme_path_get(const Elm_Systray *obj) +{ + return elm_obj_systray_icon_theme_path_get(obj); +} + +EAPI void +elm_systray_menu_set(Elm_Systray *obj, const Efl_Object *menu) +{ + elm_obj_systray_menu_set(obj, menu); +} + +EAPI const Efl_Object * +elm_systray_menu_get(const Elm_Systray *obj) +{ + return elm_obj_systray_menu_get(obj); +} + +EAPI void +elm_systray_att_icon_name_set(Elm_Systray *obj, const char *att_icon_name) +{ + elm_obj_systray_att_icon_name_set(obj, att_icon_name); +} + +EAPI const char * +elm_systray_att_icon_name_get(const Elm_Systray *obj) +{ + return elm_obj_systray_att_icon_name_get(obj); +} + +EAPI void +elm_systray_status_set(Elm_Systray *obj, Elm_Systray_Status st) +{ + elm_obj_systray_status_set(obj, st); +} + +EAPI Elm_Systray_Status +elm_systray_status_get(const Elm_Systray *obj) +{ + return elm_obj_systray_status_get(obj); +} + +EAPI void +elm_systray_icon_name_set(Elm_Systray *obj, const char *icon_name) +{ + elm_obj_systray_icon_name_set(obj, icon_name); +} + +EAPI const char * +elm_systray_icon_name_get(const Elm_Systray *obj) +{ + return elm_obj_systray_icon_name_get(obj); +} + +EAPI void +elm_systray_title_set(Elm_Systray *obj, const char *title) +{ + elm_obj_systray_title_set(obj, title); +} + +EAPI const char * +elm_systray_title_get(const Elm_Systray *obj) +{ + return elm_obj_systray_title_get(obj); +} + +EAPI Eina_Bool +elm_systray_register(Elm_Systray *obj) +{ + return elm_obj_systray_register(obj); +} diff --git a/src/lib/elementary/elm_systray_eo.legacy.h b/src/lib/elementary/elm_systray_eo.legacy.h new file mode 100644 index 0000000000..485ced58df --- /dev/null +++ b/src/lib/elementary/elm_systray_eo.legacy.h @@ -0,0 +1,229 @@ +#ifndef _ELM_SYSTRAY_EO_LEGACY_H_ +#define _ELM_SYSTRAY_EO_LEGACY_H_ + +#ifndef _ELM_SYSTRAY_EO_CLASS_TYPE +#define _ELM_SYSTRAY_EO_CLASS_TYPE + +typedef Eo Elm_Systray; + +#endif + +#ifndef _ELM_SYSTRAY_EO_TYPES +#define _ELM_SYSTRAY_EO_TYPES + +/** Category of the Status Notifier Item. + * + * @since 1.8 + * + * @ingroup Elm_Systray + */ +typedef enum +{ + ELM_SYSTRAY_CATEGORY_APP_STATUS = 0, /**< Indicators of application status */ + ELM_SYSTRAY_CATEGORY_COMMUNICATIONS, /**< Communications apps */ + ELM_SYSTRAY_CATEGORY_SYS_SERVICES, /**< System Service apps */ + ELM_SYSTRAY_CATEGORY_HARDWARE, /**< Hardware indicators */ + ELM_SYSTRAY_CATEGORY_OTHER /**< Undefined category */ +} Elm_Systray_Category; + +/** Application status information. + * + * @since 1.8 + * + * @ingroup Elm_Systray + */ +typedef enum +{ + ELM_SYSTRAY_STATUS_PASSIVE = 0, /**< Passive (normal) */ + ELM_SYSTRAY_STATUS_ACTIVE, /**< Active */ + ELM_SYSTRAY_STATUS_ATTENTION /**< Needs Attention */ +} Elm_Systray_Status; + + +#endif + +/** + * @brief Set the id of the Status Notifier Item. + * + * @param[in] obj The object. + * @param[in] id Status notifier item ID + * + * @ingroup Elm_Systray_Group + */ +EAPI void elm_systray_id_set(Elm_Systray *obj, const char *id); + +/** + * @brief Get the id of the Status Notifier Item. + * + * @param[in] obj The object. + * + * @return Status notifier item ID + * + * @ingroup Elm_Systray_Group + */ +EAPI const char *elm_systray_id_get(const Elm_Systray *obj); + +/** + * @brief Set the category of the Status Notifier Item. + * + * @param[in] obj The object. + * @param[in] cat Category + * + * @ingroup Elm_Systray_Group + */ +EAPI void elm_systray_category_set(Elm_Systray *obj, Elm_Systray_Category cat); + +/** + * @brief Get the category of the Status Notifier Item. + * + * @param[in] obj The object. + * + * @return Category + * + * @ingroup Elm_Systray_Group + */ +EAPI Elm_Systray_Category elm_systray_category_get(const Elm_Systray *obj); + +/** + * @brief Set the path to the theme where the icons can be found. Set this + * value to "" to use the default path. + * + * @param[in] obj The object. + * @param[in] icon_theme_path Icon theme path + * + * @ingroup Elm_Systray_Group + */ +EAPI void elm_systray_icon_theme_path_set(Elm_Systray *obj, const char *icon_theme_path); + +/** + * @brief Get the path to the icon's theme currently in use. + * + * @param[in] obj The object. + * + * @return Icon theme path + * + * @ingroup Elm_Systray_Group + */ +EAPI const char *elm_systray_icon_theme_path_get(const Elm_Systray *obj); + +/** + * @brief Set the object path of the D-Bus Menu that is to be show when the + * Status Notifier Item is activated by the user. + * + * @param[in] obj The object. + * @param[in] menu Object path for DBus menu + * + * @ingroup Elm_Systray_Group + */ +EAPI void elm_systray_menu_set(Elm_Systray *obj, const Efl_Object *menu); + +/** + * @brief Get the object path of the D-Bus Menu currently in use. + * + * @param[in] obj The object. + * + * @return Object path for DBus menu + * + * @ingroup Elm_Systray_Group + */ +EAPI const Efl_Object *elm_systray_menu_get(const Elm_Systray *obj); + +/** + * @brief Set the name of the attention icon to be used by the Status Notifier + * Item. + * + * @param[in] obj The object. + * @param[in] att_icon_name Attention icon name + * + * @ingroup Elm_Systray_Group + */ +EAPI void elm_systray_att_icon_name_set(Elm_Systray *obj, const char *att_icon_name); + +/** + * @brief Get the name of the attention icon used by the Status Notifier Item. + * + * @param[in] obj The object. + * + * @return Attention icon name + * + * @ingroup Elm_Systray_Group + */ +EAPI const char *elm_systray_att_icon_name_get(const Elm_Systray *obj); + +/** + * @brief Set the status of the Status Notifier Item. + * + * @param[in] obj The object. + * @param[in] st Status + * + * @ingroup Elm_Systray_Group + */ +EAPI void elm_systray_status_set(Elm_Systray *obj, Elm_Systray_Status st); + +/** + * @brief Get the status of the Status Notifier Item. + * + * @param[in] obj The object. + * + * @return Status + * + * @ingroup Elm_Systray_Group + */ +EAPI Elm_Systray_Status elm_systray_status_get(const Elm_Systray *obj); + +/** + * @brief Set the name of the icon to be used by the Status Notifier Item. + * + * @param[in] obj The object. + * @param[in] icon_name Status icon name + * + * @ingroup Elm_Systray_Group + */ +EAPI void elm_systray_icon_name_set(Elm_Systray *obj, const char *icon_name); + +/** + * @brief Get the name of the icon used by the Status Notifier Item. + * + * @param[in] obj The object. + * + * @return Status icon name + * + * @ingroup Elm_Systray_Group + */ +EAPI const char *elm_systray_icon_name_get(const Elm_Systray *obj); + +/** + * @brief Set the title of the Status Notifier Item. + * + * @param[in] obj The object. + * @param[in] title Title + * + * @ingroup Elm_Systray_Group + */ +EAPI void elm_systray_title_set(Elm_Systray *obj, const char *title); + +/** + * @brief Get the title of the Status Notifier Item. + * + * @param[in] obj The object. + * + * @return Title + * + * @ingroup Elm_Systray_Group + */ +EAPI const char *elm_systray_title_get(const Elm_Systray *obj); + +/** + * @brief Register this Status Notifier Item in the System Tray Watcher. This + * function should only be called after the event #ELM_EVENT_SYSTRAY_READY is + * emitted. + * + * @param[in] obj The object. + * + * @return @c true on success, @c false otherwise + * + * @ingroup Elm_Systray_Group + */ +EAPI Eina_Bool elm_systray_register(Elm_Systray *obj); + +#endif diff --git a/src/lib/elementary/meson.build b/src/lib/elementary/meson.build index 17d9b653d1..8fec725d3f 100644 --- a/src/lib/elementary/meson.build +++ b/src/lib/elementary/meson.build @@ -1,6 +1,5 @@ pub_legacy_eo_files = [ 'efl_ui_clock_legacy.eo', - 'elm_systray.eo', 'elm_widget_item_static_focus.eo', 'elm_ctxpopup_part.eo', 'elm_dayselector_part.eo', @@ -799,6 +798,8 @@ elementary_pub_headers = [ 'elm_sys_notify_eo.legacy.h', 'elm_sys_notify_interface_eo.h', 'elm_sys_notify_interface_eo.legacy.h', + 'elm_systray_eo.h', + 'elm_systray_eo.legacy.h', ] elementary_header_src = [