30#include <vdk/vdkstring.h>
31#include <vdk/vdkfont.h>
34#ifdef USE_SIGCPLUSPLUS
35# include <vdk/sigc_addon.h>
38#define __rwproperty(ownerClass,propertyType) \
39 VDKReadWriteValueProp<ownerClass, propertyType>
40#define __rproperty(ownerClass,propertyType) \
41 VDKReadOnlyValueProp<ownerClass, propertyType>
46#define PFREAD_NULL (PFRead) 0x0000
47#define PFWRITE_NULL (PFWrite) 0x0000
52template <
class T,
typename S>
53class VDKReadWriteValueProp
54#ifdef USE_SIGCPLUSPLUS
61 typedef S (T::* PFRead)(void);
62 typedef void (T::*PFWrite)(S);
69 VDKReadWriteValueProp(VDKReadWriteValueProp& p) { }
70 void operator=(VDKReadWriteValueProp& p) { }
73 VDKReadWriteValueProp():
80 VDKReadWriteValueProp(
84 void (T::*write)(S) = NULL,
85 S (T::*read)(
void) = NULL
87 name(name),object(object),
92 virtual ~VDKReadWriteValueProp() {}
98 virtual void operator()(S val)
101#ifdef USE_SIGCPLUSPLUS
102 OnValueChanged.emit(
object, value);
106 virtual void operator = (S val)
109 ((*object).*set)(val);
111#ifdef USE_SIGCPLUSPLUS
112 OnValueChanged.emit(
object, value);
116 virtual operator S()
const
120 return ((*object).*get)();
124 char* Name() {
return name; }
125 S Value()
const {
return value; }
126#ifdef USE_SIGCPLUSPLUS
127 DualSignal1<void, T*,S> OnValueChanged;
134template <
class T,
class S>
135class VDKReadOnlyValueProp:
public VDKReadWriteValueProp<T,S>
137 void operator = (S) { }
139 VDKReadOnlyValueProp():VDKReadWriteValueProp<T,S>() { }
140 VDKReadOnlyValueProp(
144 S (T::*read)(
void) = NULL,
145 void (T::*write)(S) = NULL
147 VDKReadWriteValueProp<T,S>(
154 virtual ~VDKReadOnlyValueProp() {}
Implements famous cont referenced string objects.
Definition: vdkstring.h:46