A support class for hs._asm.axuielement management.
See:
| Signature |
cp.ui.Element.matches(element) -> boolean |
| Type |
Function |
| Description |
Matches to any valid hs._asm.axuielement. Sub-types should provide their own matches method. |
| Parameters |
|
| Returns |
true if the element is a valid instance of an hs._asm.axuielement.
|
| Signature |
cp.ui.Element(parent, uiFinder) -> cp.ui.Element |
| Type |
Constructor |
| Description |
Creates a new Element with the specified parent and uiFinder. |
| Parameters |
- parent - The parent Element (may be
nil) - uiFinder - The
function or prop that actually provides the current axuielement instance.
|
| Returns |
- The new
Element instance.
|
| Signature |
cp.ui.Element.frame <cp.prop: table; read-only; live?> |
| Type |
Field |
| Description |
Returns the table containing the x, y, w, and h values for the Element frame, or nil if not available. |
| Signature |
cp.ui.Element.identifier <cp.prop: string; read-only> |
| Type |
Field |
| Description |
Returns the AX identifier for the element. |
| Signature |
cp.ui.Element.isEnabled <cp.prop: boolean; read-only> |
| Type |
Field |
| Description |
Returns true if the Element is visible and enabled. |
| Signature |
cp.ui.Element.isShowing <cp.prop: boolean; read-only; live?> |
| Type |
Field |
| Description |
If true, the Element is showing on screen. |
| Signature |
cp.ui.Element.position <cp.prop: table; read-only; live?> |
| Type |
Field |
| Description |
Returns the table containing the x and y values for the Element frame, or nil if not available. |
| Signature |
cp.ui.Element.role <cp.prop: string; read-only> |
| Type |
Field |
| Description |
Returns the AX role name for the element. |
| Signature |
cp.ui.Element.size <cp.prop: table; read-only; live?> |
| Type |
Field |
| Description |
Returns the table containing the w and h values for the Element frame, or nil if not available. |
| Signature |
cp.ui.Element.subrole <cp.prop: string; read-only> |
| Type |
Field |
| Description |
Returns the AX subrole name for the element. |
| Signature |
cp.ui.Element.textValue <cp.prop: string; read-only; live?> |
| Type |
Field |
| Description |
The 'AXValue' of the element, if it is a string. |
| Signature |
cp.ui.Element.title <cp.prop: string; read-only, live?> |
| Type |
Field |
| Description |
The 'AXTitle' of the element. |
| Signature |
cp.ui.Element.value <cp.prop: anything; live?> |
| Type |
Field |
| Description |
The 'AXValue' of the element. |
| Signature |
cp.ui.Element:app() -> App |
| Type |
Method |
| Description |
Returns the app instance. |
| Parameters |
|
| Returns |
|
| Signature |
cp.ui.Element:doLayout(layout) -> cp.rx.go.Statement |
| Type |
Method |
| Description |
Returns a Statement which will attempt to load the layout based on the parameters |
| Parameters |
- layout - a
table of parameters that will be used to layout the element.
|
| Returns |
|
| Notes |
- By default, to enable backwards-compatibility, this method will simply call the [#loadLayout]. Override it to provide more optimal asynchonous behaviour if required.
- When subclassing, the overriding
doLayout method should call the parent class's doLayout method,then process any custom values from it, like so: lua function MyElement:doLayout(layout) layout = layout or {} return Do(Element.doLayout(self, layout)) :Then(function() self.myConfig = layout.myConfig end) :Label("MyElement:doLayout") end
|
| Signature |
cp.ui.Element:doShow() -> cp.rx.go.Statement |
| Type |
Method |
| Description |
Returns a Statement that will ensure the Element is showing. |
| Signature |
cp.ui.Element:focus() -> self |
| Type |
Method |
| Description |
Set the focus on an element. |
| Parameters |
|
| Returns |
|
| Signature |
cp.ui.Element:loadLayout(layout) -> nil |
| Type |
Method |
| Description |
When called, the Element (or subclass) will attempt to load the layout based on the parameters |
| Parameters |
- layout - a
table of parameters that will be used to layout the element.
|
| Notes |
- When subclassing, the overriding
loadLayout method should call the parent's loadLayout method,then process any custom values from it, like so: function MyElement:loadLayout(layout) Element.loadLayout(self, layout) self.myConfig = layout.myConfig end
|
| Signature |
cp.ui.Element:parent() -> parent |
| Type |
Method |
| Description |
Returns the parent object. |
| Parameters |
|
| Returns |
|
| Signature |
cp.ui.Element:saveLayout() -> table |
| Type |
Method |
| Description |
Returns a table containing the current configuration details for this Element (or subclass). |
| Notes |
- When subclassing, the overriding
saveLayout method should call the parent's saveLayout method,then add values to it, like so: function MyElement:saveLayout() local layout = Element.saveLayout(self) layout.myConfig = self.myConfig return layout end
|
| Signature |
cp.ui.Element:show() -> self |
| Type |
Method |
| Description |
Shows the Element. |
| Parameters |
|
| Returns |
|
| Signature | cp.ui.Element:snapshot([path]) -> hs.image | nil |
| -----------------------------------------------------|---------------------------------------------------------------------------------------------------------|
| Type | Method |
| Description | Takes a snapshot of the button in its current state as a PNG and returns it. |
| Parameters |
- path - (optional) The path to save the file. Should include the extension (should be
.png).
|
| Signature |
cp.ui.Element.valueIs(value) -> boolean |
| Type |
Method |
| Description |
Checks if the current value of this element is the provided value. |
| Parameters |
- value - The value to compare to.
|
| Returns |
true if the current [#value] is equal to the provided value.
|