00001
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00034
00035 #ifndef GROOVX_VISX_ELEMENT_H_UTC20050626084015_DEFINED
00036 #define GROOVX_VISX_ELEMENT_H_UTC20050626084015_DEFINED
00037
00038 #include "io/io.h"
00039
00040 namespace nub
00041 {
00042 template <class T> class soft_ref;
00043 }
00044
00045 namespace rutz
00046 {
00047 class fstring;
00048 }
00049
00050 class Toglet;
00051
00052
00053
00054
00056
00059 class Element : public io::serializable
00060 {
00061 public:
00063 virtual ~Element() throw();
00064
00066 enum ChildStatus
00067 {
00068 CHILD_OK,
00069 CHILD_ABORTED,
00070 CHILD_REPEAT
00071 };
00072
00074 virtual const nub::soft_ref<Toglet>& getWidget() const = 0;
00075
00077 virtual int trialType() const = 0;
00078
00080 virtual int lastResponse() const = 0;
00081
00083 virtual rutz::fstring vxInfo() const = 0;
00084
00086 virtual void vxRun(Element& parent) = 0;
00087
00089 virtual void vxHalt() const = 0;
00090
00092
00094 virtual void vxEndTrialHook();
00095
00097 virtual void vxReturn(ChildStatus s) = 0;
00098
00100 virtual void vxUndo() = 0;
00101
00103 virtual void vxReset() = 0;
00104 };
00105
00106 static const char __attribute__((used)) vcid_groovx_visx_element_h_utc20050626084015[] = "$Id: element.h 10065 2007-04-12 05:54:56Z rjpeters $ $HeadURL: file:
00107 #endif // !GROOVX_VISX_ELEMENT_H_UTC20050626084015_DEFINED