Guiliani  Version 2.5 revision 7293 (documentation build 13)
GUIFactory.h
1/*
2* Copyright (C) TES Electronic Solutions GmbH,
3* All Rights Reserved.
4* Contact: info@guiliani.de
5*
6* This file is part of the Guiliani HMI framework
7* for the development of graphical user interfaces on embedded systems.
8*/
9
10#ifndef GUIFACTORY__H_
11#define GUIFACTORY__H_
12
14#include "GUICommandResource.h"
15#include "GUIControlResource.h"
16#include "GUILayouterResource.h"
17#include "GUITextTypeResource.h"
19#include "RefCounted.h"
20#include "SharedPtr.h"
21
22class CGUIObject;
23typedef CGUIObject* (*ControlCreateCallback)();
24
25class CGUILayouter;
26typedef CGUILayouter* (*LayouterCreateCallback)();
27
29typedef CGUIBehaviourDecorator* (*BehaviourCreateCallback)();
30
31class CGUICommand;
32typedef CGUICommand* (*CommandCreateCallback)();
33
34class CGUIText;
35typedef CGUIText* (*TextCreateCallback)();
36
37#ifdef GUILIANI_ANIMATION_ACTIVE
38class CGUIAnimation;
39typedef CGUIAnimation* (*AnimationCreateCallback)();
40#endif
41
42class CGUIFactory;
45
48{
56 eC_Int iID,
57 const char* rkClassName,
58 ControlCreateCallback pkCreate) :
59 m_iID(iID),
60 m_kClassName(rkClassName),
61 m_pkCreate(pkCreate)
62 {}
63
65 m_iID(DUMMY_CONTROL),
66 m_kClassName(""),
67 m_pkCreate(NULL)
68 {}
69
71 eC_Int m_iID;
72
74 const char* m_kClassName;
75
77 ControlCreateCallback m_pkCreate;
78};
79typedef eC_TArray<ControlDescriptor> ControlVector;
80
83{
90 eC_Int iID,
91 const char* rkClassName,
92 BehaviourCreateCallback pkCreate) :
93 m_iID(iID),
94 m_kClassName(rkClassName),
95 m_pkCreate(pkCreate)
96 {}
97
99 m_iID(DUMMY_BEHAVIOUR),
100 m_kClassName(""),
101 m_pkCreate(NULL)
102 {}
103
105 eC_Int m_iID;
106
108 const char* m_kClassName;
109
111 BehaviourCreateCallback m_pkCreate;
112};
113typedef eC_TArray<BehaviourDescriptor> BehaviourVector;
114
117{
124 eC_Int iID,
125 const char* rkClassName,
126 CommandCreateCallback pkCreate) :
127 m_iID(iID),
128 m_kClassName(rkClassName),
129 m_pkCreate(pkCreate)
130 {}
131
133 m_iID(DUMMY_COMMAND),
134 m_kClassName(""),
135 m_pkCreate(NULL)
136 {}
137
139 eC_Int m_iID;
140
142 const char* m_kClassName;
143
145 CommandCreateCallback m_pkCreate;
146};
147typedef eC_TArray<CommandDescriptor> CommandVector;
148
151{
158 eC_Int iID,
159 const char* rkClassName,
160 LayouterCreateCallback pkCreate) :
161 m_iID(iID),
162 m_kClassName(rkClassName),
163 m_pkCreate(pkCreate)
164 {}
165
167 m_iID(DUMMY_LAYOUTER),
168 m_kClassName(""),
169 m_pkCreate(NULL)
170 {}
171
173 eC_Int m_iID;
174
176 const char* m_kClassName;
177
179 LayouterCreateCallback m_pkCreate;
180};
181typedef eC_TArray<LayouterDescriptor> LayouterVector;
182
185{
192 eC_Int iID,
193 const char* rkClassName,
194 TextCreateCallback pkCreate) :
195 m_iID(iID),
196 m_kClassName(rkClassName),
197 m_pkCreate(pkCreate)
198 {}
199
201 m_iID(DUMMY_LAYOUTER),
202 m_kClassName(""),
203 m_pkCreate(NULL)
204 {}
205
207 eC_Int m_iID;
208
210 const char* m_kClassName;
211
213 TextCreateCallback m_pkCreate;
214};
215typedef eC_TArray<TextTypeDescriptor> TextTypeVector;
216
217#ifdef GUILIANI_ANIMATION_ACTIVE
220{
227 eC_Int iID,
228 const char* rkClassName,
229 AnimationCreateCallback pkCreate) :
230 m_iID(iID),
231 m_kClassName(rkClassName),
232 m_pkCreate(pkCreate)
233 {}
234
236 m_iID(DUMMY_LAYOUTER),
237 m_kClassName(""),
238 m_pkCreate(NULL)
239 {}
240
242 eC_Int m_iID;
243
245 const char* m_kClassName;
246
248 AnimationCreateCallback m_pkCreate;
249};
250typedef eC_TArray<AnimationDescriptor> AnimationVector;
251#endif
252
254
341{
342public:
348
352 void UnregisterControl(const eC_Int& iID);
353
357 void GetControls(ControlVector& rkControls);
358
364
368 void UnregisterBehaviour(const eC_Int& iID);
369
373 void GetBehaviours(BehaviourVector& rkBehaviours);
374
380
384 void UnregisterCommand(const eC_Int& iID);
385
389 void GetCommands(CommandVector& rkCommands);
390
396
400 void UnregisterLayouter(const eC_Int& iID);
401
405 void GetLayouters(LayouterVector& rkLayouters);
406
412
416 void UnregisterText(const eC_Int& iID);
417
421 void GetTextTypes(TextTypeVector& rkTextTypes);
422
423#ifdef GUILIANI_ANIMATION_ACTIVE
429
433 void UnregisterAnimation(const eC_Int& iID);
434
438 void GetAnimations(AnimationVector& rkAnimations);
439#endif
440
441protected:
443 friend class CGUIFactoryManager;
444
446 virtual ~CGUIFactory();
447
452 virtual CGUIObject* CreateControl(const ControlClassID_t& eControlID) { return NULL; }
453
458 virtual CGUILayouter* CreateLayouter(const LayouterClassID_t& eLayouterID) { return NULL; }
459
464 virtual CGUIBehaviourDecorator* CreateBehaviour(const BehaviourClassID_t& eBehaviourID) { return NULL; }
465
470 virtual CGUICommand* CreateCommand(const CommandClassID_t& eCommandID) { return NULL; }
471
476 virtual CGUIText* CreateText(const TextTypeID_t& eTextType) { return NULL; }
477
478#ifdef GUILIANI_ANIMATION_ACTIVE
483 virtual CGUIAnimation* CreateAnimation(const AnimationType_t& eAnimation) { return NULL; }
484#endif
485
486protected:
487 // controls
488 ControlVector m_kControlVector;
489
490 // behaviours
491 BehaviourVector m_kBehaviourVector;
492
493 // commands
494 CommandVector m_kCommandVector;
495
496 // layouters
497 LayouterVector m_kLayouterVector;
498
499 // texts
500 TextTypeVector m_kTextTypeVector;
501
502#ifdef GUILIANI_ANIMATION_ACTIVE
503 // animations
504 AnimationVector m_kAnimationVector;
505#endif
506};
507
508#endif
Helper Macros in Guiliani
AnimationType_t
List of animation resource ids.
Definition: GUIAnimationTypeResource.h:47
Helper Macros in Guiliani
BehaviourClassID_t
List of behaviour class ids.
Definition: GUIBehaviourResource.h:47
Helper Macros in Guiliani
CommandClassID_t
List of command class ids.
Definition: GUICommandResource.h:51
Helper Macros in Guiliani
ControlClassID_t
List of control class ids.
Definition: GUIControlResource.h:127
Helper Macros in Guiliani
LayouterClassID_t
List of layouter resource ids.
Definition: GUILayouterResource.h:40
Helper Macros in Guiliani
TextTypeID_t
List of text type resource ids.
Definition: GUITextTypeResource.h:38
Base class for modular Guiliani animations.
Definition: GUIAnimation.h:75
GUIBehaviourDecorator base class.
Definition: GUIBehaviourDecorator.h:78
Command object base class.
Definition: GUICommand.h:127
Interface for streaming factories.
Definition: GUIFactory.h:341
CommandVector m_kCommandVector
vector for commands
Definition: GUIFactory.h:494
void UnregisterAnimation(const eC_Int &iID)
ControlVector m_kControlVector
vector for controls
Definition: GUIFactory.h:488
void GetBehaviours(BehaviourVector &rkBehaviours)
void GetLayouters(LayouterVector &rkLayouters)
virtual CGUICommand * CreateCommand(const CommandClassID_t &eCommandID)
Definition: GUIFactory.h:470
void UnregisterCommand(const eC_Int &iID)
virtual ~CGUIFactory()
Destructor.
void GetTextTypes(TextTypeVector &rkTextTypes)
void UnregisterControl(const eC_Int &iID)
void GetAnimations(AnimationVector &rkAnimations)
TextTypeVector m_kTextTypeVector
vector for text-types
Definition: GUIFactory.h:500
AnimationVector m_kAnimationVector
vector for animations
Definition: GUIFactory.h:504
eC_Bool RegisterText(TextTypeDescriptor desc)
void UnregisterBehaviour(const eC_Int &iID)
virtual CGUIBehaviourDecorator * CreateBehaviour(const BehaviourClassID_t &eBehaviourID)
Definition: GUIFactory.h:464
BehaviourVector m_kBehaviourVector
vector for behaviours
Definition: GUIFactory.h:491
virtual CGUIAnimation * CreateAnimation(const AnimationType_t &eAnimation)
Definition: GUIFactory.h:483
virtual CGUILayouter * CreateLayouter(const LayouterClassID_t &eLayouterID)
Definition: GUIFactory.h:458
virtual CGUIObject * CreateControl(const ControlClassID_t &eControlID)
Definition: GUIFactory.h:452
virtual CGUIText * CreateText(const TextTypeID_t &eTextType)
Definition: GUIFactory.h:476
eC_Bool RegisterAnimation(AnimationDescriptor desc)
LayouterVector m_kLayouterVector
vector for layouters
Definition: GUIFactory.h:497
eC_Bool RegisterControl(ControlDescriptor desc)
void GetControls(ControlVector &rkControls)
eC_Bool RegisterLayouter(LayouterDescriptor desc)
void GetCommands(CommandVector &rkCommands)
eC_Bool RegisterBehaviour(BehaviourDescriptor desc)
eC_Bool RegisterCommand(CommandDescriptor desc)
void UnregisterLayouter(const eC_Int &iID)
void UnregisterText(const eC_Int &iID)
Manages the CGUIStandardFactory and user factories.
Definition: GUIFactoryManager.h:52
Definition: GUILayouter.h:57
This is the Guiliani base class all controls are derived from.
Definition: GUIObject.h:79
Class for handling a text.
Definition: GUIText.h:103
The reference counted pointer class used with SharedPtr.
Definition: RefCounted.h:32
The reference counted pointer class used with RefCounted.
Definition: SharedPtr.h:116
Describes a custom animation.
Definition: GUIFactory.h:220
const char * m_kClassName
The layouter class ID as a string.
Definition: GUIFactory.h:245
AnimationDescriptor(eC_Int iID, const char *rkClassName, AnimationCreateCallback pkCreate)
Definition: GUIFactory.h:226
eC_Int m_iID
The layouter class ID.
Definition: GUIFactory.h:242
AnimationCreateCallback m_pkCreate
Pointer to an instance of the animation.
Definition: GUIFactory.h:248
Describes a custom behaviour decorator.
Definition: GUIFactory.h:83
BehaviourDescriptor(eC_Int iID, const char *rkClassName, BehaviourCreateCallback pkCreate)
Definition: GUIFactory.h:89
eC_Int m_iID
The behaviour class ID.
Definition: GUIFactory.h:105
const char * m_kClassName
The behaviour class ID as a string.
Definition: GUIFactory.h:108
BehaviourCreateCallback m_pkCreate
Pointer to an instance of the behaviour.
Definition: GUIFactory.h:111
Describes a custom command.
Definition: GUIFactory.h:117
CommandCreateCallback m_pkCreate
Pointer to an instance of the command.
Definition: GUIFactory.h:145
eC_Int m_iID
The command class ID.
Definition: GUIFactory.h:139
CommandDescriptor(eC_Int iID, const char *rkClassName, CommandCreateCallback pkCreate)
Definition: GUIFactory.h:123
const char * m_kClassName
The command class ID as a string.
Definition: GUIFactory.h:142
Describes a custom control.
Definition: GUIFactory.h:48
ControlCreateCallback m_pkCreate
Pointer to an instance of the control.
Definition: GUIFactory.h:77
ControlDescriptor(eC_Int iID, const char *rkClassName, ControlCreateCallback pkCreate)
Definition: GUIFactory.h:55
eC_Int m_iID
The control class ID.
Definition: GUIFactory.h:71
const char * m_kClassName
Human-readable name of the control.
Definition: GUIFactory.h:74
Describes a custom layouter.
Definition: GUIFactory.h:151
eC_Int m_iID
The layouter class ID.
Definition: GUIFactory.h:173
LayouterCreateCallback m_pkCreate
Pointer to an instance of the layouter.
Definition: GUIFactory.h:179
LayouterDescriptor(eC_Int iID, const char *rkClassName, LayouterCreateCallback pkCreate)
Definition: GUIFactory.h:157
const char * m_kClassName
The layouter class ID as a string.
Definition: GUIFactory.h:176
Describes a custom texttype.
Definition: GUIFactory.h:185
const char * m_kClassName
The text-type class ID as a string.
Definition: GUIFactory.h:210
eC_Int m_iID
The text-type class ID.
Definition: GUIFactory.h:207
TextTypeDescriptor(eC_Int iID, const char *rkClassName, TextCreateCallback pkCreate)
Definition: GUIFactory.h:191
TextCreateCallback m_pkCreate
Pointer to an instance of the text-type.
Definition: GUIFactory.h:213