summaryrefslogtreecommitdiff
path: root/src/lib/elementary/elm_dayselector_eo.h
blob: 02e3d6fd10736d1233ed01926e70d775e1a7cd89 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
#ifndef _ELM_DAYSELECTOR_EO_H_
#define _ELM_DAYSELECTOR_EO_H_

#ifndef _ELM_DAYSELECTOR_EO_CLASS_TYPE
#define _ELM_DAYSELECTOR_EO_CLASS_TYPE

typedef Eo Elm_Dayselector;

#endif

#ifndef _ELM_DAYSELECTOR_EO_TYPES
#define _ELM_DAYSELECTOR_EO_TYPES

/**
 * @brief Identifies the day of the week. API can call the
 * selection/unselection of day with this as a parameter.
 *
 * See also @ref elm_obj_dayselector_day_selected_set,
 * @ref elm_obj_dayselector_day_selected_get.
 *
 * @ingroup Elm_Dayselector
 */
typedef enum
{
  ELM_DAYSELECTOR_SUN = 0, /**< Indicates Sunday. */
  ELM_DAYSELECTOR_MON, /**< Indicates Monday. */
  ELM_DAYSELECTOR_TUE, /**< Indicates Tuesday. */
  ELM_DAYSELECTOR_WED, /**< Indicates Wednesday. */
  ELM_DAYSELECTOR_THU, /**< Indicates Thursday. */
  ELM_DAYSELECTOR_FRI, /**< Indicates Friday. */
  ELM_DAYSELECTOR_SAT, /**< Indicates Saturday. */
  ELM_DAYSELECTOR_MAX /**< Sentinel value to indicate last enum field during
                       * iteration */
} Elm_Dayselector_Day;


#endif
/** Elementary dayselector class
 *
 * @ingroup Elm_Dayselector
 */
#define ELM_DAYSELECTOR_CLASS elm_dayselector_class_get()

EWAPI const Efl_Class *elm_dayselector_class_get(void);

/**
 * @brief Set the starting day of Dayselector.
 *
 * See also @ref Elm_Dayselector_Day, @ref elm_obj_dayselector_week_start_get.
 *
 * @param[in] obj The object.
 * @param[in] day Dayselector_Day the first day that the user wants to display.
 *
 * @ingroup Elm_Dayselector
 */
EOAPI void elm_obj_dayselector_week_start_set(Eo *obj, Elm_Dayselector_Day day);

/**
 * @brief Get the starting day of Dayselector.
 *
 * See also @ref Elm_Dayselector_Day, @ref elm_obj_dayselector_week_start_set.
 *
 * @param[in] obj The object.
 *
 * @return Dayselector_Day the first day that the user wants to display.
 *
 * @ingroup Elm_Dayselector
 */
EOAPI Elm_Dayselector_Day elm_obj_dayselector_week_start_get(const Eo *obj);

/**
 * @brief Set the weekend length of Dayselector.
 *
 * See also @ref elm_obj_dayselector_weekend_length_get.
 *
 * @param[in] obj The object.
 * @param[in] length Weekend length, number of days as an integer.
 *
 * @ingroup Elm_Dayselector
 */
EOAPI void elm_obj_dayselector_weekend_length_set(Eo *obj, unsigned int length);

/**
 * @brief Get the weekend length of Dayselector.
 *
 * See also @ref Elm_Dayselector_Day,
 * @ref elm_obj_dayselector_weekend_length_set.
 *
 * @param[in] obj The object.
 *
 * @return Weekend length, number of days as an integer.
 *
 * @ingroup Elm_Dayselector
 */
EOAPI unsigned int elm_obj_dayselector_weekend_length_get(const Eo *obj);

/**
 * @brief Set the weekend starting day of Dayselector.
 *
 * See also @ref Elm_Dayselector_Day,
 * @ref elm_obj_dayselector_weekend_start_get.
 *
 * @param[in] obj The object.
 * @param[in] day Dayselector_Day the first day from where weekend starts.
 *
 * @ingroup Elm_Dayselector
 */
EOAPI void elm_obj_dayselector_weekend_start_set(Eo *obj, Elm_Dayselector_Day day);

/**
 * @brief Get the weekend starting day of Dayselector.
 *
 * See also @ref Elm_Dayselector_Day,
 * @ref elm_obj_dayselector_weekend_start_set.
 *
 * @param[in] obj The object.
 *
 * @return Dayselector_Day the first day from where weekend starts.
 *
 * @ingroup Elm_Dayselector
 */
EOAPI Elm_Dayselector_Day elm_obj_dayselector_weekend_start_get(const Eo *obj);

/**
 * @brief Set weekdays names to be displayed by the Dayselector.
 *
 * By default or if weekdays is @c null, weekdays abbreviations get from system
 * are displayed: E.g. for an en_US locale: "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
 *
 * The first string should be related to Sunday, the second to Monday...
 *
 * See also @ref elm_obj_dayselector_weekdays_names_get,
 * @ref elm_obj_dayselector_weekend_start_set.
 *
 * @param[in] obj The object.
 * @param[in] weekdays Array of seven strings to be used as weekday names.
 * Warning: It must have 7 elements, or it will access invalid memory. Warning:
 * The strings must be NULL terminated ('@\0').
 *
 * @since 1.8
 *
 * @ingroup Elm_Dayselector
 */
EOAPI void elm_obj_dayselector_weekdays_names_set(Eo *obj, const char **weekdays);

/**
 * @brief Get weekdays names displayed by the calendar.
 *
 * By default, weekdays abbreviations get from system are displayed: E.g. for
 * an en_US locale: "Sun, Mon, Tue, Wed, Thu, Fri, Sat" The first string is
 * related to Sunday, the second to Monday...
 *
 * See also @ref elm_obj_dayselector_weekdays_names_set.
 *
 * @param[in] obj The object.
 *
 * @return A list of seven strings to be used as weekday names.
 *
 * @since 1.8
 *
 * @ingroup Elm_Dayselector
 */
EOAPI Eina_List *elm_obj_dayselector_weekdays_names_get(const Eo *obj) EINA_WARN_UNUSED_RESULT;

/**
 * @brief Set the state of given Dayselector_Day.
 *
 * See also @ref Elm_Dayselector_Day,
 * @ref elm_obj_dayselector_day_selected_get.
 *
 * @param[in] obj The object.
 * @param[in] day Dayselector_Day that the user want to set state.
 * @param[in] selected State of the day. @c true is selected.
 *
 * @ingroup Elm_Dayselector
 */
EOAPI void elm_obj_dayselector_day_selected_set(Eo *obj, Elm_Dayselector_Day day, Eina_Bool selected);

/**
 * @brief Get the state of given Dayselector_Day.
 *
 * See also @ref Elm_Dayselector_Day,
 * @ref elm_obj_dayselector_day_selected_set.
 *
 * @param[in] obj The object.
 * @param[in] day Dayselector_Day that the user want to know state.
 *
 * @return @c true on success, @c false on failure
 *
 * @ingroup Elm_Dayselector
 */
EOAPI Eina_Bool elm_obj_dayselector_day_selected_get(const Eo *obj, Elm_Dayselector_Day day);

#endif