cgv
Loading...
Searching...
No Matches
cgv::app::overlay Class Reference
Inheritance diagram for cgv::app::overlay:
cgv::base::node cgv::render::drawable cgv::gui::provider cgv::gui::event_handler cgv::base::named cgv::base::traverse_policy cgv::base::traverse_policy cgv::base::base cgv::data::ref_counted cgv::reflect::self_reflection_tag cgv::app::canvas_overlay cgv::app::navigator cgv::app::themed_canvas_overlay cgv::app::color_map_editor cgv::app::color_map_legend cgv::app::color_selector cgv::app::performance_monitor

Classes

struct  gui_options_t
 

Public Types

enum  AlignmentOption {
  AO_FREE , AO_START , AO_CENTER , AO_END ,
  AO_PERCENTUAL
}
 
enum  StretchOption {
  SO_NONE , SO_HORIZONTAL , SO_VERTICAL , SO_BOTH ,
  SO_PERCENTUAL
}
 

Public Member Functions

virtual bool self_reflect (cgv::reflect::reflection_handler &_rh)
 overload to reflect members of derived classes
 
virtual void stream_help (std::ostream &os)
 overload to stream help information to the given output stream
 
virtual bool handle (cgv::gui::event &e)
 handle incomming events; calls handle_key_events or handle_mouse_events depending on the event type; mouse events will only be handled if the mouse is over the overlay rectangle
 
virtual bool handle_key_event (cgv::gui::key_event &e)
 overload this method to handle key events
 
virtual bool handle_mouse_event (cgv::gui::mouse_event &e, cgv::ivec2 local_mouse_pos)
 overload this method to handle mouse events; local_mouse_pos is the mouse position in the local coordinate space of the overlay rectangle
 
virtual void handle_member_change (const cgv::utils::pointer_test &m)
 implement to handle member changes
 
virtual void on_set (void *member_ptr)
 default implementation of that calls handle_member_change and afterwards updates the member in the gui and post a redraw
 
bool blocks_events () const
 return whether this overlay blocks events, i.e. does not pass them to the next event handler
 
void blocks_events (bool flag)
 set whether the overlay blocks events
 
ivec2 get_viewport_size () const
 return the current viewport size
 
virtual ivec2 get_local_mouse_pos (ivec2 mouse_pos) const
 return the mouse position local to the container of this overlay
 
cgv::g2d::irect get_rectangle () const
 return the current rectangle area (in screen coordinates) of the overlay taking layout into account
 
cgv::g2d::irect get_local_rectangle () const
 return the current rectangle area of the overlay in local space, i.e. with position set to zero
 
AlignmentOption get_horizontal_alignment () const
 get the horizontal alignment
 
AlignmentOption get_vertical_alignment () const
 get the vertical alignment
 
vec2 get_percentual_offset () const
 get the percentual alignment offset (only valid if get_horizontal_alignment() or get_vertical_alignment() returns AlignmentOption::AO_PERCENTUAL)
 
void set_alignment (AlignmentOption horizontal, AlignmentOption vertical, vec2 percentual_offset=vec2(-1.0f))
 set the alignment options
 
StretchOption get_stretch () const
 get the stretch
 
vec2 get_percentual_size () const
 get the percentual stretch (only valid if get_stretch() returns StretchOption::SO_PERCENTUAL)
 
void set_stretch (StretchOption stretch, vec2 percentual_size=vec2(-1.0f))
 set the stretch option
 
ivec2 get_margin () const
 return the margin as set in the layout parameters
 
void set_margin (const ivec2 &margin)
 set the overlay margin
 
void set_size (const ivec2 &size)
 set the default size of the overlay before stretch gets applied
 
void set_visibility (bool visible)
 set the visibility of the overlay
 
void toggle_visibility ()
 toggle the visibility of the overlay
 
bool ensure_viewport (cgv::render::context &ctx)
 Check whether the viewport size has changed since the last call to this method.
 
bool ensure_layout (cgv::render::context &ctx)
 
virtual bool is_hit (const ivec2 &mouse_pos) const
 Test if the mouse pointer is hovering over this overlay and returns true if this is the case.
 
bool begin_overlay_gui ()
 begins a tree node if create default tree node is set in the gui options; automatically creates the layout gui
 
void end_overlay_gui ()
 ends the tree node of the overlay gui
 
