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

container widget that assures childs size conforms to given aspect ratio More...

#include <aspect_frame.hpp>

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

Public Member Functions

 AspectFrame (float ratio, float x_align=0.5, float y_align=0.5)
 construct
 
 AspectFrame (detail::AspectFrameInternal *)
 construct from internal
 
 ~AspectFrame ()
 dtor
 
NativeObject get_internal () const override
 expose internally managed object, \for_internal_use_only
 
void set_ratio (float ratio)
 set ratio, width / height
 
float get_ratio () const
 get ratio
 
void set_child_x_alignment (float value)
 set child horizontal alignment
 
void set_child_y_alignment (float value)
 set child vertical alignment
 
float get_child_x_alignment () const
 get child horizontal alignment
 
float get_child_y_alignment () const
 get child vertical alignment
 
void set_child (const Widget &widget)
 set child
 
void remove_child ()
 remove child, equivalent to set_child(nullptr)
 
- 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< AspectFrame >
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< AspectFrame >
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< AspectFrame >
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< AspectFrame >
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< AspectFrame >
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< AspectFrame >
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< AspectFrame >
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< AspectFrame >
static const char * signal_id
 glib ID
 
- Static Public Attributes inherited from mousetrap::has_signal_unrealize< AspectFrame >
static const char * signal_id
 
- Static Public Attributes inherited from mousetrap::has_signal_destroy< AspectFrame >
static const char * signal_id
 
- Static Public Attributes inherited from mousetrap::has_signal_hide< AspectFrame >
static const char * signal_id
 glib ID
 
- Static Public Attributes inherited from mousetrap::has_signal_show< AspectFrame >
static const char * signal_id
 glib ID
 
- Static Public Attributes inherited from mousetrap::has_signal_map< AspectFrame >
static const char * signal_id
 glib ID
 
- Static Public Attributes inherited from mousetrap::has_signal_unmap< AspectFrame >
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< AspectFrame >
 has_signal_realize (AspectFrame *instance)
 
- Protected Member Functions inherited from mousetrap::has_signal_unrealize< AspectFrame >
 has_signal_unrealize (AspectFrame *instance)
 ctor protected
 
- Protected Member Functions inherited from mousetrap::has_signal_destroy< AspectFrame >
 has_signal_destroy (AspectFrame *instance)
 ctor protected
 
- Protected Member Functions inherited from mousetrap::has_signal_hide< AspectFrame >
 has_signal_hide (AspectFrame *instance)
 
- Protected Member Functions inherited from mousetrap::has_signal_show< AspectFrame >
 has_signal_show (AspectFrame *instance)
 
- Protected Member Functions inherited from mousetrap::has_signal_map< AspectFrame >
 has_signal_map (AspectFrame *instance)
 
- Protected Member Functions inherited from mousetrap::has_signal_unmap< AspectFrame >
 has_signal_unmap (AspectFrame *instance)
 

Detailed Description

container widget that assures childs size conforms to given aspect ratio

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

Constructor & Destructor Documentation

◆ AspectFrame()

mousetrap::AspectFrame::AspectFrame ( float  ratio,
float  x_align = 0.5,
float  y_align = 0.5 
)

construct

Parameters
ratioaspect ratio, width / height
x_alignhorizontal alignment of child, in [0, 1] where 0 for left-most, 1 for right-most
y_alignvertical alignment of child, in [0, 1] where 0 for top-most, 1 for bottom-most

References mousetrap::log::critical(), and mousetrap::log::warning().

Member Function Documentation

◆ get_child_x_alignment()

float mousetrap::AspectFrame::get_child_x_alignment ( ) const

get child horizontal alignment

Returns
float

◆ get_child_y_alignment()

float mousetrap::AspectFrame::get_child_y_alignment ( ) const

get child vertical alignment

Returns
float

◆ get_internal()

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

expose internally managed object, \for_internal_use_only

Reimplemented from mousetrap::SignalEmitter.

◆ get_ratio()

float mousetrap::AspectFrame::get_ratio ( ) const

get ratio

Returns
float

◆ set_child()

void mousetrap::AspectFrame::set_child ( const Widget widget)

set child

Parameters
widget

References set_child().

Referenced by set_child().

◆ set_child_x_alignment()

void mousetrap::AspectFrame::set_child_x_alignment ( float  value)

set child horizontal alignment

Parameters
valuein [0, 1] where 0 for left-most, 1 for right-most

References mousetrap::log::warning().

◆ set_child_y_alignment()

void mousetrap::AspectFrame::set_child_y_alignment ( float  value)

set child vertical alignment

Parameters
valuein [0, 1] where 0 for top-most, 1 for bottom-most

References mousetrap::log::warning().

◆ set_ratio()

void mousetrap::AspectFrame::set_ratio ( float  ratio)

set ratio, width / height

Parameters
rationew ratio as fraction

References mousetrap::log::critical().


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