MythTV  master
Actions.cpp
Go to the documentation of this file.
1 /* Actions.cpp
2 
3  Copyright (C) David C. J. Matthews 2004, 2008 dm at prolingua.co.uk
4 
5  This program is free software; you can redistribute it and/or
6  modify it under the terms of the GNU General Public License
7  as published by the Free Software Foundation; either version 2
8  of the License, or (at your option) any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with this program; if not, write to the Free Software
17  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
18  Or, point your browser to http://www.gnu.org/copyleft/gpl.html
19 
20 */
21 
22 #include <cstdio>
23 
24 #include "BaseActions.h"
25 #include "Actions.h"
26 #include "BaseClasses.h"
27 #include "ParseNode.h"
28 #include "ASN1Codes.h"
29 #include "Ingredients.h"
30 #include "Engine.h"
31 #include "Variables.h"
32 #include "Programs.h"
33 #include "Bitmap.h"
34 #include "Visible.h"
35 #include "Text.h"
36 #include "DynamicLineArt.h"
37 #include "Link.h"
38 #include "TokenGroup.h"
39 #include "Stream.h"
40 #include "Logging.h"
41 
42 
43 // Temporary place-holder for actions we haven't done yet.
45 {
46  public:
47  explicit MHUnimplementedAction(int nTag): MHElemAction(""), m_nTag(nTag)
48  {
49  MHLOG(MHLogWarning, QString("WARN Unimplemented action %1").arg(m_nTag) );
50  }
51  void Initialise(MHParseNode * /*p*/, MHEngine * /*engine*/) override {} // MHElemAction
52  void PrintMe(FILE *fd, int /*nTabs*/) const override // MHElemAction
53  {
54  fprintf(fd, "****Missing action %d\n", m_nTag);
55  }
56  void Perform(MHEngine * /*engine*/) override // MHElemAction
57  {
58  MHERROR(QString("Unimplemented action %1").arg(m_nTag));
59  }
60  protected:
61  int m_nTag;
62 };
63 
64 // ActionSequence.
65 
66 // Process the action set and create the action values.
68 {
69  // Depending on the caller we may have a tagged argument list or a sequence.
70  for (int i = 0; i < p->GetArgCount(); i++)
71  {
72  MHParseNode *pElemAction = p->GetArgN(i);
73  MHElemAction *pAction = nullptr;
74 
75  switch (pElemAction->GetTagNo())
76  {
77  case C_ACTIVATE:
78  pAction = new MHActivate(":Activate", true);
79  break;
80  case C_ADD:
81  pAction = new MHAdd;
82  break;
83  case C_ADD_ITEM:
84  pAction = new MHAddItem;
85  break;
86  case C_APPEND:
87  pAction = new MHAppend;
88  break;
89  case C_BRING_TO_FRONT:
90  pAction = new MHBringToFront;
91  break;
92  case C_CALL:
93  pAction = new MHCall(":Call", false);
94  break;
95  case C_CALL_ACTION_SLOT:
96  pAction = new MHCallActionSlot;
97  break;
98  case C_CLEAR:
99  pAction = new MHClear;
100  break;
101  case C_CLONE:
102  pAction = new MHClone;
103  break;
104  case C_CLOSE_CONNECTION:
105  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
106  break; // ??
107  case C_DEACTIVATE:
108  pAction = new MHActivate(":Deactivate", false);
109  break;
110  case C_DEL_ITEM:
111  pAction = new MHDelItem;
112  break;
113  case C_DESELECT:
114  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
115  break; // Button
116  case C_DESELECT_ITEM:
117  pAction = new MHDeselectItem;
118  break;
119  case C_DIVIDE:
120  pAction = new MHDivide;
121  break;
122  case C_DRAW_ARC:
123  pAction = new MHDrawArcSector(":DrawArc", false);
124  break;
125  case C_DRAW_LINE:
126  pAction = new MHDrawLine;
127  break;
128  case C_DRAW_OVAL:
129  pAction = new MHDrawOval;
130  break;
131  case C_DRAW_POLYGON:
132  pAction = new MHDrawPoly(":DrawPolygon", true);
133  break;
134  case C_DRAW_POLYLINE:
135  pAction = new MHDrawPoly(":DrawPolyline", false);
136  break;
137  case C_DRAW_RECTANGLE:
138  pAction = new MHDrawRectangle;
139  break;
140  case C_DRAW_SECTOR:
141  pAction = new MHDrawArcSector(":DrawSector", true);
142  break;
143  case C_FORK:
144  pAction = new MHCall(":Fork", true);
145  break;
147  pAction = new MHGetAvailabilityStatus;
148  break;
149  case C_GET_BOX_SIZE:
150  pAction = new MHGetBoxSize;
151  break;
152  case C_GET_CELL_ITEM:
153  pAction = new MHGetCellItem;
154  break;
156  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
157  break; // ?
159  pAction = new MHGetEngineSupport;
160  break;
161  case C_GET_ENTRY_POINT:
162  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
163  break; // EntryField
164  case C_GET_FILL_COLOUR:
165  pAction = new MHGetFillColour;
166  break;
167  case C_GET_FIRST_ITEM:
168  pAction = new MHGetFirstItem;
169  break;
171  pAction = new MHGetHighlightStatus;
172  break;
174  pAction = new MHGetInteractionStatus;
175  break;
176  case C_GET_ITEM_STATUS:
177  pAction = new MHGetItemStatus;
178  break;
179  case C_GET_LABEL: // PushButton
180  case C_GET_LAST_ANCHOR_FIRED: // HyperText
181  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
182  break;
183  case C_GET_LINE_COLOUR:
184  pAction = new MHGetLineColour;
185  break;
186  case C_GET_LINE_STYLE:
187  pAction = new MHGetLineStyle;
188  break;
189  case C_GET_LINE_WIDTH:
190  pAction = new MHGetLineWidth;
191  break;
192  case C_GET_LIST_ITEM:
193  pAction = new MHGetListItem;
194  break;
195  case C_GET_LIST_SIZE:
196  pAction = new MHGetListSize;
197  break;
199  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
200  break;// ?
201  case C_GET_PORTION:
202  pAction = new MHGetPortion;
203  break;
204  case C_GET_POSITION:
205  pAction = new MHGetPosition;
206  break;
208  pAction = new MHGetRunningStatus;
209  break;
211  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
212  break;// ?
213  case C_GET_SLIDER_VALUE:
214  pAction = new MHGetSliderValue;
215  break;
216  case C_GET_TEXT_CONTENT:
217  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
218  break;// Text
219  case C_GET_TEXT_DATA:
220  pAction = new MHGetTextData;
221  break;
223  pAction = new MHGetTokenPosition;
224  break;
225  case C_GET_VOLUME:
226  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
227  break; // ?
228  case C_LAUNCH:
229  pAction = new MHLaunch;
230  break;
231  case C_LOCK_SCREEN:
232  pAction = new MHLockScreen;
233  break;
234  case C_MODULO:
235  pAction = new MHModulo;
236  break;
237  case C_MOVE:
238  pAction = new MHMove;
239  break;
240  case C_MOVE_TO:
241  pAction = new MHMoveTo;
242  break;
243  case C_MULTIPLY:
244  pAction = new MHMultiply;
245  break;
246  case C_OPEN_CONNECTION:
247  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
248  break; // ?
249  case C_PRELOAD:
250  pAction = new MHPreload;
251  break;
252  case C_PUT_BEFORE:
253  pAction = new MHPutBefore;
254  break;
255  case C_PUT_BEHIND:
256  pAction = new MHPutBehind;
257  break;
258  case C_QUIT:
259  pAction = new MHQuit;
260  break;
261  case C_READ_PERSISTENT:
262  pAction = new MHPersistent(":ReadPersistent", true);
263  break;
264  case C_RUN:
265  pAction = new MHRun;
266  break;
267  case C_SCALE_BITMAP:
268  pAction = new MHScaleBitmap;
269  break;
270  case C_SCALE_VIDEO:
271  pAction = new MHScaleVideo;
272  break;
273  case C_SCROLL_ITEMS:
274  pAction = new MHScrollItems;
275  break;
276  case C_SELECT:
277  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
278  break; // Button
279  case C_SELECT_ITEM:
280  pAction = new MHSelectItem;
281  break;
282  case C_SEND_EVENT:
283  pAction = new MHSendEvent;
284  break;
285  case C_SEND_TO_BACK:
286  pAction = new MHSendToBack;
287  break;
288  case C_SET_BOX_SIZE:
289  pAction = new MHSetBoxSize;
290  break;
292  case C_SET_COUNTER_END_POSITION: // Stream
293  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
294  break;
296  pAction = new MHSetCounterPosition;
297  break; // Stream
298  case C_SET_COUNTER_TRIGGER: // Stream
300  case C_SET_CURSOR_SHAPE:
301  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
302  break;
303  case C_SET_DATA:
304  pAction = new MHSetData;
305  break;
306  case C_SET_ENTRY_POINT:
307  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
308  break; // EntryField
309  case C_SET_FILL_COLOUR:
310  pAction = new MHSetFillColour;
311  break;
312  case C_SET_FIRST_ITEM:
313  pAction = new MHSetFirstItem;
314  break;
315  case C_SET_FONT_REF:
316  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
317  break; // Text
319  pAction = new MHSetHighlightStatus;
320  break;
322  pAction = new MHSetInteractionStatus;
323  break;
324  case C_SET_LABEL:
325  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
326  break; // PushButton
327  case C_SET_LINE_COLOUR:
328  pAction = new MHSetLineColour;
329  break;
330  case C_SET_LINE_STYLE:
331  pAction = new MHSetLineStyle;
332  break;
333  case C_SET_LINE_WIDTH:
334  pAction = new MHSetLineWidth;
335  break;
336  case C_SET_OVERWRITE_MODE: // EntryField
337  case C_SET_PALETTE_REF: // Visible
338  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
339  break;
340  case C_SET_PORTION:
341  pAction = new MHSetPortion;
342  break;
343  case C_SET_POSITION:
344  pAction = new MHSetPosition;
345  break;
346  case C_SET_SLIDER_VALUE:
347  pAction = new MHSetSliderValue;
348  break;
349  case C_SET_SPEED:
350  pAction = new MHSetSpeed;
351  break; // ?
352  case C_SET_TIMER:
353  pAction = new MHSetTimer;
354  break;
355  case C_SET_TRANSPARENCY:
356  pAction = new MHSetTransparency;
357  break;
358  case C_SET_VARIABLE:
359  pAction = new MHSetVariable;
360  break;
361  case C_SET_VOLUME:
362  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
363  break; // ?
364  case C_SPAWN:
365  pAction = new MHSpawn;
366  break;
367  case C_STEP:
368  pAction = new MHStep;
369  break;
370  case C_STOP:
371  pAction = new MHStop;
372  break;
373  case C_STORE_PERSISTENT:
374  pAction = new MHPersistent(":StorePersistent", false);
375  break;
376  case C_SUBTRACT:
377  pAction = new MHSubtract;
378  break;
379  case C_TEST_VARIABLE:
380  pAction = new MHTestVariable;
381  break;
382  case C_TOGGLE:
383  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
384  break; // Button
385  case C_TOGGLE_ITEM:
386  pAction = new MHToggleItem;
387  break;
388  case C_TRANSITION_TO:
389  pAction = new MHTransitionTo;
390  break;
391  case C_UNLOAD:
392  pAction = new MHUnload;
393  break;
394  case C_UNLOCK_SCREEN:
395  pAction = new MHUnlockScreen;
396  break;
397  // UK MHEG added actions.
399  pAction = new MHSetBackgroundColour;
400  break;
401  case C_SET_CELL_POSITION:
402  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
403  break; // ?
405  pAction = new MHSetInputRegister;
406  break;
407  case C_SET_TEXT_COLOUR:
408  pAction = new MHSetTextColour;
409  break;
411  pAction = new MHSetFontAttributes;
412  break;
414  pAction = new MHSetVideoDecodeOffset;
415  break;
417  pAction = new MHGetVideoDecodeOffset;
418  break;
419  case C_GET_FOCUS_POSITION: // HyperText
420  case C_SET_FOCUS_POSITION: // HyperText
421  pAction = new MHUnimplementedAction(pElemAction->GetTagNo());
422  break; // HyperText
424  pAction = new MHSetBitmapDecodeOffset;
425  break;
427  pAction = new MHGetBitmapDecodeOffset;
428  break;
430  pAction = new MHSetSliderParameters;
431  break;
432 
433  // Added in ETSI ES 202 184 V2.1.1 (2010-01)
434  case C_GET_COUNTER_POSITION: // Stream position
435  pAction = new MHGetCounterPosition;
436  break;
437  case C_GET_COUNTER_MAX_POSITION: // Stream total size
438  pAction = new MHGetCounterMaxPosition;
439  break;
440 
441  default:
442  MHLOG(MHLogWarning, QString("WARN Unknown action %1").arg(pElemAction->GetTagNo()));
443  // Future proofing: ignore any actions that we don't know about.
444  // Obviously these can only arise in the binary coding.
445  pAction = nullptr;
446  }
447 
448  if (pAction)
449  {
450  Append(pAction); // Add to the sequence.
451  pAction->Initialise(pElemAction, engine);
452  }
453  }
454 }
455 
456 void MHActionSequence::PrintMe(FILE *fd, int nTabs) const
457 {
458  for (int i = 0; i < Size(); i++)
459  {
460  GetAt(i)->PrintMe(fd, nTabs);
461  }
462 }
C_SET_LABEL
@ C_SET_LABEL
Definition: ASN1Codes.h:236
C_SET_BOX_SIZE
@ C_SET_BOX_SIZE
Definition: ASN1Codes.h:222
C_SET_TRANSPARENCY
@ C_SET_TRANSPARENCY
Definition: ASN1Codes.h:247
MHDrawRectangle
Definition: DynamicLineArt.h:140
C_SET_VARIABLE
@ C_SET_VARIABLE
Definition: ASN1Codes.h:248
C_GET_LAST_ANCHOR_FIRED
@ C_GET_LAST_ANCHOR_FIRED
Definition: ASN1Codes.h:186
MHSetFontAttributes
Definition: Text.h:150
C_GET_SLIDER_VALUE
@ C_GET_SLIDER_VALUE
Definition: ASN1Codes.h:197
MHDrawLine
Definition: DynamicLineArt.h:126
MHTransitionTo
Definition: Groups.h:232
C_GET_LINE_WIDTH
@ C_GET_LINE_WIDTH
Definition: ASN1Codes.h:189
MHUnimplementedAction::Perform
void Perform(MHEngine *) override
Definition: Actions.cpp:56
C_APPEND
@ C_APPEND
Definition: ASN1Codes.h:154
C_SCALE_BITMAP
@ C_SCALE_BITMAP
Definition: ASN1Codes.h:215
C_SET_BACKGROUND_COLOUR
@ C_SET_BACKGROUND_COLOUR
Definition: ASN1Codes.h:274
MHSetData
Definition: Ingredients.h:128
MHAppend
Definition: Variables.h:235
C_GET_VOLUME
@ C_GET_VOLUME
Definition: ASN1Codes.h:201
C_GET_VIDEO_DECODE_OFFSET
@ C_GET_VIDEO_DECODE_OFFSET
Definition: ASN1Codes.h:280
C_DESELECT_ITEM
@ C_DESELECT_ITEM
Definition: ASN1Codes.h:164
C_SET_TEXT_COLOUR
@ C_SET_TEXT_COLOUR
Definition: ASN1Codes.h:277
C_SET_INTERACTION_STATUS
@ C_SET_INTERACTION_STATUS
Definition: ASN1Codes.h:235
MHAdd
Definition: Variables.h:192
MHGetSliderValue
Definition: Visible.h:487
C_DRAW_POLYLINE
@ C_DRAW_POLYLINE
Definition: ASN1Codes.h:170
MHSetFirstItem
Definition: TokenGroup.h:268
MHGetFillColour
Definition: DynamicLineArt.h:102
C_GET_LINE_STYLE
@ C_GET_LINE_STYLE
Definition: ASN1Codes.h:188
Programs.h
C_SET_COUNTER_TRIGGER
@ C_SET_COUNTER_TRIGGER
Definition: ASN1Codes.h:226
ASN1Codes.h
MHEngine
Definition: Engine.h:72
C_SET_ENTRY_POINT
@ C_SET_ENTRY_POINT
Definition: ASN1Codes.h:230
C_GET_LIST_ITEM
@ C_GET_LIST_ITEM
Definition: ASN1Codes.h:190
C_TRANSITION_TO
@ C_TRANSITION_TO
Definition: ASN1Codes.h:258
MHGetListItem
Definition: TokenGroup.h:226
C_SET_CURSOR_POSITION
@ C_SET_CURSOR_POSITION
Definition: ASN1Codes.h:227
MHSendEvent
Definition: Groups.h:175
C_GET_HIGHLIGHT_STATUS
@ C_GET_HIGHLIGHT_STATUS
Definition: ASN1Codes.h:182
C_SCALE_VIDEO
@ C_SCALE_VIDEO
Definition: ASN1Codes.h:216
MHSetTimer
Definition: Groups.h:188
MHUnimplementedAction
Definition: Actions.cpp:44
C_TEST_VARIABLE
@ C_TEST_VARIABLE
Definition: ASN1Codes.h:255
C_OPEN_CONNECTION
@ C_OPEN_CONNECTION
Definition: ASN1Codes.h:208
MHLogWarning
@ MHLogWarning
Definition: freemheg.h:72
MHDrawArcSector
Definition: DynamicLineArt.h:117
C_SET_COUNTER_POSITION
@ C_SET_COUNTER_POSITION
Definition: ASN1Codes.h:225
MHScaleVideo
Definition: Stream.h:143
C_SET_TIMER
@ C_SET_TIMER
Definition: ASN1Codes.h:246
Bitmap.h
C_GET_LIST_SIZE
@ C_GET_LIST_SIZE
Definition: ASN1Codes.h:191
MHGetLineWidth
Definition: DynamicLineArt.h:77
MHToggleItem
Definition: TokenGroup.h:254
MHSelectItem
Definition: TokenGroup.h:240
C_GET_PORTION
@ C_GET_PORTION
Definition: ASN1Codes.h:193
MHScaleBitmap
Definition: Bitmap.h:89
MHGetBitmapDecodeOffset
Definition: Bitmap.h:105
C_CALL
@ C_CALL
Definition: ASN1Codes.h:156
C_SET_CELL_POSITION
@ C_SET_CELL_POSITION
Definition: ASN1Codes.h:275
MHGetAvailabilityStatus
Definition: Root.h:259
C_DRAW_POLYGON
@ C_DRAW_POLYGON
Definition: ASN1Codes.h:169
C_GET_OVERWRITE_MODE
@ C_GET_OVERWRITE_MODE
Definition: ASN1Codes.h:192
C_BRING_TO_FRONT
@ C_BRING_TO_FRONT
Definition: ASN1Codes.h:155
Visible.h
C_STEP
@ C_STEP
Definition: ASN1Codes.h:251
MHBringToFront
Definition: Visible.h:354
MHSetBackgroundColour
Definition: Text.h:134
MHElemAction::Initialise
virtual void Initialise(MHParseNode *p, MHEngine *engine)
Definition: BaseActions.cpp:31
C_GET_POSITION
@ C_GET_POSITION
Definition: ASN1Codes.h:194
C_GET_INTERACTION_STATUS
@ C_GET_INTERACTION_STATUS
Definition: ASN1Codes.h:183
C_SET_CACHE_PRIORITY
@ C_SET_CACHE_PRIORITY
Definition: ASN1Codes.h:223
MHGetTextData
Definition: Text.h:125
Actions.h
C_SET_VIDEO_DECODE_OFFSET
@ C_SET_VIDEO_DECODE_OFFSET
Definition: ASN1Codes.h:279
C_CALL_ACTION_SLOT
@ C_CALL_ACTION_SLOT
Definition: ASN1Codes.h:157
C_ADD_ITEM
@ C_ADD_ITEM
Definition: ASN1Codes.h:153
mythburn.FILE
int FILE
Definition: mythburn.py:139
MHSetSliderParameters
Definition: Visible.h:511
C_MOVE_TO
@ C_MOVE_TO
Definition: ASN1Codes.h:206
MHGetItemStatus
Definition: TokenGroup.h:233
C_GET_FILL_COLOUR
@ C_GET_FILL_COLOUR
Definition: ASN1Codes.h:180
C_CLEAR
@ C_CLEAR
Definition: ASN1Codes.h:158
C_GET_TOKEN_POSITION
@ C_GET_TOKEN_POSITION
Definition: ASN1Codes.h:200
MHUnlockScreen
Definition: Groups.h:253
C_GET_AVAILABILITY_STATUS
@ C_GET_AVAILABILITY_STATUS
Definition: ASN1Codes.h:174
C_GET_ITEM_STATUS
@ C_GET_ITEM_STATUS
Definition: ASN1Codes.h:184
MHGetCounterPosition
Definition: Stream.h:174
C_GET_ENGINE_SUPPORT
@ C_GET_ENGINE_SUPPORT
Definition: ASN1Codes.h:178
MHGetBoxSize
Definition: Visible.h:406
MHScrollItems
Definition: TokenGroup.h:261
C_LAUNCH
@ C_LAUNCH
Definition: ASN1Codes.h:202
C_MOVE
@ C_MOVE
Definition: ASN1Codes.h:205
hardwareprofile.config.p
p
Definition: config.py:33
C_DRAW_RECTANGLE
@ C_DRAW_RECTANGLE
Definition: ASN1Codes.h:171
C_QUIT
@ C_QUIT
Definition: ASN1Codes.h:212
Variables.h
MHSetSpeed
Definition: Stream.h:199
C_SET_INPUT_REGISTER
@ C_SET_INPUT_REGISTER
Definition: ASN1Codes.h:276
C_SELECT
@ C_SELECT
Definition: ASN1Codes.h:218
ParseNode.h
C_GET_COUNTER_POSITION
@ C_GET_COUNTER_POSITION
Definition: ASN1Codes.h:289
C_GET_BITMAP_DECODE_OFFSET
@ C_GET_BITMAP_DECODE_OFFSET
Definition: ASN1Codes.h:284
MHDeselectItem
Definition: TokenGroup.h:247
MHUnload
Definition: Ingredients.h:155
MHSetInputRegister
Definition: Groups.h:274
MHSetHighlightStatus
Definition: Visible.h:455
C_SEND_TO_BACK
@ C_SEND_TO_BACK
Definition: ASN1Codes.h:221
C_SET_SPEED
@ C_SET_SPEED
Definition: ASN1Codes.h:245
C_CLONE
@ C_CLONE
Definition: ASN1Codes.h:159
MHSetTextColour
Definition: Text.h:142
MHGetPortion
Definition: Visible.h:503
C_SET_LINE_WIDTH
@ C_SET_LINE_WIDTH
Definition: ASN1Codes.h:239
C_DEACTIVATE
@ C_DEACTIVATE
Definition: ASN1Codes.h:161
MHParseNode::GetTagNo
int GetTagNo()
Definition: ParseNode.cpp:49
MHGetListSize
Definition: TokenGroup.h:282
MHMove
Definition: TokenGroup.h:165
MHSetLineColour
Definition: Visible.h:337
C_SET_COUNTER_END_POSITION
@ C_SET_COUNTER_END_POSITION
Definition: ASN1Codes.h:224
MHGetInteractionStatus
Definition: Visible.h:447
C_GET_FIRST_ITEM
@ C_GET_FIRST_ITEM
Definition: ASN1Codes.h:181
C_MODULO
@ C_MODULO
Definition: ASN1Codes.h:204
C_GET_ENTRY_POINT
@ C_GET_ENTRY_POINT
Definition: ASN1Codes.h:179
MHLOG
#define MHLOG(__level, __text)
Definition: Logging.h:36
C_UNLOAD
@ C_UNLOAD
Definition: ASN1Codes.h:259
MHClone
Definition: Ingredients.h:164
C_GET_RUNNING_STATUS
@ C_GET_RUNNING_STATUS
Definition: ASN1Codes.h:195
MHSetTransparency
Definition: Bitmap.h:82
C_FORK
@ C_FORK
Definition: ASN1Codes.h:173
C_GET_CURSOR_POSITION
@ C_GET_CURSOR_POSITION
Definition: ASN1Codes.h:177
C_SET_LINE_COLOUR
@ C_SET_LINE_COLOUR
Definition: ASN1Codes.h:237
MHStep
Definition: Visible.h:471
MHPreload
Definition: Ingredients.h:147
MHSetBitmapDecodeOffset
Definition: Bitmap.h:97
C_GET_COUNTER_MAX_POSITION
@ C_GET_COUNTER_MAX_POSITION
Definition: ASN1Codes.h:290
Engine.h
C_SET_HIGHLIGHT_STATUS
@ C_SET_HIGHLIGHT_STATUS
Definition: ASN1Codes.h:234
C_SET_FONT_REF
@ C_SET_FONT_REF
Definition: ASN1Codes.h:233
MHDivide
Definition: Variables.h:216
MHPutBehind
Definition: Visible.h:372
C_SUBTRACT
@ C_SUBTRACT
Definition: ASN1Codes.h:254
MHCall
Definition: Programs.h:91
MHUnimplementedAction::m_nTag
int m_nTag
Definition: Actions.cpp:61
Ingredients.h
MHSubtract
Definition: Variables.h:200
MHSetLineWidth
Definition: Visible.h:423
MHUnimplementedAction::Initialise
void Initialise(MHParseNode *, MHEngine *) override
Definition: Actions.cpp:51
C_GET_SELECTION_STATUS
@ C_GET_SELECTION_STATUS
Definition: ASN1Codes.h:196
C_GET_BOX_SIZE
@ C_GET_BOX_SIZE
Definition: ASN1Codes.h:175
MHPersistent
Definition: Groups.h:216
C_SCROLL_ITEMS
@ C_SCROLL_ITEMS
Definition: ASN1Codes.h:217
C_ACTIVATE
@ C_ACTIVATE
Definition: ASN1Codes.h:151
C_GET_FOCUS_POSITION
@ C_GET_FOCUS_POSITION
Definition: ASN1Codes.h:281
MHCallActionSlot
Definition: TokenGroup.h:156
Text.h
MHSetCounterPosition
Definition: Stream.h:190
C_SPAWN
@ C_SPAWN
Definition: ASN1Codes.h:250
C_DRAW_SECTOR
@ C_DRAW_SECTOR
Definition: ASN1Codes.h:172
C_TOGGLE
@ C_TOGGLE
Definition: ASN1Codes.h:256
C_DRAW_OVAL
@ C_DRAW_OVAL
Definition: ASN1Codes.h:168
MHActionSequence::Initialise
virtual void Initialise(MHParseNode *p, MHEngine *engine)
Definition: Actions.cpp:67
C_SET_OVERWRITE_MODE
@ C_SET_OVERWRITE_MODE
Definition: ASN1Codes.h:240
C_SEND_EVENT
@ C_SEND_EVENT
Definition: ASN1Codes.h:220
C_RUN
@ C_RUN
Definition: ASN1Codes.h:214
C_DRAW_LINE
@ C_DRAW_LINE
Definition: ASN1Codes.h:167
C_READ_PERSISTENT
@ C_READ_PERSISTENT
Definition: ASN1Codes.h:213
MHGetFirstItem
Definition: TokenGroup.h:275
MHGetVideoDecodeOffset
Definition: Stream.h:159
MHSetInteractionStatus
Definition: Visible.h:439
MHSetBoxSize
Definition: Visible.h:397
TokenGroup.h
C_SET_BITMAP_DECODE_OFFSET
@ C_SET_BITMAP_DECODE_OFFSET
Definition: ASN1Codes.h:283
C_GET_LABEL
@ C_GET_LABEL
Definition: ASN1Codes.h:185
C_SET_CURSOR_SHAPE
@ C_SET_CURSOR_SHAPE
Definition: ASN1Codes.h:228
C_DESELECT
@ C_DESELECT
Definition: ASN1Codes.h:163
MHDelItem
Definition: TokenGroup.h:201
C_LOCK_SCREEN
@ C_LOCK_SCREEN
Definition: ASN1Codes.h:203
MHUnimplementedAction::MHUnimplementedAction
MHUnimplementedAction(int nTag)
Definition: Actions.cpp:47
MHGetEngineSupport
Definition: Groups.h:260
C_SELECT_ITEM
@ C_SELECT_ITEM
Definition: ASN1Codes.h:219
MHMultiply
Definition: Variables.h:208
C_GET_CELL_ITEM
@ C_GET_CELL_ITEM
Definition: ASN1Codes.h:176
BaseClasses.h
C_SET_SLIDER_VALUE
@ C_SET_SLIDER_VALUE
Definition: ASN1Codes.h:244
C_SET_LINE_STYLE
@ C_SET_LINE_STYLE
Definition: ASN1Codes.h:238
MHSetVariable
Definition: Variables.h:151
MHSequence< MHElemAction * >::Size
int Size() const
Definition: BaseClasses.h:47
MHParseNode
Definition: ParseNode.h:38
MHActionSequence::PrintMe
virtual void PrintMe(FILE *fd, int nTabs) const
Definition: Actions.cpp:456
MHGetPosition
Definition: Visible.h:415
MHSpawn
Definition: Groups.h:208
C_SET_FOCUS_POSITION
@ C_SET_FOCUS_POSITION
Definition: ASN1Codes.h:282
DynamicLineArt.h
MHSetFillColour
Definition: Visible.h:345
MHSetPortion
Definition: Visible.h:495
MHDrawPoly
Definition: DynamicLineArt.h:147
C_SET_PALETTE_REF
@ C_SET_PALETTE_REF
Definition: ASN1Codes.h:241
MHSequence< MHElemAction * >::GetAt
MHElemAction * GetAt(int i) const
Definition: BaseClasses.h:49
C_ADD
@ C_ADD
Definition: ASN1Codes.h:152
MHGetLineColour
Definition: DynamicLineArt.h:94
C_SET_VOLUME
@ C_SET_VOLUME
Definition: ASN1Codes.h:249
C_DEL_ITEM
@ C_DEL_ITEM
Definition: ASN1Codes.h:162
C_DRAW_ARC
@ C_DRAW_ARC
Definition: ASN1Codes.h:166
MHTestVariable
Definition: Variables.h:164
MHActivate
Definition: Link.h:68
MHSequence< MHElemAction * >::Append
void Append(MHElemAction * b)
Definition: BaseClasses.h:64
MHGetRunningStatus
Definition: Root.h:272
MHStop
Definition: Presentable.h:59
MHQuit
Definition: Groups.h:167
C_SET_FIRST_ITEM
@ C_SET_FIRST_ITEM
Definition: ASN1Codes.h:232
MHUnimplementedAction::PrintMe
void PrintMe(FILE *fd, int) const override
Definition: Actions.cpp:52
MHERROR
#define MHERROR(__text)
Definition: Logging.h:42
C_GET_TEXT_CONTENT
@ C_GET_TEXT_CONTENT
Definition: ASN1Codes.h:198
C_GET_LINE_COLOUR
@ C_GET_LINE_COLOUR
Definition: ASN1Codes.h:187
MHModulo
Definition: Variables.h:226
Logging.h
MHMoveTo
Definition: TokenGroup.h:174
C_CLOSE_CONNECTION
@ C_CLOSE_CONNECTION
Definition: ASN1Codes.h:160
MHPutBefore
Definition: Visible.h:363
MHGetTokenPosition
Definition: TokenGroup.h:182
C_SET_FILL_COLOUR
@ C_SET_FILL_COLOUR
Definition: ASN1Codes.h:231
Stream.h
MHElemAction
Definition: BaseActions.h:34
C_PUT_BEFORE
@ C_PUT_BEFORE
Definition: ASN1Codes.h:210
C_SET_FONT_ATTRIBUTES
@ C_SET_FONT_ATTRIBUTES
Definition: ASN1Codes.h:278
MHGetHighlightStatus
Definition: Visible.h:463
C_DIVIDE
@ C_DIVIDE
Definition: ASN1Codes.h:165
MHSetVideoDecodeOffset
Definition: Stream.h:151
C_PUT_BEHIND
@ C_PUT_BEHIND
Definition: ASN1Codes.h:211
C_GET_TEXT_DATA
@ C_GET_TEXT_DATA
Definition: ASN1Codes.h:199
C_STOP
@ C_STOP
Definition: ASN1Codes.h:252
C_SET_POSITION
@ C_SET_POSITION
Definition: ASN1Codes.h:243
MHSetSliderValue
Definition: Visible.h:479
MHGetCellItem
Definition: TokenGroup.h:219
MHRun
Definition: Presentable.h:51
MHElemAction::PrintMe
virtual void PrintMe(FILE *fd, int nTabs) const
Definition: BaseActions.cpp:37
C_UNLOCK_SCREEN
@ C_UNLOCK_SCREEN
Definition: ASN1Codes.h:260
MHGetCounterMaxPosition
Definition: Stream.h:182
MHSetLineStyle
Definition: Visible.h:431
C_SET_PORTION
@ C_SET_PORTION
Definition: ASN1Codes.h:242
C_SET_SLIDER_PARAMETERS
@ C_SET_SLIDER_PARAMETERS
Definition: ASN1Codes.h:285
MHSendToBack
Definition: Visible.h:381
BaseActions.h
C_TOGGLE_ITEM
@ C_TOGGLE_ITEM
Definition: ASN1Codes.h:257
MHClear
Definition: DynamicLineArt.h:110
MHAddItem
Definition: TokenGroup.h:189
MHGetLineStyle
Definition: DynamicLineArt.h:86
C_STORE_PERSISTENT
@ C_STORE_PERSISTENT
Definition: ASN1Codes.h:253
MHSetPosition
Definition: Visible.h:389
MHLaunch
Definition: Groups.h:159
MHDrawOval
Definition: DynamicLineArt.h:133
C_PRELOAD
@ C_PRELOAD
Definition: ASN1Codes.h:209
C_SET_DATA
@ C_SET_DATA
Definition: ASN1Codes.h:229
C_MULTIPLY
@ C_MULTIPLY
Definition: ASN1Codes.h:207
MHLockScreen
Definition: Groups.h:246