NOCL  v0.1.0-2524
Modern C++ Class Library for GUI Projects
nocl::Grid Class Reference

Container which arranges children using a grid of columns and rows. More...

#include <Grid.hpp>

Inheritance diagram for nocl::Grid:
Collaboration diagram for nocl::Grid:

Public Member Functions

virtual ~Grid (void)
 Destructor. More...
 
 Grid (void)
 Constructor. More...
 
virtual operator GtkGrid * (void) const
 Convert an instance of nocl::Grid to GtkGrid*. More...
 
virtual Grid & add_child (GUIComponent &child) override
 Inherited from nocl::Container. More...
 
virtual Grid & add_child (GUIComponent &child, const int top, const int left, const int width=1, const int height=1)
 
virtual bool homogeneous_row (void) const
 Determine whether or not all rows will be the same size. More...
 
virtual bool homogeneous_column (void) const
 Determine whether or not all columns will be the same size. More...
 
virtual Grid & homogeneous_row (const bool toggle)
 Set whether or not all rows will be the same size. More...
 
virtual Grid & homogeneous_column (const bool toggle)
 Set whether or not all columns will be the same size. More...
 
virtual Grid & homogeneous (const bool column, const bool row)
 Set whether or not all rows and columns will be the same size. More...
 
virtual int spacing_row (void) const
 Get the spacing between each row. More...
 
virtual int spacing_column (void) const
 Get the spacing between each column. More...
 
virtual Grid & spacing_row (const int spacing)
 Set the spacing between each row. More...
 
virtual Grid & spacing_column (const int spacing)
 Set the spacing between each column. More...
 
virtual Grid & spacing (const int column, const int row)
 Set the spacing between each row and column. More...
 
virtual operator GtkContainer * (void) const
 Convert an instance of Container to GtkContainer*. 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...
 

Detailed Description

Container which arranges children using a grid of columns and rows.

This corresponds to GtkGrid. The grid layout is simplistic. An example of where it works well would be to place similarly-sized controls in a way that would resemble a calendar.

See also
nocl::...? Boxes, ListBox, Stack+StackSwitcher, HeaderBar, FlowBox, Notebook
https://developer.gnome.org/gtk3/stable/GtkGrid.html

Constructor & Destructor Documentation

◆ ~Grid()

nocl::Grid::~Grid ( void  )
virtual

Destructor.

◆ Grid()

nocl::Grid::Grid ( void  )

Constructor.

Exceptions
nocl::ExceptionThrows if GTK+ fails to create a new window.

References nocl::GUIComponent::gtk_widget, homogeneous(), NOCL_WHERE, and spacing().

Here is the call graph for this function:

Member Function Documentation

◆ operator GtkGrid *()

nocl::Grid::operator GtkGrid * ( void  ) const
virtual

Convert an instance of nocl::Grid to GtkGrid*.

Exceptions
nocl::ExceptionObject was not created correctly and cannot be converted to GtkGrid*.

References nocl::GUIComponent::gtk_widget, and NOCL_WHERE.

◆ add_child() [1/2]

nocl::Grid & nocl::Grid::add_child ( GUIComponent &  child)
overridevirtual

Inherited from nocl::Container.

Adds a child to location [2, 2] on the grid. This way if a grid has a single child, then on a 3x3 grid the child will have been added in the middle of the grid.

Reimplemented from nocl::Container.

◆ add_child() [2/2]

nocl::Grid & nocl::Grid::add_child ( GUIComponent &  child,
const int  top,
const int  left,
const int  width = 1,
const int  height = 1 
)
virtual
Exceptions
nocl::ExceptionGrid location, width, or height is invalid.
nocl::ExceptionChild-parent hierarchy doesn't make sense.

References nocl::Container::children, NOCL_WHERE, nocl::GUIComponent::parent, and nocl::Container::remove_child().

Here is the call graph for this function:

◆ homogeneous_row() [1/2]

bool nocl::Grid::homogeneous_row ( void  ) const
virtual

Determine whether or not all rows will be the same size.

Referenced by homogeneous().

Here is the caller graph for this function:

◆ homogeneous_column() [1/2]

bool nocl::Grid::homogeneous_column ( void  ) const
virtual

Determine whether or not all columns will be the same size.

Referenced by homogeneous().

Here is the caller graph for this function:

◆ homogeneous_row() [2/2]

nocl::Grid & nocl::Grid::homogeneous_row ( const bool  toggle)
virtual

Set whether or not all rows will be the same size.

◆ homogeneous_column() [2/2]

nocl::Grid & nocl::Grid::homogeneous_column ( const bool  toggle)
virtual

Set whether or not all columns will be the same size.

◆ homogeneous()

nocl::Grid & nocl::Grid::homogeneous ( const bool  column,
const bool  row 
)
virtual

Set whether or not all rows and columns will be the same size.

References homogeneous_column(), and homogeneous_row().

Referenced by Grid().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ spacing_row() [1/2]

int nocl::Grid::spacing_row ( void  ) const
virtual

Get the spacing between each row.

Referenced by spacing().

Here is the caller graph for this function:

◆ spacing_column() [1/2]

int nocl::Grid::spacing_column ( void  ) const
virtual

