|
| control (const std::string &_name, T &_value) |
| construct abstract element from reference to value
|
|
| control (const std::string &_name, T *_value) |
| construct abstract element from control_provider
|
|
| control (const std::string &_name, abst_control_provider *_cp, void *user_data) |
| this constructor allows contruction from control_provider with user data or if the pointer to the control_provider is null, interpret the pointer to the user data as the value pointer and act as the previous constructor.
|
|
const T | get_value () const |
| return a reference to the current value
|
|
const T & | get_new_value () const |
| return the new value to the callbacks attached to the check_value signal
|
|
void | set_new_value (const T &nv) |
| set a different new value from the callbacks attached to the check_value signal
|
|
const T & | get_old_value () const |
| return the old value to the callbacks attached to the change_value signal
|
|
bool | check_and_set_value (const T &nv) |
| set new value only if check_value signal succeeds and send value_change signal. Return true if value has been changed.
|
|
bool | controls (const void *ptr) const |
| check whether the value represented by this element is pointing to the passed pointer
|
|
void | attach_to_value_change (cgv::signal::functor_base *func) |
| attach a functor to the value change signal
|
|
void | attach_to_check_value (cgv::signal::functor_base *bool_func) |
| attach a functor to the value change signal
|
|
| 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
|
|
| 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
|
|
| 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
|
|
| 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
|
|
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 named, true > | get_named_const () const |
| perform downcast to const named
|
|
virtual data::ref_ptr< const node, true > | get_node_const () const |
| perform downcast to const node
|
|
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 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 > ¶m_value_types, const std::vector< const void * > ¶m_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.
|
|
int | get_ref_count () const |
| read access to current count
|
|
template<typename T>
class cgv::gui::control< T >
gui independent control of a value that has the type of the template argument. The value can either be specified as a reference or through the control_provider that implements a get and a set method.
Before the control changes a value, it emits the signal check_value to test if the new value is valid. The check_value signal has a boolean return value. All attached callbacks must return true in order for the check to be successful. The attached callbacks can also change the new value to a valid value. The check_value callbacks should use the get_new_value(), get_value() and set_new_value() methods of the control to update the new value and to access the current value that has not been changed yet.
If the validity check is successful, the value is changed to the new value and the value_change signal is emitted. The callbacks attached to this signal can not only query the current value with get_value() but also the old value with get_old_value(). Take care that the get_old_value() cannot be used in the callbacks attached to check_value and the get_new_value() method cannot be used in the callbacks attached to the value_change signal.
Definition at line 81 of file control.h.