void create_layout_gui ()
 provides a default gui implementation for private overlay layout members
 
void create_gui ()
 Creates a tree node containing the overlay layout options and the gui as specified by the derived overlay class.
 
- Public Member Functions inherited from cgv::base::node
 node (const std::string &name="")
 construct from name
 
node_ptr get_parent () const
 return the parent node
 
base_ptr get_root () const
 return the root node by traversing parents until no more parent is available
 
void set_parent (node_ptr _parent)
 set a new parent node
 
node_ptr get_node ()
 cast upward to node
 
const_node_ptr get_node_const ()
 cast upward to const node
 
std::string get_type_name () const
 overload to return the type name of this object
 
- Public Member Functions inherited from cgv::base::named
 named (const std::string &name="")
 construct from name
 
const std::string & get_name () const
 return the parent node
 
void set_name (const std::string &_name)
 set a new parent node
 
named_ptr get_named ()
 cast upward to named
 
const_named_ptr get_named_const ()
 cast upward to const named
 
- Public Member Functions inherited from cgv::base::base
virtual std::string get_default_options () const
 overload to provide default options for registration
 
std::string get_name_or_type_name () const
 determine name of instance by checking cgv::base::named interface and in failure fallback to get_type_name()
 
virtual void on_register ()
 overload to handle register events that is sent after the instance has been registered
 
virtual void unregister ()
 overload to handle unregistration of instances
 
virtual bool on_exit_request ()
 overload to handle the appication exit request, return true if exiting is allowed and false otherwise
 
virtual void stream_stats (std::ostream &)
 overload to show the content of this object
 
virtual data::ref_ptr< group, trueget_group ()
 perform downcast to group
 
virtual data::ref_ptr< const named, trueget_named_const () const
 perform downcast to const named
 
virtual data::ref_ptr< const node, trueget_node_const () const
 perform downcast to const node
 
virtual data::ref_ptr< const group, trueget_group_const () const
 perform downcast to const group
 
template<class T >
data::ref_ptr< T, truecast ()
 cast to arbitrary class, but use the casts to named, node and group from the interface
 
template<class T >
data::ref_ptr< const T, truecast_const ()
 const cast to arbitrary class, but use the casts to named, node and group from the interface
 
template<class T >
Tget_interface ()
 use dynamic type cast to check for the given interface
 
template<class T >
const Tget_const_interface () const
 use dynamic type cast to check for the given interface
 
virtual void update ()
 this virtual update allows for example to ask a view to update the viewed value. The default implementation is empty.
 
virtual voidget_user_data () const
 this virtual method allows to pass application specific data for internal purposes
 
virtual std::string get_property_declarations ()
 return a semicolon separated list of property declarations
 
virtual bool set_void (const std::string &property, const std::string &value_type, const void *value_ptr)
 abstract interface for the setter of a dynamic property.
 
virtual bool get_void (const std::string &property, const std::string &value_type, void *value_ptr)
 abstract interface for the getter of a dynamic property.
 
virtual bool call_void (const std::string &method, const std::vector< std::string > &param_value_types, const std::vector< const void * > &param_value_ptrs, const std::string &result_type="", void *result_value_ptr=0)
 abstract interface to call an action
 
void set (const std::string &property, const char *value)
 specialization of set method to support const char* as strings
 
template<typename T >
void set (const std::string &property, const T &value)
 set a property of the element to the given value and perform standard conversions if necessary.
 
template<typename T >
T get (const std::string &property)
 query a property of the element and perform standard conversions if necessary.
 
void multi_set (const std::string &property_assignments, bool report_error=true)
 set several properties
 
bool is_property (const std::string &property_name, std::string *type_name=0)
 check if the given name specifies a property.
 
voidfind_member_ptr (const std::string &property_name, std::string *type_name=0)
 find a member pointer by name.
 
- Public Member Functions inherited from cgv::data::ref_counted
int get_ref_count () const
 read access to current count
 
- Public Member Functions inherited from cgv::render::drawable
 drawable ()
 default construction
 
void hide ()
 hide the drawable
 
void show ()
 show the drawable
 
bool is_visible () const
 check whether the drawable is visible
 
contextget_context () const
 access the current context. The context will be available latestly in the init method but not in the contructor.
 
void set_context (context *_ctx)
 set the current focus context, this should only be called by the context itself
 
viewfind_view_as_node (size_t view_idx=0) const
 convenience function to find the view control in the current hierarchy
 