Get the spacing between each column.

Referenced by spacing().

Here is the caller graph for this function:

◆ spacing_row() [2/2]

nocl::Grid & nocl::Grid::spacing_row ( const int  spacing)
virtual

Set the spacing between each row.

Exceptions
nocl::ExceptionInvalid spacing.

References NOCL_WHERE.

◆ spacing_column() [2/2]

nocl::Grid & nocl::Grid::spacing_column ( const int  spacing)
virtual

Set the spacing between each column.

Exceptions
nocl::ExceptionInvalid spacing.

References NOCL_WHERE.

◆ spacing()

nocl::Grid & nocl::Grid::spacing ( const int  column,
const int  row 
)
virtual

Set the spacing between each row and column.

References spacing_column(), and spacing_row().

Referenced by Grid().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator GtkContainer *()

nocl::Container::operator GtkContainer * ( void  ) const
virtualinherited

Convert an instance of Container to GtkContainer*.

Exceptions
nocl::ExceptionObject was not created correctly and cannot be converted to GtkContainer*.

References nocl::GUIComponent::gtk_widget, and NOCL_WHERE.

◆ remove_child()

nocl::Container & nocl::Container::remove_child ( GUIComponent &  child)
virtualinherited

Remove a child component from this container.

References nocl::Container::children, and nocl::GUIComponent::parent.

Referenced by nocl::Container::add_child(), add_child(), nocl::Container::~Container(), and nocl::GUIComponent::~GUIComponent().

Here is the caller graph for this function:

◆ operator GtkWidget *()

nocl::GUIComponent::operator GtkWidget * ( void  ) const
virtualinherited

Convert an instance of GUIComponent to GtkWidget*.

References nocl::GUIComponent::gtk_widget.

◆ move_to()

nocl::GUIComponent & nocl::GUIComponent::move_to ( const Point &  p)
virtualinherited

Move to the specified coordinates.

Todo:

◆ natural_size()

nocl::Size nocl::GUIComponent::natural_size ( void  )
virtualinherited

Get the natural size of a widget.

References nocl::GUIComponent::minimum_size().

Referenced by nocl::GUIComponent::minimum_size().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ minimum_size() [1/3]

nocl::Size nocl::GUIComponent::minimum_size ( void  )
virtualinherited

Get the minimum size of a widget.

References nocl::GUIComponent::natural_size().

Referenced by nocl::GUIComponent::minimum_size(), and nocl::GUIComponent::natural_size().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ minimum_size() [2/3]

nocl::GUIComponent & nocl::GUIComponent::minimum_size ( const Size &  s)
virtualinherited

Set the minimum size of a widget.

References nocl::Size::height, nocl::GUIComponent::minimum_size(), and nocl::Size::width.

Here is the call graph for this function:

◆ minimum_size() [3/3]

nocl::GUIComponent & nocl::GUIComponent::minimum_size ( const int  width,
const int  height 
)
virtualinherited

Set the minimum size of a widget.

◆ show()

nocl::GUIComponent & nocl::GUIComponent::show ( const bool  toggle = true)
virtualinherited

Make the immediate component visible.

Parameters
[in]toggleSet to true to show the widget, or to false to hide the widget.
See also
hide()
show_all()
is_visible()

References nocl::GUIComponent::gtk_widget, and nocl::GUIComponent::hide().

Here is the call graph for this function:

◆ show_all()

nocl::GUIComponent & nocl::GUIComponent::show_all ( const bool  toggle = true)
virtualinherited

Make the component and all child components visible.

Parameters
[in]toggleSet to true to show the widget and all children, or to false to hide the widget.
See also
show()
hide()
is_visible()

References nocl::GUIComponent::gtk_widget, and nocl::GUIComponent::hide().

Here is the call graph for this function:

◆ hide()

nocl::GUIComponent & nocl::GUIComponent::hide ( void  )
virtualinherited

Hide a single component.

See also
show()
show_all()
is_visible()

References nocl::GUIComponent::gtk_widget.

Referenced by nocl::GUIComponent::show(), and nocl::GUIComponent::show_all().

Here is the caller graph for this function:

◆ is_visible()

bool nocl::GUIComponent::is_visible ( void  ) const
virtualinherited

Determine if the widget is shown.

See also
show()
show_all()
hide()

References nocl::GUIComponent::gtk_widget.

◆ widget_to_gui_component_map()

nocl::WidgetToGUIComponentMap & nocl::GUIComponent::widget_to_gui_component_map ( void  )
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.

Note
This is not intended for end-users to access directly!

Referenced by nocl::ButtonHandler::handle_button_events_for(), and nocl::GUIComponent::~GUIComponent().

Here is the caller graph for this function:

Member Data Documentation

◆ children

std::set<GUIComponent*> nocl::Container::children
inherited

Keep track of all children that have been added to this container.

Referenced by nocl::Container::add_child(), add_child(), nocl::Container::remove_child(), and nocl::Container::~Container().

◆ parent

Container* nocl::GUIComponent::parent
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(), add_child(), nocl::Container::remove_child(), and nocl::GUIComponent::~GUIComponent().

◆ gtk_widget


The documentation for this class was generated from the following files: