Top level frame window. More...
#include <FrameWindow.hpp>


Public Member Functions | |
| virtual | ~FrameWindow (void) |
| Destructor. More... | |
| FrameWindow (void) | |
| Default (empty) constructor which does not fully construct a frame window. More... | |
| FrameWindow (nocl::Application &app, const std::string &title_text) | |
| This constructor is the same as calling the empty constructor immediately followed by a call to nocl::FrameWindow::initialize(). More... | |
| virtual | operator GtkApplicationWindow * (void) const |
Convert this object to GtkApplicationWindow*. More... | |
| virtual FrameWindow & | initialize (nocl::Application &app, const std::string &title_text) |
| Complete the creation of a frame window. More... | |
| virtual | operator GtkWindow * (void) const |
Convert this object to GtkWindow*. More... | |
| virtual Window & | resize (const Size &s) |
| Resizes a window. More... | |
| virtual Window & | resize (const int width, const int height) |
| Resizes a window. More... | |
| virtual Window & | resizable (const bool toggle=true) |
| Give the window a resizable border. More... | |
| virtual bool | is_resizable (void) const |
| Determine whether or not the window can be resized by dragging the border. More... | |
| virtual std::string | title (void) const |
| Get the titlebar text. More... | |
| virtual Window & | title (const std::string &title_text) |
| Set the text displayed in the titlebar. 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... | |
Top level frame window.
This corresponds to GtkApplicationWindow. Applications normally have at least one of these windows.
Example:
|
virtual |
Destructor.
| nocl::FrameWindow::FrameWindow | ( | void | ) |
Default (empty) constructor which does not fully construct a frame window.
Note that this constructor leaves the frame window object in a semi-constructed state. From a C++ point of view the object is fully constructed, but the internal Gtk+ frame window pointer is still nullptr. The actual GUI frame window component is only instantiated once nocl::FrameWindow::initialize() is called. This constructor is provided to alleviate a chicken-and-egg problem between nocl::Application and nocl::FrameWindow.
FrameWindow object created using this constructor does not actually have a corresponding GUI frame window until nocl::FrameWindow::initialize() has been called! Do not attempt to use the frame window object until nocl::FrameWindow::initialize() has completed the object initialization. In normal situations, this is done in nocl::Application::initialize().| nocl::FrameWindow::FrameWindow | ( | nocl::Application & | app, |
| const std::string & | title_text | ||
| ) |
This constructor is the same as calling the empty constructor immediately followed by a call to nocl::FrameWindow::initialize().
Do not call nocl::FrameWindow::initialize() on FrameWindow objects that use this constructor.
References initialize().

|
virtual |
Convert this object to GtkApplicationWindow*.
This will return nullptr if the frame window hasn't been fully constructed.
| nocl::Exception | Object was not created correctly and cannot be converted to GtkApplicationWindow*. |
References nocl::GUIComponent::gtk_widget, and NOCL_WHERE.
|
virtual |
Complete the creation of a frame window.
This only needs to be called if the default empty constructor for FrameWindow was used.
Example:
initialize()! | nocl::Exception | Throws if initialize() is called twice. |
| nocl::Exception | Throws if Gtk+ fails to create a new application window. |
References nocl::GUIComponent::gtk_widget, NOCL_WHERE, and nocl::Window::title().
Referenced by FrameWindow().


|
virtualinherited |
Convert this object to GtkWindow*.
| nocl::Exception | Throws if the Gtk+ widget is not a GtkWindow. |
References nocl::GUIComponent::gtk_widget, and NOCL_WHERE.
|
virtualinherited |
Resizes a window.
References nocl::Size::height, and nocl::Size::width.
|
virtualinherited |
Resizes a window.
|
virtualinherited |
Give the window a resizable border.
| [in] | toggle | When set to false, the window cannot be resized by the user. The default window border is resizable. |
References nocl::GUIComponent::gtk_widget.
|
virtualinherited |
Determine whether or not the window can be resized by dragging the border.
References nocl::GUIComponent::gtk_widget.
|
virtualinherited |
|
virtualinherited |
Set the text displayed in the titlebar.
|
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(), nocl::ButtonBox::ButtonBox(), nocl::Grid::Grid(), nocl::ButtonHandler::handle_button_events_for(), nocl::GUIComponent::hide(), initialize(), nocl::Window::is_resizable(), nocl::GUIComponent::is_visible(), nocl::Label::Label(), operator GtkApplicationWindow *(), nocl::Box::operator GtkBox *(), nocl::Button::operator GtkButton *(), nocl::ButtonBox::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().