mousetrap v0.2.0
Loading...
Searching...
No Matches
mousetrap::Box Class Reference

container widget that arranges each of its children in series More...

#include <box.hpp>

Inheritance diagram for mousetrap::Box:
mousetrap::has_signal_unmap< Box > mousetrap::has_signal_map< Box > mousetrap::has_signal_show< Box > mousetrap::has_signal_hide< Box > mousetrap::has_signal_destroy< Box > mousetrap::has_signal_unrealize< Box > mousetrap::has_signal_realize< Box > mousetrap::Widget

Public Member Functions

 Box (Orientation=Orientation::HORIZONTAL)
 construct
 
 Box (detail::BoxInternal *)
 construct from internal
 
 ~Box ()
 destructor
 
NativeObject get_internal () const override
 expose internally managed object, \for_internal_use_only
 
void push_back (const Widget &)
 add a widget to the end of the box
 
void push_front (const Widget &)
 add a widget to the start of the box
 
void insert_after (const Widget &to_append, const Widget &after)
 insert a widget after another widget already in the box
 
void remove (const Widget &)
 remove a widget from the box
 
void clear ()
 remove all widgets from the box
 
void set_homogeneous (bool)
 set whether the box should attempt to allocate the same size to all of its children
 
bool get_homogeneous () const
 get whether the box should attempt to allocate the same size to all of its children
 
void set_spacing (float)
 set minimum spacing between two children, 0 by default
 
float get_spacing () const
 get minimum spacing between two children
 
uint64_t get_n_items ()
 get number of children
 
Orientation get_orientation () const
 get orientation
 
void set_orientation (Orientation orientation)
 set orientation
 
- Public Member Functions inherited from mousetrap::Widget
 Widget (detail::WidgetInternal *)
 construct from internal
 
virtual ~Widget ()
 default dtor
 
 Widget (const Widget &)=delete
 
Widgetoperator= (const Widget &) const =delete
 
 Widget (Widget &&other)=delete
 
Widgetoperator= (Widget &&)=delete
 
 operator NativeObject () const override
 implement signal emitter
 
NativeObject get_internal () const override
 expose internally managed object, \for_internal_use_only
 
virtual operator NativeWidget () const
 expose as GtkWidget, this is the only function that needs to be implemented in oder for an object to act as a widget
 
void activate ()
 activate the widget, if it is activatable. This will also trigger any associated animations or signals
 
Vector2f get_size_request ()
 get minimum allocated size
 
void set_size_request (Vector2f)
 set minimum allocated size
 
bool operator== (const Widget &other) const
 check if both widgets point to the same internal object
 
bool operator!= (const Widget &other) const
 check if both widgets point to the same internal object
 
void set_margin_top (float margin)
 set top margin, minimum distance to any other widget boundary
 
float get_margin_top () const
 get top margin, minimum distance to any other widget boundary
 
void set_margin_bottom (float margin)
 set bottom margin, minimum distance to any other widget boundary
 
float get_margin_bottom () const
 set botom margin, minimum distance to any other widget boundary
 
void set_margin_start (float margin)
 set left margin, minimum distance to any other widget boundary
 
float get_margin_start () const
 get left margin, minimum distance to any other widget boundary
 
void set_margin_end (float margin)
 set right margin, minimum distance to any other widget boundary
 
float get_margin_end () const
 get right margin, minimum distance to any other widget boundary
 
void set_margin_horizontal (float margin)
 set left and right margin, minimum distance to any other widget boundary
 
void set_margin_vertical (float margin)
 set top and bottom margin, minimum distance to any other widget boundary
 
void set_margin (float margin)
 set margin in all directions, minimum distance to any other widget boundary
 
void set_expand_horizontally (bool should_expand)
 set whether widget should attempt to allocate the maximum allowed space horizontally
 
bool get_expand_horizontally () const
 get whether widget should attempt to allocate the maximum allowed space horizontally
 
void set_expand_vertically (bool should_expand)
 set whether widget should attempt to allocate the maximum allowed space verticall
 
bool get_expand_vertically () const
 get whether widget should attempt to allocate the maximum allowed space vertically
 
void set_expand (bool both)
 set whether the widget should attempt to allocate the maximum allowed space in both dimensions
 
void set_horizontal_alignment (Alignment)
 set where the widget should align itself along the x-axis
 
Alignment get_horizontal_alignment () const
 get where the widget should align itself along the x-axis
 
void set_vertical_alignment (Alignment)
 set where the widget should align itself along the y-axis
 
Alignment get_vertical_alignment () const
 get where the widget should align itself along the y-axis
 
void set_alignment (Alignment both)
 set where the widget should align itself along both axes
 
void set_opacity (float opacity)
 set widget opacity, in [0, 1], if opacity is set to 0, equivalent to mousetrap::Widget::hide()
 
float get_opacity ()
 get widget opacity
 
void set_is_visible (bool b)
 set whether the widget should be hidden
 
bool get_is_visible ()
 get whether the widget is hidden
 
void set_tooltip_text (const std::string &text)
 set text displayed as a tooltip when the user hovers over the widget
 
void set_tooltip_widget (const Widget &widget)
 set arbitrary widget displayed as a tooltip when user hovers over the widget
 
void remove_tooltip_widget ()
 remove tooltip
 
void set_cursor (CursorType type)
 set the shape of cursor displayed when the cursor is above the widget
 
void set_cursor_from_image (const Image &image, Vector2i offset)
 set cursor from custom image
 
void hide ()
 hide the widget, this may set its allocated size to 0
 
void show ()
 show the widget, this allocates its size
 
void add_controller (const EventController &)
 add an event controller to the widget, a widget may have an arbitrary number of controllers
 
void remove_controller (const EventController &)
 remove an event controller from the widget, if event controller is not registered to widget, does nothing
 
void set_is_focusable (bool)
 set whether the widgets can contain input focus
 
bool get_is_focusable () const
 get whether widget can contain focus input focus
 
void grab_focus ()
 attempt to grab the input focus
 
bool get_has_focus ()
 get whether the wigdet currently holds input focus
 
void set_focus_on_click (bool)
 set whether the input should attempt to grab the focus when the user clicks on it
 
bool get_focus_on_click () const
 get whether the input should attempt to grab the focus when the user clicks on it
 
bool get_is_realized ()
 get whether the widget was realized
 
Vector2f get_minimum_size () const
 get minimum size, this will always be equal to or larger than the size request
 
Vector2f get_natural_size () const
 get natural size, this is the intended size of the widget if no expansion or clipping occurrs
 
Vector2f get_position () const
 get position
 
Vector2f get_allocated_size () const
 get allocated size
 
void unparent ()
 remove the widget from the container it is in, if any
 
void set_can_respond_to_input (bool)
 set whether the widget is allowed to gather input events. If set to false, the widget may appear "grayed out"
 
bool get_can_respond_to_input () const
 get whether the widget is allowed to gather input events
 
template<typename Function_t , typename Data_t >
void set_tick_callback (Function_t function, Data_t data)
 add a callback that is invoked every frame
 
template<typename Function_t >
void set_tick_callback (Function_t function)
 add a callback that is invoked every frame
 
void remove_tick_callback ()
 remove callback that si invoked every frame
 
Clipboard get_clipboard () const
 get the widgets associated clipboard
 
void set_hide_on_overflow (bool b)
 set whether a child widget inside this widget should be cutoff when it leaves this widgets boundary
 
bool get_hide_on_overflow () const
 get whether a child widget inside this widget should be cutoff when it leaves this widgets boundary
 
void set_listens_for_shortcut_actions (Action &)
 Convenience function that automatically adds the action to a shortcut controller of this widget.
 
void apply_style_class (const StyleClass &)
 apply style class to widget and its children
 
void add_css_class (const std::string &css)
 add css class
 
void remove_css_class (const std::string &css)
 remove css class
 
std::vector< std::string > get_css_classes () const
 get all applied css classes
 
- Public Member Functions inherited from mousetrap::SignalEmitter
void set_signal_blocked (const std::string &signal_id, bool b)
 block a signal by id \for_internal_use_only
 
bool get_signal_blocked (const std::string &signal_id) const
 get whether a signal is currently blocked
 
std::vector< std::string > get_all_signal_names ()
 get list of possible signal ids \for_internal_use_only
 
template<typename Function_t >
void connect_signal (const std::string &signal_id, Function_t *function, void *data=nullptr)
 connect static function to signal, does not work with lambdas \for_internal_use_only
 
void disconnect_signal (const std::string &signal_id)
 disconnect signal, it may not be invoked until reconnected, if signal is not registered, does nothing. For internal use only
 
virtual operator NativeObject () const =0
 expose as NativeObject, this is the GLib instance that signals are emitted on \for_internal_use_only
 
virtual NativeObject get_internal () const
 expose internally managed object, \for_internal_use_only
 
- Public Member Functions inherited from mousetrap::has_signal_realize< Box >
void connect_signal_realize (Function_t f, Data_t data)
 connect handler, will be invoked when signal is emitted. Data is passed to the signal handler function
 
