2017-08-31 08:35:04 -07:00
|
|
|
function Efl.Ui.Scrollable_On_Show_Region {
|
|
|
|
[[Function pointer for on show region hook]]
|
2017-08-21 23:16:54 -07:00
|
|
|
params {
|
2017-08-31 08:35:04 -07:00
|
|
|
@in obj: Efl.Canvas.Object; [[Canvas object]]
|
2017-09-13 19:59:44 -07:00
|
|
|
@in region: Eina.Rect; [[Showed region]]
|
2017-08-21 23:16:54 -07:00
|
|
|
}
|
|
|
|
};
|
2016-04-19 08:07:55 -07:00
|
|
|
|
2017-12-11 19:01:46 -08:00
|
|
|
struct Efl.Ui.Widget.Focus_State {
|
2017-09-02 10:08:18 -07:00
|
|
|
[[All relevant fields needed for the current state of focus registeration]]
|
|
|
|
manager : Efl.Ui.Focus.Manager; [[The manager where the widget is registered in]]
|
|
|
|
parent : Efl.Ui.Focus.User; [[The parent the widget is using as logical parent]]
|
|
|
|
logical : bool; [[$true if this is registered as logical currently]]
|
|
|
|
}
|
|
|
|
|
2017-10-23 22:29:16 -07:00
|
|
|
/* ATTENTION: Rename to Efl.Ui.Widget is imminent. */
|
2018-01-07 20:55:35 -08:00
|
|
|
abstract Efl.Ui.Widget (Efl.Canvas.Group, Efl.Access,
|
|
|
|
Efl.Access.Component, Efl.Ui.Focus.User, Efl.Part,
|
|
|
|
Efl.Ui.Focus.Object, Efl.Ui.Base, Efl.Ui.Cursor,
|
2018-01-08 23:22:49 -08:00
|
|
|
Efl.Ui.Translatable, Efl.Selection, Efl.Ui.Dnd)
|
2014-03-14 02:13:29 -07:00
|
|
|
{
|
2018-01-13 16:21:35 -08:00
|
|
|
[[Efl UI widget abstract class]]
|
2016-05-12 09:06:04 -07:00
|
|
|
legacy_prefix: elm_widget;
|
2018-01-07 20:55:35 -08:00
|
|
|
//eo_prefix: efl_ui_widget;
|
2017-10-23 22:29:16 -07:00
|
|
|
event_prefix: efl_ui_widget;
|
|
|
|
data: Efl_Ui_Widget_Data;
|
2015-05-07 09:32:53 -07:00
|
|
|
methods {
|
2017-08-08 04:37:41 -07:00
|
|
|
@property resize_object @protected {
|
|
|
|
[[This is the internal canvas object managed by a widget.
|
|
|
|
|
|
|
|
This property is protected as it is meant for widget implementations
|
|
|
|
only, to set and access the internal canvas object. Do use this
|
|
|
|
function unless you're implementing a widget.
|
|
|
|
]]
|
|
|
|
set {
|
|
|
|
[[Sets the new resize object for this widget.]]
|
|
|
|
}
|
|
|
|
values {
|
|
|
|
sobj: Efl.Canvas.Object @nullable;
|
2017-12-12 09:50:13 -08:00
|
|
|
[[A canvas object (often a @Efl.Canvas.Layout object).]]
|
2017-08-08 04:37:41 -07:00
|
|
|
}
|
|
|
|
}
|
2017-08-08 06:10:58 -07:00
|
|
|
@property disabled {
|
|
|
|
[[Whether the widget is enabled (accepts and reacts to user inputs).
|
|
|
|
|
|
|
|
Each widget may handle the disabled state differently, but overall
|
|
|
|
disabled widgets shall not respond to any input events. This is
|
|
|
|
$false by default, meaning the widget is enabled.
|
|
|
|
]]
|
2017-08-23 22:06:32 -07:00
|
|
|
set {
|
|
|
|
[[Enables or disables this widget.
|
|
|
|
|
|
|
|
Disabling a widget will disable all its children recursively,
|
|
|
|
but only this widget will be marked as disabled internally.
|
|
|
|
]]
|
|
|
|
}
|
|
|
|
get {
|
|
|
|
[[Returns whether the widget is disabled.
|
|
|
|
|
|
|
|
This will return $true if any widget in the parent hierarchy
|
|
|
|
is disabled. Re-enabling that parent may in turn change the
|
|
|
|
disabled state of this widget.
|
|
|
|
]]
|
|
|
|
}
|
2017-08-08 06:10:58 -07:00
|
|
|
values {
|
|
|
|
disabled: bool(false); [[$true if the widget is disabled.]]
|
|
|
|
}
|
|
|
|
}
|
2017-08-09 00:13:06 -07:00
|
|
|
@property style {
|
|
|
|
[[The widget style to use.
|
|
|
|
|
|
|
|
Styles define different look and feel for widgets, and may provide
|
|
|
|
different parts for layout-based widgets. Styles vary from widget
|
|
|
|
to widget and may be defined by other themes by means of extensions
|
|
|
|
and overlays.
|
|
|
|
|
|
|
|
The style can only be set before @Efl.Object.finalize, which means
|
|
|
|
at construction time of the object (inside $efl_add in C).
|
|
|
|
]]
|
2017-08-09 00:22:48 -07:00
|
|
|
set @protected {
|
2017-08-09 00:13:06 -07:00
|
|
|
[[Can only be called during construction, before finalize.]]
|
|
|
|
return: Efl.Ui.Theme.Apply(0);
|
|
|
|
[[Whether the style was successfully applied or not, see
|
|
|
|
the values of @Efl.Ui.Theme.Apply for more information.]]
|
|
|
|
}
|
|
|
|
get {
|
|
|
|
[[Returns the current style of a widget.]]
|
|
|
|
}
|
|
|
|
values {
|
|
|
|
style: string;
|
|
|
|
[[Name of the style to use. Refer to each widget's documentation
|
|
|
|
for the available style names, or to the themes in use.]]
|
|
|
|
}
|
|
|
|
}
|
2017-08-17 02:14:52 -07:00
|
|
|
widget_event @protected {
|
|
|
|
[[Virtual function handling input events on the widget.
|
|
|
|
|
|
|
|
This method should return $true if the event has been processed.
|
|
|
|
Only key down, key up and pointer wheel events will be propagated
|
|
|
|
through this function.
|
|
|
|
|
|
|
|
It is common for the event to be also marked as processed as in
|
|
|
|
@Efl.Input.Event.processed, if this operation was successful. This
|
|
|
|
makes sure other widgets will not also process this input event.
|
|
|
|
]]
|
|
|
|
params {
|
2017-11-01 04:10:05 -07:00
|
|
|
@cref eo_event: Efl.Event;
|
2017-08-17 02:14:52 -07:00
|
|
|
[[EO event struct with an Efl.Input.Event as info.]]
|
|
|
|
@in source: Efl.Canvas.Object;
|
|
|
|
[[Source object where the event originated. Often same as this.]]
|
|
|
|
}
|
|
|
|
return: bool; [[$true on success, $false otherwise]]
|
|
|
|
legacy: null;
|
|
|
|
}
|
2017-08-17 06:17:53 -07:00
|
|
|
@property orientation_mode_disabled {
|
|
|
|
[[Whether the widget's automatic orientation is disabled or not.
|
|
|
|
|
|
|
|
Orientation mode is used for widgets to change their style or send
|
|
|
|
signals based on the canvas rotation (i.e. the window orientation).
|
|
|
|
If the orientation mode is enabled, the widget will emit signals
|
|
|
|
such as "elm,state,orient,N" where $N is one of 0, 90, 180, 270,
|
|
|
|
depending on the window orientation. Such signals may be handled by
|
|
|
|
the theme in order to provide a different look for the widget based
|
|
|
|
on the canvas orientation.
|
|
|
|
|
|
|
|
By default orientation mode is enabled, which means this property
|
|
|
|
is $false.
|
|
|
|
]]
|
|
|
|
values {
|
|
|
|
disabled: bool(false); [[$true if the orientation mode is disabled.]]
|
|
|
|
}
|
|
|
|
}
|
2017-08-17 06:45:08 -07:00
|
|
|
// FIXME: focus_allow? can_focus? focusable?
|
|
|
|
@property focus_allow {
|
|
|
|
[[The ability for a widget to be focused.
|
|
|
|
|
|
|
|
Unfocusable objects do nothing when programmatically focused. The
|
|
|
|
nearest focusable parent object the one really getting focus. Also,
|
|
|
|
when they receive mouse input, they will get the event, but not take
|
|
|
|
away the focus from where it was previously.
|
|
|
|
|
|
|
|
Note: Objects which are meant to be interacted with by input events
|
|
|
|
are created able to be focused, by default. All the others are not.
|
|
|
|
|
|
|
|
This property's default value depends on the widget (eg. a box is
|
|
|
|
not focusable, but a button is).
|
|
|
|
]]
|
|
|
|
set {
|
|
|
|
legacy: elm_widget_can_focus_set;
|
|
|
|
}
|
|
|
|
get {
|
|
|
|
legacy: elm_widget_can_focus_get;
|
|
|
|
}
|
2014-03-14 02:13:29 -07:00
|
|
|
values {
|
2017-08-17 06:45:08 -07:00
|
|
|
can_focus: bool; [[Whether the object is focusable.]]
|
2014-03-14 02:13:29 -07:00
|
|
|
}
|
|
|
|
}
|
2017-08-23 00:24:05 -07:00
|
|
|
@property widget_parent @protected {
|
|
|
|
[[The internal parent of this widget.
|
|
|
|
|
2018-01-07 20:55:35 -08:00
|
|
|
@Efl.Ui.Widget objects have a parent hierarchy that may differ slightly
|
2017-08-23 00:24:05 -07:00
|
|
|
from their @Efl.Object or @Efl.Canvas.Object hierarchy. This is
|
|
|
|
meant for internal handling.
|
|
|
|
|
|
|
|
See also @.widget_top.
|
|
|
|
]]
|
|
|
|
set {}
|
|
|
|
get {
|
|
|
|
legacy: elm_widget_parent_get; /* internal in legacy */
|
|
|
|
}
|
|
|
|
values {
|
2018-01-07 20:55:35 -08:00
|
|
|
parent: Efl.Ui.Widget @nullable; [[Widget parent object]]
|
2017-08-23 00:24:05 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
@property widget_top {
|
|
|
|
[[Root widget in the widget hierarchy.
|
|
|
|
|
|
|
|
This returns the top widget, in terms of widget hierarchy. This is
|
2017-12-12 09:50:13 -08:00
|
|
|
usually a window (@Efl.Ui.Win). This function walks the list of
|
2017-08-23 00:24:05 -07:00
|
|
|
@.widget_parent.
|
|
|
|
|
|
|
|
If this widget has no parent (in terms of widget hierarchy) this
|
|
|
|
will return $null.
|
|
|
|
|
|
|
|
Note: This may not be a display manager window in case of nested
|
|
|
|
canvases. If a "real" window is required, then you might want to
|
|
|
|
verify that the returned object is a $Efl.Ui.Win_Inlined, and then
|
|
|
|
get $Efl.Ui.Win_Inlined.inlined_parent to find an object in the
|
|
|
|
master window.
|
|
|
|
|
|
|
|
See also @.widget_parent.
|
|
|
|
]]
|
|
|
|
get {
|
|
|
|
legacy: elm_widget_top_get; /* internal in legacy */
|
|
|
|
}
|
|
|
|
values {
|
2018-01-07 20:55:35 -08:00
|
|
|
top: Efl.Ui.Widget; [[Top widget, usually a window.]]
|
2017-08-23 00:24:05 -07:00
|
|
|
}
|
|
|
|
}
|
2017-08-17 06:45:08 -07:00
|
|
|
|
2017-08-23 04:11:49 -07:00
|
|
|
/* Accessibility */
|
2015-05-07 09:32:53 -07:00
|
|
|
@property access_info {
|
2017-08-28 21:50:56 -07:00
|
|
|
[[Accessibility information.
|
|
|
|
|
|
|
|
This is a replacement string to be read by the accessibility
|
|
|
|
text-to-speech engine, if accessibility is enabled by configuration.
|
|
|
|
This will take precedence over the default text for this object,
|
|
|
|
which means for instance that the label of a button won't be read
|
|
|
|
out loud, instead $txt will be read out.
|
|
|
|
]]
|
2014-03-14 02:13:29 -07:00
|
|
|
values {
|
2017-08-28 21:50:56 -07:00
|
|
|
txt: string @nullable; [[Accessibility text description.]]
|
2014-03-14 02:13:29 -07:00
|
|
|
}
|
|
|
|
}
|
2017-08-23 23:31:05 -07:00
|
|
|
on_access_activate @protected @beta {
|
|
|
|
[[Hook function called when widget is activated through accessibility.
|
|
|
|
|
|
|
|
This meant to be overridden by subclasses to support accessibility.
|
|
|
|
This is an unstable API.
|
|
|
|
]]
|
|
|
|
params {
|
2017-10-15 21:33:52 -07:00
|
|
|
@in act: Efl.Ui.Activate; [[Type of activation.]]
|
2017-08-23 23:31:05 -07:00
|
|
|
}
|
|
|
|
return: bool; [[$true on success, $false otherwise]]
|
|
|
|
legacy: null; /* FIXME: legacy API does extra work */
|
|
|
|
}
|
|
|
|
on_access_update @protected @beta {
|
|
|
|
[[Hook function called when accessibility is changed on the widget.
|
|
|
|
|
|
|
|
This meant to be overridden by subclasses to support accessibility.
|
|
|
|
This is an unstable API.
|
|
|
|
]]
|
|
|
|
params {
|
|
|
|
@in enable: bool; [[$true if accessibility is enabled.]]
|
|
|
|
}
|
|
|
|
legacy: null; /* FIXME: legacy API does extra work */
|
|
|
|
}
|
2017-08-23 04:11:49 -07:00
|
|
|
|
|
|
|
/* Internal hooks. */
|
2017-08-23 04:41:37 -07:00
|
|
|
widget_sub_object_add @protected {
|
|
|
|
[[Virtual function handling sub objects being added.
|
|
|
|
|
|
|
|
Sub objects can be any canvas object, not necessarily widgets.
|
|
|
|
|
|
|
|
See also @.widget_parent.
|
|
|
|
]]
|
|
|
|
params {
|
|
|
|
@in sub_obj: Efl.Canvas.Object;
|
|
|
|
[[Sub object to be added. Not necessarily a widget itself.]]
|
|
|
|
}
|
|
|
|
return: bool; [[Indicates if the operation succeeded.]]
|
|
|
|
legacy: elm_widget_sub_object_add;
|
|
|
|
}
|
|
|
|
widget_sub_object_del @protected {
|
|
|
|
[[Virtual function handling sub objects being removed.
|
|
|
|
|
|
|
|
Sub objects can be any canvas object, not necessarily widgets.
|
|
|
|
|
|
|
|
See also @.widget_parent.
|
|
|
|
]]
|
|
|
|
params {
|
|
|
|
@in sub_obj: Efl.Canvas.Object;
|
|
|
|
[[Sub object to be removed. Should be a child of this widget.]]
|
|
|
|
}
|
|
|
|
return: bool; [[Indicates if the operation succeeded.]]
|
|
|
|
legacy: elm_widget_sub_object_del;
|
|
|
|
}
|
2017-08-23 21:45:01 -07:00
|
|
|
on_orientation_update @protected {
|
|
|
|
[[Virtual function handling canvas orientation changes.
|
|
|
|
|
|
|
|
This method will be called recursively from the top widget (the
|
|
|
|
window) to all the children objects whenever the window rotation
|
|
|
|
is changed. The given $rotation will be one of 0, 90, 180, 270 or
|
|
|
|
the special value -1 if @.orientation_mode_disabled is $true.
|
|
|
|
|
|
|
|
If @.orientation_mode_disabled is $false, the default implementation
|
|
|
|
will emit the signal "elm,state,orient,$R" will be emitted (where $R
|
|
|
|
is the rotation angle in degrees).
|
|
|
|
|
2017-08-23 22:06:32 -07:00
|
|
|
Note: This function may be called even if the orientation has not
|
|
|
|
actually changed, like when a widget needs to be reconfigured.
|
|
|
|
|
2017-08-23 21:45:01 -07:00
|
|
|
See also @Efl.Orientation.orientation.set.
|
|
|
|
]]
|
|
|
|
params {
|
|
|
|
rotation: int; [[Orientation in degrees: 0, 90, 180, 270 or -1 if
|
|
|
|
@.orientation_mode_disabled is $true.]]
|
2017-08-23 04:11:49 -07:00
|
|
|
}
|
|
|
|
}
|
2017-08-23 22:06:32 -07:00
|
|
|
on_disabled_update @protected {
|
|
|
|
[[Virtual function called when the widget becomes disabled.
|
|
|
|
|
|
|
|
This may be triggered even if this widget is not disabled, as the
|
|
|
|
parent widget could be disabled and propagate its state.
|
|
|
|
]]
|
|
|
|
params {
|
|
|
|
disabled: bool; [[The new value of @.disabled.]]
|
|
|
|
}
|
|
|
|
return: bool; [[Indicates if the operation succeeded.]]
|
2017-08-23 04:11:49 -07:00
|
|
|
}
|
2017-08-23 22:33:36 -07:00
|
|
|
theme_apply @protected {
|
|
|
|
[[Virtual function called when the widget needs to re-apply its theme.
|
|
|
|
|
|
|
|
This may be called when the object is first created, or whenever
|
|
|
|
the widget is modified in any way that may require a reload of the
|
|
|
|
theme. This may include but is not limited to scale, theme, or
|
|
|
|
mirrored mode changes.
|
|
|
|
|
|
|
|
Note: even widgets not based on layouts may override this method
|
|
|
|
to handle widget updates (scale, mirrored mode, etc...).
|
|
|
|
]]
|
|
|
|
return: Efl.Ui.Theme.Apply; [[Indicates success, and if the current
|
|
|
|
theme or default theme was used.]]
|
2017-08-23 04:11:49 -07:00
|
|
|
}
|
2017-08-30 23:20:33 -07:00
|
|
|
on_focus_update @protected {
|
2017-08-30 00:22:32 -07:00
|
|
|
[[Virtual function handling focus in/out events on the widget]]
|
2017-08-23 04:11:49 -07:00
|
|
|
params {
|
2017-08-30 00:22:32 -07:00
|
|
|
/* FIXME: EO API is not supposed to have any widget item!!! */
|
2017-08-23 04:11:49 -07:00
|
|
|
@in item: Elm.Widget.Item @nullable; [[Widget]]
|
|
|
|
}
|
|
|
|
return: bool; [[$true if this widget can handle focus, $false otherwise]]
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Scroll API. */
|
2017-08-30 00:22:32 -07:00
|
|
|
@property on_show_region_hook @protected {
|
2017-08-29 21:39:16 -07:00
|
|
|
[[Hook function called when the @.show_region is changed.
|
|
|
|
|
|
|
|
See also @.show_region.
|
|
|
|
]]
|
2017-08-23 04:11:49 -07:00
|
|
|
set {}
|
|
|
|
values {
|
|
|
|
func: Efl.Ui.Scrollable_On_Show_Region @nullable; [[Region hook function]]
|
2014-03-14 02:13:29 -07:00
|
|
|
}
|
|
|
|
}
|
2017-08-29 21:39:16 -07:00
|
|
|
@property show_region @protected {
|
|
|
|
[[Region inside the widget to show.
|
|
|
|
|
|
|
|
See also @.on_show_region_hook.
|
|
|
|
]]
|
|
|
|
set {
|
|
|
|
[[Request parent scrollers to pan around so that this region
|
|
|
|
of the widget becomes visible.
|
|
|
|
|
|
|
|
If $force is $true this will trigger scroller changes and
|
|
|
|
the @.on_show_region_hook to be called even if the region is
|
|
|
|
unchanged.
|
|
|
|
]]
|
|
|
|
values {
|
2017-10-12 02:16:42 -07:00
|
|
|
region: Eina.Rect; [[The region to show.]]
|
2017-08-29 21:39:16 -07:00
|
|
|
force: bool; [[Set to $true to force show even if unchanged.]]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
get {
|
2017-10-12 02:16:42 -07:00
|
|
|
[[Returns the current region to show.]]
|
2017-08-29 21:39:16 -07:00
|
|
|
values {
|
2017-10-12 02:16:42 -07:00
|
|
|
region: Eina.Rect; [[The region to show.]]
|
2017-08-29 21:39:16 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2017-08-30 00:15:34 -07:00
|
|
|
|
|
|
|
/* FIXME: Scroll API. Not sure how those APIs should be exposed with
|
|
|
|
* the new scrollable API. */
|
2017-08-23 04:11:49 -07:00
|
|
|
scroll_hold_push {
|
|
|
|
[[Push scroll hold]]
|
|
|
|
}
|
|
|
|
scroll_hold_pop {
|
|
|
|
[[Pop scroller hold]]
|
|
|
|
}
|
|
|
|
scroll_freeze_push {
|
|
|
|
[[Push scroller freeze]]
|
|
|
|
}
|
|
|
|
scroll_freeze_pop {
|
|
|
|
[[Pop scroller freeze]]
|
|
|
|
}
|
|
|
|
|
2017-10-12 02:16:42 -07:00
|
|
|
/* Region of interest */
|
|
|
|
@property interest_region @protected {
|
|
|
|
[[Region of interest inside this widget, that should be given
|
|
|
|
priority to be visible inside a scroller.
|
2017-08-28 22:18:50 -07:00
|
|
|
|
|
|
|
When this widget or one of its subwidgets is given focus, this
|
|
|
|
region should be shown, which means any parent scroller should
|
|
|
|
attempt to display the given area of this widget. For instance, an
|
|
|
|
entry given focus should scroll to show the text cursor if that
|
|
|
|
cursor moves. In this example, this region defines the relative
|
|
|
|
geometry of the cursor within the widget.
|
|
|
|
|
|
|
|
Note: The region is relative to the top-left corner of the widget,
|
|
|
|
i.e. X,Y start from 0,0 to indicate the top-left corner of the
|
2017-08-29 19:29:08 -07:00
|
|
|
widget. W,H must be greater or equal to 1 for this region to be
|
|
|
|
taken into account, otherwise it is ignored.
|
2017-08-28 22:18:50 -07:00
|
|
|
|
2017-10-12 02:16:42 -07:00
|
|
|
See also @.interest_region_mode
|
2017-08-28 22:18:50 -07:00
|
|
|
]]
|
2014-03-14 02:13:29 -07:00
|
|
|
get {
|
2017-10-12 02:16:42 -07:00
|
|
|
legacy: elm_widget_focus_region_get;
|
2014-03-14 02:13:29 -07:00
|
|
|
}
|
|
|
|
values {
|
2017-09-13 19:59:44 -07:00
|
|
|
region: Eina.Rect;
|
2017-08-29 19:29:08 -07:00
|
|
|
[[The relative region to show. If width or height is <= 0 it
|
|
|
|
will be ignored, and no action will be taken.]]
|
2014-03-14 02:13:29 -07:00
|
|
|
}
|
|
|
|
}
|
2017-10-12 02:16:42 -07:00
|
|
|
@property interest_region_mode {
|
|
|
|
[[Defines how @.show_region should be calculated.
|
2017-08-28 22:48:48 -07:00
|
|
|
|
2017-10-12 02:16:42 -07:00
|
|
|
It is up to the implementation of @.show_region.get to take this
|
|
|
|
value into account (or ignore it).
|
2017-08-28 22:48:48 -07:00
|
|
|
]]
|
2017-10-12 02:16:42 -07:00
|
|
|
get {
|
|
|
|
legacy: elm_widget_focus_region_show_mode_get;
|
|
|
|
}
|
|
|
|
set {
|
|
|
|
legacy: elm_widget_focus_region_show_mode_set;
|
|
|
|
}
|
2017-08-28 22:48:48 -07:00
|
|
|
values {
|
2017-10-12 02:16:42 -07:00
|
|
|
mode: Efl.Ui.Interest_Region_Mode;
|
|
|
|
[[Whether to show a specific item or the widget as a whole.]]
|
2017-08-28 22:48:48 -07:00
|
|
|
}
|
|
|
|
}
|
2017-10-12 02:16:42 -07:00
|
|
|
|
|
|
|
/* Focus highlight (visual focus rectangle) properties */
|
2017-08-29 00:41:53 -07:00
|
|
|
@property focus_highlight_geometry @protected {
|
2017-08-28 23:59:40 -07:00
|
|
|
[[The rectangle region to be highlighted on focus.
|
|
|
|
|
|
|
|
This is a rectangle region where the focus highlight should be
|
|
|
|
displayed.
|
|
|
|
]]
|
|
|
|
get {
|
|
|
|
[[This is a read-only property.]]
|
|
|
|
}
|
|
|
|
values {
|
2017-09-13 19:59:44 -07:00
|
|
|
region: Eina.Rect; [[The rectangle area.]]
|
2017-08-28 23:59:40 -07:00
|
|
|
}
|
|
|
|
}
|
2017-08-31 00:10:43 -07:00
|
|
|
@property focus_highlight_enabled {
|
|
|
|
[[Whether focus highlight is enabled or not.
|
2017-08-30 23:42:52 -07:00
|
|
|
|
2017-08-31 00:10:43 -07:00
|
|
|
As of EFL 1.21 focus highlight properties apply to a single window,
|
|
|
|
not a single widget. As a consequence, calls to this function may
|
|
|
|
be forwarded to the parent window. Future versions of EFL may
|
|
|
|
implement widget-specific focus highlight properties.
|
|
|
|
|
|
|
|
See also @.widget_top.
|
|
|
|
See also @.focus_highlight_style.
|
|
|
|
See also @.focus_highlight_animate.
|
2017-08-30 23:42:52 -07:00
|
|
|
]]
|
2017-08-28 23:59:40 -07:00
|
|
|
set {
|
2017-08-31 00:10:43 -07:00
|
|
|
[[Set the enabled status for the focus highlight in a window.
|
|
|
|
|
|
|
|
This function will enable or disable the focus highlight,
|
|
|
|
regardless of the global setting for it.
|
|
|
|
]]
|
2017-08-28 23:59:40 -07:00
|
|
|
}
|
|
|
|
get {
|
2017-08-31 00:10:43 -07:00
|
|
|
[[Get the enabled value of the focus highlight for this window.]]
|
2017-08-28 23:59:40 -07:00
|
|
|
}
|
|
|
|
values {
|
2017-08-31 00:10:43 -07:00
|
|
|
enabled: bool; [[The enabled value for the highlight.]]
|
2017-08-28 23:59:40 -07:00
|
|
|
}
|
|
|
|
}
|
2017-08-31 00:10:43 -07:00
|
|
|
@property focus_highlight_style {
|
|
|
|
[[Control the widget focus highlight style.
|
2017-08-30 23:57:53 -07:00
|
|
|
|
2017-08-31 00:10:43 -07:00
|
|
|
If $style is $null, the default will be used.
|
|
|
|
|
|
|
|
As of EFL 1.21 focus highlight properties apply to a single window,
|
|
|
|
not a single widget. As a consequence, calls to this function may
|
|
|
|
be forwarded to the parent window. Future versions of EFL may
|
|
|
|
implement widget-specific focus highlight properties.
|
|
|
|
|
|
|
|
See also @.widget_top.
|
|
|
|
See also @.focus_highlight_enabled.
|
|
|
|
See also @.focus_highlight_animate.
|
|
|
|
]]
|
|
|
|
set {
|
|
|
|
/* FIXME: This is async... success here means nothing. */
|
|
|
|
return: bool; [[$true on success, $false otherwise.]]
|
2017-08-30 23:57:53 -07:00
|
|
|
}
|
|
|
|
get {
|
|
|
|
}
|
|
|
|
values {
|
2017-08-31 00:10:43 -07:00
|
|
|
style: string @nullable; [[The name of the focus highlight style.]]
|
2017-08-30 23:57:53 -07:00
|
|
|
}
|
|
|
|
}
|
2017-08-31 00:08:10 -07:00
|
|
|
@property focus_highlight_animate {
|
2017-08-31 00:10:43 -07:00
|
|
|
[[Whether focus highlight should animate or not.
|
|
|
|
|
|
|
|
As of EFL 1.21 focus highlight properties apply to a single window,
|
|
|
|
not a single widget. As a consequence, calls to this function may
|
|
|
|
be forwarded to the parent window. Future versions of EFL may
|
|
|
|
implement widget-specific focus highlight properties.
|
|
|
|
|
|
|
|
See also @.widget_top.
|
|
|
|
See also @.focus_highlight_style.
|
|
|
|
See also @.focus_highlight_enabled.
|
|
|
|
]]
|
2017-08-31 00:08:10 -07:00
|
|
|
set {
|
|
|
|
[[Set the animate status for the focus highlight for this window.
|
|
|
|
|
|
|
|
This function will enable or disable the animation of focus
|
2017-08-31 00:10:43 -07:00
|
|
|
highlight.
|
2017-08-31 00:08:10 -07:00
|
|
|
]]
|
|
|
|
}
|
|
|
|
get {
|
|
|
|
[[Get the animate value of the focus highlight for this window.]]
|
|
|
|
}
|
|
|
|
values {
|
|
|
|
animate: bool; [[The enabled value for the highlight animation.]]
|
|
|
|
}
|
|
|
|
}
|
2017-08-30 00:40:22 -07:00
|
|
|
@property focus_move_policy @beta {
|
2016-10-12 02:14:58 -07:00
|
|
|
[[The widget's focus move policy.]]
|
2015-06-01 21:42:00 -07:00
|
|
|
values {
|
2016-11-23 02:36:28 -08:00
|
|
|
policy: Efl.Ui.Focus.Move_Policy; [[Focus move policy]]
|
2015-06-01 21:42:00 -07:00
|
|
|
}
|
2016-03-18 00:38:26 -07:00
|
|
|
}
|
2017-08-30 00:40:22 -07:00
|
|
|
@property focus_move_policy_automatic @beta {
|
2016-08-12 08:42:16 -07:00
|
|
|
[[Control the widget's focus_move_policy mode setting.
|
2017-10-17 19:21:36 -07:00
|
|
|
|
2016-08-12 08:42:16 -07:00
|
|
|
@since 1.18]]
|
2016-03-18 00:38:26 -07:00
|
|
|
values {
|
2017-10-11 20:28:23 -07:00
|
|
|
automatic: bool; [[$true to follow system focus move policy change,
|
|
|
|
$false otherwise]]
|
2016-03-18 00:38:26 -07:00
|
|
|
}
|
|
|
|
}
|
2017-08-23 04:11:49 -07:00
|
|
|
|
2017-10-17 19:21:36 -07:00
|
|
|
/* FIXME: No more items in EO API */
|
2017-08-30 00:40:22 -07:00
|
|
|
@property focused_item @beta {
|
2017-08-23 04:11:49 -07:00
|
|
|
get {
|
|
|
|
[[Get the focused widget item.]]
|
|
|
|
return: Elm.Widget.Item; [[Focused item]]
|
|
|
|
}
|
|
|
|
}
|
2017-10-17 19:21:36 -07:00
|
|
|
|
2017-08-23 04:11:49 -07:00
|
|
|
/* Focus Manager API */
|
2017-09-02 10:08:18 -07:00
|
|
|
focus_state_apply @protected {
|
|
|
|
[[Register focus with the given configuration.
|
|
|
|
|
2017-10-11 20:28:23 -07:00
|
|
|
The implementation can feel free to change the logical flag as it
|
|
|
|
wants, but other than that it should strictly keep the configuration.
|
2017-09-02 10:08:18 -07:00
|
|
|
|
2017-10-11 20:28:23 -07:00
|
|
|
The implementation in elm.widget updates the current state into what
|
|
|
|
is passed as configured state, respecting manager changes,
|
|
|
|
registeration and unregistration based on if it should be registered
|
|
|
|
or unregistered.
|
2017-09-02 10:08:18 -07:00
|
|
|
|
2017-10-11 20:28:23 -07:00
|
|
|
A manager field that is $null means that the widget should not or was
|
|
|
|
not registered.
|
2017-09-02 10:08:18 -07:00
|
|
|
]]
|
2016-12-07 07:59:13 -08:00
|
|
|
params {
|
2017-12-11 19:01:46 -08:00
|
|
|
@in current_state : Efl.Ui.Widget.Focus_State;
|
2017-10-11 20:28:23 -07:00
|
|
|
[[The focus manager to register with.]]
|
2017-12-11 19:01:46 -08:00
|
|
|
@inout configured_state : Efl.Ui.Widget.Focus_State;
|
2017-10-11 20:28:23 -07:00
|
|
|
[[The evalulated Focus state that should be used.]]
|
2018-01-07 20:55:35 -08:00
|
|
|
@in redirect : Efl.Ui.Widget;
|
2017-10-11 20:28:23 -07:00
|
|
|
[[A redirect that will be set by the elm.widget implementation.]]
|
2016-12-07 07:59:13 -08:00
|
|
|
}
|
2017-10-11 20:28:23 -07:00
|
|
|
return: bool; [[Returns whether the widget is registered or not.]]
|
2016-12-07 07:59:13 -08:00
|
|
|
}
|
2017-09-12 19:33:08 -07:00
|
|
|
focus_manager_create @protected {
|
2017-08-30 00:22:32 -07:00
|
|
|
[[If the widget needs a focus manager, this function will be called.
|
2017-06-08 14:52:37 -07:00
|
|
|
|
2017-08-30 00:22:32 -07:00
|
|
|
It can be used and overriden to inject your own manager or set
|
|
|
|
custom options on the focus manager.
|
2017-06-08 14:52:37 -07:00
|
|
|
]]
|
|
|
|
params {
|
2017-08-30 00:22:32 -07:00
|
|
|
@in root: Efl.Ui.Focus.Object; [[The logical root object for focus.]]
|
2017-06-08 14:52:37 -07:00
|
|
|
}
|
2017-10-11 20:28:23 -07:00
|
|
|
return: Efl.Ui.Focus.Manager; [[The focus manager.]]
|
2017-06-08 14:52:37 -07:00
|
|
|
}
|
2014-03-14 02:13:29 -07:00
|
|
|
}
|
2017-12-14 00:25:37 -08:00
|
|
|
parts {
|
|
|
|
shadow: Efl.Ui.Widget.Part_Shadow;
|
2018-01-16 05:04:10 -08:00
|
|
|
background: Efl.Ui.Widget.Part_Bg;
|
2017-12-14 00:25:37 -08:00
|
|
|
}
|
2014-03-14 02:13:29 -07:00
|
|
|
implements {
|
2014-06-20 02:47:39 -07:00
|
|
|
class.constructor;
|
2016-08-10 07:23:04 -07:00
|
|
|
Efl.Object.constructor;
|
2016-11-04 09:43:40 -07:00
|
|
|
Efl.Object.finalize;
|
2016-08-10 07:23:04 -07:00
|
|
|
Efl.Object.destructor;
|
|
|
|
Efl.Object.provider_find;
|
2017-07-20 23:24:08 -07:00
|
|
|
Efl.Object.debug_name_override;
|
2017-12-19 23:34:01 -08:00
|
|
|
Efl.Gfx.Color.color { set; }
|
2016-12-27 10:15:41 -08:00
|
|
|
Efl.Gfx.visible { set; }
|
|
|
|
Efl.Gfx.position { set; }
|
|
|
|
Efl.Gfx.size { set; }
|
2017-11-30 18:51:56 -08:00
|
|
|
Efl.Gfx.scale { set; get; }
|
2016-12-27 10:15:41 -08:00
|
|
|
Efl.Canvas.Object.clip { set; }
|
|
|
|
Efl.Canvas.Object.no_render { set; }
|
|
|
|
Efl.Canvas.Object.is_frame_object { set; }
|
2016-06-17 01:26:08 -07:00
|
|
|
Efl.Canvas.Group.group_calculate;
|
|
|
|
Efl.Canvas.Group.group_member_del;
|
|
|
|
Efl.Canvas.Group.group_member_add;
|
2017-10-18 18:13:54 -07:00
|
|
|
Efl.Access.name { get; }
|
|
|
|
Efl.Access.state_set { get; }
|
|
|
|
Efl.Access.children { get; }
|
|
|
|
Efl.Access.parent { get; }
|
|
|
|
Efl.Access.attributes { get; }
|
2017-09-11 23:49:29 -07:00
|
|
|
Efl.Access.Component.focus_grab;
|
2017-12-03 07:47:26 -08:00
|
|
|
Efl.Ui.Focus.User.focus_manager { get; }
|
|
|
|
Efl.Ui.Focus.User.focus_parent { get; }
|
2017-04-30 01:57:56 -07:00
|
|
|
Efl.Ui.Focus.Object.focus_geometry { get; }
|
2017-01-02 02:42:35 -08:00
|
|
|
Efl.Ui.Focus.Object.focus { set; }
|
2017-06-13 03:41:15 -07:00
|
|
|
Efl.Ui.Base.mirrored { get; set; }
|
2017-06-14 19:12:00 -07:00
|
|
|
Efl.Ui.Base.mirrored_automatic { get; set; }
|
2017-08-02 02:35:57 -07:00
|
|
|
Efl.Ui.Cursor.cursor { get; set; }
|
|
|
|
Efl.Ui.Cursor.cursor_style { get; set; }
|
|
|
|
Efl.Ui.Cursor.cursor_theme_search_enabled { get; set; }
|
2017-09-21 23:13:16 -07:00
|
|
|
Efl.Ui.Translatable.translation_update; [[This implements the calls to $gettext() and $text_set().]]
|
2017-09-19 04:02:26 -07:00
|
|
|
Efl.Part.part; [[Returns @Efl.Ui.Widget.Part.]]
|
2014-03-14 02:13:29 -07:00
|
|
|
}
|
2015-05-03 04:28:16 -07:00
|
|
|
events {
|
2016-10-26 14:51:04 -07:00
|
|
|
moved; [[Called when widget moved]]
|
|
|
|
language,changed; [[Called when widget language changed]]
|
|
|
|
access,changed; [[Called when accessibility changed]]
|
2015-05-03 04:28:16 -07:00
|
|
|
}
|
2014-03-14 02:13:29 -07:00
|
|
|
}
|