summaryrefslogtreecommitdiff
path: root/src/lib/elementary/efl_ui_layout_base.eo
blob: aa616c777a84d288d4cb76cc70852c54b119ef77 (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
import efl_ui;

abstract Efl.Ui.Layout_Base extends Efl.Ui.Widget implements Efl.Container,
                     Efl.Ui.Factory_Bind,
                     Efl.Layout.Calc, Efl.Layout.Signal,
                     Efl.Layout.Group
{
   [[EFL layout widget abstract.

     A "layout" in the context of EFL is an object which interfaces with the internal layout engine.
     Layouts are created using the EDC language, and any widget which implements this abstract must
     have a corresponding theme group to load in order to graphically display anything.

     Theme groups for EFL widgets must be versioned. This means having a "version" $[data.item] key in
     the theme group for the widget. If the loaded theme group for a widget has version info which
     is lower than the currently-running EFL version, a warning will be printed to notify the user that
     new features may be available. If the loaded theme group for a widget has no version info, an
     error will be generated. If the loaded theme group for a widget has a version that is newer than
     the currently-running EFL version, a critical error will be printed to notify the user that
     the theme may not be compatible.

     @since 1.22
   ]]
   c_prefix: efl_ui_layout;
   data: Efl_Ui_Layout_Data;
   methods {
      @property finger_size_multiplier {
         [[Set a multiplier for applying finger size to the layout.

           By default, any widget which inherits from this class will apply
           the finger_size global config value with a 1:1 width:height ratio during sizing
           calculations. This will cause the widget to scale its size based on the finger_size
           config value.

           To disable finger_size in a layout's sizing calculations, set the multipliers for both
           axes to 0.

           @since 1.23
         ]]
         set {}
         get {}
         values {
            multiplier_x: uint; [[Multiplier for X axis.]]
            multiplier_y: uint; [[Multiplier for Y axis.]]
         }
      }
      @property theme {
         [[The theme of this widget, defines which edje group will be used.

           Based on the type of widget ($klass), a given $group and a
           $style (usually "default"), the edje group name will be formed
           for this object.

           Widgets that inherit from this class will call this function
           automatically so it should not be called by applications, unless
           you are dealing directly with a @Efl.Ui.Layout object.

           Note that $style will be the new style of this object, as retrieved by
           @Efl.Ui.Widget.style. As a consequence this function can only be
           called during construction of the object, before finalize.

           If this returns $false the widget is very likely to become non-functioning.
         ]]
         set {
            return: Eina.Error;
               [[Whether the theme was successfully applied or not, see
                 the Efl.Ui.Theme.Apply_Error subset of @Eina.Error for more information.]]
         }
         get {
         }
         values {
            klass: string; [[The class of the group, eg. "button".]]
            group: string("base"); [[The group, eg. "base".]]
            style: string("default"); [[The style to use, eg "default".]]
         }
      }
      @property automatic_theme_rotation @beta {
        [[This flag tells if this object will automatically mirror the rotation changes of the window to this object.
        ]]
        values {
           automatic : bool; [[$true to mirror orientation changes to the theme $false otherwise]]
        }
      }
      theme_rotation_apply  @beta {
        [[Apply a new rotation value to this object.]]
        params {
          orientation : int; [[The new rotation angle, in degrees.]]
        }
      }
   }
   implements {
      class.constructor;
      Efl.Object.constructor;
      Efl.Object.finalize;
      Efl.Object.invalidate;
      Efl.Canvas.Group.group_calculate;
      Efl.Layout.Calc.calc_freeze;
      Efl.Layout.Calc.calc_thaw;
      Efl.Layout.Calc.calc_auto_update_hints { get; set; }
      Efl.Layout.Calc.calc_size_min;
      Efl.Layout.Calc.calc_parts_extends;
      Efl.Layout.Calc.calc_force;
      Efl.Layout.Signal.signal_callback_add;
      Efl.Layout.Signal.signal_callback_del;
      Efl.Layout.Signal.signal_emit;
      Efl.Layout.Signal.message_send;
      Efl.Layout.Signal.signal_process;
      Efl.Layout.Group.group_data { get; }
      Efl.Layout.Group.group_size_min { get; }
      Efl.Layout.Group.group_size_max { get; }
      Efl.Layout.Group.part_exist { get; }
      Efl.Ui.Widget.widget_sub_object_add;
      Efl.Ui.Widget.theme_apply;
      Efl.Ui.Widget.disabled {set;}
      Efl.Ui.Widget.widget_sub_object_del;
      Efl.Ui.Focus.Object.on_focus_update;
      Efl.Container.content_count;
      Efl.Container.content_iterate;
      Efl.Part.part_get;
      Efl.Ui.Property_Bind.property_bind;
      Efl.Ui.Factory_Bind.factory_bind;
      Efl.Ui.L10n.l10n_text { get; set; }
      Efl.Ui.I18n.language { get; set; }
   }
   events {
      theme,changed: void; [[Called when theme changed]]
   }
}