cgv
Loading...
Searching...
No Matches
cgv::gui::key_control< T > Class Template Reference
Inheritance diagram for cgv::gui::key_control< T >:
cgv::gui::control< T > cgv::gui::event_handler cgv::gui::abst_control cgv::base::traverse_policy cgv::gui::abst_view cgv::base::node cgv::base::named cgv::base::base cgv::data::ref_counted cgv::reflect::self_reflection_tag

Public Member Functions

 key_control (const std::string &name, T &_value, const std::string &options="")
 
std::string get_type_name () const
 overload to return the type name of this object
 
bool self_reflect (cgv::reflect::reflection_handler &rh)
 used for simple self reflection
 
std::string get_property_declarations ()
 return a semicolon separated list of property declarations
 
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.
 
bool get_void (const std::string &property, const std::string &value_type, void *value_ptr)
 abstract interface for the getter of a dynamic property.
 
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
 
bool handle (event &e)
 overload and implement this method to handle events
 
void stream_help (std::ostream &os)
 overload to stream help information to the given output stream
 
void timer_event (double time, double dt)
 
- Public Member Functions inherited from cgv::gui::control< T >
 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
 
- Public Member Functions inherited from cgv::gui::abst_control
 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
 
- 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 ()
 cast upward to node
 
const_node_ptr get_node_const ()
 cast upward to const node
 
- 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 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::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 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
 

Protected Member Functions

void change_value (double dt)
 
- Protected Member Functions inherited from cgv::gui::control< T >
void set_value (const T &v)
 
const T * get_value_ptr () const
 
- 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

speed
 
min_value
 
max_value
 
bool log_scale
 
bool no_limits
 
shortcut more
 
shortcut less
 
- Protected Attributes inherited from cgv::gui::abst_view
abst_viewnext_in_list
 
abst_viewprev_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
 
- Protected Attributes inherited from cgv::base::traverse_policy
TraversePolicy policy
 
bool active
 
int focus
 

Additional Inherited Members

- Public Types inherited from cgv::gui::control< T >
typedef cgv::signal::bool_signal< control< T > & > value_check_signal_type
 type of the value check signal
 
typedef cgv::signal::signal< control< T > & > value_change_signal_type
 type of the value change signal
 
- Public Attributes inherited from cgv::gui::control< T >
cgv::signal::bool_signal< control< T > & > check_value
 this signal is sent when the user triggered a change of value in order to check whether the new value is valid.
 
cgv::signal::signal< control< T > & > value_change
 this signal is sent after the user triggered a change of value and the check_value succeeded.
 
- 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
 

Detailed Description

template<typename T>
class cgv::gui::key_control< T >

Definition at line 16 of file key_control.h.

Constructor & Destructor Documentation

◆ key_control()

template<typename T >
cgv::gui::key_control< T >::key_control ( const std::string &  name,
T &  _value,
const std::string &  options = "" 
)

Definition at line 78 of file key_control.cxx.

Member Function Documentation

◆ change_value()

template<typename T >
void cgv::gui::key_control< T >::change_value ( double  dt)
protected

Definition at line 94 of file key_control.cxx.

◆ get_property_declarations()

template<typename T >
std::string cgv::gui::key_control< T >::get_property_declarations ( )
virtual

return a semicolon separated list of property declarations

return a semicolon separated list of property declarations of the form "name:type", by default an empty list is returned

of the form "name1:type1;name2:type2;...", by default an empty list is returned. The types should by consistent with the names returned by cgv::type::info::type_name::get_name. The default implementation extracts names and types from the self_reflect() method and the meta type information provided by the get_type() method.

Reimplemented from cgv::base::base.

Definition at line 33 of file key_control.cxx.

References cgv::base::base::get_property_declarations().

◆ get_type_name()

template<typename T >
std::string cgv::gui::key_control< T >::get_type_name ( ) const
virtual

overload to return the type name of this object

Reimplemented from cgv::base::node.

