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...
 
TextButtonlabel (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 Containeradd_child (GUIComponent &child)
 Add a child component to this container. More...
 
virtual Containerremove_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 GUIComponentmove_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 GUIComponentminimum_size (const Size &s)
 Set the minimum size of a widget. More...
 
virtual GUIComponentminimum_size (const int width, const int height)
 Set the minimum size of a widget. More...
 
virtual GUIComponentshow (const bool toggle=true)
 Make the immediate component visible. More...
 
virtual GUIComponentshow_all (const bool toggle=true)
 Make the component and all child components visible. More...
 
virtual GUIComponenthide (void)
 Hide a single component. More...
 
virtual bool is_visible (void) const
 Determine if the widget is shown. More...
 

Static Public Member Functions

static WidgetToGUIComponentMapwidget_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...
 
Containerparent
 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: