00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
#ifndef FXDATATARGET_H
00025
#define FXDATATARGET_H
00026
00027
#ifndef FXOBJECT_H
00028
#include "FXObject.h"
00029
#endif
00030
00031
namespace FX {
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045 class FXAPI FXDataTarget :
public FXObject {
00046 FXDECLARE(FXDataTarget)
00047
protected:
00048
FXObject *target;
00049
void *data;
00050 FXSelector message;
00051 FXuint type;
00052
public:
00053
long onCmdValue(
FXObject*,FXSelector,
void*);
00054
long onUpdValue(
FXObject*,FXSelector,
void*);
00055
long onCmdOption(
FXObject*,FXSelector,
void*);
00056
long onUpdOption(
FXObject*,FXSelector,
void*);
00057
public:
00058
enum {
00059 DT_VOID=0,
00060 DT_CHAR,
00061 DT_UCHAR,
00062 DT_SHORT,
00063 DT_USHORT,
00064 DT_INT,
00065 DT_UINT,
00066 DT_LONG,
00067 DT_ULONG,
00068 DT_FLOAT,
00069 DT_DOUBLE,
00070 DT_STRING,
00071 DT_LAST
00072 };
00073
public:
00074 enum {
00075 ID_VALUE=1,
00076 ID_OPTION=ID_VALUE+10001,
00077 ID_LAST=ID_OPTION+10000
00078 };
00079
public:
00080
00081
00082 FXDataTarget(
FXObject* tgt=NULL,FXSelector sel=0):target(tgt),data(NULL),message(sel),type(DT_VOID){}
00083
00084
00085 FXDataTarget(FXchar& value,
FXObject* tgt=NULL,FXSelector sel=0):target(tgt),data(&value),message(sel),type(DT_CHAR){}
00086
00087
00088 FXDataTarget(FXuchar& value,
FXObject* tgt=NULL,FXSelector sel=0):target(tgt),data(&value),message(sel),type(DT_UCHAR){}
00089
00090
00091 FXDataTarget(FXshort& value,
FXObject* tgt=NULL,FXSelector sel=0):target(tgt),data(&value),message(sel),type(DT_SHORT){}
00092
00093
00094 FXDataTarget(FXushort& value,
FXObject* tgt=NULL,FXSelector sel=0):target(tgt),data(&value),message(sel),type(DT_USHORT){}
00095
00096
00097 FXDataTarget(FXint& value,
FXObject* tgt=NULL,FXSelector sel=0):target(tgt),data(&value),message(sel),type(DT_INT){}
00098
00099
00100 FXDataTarget(FXuint& value,
FXObject* tgt=NULL,FXSelector sel=0):target(tgt),data(&value),message(sel),type(DT_UINT){}
00101
00102
00103 FXDataTarget(FXlong& value,
FXObject* tgt=NULL,FXSelector sel=0):target(tgt),data(&value),message(sel),type(DT_LONG){}
00104
00105
00106 FXDataTarget(FXulong& value,
FXObject* tgt=NULL,FXSelector sel=0):target(tgt),data(&value),message(sel),type(DT_ULONG){}
00107
00108
00109 FXDataTarget(FXfloat& value,
FXObject* tgt=NULL,FXSelector sel=0):target(tgt),data(&value),message(sel),type(DT_FLOAT){}
00110
00111
00112 FXDataTarget(FXdouble& value,
FXObject* tgt=NULL,FXSelector sel=0):target(tgt),data(&value),message(sel),type(DT_DOUBLE){}
00113
00114
00115 FXDataTarget(
FXString& value,
FXObject* tgt=NULL,FXSelector sel=0):target(tgt),data(&value),message(sel),type(DT_STRING){}
00116
00117
00118
00119 void setTarget(
FXObject *t){ target=t; }
00120
00121
00122 FXObject* getTarget()
const {
return target; }
00123
00124
00125 void setSelector(FXSelector sel){ message=sel; }
00126
00127
00128 FXSelector getSelector()
const {
return message; }
00129
00130
00131
00132 FXuint getType()
const {
return type; }
00133
00134
00135
void* getData()
const {
return data; }
00136
00137
00138
00139
void connect(){ type=DT_VOID; data=NULL; }
00140
00141
00142
void connect(FXchar& value){ type=DT_CHAR; data=&value; }
00143
00144
00145
void connect(FXuchar& value){ type=DT_UCHAR; data=&value; }
00146
00147
00148
void connect(FXshort& value){ type=DT_SHORT; data=&value; }
00149
00150
00151
void connect(FXushort& value){ type=DT_USHORT; data=&value; }
00152
00153
00154
void connect(FXint& value){ type=DT_INT; data=&value; }
00155
00156
00157
void connect(FXuint& value){ type=DT_UINT; data=&value; }
00158
00159
00160
void connect(FXlong& value){ type=DT_LONG; data=&value; }
00161
00162
00163
void connect(FXulong& value){ type=DT_ULONG; data=&value; }
00164
00165
00166
void connect(FXfloat& value){ type=DT_FLOAT; data=&value; }
00167
00168
00169
void connect(FXdouble& value){ type=DT_DOUBLE; data=&value; }
00170
00171
00172
void connect(FXString& value){ type=DT_STRING; data=&value; }
00173
00174
00175
virtual ~FXDataTarget();
00176 };
00177
00178 }
00179
00180
#endif