Definition at line 16 of file key_control.cxx.

◆ get_void()

template<typename T >
bool cgv::gui::key_control< T >::get_void ( const std::string &  property,
const std::string &  value_type,
void *  value_ptr 
)
virtual

abstract interface for the getter of a dynamic property.

abstract interface for the getter, by default it simply returns false

The default implementation uses the self_reflect() method to find a member with the given property as name. If not found, the get_void method returns false.

Reimplemented from cgv::base::base.

Definition at line 65 of file key_control.cxx.

References cgv::base::base::get_void().

◆ handle()

template<typename T >
bool cgv::gui::key_control< T >::handle ( event e)
virtual

overload and implement this method to handle events

Parameters
eto be handled event (use e.get_kind() to check event type)
Returns
return true for handled events and false otherwise. Other event handlers (e.g. parents) only receive unhandled events if false is returned

Implements cgv::gui::event_handler.

Definition at line 114 of file key_control.cxx.

References cgv::gui::EID_KEY, cgv::gui::key_event::get_action(), cgv::gui::key_event::get_key(), cgv::gui::event::get_kind(), cgv::gui::event::get_modifiers(), cgv::gui::event::get_time(), and cgv::gui::KA_PRESS.

◆ on_set()

template<typename T >
void cgv::gui::key_control< T >::on_set ( void *  member_ptr)
virtual

this callback is called when the set_void method has changed a member and can be overloaded in derived class

Reimplemented from cgv::base::base.

Definition at line 71 of file key_control.cxx.

◆ self_reflect()

template<typename T >
bool cgv::gui::key_control< T >::self_reflect ( cgv::reflect::reflection_handler )
virtual

used for simple self reflection

is used by default implementation of set_void, get_void and get_property_declarations

The overloaded implementation is used by the default implementations of set_void, get_void and get_property_declarations with corresponding reflection handlers. The default implementation of self_reflect is empty.

Reimplemented from cgv::base::base.

Definition at line 22 of file key_control.cxx.

References cgv::reflect::reflection_handler::reflect_member().

◆ set_void()

template<typename T >
bool cgv::gui::key_control< T >::set_void ( const std::string &  property,
const std::string &  value_type,
const void *  value_ptr 
)
virtual

abstract interface for the setter of a dynamic property.

abstract interface for the setter, by default it simply returns false

The default implementation uses the self_reflect() method to find a member with the given property as name. If not found, the set_void method returns false.

Reimplemented from cgv::base::base.

Definition at line 39 of file key_control.cxx.

References cgv::utils::from_string(), and cgv::base::base::set_void().

◆ stream_help()

template<typename T >
void cgv::gui::key_control< T >::stream_help ( std::ostream &  os)
virtual

overload to stream help information to the given output stream

Implements cgv::gui::event_handler.

Definition at line 148 of file key_control.cxx.

◆ timer_event()

template<typename T >
void cgv::gui::key_control< T >::timer_event ( double  time,
double  dt 
)

Definition at line 154 of file key_control.cxx.

Member Data Documentation

◆ less

template<typename T >
shortcut cgv::gui::key_control< T >::less
protected

Definition at line 28 of file key_control.h.

◆ log_scale

template<typename T >
bool cgv::gui::key_control< T >::log_scale
protected

Definition at line 25 of file key_control.h.

◆ max_value

template<typename T >
T cgv::gui::key_control< T >::max_value
protected

Definition at line 24 of file key_control.h.

◆ min_value

template<typename T >
T cgv::gui::key_control< T >::min_value
protected

Definition at line 23 of file key_control.h.

◆ more

template<typename T >
shortcut cgv::gui::key_control< T >::more
protected

Definition at line 27 of file key_control.h.

◆ no_limits

template<typename T >
bool cgv::gui::key_control< T >::no_limits
protected

Definition at line 26 of file key_control.h.

◆ speed

template<typename T >
T cgv::gui::key_control< T >::speed
protected

Definition at line 22 of file key_control.h.


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