1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/os/boardsupport/emulator/emulatorbsp/inc/gui.h Fri Jun 15 03:10:57 2012 +0200
1.3 @@ -0,0 +1,523 @@
1.4 +// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
1.5 +// All rights reserved.
1.6 +// This component and the accompanying materials are made available
1.7 +// under the terms of "Eclipse Public License v1.0"
1.8 +// which accompanies this distribution, and is available
1.9 +// at the URL "http://www.eclipse.org/legal/epl-v10.html".
1.10 +//
1.11 +// Initial Contributors:
1.12 +// Nokia Corporation - initial contribution.
1.13 +//
1.14 +// Contributors:
1.15 +//
1.16 +// Description:
1.17 +// wins\inc\gui.h
1.18 +//
1.19 +//
1.20 +
1.21 +#ifndef __EX_GUI_H__
1.22 +#define __EX_GUI_H__
1.23 +
1.24 +#define _CRTIMP // we want to use the win32 static runtime library
1.25 +
1.26 +#include "platform.h"
1.27 +#include <kernel/win32/property.h>
1.28 +#include "nk_priv.h"
1.29 +#include "vwins.h"
1.30 +#include <e32keys.h>
1.31 +#include <stdlib.h>
1.32 +#include <videodriver.h>
1.33 +#include <dispchannel.h>
1.34 +
1.35 +GLREF_C const char* skipws(const char* aPtr);
1.36 +GLREF_C const char* skiptok(const char* aPtr);
1.37 +
1.38 +// keyboard mapping
1.39 +
1.40 +const TUint KKeyExtendedBit=0x100;
1.41 +const TUint KKeyNormalBits=0xFF;
1.42 +const TInt KMaxExtendedKey=0x5d;
1.43 +const TInt KExtendedKeyBase=0x1c;
1.44 +const TInt KStandardKeyMapSize = 89;
1.45 +const TInt KExtendedKeyMapSize = KMaxExtendedKey + 1 - KExtendedKeyBase;
1.46 +const TUint KMaxHotKeyCombinationLength=10;
1.47 +const TInt KDatFileVersion= 1000;
1.48 +
1.49 +enum TEmulCommand
1.50 + {
1.51 + ENoCommand,
1.52 + EKey,
1.53 + ENextConfig,
1.54 + ESelectConfig,
1.55 + };
1.56 +
1.57 +class VirtualKey
1.58 + {
1.59 +public:
1.60 + VirtualKey(const TInt aCommandData, TEmulCommand aCommand);
1.61 + virtual TBool Contains(TInt aX, TInt aY) const = 0;
1.62 + virtual void Draw(HDC aHdc,COLORREF aColor) const =0;
1.63 + inline TInt Value() const {return iData;};
1.64 + inline TEmulCommand Command() const {return iCommand;};
1.65 +private:
1.66 + TEmulCommand iCommand;
1.67 + TInt iData;
1.68 + };
1.69 +
1.70 +typedef TStdScanCode KeyArray[KMaxHotKeyCombinationLength];
1.71 +class KeyCombination
1.72 + {
1.73 +public:
1.74 + KeyCombination(const TInt aCommandData, TEmulCommand aCommand);
1.75 + TBool AddKey(TStdScanCode);
1.76 + TBool CheckCombinationPressed();
1.77 +
1.78 + TEmulCommand iCommand;
1.79 + TInt iData;
1.80 +private:
1.81 + KeyArray iCombination;
1.82 + };
1.83 +
1.84 +class VKRect : public VirtualKey
1.85 + {
1.86 +public:
1.87 + VKRect(const TInt aCommandData, TEmulCommand aCommand, TInt aX, TInt aY, TInt aWidth, TInt aHeight);
1.88 + // From VirtualKey
1.89 + TBool Contains(TInt aX, TInt aY) const;
1.90 + virtual void Draw(HDC aHdc,COLORREF aColor) const;
1.91 +private:
1.92 + TInt iLeft,iTop,iRight,iBottom;
1.93 + VKRect();
1.94 + };
1.95 +
1.96 +
1.97 +
1.98 +class Alias
1.99 + {
1.100 +public:
1.101 + Alias();
1.102 +//
1.103 + TInt Add(const TDesC8& aAlias, const TDesC8& aName);
1.104 + const TDesC8* operator[](const TDesC8& aAlias);
1.105 +private:
1.106 + struct SEntry
1.107 + {
1.108 + TDesC8* iAlias;
1.109 + TDesC8* iName;
1.110 + };
1.111 + static TBool Compare(const SEntry& aLhs, const SEntry& aRhs);
1.112 +private:
1.113 + RArray<SEntry> iMap;
1.114 + };
1.115 +
1.116 +// GUI settings
1.117 +
1.118 +const TInt KPowerTimerId=1;
1.119 +
1.120 +const TInt KRomMajorVersionNumber=1;
1.121 +const TInt KRomMinorVersionNumber=0;
1.122 +const TInt KRomBuildVersionNumber=1;
1.123 +//
1.124 +const TInt KScreenOffsetX=90;
1.125 +const TInt KScreenOffsetY=51;
1.126 +const TInt KScreenWidth=640;
1.127 +const TInt KScreenHeight=240;
1.128 +const TInt KWinPosX=10;
1.129 +const TInt KWinPosY=10;
1.130 +
1.131 +const TInt KCompositionBuffers=2; // Default to double-buffering
1.132 +const TInt KRefreshRateHz=30; // Default to 30fps
1.133 +
1.134 +const TInt KMaxNameSize=80; //size of window title string
1.135 +
1.136 +//
1.137 +// window style
1.138 +const DWORD KInvisibleControlWinStyle=WS_CAPTION|WS_CLIPCHILDREN|WS_MINIMIZEBOX|WS_OVERLAPPED|WS_SYSMENU;
1.139 +const DWORD KControlWinStyle=KInvisibleControlWinStyle|WS_VISIBLE;
1.140 +
1.141 +const DWORD KInvisibleWinStyle=WS_CAPTION|WS_CLIPCHILDREN|WS_OVERLAPPED|WS_HSCROLL|WS_VSCROLL|WS_SIZEBOX|
1.142 + WS_MAXIMIZEBOX|WS_MINIMIZEBOX|WS_SYSMENU;
1.143 +const DWORD KWinStyle=KInvisibleWinStyle|WS_VISIBLE;
1.144 +//
1.145 +// Scaling factors to use if PhysicalScreenWidth or Height are not specified
1.146 +const TReal KDefaultPixelsToTwipsX=11.90625;
1.147 +const TReal KDefaultPixelsToTwipsY=11.9083333334;
1.148 +//
1.149 +const TInt KHeapSize=0x2000;
1.150 +const TInt KWindowServerHeapSize=0x40000;
1.151 +const TInt KKeyDown=0x80;
1.152 +//
1.153 +const TInt KLedTop=45;
1.154 +const TInt KLedLeft=36;
1.155 +const TInt KLedSize=14;
1.156 +const TInt KLedGap=5;
1.157 +const TBool KLedVertical=ETrue;
1.158 +
1.159 +GLREF_C TInt MultiProperty(TInt (*aHandler)(TAny* aObj, const char*), TAny* aPtr, const char* aProperty);
1.160 +
1.161 +const TInt KSecureLedColor = 0xFFFF;
1.162 +
1.163 +class DWinsKeyboard : public DBase
1.164 + {
1.165 +public:
1.166 + DWinsKeyboard();
1.167 + TInt Init(TInt aId);
1.168 +//
1.169 + TInt ScanCodeToRemappedKey(TInt aScanCode);
1.170 + static TInt ScanCodeToStandardKey(TInt aScanCode);
1.171 +//
1.172 + TInt GetEPOCKeyCode(const TDesC8& aStr);
1.173 + TInt GetScanCode(const TDesC8& aStr);
1.174 +private:
1.175 + static TInt ScanCodeToKey(TInt aScanCode, const TUint8* aStandardMap, const TUint8* aExtendedMap);
1.176 + TInt DefineAlias(const char* aValue);
1.177 + static TInt DoDefineAlias(TAny* aObj, const char* aValue);
1.178 + TInt MapKey(const char* aValue);
1.179 + static TInt DoMapKey(TAny* aObj, const char* aValue);
1.180 +private:
1.181 + TUint8 iStandardKeyMap[KStandardKeyMapSize];
1.182 + TUint8 iExtendedKeyMap[KExtendedKeyMapSize];
1.183 + TUint8 iAltStandardKeyMap[KStandardKeyMapSize];
1.184 + TUint8 iAltExtendedKeyMap[KExtendedKeyMapSize];
1.185 + TUint8 iCtrlStandardKeyMap[KStandardKeyMapSize];
1.186 + TUint8 iCtrlExtendedKeyMap[KExtendedKeyMapSize];
1.187 + Alias iAliasedKeys;
1.188 + };
1.189 +
1.190 +struct TWindowState
1.191 + {
1.192 +public:
1.193 + WINDOWPLACEMENT iWinPlace;
1.194 + TInt iXoffset;
1.195 + TInt iYoffset;
1.196 + TEmulatorFlip iFlipstate;
1.197 + };
1.198 +
1.199 +class DScreenProperties;
1.200 +class TViewport
1.201 + {
1.202 +public:
1.203 + TViewport();
1.204 + TViewport(DScreenProperties* aScreenProps);
1.205 + ~TViewport();
1.206 +
1.207 + void UpdateScrollBarH(HWND aHwnd);
1.208 + void UpdateScrollBarV(HWND aHwnd);
1.209 +
1.210 + TInt GetMaxWindowWidth() const;
1.211 + TInt GetMaxWindowHeight() const;
1.212 + TInt GetMaxWidth() const;
1.213 + TInt GetMaxHeight() const;
1.214 +
1.215 + TInt GetViewportOffsetX() const;
1.216 + TInt GetViewportOffsetY() const;
1.217 +
1.218 + void SetViewportWidth(TInt aWidth);
1.219 + void SetViewportHeight(TInt aHeight);
1.220 + TInt GetViewportWidth() const;
1.221 + TInt GetViewportHeight() const;
1.222 +
1.223 + void ScrollToY(TInt aPosition,HWND aHwnd);
1.224 + void ScrollToX(TInt aPosition, HWND aHwnd);
1.225 +
1.226 + void UpdateChildPos(HWND aHwnd);
1.227 +
1.228 +private:
1.229 +
1.230 + void SetViewportOffsetX(TInt aOffset);
1.231 + void SetViewportOffsetY(TInt aOffset);
1.232 +
1.233 + /**
1.234 + The DScreenProperties object which owns this viewport
1.235 + */
1.236 + DScreenProperties* iScreenProps;
1.237 +
1.238 + /**
1.239 + Width in pixels of the client area of the window through which the emulator is being viewed
1.240 + */
1.241 + TInt iViewportWidth;
1.242 + /**
1.243 + Height in pixels of the client area of the window through which the emulator is being viewed
1.244 + */
1.245 + TInt iViewportHeight;
1.246 + /**
1.247 + X Offset of viewport edge from emulator image ie. How far viewport is translated
1.248 + */
1.249 + TInt iViewportOffsetX;
1.250 + /**
1.251 + Y Offset of viewport edge from emulator image ie. How far viewport is translated
1.252 + */
1.253 + TInt iViewportOffsetY;
1.254 +
1.255 + };
1.256 +
1.257 +class DScreenProperties
1.258 + {
1.259 +friend class TViewport;
1.260 +public:
1.261 + DScreenProperties();
1.262 + ~DScreenProperties();
1.263 + TInt SetupProperties(TInt aConf, TInt aScreen);
1.264 + TWindowState GetWindowState();
1.265 +public:
1.266 + TInt iScreenWidth;
1.267 + TInt iScreenHeight;
1.268 + TInt iMaxScreenWidth;
1.269 + TInt iMaxScreenHeight;
1.270 + TInt iXYInputWidth;
1.271 + TInt iXYInputHeight;
1.272 + TInt iPhysicalScreenWidth;
1.273 + TInt iPhysicalScreenHeight;
1.274 + TInt iMaxPhysicalScreenWidth;
1.275 + TInt iMaxPhysicalScreenHeight;
1.276 + TInt iScreenOffsetX;
1.277 + TInt iScreenOffsetY;
1.278 + TUint iColorDepth; ///<In emulator this is a bitfield of the available modes. All other aspects of each mode are identical.
1.279 + TInt iDisplayContrast;
1.280 + TEmulatorFlip iScreenRotation;
1.281 + CHAR iFasciaFileName[MAX_PATH];
1.282 + HWND iWindowHandle;
1.283 + WINDOWPLACEMENT iWinPlace; ///<Used to store the window's WINDOWPLACEMENT struct.
1.284 + RECT iWinRect;
1.285 + TBool iScreenOff;
1.286 + TInt iCurrentMode; ///<Indicates the current mode when multiple modes are supported
1.287 + TInt iMaxModes;
1.288 + TInt iModeDepths[KEmulMaxNumModes];
1.289 + TInt iCompositionBuffers;
1.290 + TInt iRefreshRateHz;
1.291 + /**
1.292 + The viewport owned by the screen
1.293 + */
1.294 + TViewport iViewport;
1.295 +
1.296 + };
1.297 +
1.298 +
1.299 +class DDisplayChannel;
1.300 +
1.301 +class DWinsUi : public DWinsUiBase
1.302 + {
1.303 +public:
1.304 + DWinsUi();
1.305 + TInt Create(TInt aId);
1.306 +//
1.307 + TInt GetVirtualKey(TEmulCommand& aCommand, TInt aX, TInt aY);
1.308 + void SetVirtualKey(const TBool aProcessing, const TInt aCommandData, const TEmulCommand aCommand);
1.309 + TBool WasVirtualKey(TInt& aCommandData, TEmulCommand& aCommand);
1.310 + void TranslateMouseCoords(const TEmulatorFlip aFlipState, const TInt aX, const TInt aY, const TInt aRegionWidth, const TInt aRegionHeight, TInt& aNewX, TInt& aNewY);
1.311 +
1.312 + //
1.313 + TBool OnScreen(TInt aScreen, TInt aX, TInt aY) const;
1.314 + TBool OnDigitizer(TInt aX, TInt aY) const;
1.315 + TBool MultiTouchEnabled() const;
1.316 + TBool GCEEnabled() const;
1.317 + TInt MultiTouchPressureStep() const;
1.318 + TInt MultiTouchProximityStep() const;
1.319 +//private:
1.320 + void ScreenInfo(TScreenInfoV01& aInfo);
1.321 + TBool VideoInfo(TInt aDeviceNumber, TVideoInfoV01& aInfo);
1.322 + TBool VideoInfo(TInt aDeviceNumber,TInt aModeNumber, TVideoInfoV01& aInfo);
1.323 + TBool VideoInfoForDisplayDriver(TInt aDeviceNumber,TInt aModeNumber, TVideoInfoV01& aInfo, TBool aRealWidthAndHeight = EFalse);
1.324 +//
1.325 + TInt SetupProperties(TInt aId);
1.326 + TInt DefineVirtualKey(const char* aValue);
1.327 + static TInt DoDefineVirtualKey(TAny* aObj, const char* aValue);
1.328 + TInt DefineEmulatorControl(const char* aValue);
1.329 + static TInt DoDefineEmulatorControl(TAny* aObj, const char* aValue);
1.330 +
1.331 + static TInt DoDefineEmulatorControlHotKey(TAny* aPtr, const char* aValue);
1.332 + TInt DefineEmulatorControlHotKey(const char* aValue);
1.333 +// implementing DWinsUiBase
1.334 + TUint ColorDepth(TInt aScreenNumber);
1.335 + TInt SetFlip(TEmulatorFlip aFlip, TInt aScreenNumber);
1.336 + void Info(TVariantInfoV01& aInfo);
1.337 + HWND HWnd();
1.338 + void SwitchDisplay(TBool aSecure);
1.339 + TInt NumberOfScreens();
1.340 + virtual TInt SetDisplayChannel(TInt aScreenNumber, DDisplayChannel* aDisplay);
1.341 + TInt SetDisplayChannelImpl(TInt aScreenNumber, DDisplayChannel* aDisplay);
1.342 +public:
1.343 + DWinsKeyboard iKeyboard;
1.344 +//
1.345 + TInt iLedSize;
1.346 + TInt iLedGap;
1.347 + TInt iLedOffsetX;
1.348 + TInt iLedOffsetY;
1.349 + TBool iLedVertical;
1.350 + TBuf8<0x10> iPointerType;
1.351 + TXYInputType iXYInputType;
1.352 + CHAR iSysIniFileName[MAX_PATH];
1.353 + WINDOWPLACEMENT iWinPlace;
1.354 + RPointerArray<VirtualKey> iVirtualKeys;
1.355 + RPointerArray<KeyCombination> iControlHotKeys;
1.356 + TInt iDigitizerWidth;
1.357 + TInt iDigitizerHeight;
1.358 + TInt iDigitizerOffsetX; //offset from the epoc screen 0!
1.359 + TInt iDigitizerOffsetY;//offset from the epoc screen 0!
1.360 + TBool iDigitizerEnabled;
1.361 + CHAR iWindowTitle[KMaxNameSize+1];
1.362 + TBool iDisplayVersionInfo;
1.363 + TInt aId; //configuration number;
1.364 + TInt iInitialFlipMsg;
1.365 + TBool iProcessingVirtualKey;
1.366 + TUint iFakedVirtualKey;
1.367 + TEmulCommand iVirtualKeyCommand;
1.368 + RPointerArray<DScreenProperties> iScreens;
1.369 +private:
1.370 + TBool iMultiTouchEnabled;
1.371 + TBool iGCEEnabled;
1.372 + TInt iMultiTouchProximityStep;
1.373 + TInt iMultiTouchPressureStep;
1.374 + };
1.375 +
1.376 +struct TBufferAddressA
1.377 + {
1.378 + DChunk* iChunk;
1.379 + TAny* iAddress;
1.380 + };
1.381 +
1.382 +class TScreenBuffer
1.383 + {
1.384 +public:
1.385 + RPointerArray<TAny> iFrameBuffers;
1.386 + RPointerArray<TBufferAddressA> iMemChunks;
1.387 + TInt iDisplayBufferOffset; //offset to pixel data in current mode for display buffer. Mode of display buffer doesn't change we presume!
1.388 + };
1.389 +
1.390 +
1.391 +// Chunk cleanup object - used to clean up the process/addr table when the process goes away.
1.392 +class TChunkCleanup : public TDfc
1.393 + {
1.394 +public:
1.395 + TChunkCleanup(DProcess* aProcess, TInt aScreenNumber);
1.396 + void Cancel();
1.397 + inline void SetIndex(TUint aIndex) { iIndex = aIndex; }
1.398 +private:
1.399 + static void ChunkDestroyed(TChunkCleanup* aSelf);
1.400 +private:
1.401 + DProcess* iProcess;
1.402 + TInt iScreenNumber;
1.403 + TInt iIndex;
1.404 + };
1.405 +
1.406 +
1.407 +// Entry to hold the process/disp.memory address, as we need to find the address of the display
1.408 +// memory when requested. A new entry would be added when a process first requests the address of display
1.409 +// memory. When the process dies, we remove the process entry (by way of a DFC for a chunk that is
1.410 +// created on behalf of that process).
1.411 +class TProcessAddrEntry
1.412 + {
1.413 +public:
1.414 + TProcessAddrEntry(DProcess *aProcess, TUint8* aAddress);
1.415 +public:
1.416 + DProcess* iProcess;
1.417 + TUint8* iAddress;
1.418 + };
1.419 +
1.420 +
1.421 +
1.422 +class TBufferSet
1.423 + {
1.424 +public:
1.425 + TAny* iDisplayBuffer; //current display buffer
1.426 + BITMAPV4HEADER iInfo; // This can be cast to a BITMAPINFOHEADER
1.427 + TInt iDisplayDriverCount;
1.428 + TScreenBuffer iScreenBuffer;
1.429 + TScreenBuffer iDsaBuffer;
1.430 + RArray<TProcessAddrEntry> iProcAddrTable;
1.431 + TInt iDisplayState;
1.432 + TInt iStateChangeCount;
1.433 + RDisplayChannel::TBufferFormat iBufferFormat;
1.434 + DDisplayChannel* iDisplayChannel;
1.435 + };
1.436 +
1.437 +class DMasterIni : public DBase
1.438 + {
1.439 +public:
1.440 + TInt SetupProperties();
1.441 + TInt Create();
1.442 + static TInt DoHalFunction(TAny* aPtr, TInt aFunction, TAny* a1, TAny* a2);
1.443 + TInt HalFunction(TInt aDeviceNumber, TInt aFunction, TAny* a1, TAny* a2);
1.444 + static TInt DoXYHalFunction(TAny* aThis, TInt aFunction, TAny* a1, TAny* a2);
1.445 + TInt XYHalFunction(TInt aFunction, TAny* a1, TAny* a2);
1.446 + static TInt DoMouseHalFunction(TAny* aThis, TInt aFunction, TAny* a1, TAny* a2);
1.447 + TInt MouseHalFunction(TInt aFunction, TAny* a1, TAny* a2);
1.448 + static TInt DoKbdHalFunction(TAny* aThis, TInt aFunction, TAny* a1, TAny* a2);
1.449 +
1.450 + void InitBitmapHeader(DScreenProperties& aScreenProperties, LPBITMAPV4HEADER aInfo);
1.451 + void InitBufferFormat(DScreenProperties& aScreenProperties, RDisplayChannel::TBufferFormat& aBufferFormat);
1.452 + TInt AllocateFrameBuffers(TInt aScreenNumber, TInt aCount, TInt aSize);
1.453 + void ReleaseFrameBuffers(TInt aScreenNumber);
1.454 +
1.455 +
1.456 + TInt DisplayMemoryAddress(TInt aScreenNumber, TInt& aAddress);
1.457 + TInt DisplayMemoryHandle(TInt aScreenNumber, TInt& aHandle);
1.458 +
1.459 + void ProcessDeletedDFC();
1.460 +
1.461 + void SetDisplaySize(TInt aDisplayNumber, TInt aWidth, TInt aHeight);
1.462 + void SetBufferFormat(TInt aDisplayNumber, TUint aAgregatSize, RDisplayChannel::TPixelFormat aPixelFormat);
1.463 + void SetImageSize(TInt aScreenNumber);
1.464 +
1.465 +public:
1.466 + //not set or used: TInt iConfigurationCount;
1.467 + RPointerArray<DWinsUi> iSystemInis; //Indexed by config
1.468 + RArray<TBufferSet> iBufferSet;
1.469 + // Fast mutex used to control access to the process/address table in the
1.470 + // TBufferSet.
1.471 + NFastMutex iLock;
1.472 + TUint iMaxSizeInBytes;
1.473 + static const RDisplayChannel::TPixelFormat iSupportedPixelFormatTable[];
1.474 + static const TInt iSupportedPixelFormatTableSize;
1.475 +private:
1.476 + TInt NumberOfResolutions(TInt aDeviceNumber, TAny* a1, TAny* a2);
1.477 + TInt SpecificScreenInfo(TInt aDeviceNumber, TAny* a1, TAny* a2);
1.478 + TInt CurrentScreenInfo(TInt aDeviceNumber, TAny* a1, TAny* a2);
1.479 +};
1.480 +
1.481 +
1.482 +GLREF_C TInt CompareI(const TDesC8& aLhs, const TDesC8& aRhs);
1.483 +
1.484 +// user-defined messages ...
1.485 +// flip the emulator window
1.486 +#define WM_FLIP_MESSAGE 0x7FFF
1.487 +// emulator window power state
1.488 +#define WM_EMUL_POWER_ON 0x7FFE
1.489 +
1.490 +//redraw client window from the internal buffer
1.491 +#define WM_REDRAW_WINDOW (WM_USER + 1)
1.492 +
1.493 +// Set the display frame buffer for this window to lParam
1.494 +#define WMU_SET_DISPLAY_BUFFER (WM_USER + 2)
1.495 +
1.496 +// Set the display size for this window to (wParam,lParam)
1.497 +// Rotation (flip) is ignored. Current display state is used.
1.498 +// Configurations are searched to find a match, message is ignored if none found.
1.499 +#define WMU_SET_DISPLAY_SIZE (WM_USER + 3)
1.500 +
1.501 +//modifies the header of the bitmap that is getting painted, updating the size
1.502 +#define WMU_SET_BUFFER_FORMAT (WM_USER + 4)
1.503 +
1.504 +enum TGuiPanic
1.505 + {
1.506 + EGuiGetModuleHandle=21,
1.507 + EGuiRegisterWindow=22,
1.508 + EGuiKernelWindowCreate=23,
1.509 + EGuiRegisterChildWindow=24,
1.510 + EGuiKernelChildWindowCreate=25,
1.511 + EGuiCreateBitmap=26,
1.512 + EGuiChildWinProc=27,
1.513 + EGuiEnterCS=28,
1.514 + EGuiLeaveCS=29,
1.515 + EGuiStandbyWhilstOff=30,
1.516 + EGuiResetPowerEvent=31,
1.517 + EGuiSetPowerEvent=32,
1.518 + EGuiWaitPowerOnFailed=33,
1.519 + EGuiNoDisplayChannel=34,
1.520 + EGuiVideoInfoUnavailable=35,
1.521 + EGuiInvalidMultiTouch=36
1.522 + };
1.523 +
1.524 +GLREF_C void Fault(TGuiPanic aPanic);
1.525 +
1.526 +#endif