os/boardsupport/emulator/emulatorbsp/inc/gui.h
changeset 0 bde4ae8d615e
     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