22 #ifndef COMMON_VIRTUAL_KEYBOARD_H 23 #define COMMON_VIRTUAL_KEYBOARD_H 25 #include "common/scummsys.h" 31 #include "common/events.h" 32 #include "common/hashmap.h" 33 #include "common/hash-str.h" 34 #include "common/keyboard.h" 35 #include "common/list.h" 36 #include "common/str.h" 37 #include "common/fs.h" 39 #include "backends/vkeybd/image-map.h" 40 #include "graphics/surface.h" 47 class VirtualKeyboardGUI;
48 class VirtualKeyboardParser;
56 class VirtualKeyboard {
97 VKEvent() : data(0) {}
104 typedef HashMap<String, VKEvent *> VKEventMap;
114 uint32 transparentColor;
118 uint32 displayFontColor;
130 typedef HashMap<String, Mode, IgnoreCase_Hash, IgnoreCase_EqualTo> ModeMap;
132 enum HorizontalAlignment {
138 enum VerticalAlignment {
144 struct VirtualKeyPress {
154 class KeyPressQueue {
157 void toggleFlags(byte fl);
159 void insertKey(KeyState key);
167 uint getInsertIndex();
168 bool hasStringChanged();
174 typedef List<VirtualKeyPress> KeyPressList;
180 KeyPressList::iterator _keyPos;
188 virtual ~VirtualKeyboard();
197 bool loadKeyboardPack(
const String &packName);
211 void close(
bool submit);
228 DisposablePtr<Archive> _fileArchive;
230 friend class VirtualKeyboardGUI;
231 VirtualKeyboardGUI *_kbdGUI;
233 KeyPressQueue _keyQueue;
235 friend class VirtualKeyboardParser;
236 VirtualKeyboardParser *_parser;
239 bool openPack(
const String &packName, Archive *searchPath, DisposeAfterUse::Flag disposeSearchPath);
241 bool checkModeResolutions();
242 void switchMode(Mode *newMode);
243 void switchMode(
const String &newMode);
245 void handleMouseDown(int16 x, int16 y);
246 void handleMouseUp(int16 x, int16 y);
247 String findArea(int16 x, int16 y);
248 void processAreaClick(
const String &area);
256 HorizontalAlignment _hAlignment;
257 VerticalAlignment _vAlignment;
267 #endif // #ifdef ENABLE_VKEYBD 269 #endif // #ifndef COMMON_VIRTUAL_KEYBOARD_H
Definition: algorithm.h:29