BuGUI
BUtton Grid User Interface
Loading...
Searching...
No Matches
bugui::controller< T > Struct Template Reference

Main class to inherit from. Acts ast the root of the widget tree, and provides generic access to the hardware through the painter and presser objects. More...

#include <controller.hpp>

Inheritance diagram for bugui::controller< T >:
bugui::ctrlr_shifter< T > bugui::ctrlr_deleter< T > bugui::ctrlr_deleter< T > bugui::base_controller bugui::base_controller bugui::base_controller bugui::base_controller bugui::base_container_widget bugui::base_container_widget bugui::base_container_widget bugui::base_container_widget bugui::base_widget bugui::base_widget bugui::base_widget bugui::base_widget bugui::rectangle bugui::rectangle bugui::rectangle bugui::rectangle

Public Member Functions

void update () override final
void add_held (base_widget *widget) override final
void remove_held (base_widget *widget) override final
void handle_painter (painter &painter) const override final
bool handle_presser (presser &presser) override final
Public Member Functions inherited from bugui::ctrlr_shifter< T >
void on_Shift (auto &p)
 Empty funciton acting as a workaround, ensuring it is always defined in the controller.
Public Member Functions inherited from bugui::ctrlr_deleter< T >
 base_controller (std::unique_ptr< base_hardware > &&hardware)
void on_Delete (button_presser &p)
 Handles presses on buttons labeled Delete.
Public Member Functions inherited from bugui::base_controller
void local_repaint (base_widget *widget)
 Triggers the painting of the widget pointed to by the parameter.
double get_horizontal_scale () const noexcept
 Retrieves the horizontal scale value.
double get_vertical_scale () const noexcept
 Retrieves the vertical scale value.
bool handle_Delete () override final
Public Member Functions inherited from bugui::base_container_widget
 base_container_widget (base_container_widget *parent)
const std::vector< base_widget * > & get_held () const
 Retrieves all held widgets, including duplicates.
std::vector< base_widget * > get_unique_held () const
 Retrieves held widgets, filtering out duplicates.
std::vector< base_widget * > get_deepest_held ()
 Retrieves all held items that do not have child held widgets i.e. the deepest held widget in the hierarchy.
void remove_widget (base_widget *widget)
 Removes a child widget.
Public Member Functions inherited from bugui::base_widget
base_container_widgetget_parent () const
 Retrieves the parent widget.
base_controllerget_root () const
 Retrieves the root widget.
Public Member Functions inherited from bugui::rectangle
int get_x () const
int get_y () const
void set_x (int new_x)
void set_y (int new_y)
int get_width () const
int get_height () const
void set_width (int new_width)
void set_height (int new_height)
void set_size (int new_size)
void set (int new_x, int new_y)
void set (int new_x, int new_y, int new_width, int new_height)
const pointget_top_left () const
const pointget_bottom_right () const
void set_top_left (point &&new_top_left)
void set_bottom_right (point &&new_bottom_right)

Protected Member Functions

 controller (std::string_view device_name)
void repaint () override final
 Calls for this widget to be repainted.
bool handle_child_Delete () override final
 garanties that ctrlr_deleter::recursive_child_Delete returns
Protected Member Functions inherited from bugui::base_controller
 base_controller (std::unique_ptr< base_hardware > &&hardware)
void increment_horizontal_scale (double scale_inc)
 Increments the horizontal scale value.
void increment_vertical_scale (double scale_inc)
 Increments the vertical scale value.
void set_horizontal_scale (double scale)
 Set the horizontal scale value.
void set_vetical_scale (double scale)
 Set the vertical scale value.
Protected Member Functions inherited from bugui::base_container_widget
template<typename T, typename ... Args>
requires std::derived_from<T, base_widget>
base_widget * add_widget (Args &...args)
 Create and add a child widget.
template<typename T, typename ... Args>
requires std::derived_from<T, base_widget>
base_widget * add_widget (Args &&...args)
 Create and add a child widget.
template<class Pred>
requires (!std::derived_from<std::remove_pointer_t<Pred> , base_widget>)
base_widget * remove_widget (Pred pred)
 Removes a child widget.
Protected Member Functions inherited from bugui::base_widget
 base_widget (base_container_widget *parent)
Protected Member Functions inherited from bugui::rectangle
virtual bool overlap (rectangle &other) const
 Checks whether this rectangle overlaps with another. This funciton is the bassis for handling inputs on the grid. The presser object also inherits from rectangle, and this function is called to check if a press event overlaps with a widget. If so, we can determine that this particular widget is pressed. Custom widgets can override this funciton for a more fine grained handling of presses.

Additional Inherited Members

Protected Attributes inherited from bugui::base_controller
std::unique_ptr< base_hardwarehdw
painter paint
Protected Attributes inherited from bugui::base_container_widget
std::vector< base_widget * > held
std::vector< std::unique_ptr< base_widget > > children
Protected Attributes inherited from bugui::base_widget
base_container_widgetparent {nullptr}
base_controllerroot {nullptr}

Detailed Description

template<typename T>
struct bugui::controller< T >

Main class to inherit from. Acts ast the root of the widget tree, and provides generic access to the hardware through the painter and presser objects.

Member Function Documentation

◆ add_held()

template<typename T>
void bugui::controller< T >::add_held ( base_widget * widget)
inlinefinaloverridevirtual

◆ handle_child_Delete()

template<typename T>
bool bugui::controller< T >::handle_child_Delete ( )
inlinefinaloverrideprotectedvirtual

garanties that ctrlr_deleter::recursive_child_Delete returns

Implements bugui::base_container_widget.

◆ handle_painter()

template<typename T>
void bugui::controller< T >::handle_painter ( painter & painter) const
inlinefinaloverridevirtual

Implements bugui::base_widget.

◆ handle_presser()

template<typename T>
bool bugui::controller< T >::handle_presser ( presser & presser)
inlinefinaloverridevirtual

Implements bugui::base_widget.

◆ remove_held()

template<typename T>
void bugui::controller< T >::remove_held ( base_widget * widget)
inlinefinaloverridevirtual

◆ repaint()

template<typename T>
void bugui::controller< T >::repaint ( )
inlinefinaloverrideprotectedvirtual

Calls for this widget to be repainted.

Reimplemented from bugui::base_widget.

◆ update()

template<typename T>
void bugui::controller< T >::update ( )
inlinefinaloverridevirtual

Implements bugui::base_widget.


The documentation for this struct was generated from the following file: