cgv
Loading...
Searching...
No Matches
cgv::gui::abst_control Class Referenceabstract

gui and type independent base class of all controls More...

#include <control.h>

Inheritance diagram for cgv::gui::abst_control:
cgv::gui::abst_view cgv::base::node cgv::base::named cgv::base::base cgv::data::ref_counted cgv::reflect::self_reflection_tag cgv::gui::control< bool > cgv::gui::control< T > cgv::gui::key_control< bool > cgv::gui::key_control< bool > cgv::gui::key_control< T >

Public Member Functions

 abst_control (const std::string &name)
 construct from name
bool shows (const void *ptr) const
 add default implementation passing the query to the controls() method
virtual bool controls (const void *ptr) const =0
 return whether the control controls the value pointed to by ptr
virtual void attach_to_value_change (cgv::signal::functor_base *func)=0
 attach a functor to the value change signal
virtual void attach_to_check_value (cgv::signal::functor_base *bool_func)=0
 attach a functor to the value change signal
Public Member Functions inherited from cgv::gui::abst_view
 abst_view (const std::string &name)
 pass name on to node, careful the implementation of this is in the source file control.cxx to avoid name clashes with view.cxx
 ~abst_view ()
 ensures detachment of view
void attach_to_reference (const void *ptr)
 links all views to a reference into a doubly linked list in order to allow controls of the reference to update all attached views
void detach_from_reference ()
 detach view again
void update_views ()
 calls the update method of all other attached views
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 () override
 cast upward to node
const_node_ptr get_node_const () const override
 cast upward to const node
std::string get_type_name () const override
 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 () override
 cast upward to named
const_named_ptr get_named_const () const override
 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, true > get_group ()
 perform downcast to group
virtual data::ref_ptr< const group, true > get_group_const () const
 perform downcast to const group
template<class T>
data::ref_ptr< T, true > cast ()
 cast to arbitrary class, but use the casts to named, node and group from the interface
template<class T>
data::ref_ptr< const T, true > cast_const () const
 const cast to arbitrary class, but use the casts to named, node and group from the interface
template<class T>
T * get_interface ()
 use dynamic type cast to check for the given interface
template<class T>
const T * get_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 void * get_user_data () const
 this virtual method allows to pass application specific data for internal purposes
virtual bool self_reflect (cgv::reflect::reflection_handler &)
 used for simple self reflection
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 void on_set (void *member_ptr)
 this callback is called when the set_void method has changed a member and can be overloaded in derived class
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.
void * find_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

Static Public Member Functions

static bool on_release (const void *value_ptr)
 return whether value_change signal was sent due to a release event

Static Protected Member Functions

static bool access_on_release (const void *value_ptr, char access_mode)
 access on_release value for given value ptr to 'q'uery, 's'et or 'u'nset
Static Protected Member Functions inherited from cgv::base::base
template<class T>
static data::ref_ptr< T, true > cast_dynamic (base *b)
 use dynamic cast for downcast to given class

Additional Inherited Members

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 Attributes inherited from cgv::gui::abst_view
abst_view * next_in_list
abst_view * prev_in_list
const void * ptr
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

Detailed Description

gui and type independent base class of all controls

Definition at line 13 of file control.h.

Constructor & Destructor Documentation

◆ abst_control()

cgv::gui::abst_control::abst_control ( const std::string & name)

Member Function Documentation

◆ access_on_release()

bool cgv::gui::abst_control::access_on_release ( const void * value_ptr,
char access_mode )
staticprotected

access on_release value for given value ptr to 'q'uery, 's'et or 'u'nset

Definition at line 15 of file control.cxx.

Referenced by on_release().

◆ attach_to_check_value()

virtual void cgv::gui::abst_control::attach_to_check_value ( cgv::signal::functor_base * bool_func)
pure virtual

attach a functor to the value change signal

Implemented in cgv::gui::control< T >, and cgv::gui::control< bool >.

◆ attach_to_value_change()

virtual void cgv::gui::abst_control::attach_to_value_change ( cgv::signal::functor_base * func)
pure virtual

attach a functor to the value change signal

Implemented in cgv::gui::control< T >, and cgv::gui::control< bool >.

◆ controls()

virtual bool cgv::gui::abst_control::controls ( const void * ptr) const
pure virtual

return whether the control controls the value pointed to by ptr

Implemented in cgv::gui::control< T >, and cgv::gui::control< bool >.

Referenced by shows().

◆ on_release()

bool cgv::gui::abst_control::on_release ( const void * value_ptr)
static

return whether value_change signal was sent due to a release event

Definition at line 33 of file control.cxx.

References access_on_release().

◆ shows()

bool cgv::gui::abst_control::shows ( const void * ptr) const
virtual

add default implementation passing the query to the controls() method

Implements cgv::gui::abst_view.

Definition at line 50 of file control.cxx.

References controls().


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