void connect_signal_realize (Function_t f)
 connect handler, will be invoked when signal is emitted
 
void set_signal_realize_blocked (bool b)
 
bool get_signal_realize_blocked () const
 
void emit_signal_realize ()
 invoke signal handler manually
 
void disconnect_signal_realize ()
 
- Public Member Functions inherited from mousetrap::has_signal_unrealize< Box >
void connect_signal_unrealize (Function_t f, Data_t data)
 connect handler, will be invoked when signal is emitted. Data is passed to the signal handler function
 
void connect_signal_unrealize (Function_t f)
 connect handler, will be invoked when signal is emitted
 
void set_signal_unrealize_blocked (bool b)
 Set whether signal emission should trigger the signal handler.
 
bool get_signal_unrealize_blocked () const
 get whether signal emission should trigger the signal handler
 
void emit_signal_unrealize ()
 invoke signal handler manually
 
void disconnect_signal_unrealize ()
 disconnect the signal handler
 
- Public Member Functions inherited from mousetrap::has_signal_destroy< Box >
void connect_signal_destroy (Function_t f, Data_t data)
 connect handler, will be invoked when signal is emitted. Data is passed to the signal handler function
 
void connect_signal_destroy (Function_t f)
 connect handler, will be invoked when signal is emitted
 
void set_signal_destroy_blocked (bool b)
 Set whether signal emission should trigger the signal handler.
 
bool get_signal_destroy_blocked () const
 get whether signal emission should trigger the signal handler
 
void emit_signal_destroy ()
 invoke signal handler manually
 
void disconnect_signal_destroy ()
 disconnect the signal handler
 
- Public Member Functions inherited from mousetrap::has_signal_hide< Box >
void connect_signal_hide (Function_t f, Data_t data)
 connect handler, will be invoked when signal is emitted. Data is passed to the signal handler function
 
void connect_signal_hide (Function_t f)
 connect handler, will be invoked when signal is emitted
 
void set_signal_hide_blocked (bool b)
 
bool get_signal_hide_blocked () const
 
void emit_signal_hide ()
 invoke signal handler manually
 
void disconnect_signal_hide ()
 
- Public Member Functions inherited from mousetrap::has_signal_show< Box >
void connect_signal_show (Function_t f, Data_t data)
 connect handler, will be invoked when signal is emitted. Data is passed to the signal handler function
 
void connect_signal_show (Function_t f)
 connect handler, will be invoked when signal is emitted
 
void set_signal_show_blocked (bool b)
 
bool get_signal_show_blocked () const
 
void emit_signal_show ()
 invoke signal handler manually
 
void disconnect_signal_show ()
 
- Public Member Functions inherited from mousetrap::has_signal_map< Box >
void connect_signal_map (Function_t f, Data_t data)
 connect handler, will be invoked when signal is emitted. Data is passed to the signal handler function
 
void connect_signal_map (Function_t f)
 connect handler, will be invoked when signal is emitted
 
void set_signal_map_blocked (bool b)
 
bool get_signal_map_blocked () const
 
void emit_signal_map ()
 invoke signal handler manually
 
void disconnect_signal_map ()
 
- Public Member Functions inherited from mousetrap::has_signal_unmap< Box >
void connect_signal_unmap (Function_t f, Data_t data)
 connect handler, will be invoked when signal is emitted. Data is passed to the signal handler function
 
void connect_signal_unmap (Function_t f)
 connect handler, will be invoked when signal is emitted
 
void set_signal_unmap_blocked (bool b)
 
bool get_signal_unmap_blocked () const
 
void emit_signal_unmap ()
 invoke signal handler manually
 
void disconnect_signal_unmap ()
 

Additional Inherited Members

- Static Public Attributes inherited from mousetrap::has_signal_realize< Box >
static const char * signal_id
 glib ID
 
- Static Public Attributes inherited from mousetrap::has_signal_unrealize< Box >
static const char * signal_id
 
- Static Public Attributes inherited from mousetrap::has_signal_destroy< Box >
static const char * signal_id
 
- Static Public Attributes inherited from mousetrap::has_signal_hide< Box >
static const char * signal_id
 glib ID
 
- Static Public Attributes inherited from mousetrap::has_signal_show< Box >
static const char * signal_id
 glib ID
 
- Static Public Attributes inherited from mousetrap::has_signal_map< Box >
static const char * signal_id
 glib ID
 
- Static Public Attributes inherited from mousetrap::has_signal_unmap< Box >
static const char * signal_id
 glib ID
 