bool get_world_location (int x, int y, const view &V, dvec3 &world_location, double *window_z_ptr=0) const
 use given view together with depth buffer of context in order to compute the world location of the point at mouse pointer location (x,y)
 
void post_redraw ()
 posts a redraw event to the current context if one is available
 
void force_redraw ()
 forces a redraw right now. This cannot be called from init, init_frame, draw, finish_draw, finish_frame and clear
 
virtual bool init (context &)
 this method is called after creation or recreation of the context, return whether all necessary functionality is supported
 
virtual void resize (unsigned int w, unsigned int h)
 callback to announce resizing of the output window
 
virtual void init_frame (context &)
 this method is called in one pass over all drawables before the draw method
 
virtual void draw (context &)
 overload to draw the content of this drawable
 
virtual void finish_draw (context &)
 this method is called when the current drawable is left in a tree traversal that calls the draw method
 
virtual void finish_frame (context &)
 this method is called in one pass over all drawables after drawing
 
virtual void after_finish (context &)
 this method is called in one pass over all drawables after finish frame
 
virtual void clear (context &)
 clear all objects living in the context like textures or display lists
 
- Public Member Functions inherited from cgv::base::traverse_policy
 traverse_policy (int _policy=TP_ALL+TP_STOP_ON_SUCCESS, bool _active=true, int _focus=-1)
 construct default traverse policy that visits everything
 
int get_policy () const
 return the policy without the stop on success flag
 
bool stop_on_success () const
 return whether to stop on success
 
bool stop_on_failure () const
 return whether to stop on failure
 
void set_policy (int _policy)
 set a new policy, always add stop on success flag if needed
 
int get_focused_child () const
 return the focused child or -1 if none is focused
 
void set_focused_child (int _focused_child)
 set the focused child
 
bool get_active () const
 return whether the current node is active
 
void set_active (bool _active)
 set the active flag of the current node
 
- Public Member Functions inherited from cgv::gui::provider
void remove_element (cgv::base::base_ptr)
 remove a single element from the gui
 
void remove_all_elements ()
 this method removes all elements from the gui and can be used in a method that rebuilds the complete gui
 
cgv::base::base_ptr find_element (const std::string &name)
 find a gui element by name in the current group, return empty pointer if not found
 
template<typename T >
data::ref_ptr< view< T > > find_view (const T &value, int *idx_ptr=0)
 find a view of a given class member
 
template<typename T >
data::ref_ptr< control< T > > find_control (T &value, int *idx_ptr=0)
 find a control of a given class member
 
control_ptr find_control_void (void *value_ptr, int *idx_ptr)
 access to control of untyped member pointer
 
view_ptr find_view_void (void *value_ptr, int *idx_ptr)
 access to view of untyped member pointer
 
template<typename T >
void set_control_property (T &value, const std::string &property_name, const std::string &property_value)
 Set the property value of all controls of a given class member.
 
gui_group_ptr get_parent_group () const
 use the parent group to append to be managed elements that should be destroyed in a post_recreate_gui event
 
view_ptr add_view_void (const std::string &label, const void *value_ptr, const std::string &value_type, const std::string &gui_type, const std::string &options, const std::string &align)
 add a newly created view to the group
 
control_ptr add_control_void (const std::string &label, void *value_ptr, abst_control_provider *acp, const std::string &value_type, const std::string &gui_type, const std::string &options, const std::string &align, void *user_data)
 add a newly created control to the group
 
 provider ()
 default construction
 
 ~provider ()
 ensure to remove posted recreation callbacks
 
virtual std::string get_gui_name () const
 Derive a name for this instance that can be used in the gui as heading.
 
virtual std::string get_parent_type () const
 Returns the group type that should be used by the class embedding the gui of the provider.
 
virtual bool ensure_selected_in_tab_group_parent ()
 ensure that my UI is selected in the parent group in case this is a tab group, otherwise return false
 
virtual void update_member (void *member_ptr)
 call this to update all views and controls of a member
 
virtual void update_all_members ()
 call this to update all views and controls of all member
 
virtual std::string get_menu_path () const
 return a path in the main menu to select the gui
 
virtual shortcut get_shortcut () const
 return a shortcut to activate the gui without menu navigation
 
virtual void recreate_gui ()
 Recreate the gui of this instance right now.
 
virtual void post_recreate_gui ()
 delayed recreation of gui
 
void align (const std::string &_align)
 send pure alignment information
 
std::string concat_enum_def (const std::vector< std::string > &names, const std::string &additional_first_name="", const std::string &additional_last_name="")
 add a new group to the given parent group, not supported yet
 
gui_group_ptr add_object_gui (cgv::base::base_ptr object, const std::string &label, const std::string &group_type, const std::string &options, const std::string &align)
 
void integrate_object_gui (cgv::base::base_ptr object)
 call this in create_gui() function to integrate gui of another provider object by setting the parent group and parent provider of the other object
 
void inline_object_gui (cgv::base::base_ptr object)
 integrate (if not explicitly done before) and inline the gui of another object that must be derived from provider
 
gui_group_ptr add_group (const std::string &label, const std::string &group_type, const std::string &options="", const std::string &align="\n")
 add a newly created subgroup to the group
 
cgv::base::base_ptr add_decorator (const std::string &label, const std::string &decorator_type, const std::string &options="", const std::string &align="\n")
 add a newly created decorator to the group
 
button_ptr add_button (const std::string &label, const std::string &options="", const std::string &align="\n")
 use the current gui driver to append a new button with the given label
 
template<typename T >
data::ref_ptr< view< T > > add_view (const std::string &label, const T &value, const std::string &gui_type="", const std::string &options="", const std::string &align="\n")
 use this to add a new view to the gui with a given value type, gui type and init options
 
template<typename T >
data::ref_ptr< control< T > > add_control (const std::string &label, T &value, const std::string &gui_type="", const std::string &options="", const std::string &align="\n")
 use this to add a new control to the gui with a given value type, gui type and init options
 
template<typename T >
data::ref_ptr< control< T > > add_control (const std::string &label, control_provider< T > *provider, const std::string &gui_type="", const std::string &options="", const std::string &align="\n", void *user_data=0)
 use this to add a new control to the gui, where the control is implemented with a control provider class
 
template<typename T >
data::ref_ptr< control< T > > add_member_control (cgv::base::base *base_ptr, const std::string &label, T &value, const std::string &gui_type="", const std::string &options="", const std::string &align="\n")
 add control with callback to cgv::base::on_set method on cgv::gui::control::value_change
 
bool add_tree_node (const std::string &label, bool &toggle, int level, const std::string &a="\n", gui_group_ptr ggp=gui_group_ptr())
 add a collapsable node to the gui (deprecated)
 
template<typename T >
bool begin_tree_node (const std::string &label, const T &value, bool initial_visibility=false, const std::string &options="", gui_group_ptr ggp=gui_group_ptr())
 Begin a sub tree of a tree structured gui.
 
template<typename T >
void end_tree_node (const T &value)
 template specialization that allows to specify value reference plus node_instance by using the result of the function with_instance(value,idx) for the value argument finish a sub tree begun with begin_tree_node

 
template<typename T >
bool is_tree_node_visible (const T &value) const
 return whether the sub tree attached to a value is visible
 
template<typename T >
void set_tree_node_visibility (const T &value, bool is_visible)
 set the visibility status of sub tree attached to a value. This calls the post_recreate method if needed.
 
bool begin_tree_node_void (const std::string &label, const void *value_ptr, int index=-1, bool initial_visibility=false, const std::string &options="", gui_group_ptr ggp=gui_group_ptr())
 void version of the templated functions
 
void end_tree_node_void (const void *value_ptr, int index=-1)
 
bool is_tree_node_visible_void (const void *value_ptr, int index) const
 
void set_tree_node_visibility_void (const void *value_ptr, int index, bool is_visible)
 
template<typename T >
bool add_gui (const std::string &label, T &value, const std::string &gui_type="", const std::string &options="")
 Add a composed gui of the given gui_type for the given value.
 
- Public Member Functions inherited from cgv::gui::event_handler
 event_handler ()
 default construction
 
bool grab_focus ()
 grab the focus in all parent nodes
 
bool add_key_control (const std::string &property, const std::string &options, cgv::base::group_ptr group=cgv::base::group_ptr())
 add a key control for the given property with the given options.
 

Public Attributes

gui_options_t gui_options
 options for the GUI creation of this overlay (must be set before GUI creation)
 

Protected Member Functions

virtual void on_visibility_change ()
 called when the overlay visibility is changed through the default gui
 
