1abstract Efl.Ui.Layout_Base extends Efl.Ui.Widget implements Efl.Container,
2                     Efl.Ui.Factory_Bind,
3                     Efl.Layout.Calc, Efl.Layout.Signal,
4                     Efl.Layout.Group
5{
6   [[EFL layout widget abstract.
7
8     A "layout" in the context of EFL is an object which interfaces with the internal layout engine.
9     Layouts are created using the EDC language, and any widget which implements this abstract must
10     have a corresponding theme group to load in order to graphically display anything.
11
12     Theme groups for EFL widgets must be versioned. This means having a "version" $[data.item] key in
13     the theme group for the widget. If the loaded theme group for a widget has version info which
14     is lower than the currently-running EFL version, a warning will be printed to notify the user that
15     new features may be available. If the loaded theme group for a widget has no version info, an
16     error will be generated. If the loaded theme group for a widget has a version that is newer than
17     the currently-running EFL version, a critical error will be printed to notify the user that
18     the theme may not be compatible.
19
20     @since 1.22
21   ]]
22   c_prefix: efl_ui_layout;
23   data: Efl_Ui_Layout_Data;
24   methods {
25      @property finger_size_multiplier {
26         [[Set a multiplier for applying finger size to the layout.
27
28           By default, any widget which inherits from this class will apply
29           the finger_size global config value with a 1:1 width:height ratio during sizing
30           calculations. This will cause the widget to scale its size based on the finger_size
31           config value.
32
33           To disable finger_size in a layout's sizing calculations, set the multipliers for both
34           axes to 0.
35
36           @since 1.23
37         ]]
38         set {}
39         get {}
40         values {
41            multiplier_x: uint; [[Multiplier for X axis.]]
42            multiplier_y: uint; [[Multiplier for Y axis.]]
43         }
44      }
45      @property theme {
46         [[The theme of this widget, defines which edje group will be used.
47
48           Based on the type of widget ($klass), a given $group and a
49           $style (usually "default"), the edje group name will be formed
50           for this object.
51
52           Widgets that inherit from this class will call this function
53           automatically so it should not be called by applications, unless
54           you are dealing directly with a @Efl.Ui.Layout object.
55
56           Note that $style will be the new style of this object, as retrieved by
57           @Efl.Ui.Widget.style. As a consequence this function can only be
58           called during construction of the object, before finalize.
59
60           If this returns $false the widget is very likely to become non-functioning.
61         ]]
62         set {
63            return: Eina.Error;
64               [[Whether the theme was successfully applied or not, see
65                 the Efl.Ui.Theme.Apply_Error subset of @Eina.Error for more information.]]
66         }
67         get {
68         }
69         values {
70            klass: string; [[The class of the group, eg. "button".]]
71            group: string("base"); [[The group, eg. "base".]]
72            style: string("default"); [[The style to use, eg "default".]]
73         }
74      }
75      @property automatic_theme_rotation @beta {
76        [[This flag tells if this object will automatically mirror the rotation changes of the window to this object.
77        ]]
78        values {
79           automatic : bool; [[$true to mirror orientation changes to the theme $false otherwise]]
80        }
81      }
82      theme_rotation_apply  @beta {
83        [[Apply a new rotation value to this object.]]
84        params {
85          orientation : int; [[The new rotation angle, in degrees.]]
86        }
87      }
88      @property theme_version {
89        [[The version a theme does offer
90
91          A theme might offer older theme versions, with this property you can detect which version is running. The theme version is bound to the efl-version, the oldest version you will get here is 123. The newest of released EFL.
92
93          This property is only valid after @Efl.Ui.Widget.theme_apply has been called.
94
95          In case there is no version specified, 0 is returned.
96        ]]
97        get {
98
99        }
100        values {
101          version : int; [[Theme version of this objec, for a EFL version called 1.23, this property will return 123.]]
102        }
103      }
104   }
105   implements {
106      class.constructor;
107      Efl.Object.constructor;
108      Efl.Object.finalize;
109      Efl.Object.invalidate;
110      Efl.Canvas.Group.group_calculate;
111      Efl.Canvas.Group.group_change;
112      Efl.Layout.Calc.calc_freeze;
113      Efl.Layout.Calc.calc_thaw;
114      Efl.Layout.Calc.calc_auto_update_hints { get; set; }
115      Efl.Layout.Calc.calc_size_min;
116      Efl.Layout.Calc.calc_parts_extends;
117      Efl.Layout.Calc.calc_force;
118      Efl.Layout.Signal.signal_callback_add;
119      Efl.Layout.Signal.signal_callback_del;
120      Efl.Layout.Signal.signal_emit;
121      Efl.Layout.Signal.message_send;
122      Efl.Layout.Signal.signal_process;
123      Efl.Layout.Group.group_data { get; }
124      Efl.Layout.Group.group_size_min { get; }
125      Efl.Layout.Group.group_size_max { get; }
126      Efl.Layout.Group.part_exist { get; }
127      Efl.Ui.Widget.widget_sub_object_add;
128      Efl.Ui.Widget.theme_apply;
129      Efl.Ui.Widget.disabled {set;}
130      Efl.Ui.Widget.widget_sub_object_del;
131      Efl.Ui.Focus.Object.on_focus_update;
132      Efl.Container.content_count;
133      Efl.Container.content_iterate;
134      Efl.Part.part_get;
135      Efl.Ui.Property_Bind.property_bind;
136      Efl.Ui.Factory_Bind.factory_bind;
137      Efl.Ui.L10n.l10n_text { get; set; }
138      Efl.Ui.I18n.language { get; set; }
139   }
140   events {
141      theme,changed: void; [[Called when theme changed]]
142   }
143}
144