MythTV master
Visible.h
Go to the documentation of this file.
1/* Visible.h
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#if !defined(VISIBLE_H)
23#define VISIBLE_H
24#include <QRegion>
25
26#include "Presentable.h"
27// Dependencies
28#include "Ingredients.h"
29#include "Root.h"
30#include "BaseClasses.h"
31#include "freemheg.h"
32
33class MHEngine;
34
35class MHVisible : public MHPresentable
36{
37 public:
38 MHVisible() = default;
39 MHVisible(const MHVisible &ref);
40 void Initialise(MHParseNode *p, MHEngine *engine) override; // MHIngredient
41 void PrintMe(FILE *fd, int nTabs) const override; // MHIngredient
42
43 void Preparation(MHEngine *engine) override; // MHIngredient
44 void Destruction(MHEngine *engine) override; // MHIngredient
45 void Activation(MHEngine *engine) override; // MHRoot
46 void Deactivation(MHEngine *engine) override; // MHRoot
47
48 // Actions.
49 void SetPosition(int nXPosition, int nYPosition, MHEngine *engine) override; // MHRoot
50 void GetPosition(MHRoot *pXPosN, MHRoot *pYPosN) override; // MHRoot
51 void SetBoxSize(int nWidth, int nHeight, MHEngine *engine) override; // MHRoot
52 void GetBoxSize(MHRoot *pWidthDest, MHRoot *pHeightDest) override; // MHRoot
53 void SetPaletteRef(const MHObjectRef& newPalette, MHEngine *engine) override; // MHRoot
54 void BringToFront(MHEngine *engine) override; // MHRoot
55 void SendToBack(MHEngine *engine) override; // MHRoot
56 void PutBefore(const MHRoot *pRef, MHEngine *engine) override; // MHRoot
57 void PutBehind(const MHRoot *pRef, MHEngine *engine) override; // MHRoot
58
59 // Display function.
60 virtual void Display(MHEngine *) = 0;
61 // Get the visible region of this visible. This is the area that needs to be drawn.
62 virtual QRegion GetVisibleArea();
63 // Get the opaque area. This is the area that this visible completely obscures and
64 // is empty if the visible is drawn in a transparent or semi-transparent colour.
65 virtual QRegion GetOpaqueArea() { return {}; }
66
67 // Reset the position - used by ListGroup.
68 void ResetPosition() override // MHRoot
70
71 protected:
72 // Exchange attributes
77 MHObjectRef m_originalPaletteRef; // Optional palette ref
78 // Internal attributes
79 int m_nBoxWidth {0};
80 int m_nBoxHeight {0};
81 int m_nPosX {0};
82 int m_nPosY {0};
84
85 // Return the colour, looking up in the palette if necessary.
86 static MHRgba GetColour(const MHColour &colour);
87};
88
89class MHLineArt : public MHVisible
90{
91 public:
92 MHLineArt() = default;
93 MHLineArt(const MHLineArt &ref);
94 const char *ClassName() override // MHRoot
95 { return "LineArt"; }
96 void Initialise(MHParseNode *p, MHEngine *engine) override; // MHVisible
97 void PrintMe(FILE *fd, int nTabs) const override; // MHVisible
98 // Only DynamicLineArt and Rectangle are supported
99 void Display(MHEngine */*engine*/) override {} // MHVisible
100 void Preparation(MHEngine *engine) override; // MHVisible
101
102 // Actions on LineArt
103 void SetFillColour(const MHColour &colour, MHEngine *engine) override; // MHRoot
104 void SetLineColour(const MHColour &colour, MHEngine *engine) override; // MHRoot
105 void SetLineWidth(int nWidth, MHEngine *engine) override; // MHRoot
106 void SetLineStyle(int nStyle, MHEngine *engine) override; // MHRoot
107
108 protected:
109 // Exchanged attributes,
110 bool m_fBorderedBBox {true}; // Does it have lines round or not?
112 enum : std::uint8_t { LineStyleSolid = 1, LineStyleDashed = 2, LineStyleDotted = 3 };
115 // Internal attributes
117 int m_lineStyle {0};
119};
120
121class MHRectangle : public MHLineArt
122{
123 public:
124 MHRectangle() = default;
125 MHRectangle(const MHRectangle&) = default;
126 const char *ClassName() override // MHLineArt
127 { return "Rectangle"; }
128 void PrintMe(FILE *fd, int nTabs) const override; // MHLineArt
129 // Display function.
130 void Display(MHEngine *engine) override; // MHLineArt
131 QRegion GetOpaqueArea() override; // MHVisible
132 MHIngredient *Clone(MHEngine */*engine*/) override // MHRoot
133 { return new MHRectangle(*this); } // Create a clone of this ingredient.
134};
135
136// The Interactible class is described as a "mix-in" class. It is used
137// in various classes which complicates inheritance.
139{
140 public:
141 explicit MHInteractible(MHVisible *parent)
142 : m_parent(parent) {}
143 virtual ~MHInteractible() = default;
144 void Initialise(MHParseNode *p, MHEngine *engine);
145 void PrintMe(FILE *fd, int nTabs) const;
146
147 virtual void Interaction(MHEngine *engine);
148
149 // This is called whenever a key is pressed while this
150 // interactible is set to interactive.
151 virtual void KeyEvent(MHEngine * /*engine*/, int /*nCode*/) {}
152 virtual void InteractionCompleted(MHEngine * /*engine*/) {}
153
154 void InteractSetInteractionStatus(bool newStatus, MHEngine *engine);
156 void InteractSetHighlightStatus(bool newStatus, MHEngine *engine);
158 // InteractDeactivation should be applied in every Deactivation action
159 // of derived classes.
161
162 protected:
163 // Exchanged attributes
164 bool m_fEngineResp {true};
166 // Internal attributes
167 bool m_fHighlightStatus {false};
169
170 private:
172};
173
174class MHSlider : public MHVisible, public MHInteractible
175{
176 public:
178 ~MHSlider() override = default;
179 const char *ClassName() override // MHRoot
180 { return "Slider"; }
181 void Initialise(MHParseNode *p, MHEngine *engine) override; // MHVisible
182 void PrintMe(FILE *fd, int nTabs) const override; // MHVisible
183 void Display(MHEngine *engine) override; // MHVisible
184 void Preparation(MHEngine *engine) override; // MHVisible
185
186 void Interaction(MHEngine *engine) override; // MHInteractible
187 void InteractionCompleted(MHEngine *engine) override; // MHInteractible
188 void KeyEvent(MHEngine *engine, int nCode) override; // MHInteractible
189
190 // Implement the actions in the main inheritance line.
191 void SetInteractionStatus(bool newStatus, MHEngine *engine) override // MHRoot
192 { InteractSetInteractionStatus(newStatus, engine); }
193 bool GetInteractionStatus(void) override // MHRoot
194 { return InteractGetInteractionStatus(); }
195 void SetHighlightStatus(bool newStatus, MHEngine *engine) override // MHRoot
196 { InteractSetHighlightStatus(newStatus, engine); }
197 bool GetHighlightStatus(void) override // MHRoot
198 { return InteractGetHighlightStatus(); }
199 void Deactivation(MHEngine */*engine*/) override // MHVisible
201
202 // Actions
203 void Step(int nbSteps, MHEngine *engine) override; // MHRoot
204 void SetSliderValue(int newValue, MHEngine *engine) override; // MHRoot
205 int GetSliderValue(void) override // MHRoot
206 { return m_sliderValue; }
207 void SetPortion(int newPortion, MHEngine *engine) override; // MHRoot
208 int GetPortion(void) override // MHRoot
209 { return m_portion; }
210 // Additional action defined in UK MHEG.
211 void SetSliderParameters(int newMin, int newMax, int newStep, MHEngine *engine) override; // MHRoot
212
213 // Enumerated type lookup functions for the text parser.
214 static int GetOrientation(const QString& str);
215 static int GetStyle(const QString& str);
216 protected:
217 void Increment(MHEngine *engine);
218 void Decrement(MHEngine *engine);
219
220 // Exchanged attributes
221 // Orientation and direction of increasing value.
223 m_orientation {SliderLeft};
229 // Style of slider. Normal represents a mark on a scale,
230 // Thermometer a range from the start up to the mark and Proportional
231 // a range from the slider to the portion.
232 enum SliderStyle : std::uint8_t { SliderNormal = 1, SliderThermo, SliderProp }
233 m_style {SliderNormal};
235 // Internal attributes
236 // In UK MHEG min_value, max_value and step_size can be changed.
237 int m_maxValue {0};
238 int m_minValue {0};
239 int m_stepSize {0};
241 int m_portion {0};
242};
243
245{
246 public:
248 ~MHEntryField() override = default;
249 const char *ClassName() override // MHRoot
250 { return "EntryField"; }
251 void Initialise(MHParseNode *p, MHEngine *engine) override; // MHVisible
252 void PrintMe(FILE *fd, int nTabs) const override; // MHVisible
253 void Display(MHEngine */*engine*/) override {} // MHVisible - Not (yet?) supported
254
255 // Implement the actions in the main inheritance line.
256 void SetInteractionStatus(bool newStatus, MHEngine *engine) override // MHRoot
257 { InteractSetInteractionStatus(newStatus, engine); }
258 bool GetInteractionStatus(void) override // MHRoot
259 { return InteractGetInteractionStatus(); }
260 void SetHighlightStatus(bool newStatus, MHEngine *engine) override // MHRoot
261 { InteractSetHighlightStatus(newStatus, engine); }
262 bool GetHighlightStatus(void) override // MHRoot
263 { return InteractGetHighlightStatus(); }
264 void Deactivation(MHEngine */*engine*/) override // MHVisible
266};
267
268// Button - not needed for UK MHEG.
269class MHButton : public MHVisible
270{
271 public:
272 MHButton() = default;
273 ~MHButton() override = default;
274 void Initialise(MHParseNode *p, MHEngine *engine) override; // MHVisible
275 void PrintMe(FILE *fd, int nTabs) const override; // MHVisible
276 void Display(MHEngine */*engine*/) override {} // MHVisible - Not (yet?) supported
277};
278
279// HotSpot - not needed for UK MHEG.
280class MHHotSpot : public MHButton
281{
282 public:
283 MHHotSpot() = default;
284 ~MHHotSpot() override = default;
285 const char *ClassName() override // MHRoot
286 { return "HotSpot"; }
287 void Initialise(MHParseNode *p, MHEngine *engine) override; // MHButton
288 void PrintMe(FILE *fd, int nTabs) const override; // MHButton
289 void Display(MHEngine */*engine*/) override {} // MHButton - Not supported
290};
291
292// PushButton - not needed for UK MHEG.
293class MHPushButton : public MHButton
294{
295 public:
296 MHPushButton() = default;
297 ~MHPushButton() override = default;
298 const char *ClassName() override // MHRoot
299 { return "PushButton"; }
300 void Initialise(MHParseNode *p, MHEngine *engine) override; // MHButton
301 void PrintMe(FILE *fd, int nTabs) const override; // MHButton
302 void Display(MHEngine */*engine*/) override {} // MHButton - Not supported
303};
304
305// SwitchButton - not needed for UK MHEG.
307{
308 public:
309 MHSwitchButton() = default;
310 ~MHSwitchButton() override = default;
311 const char *ClassName() override // MHPushButton
312 { return "SwitchButton"; }
313 void Initialise(MHParseNode *p, MHEngine *engine) override; // MHPushButton
314 void PrintMe(FILE *fd, int nTabs) const override; // MHPushButton
315 void Display(MHEngine */*engine*/) override {} // MHPushButton - Not supported
316};
317
318// Actions
319
320// Set Line or Fill colour
322{
323 public:
324 explicit MHSetColour(const char *name): MHElemAction(name) { }
325 void Initialise(MHParseNode *p, MHEngine *engine) override; // MHElemAction
326 void Perform(MHEngine *engine) override; // MHElemAction
327 protected:
328 void PrintArgs(FILE *fd, int nTabs) const override; // MHElemAction
329 virtual void SetColour(const MHColour &colour, MHEngine *engine) = 0;
330 // The colour can be specified as either an index or an absolute colour.
331 // It's optional for the fill colour.
332 enum : std::uint8_t { CT_None, CT_Indexed, CT_Absolute } m_colourType { CT_None };
335};
336
338 public:
339 MHSetLineColour(): MHSetColour(":SetLineColour") { }
340 protected:
341 void SetColour(const MHColour &colour, MHEngine *engine) override // MHSetColour
342 { Target(engine)->SetLineColour(colour, engine); }
343};
344
346 public:
347 MHSetFillColour(): MHSetColour(":SetFillColour") { }
348 protected:
349 void SetColour(const MHColour &colour, MHEngine *engine) override // MHSetColour
350 { Target(engine)->SetFillColour(colour, engine); }
351};
352
353// BringToFront - bring a visible to the front of the display stack.
355{
356 public:
357 MHBringToFront(): MHElemAction(":BringToFront") {}
358 void Perform(MHEngine *engine) override // MHElemAction
359 { Target(engine)->BringToFront(engine); }
360};
361
362// PutBefore - put a visible in front of another.
364{
365 public:
367 void CallAction(MHEngine *engine, MHRoot *pTarget, MHRoot *pRef) override // MHActionGenericObjectRef
368 { pTarget->PutBefore(pRef, engine); }
369};
370
371// PutBehind - put a visible behind another.
373{
374 public:
376 void CallAction(MHEngine *engine, MHRoot *pTarget, MHRoot *pRef) override // MHActionGenericObjectRef
377 { pTarget->PutBehind(pRef, engine); }
378};
379
380// SendToBack - put a visible at the bottom of the display stack.
382{
383 public:
384 MHSendToBack(): MHElemAction(":SendToBack") {}
385 void Perform(MHEngine *engine) override // MHElemAction
386 { Target(engine)->SendToBack(engine); }
387};
388
390{
391 public:
392 MHSetPosition(): MHActionIntInt(":SetPosition") {}
393 void CallAction(MHEngine *engine, MHRoot *pTarget, int nArg1, int nArg2) override // MHActionIntInt
394 { pTarget->SetPosition(nArg1, nArg2, engine); };
395};
396
398{
399 public:
400 MHSetBoxSize(): MHActionIntInt(":SetBoxSize") {}
401 void CallAction(MHEngine *engine, MHRoot *pTarget, int nArg1, int nArg2) override // MHActionIntInt
402 { pTarget->SetBoxSize(nArg1, nArg2, engine); }
403};
404
405// Get box size of a visible
407{
408 public:
409 MHGetBoxSize(): MHActionObjectRef2(":GetBoxSize") {}
410 void CallAction(MHEngine */*engine*/, MHRoot *pTarget, MHRoot *pArg1, MHRoot *pArg2) override // MHActionObjectRef2
411 { pTarget->GetBoxSize(pArg1, pArg2); }
412};
413
414// GetPosition of a visible
416{
417 public:
418 MHGetPosition(): MHActionObjectRef2(":GetPosition") {}
419 void CallAction(MHEngine */*engine*/, MHRoot *pTarget, MHRoot *pArg1, MHRoot *pArg2) override // MHActionObjectRef2
420 { pTarget->GetPosition(pArg1, pArg2); }
421};
422
424{
425 public:
426 MHSetLineWidth(): MHActionInt(":SetLineWidth") {}
427 void CallAction(MHEngine *engine, MHRoot *pTarget, int nArg) override // MHActionInt
428 { pTarget->SetLineWidth(nArg, engine); };
429};
430
432{
433 public:
434 MHSetLineStyle(): MHActionInt(":SetLineStyle") {}
435 void CallAction(MHEngine *engine, MHRoot *pTarget, int nArg) override // MHActionInt
436 { pTarget->SetLineStyle(nArg, engine); };
437};
438
440{
441 public:
442 MHSetInteractionStatus(): MHActionBool("SetInteractionStatus") {}
443 void CallAction(MHEngine *engine, MHRoot */*pTarget*/, bool newStatus) override // MHActionBool
444 { Target(engine)->SetInteractionStatus(newStatus, engine); }
445};
446
448{
449 public:
450 MHGetInteractionStatus(): MHActionObjectRef(":GetInteractionStatus") {}
451 void CallAction(MHEngine */*engine*/, MHRoot *pTarget, MHRoot *pResult) override // MHActionObjectRef
452 { pResult->SetVariableValue(pTarget->GetInteractionStatus());}
453};
454
456{
457 public:
458 MHSetHighlightStatus(): MHActionBool("SetHighlightStatus") {}
459 void CallAction(MHEngine *engine, MHRoot */*pTarget*/, bool newStatus) override // MHActionBool
460 { Target(engine)->SetHighlightStatus(newStatus, engine); }
461};
462
464{
465 public:
466 MHGetHighlightStatus(): MHActionObjectRef(":GetHighlightStatus") {}
467 void CallAction(MHEngine */*engine*/, MHRoot *pTarget, MHRoot *pResult) override // MHActionObjectRef
468 { pResult->SetVariableValue(pTarget->GetHighlightStatus());}
469};
470
471class MHStep: public MHActionInt
472{
473 public:
474 MHStep(): MHActionInt(":Step") {}
475 void CallAction(MHEngine *engine, MHRoot *pTarget, int nArg) override // MHActionInt
476 { pTarget->Step(nArg, engine); };
477};
478
480{
481 public:
482 MHSetSliderValue(): MHActionInt(":SetSliderValue") {}
483 void CallAction(MHEngine *engine, MHRoot *pTarget, int nArg) override // MHActionInt
484 { pTarget->SetSliderValue(nArg, engine); };
485};
486
488{
489 public:
490 MHGetSliderValue(): MHActionObjectRef(":GetSliderValue") {}
491 void CallAction(MHEngine */*engine*/, MHRoot *pTarget, MHRoot *pResult) override // MHActionObjectRef
492 { pResult->SetVariableValue(pTarget->GetSliderValue());}
493};
494
496{
497 public:
498 MHSetPortion(): MHActionInt(":SetPortion") {}
499 void CallAction(MHEngine *engine, MHRoot *pTarget, int nArg) override // MHActionInt
500 { pTarget->SetPortion(nArg, engine); };
501};
502
504{
505 public:
506 MHGetPortion(): MHActionObjectRef(":GetPortion") {}
507 void CallAction(MHEngine */*engine*/, MHRoot *pTarget, MHRoot *pResult) override // MHActionObjectRef
508 { pResult->SetVariableValue(pTarget->GetPortion());}
509};
510
512{
513 public:
514 MHSetSliderParameters(): MHActionInt3(":SetSliderParameters") {}
515 void CallAction(MHEngine *engine, MHRoot *pTarget, int newMin, int newMax, int newStep) override // MHActionInt3
516 { pTarget->SetSliderParameters(newMin, newMax, newStep, engine); };
517};
518
519#endif
void Perform(MHEngine *engine) override
Definition: Visible.h:358
void Display(MHEngine *) override
Definition: Visible.h:276
void PrintMe(FILE *fd, int nTabs) const override
Definition: Visible.cpp:1063
MHButton()=default
void Initialise(MHParseNode *p, MHEngine *engine) override
Definition: Visible.cpp:1057
~MHButton() override=default
MHRoot * Target(MHEngine *engine)
Definition: BaseActions.cpp:46
const char * ClassName() override
Definition: Visible.h:249
void SetInteractionStatus(bool newStatus, MHEngine *engine) override
Definition: Visible.h:256
MHEntryField()
Definition: Visible.h:247
void SetHighlightStatus(bool newStatus, MHEngine *engine) override
Definition: Visible.h:260
void Display(MHEngine *) override
Definition: Visible.h:253
void Deactivation(MHEngine *) override
Definition: Visible.h:264
bool GetHighlightStatus(void) override
Definition: Visible.h:262
bool GetInteractionStatus(void) override
Definition: Visible.h:258
void Initialise(MHParseNode *p, MHEngine *engine) override
Definition: Visible.cpp:1039
void PrintMe(FILE *fd, int nTabs) const override
Definition: Visible.cpp:1046
~MHEntryField() override=default
void CallAction(MHEngine *, MHRoot *pTarget, MHRoot *pArg1, MHRoot *pArg2) override
Definition: Visible.h:410
MHGetBoxSize()
Definition: Visible.h:409
void CallAction(MHEngine *, MHRoot *pTarget, MHRoot *pResult) override
Definition: Visible.h:467
void CallAction(MHEngine *, MHRoot *pTarget, MHRoot *pResult) override
Definition: Visible.h:451
MHGetPortion()
Definition: Visible.h:506
void CallAction(MHEngine *, MHRoot *pTarget, MHRoot *pResult) override
Definition: Visible.h:507
void CallAction(MHEngine *, MHRoot *pTarget, MHRoot *pArg1, MHRoot *pArg2) override
Definition: Visible.h:419
void CallAction(MHEngine *, MHRoot *pTarget, MHRoot *pResult) override
Definition: Visible.h:491
void PrintMe(FILE *fd, int nTabs) const override
Definition: Visible.cpp:1075
void Display(MHEngine *) override
Definition: Visible.h:289
void Initialise(MHParseNode *p, MHEngine *engine) override
Definition: Visible.cpp:1069
MHHotSpot()=default
const char * ClassName() override
Definition: Visible.h:285
~MHHotSpot() override=default
bool InteractGetInteractionStatus(void) const
Definition: Visible.h:155
MHColour m_highlightRefColour
Definition: Visible.h:165
void InteractSetInteractionStatus(bool newStatus, MHEngine *engine)
Definition: Visible.cpp:558
virtual ~MHInteractible()=default
MHInteractible(MHVisible *parent)
Definition: Visible.h:141
void InteractSetHighlightStatus(bool newStatus, MHEngine *engine)
Definition: Visible.cpp:579
bool InteractGetHighlightStatus(void) const
Definition: Visible.h:157
void PrintMe(FILE *fd, int nTabs) const
Definition: Visible.cpp:532
bool m_fEngineResp
Definition: Visible.h:164
bool m_fHighlightStatus
Definition: Visible.h:167
MHVisible * m_parent
Definition: Visible.h:171
virtual void Interaction(MHEngine *engine)
Definition: Visible.cpp:549
bool m_fInteractionStatus
Definition: Visible.h:168
void InteractDeactivation(void)
Definition: Visible.h:160
virtual void InteractionCompleted(MHEngine *)
Definition: Visible.h:152
void Initialise(MHParseNode *p, MHEngine *engine)
Definition: Visible.cpp:506
virtual void KeyEvent(MHEngine *, int)
Definition: Visible.h:151
void SetLineWidth(int nWidth, MHEngine *engine) override
Definition: Visible.cpp:414
MHColour m_fillColour
Definition: Visible.h:118
void Display(MHEngine *) override
Definition: Visible.h:99
void Initialise(MHParseNode *p, MHEngine *engine) override
Definition: Visible.cpp:285
MHColour m_origLineColour
Definition: Visible.h:114
void Preparation(MHEngine *engine) override
Definition: Visible.cpp:368
void SetLineStyle(int nStyle, MHEngine *engine) override
Definition: Visible.cpp:420
void PrintMe(FILE *fd, int nTabs) const override
Definition: Visible.cpp:329
MHLineArt()=default
const char * ClassName() override
Definition: Visible.h:94
int m_lineStyle
Definition: Visible.h:117
int m_originalLineStyle
Definition: Visible.h:113
void SetLineColour(const MHColour &colour, MHEngine *engine) override
Definition: Visible.cpp:408
int m_nOriginalLineWidth
Definition: Visible.h:111
bool m_fBorderedBBox
Definition: Visible.h:110
MHColour m_origFillColour
Definition: Visible.h:114
@ LineStyleDashed
Definition: Visible.h:112
@ LineStyleDotted
Definition: Visible.h:112
@ LineStyleSolid
Definition: Visible.h:112
int m_nLineWidth
Definition: Visible.h:116
MHColour m_lineColour
Definition: Visible.h:118
void SetFillColour(const MHColour &colour, MHEngine *engine) override
Definition: Visible.cpp:402
~MHPushButton() override=default
void Display(MHEngine *) override
Definition: Visible.h:302
void PrintMe(FILE *fd, int nTabs) const override
Definition: Visible.cpp:1091
const char * ClassName() override
Definition: Visible.h:298
void Initialise(MHParseNode *p, MHEngine *engine) override
Definition: Visible.cpp:1085
MHPushButton()=default
MHPutBefore()
Definition: Visible.h:366
void CallAction(MHEngine *engine, MHRoot *pTarget, MHRoot *pRef) override
Definition: Visible.h:367
void CallAction(MHEngine *engine, MHRoot *pTarget, MHRoot *pRef) override
Definition: Visible.h:376
MHPutBehind()
Definition: Visible.h:375
MHIngredient * Clone(MHEngine *) override
Definition: Visible.h:132
MHRectangle(const MHRectangle &)=default
MHRectangle()=default
void PrintMe(FILE *fd, int nTabs) const override
Definition: Visible.cpp:427
const char * ClassName() override
Definition: Visible.h:126
void Display(MHEngine *engine) override
Definition: Visible.cpp:467
QRegion GetOpaqueArea() override
Definition: Visible.cpp:437
Definition: Root.h:45
virtual void SetFillColour(const MHColour &, MHEngine *)
Definition: Root.h:175
virtual void SetHighlightStatus(bool, MHEngine *)
Definition: Root.h:229
virtual void SetInteractionStatus(bool, MHEngine *)
Definition: Root.h:226
virtual void SendToBack(MHEngine *)
Definition: Root.h:169
virtual void BringToFront(MHEngine *)
Definition: Root.h:168
virtual void SetLineColour(const MHColour &, MHEngine *)
Definition: Root.h:177
void Perform(MHEngine *engine) override
Definition: Visible.h:385
MHSendToBack()
Definition: Visible.h:384
void CallAction(MHEngine *engine, MHRoot *pTarget, int nArg1, int nArg2) override
Definition: Visible.h:401
MHSetBoxSize()
Definition: Visible.h:400
MHSetColour(const char *name)
Definition: Visible.h:324
MHGenericOctetString m_absolute
Definition: Visible.h:334
void Initialise(MHParseNode *p, MHEngine *engine) override
Definition: Visible.cpp:1118
virtual void SetColour(const MHColour &colour, MHEngine *engine)=0
enum MHSetColour::@12 CT_None
MHGenericInteger m_indexed
Definition: Visible.h:333
void PrintArgs(FILE *fd, int nTabs) const override
Definition: Visible.cpp:1140
@ CT_Absolute
Definition: Visible.h:332
@ CT_Indexed
Definition: Visible.h:332
void Perform(MHEngine *engine) override
Definition: Visible.cpp:1154
void SetColour(const MHColour &colour, MHEngine *engine) override
Definition: Visible.h:349
void CallAction(MHEngine *engine, MHRoot *, bool newStatus) override
Definition: Visible.h:459
void CallAction(MHEngine *engine, MHRoot *, bool newStatus) override
Definition: Visible.h:443
void SetColour(const MHColour &colour, MHEngine *engine) override
Definition: Visible.h:341
void CallAction(MHEngine *engine, MHRoot *pTarget, int nArg) override
Definition: Visible.h:435
void CallAction(MHEngine *engine, MHRoot *pTarget, int nArg) override
Definition: Visible.h:427
void CallAction(MHEngine *engine, MHRoot *pTarget, int nArg) override
Definition: Visible.h:499
MHSetPortion()
Definition: Visible.h:498
void CallAction(MHEngine *engine, MHRoot *pTarget, int nArg1, int nArg2) override
Definition: Visible.h:393
void CallAction(MHEngine *engine, MHRoot *pTarget, int newMin, int newMax, int newStep) override
Definition: Visible.h:515
void CallAction(MHEngine *engine, MHRoot *pTarget, int nArg) override
Definition: Visible.h:483
int m_maxValue
Definition: Visible.h:237
void Deactivation(MHEngine *) override
Definition: Visible.h:199
SliderStyle
Definition: Visible.h:232
@ SliderThermo
Definition: Visible.h:232
@ SliderProp
Definition: Visible.h:232
int GetPortion(void) override
Definition: Visible.h:208
SliderOrientation
Definition: Visible.h:222
@ SliderUp
Definition: Visible.h:222
@ SliderRight
Definition: Visible.h:222
@ SliderDown
Definition: Visible.h:222
int m_origMinValue
Definition: Visible.h:227
bool GetInteractionStatus(void) override
Definition: Visible.h:193
int m_portion
Definition: Visible.h:241
static int GetStyle(const QString &str)
Definition: Visible.cpp:719
int m_origStepSize
Definition: Visible.h:228
MHSlider()
Definition: Visible.h:177
int m_minValue
Definition: Visible.h:238
void PrintMe(FILE *fd, int nTabs) const override
Definition: Visible.cpp:732
enum MHSlider::SliderOrientation SliderLeft
void InteractionCompleted(MHEngine *engine) override
Definition: Visible.cpp:888
void Increment(MHEngine *engine)
Definition: Visible.cpp:966
void Display(MHEngine *engine) override
Definition: Visible.cpp:802
void SetSliderValue(int newValue, MHEngine *engine) override
Definition: Visible.cpp:998
void KeyEvent(MHEngine *engine, int nCode) override
Definition: Visible.cpp:899
void Interaction(MHEngine *engine) override
Definition: Visible.cpp:880
enum MHSlider::SliderStyle SliderNormal
int m_initialValue
Definition: Visible.h:224
int GetSliderValue(void) override
Definition: Visible.h:205
~MHSlider() override=default
void SetInteractionStatus(bool newStatus, MHEngine *engine) override
Definition: Visible.h:191
void Decrement(MHEngine *engine)
Definition: Visible.cpp:976
void Step(int nbSteps, MHEngine *engine) override
Definition: Visible.cpp:986
void SetHighlightStatus(bool newStatus, MHEngine *engine) override
Definition: Visible.h:195
int m_sliderValue
Definition: Visible.h:240
void Initialise(MHParseNode *p, MHEngine *engine) override
Definition: Visible.cpp:598
bool GetHighlightStatus(void) override
Definition: Visible.h:197
int m_initialPortion
Definition: Visible.h:225
void Preparation(MHEngine *engine) override
Definition: Visible.cpp:792
MHColour m_sliderRefColour
Definition: Visible.h:234
void SetSliderParameters(int newMin, int newMax, int newStep, MHEngine *engine) override
Definition: Visible.cpp:1023
const char * ClassName() override
Definition: Visible.h:179
void SetPortion(int newPortion, MHEngine *engine) override
Definition: Visible.cpp:1010
int m_origMaxValue
Definition: Visible.h:226
static int GetOrientation(const QString &str)
Definition: Visible.cpp:699
int m_stepSize
Definition: Visible.h:239
void CallAction(MHEngine *engine, MHRoot *pTarget, int nArg) override
Definition: Visible.h:475
MHStep()
Definition: Visible.h:474
void Display(MHEngine *) override
Definition: Visible.h:315
const char * ClassName() override
Definition: Visible.h:311
MHSwitchButton()=default
void Initialise(MHParseNode *p, MHEngine *engine) override
Definition: Visible.cpp:1101
void PrintMe(FILE *fd, int nTabs) const override
Definition: Visible.cpp:1107
~MHSwitchButton() override=default
void SendToBack(MHEngine *engine) override
Definition: Visible.cpp:257
void PutBefore(const MHRoot *pRef, MHEngine *engine) override
Definition: Visible.cpp:262
void ResetPosition() override
Definition: Visible.h:68
void Deactivation(MHEngine *engine) override
Definition: Visible.cpp:147
void PrintMe(FILE *fd, int nTabs) const override
Definition: Visible.cpp:90
void SetPaletteRef(const MHObjectRef &newPalette, MHEngine *engine) override
Definition: Visible.cpp:246
virtual QRegion GetOpaqueArea()
Definition: Visible.h:65
virtual QRegion GetVisibleArea()
Definition: Visible.cpp:203
int m_nBoxWidth
Definition: Visible.h:79
void Destruction(MHEngine *engine) override
Definition: Visible.cpp:128
int m_nBoxHeight
Definition: Visible.h:80
static MHRgba GetColour(const MHColour &colour)
Definition: Visible.cpp:162
void Activation(MHEngine *engine) override
Definition: Visible.cpp:134
void PutBehind(const MHRoot *pRef, MHEngine *engine) override
Definition: Visible.cpp:267
void BringToFront(MHEngine *engine) override
Definition: Visible.cpp:252
int m_nOriginalBoxHeight
Definition: Visible.h:74
virtual void Display(MHEngine *)=0
int m_nOriginalPosY
Definition: Visible.h:76
MHObjectRef m_paletteRef
Definition: Visible.h:83
MHObjectRef m_originalPaletteRef
Definition: Visible.h:77
void GetPosition(MHRoot *pXPosN, MHRoot *pYPosN) override
Definition: Visible.cpp:225
void SetPosition(int nXPosition, int nYPosition, MHEngine *engine) override
Definition: Visible.cpp:213
void Initialise(MHParseNode *p, MHEngine *engine) override
Definition: Visible.cpp:56
void GetBoxSize(MHRoot *pWidthDest, MHRoot *pHeightDest) override
Definition: Visible.cpp:240
int m_nOriginalPosX
Definition: Visible.h:75
int m_nPosY
Definition: Visible.h:82
void SetBoxSize(int nWidth, int nHeight, MHEngine *engine) override
Definition: Visible.cpp:231
MHVisible()=default
int m_nOriginalBoxWidth
Definition: Visible.h:73
void Preparation(MHEngine *engine) override
Definition: Visible.cpp:111
int m_nPosX
Definition: Visible.h:81
int FILE
Definition: mythburn.py:138