virtual void on_layout_change ()
 called when the overlay layout parameters are changed through the default gui
 
void update_layout ()
 update the layout of the overlay container
 
virtual void create_gui_impl ()
 virtual method to implement the derived class gui creation
 
- Protected Member Functions inherited from cgv::base::base
virtual ~base ()
 make destructor virtual and not accessible from outside
 
- Protected Member Functions inherited from cgv::data::ref_counted
 ref_counted ()
 constructor initializes the count to 0
 
void set_ref_count (int c) const
 write access is also const to allow ref counted pointers to const instances
 
- Protected Member Functions inherited from cgv::gui::provider
void set_parent (gui_group_ptr)
 the gui window sets the parent group through this method
 
void update_parent ()
 update the parent group
 
virtual void on_select ()
 called by selection_change_cb whenever the gui of this provider is selected
 
virtual void on_deselect ()
 called by selection_change_cb whenever the gui of this provider is deselected
 
virtual void selection_change_cb (cgv::base::base_ptr new_child, bool selected)
 this is called by the gui group when the selection changes
 

Additional Inherited Members

- Static Public Member Functions inherited from cgv::gui::provider
template<typename T >
static bool & ref_tree_node_visible_flag (const T &value)
 return a reference to the boolean flag, that tells whether the tree node for the passed value is visible
 
static bool & ref_tree_node_visible_flag_void (const void *value_ptr, int index=-1)
 
- Static Protected Member Functions inherited from cgv::base::base
template<class T >
static data::ref_ptr< T, truecast_dynamic (base *b)
 use dynamic cast for upcast to given class
 
- Protected Attributes inherited from cgv::base::node
node_ptr parent
 store a pointer to the parent node
 
- Protected Attributes inherited from cgv::base::named
std::string name
 store the name as a string
 
- Protected Attributes inherited from cgv::base::traverse_policy
TraversePolicy policy
 
bool active
 
int focus
 
- Protected Attributes inherited from cgv::gui::provider
gui_group_ptr parent_group
 driver specific handle for the group gui element managing the gui built in the provider
 
providerparent_provider
 

Detailed Description

Definition at line 20 of file overlay.h.

Member Enumeration Documentation

◆ AlignmentOption

enum cgv::app::overlay::AlignmentOption

Definition at line 27 of file overlay.h.

◆ StretchOption

enum cgv::app::overlay::StretchOption

Definition at line 35 of file overlay.h.

Member Function Documentation

◆ begin_overlay_gui()

bool cgv::app::overlay::begin_overlay_gui ( )

begins a tree node if create default tree node is set in the gui options; automatically creates the layout gui

Definition at line 151 of file overlay.cxx.

References cgv::gui::provider::align(), cgv::gui::provider::begin_tree_node_void(), gui_options, and cgv::base::named::name.

Referenced by create_gui().

◆ blocks_events() [1/2]

bool cgv::app::overlay::blocks_events ( ) const
inline

return whether this overlay blocks events, i.e. does not pass them to the next event handler

Definition at line 127 of file overlay.h.

◆ blocks_events() [2/2]

void cgv::app::overlay::blocks_events ( bool  flag)
inline

set whether the overlay blocks events

Definition at line 130 of file overlay.h.

◆ create_gui()

void cgv::app::overlay::create_gui ( )
virtual

Creates a tree node containing the overlay layout options and the gui as specified by the derived overlay class.

If you don't need to extend the gui of the overlay in your own plugin, call this method via:

inline_object_gui(overlay_ptr)

in your create_gui() method.

If you want to extend the default gui inside the provided tree node:

  1. Set overlay_ptr.gui_options.create_default_tree_node = false
  2. In the plugin create_gui() method:

    integrate_object_gui(overlay_ptr); if(overlay_ptr->begin_overlay_gui()) { overlay_ptr->create_gui();

    ...add custom controls

    overlay_ptr->end_overlay_gui(); }

!!! Do not overwrite create_gui() in the derived class if you want the default behaviour. !!!

Implements cgv::gui::provider.

Definition at line 202 of file overlay.cxx.

References begin_overlay_gui(), cgv::app::overlay::gui_options_t::create_default_tree_node, create_gui_impl(), create_layout_gui(), end_overlay_gui(), and gui_options.

◆ create_gui_impl()

virtual void cgv::app::overlay::create_gui_impl ( )
inlineprotectedvirtual

