00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #if !defined(ROOTCLASS_H)
00024 #define ROOTCLASS_H
00025
00026 #include "BaseClasses.h"
00027 #include "BaseActions.h"
00028 class MHParseNode;
00029 class MHLink;
00030 class MHIngredient;
00031 class MHEngine;
00032
00033 #include <qpointarray.h>
00034
00035 enum EventType { EventIsAvailable = 1, EventContentAvailable, EventIsDeleted, EventIsRunning, EventIsStopped,
00036 EventUserInput, EventAnchorFired, EventTimerFired, EventAsyncStopped, EventInteractionCompleted,
00037 EventTokenMovedFrom, EventTokenMovedTo, EventStreamEvent, EventStreamPlaying, EventStreamStopped,
00038 EventCounterTrigger, EventHighlightOn, EventHighlightOff, EventCursorEnter, EventCursorLeave,
00039 EventIsSelected, EventIsDeselected, EventTestEvent, EventFirstItemPresented, EventLastItemPresented,
00040 EventHeadItems, EventTailItems, EventItemSelected, EventItemDeselected, EventEntryFieldFull,
00041 EventEngineEvent,
00042
00043 EventFocusMoved, EventSliderValueChanged };
00044
00045 class MHRoot
00046 {
00047 public:
00048 MHRoot(): m_fAvailable(false), m_fRunning(false) {}
00049 MHRoot(const MHRoot &): m_fAvailable(false), m_fRunning(false) {}
00050 virtual ~MHRoot() {}
00051
00052 virtual void Initialise(MHParseNode *p, MHEngine *engine);
00053
00054 virtual void PrintMe(FILE *fd, int nTabs) const;
00055
00056 virtual bool IsShared() { return false; }
00057
00058
00059
00060 virtual void Preparation(MHEngine *engine);
00061
00062 virtual void Activation(MHEngine *engine);
00063
00064 virtual void Deactivation(MHEngine *engine);
00065
00066 virtual void Destruction(MHEngine *engine);
00067
00068 virtual void ContentPreparation(MHEngine *) {}
00069
00070
00071
00072 virtual MHRoot *FindByObjectNo(int n);
00073
00074
00075
00076
00077 virtual bool GetAvailabilityStatus() { return m_fAvailable; }
00078 virtual bool GetRunningStatus() { return m_fRunning; }
00079
00080
00081 virtual void SetTimer(int, bool, int , MHEngine *) { InvalidAction("SetTimer"); }
00082
00083 virtual void MakeClone(MHRoot* , MHRoot* , MHEngine *) { InvalidAction("MakeClone"); }
00084 virtual void SetInputRegister(int , MHEngine *) { InvalidAction("SetInputRegister"); }
00085
00086
00087 virtual void SetData(const MHOctetString &, MHEngine *) { InvalidAction("SetData"); }
00088 virtual void SetData(const MHContentRef &, bool , int , bool , int , MHEngine *)
00089 { InvalidAction("SetData"); }
00090 virtual void Preload(MHEngine *) { InvalidAction("Preload"); }
00091 virtual void Unload(MHEngine *) { InvalidAction("Unload"); }
00092
00093 virtual MHIngredient *Clone(MHEngine *) { InvalidAction("Clone"); return NULL; }
00094
00095
00096
00097 virtual void Run(MHEngine *) { InvalidAction("Run"); }
00098 virtual void Stop(MHEngine *) { InvalidAction("Stop"); }
00099
00100
00101 virtual void TestVariable(int , const MHUnion &, MHEngine *) { InvalidAction("TestVariable"); }
00102 virtual void GetVariableValue(MHUnion &, MHEngine *) { InvalidAction("GetVariableValue"); }
00103 virtual void SetVariableValue(const MHUnion &) { InvalidAction("SetVariableValue"); }
00104
00105
00106 virtual void GetTextData(MHRoot *, MHEngine *) { InvalidAction("GetTextData"); }
00107 virtual void SetBackgroundColour(const MHColour &, MHEngine *) { InvalidAction("SetBackgroundColour"); }
00108 virtual void SetTextColour(const MHColour &, MHEngine *) { InvalidAction("SetTextColour"); }
00109 virtual void SetFontAttributes(const MHOctetString &, MHEngine *) { InvalidAction("SetFontAttributes"); }
00110
00111
00112 virtual void Activate(bool , MHEngine *) { InvalidAction("Activate/Deactivate"); }
00113
00114
00115 virtual void CallProgram(bool , const MHObjectRef &,
00116 const MHSequence<MHParameter *> &, MHEngine *) { InvalidAction("CallProgram"); }
00117
00118
00119 virtual void CallActionSlot(int, MHEngine *) { InvalidAction("CallActionSlot"); }
00120 virtual void Move(int, MHEngine *) { InvalidAction("Move"); }
00121 virtual void MoveTo(int, MHEngine *) { InvalidAction("MoveTo"); }
00122 virtual void GetTokenPosition(MHRoot *, MHEngine *) { InvalidAction("GetTokenPosition"); }
00123
00124
00125 virtual void AddItem(int , MHRoot *, MHEngine *) { InvalidAction("GetCellItem"); }
00126 virtual void DelItem(MHRoot *, MHEngine *) { InvalidAction("GetCellItem"); }
00127 virtual void GetCellItem(int , const MHObjectRef &, MHEngine *) { InvalidAction("GetCellItem"); }
00128 virtual void GetListItem(int , const MHObjectRef &, MHEngine *) { InvalidAction("GetCellItem"); }
00129 virtual void GetItemStatus(int , const MHObjectRef &, MHEngine *) { InvalidAction("GetItemStatus"); }
00130 virtual void SelectItem(int , MHEngine *) { InvalidAction("SelectItem"); }
00131 virtual void DeselectItem(int , MHEngine *) { InvalidAction("DeselectItem"); }
00132 virtual void ToggleItem(int , MHEngine *) { InvalidAction("ToggleItem"); }
00133 virtual void ScrollItems(int , MHEngine *) { InvalidAction("ScrollItems"); }
00134 virtual void SetFirstItem(int , MHEngine *) { InvalidAction("SetFirstItem"); }
00135 virtual void GetFirstItem(MHRoot *, MHEngine *) { InvalidAction("GetFirstItem"); }
00136 virtual void GetListSize(MHRoot *, MHEngine *) { InvalidAction("GetListSize"); }
00137
00138
00139 virtual void SetPosition(int , int , MHEngine *) { InvalidAction("SetPosition"); }
00140 virtual void GetPosition(MHRoot *, MHRoot *) { InvalidAction("GetPosition"); }
00141 virtual void SetBoxSize(int , int , MHEngine *) { InvalidAction("SetBoxSize"); }
00142 virtual void GetBoxSize(MHRoot *, MHRoot *) { InvalidAction("GetBoxSize"); }
00143 virtual void SetPaletteRef(const MHObjectRef , MHEngine *) { InvalidAction("SetPaletteRef"); }
00144 virtual void BringToFront(MHEngine *) { InvalidAction("BringToFront"); }
00145 virtual void SendToBack(MHEngine *) { InvalidAction("SendToBack"); }
00146 virtual void PutBefore(const MHRoot *, MHEngine *) { InvalidAction("PutBefore"); }
00147 virtual void PutBehind(const MHRoot *, MHEngine *) { InvalidAction("PutBehind"); }
00148 virtual void ResetPosition() { InvalidAction("ResetPosition"); }
00149
00150
00151 virtual void SetFillColour(const MHColour &, MHEngine *) { InvalidAction("SetFillColour"); }
00152 virtual void SetLineColour(const MHColour &, MHEngine *) { InvalidAction("SetLineColour"); }
00153 virtual void SetLineWidth(int , MHEngine *) { InvalidAction("SetLineWidth"); }
00154 virtual void SetLineStyle(int , MHEngine *) { InvalidAction("SetLineStyle"); }
00155
00156
00157 virtual void SetTransparency(int , MHEngine *) { InvalidAction("SetTransparency"); }
00158 virtual void ScaleBitmap(int , int , MHEngine *) { InvalidAction("ScaleBitmap"); }
00159 virtual void SetBitmapDecodeOffset(int , int , MHEngine *) { InvalidAction("SetBitmapDecodeOffset"); }
00160 virtual void GetBitmapDecodeOffset(MHRoot *, MHRoot *) { InvalidAction("GetBitmapDecodeOffset"); }
00161
00162
00163 virtual void Clear() { InvalidAction(""); }
00164 virtual void GetLineWidth(MHRoot *) { InvalidAction("GetLineWidth"); }
00165 virtual void GetLineStyle(MHRoot *) { InvalidAction("GetLineStyle"); }
00166 virtual void GetLineColour(MHRoot *) { InvalidAction("GetLineColour"); }
00167 virtual void GetFillColour(MHRoot *) { InvalidAction("GetFillColour"); }
00168 virtual void DrawArcSector(bool , int , int , int , int , int , int , MHEngine *) { InvalidAction("DrawArc/Sector"); }
00169 virtual void DrawLine(int , int , int , int , MHEngine *) { InvalidAction("DrawLine"); }
00170 virtual void DrawOval(int , int , int , int , MHEngine *) { InvalidAction("DrawOval"); }
00171 virtual void DrawRectangle(int , int , int , int , MHEngine *) { InvalidAction("DrawRectangle"); }
00172 virtual void DrawPoly(bool , const QPointArray &, MHEngine *) { InvalidAction("DrawPoly(gon/line)"); }
00173
00174
00175 virtual void ScaleVideo(int , int , MHEngine *) { InvalidAction("ScaleVideo"); }
00176 virtual void SetVideoDecodeOffset(int , int , MHEngine *) { InvalidAction("SetVideoDecodeOffset"); }
00177 virtual void GetVideoDecodeOffset(MHRoot * , MHRoot *, MHEngine *) { InvalidAction("GetVideoDecodeOffset"); }
00178
00179
00180 virtual void SetInteractionStatus(bool , MHEngine *) { InvalidAction("SetInteractionStatus"); }
00181 virtual bool GetInteractionStatus(void) { InvalidAction("GetInteractionStatus"); return false; }
00182 virtual void SetHighlightStatus(bool , MHEngine *engine) { InvalidAction("SetHighlightStatus"); }
00183 virtual bool GetHighlightStatus(void) { InvalidAction("GetHighlightStatus"); return false; }
00184
00185
00186 virtual void Step(int , MHEngine *) { InvalidAction("Step"); }
00187 virtual void SetSliderValue(int , MHEngine *) { InvalidAction("SetSliderValue"); }
00188 virtual int GetSliderValue(void) { InvalidAction("GetSliderValue"); return 0; }
00189 virtual void SetPortion(int , MHEngine *) { InvalidAction("SetPortion"); }
00190 virtual int GetPortion(void) { InvalidAction("GetPortion"); return 0; }
00191
00192 virtual void SetSliderParameters(int , int , int , MHEngine *)
00193 { InvalidAction("SetSliderParameters"); }
00194
00195 protected:
00196
00197 void InvalidAction(const char *actionName);
00198 public:
00199 MHObjectRef m_ObjectReference;
00200
00201 virtual const char *ClassName() = 0;
00202 protected:
00203 bool m_fAvailable;
00204 bool m_fRunning;
00205
00206 friend class MHEngine;
00207 };
00208
00209
00210 class MHGetAvailabilityStatus: public MHElemAction
00211 {
00212 public:
00213 MHGetAvailabilityStatus(): MHElemAction(":GetAvailabilityStatus") {}
00214 virtual void Initialise(MHParseNode *p, MHEngine *engine);
00215 virtual void Perform(MHEngine *engine);
00216 protected:
00217 virtual void PrintArgs(FILE *fd, int ) const { m_ResultVar.PrintMe(fd, 0); }
00218 MHObjectRef m_ResultVar;
00219 };
00220
00221
00222 class MHGetRunningStatus: public MHActionObjectRef
00223 {
00224 public:
00225 MHGetRunningStatus(): MHActionObjectRef(":GetRunningStatus") {}
00226 virtual void CallAction(MHEngine *, MHRoot *pTarget, MHRoot *pResult) { pResult->SetVariableValue(pTarget->GetRunningStatus());}
00227 };
00228
00229 #endif