- Protected Member Functions inherited from mousetrap::Widget
 Widget (NativeWidget widget)
 ctor protected. Only inheriting classes should call this
 
- Protected Member Functions inherited from mousetrap::SignalEmitter
 SignalEmitter ()
 ctor
 
 ~SignalEmitter ()
 destructor
 
- Protected Member Functions inherited from mousetrap::has_signal_realize< Box >
 has_signal_realize (Box *instance)
 
- Protected Member Functions inherited from mousetrap::has_signal_unrealize< Box >
 has_signal_unrealize (Box *instance)
 ctor protected
 
- Protected Member Functions inherited from mousetrap::has_signal_destroy< Box >
 has_signal_destroy (Box *instance)
 ctor protected
 
- Protected Member Functions inherited from mousetrap::has_signal_hide< Box >
 has_signal_hide (Box *instance)
 
- Protected Member Functions inherited from mousetrap::has_signal_show< Box >
 has_signal_show (Box *instance)
 
- Protected Member Functions inherited from mousetrap::has_signal_map< Box >
 has_signal_map (Box *instance)
 
- Protected Member Functions inherited from mousetrap::has_signal_unmap< Box >
 has_signal_unmap (Box *instance)
 

Detailed Description

container widget that arranges each of its children in series

signal id signature emitted when...
Signals inherited from Widget
realize (Box&, (Data_t)) -> void Widget is realized, usually right before it is drawn for the first time
unrealize (Box&, (Data_t)) -> void Widget is unmapped and will no longer be drawn
destroy (Box&, (Data_t)) -> void Widgets internal state is deallocated, calling Widget::~Widget() may not necessarily emit this signal
hide (Box&, (Data_t)) -> void Widget is actively hidden, leaves the visible area of the window, or its opacity is set to 0
show (Box&, (Data_t)) -> void Widget is drawn for the first time after being realized
map (Box&, (Data_t)) -> void Widget is mapped, this happens the first time it and all its parents become visible
unmap (Box&, (Data_t)) -> void Widget and all of its parents become hidden

Constructor & Destructor Documentation

◆ Box() [1/2]

mousetrap::Box::Box ( Orientation  orientation = Orientation::HORIZONTAL)

construct

Parameters
orientationorientation, if horizontal, widgets will be arranged left to right, if vertical, widgets will be arranged top to bottom

◆ Box() [2/2]

mousetrap::Box::Box ( detail::BoxInternal *  internal)

construct from internal

Parameters
internal

Member Function Documentation

◆ get_homogeneous()

bool mousetrap::Box::get_homogeneous ( ) const

get whether the box should attempt to allocate the same size to all of its children

Returns
boolean

◆ get_internal()

NativeObject mousetrap::Box::get_internal ( ) const
overridevirtual

expose internally managed object, \for_internal_use_only

Reimplemented from mousetrap::SignalEmitter.

◆ get_n_items()

uint64_t mousetrap::Box::get_n_items ( )

get number of children

Returns
uint64_t

◆ get_orientation()

Orientation mousetrap::Box::get_orientation ( ) const

get orientation

Returns
orientation

◆ get_spacing()

float mousetrap::Box::get_spacing ( ) const

get minimum spacing between two children

Returns
spacing in pixels

◆ insert_after()

void mousetrap::Box::insert_after ( const Widget to_append,
const Widget after 
)

insert a widget after another widget already in the box

Parameters
to_appendwidget not currently in box
afterwidget already in box, or nullptr to insert widget at the start of the box

References insert_after().

Referenced by insert_after().

◆ push_back()

void mousetrap::Box::push_back ( const Widget widget)

add a widget to the end of the box

Parameters
widget

References push_back().

Referenced by push_back().

◆ push_front()

void mousetrap::Box::push_front ( const Widget widget)

add a widget to the start of the box

Parameters
widget

References push_front().

Referenced by push_front().

◆ remove()

void mousetrap::Box::remove ( const Widget widget)

remove a widget from the box

Parameters
widgetwidget already in box, if widget is not contained in box, does nothing

◆ set_homogeneous()

void mousetrap::Box::set_homogeneous ( bool  b)

set whether the box should attempt to allocate the same size to all of its children

Parameters
b

◆ set_orientation()

void mousetrap::Box::set_orientation ( Orientation  orientation)

set orientation

Parameters
orientation

◆ set_spacing()

void mousetrap::Box::set_spacing ( float  spacing)

set minimum spacing between two children, 0 by default

Parameters
spacingin pixels

References mousetrap::log::critical().


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