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