Access, entry: even after entry is hidden, able to click on anchor issue fix
[platform/upstream/elementary.git] / src / lib / elm_widget_player.h
1 #ifndef ELM_WIDGET_PLAYER_H
2 #define ELM_WIDGET_PLAYER_H
3
4 #include "Elementary.h"
5
6 /* DO NOT USE THIS HEADER UNLESS YOU ARE PREPARED FOR BREAKING OF YOUR
7  * CODE. THIS IS ELEMENTARY'S INTERNAL WIDGET API (for now) AND IS NOT
8  * FINAL. CALL elm_widget_api_check(ELM_INTERNAL_API_VERSION) TO CHECK
9  * IT AT RUNTIME.
10  */
11
12 /**
13  * @internal
14  * @addtogroup Widget
15  * @{
16  *
17  * @section elm-player-class The Elementary Player Class
18  *
19  * Elementary, besides having the @ref Player widget, exposes its
20  * foundation -- the Elementary Player Class -- in order to create other
21  * widgets which are a player with some more logic on top.
22  */
23
24 /**
25  * Base layout smart data extended with player instance data.
26  */
27 typedef struct _Elm_Player_Data Elm_Player_Data;
28 struct _Elm_Player_Data
29 {
30    Evas_Object          *video;
31    Evas_Object          *emotion;
32
33    /* tracking those to ease disabling/enabling them back */
34    Evas_Object          *forward;
35    Evas_Object          *info;
36    Evas_Object          *next;
37    Evas_Object          *pause;
38    Evas_Object          *play;
39    Evas_Object          *prev;
40    Evas_Object          *rewind;
41    Evas_Object          *stop;
42    Evas_Object          *eject;
43    Evas_Object          *volume;
44    Evas_Object          *mute;
45    Evas_Object          *slider;
46    Evas_Object          *vslider;
47
48    Eina_Bool             dragging : 1;
49 };
50
51 /**
52  * @}
53  */
54
55 #define ELM_PLAYER_DATA_GET(o, sd) \
56   Elm_Player_Data * sd = eo_data_scope_get(o, ELM_PLAYER_CLASS)
57
58 #define ELM_PLAYER_DATA_GET_OR_RETURN(o, ptr)        \
59   ELM_PLAYER_DATA_GET(o, ptr);                       \
60   if (EINA_UNLIKELY(!ptr))                           \
61     {                                                \
62        CRI("No widget data for object %p (%s)",      \
63            o, evas_object_type_get(o));              \
64        return;                                       \
65     }
66
67 #define ELM_PLAYER_DATA_GET_OR_RETURN_VAL(o, ptr, val) \
68   ELM_PLAYER_DATA_GET(o, ptr);                         \
69   if (EINA_UNLIKELY(!ptr))                             \
70     {                                                  \
71        CRI("No widget data for object %p (%s)",        \
72            o, evas_object_type_get(o));                \
73        return val;                                     \
74     }
75
76 #define ELM_PLAYER_CHECK(obj)                              \
77   if (EINA_UNLIKELY(!eo_isa((obj), ELM_PLAYER_CLASS))) \
78     return
79
80 #endif