Guiliani  Version 2.5 revision 7293 (documentation build 13)
GUIKeyboard.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#ifndef GUIKEYBOARD_H_
10#define GUIKEYBOARD_H_
11
12#include "GUIColorPropertyObserver.h"
13#include "GUICompositeObject.h"
14#include "GUIBehaviourDecorator.h"
15#include "GUIFontResource.h"
16#include "GUIGeneralResource.h"
17#include "GUIGeneralResourceManager.h"
18#include "GUIImageResource.h"
19
20class CGUIButton;
21
23
24// @guiliani_doxygen toplevel_control Keyboard
38// @endguiliani_doxygen
99{
100public:
111 CGUICompositeObject* const pkParent,
112 const eC_Value& vX, const eC_Value& vY,
113 const eC_Value& vWidth, const eC_Value& vHeight,
114 const ObjectHandle_t eTargetObjectID,
115 const ObjectHandle_t &eID = NO_HANDLE);
116
120
121 virtual ~CGUIKeyboard();
122
154 eC_Bool LoadLayout(const eC_String& rkLayoutFile);
155
160 void LoadLayout(const GeneralResource_t& reResource);
161
168 eC_Bool LoadLayout(eC_File* pkFile, const eC_String& kFileExtension);
169
175 void SetTargetObject(const ObjectHandle_t eTargetObject) { m_eTargetObject = eTargetObject; }
176
189 void HandleKey(const eC_UInt uiKeycode);
190
194 void SetLayout(const GeneralResource_t& eLayout);
195
200
204 void SetFont(const FontResource_t& eFont);
205
213 const eC_UInt& uiColorStandard,
214 const eC_UInt& uiColorHighlighted,
215 const eC_UInt& uiColorGrayedOut,
216 const eC_UInt& uiColorPressed);
217
225 const GlobalProperty_t& eColorStandard,
226 const GlobalProperty_t& eColorHighlighted,
227 const GlobalProperty_t& eColorGrayedOut,
228 const GlobalProperty_t& eColorPressed);
229
237 eC_UInt& uiColorStandard,
238 eC_UInt& uiColorHighlighted,
239 eC_UInt& uiColorGrayedOut,
240 eC_UInt& uiColorPressed);
241
250 const ImageResource_t& eImageNormal,
251 const ImageResource_t& eImageHighlighted,
252 const ImageResource_t& eImagePressed,
253 const ImageResource_t& eImageGrayedOut,
254 const ImageResource_t& eImageFocused);
255
264 ImageResource_t& eImageNormal,
265 ImageResource_t& eImageHighlighted,
266 ImageResource_t& eImagePressed,
267 ImageResource_t& eImageGrayedOut,
268 ImageResource_t& eImageFocused);
269
270#ifdef GUILIANI_STREAM_GUI
271 virtual void ReadFromStream();
272#endif
273#ifdef GUILIANI_WRITE_GUI
274 virtual void WriteToStream(const eC_Bool bWriteClassID = false);
275#endif
276
277protected:
279 void Init();
280
283
284private:
286 CGUIKeyboard(const CGUIKeyboard& kSource);
287
289 CGUIKeyboard& operator=(const CGUIKeyboard& kSource);
290
297 virtual CGUIButton* CreateKeyboardButton(const eC_String& kLabel, CGUICompositeObject* pkParent);
298
307 virtual CGUIButton* CreateKeyboardButton(const eC_String& kLabel, const eC_UInt uiKeyCode, CGUICompositeObject* pkParent);
308
320 eC_UInt CreateKeyboardRow(
321 CGUICompositeObject* pkParent,
322 const eC_UInt uiTotalNOFRowsInKeyboard,
323 const eC_UInt uiRowIndex,
324 const eC_Value vXOffset,
325 const eC_UInt uiNOFButtons,
326 const eC_Value* pWidths,
327 eC_String** pLabels);
328
329 void UpdateButtons();
330
331private:
332 static const eC_UInt INDEX_COLOR_STANDARD;
333 static const eC_UInt INDEX_COLOR_HIGHLIGHTED;
334 static const eC_UInt INDEX_COLOR_GRAYEDOUT;
335 static const eC_UInt INDEX_COLOR_PRESSED;
336
337 static const eC_String ms_kSpace;
338 static const eC_String ms_kEnter;
339 static const eC_String ms_kBackspace;
340 static const eC_String ms_kSymLayout;
341 static const eC_String ms_kABCCapitalLayout;
342 static const eC_String ms_kAbcLayout;
343 static const eC_String ms_k123Layout;
344
345 GeneralResource_t m_eLayout;
346
347 FontResource_t m_eFont;
348
349 ImageResource_t m_eImageNormal;
350 ImageResource_t m_eImageHighlighted;
351 ImageResource_t m_eImagePressed;
352 ImageResource_t m_eImageGrayedOut;
353 ImageResource_t m_eImageFocused;
354};
355
359{
360public:
365 KeyboardLayoutInterpreter(CGUIKeyboard* pkObject, const eC_String& kFileExtension) :
367 m_pkObject(pkObject),
368 m_kFileExtension(kFileExtension)
369 {}
370
374 virtual void Interpret(eC_File* pkFile)
375 {
376 if (NULL != m_pkObject)
377 m_pkObject->LoadLayout(pkFile, m_kFileExtension);
378 }
379
380private:
381 CGUIKeyboard * m_pkObject;
382 eC_String m_kFileExtension;
383};
384
385#endif
Helper Macros in Guiliani
FontResource_t
List of font resource ids.
Definition: GUIFontResource.h:54
Helper Macros in Guiliani
GeneralResource_t
List of general resource ids.
Definition: GUIGeneralResource.h:52
Helper Macros in Guiliani
ImageResource_t
Enumeration of image resource ids.
Definition: GUIImageResource.h:126
ObjectHandle_t
List of object resource ids.
Definition: GUIObjectHandleResource.h:55
GlobalProperty_t
List of property resource ids.
Definition: GUIPropertyResource.h:67
Button specialization that uses images for graphical representation.
Definition: GUIButton.h:69
This observer provides the base-interface for controls when using color-properties.
Definition: GUIColorPropertyObserver.h:23
This is the Guiliani base class for all composite objects.
Definition: GUICompositeObject.h:70
Interpreter for general resources.
Definition: GUIGeneralResourceManager.h:52
A basic on-screen keyboard control.
Definition: GUIKeyboard.h:99
ObjectHandle_t m_eTargetObject
ID of CGUIEdit which shall receive the keyboard's output.
Definition: GUIKeyboard.h:282
void SetImages(const ImageResource_t &eImageNormal, const ImageResource_t &eImageHighlighted, const ImageResource_t &eImagePressed, const ImageResource_t &eImageGrayedOut, const ImageResource_t &eImageFocused)
void SetColors(const eC_UInt &uiColorStandard, const eC_UInt &uiColorHighlighted, const eC_UInt &uiColorGrayedOut, const eC_UInt &uiColorPressed)
void GetImages(ImageResource_t &eImageNormal, ImageResource_t &eImageHighlighted, ImageResource_t &eImagePressed, ImageResource_t &eImageGrayedOut, ImageResource_t &eImageFocused)
void SetFont(const FontResource_t &eFont)
void HandleKey(const eC_UInt uiKeycode)
void SetColors(const GlobalProperty_t &eColorStandard, const GlobalProperty_t &eColorHighlighted, const GlobalProperty_t &eColorGrayedOut, const GlobalProperty_t &eColorPressed)
eC_Bool LoadLayout(eC_File *pkFile, const eC_String &kFileExtension)
virtual void WriteToStream(const eC_Bool bWriteClassID=false)
void Init()
Initializes the keyboard.
void SetTargetObject(const ObjectHandle_t eTargetObject)
Definition: GUIKeyboard.h:175
void LoadLayout(const GeneralResource_t &reResource)
void SetLayout(const GeneralResource_t &eLayout)
CGUIKeyboard(CGUICompositeObject *const pkParent, const eC_Value &vX, const eC_Value &vY, const eC_Value &vWidth, const eC_Value &vHeight, const ObjectHandle_t eTargetObjectID, const ObjectHandle_t &eID=NO_HANDLE)
virtual void ReadFromStream()
void GetColors(eC_UInt &uiColorStandard, eC_UInt &uiColorHighlighted, eC_UInt &uiColorGrayedOut, eC_UInt &uiColorPressed)
eC_Bool LoadLayout(const eC_String &rkLayoutFile)
GeneralResource_t GetLayout() const
Definition: GUIKeyboard.h:359
KeyboardLayoutInterpreter(CGUIKeyboard *pkObject, const eC_String &kFileExtension)
Definition: GUIKeyboard.h:365
virtual void Interpret(eC_File *pkFile)
Definition: GUIKeyboard.h:374