virtual method to implement the derived class gui creation

Reimplemented in cgv::app::navigator, cgv::app::color_map_editor, cgv::app::color_map_legend, cgv::app::color_selector, and cgv::app::performance_monitor.

Definition at line 84 of file overlay.h.

Referenced by create_gui().

◆ create_layout_gui()

◆ end_overlay_gui()

void cgv::app::overlay::end_overlay_gui ( )

ends the tree node of the overlay gui

Definition at line 164 of file overlay.cxx.

References cgv::gui::provider::align(), cgv::gui::provider::end_tree_node(), and cgv::base::named::name.

Referenced by create_gui().

◆ ensure_layout()

bool cgv::app::overlay::ensure_layout ( cgv::render::context ctx)

Definition at line 135 of file overlay.cxx.

◆ ensure_viewport()

bool cgv::app::overlay::ensure_viewport ( cgv::render::context ctx)

Check whether the viewport size has changed since the last call to this method.

Call this in the init_frame method of your overlay. Returns true if the size changed.

Definition at line 125 of file overlay.cxx.

References cgv::render::context::get_height(), cgv::render::context::get_width(), and update_layout().

◆ get_horizontal_alignment()

AlignmentOption cgv::app::overlay::get_horizontal_alignment ( ) const
inline

get the horizontal alignment

Definition at line 145 of file overlay.h.

◆ get_local_mouse_pos()

ivec2 cgv::app::overlay::get_local_mouse_pos ( ivec2  mouse_pos) const
virtual

return the mouse position local to the container of this overlay

Reimplemented in cgv::app::canvas_overlay.

Definition at line 76 of file overlay.cxx.

Referenced by handle().

◆ get_local_rectangle()

cgv::g2d::irect cgv::app::overlay::get_local_rectangle ( ) const
inline

return the current rectangle area of the overlay in local space, i.e. with position set to zero

Definition at line 142 of file overlay.h.

References cgv::math::fvec< T, N >::size().

Referenced by cgv::app::themed_canvas_overlay::get_content_rectangle(), and handle().

◆ get_margin()

ivec2 cgv::app::overlay::get_margin ( ) const
inline

return the margin as set in the layout parameters

Definition at line 166 of file overlay.h.

◆ get_percentual_offset()

vec2 cgv::app::overlay::get_percentual_offset ( ) const
inline

get the percentual alignment offset (only valid if get_horizontal_alignment() or get_vertical_alignment() returns AlignmentOption::AO_PERCENTUAL)

Definition at line 151 of file overlay.h.

◆ get_percentual_size()

vec2 cgv::app::overlay::get_percentual_size ( ) const
inline

get the percentual stretch (only valid if get_stretch() returns StretchOption::SO_PERCENTUAL)

Definition at line 160 of file overlay.h.

◆ get_rectangle()

◆ get_stretch()

StretchOption cgv::app::overlay::get_stretch ( ) const
inline

get the stretch

Definition at line 157 of file overlay.h.

◆ get_vertical_alignment()

AlignmentOption cgv::app::overlay::get_vertical_alignment ( ) const
inline

get the vertical alignment

Definition at line 148 of file overlay.h.

◆ get_viewport_size()

◆ handle()

bool cgv::app::overlay::handle ( cgv::gui::event e)
virtual

◆ handle_key_event()

virtual bool cgv::app::overlay::handle_key_event ( cgv::gui::key_event e)
inlinevirtual

overload this method to handle key events

Reimplemented in cgv::app::color_map_editor.

Definition at line 115 of file overlay.h.

Referenced by handle().

◆ handle_member_change()

virtual void cgv::app::overlay::handle_member_change ( const cgv::utils::pointer_test m)
inlinevirtual

implement to handle member changes

Reimplemented in cgv::app::canvas_overlay, cgv::app::color_map_editor, cgv::app::color_map_legend, cgv::app::color_selector, and cgv::app::performance_monitor.

Definition at line 121 of file overlay.h.

Referenced by on_set().

◆ handle_mouse_event()

virtual bool cgv::app::overlay::handle_mouse_event ( cgv::gui::mouse_event e,
cgv::ivec2  local_mouse_pos 
)
inlinevirtual

overload this method to handle mouse events; local_mouse_pos is the mouse position in the local coordinate space of the overlay rectangle

