Container for aligning and sizing buttons the same way. More...
#include <ButtonBox.hpp>
Public Types | |
enum | ELayout { ELayout::kInvalid, ELayout::kSpread, ELayout::kEdge, ELayout::kStart, ELayout::kEnd, ELayout::kCenter, ELayout::kExpand } |
Different layout styles that ButtonBox can use. More... | |
enum | EDirection { EDirection::kInvalid, EDirection::kHorizontal, EDirection::kVertical } |
Public Member Functions | |
virtual | ~ButtonBox (void) |
Destructor. More... | |
ButtonBox (const EDirection direction=EDirection::kHorizontal) | |
Constructor. The default layout style is ELayout::kSpread. More... | |
virtual | operator GtkButtonBox * (void) const |
Convert an instance of ButtonBox to GtkButtonBox* . More... | |
virtual ELayout | layout (void) |
Retrieve the current layout style. Unless explicitely changed, the default layout style is ELayout::kSpread. More... | |
virtual ButtonBox & | layout (const ELayout layout_style) |
Specify the layout style to use. More... | |
virtual | operator GtkBox * (void) const |
Convert an instance of Box to GtkBox* . More... | |
virtual int | spacing (void) |
Get the spacing used between child components. More... | |
virtual Box & | spacing (const int spacing) |
Set the spacing used between child components. More... | |
virtual bool | homogeneous (void) |
Get the homogeneous value. More... | |
virtual Box & | homogeneous (const bool toggle) |
Set the homogeneous value. More... | |
virtual | operator GtkContainer * (void) const |
Convert an instance of Container to GtkContainer* . More... | |
virtual Container & | add_child (GUIComponent &child) |
Add a child component to this container. More... | |
virtual Container & | remove_child (GUIComponent &child) |
Remove a child component from this container. More... | |
virtual | operator GtkWidget * (void) const |
Convert an instance of GUIComponent to GtkWidget* . More... | |
virtual GUIComponent & | move_to (const Point &p) |
Move to the specified coordinates. More... | |
virtual Size | natural_size (void) |
Get the natural size of a widget. More... | |
virtual Size | minimum_size (void) |
Get the minimum size of a widget. More... | |
virtual GUIComponent & | minimum_size (const Size &s) |
Set the minimum size of a widget. More... | |
virtual GUIComponent & | minimum_size (const int width, const int height) |
Set the minimum size of a widget. More... | |
virtual GUIComponent & | show (const bool toggle=true) |
Make the immediate component visible. More... | |
virtual GUIComponent & | show_all (const bool toggle=true) |
Make the component and all child components visible. More... | |
virtual GUIComponent & | hide (void) |
Hide a single component. More... | |
virtual bool | is_visible (void) const |
Determine if the widget is shown. More... | |
Static Public Member Functions | |
static WidgetToGUIComponentMap & | widget_to_gui_component_map (void) |
There are times when we have a pointer to a Gtk+ widget, and we need to map it back to the corresponding NOCL GUI component. More... | |
Public Attributes | |
std::set< GUIComponent * > | children |
Keep track of all children that have been added to this container. More... | |
Container * | parent |
Pointer to the parent to which we've been added. Will be nullptr if this object hasn't been added to a parent container. More... | |
GtkWidget * | gtk_widget |
Pointer to the underlying GTK framework. More... | |
Container for aligning and sizing buttons the same way.
This corresponds to GtkButtonBox
.
|
strong |
Different layout styles that ButtonBox
can use.
Enumerator | |
---|---|
kInvalid | |
kSpread |
![]() |
kEdge |
![]() |
kStart |
![]() |
kEnd |
![]() |
kCenter |
![]() |
kExpand |
![]() |
|
stronginherited |
|
virtual |
Destructor.
nocl::ButtonBox::ButtonBox | ( | const EDirection | direction = EDirection::kHorizontal | ) |
Constructor. The default layout style is ELayout::kSpread.
nocl::Exception | Throws if Gtk+ fails to create a new window. |
References nocl::GUIComponent::gtk_widget, kSpread, nocl::Box::kVertical, layout(), and NOCL_WHERE.
|
virtual |
Convert an instance of ButtonBox to GtkButtonBox*
.
nocl::Exception | Object was not created correctly and cannot be converted to GtkButtonBox*. |
References nocl::GUIComponent::gtk_widget, and NOCL_WHERE.
|
virtual |
Retrieve the current layout style. Unless explicitely changed, the default layout style is ELayout::kSpread.
nocl::Exception | Object has an unknown style. |
References kCenter, kEdge, kEnd, kExpand, kSpread, kStart, and NOCL_WHERE.
Referenced by ButtonBox().
|
virtual |
Specify the layout style to use.
Style | Example |
---|---|
ELayout::kSpread | ![]() |
ELayout::kEdge | ![]() |
ELayout::kStart | ![]() |
ELayout::kEnd | ![]() |
ELayout::kCenter | ![]() |
ELayout::kExpand | ![]() |
References kCenter, kEdge, kEnd, kExpand, kInvalid, kSpread, and kStart.
|
virtualinherited |
Convert an instance of Box to GtkBox*
.
nocl::Exception | Object was not created correctly and cannot be converted to GtkBox*. |
References nocl::GUIComponent::gtk_widget, and NOCL_WHERE.
|
virtualinherited |
Get the spacing used between child components.
|
virtualinherited |
Set the spacing used between child components.
For example:
|
virtualinherited |
Get the homogeneous value.
|
virtualinherited |
Set the homogeneous value.
Determines whether or not an attempt is made to resize all controls in a similar manner.
For example:
|
virtualinherited |
Convert an instance of Container to GtkContainer*
.
nocl::Exception | Object was not created correctly and cannot be converted to GtkContainer*. |
References nocl::GUIComponent::gtk_widget, and NOCL_WHERE.
|
virtualinherited |
Add a child component to this container.
nocl::Exception | Child-parent hierarchy doesn't make sense. |
Reimplemented in nocl::Grid, nocl::Fixed, and nocl::Layout.
References nocl::Container::children, NOCL_WHERE, nocl::GUIComponent::parent, and nocl::Container::remove_child().
|
virtualinherited |
Remove a child component from this container.
References nocl::Container::children, and nocl::GUIComponent::parent.
Referenced by nocl::Container::add_child(), nocl::Grid::add_child(), nocl::Container::~Container(), and nocl::GUIComponent::~GUIComponent().
|
virtualinherited |
Convert an instance of GUIComponent to GtkWidget*
.
References nocl::GUIComponent::gtk_widget.
|
virtualinherited |
Move to the specified coordinates.
|
virtualinherited |
Get the natural size of a widget.
References nocl::GUIComponent::minimum_size().
Referenced by nocl::GUIComponent::minimum_size().
|
virtualinherited |
Get the minimum size of a widget.
References nocl::GUIComponent::natural_size().
Referenced by nocl::GUIComponent::minimum_size(), and nocl::GUIComponent::natural_size().
|
virtualinherited |
Set the minimum size of a widget.
References nocl::Size::height, nocl::GUIComponent::minimum_size(), and nocl::Size::width.
|
virtualinherited |
Set the minimum size of a widget.
|
virtualinherited |
Make the immediate component visible.
[in] | toggle | Set to true to show the widget, or to false to hide the widget. |
References nocl::GUIComponent::gtk_widget, and nocl::GUIComponent::hide().
|
virtualinherited |
Make the component and all child components visible.
[in] | toggle | Set to true to show the widget and all children, or to false to hide the widget. |
References nocl::GUIComponent::gtk_widget, and nocl::GUIComponent::hide().
|
virtualinherited |
Hide a single component.
References nocl::GUIComponent::gtk_widget.
Referenced by nocl::GUIComponent::show(), and nocl::GUIComponent::show_all().
|
virtualinherited |
Determine if the widget is shown.
References nocl::GUIComponent::gtk_widget.
|
staticinherited |
There are times when we have a pointer to a Gtk+ widget, and we need to map it back to the corresponding NOCL GUI component.
For example, during event handling, Gtk+ tells us which Gtk+ widget generated the event, but we need the corresponding NOCL object so we can call the event handler with a reference to the correct object.
Referenced by nocl::ButtonHandler::handle_button_events_for(), and nocl::GUIComponent::~GUIComponent().
|
inherited |
Keep track of all children that have been added to this container.
Referenced by nocl::Container::add_child(), nocl::Grid::add_child(), nocl::Container::remove_child(), and nocl::Container::~Container().
|
inherited |
Pointer to the parent to which we've been added. Will be nullptr
if this object hasn't been added to a parent container.
Referenced by nocl::Container::add_child(), nocl::Grid::add_child(), nocl::Container::remove_child(), and nocl::GUIComponent::~GUIComponent().
|
inherited |
Pointer to the underlying GTK framework.
Referenced by nocl::Box::Box(), ButtonBox(), nocl::Grid::Grid(), nocl::ButtonHandler::handle_button_events_for(), nocl::GUIComponent::hide(), nocl::FrameWindow::initialize(), nocl::Window::is_resizable(), nocl::GUIComponent::is_visible(), nocl::Label::Label(), nocl::FrameWindow::operator GtkApplicationWindow *(), nocl::Box::operator GtkBox *(), nocl::Button::operator GtkButton *(), operator GtkButtonBox *(), nocl::Container::operator GtkContainer *(), nocl::TextField::operator GtkEntry *(), nocl::Fixed::operator GtkFixed *(), nocl::Grid::operator GtkGrid *(), nocl::Label::operator GtkLabel *(), nocl::Layout::operator GtkLayout *(), nocl::SpinButton::operator GtkSpinButton *(), nocl::ToggleSwitch::operator GtkSwitch *(), nocl::TextEditor::operator GtkTextView *(), nocl::GUIComponent::operator GtkWidget *(), nocl::Window::operator GtkWindow *(), nocl::Window::resizable(), nocl::GUIComponent::show(), nocl::GUIComponent::show_all(), nocl::SpinButton::SpinButton(), nocl::TextButton::TextButton(), nocl::TextEditor::TextEditor(), nocl::TextField::TextField(), nocl::ToggleSwitch::ToggleSwitch(), and nocl::GUIComponent::~GUIComponent().