mousetrap v0.2.0
|
a widget that allows to display multiple widgets above a common child More...
#include <overlay.hpp>
Public Member Functions | |
Overlay () | |
construct empty | |
Overlay (detail::OverlayInternal *) | |
construct from internal | |
~Overlay () | |
destructor | |
NativeObject | get_internal () const override |
expose internal | |
void | set_child (const Widget &widget) |
set the bottom-most widget | |
void | remove_child () |
remove the bottom-most widget | |
void | add_overlay (const Widget &widget, bool included_in_measurement=true, bool clip=false) |
add a widget on top | |
void | remove_overlay (const Widget &widget) |
remove a widget from the overlay, this does not affect the bottom-most child widget | |
Public Member Functions inherited from mousetrap::Widget | |
Widget (detail::WidgetInternal *) | |
construct from internal | |
virtual | ~Widget () |
default dtor | |
Widget (const Widget &)=delete | |
Widget & | operator= (const Widget &) const =delete |
Widget (Widget &&other)=delete | |
Widget & | operator= (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< Overlay > | |
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< Overlay > | |
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< Overlay > | |
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< Overlay > | |
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< Overlay > | |
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< Overlay > | |
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< Overlay > | |
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< Overlay > | |
static const char * | signal_id |
glib ID | |
Static Public Attributes inherited from mousetrap::has_signal_unrealize< Overlay > | |
static const char * | signal_id |
Static Public Attributes inherited from mousetrap::has_signal_destroy< Overlay > | |
static const char * | signal_id |
Static Public Attributes inherited from mousetrap::has_signal_hide< Overlay > | |
static const char * | signal_id |
glib ID | |
Static Public Attributes inherited from mousetrap::has_signal_show< Overlay > | |
static const char * | signal_id |
glib ID | |
Static Public Attributes inherited from mousetrap::has_signal_map< Overlay > | |
static const char * | signal_id |
glib ID | |
Static Public Attributes inherited from mousetrap::has_signal_unmap< Overlay > | |
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< Overlay > | |
has_signal_realize (Overlay *instance) | |
Protected Member Functions inherited from mousetrap::has_signal_unrealize< Overlay > | |
has_signal_unrealize (Overlay *instance) | |
ctor protected | |
Protected Member Functions inherited from mousetrap::has_signal_destroy< Overlay > | |
has_signal_destroy (Overlay *instance) | |
ctor protected | |
Protected Member Functions inherited from mousetrap::has_signal_hide< Overlay > | |
has_signal_hide (Overlay *instance) | |
Protected Member Functions inherited from mousetrap::has_signal_show< Overlay > | |
has_signal_show (Overlay *instance) | |
Protected Member Functions inherited from mousetrap::has_signal_map< Overlay > | |
has_signal_map (Overlay *instance) | |
Protected Member Functions inherited from mousetrap::has_signal_unmap< Overlay > | |
has_signal_unmap (Overlay *instance) | |
a widget that allows to display multiple widgets above a common child
signal id | signature | emitted when... |
---|---|---|
Signals inherited from Widget | ||
realize | (Overlay&, (Data_t)) -> void | Widget is realized, usually right before it is drawn for the first time |
unrealize | (Overlay&, (Data_t)) -> void | Widget is unmapped and will no longer be drawn |
destroy | (Overlay&, (Data_t)) -> void | Widgets internal state is deallocated, calling Widget::~Widget() may not necessarily emit this signal |
hide | (Overlay&, (Data_t)) -> void | Widget is actively hidden, leaves the visible area of the window, or its opacity is set to 0 |
show | (Overlay&, (Data_t)) -> void | Widget is drawn for the first time after being realized |
map | (Overlay&, (Data_t)) -> void | Widget is mapped, this happens the first time it and all its parents become visible |
unmap | (Overlay&, (Data_t)) -> void | Widget and all of its parents become hidden |
void mousetrap::Overlay::add_overlay | ( | const Widget & | widget, |
bool | included_in_measurement = true , |
||
bool | clip = false |
||
) |
add a widget on top
widget | |
included_in_measurement | should the entire stacked overlay of widgets be resized if widget size exceeds that of the base childs size |
clip | should the widget be clipped if the overlays size is smaller than that of the overlaid widget |
References add_overlay().
Referenced by add_overlay().
|
overridevirtual |
expose internal
Reimplemented from mousetrap::SignalEmitter.
void mousetrap::Overlay::remove_overlay | ( | const Widget & | widget | ) |
remove a widget from the overlay, this does not affect the bottom-most child widget
widget |
void mousetrap::Overlay::set_child | ( | const Widget & | widget | ) |
set the bottom-most widget
widget |
References set_child().
Referenced by mousetrap::PopupMessageOverlay::set_child(), and set_child().