Part of elisa.plugins.pigment.widgets.widget View In Hierarchy
Known subclasses: elisa.plugins.database.scanning_widget.ScannerWidget, elisa.plugins.database.widgets.synopsis.SynopsisWidget, elisa.plugins.pigment.tests.widgets.test_widget.StubWidget, elisa.plugins.pigment.widgets.box.Box, elisa.plugins.pigment.widgets.button.Button, elisa.plugins.pigment.widgets.entry.Entry, elisa.plugins.pigment.widgets.indicator_progressbar.Indicator, elisa.plugins.pigment.widgets.label.Label, elisa.plugins.pigment.widgets.list.List, elisa.plugins.pigment.widgets.osk.Button, elisa.plugins.pigment.widgets.osk.OnScreenKeyboard, elisa.plugins.pigment.widgets.range.Range, elisa.plugins.pigment.widgets.size_enforcer.Square, elisa.plugins.poblesec.base.grid.GridItem, elisa.plugins.poblesec.base.preview_list.PreviewWidget, elisa.plugins.poblesec.base.preview_list.Shortcut, elisa.plugins.poblesec.configuration.base.BaseScreenWidget, elisa.plugins.poblesec.login_settings_controller.ReturnButton, elisa.plugins.poblesec.player_video.CoverOverlay, elisa.plugins.poblesec.player_video.MouseOsd, elisa.plugins.poblesec.player_video.PlayerOsd, elisa.plugins.poblesec.plugins.PluginInformationWidget, elisa.plugins.poblesec.plugins.UsePluginWidget, elisa.plugins.poblesec.poblesec_browser_controller.BottomBar, elisa.plugins.poblesec.poblesec_browser_controller.BreadCrumbs, elisa.plugins.poblesec.poblesec_browser_controller.Crumb, elisa.plugins.poblesec.poblesec_browser_controller.TopBar, elisa.plugins.poblesec.poblesec_browser_controller.TopBarButton, elisa.plugins.poblesec.poblesec_browser_controller.TopBarWithBreadCrumbs, elisa.plugins.poblesec.popup.PopupWidget, elisa.plugins.poblesec.sections_menu.SectionItemWidget, elisa.plugins.poblesec.viewport_buttons.AutohideButtons, elisa.plugins.poblesec.widgets.button.IconButton, elisa.plugins.poblesec.widgets.button.StateButton, elisa.plugins.poblesec.widgets.button.TextButton, elisa.plugins.poblesec.widgets.entry.EntryBar, elisa.plugins.poblesec.widgets.image_with_reflection.ImageWithReflection, elisa.plugins.poblesec.widgets.loading_animation.LoadingAnimation, elisa.plugins.poblesec.widgets.long_loading_image.LongLoadingImage, elisa.plugins.poblesec.widgets.menu_item.MenuItemWidget, elisa.plugins.poblesec.widgets.nothing_to_display.NothingToDisplay, elisa.plugins.poblesec.widgets.player.buffering_bar.BufferingBar, elisa.plugins.poblesec.widgets.player.button.Button, elisa.plugins.poblesec.widgets.player.counter.Counter, elisa.plugins.poblesec.widgets.player.volumebar.VolumeBar, elisa.plugins.poblesec.widgets.search_results.SearchResultEntryWidget, elisa.plugins.poblesec.widgets.search_results.SearchResultWidget, elisa.plugins.poblesec.widgets.selector.ActionSelector, elisa.plugins.poblesec.widgets.sliced_image.SlicedImageHorizontal, elisa.plugins.shelf.shelf_controller.PluginWidget, elisa.plugins.shelf.shelf_controller.ShelfHeader
Basic widget for the python Pigment scenegraph.
It handles a simple focus system (at most one widget having the focus at one time) and a simple style system (with style and style-properties change notifications, also bound to state changes).
Emit these signals:
| Instance Variables | name | the name of the widget (type: string ) |
| style | the present style of the widget
(type: pgm.widget.Style
) | |
| state | the present state of the widget (type: enum(STATE_NORMAL, STATE_PRESSED, STATE_HOVERED, STATE_SELECTED, STATE_DISABLED, STATE_CHECKED) ) |
| Line # | Kind | Name | Docs |
|---|---|---|---|
| 73 | Method | __init__ | Set the default styles for the widget. Subclasses should override and |
| 185 | Method | set_name | Set the name of the widget and potentially update its style if name |
| 196 | Method | state__get | The present state of the widget |
| 200 | Method | state__set | Set the state of the widget and emit the "state-changed" signal if |
| 217 | Method | do_state_changed | Default 'state-changed' signal handler |
| 222 | Method | style__get | The present style |
| 226 | Method | style__set | Set the present style, after binding it to the widget and subscribing |
| 252 | Method | do_style_set | Default 'style-set' signal handler |
| 346 | Method | update_style_properties | Update the widget's appearence basing on the properties set. |
| 383 | Method | get_parent | Get the parent, if exists. |
| 391 | Method | get_children | Get the list of direct children. |
| 399 | Method | get_root | Get the root of the widget's tree hierarchy |
| 410 | Method | get_descendants | Get the list of nodes in the subtree |
| 447 | Method | focus__get | Whether the widget has focus |
| 451 | Method | focus__set | Set the focus state on the widget emitting the 'focus' signal on the |
| 488 | Method | focus_child__get | Get the child with focus |
| 494 | Method | do_key_press_event | Default 'key-press-event' signal handler. |
| 509 | Method | clean | Undocumented |
| 562 | Class Method | demo | Create a demo widget, put it on a canvas and show it in a viewport. |
| 98 | Class Method | _init_class_styles | Undocumented |
| 130 | Method | _init_styles | Undocumented |
| 145 | Method | _merge_style_from_widget_name | Merge styles specific to the instance's name if not None |
| 171 | Method | _get_style_for_state | Return a style corresponding to a given state. |
| 248 | Method | _style_property_changed | Undocumented |
| 257 | Method | _parse_style_key | Parse a style property key into a couple (widget, attribute name). |
| 307 | Method | _parse_style_value | Parse a style property value. |
| 424 | Method | _set_focused | Set or unset the focused widget and update the focused child property of |
| 506 | Method | _do_real_key_press_event | Undocumented |
| 516 | Class Method | _demo_create_viewport | Undocumented |
| 522 | Class Method | _on_demo_delete | Undocumented |
| 530 | Class Method | _demo_widget | Meant to be overidden by inheriting widgets for widget creation and |
| 541 | Class Method | _set_demo_widget_defaults | Undocumented |
Inherited from Group:
| Line # | Kind | Name | Docs |
|---|---|---|---|
| 85 | Method | canvas__set | Undocumented |
| 105 | Method | canvas__get | Undocumented |
| 110 | Method | layer__set | Undocumented |
| 123 | Method | layer__get | Undocumented |
| 131 | Method | add | Undocumented |
| 173 | Method | remove | Undocumented |
| 192 | Method | empty | Undocumented |
| 202 | Method | __len__ | Undocumented |
| 205 | Method | __iter__ | Undocumented |
| 208 | Method | update_absolute_x | Undocumented |
| 215 | Method | update_absolute_y | Undocumented |
| 222 | Method | update_absolute_z | Undocumented |
| 229 | Method | update_absolute_position | Undocumented |
| 236 | Method | update_absolute_width | Undocumented |
| 245 | Method | update_absolute_height | Undocumented |
| 254 | Method | update_absolute_size | Undocumented |
| 263 | Method | update_absolute_visible | Undocumented |
| 268 | Method | update_absolute_opacity | Undocumented |
| 274 | Method | regenerate | Undocumented |
| 161 | Method | _proxy_child_signal_scrolled | Undocumented |
| 165 | Method | _proxy_child_signal | Undocumented |
| 169 | Method | _proxy_child_signal_with_pressure | Undocumented |
Inherited from Node (via Group):
| Line # | Kind | Name | Docs |
|---|---|---|---|
| 40 | Method | absolute_width__get | Undocumented |
| 43 | Method | absolute_width__set | Undocumented |
| 48 | Method | absolute_height__get | Undocumented |
| 51 | Method | absolute_height__set | Undocumented |
| 56 | Method | absolute_x__get | Undocumented |
| 59 | Method | absolute_x__set | Undocumented |
| 65 | Method | absolute_y__get | Undocumented |
| 68 | Method | absolute_y__set | Undocumented |
| 74 | Method | absolute_z__get | Undocumented |
| 77 | Method | absolute_z__set | Undocumented |
| 83 | Method | parent__set | Undocumented |
| 96 | Method | parent__get | Undocumented |
| 101 | Method | x__get | Undocumented |
| 107 | Method | x__set | Undocumented |
| 123 | Method | y__get | Undocumented |
| 129 | Method | y__set | Undocumented |
| 146 | Method | z__get | Undocumented |
| 152 | Method | z__set | Undocumented |
| 169 | Method | position__get | Undocumented |
| 175 | Method | position__set | Undocumented |
| 199 | Method | width__get | Undocumented |
| 205 | Method | width__set | Undocumented |
| 223 | Method | height__get | Undocumented |
| 229 | Method | height__set | Undocumented |
| 249 | Method | size__get | Undocumented |
| 255 | Method | size__set | Undocumented |
| 275 | Method | visible__get | Undocumented |
| 281 | Method | visible__set | Undocumented |
| 302 | Method | opacity__get | Undocumented |
| 308 | Method | opacity__set | Undocumented |
| 336 | Method | animated__get | Undocumented |
Merge styles specific to the instance's name if not None
into L{style}.
A specific instance can be targeted in a stylesheet using the
following syntax:
mymodule.WidgetClass#name {
property: value;
}
Example:
"pigment.widgets.list_vertical.ListVertical#myfirstlist" matches
all instances of pigment.widgets.list_vertical.ListVertical
whose widget name is 'myfirstlist'
Return a style corresponding to a given L{state}.
A specific state can be targeted in a stylesheet using the
following syntax:
mymodule.WidgetClass:STATE_NORMAL {
property: value;
}
| Parameters | name | the new name (type: string ) |
| Parameters | state | the new state (type: enum(STATE_NORMAL, STATE_PRESSED, STATE_HOVERED, STATE_SELECTED, STATE_DISABLED, STATE_CHECKED) ) |
| Parameters | style | the style to set
(type: pgm.widget.Style
) |
Parse a style property key into a couple (widget, attribute name).
The following keys will be parsed:
* "attribute": C{self.attribute}
* "subwidget-attribute": C{self.subwidget.attribute}
* "subwidget-subwidget-attribute": C{self.subwidget.subwidget.attribute}
* etc.
@param key: the key of the style property to parse
@type key: C{str}
@param logstr: a base string to use when logging parsing errors
@type logstr: C{str}
@raise AttributeError: when the key fails to be parsed
@return: a tuple (widget, attribute name, enriched logging string)
@rtype: (L{Widget}, C{str}, C{str})
Pigment properties will be transformed based on the type of the widget they apply to and the name of the attribute.
| Parameters | value | the value of the style property to parse
(type: str
) |
| widget | the widget the style property applies to
(type: Widget
) | |
| attribute | the name of the attribute the style property applies to
(type: str
) | |
| logstr | a base string to use when logging parsing errors
(type: str
) | |
| Returns | the value transformed (if relevant, untouched otherwise) | |
| Raises | AttributeError | when the value fails to be parsed to a valid pigment property |
By default all properties that can match a public member of the widget will be applied automatically. If custom style properties not matching real subwidgets/attributes need to be defined, this method should be overridden: the custom properties should be processed first, and then the remaining properties passed to the parent's update_style_properties method.
| Parameters | props | the properties that have to be updated (type: dictionary of strings ==> anything ) |
| Returns | list of elisa.plugins.pigment.widgets.Widget
| |
| Returns | elisa.plugins.pigment.widgets.Widget
| |
| Returns | list of elisa.plugins.pigment.widgets.Widget
| |
| Parameters | value | the focus state. (type: boolean. ) |
| Parameters | value | the focus state. (type: boolean. ) |
Forward the signal to the focused child, if any.
| Returns | elisa.plugins.pigment.widgets.Widget
| |
Just start a pgm.main() or an "ipython -gthread" shell to interactively test your widget. See the __main__ block at the end of this file.
| Returns | the demo elisa.plugins.pigment.widgets.Widget
| |