cgv
|
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) |
![]() | |
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 | |
![]() | |
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 | 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 | |
![]() | |
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. | |
![]() | |
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) |
![]() | |
void | set_value (const T &v) |
const T * | get_value_ptr () const |
![]() | |
virtual | ~base () |
make destructor virtual and not accessible from outside | |
![]() | |
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 | |
T | speed |
T | min_value |
T | max_value |
bool | log_scale |
bool | no_limits |
shortcut | more |
shortcut | less |
![]() | |
abst_view * | next_in_list |
abst_view * | prev_in_list |
const void * | ptr |
![]() | |
node_ptr | parent |
store a pointer to the parent node | |
![]() | |
std::string | name |
store the name as a string | |
![]() | |
TraversePolicy | policy |
bool | active |
int | focus |
Additional Inherited Members | |
![]() | |
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 | |
![]() | |
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. | |
![]() | |
template<class T > | |
static data::ref_ptr< T, true > | cast_dynamic (base *b) |
use dynamic cast for upcast to given class | |
Definition at line 16 of file key_control.h.
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.
|
protected |
Definition at line 94 of file key_control.cxx.
|
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().
|
virtual |
overload to return the type name of this object
Reimplemented from cgv::base::node.
Definition at line 16 of file key_control.cxx.
|
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().
|
virtual |
overload and implement this method to handle events
e | to be handled event (use e.get_kind() to check event type) |
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.
|
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.
|
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().
|
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().
|
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.
void cgv::gui::key_control< T >::timer_event | ( | double | time, |
double | dt | ||
) |
Definition at line 154 of file key_control.cxx.
|
protected |
Definition at line 28 of file key_control.h.
|
protected |
Definition at line 25 of file key_control.h.
|
protected |
Definition at line 24 of file key_control.h.
|
protected |
Definition at line 23 of file key_control.h.
|
protected |
Definition at line 27 of file key_control.h.
|
protected |
Definition at line 26 of file key_control.h.
|
protected |
Definition at line 22 of file key_control.h.