1 #include <Elementary.h>
5 * @defgroup TickerNoti TickerNoti
8 * This is a notification widget which can be used to display some short information.
11 typedef struct _Widget_Data Widget_Data;
16 Evas_Object *edje_obj;
19 Ecore_Event_Handler *rotation_event_handler;
23 Elm_Tickernoti_Mode mode;
24 Elm_Tickernoti_Orient orient;
27 static const char *widtype = NULL;
28 static void _del_hook(Evas_Object *obj);
29 static void _theme_hook(Evas_Object *obj);
30 static void _sizing_eval(Evas_Object *obj);
31 static void _update_geometry_on_rotation(Evas_Object *obj, int angle, int *x, int *y, int *w);
33 static const char SIG_CLICKED[] = "clicked";
34 static const char SIG_HIDDEN[] = "hide";
35 static const Evas_Smart_Cb_Description _signals[] = {
44 evas_object_del(data);
48 _del_hook(Evas_Object *obj)
51 Widget_Data *wd = elm_widget_data_get(obj);
54 parent = elm_widget_parent_get(obj);
55 if (wd->rotation_event_handler)
56 ecore_event_handler_del(wd->rotation_event_handler);
57 if (wd->win) ecore_job_add(_del_job, parent);
58 evas_object_del(wd->edje_obj);
64 _mirrored_set(Evas_Object *obj, Eina_Bool rtl)
66 Widget_Data *wd = elm_widget_data_get(obj);
69 edje_object_mirrored_set(wd->edje_obj, rtl);
73 _theme_hook(Evas_Object *obj)
75 char *data_win_height = NULL;
77 Widget_Data *wd = elm_widget_data_get(obj);
80 _elm_widget_mirrored_reload(obj);
81 _mirrored_set(obj, elm_widget_mirrored_get(obj));
83 _elm_theme_object_set(wd->win, wd->edje_obj, "tickernoti",
84 "base", elm_widget_style_get(obj));
86 edje_object_scale_set(wd->edje_obj, elm_widget_scale_get(obj) * _elm_config->scale);
88 /* tickernoti detail height set */
89 data_win_height = (char *)edje_object_data_get(wd->edje_obj, "height");
90 if (data_win_height != NULL && elm_scale_get() > 0.0)
91 wd->noti_height = (int)(elm_scale_get() * atoi(data_win_height));
93 evas_object_geometry_get(wd->win, NULL, NULL, &w, NULL);
94 evas_object_resize(wd->win, w, wd->noti_height);
97 edje_object_part_text_set(wd->edje_obj, "elm.text", wd->label);
99 edje_object_part_swallow(wd->edje_obj, "icon", wd->icon);
101 edje_object_part_swallow(wd->edje_obj, "button", wd->button);
102 edje_object_signal_emit(wd->edje_obj, "effect,show", "elm");
103 edje_object_message_signal_process(wd->edje_obj);
109 _sizing_eval(Evas_Object *obj)
111 Widget_Data *wd = elm_widget_data_get(obj);
112 Evas_Coord minw = -1, minh = -1;
115 elm_coords_finger_size_adjust(1, &minw, 1, &minh);
116 edje_object_size_min_restricted_calc(wd->edje_obj, &minw, &minh, minw, minh);
117 evas_object_size_hint_min_set(obj, minw, minh);
120 #ifdef HAVE_ELEMENTARY_X
122 _update_window_hints(Evas_Object *obj)
125 Ecore_X_Atom _notification_level_atom;
127 // elm_win_xwindow_get() must call after elm_win_alpha_set()
128 xwin = elm_win_xwindow_get(obj);
130 ecore_x_icccm_hints_set(xwin, 0, ECORE_X_WINDOW_STATE_HINT_NONE, 0, 0, 0, 0, 0);
131 ecore_x_netwm_window_type_set(xwin, ECORE_X_WINDOW_TYPE_NOTIFICATION);
132 ecore_x_netwm_opacity_set(xwin, 0);
133 // Create atom for notification level
134 _notification_level_atom = ecore_x_atom_get("_E_ILLUME_NOTIFICATION_LEVEL");
136 // HIGH:150, NORMAL:100, LOW:50
139 // Set notification level of the window
140 ecore_x_window_prop_property_set(xwin, _notification_level_atom, ECORE_X_ATOM_CARDINAL, 32, &level, 1);
144 static void _hide_cb(void *data, Evas_Object *obj __UNUSED__,
145 const char *emission __UNUSED__,
146 const char *source __UNUSED__)
148 Widget_Data *wd = elm_widget_data_get(data);
151 evas_object_hide(wd->win);
152 evas_object_smart_callback_call(data, SIG_HIDDEN, NULL);
155 static void _clicked_cb(void *data, Evas_Object *obj __UNUSED__,
156 const char *emission __UNUSED__,
157 const char *source __UNUSED__)
159 Widget_Data *wd = elm_widget_data_get(data);
162 evas_object_smart_callback_call(data, SIG_CLICKED, NULL);
166 *_create_window(Evas_Object *parent, const char *name)
170 win = elm_win_add(parent, name, ELM_WIN_BASIC);
171 elm_win_title_set(win, name);
172 elm_win_borderless_set(win, EINA_TRUE);
173 elm_win_autodel_set(win, EINA_TRUE);
174 elm_win_alpha_set(win, EINA_TRUE);
175 evas_object_size_hint_weight_set(win, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
176 evas_object_size_hint_align_set(win, EVAS_HINT_FILL, EVAS_HINT_FILL);
178 #ifdef HAVE_ELEMENTARY_X
180 _update_window_hints(win);
186 _win_rotated(Evas_Object *obj)
188 Widget_Data *wd = elm_widget_data_get(obj);
189 int x = 0, y = 0, w = 0, angle = 0;
192 angle = elm_win_rotation_get(wd->win);
193 if (angle % 90) return;
195 if (angle < 0) angle += 360;
197 _update_geometry_on_rotation(obj, wd->angle, &x, &y, &w);
198 evas_object_move(wd->win, x, y);
199 evas_object_resize(wd->win, w, wd->noti_height);
200 #ifdef HAVE_ELEMENTARY_X
201 _update_window_hints(wd->win);
206 _prop_change(void *data, int type __UNUSED__, void *event)
208 #ifdef HAVE_ELEMENTARY_X
209 Ecore_X_Event_Window_Property *ev;
210 Widget_Data *wd = elm_widget_data_get(data);
212 if (!wd) return ECORE_CALLBACK_PASS_ON;
214 if (ev->atom == ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE)
216 if (ev->win == elm_win_xwindow_get(wd->win))
221 return ECORE_CALLBACK_PASS_ON;
226 _create_tickernoti(Evas_Object *obj)
228 #ifdef HAVE_ELEMENTARY_X
231 Widget_Data *wd = elm_widget_data_get(obj);
232 char *data_win_height = NULL;
237 evas_object_move(wd->win, 0, 0);
238 e = evas_object_evas_get(wd->win);
240 wd->edje_obj = edje_object_add(e);
241 _elm_theme_object_set(wd->win, wd->edje_obj, "tickernoti", "base", "default");
242 elm_win_resize_object_add(wd->win, wd->edje_obj);
244 // tickernoti height setting
245 data_win_height = (char *)edje_object_data_get(wd->edje_obj, "height");
246 if (data_win_height != NULL && elm_scale_get() > 0.0)
247 wd->noti_height = (int)(elm_scale_get() * atoi(data_win_height));
249 #ifdef HAVE_ELEMENTARY_X
250 ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, NULL);
251 evas_object_resize(wd->win, w, wd->noti_height);
252 wd->rotation_event_handler = ecore_event_handler_add(
253 ECORE_X_EVENT_WINDOW_PROPERTY, _prop_change, obj);
256 edje_object_signal_callback_add(wd->edje_obj, "request,hide", "", _hide_cb, obj);
257 edje_object_signal_callback_add(wd->edje_obj, "clicked", "", _clicked_cb, obj);
258 evas_object_show(wd->edje_obj);
262 _disable_hook(Evas_Object *obj)
264 Widget_Data *wd = elm_widget_data_get(obj);
267 //TODO: To stop the event in case of being disabled
271 _show(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj,
272 void *event_info __UNUSED__)
274 Widget_Data *wd = elm_widget_data_get(obj);
277 #ifdef HAVE_ELEMENTARY_X
278 _update_window_hints(wd->win);
280 evas_object_show(wd->win);
281 edje_object_signal_emit(wd->edje_obj, "effect,show", "elm");
282 edje_object_message_signal_process(wd->edje_obj);
286 _hide(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj,
287 void *event_info __UNUSED__)
289 Widget_Data *wd = elm_widget_data_get(obj);
292 evas_object_hide(wd->win);
295 static void _tickernoti_hide_cb(void *data, Evas_Object *obj __UNUSED__,
296 void *event_info __UNUSED__)
298 Widget_Data *wd = data;
302 edje_object_signal_emit(wd->edje_obj, "effect,hide", "elm");
303 edje_object_message_signal_process(wd->edje_obj);
307 _update_geometry_on_rotation(Evas_Object *obj, int angle, int *x, int *y, int *w)
309 ELM_CHECK_WIDTYPE(obj, widtype);
310 Widget_Data *wd = elm_widget_data_get(obj);
314 #ifdef HAVE_ELEMENTARY_X
315 Evas_Coord root_w, root_h;
318 * manually calculate win_tickernoti_indi window position & size
319 * - win_indi is not full size window
321 ecore_x_window_size_get(ecore_x_window_root_first_get(), &root_w, &root_h);
327 if (wd->orient == ELM_TICKERNOTI_ORIENT_BOTTOM)
328 *x = root_w - wd->noti_height;
332 if (!(wd->orient == ELM_TICKERNOTI_ORIENT_BOTTOM))
333 *x = root_w - wd->noti_height;
337 if (!wd->orient == ELM_TICKERNOTI_ORIENT_BOTTOM)
338 *y = root_h - wd->noti_height;
343 if (wd->orient == ELM_TICKERNOTI_ORIENT_BOTTOM)
344 *y = root_h - wd->noti_height;
351 _sub_del(void *data __UNUSED__, Evas_Object *obj, void *event_info)
353 Widget_Data *wd = elm_widget_data_get(obj);
354 Evas_Object *sub = event_info;
358 if (sub == wd->button)
363 _elm_tickernoti_label_set(Evas_Object *obj, const char *part, const char *label)
365 ELM_CHECK_WIDTYPE(obj, widtype);
366 Widget_Data *wd = elm_widget_data_get(obj);
369 if (part && strcmp(part, "default")) return;
370 eina_stringshare_replace(&wd->label, label);
371 edje_object_part_text_set(wd->edje_obj, "elm.text", wd->label);
376 _elm_tickernoti_label_get(const Evas_Object *obj, const char *part)
378 ELM_CHECK_WIDTYPE(obj, widtype) NULL;
379 Widget_Data *wd = elm_widget_data_get(obj);
381 if (part && strcmp(part, "default")) return NULL;
382 if (!wd) return NULL;
387 _elm_tickernoti_icon_set(Evas_Object *obj, Evas_Object *icon)
389 ELM_CHECK_WIDTYPE(obj, widtype);
390 Widget_Data *wd = elm_widget_data_get(obj);
393 if (wd->icon == icon) return;
394 if (wd->icon) evas_object_del(wd->icon);
398 elm_widget_sub_object_add(obj, icon);
399 edje_object_part_swallow(wd->edje_obj, "icon", icon);
404 _elm_tickernoti_button_set(Evas_Object *obj, Evas_Object *button)
406 ELM_CHECK_WIDTYPE(obj, widtype);
407 Widget_Data *wd = elm_widget_data_get(obj);
410 if (wd->button == button) return;
411 if (wd->button) evas_object_del(wd->button);
415 elm_widget_sub_object_add(obj, button);
416 edje_object_part_swallow(wd->edje_obj, "button", button);
417 evas_object_smart_callback_add(wd->button, "clicked", _tickernoti_hide_cb, wd);
422 _elm_tickernoti_content_part_set_hook(Evas_Object *obj, const char *part, Evas_Object *content)
424 ELM_CHECK_WIDTYPE(obj, widtype);
425 Widget_Data *wd = elm_widget_data_get(obj);
427 if (!wd || !part) return;
428 if (!part || !strcmp(part, "icon"))
430 _elm_tickernoti_icon_set(obj, content);
433 else if (!strcmp(part, "button"))
435 _elm_tickernoti_button_set(obj, content);
441 _elm_tickernoti_icon_get(const Evas_Object *obj)
443 ELM_CHECK_WIDTYPE(obj, widtype) NULL;
444 Widget_Data *wd = elm_widget_data_get(obj);
445 if (!wd) return NULL;
450 _elm_tickernoti_button_get(const Evas_Object *obj)
452 ELM_CHECK_WIDTYPE(obj, widtype) NULL;
453 Widget_Data *wd = elm_widget_data_get(obj);
454 if (!wd) return NULL;
459 _elm_tickernoti_content_part_get_hook(Evas_Object *obj, const char *part)
461 ELM_CHECK_WIDTYPE(obj, widtype) NULL;
462 Widget_Data *wd = elm_widget_data_get(obj);
464 if (!wd || !part) return NULL;
465 if (!part || !strcmp(part, "icon"))
466 return _elm_tickernoti_icon_get(obj);
467 else if (!strcmp(part, "button"))
468 return _elm_tickernoti_button_get(obj);
473 _elm_tickernoti_icon_unset(Evas_Object *obj)
475 ELM_CHECK_WIDTYPE(obj, widtype) NULL;
477 Widget_Data *wd = elm_widget_data_get(obj);
479 if (!wd || !wd->icon) return NULL;
481 elm_widget_sub_object_del(obj, wd->icon);
482 edje_object_part_unswallow(wd->edje_obj, icon);
488 _elm_tickernoti_button_unset(Evas_Object *obj)
490 ELM_CHECK_WIDTYPE(obj, widtype) NULL;
492 Widget_Data *wd = elm_widget_data_get(obj);
494 if (!wd || !wd->button) return NULL;
496 elm_widget_sub_object_del(obj, wd->button);
497 edje_object_part_unswallow(wd->edje_obj, button);
503 _elm_tickernoti_content_part_unset_hook(Evas_Object *obj, const char *part)
505 ELM_CHECK_WIDTYPE(obj, widtype) NULL;
506 Widget_Data *wd = elm_widget_data_get(obj);
508 if (!wd || !part) return NULL;
509 if (!strcmp(part, "icon"))
510 return _elm_tickernoti_icon_unset(obj);
511 else if (!strcmp(part, "button"))
512 return _elm_tickernoti_button_unset(obj);
517 * Add a tickernoti object to @p parent
519 * @param parent The parent object
521 * @return The tickernoti object, or NULL upon failure
523 * @ingroup TickerNoti
526 elm_tickernoti_add(Evas_Object *parent)
532 wd = ELM_NEW(Widget_Data);
533 wd->win = _create_window(parent, "noti-window");
535 e = evas_object_evas_get(wd->win);
536 obj = elm_widget_add(e);
537 ELM_SET_WIDTYPE(widtype, "tickernoti");
538 elm_widget_type_set(obj, widtype);
539 elm_widget_sub_object_add(wd->win, obj);
540 elm_widget_data_set(obj, wd);
541 elm_widget_del_hook_set(obj, _del_hook);
542 elm_widget_theme_hook_set(obj, _theme_hook);
543 elm_widget_can_focus_set(obj, 0);
544 elm_widget_disable_hook_set(obj, _disable_hook);
546 wd->orient = ELM_TICKERNOTI_ORIENT_TOP;
548 _create_tickernoti(obj);
549 elm_widget_text_set_hook_set(obj, _elm_tickernoti_label_set);
550 elm_widget_text_get_hook_set(obj, _elm_tickernoti_label_get);
551 elm_widget_content_set_hook_set(obj, _elm_tickernoti_content_part_set_hook);
552 elm_widget_content_get_hook_set(obj, _elm_tickernoti_content_part_get_hook);
553 elm_widget_content_unset_hook_set(obj, _elm_tickernoti_content_part_unset_hook);
554 evas_object_smart_callback_add(obj, "sub-object-del", _sub_del, NULL);
556 evas_object_event_callback_add(obj, EVAS_CALLBACK_SHOW, _show, NULL);
557 evas_object_event_callback_add(obj, EVAS_CALLBACK_HIDE, _hide, NULL);
558 evas_object_smart_callbacks_descriptions_set(obj, _signals);
563 * Get the rotation of tickernoti object
565 * @param obj The tickernotil object
566 * @return The rotation angle
567 * @ingroup TickerNoti
570 elm_tickernoti_rotation_get(const Evas_Object *obj)
572 ELM_CHECK_WIDTYPE(obj, widtype) -1;
573 Widget_Data *wd = elm_widget_data_get(obj);
579 * Set the rotation angle for the tickernoti object
581 * @param obj The tickernoti object
582 * @param angle The rotation angle(in degree) will be used on the tickernoti object
583 * @ingroup TickerNoti
586 elm_tickernoti_rotation_set(Evas_Object *obj, int angle)
588 ELM_CHECK_WIDTYPE(obj, widtype);
589 Widget_Data *wd = elm_widget_data_get(obj);
592 if (angle % 90) return;
594 if (angle < 0) angle += 360;
596 elm_win_rotation_with_resize_set (wd->win, angle);
600 * Set the orientation of the tickernoti object
602 * @param obj The tickernoti object
603 * @param orient The orientation of tickernoti object
604 * @ingroup TickerNoti
607 elm_tickernoti_orient_set(Evas_Object *obj, Elm_Tickernoti_Orient orient)
609 ELM_CHECK_WIDTYPE(obj, widtype);
611 #ifdef HAVE_ELEMENTARY_X
612 Evas_Coord root_w, root_h;
614 Widget_Data *wd = elm_widget_data_get(obj);
617 if (orient >= ELM_TICKERNOTI_ORIENT_LAST) return;
619 #ifdef HAVE_ELEMENTARY_X
620 ecore_x_window_size_get(ecore_x_window_root_first_get(), &root_w, &root_h);
624 case ELM_TICKERNOTI_ORIENT_BOTTOM:
625 #ifdef HAVE_ELEMENTARY_X
626 evas_object_move(wd->win, 0, root_h - wd->noti_height);
628 wd->orient = ELM_TICKERNOTI_ORIENT_BOTTOM;
630 case ELM_TICKERNOTI_ORIENT_TOP:
632 #ifdef HAVE_ELEMENTARY_X
633 evas_object_move(wd->win, 0, 0);
635 wd->orient = ELM_TICKERNOTI_ORIENT_TOP;
638 #ifdef HAVE_ELEMENTARY_X
639 _update_window_hints(wd->win);
644 * Get the orientation of the tickernoti object
646 * @param obj The tickernotil object
647 * @return The orientation of tickernotil object
649 * @ingroup TickerNoti
651 EAPI Elm_Tickernoti_Orient
652 elm_tickernoti_orient_get(const Evas_Object *obj)
654 ELM_CHECK_WIDTYPE(obj, widtype) -1;
655 Widget_Data *wd = elm_widget_data_get(obj);
657 if (!wd) return ELM_TICKERNOTI_ORIENT_LAST;
662 * Get the view window(elm_win) on the tickernoti object
664 * @param obj The tickernotil object
665 * @return internal view window(elm_win) object
667 * @ingroup TickerNoti
670 elm_tickernoti_win_get(const Evas_Object *obj)
672 ELM_CHECK_WIDTYPE(obj, widtype) NULL;
673 Widget_Data *wd = elm_widget_data_get(obj);
674 if (!wd) return NULL;
678 // ################### Below APIs are going to be removed. ###########################
680 * Set the detail label on the tickernoti object
682 * @param obj The tickernoti object
683 * @param label The label will be used on the tickernoti object
684 * @deprecated use elm_object_text_set() instead
686 * @ingroup TickerNoti
689 elm_tickernoti_detailview_label_set(Evas_Object *obj, const char *label)
691 _elm_tickernoti_label_set(obj, NULL, label);
695 * Get the detail label used on the tickernoti object
697 * @param obj The tickernotil object
698 * @return The string inside the label
699 * @deprecated use elm_object_text_get() instead
701 * @ingroup TickerNoti
704 elm_tickernoti_detailview_label_get(const Evas_Object *obj)
706 return _elm_tickernoti_label_get(obj, NULL);
710 * Set the button object used on the tickernoti object
712 * @param obj The tickernotil object
713 * @param button The button object will be used on the tickernoti object
714 * @deprecated use elm_object_content_part_set() instead with "icon" as part name
716 * @ingroup TickerNoti
719 elm_tickernoti_detailview_button_set(Evas_Object *obj, Evas_Object *button)
721 _elm_tickernoti_button_set(obj, button);
726 * Get the button object used on the tickernoti object
728 * @param obj The tickernotil object
729 * @return The button object inside the tickernoti
730 * @deprecated use elm_object_content_part_get() instead with "button" as part name
732 * @ingroup TickerNoti
735 elm_tickernoti_detailview_button_get(const Evas_Object *obj)
737 return _elm_tickernoti_button_get(obj);
741 * Set the detail icon object used on the tickernoti object
743 * @param obj The tickernotil object
744 * @param icon The icon object will be used on the tickernoti object
745 * @deprecated use elm_object_content_part_set() instead with "icon" as part name
747 * @ingroup TickerNoti
750 elm_tickernoti_detailview_icon_set(Evas_Object *obj, Evas_Object *icon)
752 _elm_tickernoti_icon_set(obj, icon);
756 * Get the detail icon object used on the tickernoti object
758 * @param obj The tickernotil object
759 * @return The icon object inside the tickernoti
760 * @deprecated use elm_object_content_part_get() instead with "icon" as part name
762 * @ingroup TickerNoti
765 elm_tickernoti_detailview_icon_get(const Evas_Object *obj)
767 return _elm_tickernoti_icon_get(obj);
771 * Get the view mode on the tickernoti object
773 * @param obj The tickernotil object
774 * @return The view mode
775 * @deprecated removed as now styles are used instead
777 * @ingroup TickerNoti
779 EAPI Elm_Tickernoti_Mode
780 elm_tickernoti_mode_get(const Evas_Object *obj)
782 ELM_CHECK_WIDTYPE(obj, widtype) -1;
783 Widget_Data *wd = elm_widget_data_get(obj);
789 * Set the view mode used on the tickernoti object
791 * @param obj The tickernotil object
792 * @param mode The view mode will be used on the tickernoti object
793 * @deprecated removed as now styles are used instead
795 * @ingroup TickerNoti
798 elm_tickernoti_mode_set(Evas_Object *obj, Elm_Tickernoti_Mode mode)
800 ELM_CHECK_WIDTYPE(obj, widtype);
801 Widget_Data *wd = elm_widget_data_get(obj);
805 case ELM_TICKERNOTI_DEFAULT:
806 case ELM_TICKERNOTI_DETAILVIEW:
815 * Get the detail view window(elm_win) on the tickernoti object
817 * @param obj The tickernotil object
818 * @return detail view window(elm_win) object
819 * @ingroup TickerNoti
822 elm_tickernoti_detailview_get(const Evas_Object *obj)
824 return elm_tickernoti_win_get(obj);
828 * Set the orientation of the tickernoti object
830 * @param obj The tickernoti object
831 * @param orient The orientation of tickernoti object
832 * @deprecated use elm_tickernoti_orient_set() instead
834 * @ingroup TickerNoti
837 elm_tickernoti_orientation_set(Evas_Object *obj, Elm_Tickernoti_Orient orient)
839 elm_tickernoti_orient_set(obj, orient);
843 * Get the orientation of the tickernoti object
845 * @param obj The tickernotil object
846 * @return The orientation of tickernotil object
847 * @deprecated use elm_tickernoti_orient_get() instead
849 * @ingroup TickerNoti
851 EAPI Elm_Tickernoti_Orient
852 elm_tickernoti_orientation_get(const Evas_Object *obj)
854 return elm_tickernoti_orient_get(obj);
858 * Set the label on the tickernoti object
860 * @param obj The tickernoti object
861 * @param label The label will be used on the tickernoti object
862 * @deprecated use elm_object_text_get()
864 * @ingroup TickerNoti
867 elm_tickernoti_label_set(Evas_Object *obj, const char *label)
869 _elm_tickernoti_label_set(obj, NULL, label);
873 * Get the label used on the tickernoti object
875 * @param obj The tickernotil object
876 * @return The string inside the label
877 * @deprecated use elm_object_text_get() instead
879 * @ingroup TickerNoti
882 elm_tickernoti_label_get(const Evas_Object *obj)
884 return _elm_tickernoti_label_get(obj, NULL);
888 * Set the action button object used on the tickernoti object
890 * @param obj The tickernotil object
891 * @param button The button object will be used on the tickernoti object
892 * @deprecated use elm_object_content_part_set() instead with "button" as part name
894 * @ingroup TickerNoti
897 elm_tickernoti_button_set(Evas_Object *obj, Evas_Object *button)
899 _elm_tickernoti_button_set(obj, button);
903 * Get the action button object used on the tickernoti object
905 * @param obj The tickernotil object
906 * @return The button object inside the tickernoti
907 * @deprecated use elm_object_content_part_get() instead with "button" as part name
909 * @ingroup TickerNoti
912 elm_tickernoti_button_get(const Evas_Object *obj)
914 return _elm_tickernoti_button_get(obj);
918 * Set the icon object of the tickernoti object
920 * @param obj The tickernotil object
921 * @param icon The icon object will be used on the tickernoti object
922 * @deprecated use elm_object_content_part_set() instead with "icon" as part name
924 * @ingroup TickerNoti
927 elm_tickernoti_icon_set(Evas_Object *obj, Evas_Object *icon)
929 _elm_tickernoti_icon_set(obj, icon);
933 * Get the icon object of the tickernoti object
935 * @param obj The tickernotil object
936 * @return The icon object inside the tickernoti
937 * @deprecated use elm_object_content_part_get() instead with "icon" as part name
939 * @ingroup TickerNoti
942 elm_tickernoti_icon_get(const Evas_Object *obj)
944 return _elm_tickernoti_icon_get(obj);