libt3widget
|
A widget that can contain multiple other widgets. More...
Public Member Functions | |
virtual void | force_redraw (void) |
Request that this window_component_t be completely redrawn. More... | |
widget_t * | get_current (void) |
Get the currently active widget. More... | |
virtual bool | is_child (window_component_t *component) |
Determine whether a window_compnent_t is a child of the container_t. More... | |
void | next (void) |
Make the next widget the active widget. More... | |
void | previous (void) |
Make the previous widget the active widget. More... | |
virtual bool | process_key (key_t key) |
Handle a key press by the user. More... | |
virtual void | set_child_focus (window_component_t *target) |
Set the focus to a specific window component. More... | |
virtual void | set_focus (focus_t focus) |
Set whether this window_component_t has the input focus. More... | |
virtual bool | set_size (optint height, optint width) |
Set the size of this window_component_t. More... | |
void | split (widget_t *widget, bool _horizontal) |
Divide the available screen space over one more widget. More... | |
split_t (widget_t *widget) | |
Create a new split_t. More... | |
widget_t * | unsplit (void) |
Remove the current widget from the split_t (or a nested split_t). More... | |
virtual void | update_contents (void) |
Update the contents of the window. More... | |
virtual | ~split_t (void) |
Destroy a split_t. More... | |
![]() | |
virtual bool | accepts_focus (void) |
Query whether this widget accepts focus. More... | |
virtual void | hide (void) |
Hide the window_component_t. More... | |
virtual bool | is_enabled (void) |
Query the enabled status of this widget. More... | |
virtual bool | is_hotkey (key_t key) |
Query whether key is a hotkey for this widget. More... | |
virtual bool | is_shown (void) |
Query the visibility status of this widget. More... | |
virtual bool | process_mouse_event (mouse_event_t event) |
Process a mouse event. More... | |
virtual void | set_anchor (window_component_t *anchor, int relation) |
Set this widget's anchor. More... | |
virtual void | set_enabled (bool enable) |
Set the enabled status of this widget. More... | |
virtual void | set_position (optint top, optint left) |
Move the window_component_t to a specified position. More... | |
virtual void | show (void) |
Display the window_component_t. More... | |
![]() | |
virtual t3_window_t * | get_base_window (void) |
Retrieve the t3_window_t for this window_component_t. More... | |
window_component_t (void) | |
Base constructor. More... | |
virtual | ~window_component_t (void) |
Base destructor. More... | |
![]() | |
void | grab_mouse (void) |
Grab all future mouse events. More... | |
void | register_mouse_target (t3_window_t *target) |
Register a window to receive mouse events. More... | |
void | release_mouse_grab (void) |
Release a previous mouse grab. More... | |
void | unregister_mouse_target (t3_window_t *target) |
Unregister a window to receive mouse events. More... | |
Protected Member Functions | |
bool | next_recurse (void) |
Make the next widget the current widget (internal). More... | |
bool | previous_recurse (void) |
Make the previous widget the current widget (internal). More... | |
void | set_to_begin (void) |
Make the first widget the active widget. More... | |
void | set_to_end (void) |
Make the last widget the active widget. More... | |
bool | unsplit (widget_t **widget) |
Remove the currently activated widget from the split_t (internal). More... | |
![]() | |
void | init_unbacked_window (int height, int width, bool register_as_mouse_target=false) |
Initialize the window with an unbacked t3_window_t with height and width . More... | |
void | init_window (int height, int width, bool register_as_mouse_target=true) |
Initialize the window with a t3_window_t with height and width . More... | |
widget_t (int height, int width, bool register_as_mouse_target=true) | |
Constructor which creates a default t3_window_t with height and width . More... | |
widget_t (void) | |
Constructor which does not create a default t3_window_t. More... | |
![]() | |
mouse_target_t (bool use_window=true) | |
![]() | |
virtual bool | set_widget_parent (window_component_t *widget) |
Make widget a child window of this container_t, by setting its parent window. More... | |
virtual void | unset_widget_parent (window_component_t *widget) |
Unset the parent window for a widget . More... | |
Protected Attributes | |
widgets_t::iterator | current |
The currently active widget. More... | |
bool | focus |
Boolean indicating whether this split_t (or rather, one of its children) has the input focus. More... | |
bool | horizontal |
Boolean indicating whether to divide the space horizontally or vertically. More... | |
widgets_t | widgets |
The list of widgets contained by this split_t. More... | |
![]() | |
bool | enabled |
Widget is enabled. More... | |
bool | redraw |
Widget requires redrawing on next update_contents call. More... | |
bool | shown |
Widget is shown. More... | |
![]() | |
cleanup_t3_window_ptr | window |
The t3_window_t used for presenting this item on screen (see libt3window). More... | |
Additional Inherited Members | |
![]() | |
enum | focus_t { FOCUS_OUT, FOCUS_SET, FOCUS_IN_FWD, FOCUS_IN_BCK, FOCUS_REVERT } |
![]() | |
static bool | handle_mouse_event (mouse_event_t event) |
A widget that can contain multiple other widgets.
The space allocated to a split_t widget can be divided either horizontally or vertically. When a horizontally split split_t is asked to split vertically, it will in fact create a new sub split_t which divides its space vertically. This widget is mostly useful to divide an area over widgets like edit_window_t or text_window_t.
|
virtual |
Destroy a split_t.
Deletes all contained widgets as well.
|
virtual |
Request that this window_component_t be completely redrawn.
Reimplemented from t3_widget::widget_t.
widget_t * t3_widget::split_t::get_current | ( | void | ) |
Get the currently active widget.
|
virtual |
Determine whether a window_compnent_t is a child of the container_t.
Implements t3_widget::container_t.
void t3_widget::split_t::next | ( | void | ) |
Make the next widget the active widget.
|
protected |
Make the next widget the current widget (internal).
Because split_t widgets may be nested, calling next on this widget may actually need to tell a nested split_t to activate the next widget. This needs slightly different handling than the generic next call, and needs to report whether the end of the list was reached. In the latter case, the return value shall be false
.
void t3_widget::split_t::previous | ( | void | ) |
Make the previous widget the active widget.
|
protected |
Make the previous widget the current widget (internal).
See next_recurse for details.
|
virtual |
Handle a key press by the user.
Implements t3_widget::window_component_t.
|
virtual |
Set the focus to a specific window component.
Implements t3_widget::container_t.
|
virtual |
Set whether this window_component_t has the input focus.
Note that this merely notifies the window_component_t that it should change it's appearance to indicate the user that this window_component_t has the input focus. Which window_component_t actually receives the input events is handled outside of the window_component_t.
Reimplemented from t3_widget::widget_t.
Set the size of this window_component_t.
height | The new height of the window_component_t in cells, or None if it should remain unchanged. |
width | The new width of the window_component_t in cells, or None if it should remain unchanged. |
Implements t3_widget::window_component_t.
|
protected |
Make the first widget the active widget.
|
protected |
Make the last widget the active widget.
void t3_widget::split_t::split | ( | widget_t * | widget, |
bool | _horizontal | ||
) |
Divide the available screen space over one more widget.
widget | The widget to add. |
_horizontal | Whether to split the space horizontally or vertically. |
This function may create a new nested split_t, if the current split_t is split horizontally and a vertical split is requested or vice versa. Note that if the current split_t is already a nested split_t, it may nest even further.
|
protected |
Remove the currently activated widget from the split_t (internal).
This function takes into account that split_t widgets may be nested, and if it finds the the widget to remove is in fact a split_t it will ask that to remove its current widget instead. If that leaves only a single widget in the nested split_t, this funciton will return true
and the remaining widget in the nested split_t will replace the nested split_t in this widget.
widget_t * t3_widget::split_t::unsplit | ( | void | ) |
|
virtual |
Update the contents of the window.
Implements t3_widget::window_component_t.
|
protected |
The currently active widget.
|
protected |
Boolean indicating whether this split_t (or rather, one of its children) has the input focus.
|
protected |
Boolean indicating whether to divide the space horizontally or vertically.
|
protected |
The list of widgets contained by this split_t.