Reimplemented in cgv::app::navigator, cgv::app::color_map_editor, and cgv::app::color_selector.

Definition at line 118 of file overlay.h.

Referenced by handle().

◆ is_hit()

bool cgv::app::overlay::is_hit ( const ivec2 mouse_pos) const
virtual

Test if the mouse pointer is hovering over this overlay and returns true if this is the case.

Specifically it checks if the mouse position is inside the rectangle defined by container. Override this method to implement your own test, i.e. for different overlay shapes.

Reimplemented in cgv::app::canvas_overlay.

Definition at line 146 of file overlay.cxx.

◆ on_layout_change()

void cgv::app::overlay::on_layout_change ( )
protectedvirtual

called when the overlay layout parameters are changed through the default gui

Definition at line 11 of file overlay.cxx.

References cgv::render::drawable::post_redraw(), and update_layout().

Referenced by set_alignment(), set_margin(), set_size(), and set_stretch().

◆ on_set()

void cgv::app::overlay::on_set ( void *  member_ptr)
virtual

default implementation of that calls handle_member_change and afterwards updates the member in the gui and post a redraw

Reimplemented from cgv::base::base.

Reimplemented in cgv::app::navigator, and cgv::app::canvas_overlay.

Definition at line 70 of file overlay.cxx.

References handle_member_change(), cgv::render::drawable::post_redraw(), and cgv::gui::provider::update_member().

◆ on_visibility_change()

void cgv::app::overlay::on_visibility_change ( )
protectedvirtual

called when the overlay visibility is changed through the default gui

Reimplemented in cgv::app::performance_monitor.

Definition at line 6 of file overlay.cxx.

References cgv::render::drawable::post_redraw(), and cgv::gui::provider::update_member().

Referenced by set_visibility().

◆ self_reflect()

virtual bool cgv::app::overlay::self_reflect ( cgv::reflect::reflection_handler _rh)
inlinevirtual

overload to reflect members of derived classes

Reimplemented from cgv::base::base.

Reimplemented in cgv::app::navigator.

Definition at line 106 of file overlay.h.

◆ set_alignment()

void cgv::app::overlay::set_alignment ( AlignmentOption  horizontal,
AlignmentOption  vertical,
vec2  percentual_offset = vec2(-1.0f) 
)

set the alignment options

Definition at line 80 of file overlay.cxx.

References on_layout_change().

◆ set_margin()

void cgv::app::overlay::set_margin ( const ivec2 margin)

set the overlay margin

Definition at line 103 of file overlay.cxx.

References on_layout_change().

Referenced by cgv::app::themed_canvas_overlay::themed_canvas_overlay().

◆ set_size()

void cgv::app::overlay::set_size ( const ivec2 size)

◆ set_stretch()

void cgv::app::overlay::set_stretch ( StretchOption  stretch,
vec2  percentual_size = vec2(-1.0f) 
)

set the stretch option

Definition at line 92 of file overlay.cxx.

References on_layout_change().

◆ set_visibility()

void cgv::app::overlay::set_visibility ( bool  visible)

set the visibility of the overlay

Definition at line 113 of file overlay.cxx.

References cgv::render::drawable::hide(), on_visibility_change(), and cgv::render::drawable::show().

Referenced by toggle_visibility().

◆ stream_help()

virtual void cgv::app::overlay::stream_help ( std::ostream &  os)
inlinevirtual

overload to stream help information to the given output stream

Implements cgv::gui::event_handler.

Reimplemented in cgv::app::navigator.

Definition at line 109 of file overlay.h.

◆ toggle_visibility()

void cgv::app::overlay::toggle_visibility ( )

toggle the visibility of the overlay

Definition at line 121 of file overlay.cxx.

References cgv::render::drawable::is_visible(), and set_visibility().

◆ update_layout()

void cgv::app::overlay::update_layout ( )
protected

update the layout of the overlay container

Definition at line 215 of file overlay.cxx.

References cgv::math::fvec< T, N >::x(), and cgv::math::fvec< T, N >::y().

Referenced by ensure_viewport(), cgv::app::color_selector::init_frame(), and on_layout_change().

Member Data Documentation

◆ gui_options

gui_options_t cgv::app::overlay::gui_options

options for the GUI creation of this overlay (must be set before GUI creation)

Definition at line 103 of file overlay.h.

Referenced by begin_overlay_gui(), create_gui(), and create_layout_gui().


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