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

Traditional text pushbutton. More...

#include <TextButton.hpp>

Inheritance diagram for nocl::TextButton:
Collaboration diagram for nocl::TextButton:

Public Member Functions

virtual ~TextButton (void)
 Destructor. More...
 
 TextButton (void)
 Constructor. Creates a button with a blank label. More...
 
 TextButton (const std::string &name)
 Constructor. More...
 
std::string label (void) const
 Get the text label for this button. More...
 
TextButton & label (const std::string &name)
 Set the text label for this button. More...
 
virtual operator GtkButton * (void) const
 Convert an instance of Button to GtkButton*. 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...
 

Detailed Description

Traditional text pushbutton.

This corresponds to GtkButton.

Example:

TextButton.png
#include <nocl/nocl.hpp>
/* This example shows how to create a nocl::TextButton
* and a nocl::ButtonHandler to handle button clicks.
*/
class MyApp : public nocl::Application, public nocl::ButtonHandler
{
public:
/* Note how we inherit from nocl::ButtonHandler and call
* handle_button_events_for() to indicate an interest in
* button events.
*/
virtual MyApp & initialize(void) override
{
ok_button.label("OK");
button_box.add_child(ok_button);
handle_button_events_for(ok_button);
frame_window.initialize(*this, "Testing");
frame_window.add_child(button_box);
frame_window.show_all();
return *this;
}
/* This method is inherited from nocl::ButtonHandler. You must
* override it to receive a callback when the button is clicked.
*/
virtual void clicked(nocl::Button & button) override
{
std::cout << "button was clicked!" << std::endl;
}
nocl::FrameWindow frame_window;
nocl::ButtonBox button_box;
nocl::TextButton ok_button;
};
int main()
{
MyApp app;
return app.run_message_loop();
}
See also
nocl::ButtonBox
nocl::ButtonHandler
https://developer.gnome.org/gtk3/stable/GtkButton.html

Constructor & Destructor Documentation

◆ ~TextButton()

nocl::TextButton::~TextButton ( void  )
virtual

Destructor.

◆ TextButton() [1/2]

nocl::TextButton::TextButton ( void  )

Constructor. Creates a button with a blank label.

See also
label()

◆ TextButton() [2/2]

nocl::TextButton::TextButton ( const std::string &  name)

Constructor.

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

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

Member Function Documentation

◆ label() [1/2]

std::string nocl::TextButton::label ( void  ) const

Get the text label for this button.

◆ label() [2/2]

nocl::TextButton & nocl::TextButton::label ( const std::string &  name)

Set the text label for this button.

◆ operator GtkButton *()

nocl::Button::operator GtkButton * ( void  ) const
virtualinherited

Convert an instance of Button to GtkButton*.

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

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

◆ 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.

◆ add_child()

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

Add a child component to this container.

Exceptions
nocl::ExceptionChild-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().

Here is the call graph for this function:

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

◆ gtk_widget


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