summaryrefslogtreecommitdiff
path: root/src/lib/elm_object.h
blob: 546dfcd4b1a1d101e1ab647ab8bc567344dcc2bf (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
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
/**
 * @brief Sets the text of an object.
 *
 * @since_tizen 2.3
 *
 * @remarks Elementary objects may have many text parts (e.g. Action Slider).
 *
 * @param[in] obj The Elementary object
 * @param[in] part The text part name to set (@c NULL for the default part)
 * @param[in] text The new text of the part
 *
 * @ingroup General
 */
EAPI void                         elm_object_part_text_set(Evas_Object *obj, const char *part, const char *text);

/**
 * @def elm_object_text_set
 * @brief Convenient macro for elm_object_part_text_set
 *
 * @since_tizen 2.3
 *
 * @see elm_object_part_text_set
 * @ingroup General
 */
#define elm_object_text_set(obj, text) elm_object_part_text_set((obj), NULL, (text))

/**
 * @brief Gets the text of an object.
 *
 * @since_tizen 2.3
 *
 * @remarks Elementary objects may have many text parts (e.g. Action Slider).
 *
 * @param[in] obj The Elementary object
 * @param[in] part The text part name to get (@c NULL for the default part)
 * @return The text of the part, otherwise @c NULL for any error
 *
 * @ingroup General
 */
EAPI const char                  *elm_object_part_text_get(const Evas_Object *obj, const char *part);

/**
 * @def elm_object_text_get
 * @brief Convenient macro for elm_object_part_text_get
 *
 * @since_tizen 2.3
 *
 * @see elm_object_part_text_get
 * @ingroup General
 */
#define elm_object_text_get(obj) elm_object_part_text_get((obj), NULL)

/**
 * @brief Sets the text for an object's part, marking it translatable.
 *
 * @since 1.8
 *
 * @since_tizen 2.3
 *
 * @remarks The string to set as @a text must be the original one. Do not pass the
 *          return of gettext() here. Elementary translates the string
 *          internally and sets it on the object using elm_object_part_text_set(),
 *          also stores the original string so that it can be automatically
 *          translated when the language is changed with elm_language_set().
 *
 * @remarks The @a domain is also stored to find the translation in the
 *          correct catalog. It can be @c NULL, in which case it uses whatever
 *          domain is set by the application with textdomain(). This is useful
 *          in case you are building a library on top of Elementary that has
 *          its own translatable strings, that should not be mixed with those of
 *          programs using the library.
 *
 * @param[in] obj The object containing the text part
 * @param[in] part The name of the part to set
 * @param[in] domain The translation domain to use
 * @param[in] text The original, non-translated text to set
 *
 * @ingroup General
 */
EAPI void      elm_object_domain_translatable_part_text_set(Evas_Object *obj, const char *part, const char *domain, const char *text);

/**
 * @def elm_object_domain_translatable_text_set
 * @brief Convenient macro for elm_object_domain_translatable_part_text_set.
 *
 * @since_tizen 2.3
 *
 * @see elm_object_domain_translatable_part_text_set
 * @ingroup General
 */
#define elm_object_domain_translatable_text_set(obj, domain, text) elm_object_domain_translatable_part_text_set((obj), NULL, (domain), (text))

/**
 * @def  elm_object_translatable_text_set
 * @brief Convenient macro for  elm_object_domain_translatable_part_text_set
 *
 * @since_tizen 2.3
 *
 * @see elm_object_domain_translatable_part_text_set
 * @ingroup General
 */
#define elm_object_translatable_text_set(obj, text)                elm_object_domain_translatable_part_text_set((obj), NULL, NULL, (text))

/**
 * @def  elm_object_translatable_part_text_set
 * @brief Convenient macro for  elm_object_domain_translatable_part_text_set
 *
 * @since_tizen 2.3
 *
 * @see elm_object_domain_translatable_part_text_set
 * @ingroup General
 */
#define elm_object_translatable_part_text_set(obj, part, text)     elm_object_domain_translatable_part_text_set((obj), (part), NULL, (text))

/**
 * @brief Gets the original string set as translatable for an object.
 *
 * @since 1.8
 *
 * @since_tizen 2.3
 *
 * @remarks When setting translated strings, the function elm_object_part_text_get()
 *          returns the translation returned by gettext(). To get the
 *          original string use this function.
 *
 * @param[in] obj The object
 * @param[in] part The name of the part that is set
 *
 * @return The original, untranslated string
 *
 * @see elm_object_translatable_part_text_set()
 *
 * @ingroup General
 */
EAPI const char *elm_object_translatable_part_text_get(const Evas_Object *obj, const char *part);

/**
 * @def elm_object_translatable_text_get
 * @brief Convenient macro for elm_object_translatable_part_text_get
 *
 * @since_tizen 2.3
 *
 * @see elm_object_translatable_part_text_get
 * @ingroup General
 */
#define elm_object_translatable_text_get(obj) elm_object_translatable_part_text_get((obj), NULL)

/**
 * @brief Marks the part text to be transltable.
 *
 * @since 1.8
 *
 * @since_tizen 2.3
 *
 * @remarks Once you mark the part text to be translatable, the text is translated
 *          internally regardless of elm_object_part_text_set() and
 *          elm_object_domain_translatable_part_text_set(). In other cases, if you set the
 *          Elementary policy that all text should be translatable by default, you can set
 *          the part text to not be translated by calling this API.
 *
 * @param[in] obj The object containing the text part
 * @param[in] part The part name of the translatable text
 * @param[in] domain The translation domain to use
 * @param[in] translatable If @c EINA_TRUE the part text is translated internally, otherwise @c EINA_FALSE
 *
 * @see elm_object_domain_part_text_translatable_set()
 * @see elm_object_part_text_set()
 * @see elm_policy()
 *
 * @ingroup General
 */
EAPI void elm_object_domain_part_text_translatable_set(Evas_Object *obj, const char *part, const char *domain, Eina_Bool translatable);

/**
 * @def elm_object_part_text_translatable_set
 * @brief Convenient macro for elm_object_domain_part_text_translatable_set
 *
 * @since_tizen 2.3
 *
 * @see elm_object_domain_part_text_translatable_set
 * @ingroup General
 */
#define elm_object_part_text_translatable_set(obj, part, translatable) elm_object_domain_part_text_translatable_set((obj), (part), NULL, (translatable))

/**
 * @def elm_object_domain_text_translatable_set
 * @brief Convenient macro for elm_object_domain_part_text_translatable_set
 *
 * @since_tizen 2.3
 *
 * @see elm_object_domain_part_text_translatable_set
 * @ingroup General
 */
#define elm_object_domain_text_translatable_set(obj, domain, translatable) elm_object_domain_part_text_translatable_set((obj), NULL, (domain), (translatable))


/**
 * @brief Sets the content at a part of a given container widget.
 *
 * @since_tizen 2.3
 *
 * @remarks All widgets deriving from elm-container-class may hold
 *          child objects as content at given parts.  This sets new content to
 *          a given part. If any object is already set as a content object in
 *          the same part, the previous object is deleted automatically
 *          with this call. If you wish to preserve it, issue
 *          elm_object_part_content_unset() on it first.
 *
 * @param[in] obj The Elementary container widget
 * @param[in] part The container's part name to set (some might accept
 *             @c NULL for the default part)
 * @param[in] content The new content for that part
 *
 * @see elm_object_part_content_set()
 *
 * @ingroup General
 */
EAPI void                         elm_object_part_content_set(Evas_Object *obj, const char *part, Evas_Object *content);

/**
 * @def elm_object_content_set
 * @brief Convenient macro for elm_object_part_content_set
 *
 * @since_tizen 2.3
 *
 * @see elm_object_part_content_set
 * @ingroup General
 */
#define elm_object_content_set(obj, content) elm_object_part_content_set((obj), NULL, (content))

/**
 * @brief Gets the content at a part of a given container widget.
 *
 * @since_tizen 2.3
 *
 * @param[in] obj The Elementary container widget
 * @param[in] part The container's part name to get (some might accept
 *             @c NULL for the default part)
 * @return The content of the object at the given part, otherwise @c NULL in case of an error
 *
 * @see elm_object_part_content_set()
 *
 * @ingroup General
 */
EAPI Evas_Object                 *elm_object_part_content_get(const Evas_Object *obj, const char *part);

/**
 * @def elm_object_content_get
 * @brief Convenient macro for elm_object_part_content_get
 *
 * @since_tizen 2.3
 *
 * @see elm_object_part_content_get
 * @ingroup General
 */
#define elm_object_content_get(obj) elm_object_part_content_get((obj), NULL)

/**
 * @brief Unsets the content at a part of a given container widget.
 *
 * @since_tizen 2.3
 *
 * @param[in] obj The Elementary container widget
 * @param[in] part The container's part name to unset (some might accept
 *             @c NULL for the default part)
 * @return The content of the object at the given part, otherwise @c NULL in case of an error
 *
 * @see elm_object_part_content_set()
 *
 * @ingroup General
 */
EAPI Evas_Object                 *elm_object_part_content_unset(Evas_Object *obj, const char *part);

/**
 * @def elm_object_content_unset
 * @brief Convenient macro for elm_object_part_content_unset
 *
 * @since_tizen 2.3
 *
 * @see elm_object_part_content_unset
 * @ingroup General
 */
#define elm_object_content_unset(obj) elm_object_part_content_unset((obj), NULL)

/**
 * @internal
 * @remarks Tizen only feature
 *
 * @brief Registers a part of an object as an access object.
 * @since 1.8
 *
 * @param obj The Elementary object
 * @param part The object's part name to register
 *
 * @ingroup General
 */
EAPI Evas_Object *                elm_object_part_access_register(Evas_Object *obj, const char *part);

/**
 * @internal
 * @remarks Tizen only feature
 *
 * @brief Get the access object which is registered to part
 * @since 1.8
 *
 * @param obj The Elementary object
 * @param part The object's part name to get access object
 *
 * @ingroup General
 */
EAPI Evas_Object *                elm_object_part_access_object_get(const Evas_Object *obj, const char *part);


/**
 * @brief Sets the text to read out when in the accessibility mode.
 *
 * @since_tizen 2.3
 *
 * @param[in] obj The object which is to be described
 * @param[in] txt The text that describes the widget to people with poor or no vision
 *
 * @ingroup General
 */
EAPI void                         elm_object_access_info_set(Evas_Object *obj, const char *txt);

/**
 * @brief Gets a named object from the children.
 *
 * @details This function searches the children (or recursively children of
 *          children and so on) of the given @a obj object looking for a child with
 *          the name of @a name. If the child is found the object is returned, or
 *          @c NULL is returned. You can set the name of an object with
 *          evas_object_name_set(). If the name is not unique within the child
 *          objects (or the tree is @a recurse or is greater than @c 0) then it is
 *          undefined as to which child of that name is returned, so ensure that the name
 *          is unique amongst children. If recurse is set to @c -1 it recurses
 *          without limit.
 *
 * @since_tizen 2.3
 *
 * @param[in] obj The parent object whose children to look at
 * @param[in] name The name of the child to find
 * @param[in] recurse Set to the maximum number of levels to recurse (@c 0 == none, @c 1 is only to look at one level of children and so on)
 * @return The found object of that name, otherwise @c NULL if none are found
 *
 * @ingroup General
 */
EAPI Evas_Object                 *elm_object_name_find(const Evas_Object *obj, const char *name, int recurse);

/**
 * @defgroup Styles Styles
 * @ingroup elm_infra_group
 *
 * @brief Widgets can have different visual styles. These generic API
 *        set styles of widgets, they support them (and the theme(s)
 *        do).
 *
 * @{
 */

/**
 * @brief Sets the style to be used by a given widget.
 *
 * @details This sets the style (by name) that defines the appearance of a
 *          widget. Styles vary from widget to widget and may also be defined
 *          by other themes by means of extensions and overlays.
 *
 * @since_tizen 2.3
 *
 * @param[in] obj The Elementary widget to style
 * @param[in] style The name of the style to use on it
 * @return @c EINA_TRUE on success, otherwise @c EINA_FALSE
 *
 * @see elm_theme_extension_add()
 * @see elm_theme_extension_del()
 * @see elm_theme_overlay_add()
 * @see elm_theme_overlay_del()
 */
EAPI Eina_Bool    elm_object_style_set(Evas_Object *obj, const char *style);

/**
 * @brief Gets the style used by the widget.
 *
 * @details This gets the style being used for that widget. Note that the string
 *          pointer is only valid as long as the object is valid and the style doesn't
 *          change.
 *
 * @since_tizen 2.3
 *
 * @param[in] obj The Elementary widget to query for its style
 * @return The style name used
 *
 * @see elm_object_style_set()
 */
EAPI const char  *elm_object_style_get(const Evas_Object *obj);

/**
 * @}
 */

/**
 * @brief Sets the disabled state of an Elementary object.
 *
 * @since_tizen 2.3
 *
 * @remarks Elementary objects can be @b disabled, in which state they won't
 *          receive input and, in general, get themed differently from
 *          their normal state, usually greyed out. Useful for contexts
 *          where you don't want your users to interact with some of the
 *          parts of your interface.
 *
 * @remarks This sets the state for the widget, either disabling it or
 *          enabling it back.
 *
 * @param[in] obj The Elementary object to operate on
 * @param[in] disabled If @c EINA_TRUE that state is disabled,
 *                 otherwise @c EINA_FALSE if it is enabled
 * @ingroup General
 */
EAPI void         elm_object_disabled_set(Evas_Object *obj, Eina_Bool disabled);

/**
 * @brief Gets the disabled state of an Elementary object.
 *
 * @details This gets the state of the widget, which might be enabled or disabled.
 *
 * @since_tizen 2.3
 *
 * @param[in] obj The Elementary object to operate on
 * @return @c EINA_TRUE if the widget is disabled, otherwise @c EINA_FALSE
 *         if it's enabled (or on errors)
 * @ingroup General
 */
EAPI Eina_Bool    elm_object_disabled_get(const Evas_Object *obj);

/**
 * @defgroup WidgetNavigation Widget Tree Navigation
 * @ingroup elm_infra_group
 *
 * @brief These functions provide checks on whether a Evas_Object is an Elementary widget,
 *        the possibility of getting a widget's parent, top level parent, and getting a
 *        string representation of a widget's type.
 *
 * @{
 */

/**
 * @brief Checks whether the given Evas Object is an Elementary widget.
 *
 * @since_tizen 2.3
 *
 * @param[in] obj The object to query
 * @return @c EINA_TRUE if it is an elementary widget variant,
 *         otherwise @c EINA_FALSE
 */
EAPI Eina_Bool    elm_object_widget_check(const Evas_Object *obj);

/**
 * @brief Gets the first parent of the given object that is an Elementary
 *        widget.
 *
 * @since_tizen 2.3
 *
 * @remarks Use this to query an object's parent widget.
 *
 * @remarks Most of the Elementary users don't mix non-Elementary
 *          smart objects in the objects tree of an application, as this is
 *          an advanced usage of Elementary with Evas. So, except for the
 *          application's window, which is the root of that tree, all other
 *          objects have valid Elementary widget parents.
 *
 * @param[in] obj The Elementary object to query the parent from
 * @return The parent object that is an Elementary widget,
 *         otherwise @c NULL if it is not found
 */
EAPI Evas_Object *elm_object_parent_widget_get(const Evas_Object *obj);

/**
 * @brief Gets the top level parent of an Elementary widget.
 *
 * @since_tizen 2.3
 *
 * @param[in] obj The object to query
 * @return The top level Elementary widget, otherwise @c NULL if the parent cannot be found
 */
EAPI Evas_Object *elm_object_top_widget_get(const Evas_Object *obj);

/**
 * @brief Gets the string that represents this Elementary widget.
 *
 * @since_tizen 2.3
 *
 * @remarks Elementary is weird and exposes itself as a single
 *          Evas_Object_Smart_Class of type "elm_widget", so
 *          evas_object_type_get() always returns that, making debug and
 *          language bindings hard. This function tries to mitigate this
 *          problem, but the solution is to change Elementary to use
 *          proper inheritance.
 *
 * @param[in] obj The object to query
 * @return The Elementary widget name, otherwise @c NULL if it is not a valid widget
 */
EAPI const char  *elm_object_widget_type_get(const Evas_Object *obj);

/**
 * @}
 */

/**
 * @brief Sends a signal to the widget edje object.
 *
 * @details This function sends a signal to the edje object of the @a obj. An
 *          edje program can respond to a signal by specifying matching
 *          'signal' and 'source' fields.
 *
 * @since_tizen 2.3
 *
 * @param[in] obj The object
 * @param[in] emission The signal name
 * @param[in] source The signal source
 * @ingroup General
 */
EAPI void         elm_object_signal_emit(Evas_Object *obj, const char *emission, const char *source);

/**
 * @brief Adds a callback for a signal emitted by the widget edje object.
 *
 * @details This function connects a callback function to a signal emitted by the
 *          edje object of the @a obj.
 *          Globs can occur in either the emission or source name.
 *
 * @since_tizen 2.3
 *
 * @param[in] obj The object
 * @param[in] emission The signal name
 * @param[in] source The signal source
 * @param[in] func The callback function to be executed when the signal is emitted
 * @param[in] data A pointer to the data to pass to the callback function
 * @ingroup General
 */
EAPI void         elm_object_signal_callback_add(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func, void *data);

/**
 * @brief Removes a signal-triggered callback from a widget edje object.
 *
 * @details This function removes the @b last callback, previously attached to
 *          a signal emitted by an underlying Edje object of @a obj, whose
 *          parameters @a emission, @a source, and @c func match exactly with
 *          those passed to a previous call to
 *          elm_object_signal_callback_add(). The data pointer that is passed
 *          to this call is returned.
 *
 * @since_tizen 2.3
 *
 * @param[in] obj The object handle
 * @param[in] emission The signal name
 * @param[in] source The signal source
 * @param[in] func The callback function to be executed when the signal is emitted
 * @return The data pointer of the signal callback, otherwise @c NULL in case of an error
 *
 * @ingroup General
 */
EAPI void        *elm_object_signal_callback_del(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func);

/**
 * @brief Adds a callback for input events (key up, key down, mouse wheel)
 *        on a given Elementary widget.
 *
 * @since_tizen 2.3
 *
 * @remarks Every widget in an Elementary interface is set to receive focus,
 *          with elm_object_focus_allow_set(), propagate @b all of its
 *          key up, key down, and mouse wheel input events up to its parent
 *          object, and so on. All of the focusable ones in this chain that
 *          had an event callback set, with this call, are able to treat
 *          those events. There are two ways of making the propagation of
 *          these event upwards in the tree of widgets to @b cease:
 *          - Just return @c EINA_TRUE on @a func. @c EINA_FALSE means that
 *            the event is @b not processed, so the propagation goes on.
 *          - The @a event_info pointer passed to @p func contains the
 *            event's structure and, if you OR its @a event_flags inner
 *            value to @c EVAS_EVENT_FLAG_ON_HOLD, you're telling Elementary
 *            has already handled it, thus killing the event's
 *            propagation.
 *
 * @remarks Your event callback is issued on those events taking
 *          place only if no other child widget of @a obj has consumed the
 *          event already.
 *
 * @remarks Not to be confused with
 *          evas_object_event_callback_add(), which adds event callbacks
 *          per type on general Evas objects (no event propagation
 *          infrastructure taken into account).
 *
 * @remarks Not to be confused with
 *          elm_object_signal_callback_add(), which adds callbacks to @b
 *          signals coming from a widget's theme, not input events.
 *
 * @remarks Not to be confused with
 *          edje_object_signal_callback_add(), which does the same as
 *          elm_object_signal_callback_add(), but directly on an Edje
 *          object.
 *
 * @remarks Not to be confused with
 *          evas_object_smart_callback_add(), which adds callbacks to smart
 *          objects' <b>smart events</b>, and not input events.
 *
 * @param[in] obj The widget to add an event callback on
 * @param[in] func The callback function to be executed when the event
 *             happens
 * @param[in] data The data to pass into @a func
 *
 * @see elm_object_event_callback_del()
 *
 * @ingroup General
 */
EAPI void         elm_object_event_callback_add(Evas_Object *obj, Elm_Event_Cb func, const void *data);

/**
 * @brief Removes an event callback from a widget.
 *
 * @details This function removes a callback, previously attached to the event emission
 *          by the @a obj.
 *          The parameters @a func and @a data must match exactly those passed to
 *          a previous call to elm_object_event_callback_add(). The data pointer that
 *          is passed to this call is returned.
 *
 * @since_tizen 2.3
 *
 * @param[in] obj The object
 * @param[in] func The callback function to be executed when the event is
 *             emitted
 * @param[in] data The data to pass to the callback function
 * @return A data pointer
 * @ingroup General
 */
EAPI void        *elm_object_event_callback_del(Evas_Object *obj, Elm_Event_Cb func, const void *data);

/**
 * @brief Disables the orientation mode of a given widget.
 *
 * @since 1.8
 *
 * @since_tizen 2.3
 *
 * @remarks Orientation mode is used for widgets to change their styles or to send signals
 *          whenever its window degree is changed. If the orientation mode is enabled
 *          and the widget has different looks and styles for the window degree(0, 90,
 *          180, 270), it applies a style that is readied for the current degree,
 *          otherwise, it sends signals to its own edje to change its states if
 *          the style is not readied.
 *
 * @param[in] obj The Elementary object to operate in the orientation mode
 * @param[in] disabled If @c EINA_TRUE the state is disabled,
 *                 otherwise @c EINA_FALSE if it is enabled
 *
 * @ingroup General
 */
EAPI void        elm_object_orientation_mode_disabled_set(Evas_Object *obj, Eina_Bool disabled);

/**
 * @brief Gets the orientation mode of a given widget.
 *
 * @since 1.8
 *
 * @since_tizen 2.3
 *
 * @param[in] obj The Elementary widget to query for its orientation mode
 * @return @c EINA_TRUE, if the orientation mode is disabled, otherwise @c EINA_FALSE
 *         if the orientation mode is enabled (or on errors)
 *
 * @see elm_object_orientation_mode_disabled_set()
 *
 * @ingroup General
 */
EAPI Eina_Bool   elm_object_orientation_mode_disabled_get(const Evas_Object *obj);

/**
 * @internal
 * @remarks Tizen only feature 2013.12.08
 *
 * @brief If show_region_repeat_disabled is set,
 *        do not call on_show_region of the parent object.
 *
 * Need Documents
 *
 * @ingroup General
 */
EAPI void        elm_object_show_region_repeat_disabled_set(Evas_Object *obj, Eina_Bool disabled);

/**
 * @internal
 * @remarks Tizen only feature 2013.12.08
 *
 * @brief If show_region_repeat_disabled is set,
 *        do not call on_show_region of the parent object.
 *
 * Need Documents
 *
 * @ingroup General
 */
EAPI Eina_Bool   elm_object_show_region_repeat_disabled_get(Evas_Object *obj);