os/graphics/windowing/windowserver/SERVER/w32cmd.h
changeset 0 bde4ae8d615e
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/os/graphics/windowing/windowserver/SERVER/w32cmd.h	Fri Jun 15 03:10:57 2012 +0200
     1.3 @@ -0,0 +1,2512 @@
     1.4 +// Copyright (c) 1999-2010 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 +// Command numbers and structures for client to window server communications.
    1.18 +// 
    1.19 +//
    1.20 +
    1.21 +#ifndef __W32CMD_H__
    1.22 +#define __W32CMD_H__
    1.23 +
    1.24 +#include <e32std.h>
    1.25 +#include <w32std.h>
    1.26 +#include <gdi.h>
    1.27 +#if defined(SYMBIAN_GRAPHICS_GCE)
    1.28 +#include <graphics/surfaceconfiguration.h>
    1.29 +#include <graphics/sgresource.h>
    1.30 +#endif
    1.31 +
    1.32 +#include <graphics/displayconfiguration.h>
    1.33 +#include <graphics/displaymapping.h>
    1.34 +
    1.35 +const TUint KWservMajorVersionNumber=1;
    1.36 +const TUint KWservMinorVersionNumber=0;
    1.37 +const TUint KWservBuildVersionNumber=151;
    1.38 +
    1.39 +const TUint KWservLoggingDllUidValue8=268435925;
    1.40 +const TUid KWservLoggingDllUid8={KWservLoggingDllUidValue8};
    1.41 +const TUint KWservLoggingDllUidValue16=268450595;
    1.42 +const TUid KWservLoggingDllUid16={KWservLoggingDllUidValue16};
    1.43 +//const TUint KUidWservLoggingCommon=268439591;
    1.44 +const TUint KWservLoggingDllUidValue=KWservLoggingDllUidValue16;
    1.45 +const TUid KWservLoggingDllUid={KWservLoggingDllUidValue};
    1.46 +const TInt KDummyScreenNumber = -1;
    1.47 +class CClickMaker;
    1.48 +class CAnimDll;
    1.49 +class CDebugLogBase;
    1.50 +class TSurfaceId;
    1.51 +
    1.52 +/** Creates an interface object for Shell
    1.53 +
    1.54 +@publishedPartner
    1.55 +@released
    1.56 +*/
    1.57 +typedef TInt (*ShellEntryPoint)(TAny *);
    1.58 +
    1.59 +/** Creates the key or pointer click plug-in provider interface.
    1.60 +
    1.61 +When a key is pressed, a key auto repeats or when the screen is tapped with a pointer, 
    1.62 +the window server informs the plug-in DLL, which can then make the sound.
    1.63 +
    1.64 +@publishedAll
    1.65 +@released
    1.66 +*/
    1.67 +typedef CClickMaker *(*CreateCClickHandler)();
    1.68 +
    1.69 +/** Creates the animation dll factory interface object.
    1.70 +
    1.71 +Animation DLL objects are created by the CreateCAnimDllL() function,
    1.72 +which is called by the window server at the request of the client.
    1.73 +
    1.74 +@publishedAll
    1.75 +@released
    1.76 +*/
    1.77 +typedef CAnimDll* (*CreateCAnimDll)();
    1.78 +
    1.79 +
    1.80 +class WservEncoding
    1.81 +	{
    1.82 +public:
    1.83 +	static inline TUint Encode8BitValues(TUint8 aFirst,TUint8 aSecond);
    1.84 +	static inline TUint Encode8BitValues(TUint8 aFirst,TUint8 aSecond,TUint8 aThird);
    1.85 +	static inline TUint8 ExtractFirst8BitValue(TUint aUint);
    1.86 +	static inline TUint8 ExtractSecond8BitValue(TUint aUint);
    1.87 +	static inline TUint8 ExtractThird8BitValue(TUint aUint);
    1.88 +	};
    1.89 +
    1.90 +struct SKeyRepeatSettings
    1.91 +	{
    1.92 +	SKeyRepeatSettings();
    1.93 +	TTimeIntervalMicroSeconds32 iInitialTime;
    1.94 +	TTimeIntervalMicroSeconds32 iTime;
    1.95 +	};
    1.96 +struct SDoubleClickSettings
    1.97 +	{
    1.98 +	SDoubleClickSettings();
    1.99 +	TTimeIntervalMicroSeconds32 iInterval;
   1.100 +	TInt iDistance;
   1.101 +	};
   1.102 +//struct SMaxNumColors
   1.103 +struct SDefModeMaxNumColors
   1.104 +	{
   1.105 +	SDefModeMaxNumColors();
   1.106 +	TInt iColors;
   1.107 +	TInt iGrays;
   1.108 +	TDisplayMode iDisplayMode;
   1.109 +	};
   1.110 +struct SEventMessageReady
   1.111 +	{
   1.112 +	TInt iWindowGroupIdentifier;
   1.113 +	TUid iMessageUid;
   1.114 +	TInt iMessageParametersSize;
   1.115 +	};
   1.116 +class TCmdSpriteMember
   1.117 +	{
   1.118 +public:
   1.119 +	inline TCmdSpriteMember();
   1.120 +	TCmdSpriteMember(const TSpriteMember &aSpriteMember);
   1.121 +public:
   1.122 +	TInt iBitmap;
   1.123 +	TInt iMaskBitmap;
   1.124 +	TBool iInvertMask;
   1.125 +	CGraphicsContext::TDrawMode iDrawMode;
   1.126 +	TPoint iOffset;			// Offset from sprites central position
   1.127 +	TTimeIntervalMicroSeconds32 iInterval;
   1.128 +	};
   1.129 +
   1.130 +enum {EClientBufferSize=640};		// default buffer size
   1.131 +enum {EClientBufferMaxSize=0x4000};	// 16K is max buffer size
   1.132 +
   1.133 +enum {EWsOpcodeHandle=0x8000};	// Indicates a new handle is included in the message header
   1.134 +
   1.135 +enum {EMaxPolygonPoints=50}; // Max size polygon that can be drawn without allocing
   1.136 +enum {EMaxPolylinePoints=50}; // Max size polygon that can be drawn without allocing
   1.137 +
   1.138 +enum {EClickLoaded=0x01, EClickLoadable=0x02};
   1.139 +
   1.140 +////////////////////////
   1.141 +// Opcodes
   1.142 +////////////////////////
   1.143 +
   1.144 +// Client opcodes
   1.145 +
   1.146 +enum TWsClientOpcodes
   1.147 +	{
   1.148 +	EWsClOpDisconnect, //Keep this as the first enum value - used by test code
   1.149 +	EWsClOpClearHotKeys,
   1.150 +	EWsClOpSetHotKey,
   1.151 +	EWsClOpRestoreDefaultHotKey,
   1.152 +	EWsClOpComputeMode,
   1.153 +	EWsClOpEventReady,
   1.154 +	EWsClOpEventReadyCancel,
   1.155 +	EWsClOpGetEvent,
   1.156 +	EWsClOpPurgePointerEvents,
   1.157 +	EWsClOpRedrawReady,
   1.158 +	EWsClOpRedrawReadyCancel,
   1.159 +	EWsClOpGetRedraw,
   1.160 +	EWsClOpPriorityKeyReady,
   1.161 +	EWsClOpPriorityKeyReadyCancel,
   1.162 +	EWsClOpGetPriorityKey,
   1.163 +	EWsClOpSetShadowVector,
   1.164 +	EWsClOpShadowVector,
   1.165 +	EWsClOpSetKeyboardRepeatRate,
   1.166 +	EWsClOpGetKeyboardRepeatRate,
   1.167 +	EWsClOpSetDoubleClick,
   1.168 +	EWsClOpGetDoubleClickSettings,
   1.169 +	EWsClOpCreateWindowGroup,
   1.170 +	EWsClOpCreateWindow,
   1.171 +	EWsClOpCreateGc,
   1.172 +	EWsClOpCreateAnimDll,
   1.173 +	EWsClOpCreateScreenDevice,
   1.174 +	EWsClOpCreateSprite,
   1.175 +	EWsClOpCreatePointerCursor,
   1.176 +	EWsClOpStartSetCustomTextCursor,
   1.177 +	EWsClOpCompleteSetCustomTextCursor,
   1.178 +	EWsClOpCreateBitmap,
   1.179 +	EWsClOpNumWindowGroups,
   1.180 +	EWsClOpNumWindowGroupsAllPriorities,
   1.181 +	EWsClOpWindowGroupList,
   1.182 +	EWsClOpWindowGroupListAllPriorities,
   1.183 +	EWsClOpSetWindowGroupOrdinalPosition,
   1.184 +	EWsClOpGetWindowGroupHandle,
   1.185 +	EWsClOpGetWindowGroupOrdinalPriority,
   1.186 +	EWsClOpGetWindowGroupClientThreadId,
   1.187 +	EWsClOpGetWindowGroupNameFromIdentifier,
   1.188 +	EWsClOpGetFocusWindowGroup,
   1.189 +	EWsClOpGetDefaultOwningWindow,
   1.190 +	EWsClOpSendEventToWindowGroup,
   1.191 +	EWsClOpFindWindowGroupIdentifier,
   1.192 +	EWsClOpFindWindowGroupIdentifierThread,
   1.193 +	EWsClOpSetBackgroundColor,
   1.194 +	EWsClOpGetBackgroundColor,
   1.195 +	EWsClOpSetSystemPointerCursor,
   1.196 +	EWsClOpClearSystemPointerCursor,
   1.197 +	EWsClOpClaimSystemPointerCursorList,
   1.198 +	EWsClOpFreeSystemPointerCursorList,
   1.199 +	EWsClOpGetModifierState,
   1.200 +	EWsClOpSetModifierState,
   1.201 +	EWsClOpHeapCount,
   1.202 +	EWsClOpResourceCount,
   1.203 +	EWsClOpTestInvariant,
   1.204 +	EWsClOpHeapSetFail,
   1.205 +	EWsClOpRawEvent,
   1.206 +	EWsClOpSystemInfo,
   1.207 +	EWsClOpLogMessage,
   1.208 +	EWsClOpPasswordEntered,
   1.209 +	EWsClOpSendMessageToWindowGroup,
   1.210 +	EWsClOpSendOffEventsToShell,
   1.211 +	EWsClOpGetDefModeMaxNumColors,
   1.212 +	EWsClOpGetColorModeList,
   1.213 +	EWsClOpKeyEvent,
   1.214 +	EWsClOpSendEventToAllWindowGroup,
   1.215 +	EWsClOpSendEventToAllWindowGroupPriority,
   1.216 +	EWsClOpSetPointerCursorArea,
   1.217 +	EWsClOpPointerCursorArea,
   1.218 +	EWsClOpSetPointerCursorMode,
   1.219 +	EWsClOpPointerCursorMode,
   1.220 +	EWsClOpSetDefaultSystemPointerCursor,
   1.221 +	EWsClOpClearDefaultSystemPointerCursor,
   1.222 +	EWsClOpSetPointerCursorPosition,
   1.223 +	EWsClOpPointerCursorPosition,
   1.224 +	EWsClOpSetDefaultFadingParams,
   1.225 +	EWsClOpSendMessageToAllWindowGroups,
   1.226 +	EWsClOpSendMessageToAllWindowGroupsPriority,
   1.227 +	EWsClOpFetchMessage,
   1.228 +	EWsClOpPrepareForSwitchOff,
   1.229 +	EWsClOpCreateDirectScreenAccess,
   1.230 +	EWsClOpSetFaded,
   1.231 +	EWsClOpLogCommand,
   1.232 +	EWsClOpCreateClick,
   1.233 +	EWsClOpSendEventToOneWindowGroupPerClient,
   1.234 +#if defined(__WINS__)
   1.235 +	EWsClOpRemoveKeyCode,
   1.236 +	EWsClOpSimulateXyInput,
   1.237 +#endif
   1.238 +	EWsClOpNoFlickerFree,
   1.239 +	EWsClOpSetFocusScreen,
   1.240 +	EWsClOpGetFocusScreen,
   1.241 +	EWsClOpWindowGroupListAndChain,
   1.242 +	EWsClOpWindowGroupListAndChainAllPriorities,
   1.243 +	EWsClOpSetClientCursorMode,
   1.244 +	EWsClOpClearAllRedrawStores,
   1.245 +	EWsClOpCreateGraphic,
   1.246 +	EWsClOpGraphicMessageReady,
   1.247 +	EWsClOpGetGraphicMessage,
   1.248 +	EWsClOpGraphicMessageCancel,
   1.249 +	EWsClOpNumWindowGroupsOnScreen,
   1.250 +	EWsClOpGetNumberOfScreens, 
   1.251 +	EWsClOpGraphicAbortMessage,
   1.252 +	EWsClOpGraphicFetchHeaderMessage,
   1.253 +	EWsClOpDebugInfo,
   1.254 +	EWsClOpDebugInfoReplyBuf,
   1.255 +	EWsClOpRegisterSurface,
   1.256 +	EWsClOpUnregisterSurface,
   1.257 +	EWsClOpSetCloseProximityThresholds,
   1.258 +	EWsClOpSetHighPressureThresholds,
   1.259 +	EWsClOpGetEnterCloseProximityThreshold,
   1.260 +	EWsClOpGetExitCloseProximityThreshold,
   1.261 +	EWsClOpGetEnterHighPressureThreshold,
   1.262 +	EWsClOpGetExitHighPressureThreshold,
   1.263 +	EWsClOpCreateDrawableSource,
   1.264 +	EWsClOpCreateDirectScreenAccessRegionTrackingOnly,
   1.265 +	EWsClOpSendEffectCommand,
   1.266 +	EWsClOpRegisterTFXEffectBuf,
   1.267 +	EWsClOpRegisterTFXEffectIPC,
   1.268 +	EWsClOpUnregisterTFXEffect,
   1.269 +	EWsClOpUnregisterAllTFXEffect,
   1.270 +	EWsClOpOverrideEffectBuf,
   1.271 +	EWsClOpOverrideEffectIPC,
   1.272 +	EWsClOpIndicateAppOrientation,
   1.273 +	EWsClOpLastEnumValue //Keep this at the end - used by test code
   1.274 +	};
   1.275 +	
   1.276 +// Graphic Drawer opcodes
   1.277 +
   1.278 +enum TWsGraphicDrawerOpcodes
   1.279 +	{
   1.280 +	EWsGdOpFree = 0x0000,
   1.281 +	EWsGdOpSendMsg,
   1.282 +	EWsGdOpGetGraphicId,
   1.283 +	EWsGdOpShareGlobally,
   1.284 +	EWsGdOpUnShareGlobally,
   1.285 +	EWsGdOpShare,
   1.286 +	EWsGdOpUnShare,
   1.287 +	EWsGdOpSendSynchronMsg,
   1.288 +	};
   1.289 +	
   1.290 +// types of Graphic Drawer messages to be passed from the Graphic Drawer to the client
   1.291 +	
   1.292 +enum TWsGraphicMessageType
   1.293 +	{
   1.294 +	EWsGraphMessageTypeUser = 0x00
   1.295 +	// max 0x03 as packed into lower two bits of client handle
   1.296 +	};
   1.297 +
   1.298 +// Window opcodes
   1.299 +
   1.300 +enum TWsWindowOpcodes
   1.301 +	{
   1.302 +	EWsWinOpFree=0x0000,
   1.303 +	EWsWinOpSetExtent,
   1.304 +	EWsWinOpSetExtentErr,
   1.305 +	EWsWinOpOrdinalPosition,
   1.306 +	EWsWinOpFullOrdinalPosition,
   1.307 +	EWsWinOpSetOrdinalPosition,
   1.308 +	EWsWinOpSetOrdinalPositionPri,
   1.309 +	EWsWinOpSetOrdinalPriorityAdjust,
   1.310 +	EWsWinOpSetPos,
   1.311 +	EWsWinOpSetSize,
   1.312 +	EWsWinOpSetSizeErr,
   1.313 +	EWsWinOpPosition,
   1.314 +	EWsWinOpAbsPosition,
   1.315 +	EWsWinOpSize,
   1.316 +	EWsWinOpActivate,
   1.317 +	EWsWinOpInvalidate,
   1.318 +	EWsWinOpInvalidateFull,
   1.319 +	EWsWinOpBeginRedraw,
   1.320 +	EWsWinOpBeginRedrawFull,
   1.321 +	EWsWinOpEndRedraw,
   1.322 +	EWsWinOpTestInvariant,
   1.323 +	EWsWinOpParent,
   1.324 +	EWsWinOpPrevSibling,
   1.325 +	EWsWinOpNextSibling,
   1.326 +	EWsWinOpChild,
   1.327 +	EWsWinOpInquireOffset,
   1.328 +	EWsWinOpPointerFilter,
   1.329 +	EWsWinOpSetPointerCapture,
   1.330 +	EWsWinOpSetPointerGrab,
   1.331 +	EWsWinOpClaimPointerGrab,
   1.332 +	EWsWinOpSetBackgroundColor,
   1.333 +	EWsWinOpSetOrdinalPositionErr,
   1.334 +	EWsWinOpSetVisible,
   1.335 +	EWsWinOpScroll,
   1.336 +	EWsWinOpScrollClip,
   1.337 +	EWsWinOpScrollRect,
   1.338 +	EWsWinOpScrollClipRect,
   1.339 +	EWsWinOpReceiveFocus,
   1.340 +	EWsWinOpAutoForeground,
   1.341 +	EWsWinOpSetNoBackgroundColor,
   1.342 +	EWsWinOpCaptureKey,
   1.343 +	EWsWinOpCancelCaptureKey,
   1.344 +	EWsWinOpCaptureKeyUpsAndDowns,
   1.345 +	EWsWinOpCancelCaptureKeyUpsAndDowns,
   1.346 +	EWsWinOpAddPriorityKey,
   1.347 +	EWsWinOpRemovePriorityKey,
   1.348 +	EWsWinOpSetTextCursor,
   1.349 +	EWsWinOpSetTextCursorClipped,
   1.350 +	EWsWinOpCancelTextCursor,
   1.351 +	EWsWinOpSetShadowHeight,
   1.352 +	EWsWinOpShadowDisabled,
   1.353 +	EWsWinOpGetInvalidRegion,
   1.354 +	EWsWinOpGetInvalidRegionCount,
   1.355 +	EWsWinOpSetColor,
   1.356 +	EWsWinOpSetCornerType,
   1.357 +	EWsWinOpSetShape,
   1.358 +	EWsWinOpBitmapHandle,
   1.359 +	EWsWinOpUpdateScreen,
   1.360 +	EWsWinOpUpdateScreenRegion,
   1.361 +	EWsWinOpUpdateBackupBitmap,
   1.362 +	EWsWinOpMaintainBackup,
   1.363 +	EWsWinOpName,
   1.364 +	EWsWinOpSetName,
   1.365 +	EWsWinOpSetOwningWindowGroup,
   1.366 +	EWsWinOpDefaultOwningWindow,
   1.367 +	EWsWinOpRequiredDisplayMode,
   1.368 +	EWsWinOpEnableOnEvents,
   1.369 +	EWsWinOpDisableOnEvents,
   1.370 +	EWsWinOpEnableGroupChangeEvents,
   1.371 +	EWsWinOpDisableGroupChangeEvents,
   1.372 +	EWsWinOpSetPointerCursor,
   1.373 +	EWsWinOpSetCustomPointerCursor,
   1.374 +	EWsWinOpRequestPointerRepeatEvent,
   1.375 +	EWsWinOpCancelPointerRepeatEventRequest,
   1.376 +	EWsWinOpAllocPointerMoveBuffer,
   1.377 +	EWsWinOpFreePointerMoveBuffer,
   1.378 +	EWsWinOpEnablePointerMoveBuffer,
   1.379 +	EWsWinOpDisablePointerMoveBuffer,
   1.380 +	EWsWinOpRetrievePointerMoveBuffer,
   1.381 +	EWsWinOpDiscardPointerMoveBuffer,		//Tested to here %%%
   1.382 +	EWsWinOpEnableModifierChangedEvents,
   1.383 +	EWsWinOpDisableModifierChangedEvents,
   1.384 +	EWsWinOpEnableErrorMessages,
   1.385 +	EWsWinOpDisableErrorMessages,
   1.386 +	EWsWinOpAddKeyRect,
   1.387 +	EWsWinOpRemoveAllKeyRects,
   1.388 +	EWsWinOpPasswordWindow,
   1.389 +	EWsWinOpEnableBackup,
   1.390 +	EWsWinOpIdentifier,
   1.391 +	EWsWinOpDisableKeyClick,
   1.392 +	EWsWinOpSetFade=EWsWinOpDisableKeyClick+3,	//Two messages removed
   1.393 +	EWsWinOpSetNonFading,
   1.394 +	EWsWinOpFadeBehind,
   1.395 +	EWsWinOpEnableScreenChangeEvents,
   1.396 +	EWsWinOpDisableScreenChangeEvents,
   1.397 +	EWsWinOpSendPointerEvent,
   1.398 +	EWsWinOpSendAdvancedPointerEvent,
   1.399 +	EWsWinOpGetDisplayMode,
   1.400 +	EWsWinOpGetIsFaded,
   1.401 +	EWsWinOpGetIsNonFading,
   1.402 +	EWsWinOpOrdinalPriority,
   1.403 +	EWsWinOpClearPointerCursor,
   1.404 +	EWsWinOpMoveToGroup,
   1.405 +	EWsWinOpEnableFocusChangeEvents,
   1.406 +	EWsWinOpDisableFocusChangeEvents,
   1.407 +	EWsWinOpEnableGroupListChangeEvents,
   1.408 +	EWsWinOpDisableGroupListChangeEvents,
   1.409 +	EWsWinOpCaptureLongKey,
   1.410 +	EWsWinOpCancelCaptureLongKey,
   1.411 +	EWsWinOpStoreDrawCommands,
   1.412 +	EWsWinOpHandleTransparencyUpdate,
   1.413 +	EWsWinOpSetTransparencyFactor,
   1.414 +	EWsWinOpSetTransparencyBitmap,
   1.415 +	EWsWinOpAllowChildWindowGroup,
   1.416 +	EWsWinOpSetTransparencyBitmapCWs, 
   1.417 +	EWsWinOpEnableVisibilityChangeEvents,
   1.418 +	EWsWinOpDisableVisibilityChangeEvents,
   1.419 +	EWsWinOpSetTransparencyAlphaChannel,
   1.420 +	EWsWinOpWindowGroupId,
   1.421 +	EWsWinOpSetPointerCapturePriority,
   1.422 +	EWsWinOpGetPointerCapturePriority,
   1.423 +	EWsWinOpSetTransparentRegion,
   1.424 +	EWsWinOpSetTransparencyPolicy,
   1.425 +	EWsWinOpIsRedrawStoreEnabled,
   1.426 +	EWsWinOpEnableOSB,
   1.427 +	EWsWinOpDisableOSB,
   1.428 +	EWsWinOpClearChildGroup,
   1.429 +	EWsWinOpSetChildGroup,
   1.430 +	EWsWinOpClientHandle,
   1.431 +	EWsWinOpSetBackgroundSurface,
   1.432 +	EWsWinOpKeyColor=EWsWinOpSetBackgroundSurface+2, 	//One message removed
   1.433 +	EWsWinOpSetBackgroundSurfaceConfig=EWsWinOpKeyColor+5,	//Four messages removed
   1.434 +	EWsWinOpRemoveBackgroundSurface=EWsWinOpSetBackgroundSurfaceConfig+2,	//One message removed
   1.435 +	EWsWinOpGetBackgroundSurfaceConfig=EWsWinOpRemoveBackgroundSurface+2,	//One message removed
   1.436 +	EWsWinOpClearRedrawStore=EWsWinOpGetBackgroundSurfaceConfig+2,	//One message removed
   1.437 +	EWsWinOpScreenNumber,
   1.438 +	EWsWinOpEnableAdvancedPointers,
   1.439 +#ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS	
   1.440 +	EWsWinOpSetSurfaceTransparency,
   1.441 +#endif
   1.442 +	EWsWinOpSetPurpose,
   1.443 +	EWsWinOpSendEffectCommand,
   1.444 +	EWsWinOpOverrideEffectBuf,
   1.445 +	EWsWinOpOverrideEffectIPC,
   1.446 +	EWsWinOpTestLowPriorityRedraw=0x2000,  //Specific opcode for testing redraw queue priorities
   1.447 +	};
   1.448 +
   1.449 +// GC opcodes
   1.450 +
   1.451 +enum TWsGcOpcodes
   1.452 +	{
   1.453 +	EWsGcOpFree=0x0000,
   1.454 +	EWsGcOpActivate,
   1.455 +	EWsGcOpDeactivate,
   1.456 +	EWsGcOpSetClippingRegion,
   1.457 +	EWsGcOpSetClippingRect,
   1.458 +	EWsGcOpCancelClippingRegion,
   1.459 +	EWsGcOpCancelClippingRect,
   1.460 +	EWsGcOpSetWordJustification,
   1.461 +	EWsGcOpSetCharJustification,
   1.462 +	EWsGcOpSetPenColor,
   1.463 +	EWsGcOpSetPenStyle,
   1.464 +	EWsGcOpSetPenSize,
   1.465 +	EWsGcOpSetBrushColor,
   1.466 +	EWsGcOpSetBrushStyle,
   1.467 +	EWsGcOpSetBrushOrigin,
   1.468 +	EWsGcOpUseBrushPattern,
   1.469 +	EWsGcOpDiscardBrushPattern,
   1.470 +	EWsGcOpDrawArc,
   1.471 +	EWsGcOpDrawLine,
   1.472 +	EWsGcOpPlot,
   1.473 +	EWsGcOpDrawTo,
   1.474 +	EWsGcOpDrawBy,
   1.475 +	EWsGcOpDrawPolyLine,
   1.476 +	EWsGcOpDrawPolyLineContinued,   //Quater Way
   1.477 +
   1.478 +	EWsGcOpDrawPie,
   1.479 +	EWsGcOpDrawRoundRect,
   1.480 +	EWsGcOpDrawPolygon,
   1.481 +	EWsGcOpStartSegmentedDrawPolygon,
   1.482 +	EWsGcOpSegmentedDrawPolygonData,
   1.483 +	EWsGcOpDrawSegmentedPolygon,
   1.484 +	EWsGcOpDrawBitmap,
   1.485 +	EWsGcOpDrawBitmap2,
   1.486 +	EWsGcOpDrawBitmap3,
   1.487 +	EWsGcOpDrawBitmapMasked,
   1.488 +	EWsGcOpWsDrawBitmapMasked,
   1.489 +	EWsGcOpDrawText,
   1.490 +	EWsGcOpDrawTextPtr,
   1.491 +	EWsGcOpDrawTextInContextPtr,
   1.492 +	EWsGcOpDrawTextInContext,
   1.493 +	EWsGcOpDrawTextVertical,
   1.494 +	EWsGcOpDrawTextInContextVertical,
   1.495 +	EWsGcOpDrawTextInContextVerticalPtr,
   1.496 +	EWsGcOpDrawTextVerticalPtr,
   1.497 +	EWsGcOpDrawBoxTextOptimised1,
   1.498 +	EWsGcOpDrawBoxTextOptimised2,
   1.499 +	EWsGcOpDrawBoxTextInContextOptimised1,
   1.500 +	EWsGcOpDrawBoxTextInContextOptimised2,
   1.501 +	EWsGcOpDrawBoxText,
   1.502 +	EWsGcOpDrawBoxTextInContext,
   1.503 +	EWsGcOpDrawBoxTextPtr,
   1.504 +	EWsGcOpDrawBoxTextInContextPtr,
   1.505 +	EWsGcOpDrawBoxTextVertical,
   1.506 +	EWsGcOpDrawBoxTextInContextVertical,
   1.507 +	EWsGcOpDrawBoxTextVerticalPtr,
   1.508 +	EWsGcOpDrawBoxTextInContextVerticalPtr,
   1.509 +	EWsGcOpMoveBy,
   1.510 +	EWsGcOpMoveTo,
   1.511 +	EWsGcOpSetOrigin,
   1.512 +	EWsGcOpCopyRect,
   1.513 +	EWsGcOpDrawRect,
   1.514 +	EWsGcOpDrawEllipse,		//Half Way
   1.515 +
   1.516 +	EWsGcOpGdiBlt2,
   1.517 +	EWsGcOpGdiBlt3,
   1.518 +	EWsGcOpGdiBltMasked,
   1.519 +	EWsGcOpGdiWsBlt2,
   1.520 +	EWsGcOpGdiWsBlt3,
   1.521 +	EWsGcOpGdiWsBltMasked,
   1.522 +	EWsGcOpSize,
   1.523 +	EWsGcOpUseFont,
   1.524 +	//Two unused codes deleted
   1.525 +	EWsGcOpDiscardFont=EWsGcOpUseFont+3,
   1.526 +	EWsGcOpSetUnderlineStyle,
   1.527 +	EWsGcOpSetStrikethroughStyle,
   1.528 +	EWsGcOpSetDrawMode,
   1.529 +	EWsGcOpTestInvariant,
   1.530 +	EWsGcOpClearRect,
   1.531 +	EWsGcOpClear,
   1.532 +	EWsGcOpReset,
   1.533 +	EWsGcOpSetDitherOrigin,
   1.534 +	EWsGcOpMapColors,
   1.535 +	EWsGcOpDrawWsGraphic, //PREQ1246 Bravo
   1.536 +	EWsGcOpDrawWsGraphicPtr,
   1.537 +//
   1.538 +// Local opcodes used internally access GC drawing code
   1.539 +//
   1.540 +	EWsGcOpDrawPolyLineLocal,
   1.541 +	EWsGcOpDrawPolyLineLocalBufLen,
   1.542 +	EWsGcOpDrawPolygonLocal,
   1.543 +	EWsGcOpDrawPolygonLocalBufLen,
   1.544 +	EWsGcOpDrawTextLocal,
   1.545 +	EWsGcOpDrawTextInContextLocal,
   1.546 +	EWsGcOpDrawBoxTextLocal,
   1.547 +	EWsGcOpDrawBoxTextInContextLocal,
   1.548 +	EWsGcOpDrawBitmapLocal,
   1.549 +	EWsGcOpDrawBitmap2Local,
   1.550 +	EWsGcOpDrawBitmap3Local,
   1.551 +	EWsGcOpDrawBitmapMaskedLocal,
   1.552 +	EWsGcOpGdiBlt2Local,
   1.553 +	EWsGcOpGdiBlt3Local,
   1.554 +	EWsGcOpGdiBltMaskedLocal,
   1.555 +
   1.556 +//
   1.557 +// Local opcodes used when reading long strings
   1.558 +//
   1.559 +	EWsGcOpDrawTextPtr1,
   1.560 +	EWsGcOpDrawTextInContextPtr1,
   1.561 +	EWsGcOpDrawTextVerticalPtr1,
   1.562 +	EWsGcOpDrawTextInContextVerticalPtr1,
   1.563 +	EWsGcOpDrawBoxTextPtr1,
   1.564 +	EWsGcOpDrawBoxTextInContextPtr1,
   1.565 +	EWsGcOpDrawBoxTextVerticalPtr1,
   1.566 +	EWsGcOpDrawBoxTextInContextVerticalPtr1,
   1.567 +			
   1.568 +//
   1.569 +// New functions added leaving a space just in case it may be useful
   1.570 +//
   1.571 +	EWsGcOpSetFaded=200,
   1.572 +	EWsGcOpSetFadeParams,
   1.573 +	EWsGcOpGdiAlphaBlendBitmaps,
   1.574 +	EWsGcOpGdiWsAlphaBlendBitmaps,
   1.575 +	EWsGcOpSetOpaque,
   1.576 +	EWsGcOpMapColorsLocal,	
   1.577 +	EWsGcOpAlphaBlendBitmapsLocal,
   1.578 +	EWsGcOpSetShadowColor,
   1.579 +	EWsGcOpSetDrawTextInContext,
   1.580 +	EWsGcOpDrawResourceToPos,
   1.581 +	EWsGcOpDrawResourceToRect,
   1.582 +	EWsGcOpDrawResourceFromRectToRect,
   1.583 +	EWsGcOpDrawResourceWithData,
   1.584 +//
   1.585 +// Codes for internal use only
   1.586 +//
   1.587 +	EWsStoreAllGcAttributes=1000,
   1.588 +	EWsStoreClippingRegion,
   1.589 +	EWsGcOpFlagDrawOp=0x8000,
   1.590 +	};
   1.591 +
   1.592 +enum TWsAnimDllOpcode
   1.593 +	{
   1.594 +	EWsAnimDllOpCreateInstance=0x0000,
   1.595 +	EWsAnimDllOpCommand,
   1.596 +	EWsAnimDllOpCommandReply,
   1.597 +	EWsAnimDllOpDestroyInstance,
   1.598 +	EWsAnimDllOpFree,
   1.599 +	EWsAnimDllOpCreateInstanceSprite,
   1.600 +	};
   1.601 +
   1.602 +enum TWsScreenDeviceOpcodes
   1.603 +	{
   1.604 +	EWsSdSetableBitFlag=0x80000000,
   1.605 +	EWsSdOpGetScanLine=0x0000,
   1.606 +	EWsSdOpPixel,
   1.607 +	EWsSdOpTwipsSize,
   1.608 +	EWsSdOpPixelSize,
   1.609 +	EWsSdOpFree,
   1.610 +	EWsSdOpHorizontalTwipsToPixels,
   1.611 +	EWsSdOpVerticalTwipsToPixels,
   1.612 +	EWsSdOpHorizontalPixelsToTwips,
   1.613 +	EWsSdOpVerticalPixelsToTwips,
   1.614 +	EWsSdOpDisplayMode,
   1.615 +	EWsSdOpRectCompare,
   1.616 +	EWsSdOpPointerRect,
   1.617 +	EWsSdOpCopyScreenToBitmap,
   1.618 +	EWsSdOpCopyScreenToBitmap2,
   1.619 +	EWsSdOpSetScreenSizeAndRotation,
   1.620 +	EWsSdOpSetScreenSizeAndRotation2,
   1.621 +	EWsSdOpGetDefaultScreenSizeAndRotation,
   1.622 +	EWsSdOpGetDefaultScreenSizeAndRotation2,
   1.623 +	EWsSdOpGetNumScreenModes,
   1.624 +	EWsSdOpSetScreenMode,
   1.625 +	EWsSdOpGetScreenModeSizeAndRotation,
   1.626 +	EWsSdOpGetScreenModeSizeAndRotation2,
   1.627 +	EWsSdOpSetScreenModeEnforcement,
   1.628 +	EWsSdOpScreenModeEnforcement,
   1.629 +	EWsSdOpSetModeRotation,
   1.630 +	EWsSdOpGetRotationList,
   1.631 +	EWsSdOpPaletteAttributes,
   1.632 +	EWsSdOpSetPalette,
   1.633 +	EWsSdOpGetPalette,
   1.634 +	EWsSdOpGetScreenMode,
   1.635 +	EWsSdOpGetDefaultScreenModeOrigin,
   1.636 +	EWsSdOpGetScreenModeOrigin,
   1.637 +	EWsSdOpGetScreenModeScale,
   1.638 +	EWsSdOpGetCurrentScreenModeScale,
   1.639 +	EWsSdOpSetAppScreenMode,
   1.640 +	EWsSdOpGetScreenModeScaledOrigin,
   1.641 +	EWsSdOpGetCurrentScreenModeScaledOrigin,
   1.642 +	EWsSdOpSetCurrentScreenModeAttributes,
   1.643 +	EWsSdOpGetCurrentScreenModeAttributes,
   1.644 +	EWsSdOpGetScreenNumber,
   1.645 +	EWsSdOpGetScreenSizeModeList,
   1.646 +	EWsSdOpGetScreenModeDisplayMode,
   1.647 +	EWsClOpSetBackLight,
   1.648 +	EWsSdOpExtensionsSupported,
   1.649 +	EWsSdOpXDcGetNumberOfResolutions,
   1.650 +	EWsSdOpXDcGetResolutionsList,
   1.651 +	EWsSdOpXDcGetConfiguration,
   1.652 +	EWsSdOpXDcSetConfiguration,
   1.653 +	EWsSdOpXDcGetPreferredDisplayVersion,
   1.654 +	EWsSdOpXDcNotifyOnDisplayChange,
   1.655 +	EWsSdOpXDcNotifyOnDisplayChangeCancel,
   1.656 +	EWsSdOpXDcDisplayChangeEventEnabled,
   1.657 +	EWsSdOpXDmMapExtent,
   1.658 +	EWsSdOpXTestScreenCapture,
   1.659 +	EWsSdOpIsScreenModeDynamic,
   1.660 +	EWsSdOpXTestScreenCaptureSize,
   1.661 +	};
   1.662 +
   1.663 +/**	Bitfield of interface extensions explicitly supported.
   1.664 + * 	The client interface is welcome to group functionality in  different ways, if desired.
   1.665 + * 	Operations classified as inside extensions can be called and fail safely on an individual basis.
   1.666 + * 	Note that to distinguish versions, new bits may need to be used.
   1.667 + *  The top bit is reserved so that error value returns can be distinguished. 
   1.668 + **/    
   1.669 +enum TWsInterfaceExtensions
   1.670 +	{
   1.671 +	TWsSdXDisplayControl	=	0x00000001,
   1.672 +	TWsSdXDisplayMapping	=	0x00000002,
   1.673 +	TWsSdXDebugComposition	=	0x00000004,
   1.674 +	
   1.675 +	
   1.676 +	TWsSdXReservedErrorFlag	=	0x80000000
   1.677 +	};
   1.678 +
   1.679 +enum TWsSpriteOpcodes
   1.680 +	{
   1.681 +	EWsSpriteOpFree=0x0000,
   1.682 +	EWsSpriteOpSetPosition,
   1.683 +	EWsSpriteOpUpdateMember,
   1.684 +	EWsSpriteOpUpdateMember2,
   1.685 +	EWsSpriteOpActivate,
   1.686 +	EWsSpriteOpAppendMember,
   1.687 +	};
   1.688 +
   1.689 +enum TWsBitmapOpcodes
   1.690 +	{
   1.691 +	EWsBitmapOpFree=0x0000,
   1.692 +	};
   1.693 +
   1.694 +enum TWsDirectOpcodes
   1.695 +	{
   1.696 +	EWsDirectOpFree=0x0000,
   1.697 +	EWsDirectOpRequest,
   1.698 +	EWsDirectOpInitFailed,
   1.699 +	EWsDirectOpGetRegion,
   1.700 +	EWsDirectOpCancel,
   1.701 +	EWsDirectOpGetSendQueue,
   1.702 +	EWsDirectOpGetRecQueue,
   1.703 +	};
   1.704 +
   1.705 +enum TWsClickOpcodes
   1.706 +	{
   1.707 +	EWsClickOpFree=0x0000,
   1.708 +	EWsClickOpIsLoaded,
   1.709 +	EWsClickOpUnLoad,
   1.710 +	EWsClickOpLoad,
   1.711 +	EWsClickOpCommandReply,
   1.712 +	EWsClickOpSetKeyClick,
   1.713 +	EWsClickOpSetPenClick,
   1.714 +	EWsClickOpKeyClickEnabled,
   1.715 +	EWsClickOpPenClickEnabled,
   1.716 +	};
   1.717 +	
   1.718 +enum TWsGraphicBitFlags
   1.719 +	{
   1.720 +	EWsGraphicIdUid			= 0x01,
   1.721 +	EWsGraphicIdTransient	= 0x02,
   1.722 +	EWsGraphicReplace		= 0x04
   1.723 +	};
   1.724 +
   1.725 +enum TWsDrawableSourceOpcodes
   1.726 +	{
   1.727 +	EWsDrawableSourceOpFree=0x0000,
   1.728 +	};
   1.729 +
   1.730 +////////////////////////
   1.731 +// Command structures
   1.732 +////////////////////////
   1.733 +
   1.734 +/** Structure used to pass commands between the client and the server.
   1.735 +
   1.736 +@internalComponent
   1.737 +@released
   1.738 +@see RWsBuffer::DoWrite()
   1.739 +@see CWsClient::DoCommandBufL()
   1.740 +*/
   1.741 +struct TWsCmdHeaderBase
   1.742 +	{
   1.743 +	TUint16 iOpcode;
   1.744 +	TInt16 iCmdLength;
   1.745 +	};
   1.746 +
   1.747 +/** Structure used to pass commands between the client and the server.
   1.748 +
   1.749 +@internalComponent
   1.750 +@released
   1.751 +@see RWsBuffer::DoWrite()
   1.752 +@see CWsClient::DoCommandBufL()
   1.753 +*/
   1.754 +struct TWsCmdHeader
   1.755 +	{
   1.756 +	TWsCmdHeaderBase iBase;
   1.757 +	TInt32 iDestHandle;
   1.758 +	};
   1.759 +
   1.760 +//
   1.761 +// Command structures
   1.762 +//
   1.763 +
   1.764 +// Client command structures
   1.765 +
   1.766 +enum TWinTypes
   1.767 +	{
   1.768 +	EWinRedraw,
   1.769 +	EWinBackedUp,
   1.770 +	EWinBlank,
   1.771 +	};
   1.772 +
   1.773 +struct TWsClCmdCreateWindow
   1.774 +	{
   1.775 +	TInt parent;
   1.776 +	TUint32 clientHandle;
   1.777 +	TWinTypes type;
   1.778 +	TDisplayMode displayMode;	// Only used for backed up windows
   1.779 +	};
   1.780 +struct TWsClCmdCreateWindowGroup
   1.781 +	{
   1.782 +	TUint32 clientHandle;
   1.783 +	TBool focus;
   1.784 +	TInt parentId;
   1.785 +	TInt32 screenDeviceHandle;
   1.786 +	};
   1.787 +struct TWsClCmdLoadAnimDll
   1.788 +	{
   1.789 +	TInt length;
   1.790 +	};
   1.791 +struct TWsClCmdCreatePointerCursor
   1.792 +	{
   1.793 +	TUint flags;
   1.794 +	};
   1.795 +struct TWsClCmdCustomTextCursorData
   1.796 +	{
   1.797 +	TInt identifier;
   1.798 +	TUint flags;
   1.799 +	RWsSession::TCustomTextCursorAlignment alignment;
   1.800 +	};
   1.801 +struct TWsClCmdCreateSprite
   1.802 +	{
   1.803 +	inline TWsClCmdCreateSprite(TInt aWindow, const TPoint &aPos, TUint aFlags);
   1.804 +	TInt window;
   1.805 +	TPoint pos;
   1.806 +	TUint flags;
   1.807 +	};
   1.808 +struct TWsClCmdCreateBitmap
   1.809 +	{
   1.810 +	TInt handle;
   1.811 +	};
   1.812 +struct TWsClCmdSetHotKey
   1.813 +	{
   1.814 +	TUint type;
   1.815 +	TUint modifiers;
   1.816 +	TUint modifierMask;
   1.817 +	TUint16 keycode;
   1.818 +	TUint16 filler;
   1.819 +	};
   1.820 +struct TWsClCmdWindowGroupList
   1.821 +	{
   1.822 +	TInt priority;
   1.823 +	TInt count;
   1.824 +	TInt screenNumber;
   1.825 +	};
   1.826 +struct TWsClCmdSetWindowGroupOrdinalPosition
   1.827 +	{
   1.828 +	inline TWsClCmdSetWindowGroupOrdinalPosition(TInt aIdentifier, TInt aPosition);
   1.829 +	TInt identifier;
   1.830 +	TInt position;
   1.831 +	};
   1.832 +struct TWsClCmdSetKeyboardRepeatRate
   1.833 +	{
   1.834 +	inline TWsClCmdSetKeyboardRepeatRate(const TTimeIntervalMicroSeconds32 &aInitial,const TTimeIntervalMicroSeconds32 &aTime);
   1.835 +	TTimeIntervalMicroSeconds32 initial;
   1.836 +	TTimeIntervalMicroSeconds32 time;
   1.837 +	};
   1.838 +struct TWsClCmdSetDoubleClick
   1.839 +	{
   1.840 +	inline TWsClCmdSetDoubleClick(const TTimeIntervalMicroSeconds32 &aInterval,TInt aDistance);
   1.841 +	TTimeIntervalMicroSeconds32 interval;
   1.842 +	TInt distance;
   1.843 +	};
   1.844 +struct TWsClCmdSetSystemPointerCursor
   1.845 +	{
   1.846 +	TInt handle;
   1.847 +	TInt number;
   1.848 +	};
   1.849 +struct TWsClCmdHeapSetFail
   1.850 +	{
   1.851 +	RHeap::TAllocFail type;
   1.852 +	TInt value;
   1.853 +	TInt burst;
   1.854 +	};
   1.855 +struct TWsClCmdSendEventToWindowGroup
   1.856 +	{
   1.857 +	inline TWsClCmdSendEventToWindowGroup(TInt aParameter, const TWsEvent &aEvent);
   1.858 +	TInt parameter;
   1.859 +	TWsEvent event;
   1.860 +	};
   1.861 +struct TWsClCmdFindWindowGroupIdentifier
   1.862 +	{
   1.863 +	inline TWsClCmdFindWindowGroupIdentifier(TInt aPreviousIdentifier,TInt aOffset, TInt aLength);
   1.864 +	TInt identifier;
   1.865 +	TInt offset;
   1.866 +	TInt length;
   1.867 +	};
   1.868 +struct TWsClCmdSendMessageToWindowGroup
   1.869 +	{
   1.870 +	inline TWsClCmdSendMessageToWindowGroup(TInt aIdentifier, TUid aUid, TInt aDataLength, const TDesC8 *aPtr);
   1.871 +	TInt identifierOrPriority; // identifier in case of EWsClOpSendMessageToWindowGroup, not used in case of EWsClOpSendMessageToAllWindowGroup, priority in case of EWsClOpSendMessageToAllWindowGroupPriority
   1.872 +	TUid uid;
   1.873 +	TInt dataLength;
   1.874 +	const TDesC8 *ptr;
   1.875 +	};
   1.876 +struct TWsClCmdFetchMessage
   1.877 +	{
   1.878 +	inline TWsClCmdFetchMessage(TInt aWindowGroupIdentifier);
   1.879 +	TInt windowGroupIdentifier;
   1.880 +	};
   1.881 +struct TWsClCmdFindWindowGroupIdentifierThread
   1.882 +	{
   1.883 +	inline TWsClCmdFindWindowGroupIdentifierThread(TInt aPreviousIdentifier,TThreadId aThreadId);
   1.884 +	TInt identifier;
   1.885 +	TThreadId threadId;
   1.886 +	};
   1.887 +struct TWsClCmdGetWindowGroupNameFromIdentifier
   1.888 +	{
   1.889 +	inline TWsClCmdGetWindowGroupNameFromIdentifier(TInt aIdentifier,TInt aMaxLength);
   1.890 +	TInt identifier;
   1.891 +	TInt maxLength;
   1.892 +	};
   1.893 +struct TWsClCmdOffEventsToShell
   1.894 +	{
   1.895 +	inline TWsClCmdOffEventsToShell(TBool aOn,TUint32 aWindow);
   1.896 +	TBool on;
   1.897 +	TUint32 window;
   1.898 +	};
   1.899 +struct TWsClCmdSetModifierState
   1.900 +	{
   1.901 +	TEventModifier modifier;
   1.902 +	TModifierState state;
   1.903 +	};
   1.904 +struct TWsClCmdSetPointerCursorArea
   1.905 +	{
   1.906 +	inline TWsClCmdSetPointerCursorArea(TInt aMode,TRect aArea);
   1.907 +	TInt mode;
   1.908 +	TRect area;
   1.909 +	};
   1.910 +struct TWsClCmdSetSystemFaded
   1.911 +	{
   1.912 +	enum {EFaded=0x01,EUseDefaultMap=0x02};
   1.913 +	inline TWsClCmdSetSystemFaded(TBool aFaded,TBool aUseDefaults=ETrue,TUint8 aBlackMap=0,TUint8 aWhiteMap=0);
   1.914 +	inline TBool Faded() const;
   1.915 +	inline TBool UseDefaultMap() const;
   1.916 +	inline void GetFadingParams(TUint8& aBlackMap,TUint8& aWhiteMap) const;
   1.917 +	TUint params;
   1.918 +	};
   1.919 +struct TWsClCmdCreateGraphic
   1.920 +	{
   1.921 +	TUint iFlags; // TWsGraphicBitFlags
   1.922 +	TInt iClientHandle;
   1.923 +	TInt iId;
   1.924 +	TUid iType;
   1.925 +	TInt iDataLen;
   1.926 +	TBool iRemoteReadData;
   1.927 +	};
   1.928 +struct TWsClCmdGdSendMessage
   1.929 +	{
   1.930 +	TInt iDataLen;
   1.931 +	TBool iRemoteReadData;
   1.932 +	};
   1.933 +struct TWsClCmdGdGetId
   1.934 +	{
   1.935 +	TInt iId;
   1.936 +	TBool iIsUid;
   1.937 +	};
   1.938 +struct TWsClCmdDebugInfo
   1.939 +	{
   1.940 +	inline TWsClCmdDebugInfo(TInt aFunction, TInt aParam);
   1.941 +	TInt iFunction;
   1.942 +	TInt iParam;
   1.943 +	};
   1.944 +struct TWsClCmdCreateDrawableSource;
   1.945 +struct TWsClCmdSurfaceRegister;
   1.946 +#if defined(SYMBIAN_GRAPHICS_GCE)
   1.947 +struct TWsClCmdCreateDrawableSource
   1.948 +	{
   1.949 +	inline TWsClCmdCreateDrawableSource(const TSgDrawableId& aDrawableId, TInt aScreenNumber);
   1.950 +	TSgDrawableId iDrawableId;
   1.951 +	TInt iScreenNumber;
   1.952 +	};
   1.953 +struct TWsClCmdSurfaceRegister
   1.954 +	{
   1.955 +	inline TWsClCmdSurfaceRegister(TInt aScreenNumber, const TSurfaceId& aSurface);
   1.956 +	TInt screenNumber;
   1.957 +	TSurfaceId surfaceId;
   1.958 +	};
   1.959 +#endif
   1.960 +struct TWsClCmdNumWindowGroups
   1.961 +	{
   1.962 +	TInt screenNumber;
   1.963 +	TInt priority;	
   1.964 +	};
   1.965 +struct TWsClCmdCreateScreenDevice
   1.966 +	{
   1.967 +	TInt screenNumber;	
   1.968 +	TUint clientScreenDevicePointer;
   1.969 +	};
   1.970 +struct TWsClCmdZThresholdPair
   1.971 +	{
   1.972 +	inline TWsClCmdZThresholdPair(const TInt aEnterThreshold, const TInt aExitThreshold);
   1.973 +	TInt enterThreshold;
   1.974 +	TInt exitThreshold;
   1.975 +	};
   1.976 +struct TWsClCmdSendEffectCommand
   1.977 +	{
   1.978 +	inline TWsClCmdSendEffectCommand(TInt aTfxCmd,TInt aTfxCmdDataLength, TInt aWinHandle);
   1.979 +	TInt tfxCmd;
   1.980 +	TInt tfxCmdDataLength;
   1.981 +	TInt windowHandle;
   1.982 +	};
   1.983 +struct TWsClCmdRegisterEffect
   1.984 +    {
   1.985 +    inline TWsClCmdRegisterEffect(TInt aAction, TInt aPurpose, TInt aDirStrSize, TInt aPhase1StrSize, TInt aPhase2StrSize, TUint aAppUid, TBitFlags aFlags);
   1.986 +    TInt tfxAction;
   1.987 +    TInt tfxPurpose;
   1.988 +    TInt tfxDirStrSize;
   1.989 +    TInt tfxPhase1StrSize;
   1.990 +    TInt tfxPhase2StrSize;
   1.991 +    TUint tfxAppUid;
   1.992 +    TBitFlags tfxFlags;
   1.993 +    };
   1.994 +struct TWsClCmdUnRegisterEffect
   1.995 +    {
   1.996 +    inline TWsClCmdUnRegisterEffect(TInt aAction, TInt aPurpose, TUint aAppUid);
   1.997 +    TInt tfxAction;
   1.998 +    TInt tfxPurpose;
   1.999 +    TUint tfxAppUid;
  1.1000 +    };
  1.1001 +struct TWsClCmdOverrideEffect
  1.1002 +    {
  1.1003 +    inline TWsClCmdOverrideEffect(TInt aAction, TInt aPurpose, TInt aDirStrSize, TInt aPhase1StrSize, TInt aPhase2StrSize, TBitFlags aFlags);
  1.1004 +    TInt tfxAction;
  1.1005 +    TInt tfxPurpose;
  1.1006 +    TInt tfxDirStrSize;
  1.1007 +    TInt tfxPhase1StrSize;
  1.1008 +    TInt tfxPhase2StrSize;
  1.1009 +    TBitFlags tfxFlags;
  1.1010 +    };
  1.1011 +typedef TRequestStatus *RqStatPtr;
  1.1012 +union TWsClCmdUnion
  1.1013 +	{
  1.1014 +	const TAny* any;
  1.1015 +	const TAny** pAny;
  1.1016 +	const TInt* Int;
  1.1017 +	const TUint* UInt;
  1.1018 +	const TBool* Bool;
  1.1019 +	const TUid* Uid;
  1.1020 +	const TPointerCursorMode* Mode;
  1.1021 +    const TInt *XyInput;
  1.1022 +	const TPoint* Point;
  1.1023 +	const TRgb* rgb;
  1.1024 +	const RqStatPtr* RequestStatus;
  1.1025 +	const TRawEvent* RawEvent;
  1.1026 +	const TKeyEvent* KeyEvent;
  1.1027 +	const RWsSession::TComputeMode* ComputeMode;
  1.1028 +	const RWsSession::TLoggingCommand* LogCommand;
  1.1029 +	const TWsClCmdCreateWindow* CreateWindow;
  1.1030 +	const TWsClCmdCreateWindowGroup* CreateWindowGroup;
  1.1031 +	const TWsClCmdLoadAnimDll* LoadAnimDll;
  1.1032 +	const TWsClCmdCreatePointerCursor* CreatePointerCursor;
  1.1033 +	const TWsClCmdCustomTextCursorData* CustomTextCursorData;
  1.1034 +	const TWsClCmdCreateSprite* CreateSprite;
  1.1035 +	const TWsClCmdCreateBitmap* CreateBitmap;
  1.1036 +	const TWsClCmdSetHotKey* SetHotKey;
  1.1037 +	const TWsClCmdWindowGroupList* WindowGroupList;
  1.1038 +	const TWsClCmdSetWindowGroupOrdinalPosition* SetWindowGroupOrdinalPosition;
  1.1039 +	const TWsClCmdSetKeyboardRepeatRate* SetKeyboardRepeatRate;
  1.1040 +	const TWsClCmdHeapSetFail* HeapSetFail;
  1.1041 +	const TWsClCmdSetDoubleClick* SetDoubleClick;
  1.1042 +	const TWsClCmdSetSystemPointerCursor* SetSystemPointerCursor;
  1.1043 +	const TWsClCmdSendEventToWindowGroup* SendEventToWindowGroup;
  1.1044 +	const TWsClCmdSendMessageToWindowGroup* SendMessageToWindowGroup;
  1.1045 +	const TWsClCmdFetchMessage* FetchMessage;
  1.1046 +	const TWsClCmdFindWindowGroupIdentifier* FindWindowGroupIdentifier;
  1.1047 +	const TWsClCmdFindWindowGroupIdentifierThread* FindWindowGroupIdentifierThread;
  1.1048 +	const TWsClCmdGetWindowGroupNameFromIdentifier* GetWindowGroupNameFromIdentifier;
  1.1049 +	const TWsClCmdOffEventsToShell* OffEventsToShell;
  1.1050 +	const TWsClCmdSetModifierState* SetModifierState;
  1.1051 +	const TWsClCmdSetPointerCursorArea* SetPointerCursorArea;
  1.1052 +	const TWsClCmdSetSystemFaded* SetSystemFaded;
  1.1053 +	const TWsClCmdCreateGraphic* CreateGraphic;
  1.1054 +	const TWsClCmdGdSendMessage* GraphicSendMessage;
  1.1055 +	const TWsClCmdGdGetId* GetGraphicId;
  1.1056 +	const TWsClCmdDebugInfo* DebugInfo;
  1.1057 +	const TWsClCmdSurfaceRegister* SurfaceRegister;
  1.1058 +	const TWsClCmdNumWindowGroups* NumWinGroups;
  1.1059 +	const TWsClCmdCreateScreenDevice* CreateScreenDevice;
  1.1060 +	const TWsClCmdZThresholdPair* ZThresholdPair;
  1.1061 +	const TWsClCmdCreateDrawableSource* CreateDrawableSource;
  1.1062 +	const TWsClCmdSendEffectCommand* SendEffectCommand;
  1.1063 +	const TWsClCmdRegisterEffect* RegisterEffect;
  1.1064 +	const TWsClCmdUnRegisterEffect* UnRegisterEffect; 
  1.1065 +	const TWsClCmdOverrideEffect* OverrideEffect;
  1.1066 +	const TRenderOrientation* Orientation;
  1.1067 +	};
  1.1068 +
  1.1069 +// Window command structures
  1.1070 +
  1.1071 +struct TWsWinCmdSetExtent
  1.1072 +	{
  1.1073 +	inline TWsWinCmdSetExtent(const TPoint &aPos,const TSize &aSize);
  1.1074 +	TPoint pos;
  1.1075 +	TSize size;
  1.1076 +	};
  1.1077 +struct TWsWinCmdOrdinalPos
  1.1078 +	{
  1.1079 +	TInt pos;
  1.1080 +	TInt ordinalPriority;
  1.1081 +	};
  1.1082 +struct TWsWinCmdScroll
  1.1083 +	{
  1.1084 +	inline TWsWinCmdScroll(const TRect &aClip,const TPoint &aOffset,const TRect &aRect);
  1.1085 +	TRect clip;
  1.1086 +	TPoint offset;
  1.1087 +	TRect rect;
  1.1088 +	};
  1.1089 +struct TWsWinCmdCaptureKey
  1.1090 +	{
  1.1091 +	TUint modifiers;
  1.1092 +	TUint modifierMask;
  1.1093 +	TUint key;
  1.1094 +	TInt priority;
  1.1095 +	};
  1.1096 +struct TWsWinCmdCaptureLongKey
  1.1097 +	{
  1.1098 +	inline TWsWinCmdCaptureLongKey();
  1.1099 +	inline TWsWinCmdCaptureLongKey(TUint aModifiers,TUint aModifierMask,TUint aInputKey,TUint aOutputKey
  1.1100 +																	,TTimeIntervalMicroSeconds32 aDelay,TInt aPriority,TUint aFlags);
  1.1101 +	TUint modifiers;
  1.1102 +	TUint modifierMask;
  1.1103 +	TUint inputKey;
  1.1104 +	TUint outputKey;
  1.1105 +	TTimeIntervalMicroSeconds32 delay;
  1.1106 +	TInt priority;
  1.1107 +	TUint flags;
  1.1108 +	};
  1.1109 +struct TWsWinCmdPriorityKey
  1.1110 +	{
  1.1111 +	TUint modifiers;
  1.1112 +	TUint modifierMask;
  1.1113 +	TUint keycode;
  1.1114 +	};
  1.1115 +struct TWsWinCmdSetTextCursor
  1.1116 +	{
  1.1117 +	inline TWsWinCmdSetTextCursor(TUint32 aWindow, const TPoint &aPos, const TTextCursor &aCursor, const TRect &aRect);
  1.1118 +	inline TWsWinCmdSetTextCursor(TUint32 aWindow, const TPoint &aPos, const TTextCursor &aCursor);
  1.1119 +	TUint32 window;
  1.1120 +	TPoint pos;
  1.1121 +	TTextCursor cursor;
  1.1122 +	TRect rect;
  1.1123 +	};
  1.1124 +struct TWsWinCmdPointerFilter
  1.1125 +	{
  1.1126 +	TUint32 mask;
  1.1127 +	TUint32 flags;
  1.1128 +	};
  1.1129 +struct TWsWinCmdSetCornerType
  1.1130 +	{
  1.1131 +	TCornerType type;
  1.1132 +	TInt flags;
  1.1133 +	};
  1.1134 +struct TWsWinCmdSetShape
  1.1135 +	{
  1.1136 +	TPtrC8 *ptr;
  1.1137 +	TInt count;
  1.1138 +	};
  1.1139 +struct TWsWinCmdUpdateScreen
  1.1140 +	{
  1.1141 +	TPtrC8 *ptr;
  1.1142 +	TInt count;
  1.1143 +	};
  1.1144 +struct TWsWinCmdGrabControl
  1.1145 +	{
  1.1146 +	enum TWsWinCmdGrabControlFlags
  1.1147 +		{
  1.1148 +		ENone=0,
  1.1149 +		ESendUpEvent=0x2,
  1.1150 +		ESendReply=0x4
  1.1151 +		};
  1.1152 +	inline TWsWinCmdGrabControl(const TUint aGrabControlFlags);
  1.1153 +	inline TWsWinCmdGrabControl(const TUint8 aPointerNumber, const TUint aGrabControlFlags);
  1.1154 +	inline TBool CheckFlags(TUint aFlags) const;
  1.1155 +	inline TBool HasPointerNumber() const;
  1.1156 +	
  1.1157 +	// integer to ensure passed in unsigned TUint8 can't get confused with
  1.1158 +	// signed negative values that are used internally.
  1.1159 +	// The signed int member will be "promoted" to unsigned for the assignement in the constructor.
  1.1160 +	TInt pointerNumber;
  1.1161 +	TUint flags;	
  1.1162 +	};
  1.1163 +
  1.1164 +struct TWsWinCmdCancelPointerRepeatEventRequest
  1.1165 +	{
  1.1166 +	enum TCancelRepeatFlags
  1.1167 +		{
  1.1168 +		ECancelRepeatFlagsNone=0,
  1.1169 +		ECancelRepeatFlagsSendReply=0x2
  1.1170 +		};	
  1.1171 +	
  1.1172 +	inline TWsWinCmdCancelPointerRepeatEventRequest();
  1.1173 +	inline TWsWinCmdCancelPointerRepeatEventRequest(const TUint8 aPointerNumber);	
  1.1174 +	inline TWsWinCmdCancelPointerRepeatEventRequest(const TUint8 aPointerNumber, const TUint aFlags);
  1.1175 +	inline TBool HasPointerNumber() const;
  1.1176 +	TInt pointerNumber;
  1.1177 +	TUint flags;
  1.1178 +	};
  1.1179 +
  1.1180 +struct TWsWinCmdRequestPointerRepeatEvent
  1.1181 +	{
  1.1182 +	enum TRepeatFlags
  1.1183 +		{
  1.1184 +		ERepeatFlagsNone=0,
  1.1185 +		ERepeatFlagsSendReply=0x2
  1.1186 +		};
  1.1187 +	
  1.1188 +	inline TWsWinCmdRequestPointerRepeatEvent(const TTimeIntervalMicroSeconds32 &aTime,const TRect &aRect);
  1.1189 +	inline TWsWinCmdRequestPointerRepeatEvent(const TTimeIntervalMicroSeconds32 &aTime,const TRect &aRect,const TUint8 aPointerNumber, const TUint aRepeatFlags);
  1.1190 +	inline TBool HasPointerNumber() const;
  1.1191 +	TTimeIntervalMicroSeconds32 time;
  1.1192 +	TRect rect;
  1.1193 +	TInt pointerNumber;
  1.1194 +	TUint repeatFlags;
  1.1195 +	};
  1.1196 +struct TWsWinCmdAllocPointerMoveBuffer
  1.1197 +	{
  1.1198 +	TInt maxNumPoints;
  1.1199 +	TInt flags;
  1.1200 +	};
  1.1201 +struct TWsWinCmdSetName
  1.1202 +	{
  1.1203 +	TInt length;
  1.1204 +	const TDesC *ptr;
  1.1205 +	};
  1.1206 +struct TWsWinCmdAddKeyRect
  1.1207 +	{
  1.1208 +	inline TWsWinCmdAddKeyRect(const TRect &aRect,TInt aScanCodea, TBool aActivatedByPointerSwitchOn);
  1.1209 +	TRect rect;
  1.1210 +	TInt scanCode;
  1.1211 +	TBool activatedByPointerSwitchOn;
  1.1212 +	};
  1.1213 +struct TWsWinOpSetBackgroundSurfaceConfig;
  1.1214 +#if defined(SYMBIAN_GRAPHICS_GCE)
  1.1215 +struct TWsWinOpSetBackgroundSurfaceConfig
  1.1216 +	{
  1.1217 +	inline TWsWinOpSetBackgroundSurfaceConfig(const TSurfaceConfiguration& aConfiguration, TBool aTriggerRedraw);
  1.1218 +	TSurfaceConfiguration surfaceConfig;
  1.1219 +	TBool triggerRedraw;
  1.1220 +	};
  1.1221 +#endif
  1.1222 +struct TWsWinCmdEnableModifierChangedEvents
  1.1223 +	{
  1.1224 +	inline TWsWinCmdEnableModifierChangedEvents(TUint aModifierMask, TEventControl aCircumstances);
  1.1225 +	TInt modifierMask;
  1.1226 +	TEventControl circumstances;
  1.1227 +	};
  1.1228 +struct TWsWinCmdSetFaded
  1.1229 +	{
  1.1230 +	enum {EFaded=0x01,EIncludeChildren=0x02,EUseDefaultMap=0x04};
  1.1231 +	inline TWsWinCmdSetFaded(TBool aFaded, TBool aIncludeChildren
  1.1232 +														,TBool aUseDefaults=ETrue,TUint8 aBlackMap=0,TUint8 aWhiteMap=0);
  1.1233 +	inline TBool Faded() const;
  1.1234 +	inline TBool IncludeChildren() const;
  1.1235 +	inline TBool UseDefaultMap() const;
  1.1236 +	inline void GetFadingParams(TUint8& aBlackMap,TUint8& aWhiteMap) const;
  1.1237 +	TUint params;
  1.1238 +	};
  1.1239 +
  1.1240 +union TWsWinCmdUnion
  1.1241 +	{
  1.1242 +	const TAny *any;
  1.1243 +	const TAny **pAny;
  1.1244 +	const TRect *rect;
  1.1245 +	const TPoint *pos;
  1.1246 +	const TSize *size;
  1.1247 +	const TInt *Int;
  1.1248 +	const TUint *UInt;
  1.1249 +	const TBool *Bool;
  1.1250 +	const TEventControl *EventControl;
  1.1251 +	const TRgb *rgb;
  1.1252 +	const TDisplayMode *DisplayMode;
  1.1253 +	const TPasswordMode *PasswordMode;
  1.1254 +	const TRawEvent *RawEvent;
  1.1255 +	const TSurfaceConfiguration *SurfaceConfiguration;
  1.1256 +	const TWsWinCmdSetExtent *SetEx;
  1.1257 +	const TWsWinCmdOrdinalPos *OrdinalPos;
  1.1258 +	const TWsWinCmdScroll *ScrollRect;
  1.1259 +	const TWsWinCmdCaptureKey *CaptureKey;
  1.1260 +	const TWsWinCmdCaptureLongKey *CaptureLongKey;
  1.1261 +	const TWsWinCmdPriorityKey *PriorityKey;
  1.1262 +	const TWsWinCmdSetTextCursor *SetTextCursor;
  1.1263 +	const TWsWinCmdPointerFilter *PointerFilter;
  1.1264 +	const TWsWinCmdSetCornerType *SetCornerType;
  1.1265 +	const TWsWinCmdSetShape *SetShape;
  1.1266 +	const TWsWinCmdUpdateScreen *UpdateScreen;
  1.1267 +	const TWsWinCmdRequestPointerRepeatEvent *RequestPointerRepeatEvent;
  1.1268 +	const TWsWinCmdAllocPointerMoveBuffer *AllocPointerMoveBuffer;
  1.1269 +	const TWsWinCmdSetName *SetName;
  1.1270 +	const TWsWinCmdAddKeyRect *AddKeyRect;
  1.1271 +	const TWsWinOpSetBackgroundSurfaceConfig *SurfaceConfigurationAndTrigger;
  1.1272 +	const TWsWinCmdEnableModifierChangedEvents *EnableModifierChangedEvents;
  1.1273 +	const TWsWinCmdSetFaded *SetFaded;
  1.1274 +	const TSurfaceId *Surface;
  1.1275 +	const TWsWinCmdCancelPointerRepeatEventRequest *CancelPointerRepeatEventRequest;
  1.1276 +	const TWsWinCmdGrabControl *GrabControl;
  1.1277 +	const TWsClCmdSendEffectCommand *SendEffectCommand;
  1.1278 +	const TWsClCmdOverrideEffect* OverrideEffect;
  1.1279 +	};
  1.1280 +
  1.1281 +// GC command structures
  1.1282 +
  1.1283 +struct TWsGcLargeStruct
  1.1284 +	{
  1.1285 +	TInt int1;
  1.1286 +	TInt int2;
  1.1287 +	TInt int3;
  1.1288 +	TInt int4;
  1.1289 +	TInt int5;
  1.1290 +	TInt int6;
  1.1291 +	TInt int7;
  1.1292 +	TInt int8;
  1.1293 +	TInt int9;
  1.1294 +	TBool tbool;
  1.1295 +	CGraphicsContext::TTextAlign align;
  1.1296 +	TAny* ptr;
  1.1297 +	};
  1.1298 +struct TWsGcCmdSetClippingRegion
  1.1299 +	{
  1.1300 +	TPtrC8 *ptr;
  1.1301 +	TInt count;
  1.1302 +	};
  1.1303 +struct TWsGcCmdSetJustification
  1.1304 +	{
  1.1305 +	TInt excessWidth;
  1.1306 +	TInt numGaps;
  1.1307 +	};
  1.1308 +struct TWsGcCmdDrawText
  1.1309 +	{
  1.1310 +	inline TWsGcCmdDrawText(const TPoint &aPos, TInt aLength);
  1.1311 +	TPoint pos;
  1.1312 +	TInt length;
  1.1313 +	};
  1.1314 +struct TWsGcCmdDrawTextPtr
  1.1315 +	{
  1.1316 +	TPoint pos;
  1.1317 +	TDesC *text;
  1.1318 +	};
  1.1319 +
  1.1320 +
  1.1321 +struct TWsGcCmdDrawTextVertical
  1.1322 +	{
  1.1323 +	inline TWsGcCmdDrawTextVertical(const TPoint &aPos, TInt aLength, TBool aUp);
  1.1324 +	TPoint pos;
  1.1325 +	TInt length;
  1.1326 +	TBool up;
  1.1327 +	};
  1.1328 +
  1.1329 +struct TWsGcCmdDrawTextVerticalPtr
  1.1330 +	{
  1.1331 +	TPoint pos;
  1.1332 +	TBool up;
  1.1333 +	TDesC *text;
  1.1334 +	inline TWsGcCmdDrawTextVerticalPtr(const TDesC *aDesc, const TPoint& aPos, const TBool aUp);
  1.1335 +	};
  1.1336 +
  1.1337 +struct TWsGcCmdDrawTextLocal
  1.1338 +	{
  1.1339 +	inline TWsGcCmdDrawTextLocal(const TPoint &aPos,const TDesC *aDesc);
  1.1340 +	TPoint pos;
  1.1341 +	const TDesC *desc;
  1.1342 +	};
  1.1343 +
  1.1344 +struct TWsGcCmdBoxTextOptimised1
  1.1345 +	{
  1.1346 +	inline TWsGcCmdBoxTextOptimised1(const TRect &aRect,TInt aBaselineOffset,TInt alength);
  1.1347 +	TRect box;
  1.1348 +	TInt baselineOffset;
  1.1349 +	TInt length;
  1.1350 +	};
  1.1351 +struct TWsGcCmdBoxTextOptimised2
  1.1352 +	{
  1.1353 +	inline TWsGcCmdBoxTextOptimised2(const TRect &aRect,TInt aBaselineOffset,CGraphicsContext::TTextAlign aHoriz,TInt aLeftMrg,TInt aLength);
  1.1354 +	TRect box;
  1.1355 +	TInt baselineOffset;
  1.1356 +	CGraphicsContext::TTextAlign horiz;
  1.1357 +	TInt leftMrg;
  1.1358 +	TInt length;
  1.1359 +	};
  1.1360 +
  1.1361 +struct TWsGcCmdBoxText
  1.1362 +	{
  1.1363 +	inline TWsGcCmdBoxText(const TRect &aRect,TInt aBaselineOffset,CGraphicsContext::TTextAlign aHoriz,TInt aLeftMrg,TInt aLength,TInt aWidth);
  1.1364 +	TRect box;
  1.1365 +	TInt baselineOffset;
  1.1366 +	CGraphicsContext::TTextAlign horiz;
  1.1367 +	TInt leftMrg;
  1.1368 +	TInt length;
  1.1369 +	TInt width;
  1.1370 +	};
  1.1371 +
  1.1372 +struct TWsGcCmdBoxTextPtr
  1.1373 +	{
  1.1374 +	TRect box;
  1.1375 +	TInt baselineOffset;
  1.1376 +	CGraphicsContext::TTextAlign horiz;
  1.1377 +	TInt leftMrg;
  1.1378 +	TInt width;
  1.1379 +	TDesC *text;
  1.1380 +	};
  1.1381 +
  1.1382 +struct TWsGcCmdBoxTextVertical
  1.1383 +	{
  1.1384 +	inline TWsGcCmdBoxTextVertical(const TRect& aBox);
  1.1385 +	TRect box;
  1.1386 +	TInt baselineOffset;
  1.1387 +	TBool up;
  1.1388 +	CGraphicsContext::TTextAlign vert;
  1.1389 +	TInt margin;
  1.1390 +	TInt length;
  1.1391 +	TInt width;
  1.1392 +	};
  1.1393 +
  1.1394 +struct TWsGcCmdBoxTextVerticalPtr
  1.1395 +	{
  1.1396 +	TRect box;
  1.1397 +	TInt baselineOffset;
  1.1398 +	TBool up;
  1.1399 +	CGraphicsContext::TTextAlign vert;
  1.1400 +	TInt margin;
  1.1401 +	TInt width;
  1.1402 +	TDesC *text;
  1.1403 +	};
  1.1404 +
  1.1405 +struct TWsGcCmdBoxTextLocal
  1.1406 +	{
  1.1407 +	inline TWsGcCmdBoxTextLocal(const TRect &aBox);
  1.1408 +	TRect box;
  1.1409 +	TInt baselineOffset;
  1.1410 +	CGraphicsContext::TTextAlign horiz;
  1.1411 +	TInt leftMrg;
  1.1412 +	const TDesC *desc;
  1.1413 +	};
  1.1414 +
  1.1415 +struct TWsGcCmdDrawLine
  1.1416 +	{
  1.1417 +	inline TWsGcCmdDrawLine(const TPoint &aPnt1,const TPoint &aPnt2);
  1.1418 +	TPoint pnt1;
  1.1419 +	TPoint pnt2;
  1.1420 +	};
  1.1421 +struct TWsGcCmdDrawPolyLine
  1.1422 +	{
  1.1423 +	TInt numPoints;
  1.1424 +	TInt more;
  1.1425 +	TPoint last;
  1.1426 +	};
  1.1427 +struct TWsGcCmdDrawArcOrPie
  1.1428 +	{
  1.1429 +	inline TWsGcCmdDrawArcOrPie(const TRect &aRect,const TPoint &aStart,const TPoint &aEnd);
  1.1430 +	TRect rect;
  1.1431 +	TPoint start;
  1.1432 +	TPoint end;
  1.1433 +	};
  1.1434 +struct TWsGcCmdDrawRoundRect
  1.1435 +	{
  1.1436 +	inline TWsGcCmdDrawRoundRect(const TRect &aRect,const TSize &aEllipse);
  1.1437 +	TRect rect;
  1.1438 +	TSize ellipse;
  1.1439 +	};
  1.1440 +struct TWsGcCmdDrawPolygon
  1.1441 +	{
  1.1442 +	TInt numPoints;
  1.1443 +	CGraphicsContext::TFillRule fillRule;
  1.1444 +	};
  1.1445 +struct TWsGcCmdStartSegmentedDrawPolygon
  1.1446 +	{
  1.1447 +	TInt totalNumPoints;
  1.1448 +	};
  1.1449 +struct TWsGcCmdSegmentedDrawPolygonData
  1.1450 +	{
  1.1451 +	const TDesC8 *points;
  1.1452 +	TInt index;
  1.1453 +	TInt numPoints;
  1.1454 +	};
  1.1455 +struct TWsGcCmdDrawSegmentedPolygon
  1.1456 +	{
  1.1457 +	CGraphicsContext::TFillRule fillRule;
  1.1458 +	};
  1.1459 +struct TWsGcCmdDrawPolygonLocal
  1.1460 +	{
  1.1461 +	const CArrayFix<TPoint> *pointList;
  1.1462 +	CGraphicsContext::TFillRule fillRule;
  1.1463 +	};
  1.1464 +struct TWsGcCmdDrawPolygonLocalBufLen
  1.1465 +	{
  1.1466 +	inline TWsGcCmdDrawPolygonLocalBufLen(const TPoint *aPointList,TInt aNumPoints, CGraphicsContext::TFillRule aFillRule);
  1.1467 +	const TPoint *points;
  1.1468 +	TInt length;
  1.1469 +	CGraphicsContext::TFillRule fillRule;
  1.1470 +	};
  1.1471 +struct TWsGcCmdDrawPolyLineLocalBufLen
  1.1472 +	{
  1.1473 +	inline TWsGcCmdDrawPolyLineLocalBufLen(const TPoint *aPointList,TInt aNumPoints);
  1.1474 +	const TPoint *points;
  1.1475 +	TInt length;
  1.1476 +	};
  1.1477 +struct TWsGcCmdDrawBitmap
  1.1478 +	{
  1.1479 +	inline TWsGcCmdDrawBitmap(const TPoint &aPoint,TInt aHandle);
  1.1480 +	TInt handle;
  1.1481 +	TPoint pos;
  1.1482 +	};
  1.1483 +struct TWsGcCmdDrawBitmap2
  1.1484 +	{
  1.1485 +	inline TWsGcCmdDrawBitmap2(const TRect &aRect,TInt aHandle);
  1.1486 +	TInt handle;
  1.1487 +	TRect rect;
  1.1488 +	};
  1.1489 +struct TWsGcCmdDrawBitmap3
  1.1490 +	{
  1.1491 +	inline TWsGcCmdDrawBitmap3(const TRect &aRect,TInt aHandle,const TRect &aSrcRect);
  1.1492 +	TInt handle;
  1.1493 +	TRect rect;
  1.1494 +	TRect srcRect;
  1.1495 +	};
  1.1496 +struct TWsGcCmdDrawBitmapMasked
  1.1497 +	{
  1.1498 +	inline TWsGcCmdDrawBitmapMasked(const TRect &aDestRect,TInt aHandle,const TRect& aSrcRect,TInt aMaskHandle,TBool aInvertMask);
  1.1499 +	TInt iHandle;
  1.1500 +	TInt iMaskHandle;
  1.1501 +	TRect iRect;
  1.1502 +	TRect iSrcRect;
  1.1503 +	TBool iInvertMask;
  1.1504 +	};
  1.1505 +struct TWsGcCmdDrawBitmapLocal
  1.1506 +	{
  1.1507 +	inline TWsGcCmdDrawBitmapLocal(const TPoint &aPos,const CFbsBitmap *aBitmap);
  1.1508 +	const CFbsBitmap *bitmap;
  1.1509 +	TPoint pos;
  1.1510 +	};
  1.1511 +struct TWsGcCmdDrawBitmap2Local
  1.1512 +	{
  1.1513 +	inline TWsGcCmdDrawBitmap2Local(const TRect &aRect,const CFbsBitmap *aBitmap);
  1.1514 +	const CFbsBitmap *bitmap;
  1.1515 +	TRect rect;
  1.1516 +	};
  1.1517 +struct TWsGcCmdDrawBitmap3Local
  1.1518 +	{
  1.1519 +	inline TWsGcCmdDrawBitmap3Local(const TRect &aRect,const CFbsBitmap *aBitmap, const TRect &aSrcRect);
  1.1520 +	const CFbsBitmap *bitmap;
  1.1521 +	TRect rect;
  1.1522 +	TRect srcRect;
  1.1523 +	};
  1.1524 +struct TWsGcCmdDrawBitmapMaskedLocal
  1.1525 +	{
  1.1526 +	inline TWsGcCmdDrawBitmapMaskedLocal(const TRect &aDestRect,const CFbsBitmap* aBitmap,const TRect& aSrcRect,const CFbsBitmap* aMaskBitmap,TBool aInvertMask);
  1.1527 +	const CFbsBitmap* iBitmap;
  1.1528 +	const CFbsBitmap* iMaskBitmap;
  1.1529 +	TRect iRect;
  1.1530 +	TRect iSrcRect;
  1.1531 +	TBool iInvertMask;
  1.1532 +	};
  1.1533 +struct TWsGcCmdCopyRect
  1.1534 +	{
  1.1535 +	inline TWsGcCmdCopyRect(const TPoint &anOffset,const TRect &aRect);
  1.1536 +	TRect rect;		// Must be first
  1.1537 +	TPoint pos;
  1.1538 +	};
  1.1539 +struct TWsGcCmdGdiBlt2
  1.1540 +	{
  1.1541 +	inline TWsGcCmdGdiBlt2(const TPoint &aPoint, TInt aHandle);
  1.1542 +	TInt handle;
  1.1543 +	TPoint pos;
  1.1544 +	};
  1.1545 +struct TWsGcCmdGdiBlt3
  1.1546 +	{
  1.1547 +	inline TWsGcCmdGdiBlt3(const TPoint &aPoint, TInt aHandle, const TRect &aSrcRect);
  1.1548 +	TInt handle;
  1.1549 +	TPoint pos;
  1.1550 +	TRect rect;
  1.1551 +	};
  1.1552 +struct TWsGcCmdGdiBlt2Local
  1.1553 +	{
  1.1554 +	inline TWsGcCmdGdiBlt2Local(const TPoint &aPoint,const CFbsBitmap *aBitmap);
  1.1555 +	const CFbsBitmap *bitmap;
  1.1556 +	TPoint pos;
  1.1557 +	};
  1.1558 +struct TWsGcCmdGdiBlt3Local
  1.1559 +	{
  1.1560 +	inline TWsGcCmdGdiBlt3Local(const TPoint &aDestination,const CFbsBitmap *aBitmap,const TRect &aSource);
  1.1561 +	const CFbsBitmap *bitmap;
  1.1562 +	TPoint pos;
  1.1563 +	TRect rect;
  1.1564 +	};
  1.1565 +struct TWsGcCmdGdiBltMaskedLocal
  1.1566 +	{
  1.1567 +	inline TWsGcCmdGdiBltMaskedLocal(const TPoint& aPoint,const CFbsBitmap* aBitmap,const TRect& aSourceRect,const CFbsBitmap* aMaskBitmap,TBool aInvertMask);
  1.1568 +	const CFbsBitmap *bitmap;
  1.1569 +	const CFbsBitmap *maskBitmap;
  1.1570 +	TBool invertMask;
  1.1571 +	TPoint pos;
  1.1572 +	TRect rect;
  1.1573 +	};
  1.1574 +struct TWsGcCmdUsePatternBrush
  1.1575 +    {
  1.1576 +    TRgb *pdata;
  1.1577 +    TInt width;
  1.1578 +    TInt height;
  1.1579 +    TBool color;
  1.1580 +	};
  1.1581 +struct TWsGcCmdBltMasked
  1.1582 +	{
  1.1583 +	inline TWsGcCmdBltMasked();
  1.1584 +	inline TWsGcCmdBltMasked(const TPoint& aPoint,TInt aBitmap,const TRect& aSourceRect,TInt aMaskBitmap,TBool aInvertMask);
  1.1585 +	TPoint destination;
  1.1586 +	TInt handle;
  1.1587 +	TRect source;
  1.1588 +	TInt maskHandle;
  1.1589 +	TBool invertMask;
  1.1590 +	};
  1.1591 +struct TWsGcCmdAlphaBlendBitmaps
  1.1592 +	{
  1.1593 +	inline TWsGcCmdAlphaBlendBitmaps();
  1.1594 +	inline TWsGcCmdAlphaBlendBitmaps(const TPoint& aPoint, TInt aBitmap,const TRect& aSourceRect,TInt aAlpha,const TPoint& aAlphaPoint);
  1.1595 +	TPoint point;
  1.1596 +	TInt bitmapHandle;
  1.1597 +	TRect source;
  1.1598 +	TInt alphaHandle;
  1.1599 +	TPoint alphaPoint;
  1.1600 +	};
  1.1601 +
  1.1602 +struct TWsGcCmdAlphaBlendBitmapsLocal
  1.1603 +	{
  1.1604 +	inline TWsGcCmdAlphaBlendBitmapsLocal(const TPoint& aPoint, const CFbsBitmap* aBitmap, const TRect& aSourceRect, const CFbsBitmap* aAlpha, const TPoint& aAlphaPoint);
  1.1605 +	TPoint point;
  1.1606 +	const CFbsBitmap *iBitmap;
  1.1607 +	TRect source;
  1.1608 +	const CFbsBitmap *iAlpha;
  1.1609 +	TPoint alphaPoint;
  1.1610 +	};
  1.1611 +	
  1.1612 +struct TWsGcCmdMapColors
  1.1613 +	{
  1.1614 +	inline TWsGcCmdMapColors(const TRect &aRect, TInt aNumPairs, TBool aMapForwards);
  1.1615 +	TRect rect;
  1.1616 +	TInt numPairs;
  1.1617 +	TBool mapForwards;
  1.1618 +	};
  1.1619 +	
  1.1620 +struct TWsGcCmdMapColorsLocal
  1.1621 +	{
  1.1622 +	inline TWsGcCmdMapColorsLocal(const TRect &aRect, const TRgb* aColors, TInt aNumPairs, TBool aMapForwards);
  1.1623 +	TRect rect;
  1.1624 +	const TRgb *colors;
  1.1625 +	TInt numPairs;
  1.1626 +	TBool mapForwards;
  1.1627 +	};
  1.1628 +	
  1.1629 +struct TWsGcCmdDrawWsGraphic
  1.1630 +	{
  1.1631 +	inline TWsGcCmdDrawWsGraphic(const TWsGraphicId& aId,const TRect& aRect);
  1.1632 +	TUint iFlags; // TWsGraphicBitFlags
  1.1633 +	TInt iId;
  1.1634 +	TRect iRect;
  1.1635 +	TInt iDataLen;
  1.1636 +	};
  1.1637 +struct TWsGcCmdDrawTextInContext
  1.1638 +	{
  1.1639 +	inline TWsGcCmdDrawTextInContext(const TPoint &aPos, TInt aLength, TInt aStart, TInt aEnd);
  1.1640 +	TPoint pos;
  1.1641 +	TInt length;
  1.1642 +	TInt start;
  1.1643 +	TInt end;
  1.1644 +	};
  1.1645 +struct TWsGcCmdDrawTextInContextPtr
  1.1646 +	{
  1.1647 +	TPoint pos;
  1.1648 +	TDesC *text;
  1.1649 +	TInt start;
  1.1650 +	TInt end;
  1.1651 +	};
  1.1652 +struct TWsGcCmdDrawTextInContextVertical
  1.1653 +	{
  1.1654 +	inline TWsGcCmdDrawTextInContextVertical(const TPoint &aPos, TInt aLength, TBool aUp, TInt aStart, TInt aEnd);
  1.1655 +	TPoint pos;
  1.1656 +	TInt length;
  1.1657 +	TBool up;
  1.1658 +	TInt start;
  1.1659 +	TInt end;
  1.1660 +	};
  1.1661 +struct TWsGcCmdDrawTextInContextVerticalPtr
  1.1662 +	{
  1.1663 +	TPoint pos;
  1.1664 +	TBool up;
  1.1665 +	TDesC *text;
  1.1666 +	TInt start;
  1.1667 +	TInt end;
  1.1668 +	inline TWsGcCmdDrawTextInContextVerticalPtr(const TDesC *aDesc, const TPoint& aPos, const TBool aUp, const TInt aStart, const TInt aEnd);
  1.1669 +	};
  1.1670 +struct TWsGcCmdDrawTextInContextLocal
  1.1671 +	{
  1.1672 +	inline TWsGcCmdDrawTextInContextLocal(const TPoint &aPos,const TDesC *aDesc,const TInt aStart,const TInt aEnd);
  1.1673 +	TPoint pos;
  1.1674 +	const TDesC *desc;
  1.1675 +	TInt start;
  1.1676 +	TInt end;
  1.1677 +	};
  1.1678 +struct TWsGcCmdBoxTextInContextOptimised1
  1.1679 +	{
  1.1680 +	inline TWsGcCmdBoxTextInContextOptimised1(const TRect &aRect,TInt aBaselineOffset,TInt alength, TInt aStart, TInt aEnd);
  1.1681 +	TRect box;
  1.1682 +	TInt baselineOffset;
  1.1683 +	TInt length;
  1.1684 +	TInt start;
  1.1685 +	TInt end;
  1.1686 +	};
  1.1687 +struct TWsGcCmdBoxTextInContextOptimised2
  1.1688 +	{
  1.1689 +	inline TWsGcCmdBoxTextInContextOptimised2(const TRect &aRect,TInt aBaselineOffset,CGraphicsContext::TTextAlign aHoriz,TInt aLeftMrg,TInt aLength, TInt aStart, TInt aEnd);
  1.1690 +	TRect box;
  1.1691 +	TInt baselineOffset;
  1.1692 +	CGraphicsContext::TTextAlign horiz;
  1.1693 +	TInt leftMrg;
  1.1694 +	TInt length;
  1.1695 +	TInt start;
  1.1696 +	TInt end;
  1.1697 +	};
  1.1698 +struct TWsGcCmdBoxTextInContext
  1.1699 +	{
  1.1700 +	inline TWsGcCmdBoxTextInContext(const TRect &aRect,TInt aBaselineOffset,CGraphicsContext::TTextAlign aHoriz,TInt aLeftMrg,TInt aLength,TInt aWidth, TInt aStart, TInt aEnd);
  1.1701 +	TRect box;
  1.1702 +	TInt baselineOffset;
  1.1703 +	CGraphicsContext::TTextAlign horiz;
  1.1704 +	TInt leftMrg;
  1.1705 +	TInt length;
  1.1706 +	TInt width;
  1.1707 +	TInt start;
  1.1708 +	TInt end;
  1.1709 +	};
  1.1710 +struct TWsGcCmdBoxTextInContextPtr
  1.1711 +	{
  1.1712 +	TRect box;
  1.1713 +	TInt baselineOffset;
  1.1714 +	CGraphicsContext::TTextAlign horiz;
  1.1715 +	TInt leftMrg;
  1.1716 +	TInt width;
  1.1717 +	TDesC *text;
  1.1718 +	TInt start;
  1.1719 +	TInt end;
  1.1720 +	};
  1.1721 +struct TWsGcCmdBoxTextInContextVertical
  1.1722 +	{
  1.1723 +	inline TWsGcCmdBoxTextInContextVertical(const TRect& aBox);
  1.1724 +	TRect box;
  1.1725 +	TInt baselineOffset;
  1.1726 +	TBool up;
  1.1727 +	CGraphicsContext::TTextAlign vert;
  1.1728 +	TInt margin;
  1.1729 +	TInt length;
  1.1730 +	TInt width;
  1.1731 +	TInt start;
  1.1732 +	TInt end;
  1.1733 +	};
  1.1734 +struct TWsGcCmdBoxTextInContextVerticalPtr
  1.1735 +	{
  1.1736 +	TRect box;
  1.1737 +	TInt baselineOffset;
  1.1738 +	TBool up;
  1.1739 +	CGraphicsContext::TTextAlign vert;
  1.1740 +	TInt margin;
  1.1741 +	TInt width;
  1.1742 +	TInt start;
  1.1743 +	TInt end;
  1.1744 +	TDesC *text;
  1.1745 +	};
  1.1746 +struct TWsGcCmdBoxTextInContextLocal
  1.1747 +	{
  1.1748 +	inline TWsGcCmdBoxTextInContextLocal(const TRect &aBox,TInt aStart,TInt aEnd);
  1.1749 +	TRect box;
  1.1750 +	TInt baselineOffset;
  1.1751 +	CGraphicsContext::TTextAlign horiz;
  1.1752 +	TInt leftMrg;
  1.1753 +	TInt start;
  1.1754 +	TInt end;
  1.1755 +	const TDesC *desc;
  1.1756 +	};
  1.1757 +struct TWsGcCmdDrawResourceToPos
  1.1758 +	{
  1.1759 +	inline TWsGcCmdDrawResourceToPos(TInt aWsHandle, const TPoint &aPos, CWindowGc::TGraphicsRotation aRotation);
  1.1760 +	TInt wsHandle;
  1.1761 +	TPoint pos;
  1.1762 +	CWindowGc::TGraphicsRotation rotation;
  1.1763 +	};
  1.1764 +struct TWsGcCmdDrawResourceToRect
  1.1765 +	{
  1.1766 +	inline TWsGcCmdDrawResourceToRect(TInt aWsHandle, const TRect &aRect, CWindowGc::TGraphicsRotation aRotation);
  1.1767 +	TInt wsHandle;
  1.1768 +	TRect rect;
  1.1769 +	CWindowGc::TGraphicsRotation rotation;
  1.1770 +	};
  1.1771 +struct TWsGcCmdDrawResourceFromRectToRect
  1.1772 +	{
  1.1773 +	inline TWsGcCmdDrawResourceFromRectToRect(TInt aWsHandle, const TRect &aRectDest, const TRect &aRectSrc, CWindowGc::TGraphicsRotation aRotation);
  1.1774 +	TInt wsHandle;
  1.1775 +	TRect rectDest;
  1.1776 +	TRect rectSrc;
  1.1777 +	CWindowGc::TGraphicsRotation rotation;
  1.1778 +	};
  1.1779 +struct TWsGcCmdDrawResourceWithData
  1.1780 +	{
  1.1781 +	inline TWsGcCmdDrawResourceWithData(TInt aWsHandle, const TRect &aRect, const TDesC8* aDesc);
  1.1782 +	TInt wsHandle;
  1.1783 +	TRect rect;
  1.1784 +	const TDesC8* desc;
  1.1785 +	};
  1.1786 +
  1.1787 +union TWsGcCmdUnion
  1.1788 +	{
  1.1789 +	const TAny *any;
  1.1790 +	const TAny **pAny;
  1.1791 +	const TRect *Rect;
  1.1792 +	const TUint *UInt;
  1.1793 +	const TInt *Int;
  1.1794 +	const TInt *handle;
  1.1795 +	const TBool *Bool;
  1.1796 +	const TRgb *rgb;
  1.1797 +	const TPoint *Point;
  1.1798 +	const TSize *Size;
  1.1799 +	const TFontUnderline *SetUnderlineStyle;
  1.1800 +	const TFontStrikethrough *SetStrikethroughStyle;
  1.1801 +	const TWsGcCmdDrawText *DrawText;
  1.1802 +	const TWsGcCmdDrawTextInContext *DrawTextInContext;
  1.1803 +	const TWsGcCmdDrawTextVertical *DrawTextVertical;
  1.1804 +	const TWsGcCmdDrawTextInContextVertical *DrawTextInContextVertical;
  1.1805 +	const TWsGcCmdDrawLine *DrawLine;
  1.1806 +	const TWsGcCmdDrawPolyLine *PolyLine;
  1.1807 +	const TWsGcCmdStartSegmentedDrawPolygon *StartSegmentedDrawPolygon;
  1.1808 +	const TWsGcCmdSegmentedDrawPolygonData *SegmentedDrawPolygonData;
  1.1809 +	const TWsGcCmdDrawSegmentedPolygon *DrawSegmentedPolygon;
  1.1810 +	const TWsGcCmdDrawPolygonLocal *DrawPolygonLocal;
  1.1811 +	const TWsGcCmdDrawPolygonLocalBufLen *DrawPolygonLocalBufLen;
  1.1812 +	const TWsGcCmdDrawPolyLineLocalBufLen *DrawPolyLineLocalBufLen;
  1.1813 +	const TWsGcCmdDrawArcOrPie *ArcOrPie;
  1.1814 +	const TWsGcCmdDrawRoundRect *RoundRect;
  1.1815 +	const TWsGcCmdDrawPolygon *Polygon;
  1.1816 +	const TWsGcCmdDrawBitmap *Bitmap;
  1.1817 +	const TWsGcCmdDrawBitmap2 *Bitmap2;
  1.1818 +	const TWsGcCmdDrawBitmap3 *Bitmap3;
  1.1819 +	const TWsGcCmdDrawBitmapMasked* iBitmapMasked;
  1.1820 +	const TWsGcCmdCopyRect *CopyRect;
  1.1821 +	const TWsGcCmdGdiBlt2 *GdiBlt2;
  1.1822 +	const TWsGcCmdGdiBlt3 *GdiBlt3;
  1.1823 +	const TWsGcCmdUsePatternBrush *UsePatternBrush;
  1.1824 +	const TWsGcCmdBltMasked *GdiBltMasked;
  1.1825 +	const TWsGcCmdSetClippingRegion *SetClippingRegion;
  1.1826 +	const TWsGcCmdBoxText *BoxText;
  1.1827 +	const TWsGcCmdBoxTextInContext *BoxTextInContext;
  1.1828 +	const TWsGcCmdBoxTextOptimised1 *BoxTextO1;
  1.1829 +	const TWsGcCmdBoxTextOptimised2 *BoxTextO2;
  1.1830 +	const TWsGcCmdBoxTextInContextOptimised1 *BoxTextInContextO1;
  1.1831 +	const TWsGcCmdBoxTextInContextOptimised2 *BoxTextInContextO2;
  1.1832 +	const TWsGcCmdDrawTextLocal *DrawTextLocal;
  1.1833 +	const TWsGcCmdDrawTextInContextLocal *DrawTextInContextLocal;
  1.1834 +	const TWsGcCmdBoxTextVertical *DrawBoxTextVertical;
  1.1835 +	const TWsGcCmdBoxTextInContextVertical *DrawBoxTextInContextVertical;
  1.1836 +	const TWsGcCmdBoxTextLocal *BoxTextLocal;
  1.1837 +	const TWsGcCmdBoxTextInContextLocal *BoxTextInContextLocal;
  1.1838 +	const TWsGcCmdGdiBlt2Local *GdiBlt2Local;
  1.1839 +	const TWsGcCmdGdiBlt3Local *GdiBlt3Local;
  1.1840 +	const TWsGcCmdGdiBltMaskedLocal *GdiBltMaskedLocal;
  1.1841 +	const TWsGcCmdDrawBitmapLocal *BitmapLocal;
  1.1842 +	const TWsGcCmdDrawBitmap2Local *Bitmap2Local;
  1.1843 +	const TWsGcCmdDrawBitmap3Local *Bitmap3Local;
  1.1844 +	const TWsGcCmdDrawBitmapMaskedLocal* iBitmapMaskedLocal;
  1.1845 +	const CArrayFix<TPoint> *PointList;
  1.1846 +	const TWsGcCmdSetJustification *SetJustification;
  1.1847 +	const TWsGcCmdMapColors *MapColors;
  1.1848 +	TWsGcCmdDrawTextPtr *DrawTextPtr;
  1.1849 +	TWsGcCmdDrawTextVerticalPtr *DrawTextVerticalPtr;
  1.1850 +	TWsGcCmdDrawTextInContextVerticalPtr *DrawTextInContextVerticalPtr;
  1.1851 +	TWsGcCmdBoxTextPtr *DrawBoxTextPtr;
  1.1852 +	TWsGcCmdBoxTextInContextPtr *DrawBoxTextInContextPtr;
  1.1853 +	TWsGcCmdBoxTextVerticalPtr *DrawBoxTextVerticalPtr;
  1.1854 +	TWsGcCmdBoxTextInContextVerticalPtr *DrawBoxTextInContextVerticalPtr;
  1.1855 +	TWsGcCmdDrawTextInContextPtr *DrawTextInContextPtr;
  1.1856 +	const TWsGcLargeStruct *LargeStruct;
  1.1857 +	const TWsGcCmdAlphaBlendBitmaps *AlphaBlendBitmaps;
  1.1858 +	const TWsGcCmdAlphaBlendBitmapsLocal *AlphaBlendBitmapsLocal;
  1.1859 +	const TWsGcCmdMapColorsLocal *MapColorsLocal;
  1.1860 +	const TWsGcCmdDrawWsGraphic* WsGraphic;
  1.1861 +	const TWsGcCmdDrawResourceToPos* DrawWsResourceToPos;
  1.1862 +	const TWsGcCmdDrawResourceToRect* DrawWsResourceToRect;
  1.1863 +	const TWsGcCmdDrawResourceFromRectToRect* DrawWsResourceFromRectToRect;
  1.1864 +	const TWsGcCmdDrawResourceWithData* DrawWsResourceWithData;
  1.1865 +	};
  1.1866 +
  1.1867 +struct TWsSdCmdSetScreenRotation
  1.1868 +	{
  1.1869 +	inline TWsSdCmdSetScreenRotation(TInt aMode, CFbsBitGc::TGraphicsOrientation aRotation);
  1.1870 +	TInt mode;
  1.1871 +	CFbsBitGc::TGraphicsOrientation rotation;
  1.1872 +	};
  1.1873 +struct TWsSdCmdGetScanLine
  1.1874 +	{
  1.1875 +	inline TWsSdCmdGetScanLine(const TPoint &aPos, TInt aLen, TDisplayMode aDispMode);
  1.1876 +	TPoint pos;
  1.1877 +	TInt len;
  1.1878 +	TDisplayMode dispMode;
  1.1879 +	};
  1.1880 +struct TWsSdCmdRectCompare
  1.1881 +	{
  1.1882 +	inline TWsSdCmdRectCompare(const TRect &aRect1,const TRect &aRect2,TUint aFlags);
  1.1883 +	TRect rect1;
  1.1884 +	TRect rect2;
  1.1885 +	TUint flags;
  1.1886 +	};
  1.1887 +struct TWsSdCmdCopyScreenToBitmap
  1.1888 +	{
  1.1889 +	inline TWsSdCmdCopyScreenToBitmap(TInt aHandle);
  1.1890 +	TInt handle;
  1.1891 +	};
  1.1892 +struct TWsSdCmdCopyScreenToBitmap2
  1.1893 +	{
  1.1894 +	inline TWsSdCmdCopyScreenToBitmap2(const TRect &aRect, TInt aHandle);
  1.1895 +	TRect rect;
  1.1896 +	TInt handle;
  1.1897 +	};
  1.1898 +struct TWsSdCmdSetPalette
  1.1899 +	{
  1.1900 +	inline TWsSdCmdSetPalette(TPtr8& aPtr);
  1.1901 +	TPtr8* ptr;
  1.1902 +	TInt length;
  1.1903 +	};
  1.1904 +struct TWsSdCmdMapCoordinates
  1.1905 +	{
  1.1906 +	inline TWsSdCmdMapCoordinates(const TRect &aSource, TCoordinateSpace aSourceSpace, TCoordinateSpace aTargetSpace);
  1.1907 +	TRect sourceRect;
  1.1908 +	TCoordinateSpace sourceSpace;
  1.1909 +	TCoordinateSpace targetSpace;
  1.1910 +	};
  1.1911 +union TWsSdCmdUnion
  1.1912 +	{
  1.1913 +	const TAny *any;
  1.1914 +	const TAny **pAny;
  1.1915 +	const TUint *UInt;
  1.1916 +	const TInt *Int;
  1.1917 +	const TPoint *Point;
  1.1918 +	const TPixelsTwipsAndRotation *PixelsTwipsAndRotation;
  1.1919 +	const TPixelsAndRotation *PixelsAndRotation;
  1.1920 +	const TWsSdCmdSetScreenRotation *SetScreenRotation;
  1.1921 +	const TWsSdCmdGetScanLine *GetScanLine;
  1.1922 +	const TWsSdCmdRectCompare *RectCompare;
  1.1923 +	const TWsSdCmdCopyScreenToBitmap *CopyScreenToBitmap;
  1.1924 +	const TWsSdCmdCopyScreenToBitmap2 *CopyScreenToBitmap2;
  1.1925 +	const TWsSdCmdSetPalette *SetPalette;
  1.1926 +	const TSizeMode *ScreenSizeMode;
  1.1927 +	const TDisplayConfiguration *DisplayConfiguration;
  1.1928 +	const TWsSdCmdMapCoordinates *MapCoordinates;
  1.1929 +	};
  1.1930 +
  1.1931 +union TWsAnimDllCmdUnion 
  1.1932 +	{
  1.1933 +	const TAny *any;
  1.1934 +	const TUint *UInt;
  1.1935 +	};
  1.1936 +
  1.1937 +struct TWsSpriteCmdUpdateMember
  1.1938 +	{
  1.1939 +	inline TWsSpriteCmdUpdateMember(TInt aIndex,const TSpriteMember &aData);
  1.1940 +	TInt index;
  1.1941 +	TCmdSpriteMember data;
  1.1942 +	};
  1.1943 +union TWsSpriteCmdUnion
  1.1944 +	{
  1.1945 +	const TAny *any;
  1.1946 +	const TPoint *Point;
  1.1947 +	const TCmdSpriteMember *SpriteMember;
  1.1948 +	const TWsSpriteCmdUpdateMember *UpdateMember;
  1.1949 +	};
  1.1950 +
  1.1951 +struct TWsDirectCmdRequestReply
  1.1952 +	{
  1.1953 +	inline TWsDirectCmdRequestReply();
  1.1954 +	inline TWsDirectCmdRequestReply(TThreadId aId,TRequestStatus* aRequest);
  1.1955 +	TThreadId id;
  1.1956 +	TRequestStatus* request;
  1.1957 +	};
  1.1958 +union TWsDirectCmdUnion
  1.1959 +	{
  1.1960 +	const TAny *any;
  1.1961 +	const TInt *Int;
  1.1962 +	};
  1.1963 +
  1.1964 +union TWsClickCmdUnion
  1.1965 +	{
  1.1966 +	const TAny *any;
  1.1967 +	const TInt *Int;
  1.1968 +	const TBool *Bool;
  1.1969 +	};
  1.1970 +
  1.1971 +// Client side Panics and asserts
  1.1972 +
  1.1973 +enum TW32Assert	// used for w32 code errors
  1.1974 +	{
  1.1975 +	EW32AssertOddLengthData,
  1.1976 +	EW32AssertNotImplemented,
  1.1977 +	EW32AssertIllegalOpcode,
  1.1978 +	EW32AssertDirectMisuse,
  1.1979 +	EW32AssertBufferLogic,
  1.1980 +	EW32AssertUnexpectedOutOfRangePointerNumber, // Used for an out-of-range pointer number error within the old API's which doesn't take a pointer number.
  1.1981 +	EW32AssertWindowSizeCacheFailure,
  1.1982 +	};
  1.1983 +
  1.1984 +enum TW32Panic // used for application errors
  1.1985 +	{
  1.1986 +	EW32PanicReConnect,		//An attempt was made to reconnect to the window server using RWsSession::Connect() without having closed the existing one first
  1.1987 +	EW32PanicWindowAlreadyClosed,		//Not used
  1.1988 +	EW32PanicGcAlreadyClosed,		//Not used
  1.1989 +	EW32PanicPaletteAlreadyClosed,		//Not used
  1.1990 +	EW32PanicMapColorsTooManyPairs,		//Raised by CWindowGc::MapColors() when its aNumPairs argument has a value greater than 16.
  1.1991 +	EW32PanicDataExceedsBufferLength,		//A single string is too long to fit into the buffer.
  1.1992 +	EW32PanicNullPalette,		//CWsScreenDevice::SetCustomPalette() was called with a NULL pointer.
  1.1993 +	EW32PanicSilentFail,		//The caller would not know that the function was not successful
  1.1994 +	EW32PanicDirectMisuse,		//A direct screen access function is being called out of turn
  1.1995 +	EW32PanicInvalidRegion,        //An attempt to pass an invalid region to window server
  1.1996 +	EW32PanicUsingReservedIpcSlot,		//Raised when the Client is trying to use a wrong IpcSlot. The first slot if raised by: RAnim::CommandReply or RAnimDll::Construct. Either the first or the second if raised by RAnim::AsyncCommandReply
  1.1997 +	EW32PanicNullArray,        //A Function has been called with a NULL array pointer when it should not be
  1.1998 +	EW32PanicGraphicAlreadyConstructed,        //Not used
  1.1999 +	EW32PanicGraphicOrphaned,		//The CWsGraphic::CManager's RPointerArray<CWsGraphic> has still pointers to CWsGraphic left inside when it should be empty
  1.2000 +	EW32PanicGraphicInternal,		//Raised when one of the CWsGraphic::CManager's member has an inconsistent value (i.e. NULL when it should not be and viceversa)
  1.2001 +	EW32PanicGraphicBadBuffer,		//Raised if RWsGraphicMsgBuf has been passed an out of bounds index or an incorret type message
  1.2002 +	EW32PanicGraphicNullData,		//Raised when trying to send an empty TWsClCmdGdSendMessage
  1.2003 +	EW32PanicFunctionNotSupported,	//Operation not supported in the current OS distribution
  1.2004 +	EW32PanicInvalidParameter,		// Raised when an invalid parameter is passed to a function 
  1.2005 +	EW32PanicGraphicDoubleConstruction,		//Raised when Construct() is called on an already constructed client-side object
  1.2006 +	EW32PanicBadClientInterface,	//Debug: Trying to use an interface that is not initialised 
  1.2007 +	EW32PanicSizeNotExpected,		//Debug: Returned data does not match expected sizes or granularity
  1.2008 +	EW32PanicStringTooLong,			//A string is longer than it is allowed to be
  1.2009 +	};
  1.2010 +
  1.2011 +enum WservShutdown
  1.2012 +	{EWservShutdownCheck=0x13572468};	// Parameter to EWservMessShutdown to stop accidental shutdowns
  1.2013 +
  1.2014 +enum WservMessages
  1.2015 +	{
  1.2016 +	EWservMessCommandBuffer,
  1.2017 +	EWservMessShutdown,
  1.2018 +	EWservMessInit,
  1.2019 +	EWservMessFinish,	
  1.2020 +	EWservMessSyncMsgBuf,
  1.2021 +	EWservMessAsynchronousService=0x010000,
  1.2022 +	EWservMessAnimDllAsyncCommand=0x100000,
  1.2023 +	};
  1.2024 +
  1.2025 +enum WH_HANDLES
  1.2026 +	{
  1.2027 +	WS_HANDLE_ROOT_WINDOW,
  1.2028 +	WS_HANDLE_CLIENT,
  1.2029 +	WS_HANDLE_WINDOW,
  1.2030 +	WS_HANDLE_GROUP_WINDOW,
  1.2031 +	WS_HANDLE_GC,
  1.2032 +	WS_HANDLE_CAPTURE_KEY,
  1.2033 +	WS_HANDLE_ANIM_DLL,
  1.2034 +	WS_HANDLE_SCREEN_DEVICE,
  1.2035 +	WS_HANDLE_SPRITE,
  1.2036 +	WS_HANDLE_POINTER_CURSOR,
  1.2037 +	WS_HANDLE_BITMAP,
  1.2038 +	WS_HANDLE_DIRECT,
  1.2039 +	WS_HANDLE_CLICK,
  1.2040 +	WS_HANDLE_TEXT_CURSOR,
  1.2041 +	WS_HANDLE_GRAPHIC_DRAWER,
  1.2042 +	WS_HANDLE_DRAWABLE_SOURCE,
  1.2043 +	WS_HANDLE_CAPTURE_KEY_UPDOWNS,
  1.2044 +	WS_HANDLE_CAPTURE_LONG_KEY,
  1.2045 +	};
  1.2046 +
  1.2047 +enum TClientPanic
  1.2048 +	{
  1.2049 +	EWservNoPanic=0,						// Dummy Value used to indicate no panic
  1.2050 +	EWservPanicOpcode=1,					// Out of range opcode
  1.2051 +	EWservPanicBuffer=2,					// Invalid command buffer
  1.2052 +	EWservPanicHandle=3,					// Invalid handle
  1.2053 +	EWservPanicNullHandle=4,				// Null handle given as a handle value
  1.2054 +	EWservPanicDrawable=5,					// Invalid drawable handle
  1.2055 +	EWservPanicWindow=6,					// Invalid window handle
  1.2056 +	EWservPanicBitmap=7,					// Invalid bitmap handle
  1.2057 +	EWservPanicReadOutstanding=8,			// Event read already outstanding
  1.2058 +	EWservPanicGcNotActive=9,				// Tried use a non-active GC
  1.2059 +	EWservPanicGcActive=10,					// Tried to activate an already active GC
  1.2060 +	EWservPanicWindowActive=11,				// Window already active
  1.2061 +	EWservPanicRedrawActive=12,				// Already inside a begin/end redraw pair
  1.2062 +	EWservPanicFont=13,						// Invalid font handle
  1.2063 +	EWservPanicNoFont=14,					// Printing with no active font
  1.2064 +	EWservPanicInvalidTextCursor=15,		// Tried to set invalid text cursor type
  1.2065 +	EWservPanicReadOnlyDrawable=16,			// Attempted to write to a read only drawable
  1.2066 +	EWservPanicInvalidRgb=17,				// Invalid RGB passed to window server
  1.2067 +	EWservPanicPatternBrush=18,				// Invalid pattern brush
  1.2068 +	EWservPanicNoBrush=19,					// Trying to paint without a brush
  1.2069 +	EWservPanicUninitialisedBitmap=20,		// Trying to use an uninitialised bitmap
  1.2070 +	EWservPanicDestroy=21,					// Trying to do a client destroy function on an illegal handle
  1.2071 +	EWservPanicAnimDll=22,					// Panic from Animator DLL
  1.2072 +	EWservPanicAnim=23,						// Invalid Anim object handle
  1.2073 +	EWservPanicAnimLeave=24,				// Leave from a non-leaving anim function
  1.2074 +	EWservPanicKeyOfDeath=25,				// Killed by the key of death!!!!
  1.2075 +	EWservPanicTmpFont=26,					// Tried to reuse tmp font
  1.2076 +	EWservPanicNoTmpFont=27,				// Tried to free tmp font when not allocated
  1.2077 +	EWservPanicBadPolyData=28,				// Inconsistent polygon/polyline data
  1.2078 +	EWservPanicNegativeShadowHeight=29,		// Tried to set a negative shadow height
  1.2079 +	EWservPanicRedrawToNonRedrawWindow=30,	// Tried to redraw a non-redrawable window
  1.2080 +	EWservPanicRedrawType=31,				// Init message contained invalid redraw type
  1.2081 +	EWservPanicInvalidRegionCount=32,		// InvalidRegion was passed a zero count
  1.2082 +	EWservPanicNoReplyBuffer=33,			// No reply buffer was passed to a function that requires one
  1.2083 +	EWservPanicBackedUpWindowGcActive=34,	// Attempting to reactive a backed up window's GC
  1.2084 +	EWservPanicCornerParams=35,				// Invalid corner type or flags
  1.2085 +	EWservPanicBitmapAccess=36,				// Bitmap access not enabled on a backed up window
  1.2086 +	EWservPanicDescriptor=37,				// Bad descriptor passed
  1.2087 +	EWservPanicWindowDestroyed=38,			// Accessing a sprite after it's window has been destroyed
  1.2088 +	EWservPanicUnsignalledEventData=39,		// A request for event data without a signal for that data being made
  1.2089 +	EWservPanicMaskSize=40,					// The mask for a sprite is smaller then the bitmap
  1.2090 +	EWservPanicSprite=41,					// bad sprite handle
  1.2091 +	EWservPanicNotSystemPointerCursorListOwner=42,	 // Trying to set/clear a system pointer cursor when not owning the list
  1.2092 +	EWservPanicNoPointerBuffer=43,			// Enabling the pointer buffer when there isn't one allocated
  1.2093 +	EWservPanicBufferPtr=44,				// Invalid Buf,Len in the window server command buffer
  1.2094 +	EWservPanicHotKey=45,					// Invalid hot key type
  1.2095 +	EWservPanicPassword=46,					// Invalid call to PasswordEntered()
  1.2096 +	EWservPanicSetComputeMode=47,			// Invalid value in call to SetComputeMode()
  1.2097 +	EWservPanicBackupDisplayMode=48,		// Trying to set the display mode of a backed up window
  1.2098 +	EWservPanicFetchMessage=49,				// Trying to fetch a message when one has not been signalled
  1.2099 +	EWservPanicReInitialise=50,				// Client sent a second Init() message
  1.2100 +	EWservPanicNoWindowSpecifed=51,			// Trying to get off messages without specifing a window to send them to
  1.2101 +	EWservPanicParentDeleted=52,			// Setting size, pos or extent of a window whose parent or ancestor has been deleted
  1.2102 +	EWservPanicResetingDefaultOwner=53,		// Calling the function RWindowGroup::DefaultOwningWindow() twice on the same group window
  1.2103 +	EWservPanicScreenModeNumber=54,			// Calling an API function with an illegal screen size mode index
  1.2104 +	EWservPanicScreenEnforcementMode=55,	// Illegal screen mode enforcement mode
  1.2105 +	EWservPanicEventType=56,				// Must be a pointer event
  1.2106 +	EWservPanicRotation=57,					// Not valid rotation
  1.2107 +	EWservPanicNotTopClient=58,				// Can only call this on a window whoes parent is a group window
  1.2108 +	EWservPanicDirectMisuse=59,				// Trying to do things to a Direct Screen Access object in the wrong order
  1.2109 +	EWservPanicDuplicateHandle=60,			// Client Handle already in use
  1.2110 +	EWservPanicNoCustomTextCursor=61,		// The custom text cursor has not been set
  1.2111 +	EWservPanicCustomTextCursorAlign=62,	// Illegal custom text cursor allignment used
  1.2112 +	EWservPanicNoSpriteMember=63,			// Use of a sprite that does not have any member set.
  1.2113 +	EWservPanicTransparencyObjNotCreated=64,// Trying to set a transparency operation to a window that has not been enabled to be transparent.
  1.2114 +	EWservPanicScreenNumber=65,				// Calling an multiple screen API function with an illegal screen number
  1.2115 +	EWservPanicPermissionDenied=66,
  1.2116 +	EWservPanicFunctionLeave=67,			// A leave occured while processing command in the middle of the buffer
  1.2117 +	EWservPanicGroupWinScreenDeviceDeleted=68,	//Trying to use a group window with a deleted Screen Device
  1.2118 +	EWservPanicDrawCommandsInvalidState=69,	//Redraw storing cannot be disabled for transparent window
  1.2119 +	EWservPanicWsGraphic=70,				// Bad internal state in CWsGraphic code
  1.2120 +	EWservPanicUninitialisedClient=71,	 	// Tried to use an uninitialised CWsClient
  1.2121 +	EWservPanicNullMessageFromClient=72,		// Client IPC message is NULL
  1.2122 +	EWservPanicTransparencyMisuse=73,		// Incompatible use of window transparency and background surface
  1.2123 +	EWservPanic_Removed1=74,	// Panic removed in CR1489, can be reused
  1.2124 +	EWservPanicInvalidSurface=75,			// An incorrect surface type has been used
  1.2125 +	EWservPanicInvalidSurfaceConfiguration=76,	// Use of a surface configuration without valid members
  1.2126 +	EWservPanic_Removed2=77,	// Panic removed in CR1489, can be reused
  1.2127 +	EwservPanicIllegalDisplayMode=78,           // Illegal display mode is used
  1.2128 +	EWservPanicWindowBeginRedrawNotCalled=79,   // A draw operation was performed on the CWindowGc outside a RWindow::BeginRedraw() / EndRedraw() pair. Enable AutoFlush to debug.
  1.2129 +	EWservPanicInvalidParameter=80,             // General invalid parameter code for invariant checking
  1.2130 +	EWservPanicDrawableSource=81,               // Invalid drawable source handle
  1.2131 +	EWservPanicWrongScreen=82,                  // Child apps can only be constructed on the same screen as their parent. See RWindowGroup::ConstructChildApp
  1.2132 +	EWservPanicScreenCaptureInvalidRequest=83,  // With Screen Capture disabled, an unexpected invalid request has been received
  1.2133 +	EWservPanicInvalidDisplayConfiguration=84,  // Use of a display configuration without valid members
  1.2134 +	EWservPanicUnableToEnableAdvPointer=85,     // Use when advanced pointers are enabled after an RWindow is activated
  1.2135 +	};
  1.2136 +
  1.2137 +#if defined(__WINS__)
  1.2138 +	// Under WINS character code is passed in as HIWORD of the scan code,
  1.2139 +	// and will need to be removed in some situations
  1.2140 +	#define __REMOVE_WINS_CHARCODE &0x0000FFFF
  1.2141 +	#define __WINS_CHARCODE(c)	((c) & 0xFFFF0000)
  1.2142 +#else
  1.2143 +	#define __REMOVE_WINS_CHARCODE
  1.2144 +#endif
  1.2145 +
  1.2146 +class CDebugLogBase: public CBase
  1.2147 +	{
  1.2148 +public:
  1.2149 +	enum {EDummyConnectionId=0};		//This value is used to mean WSERV itself
  1.2150 +	enum
  1.2151 +		{
  1.2152 +		ELogEverything=1,	// Gives the complete WSERV client server interaction along with client logging.
  1.2153 +		ELogIntermediate=5,	// Gives the important WSERV client server interaction along with client logging.
  1.2154 +		ELogImportant=9,	// Gives logging of panics and client logging.
  1.2155 +		};
  1.2156 +public:
  1.2157 +	virtual void CommandBuf(TInt aApp)=0;
  1.2158 +	virtual void Command(TInt aClass, TInt aOpcode, const TAny *aCmdData, TInt aHandle)=0;
  1.2159 +	virtual void NewClient(TUint aConnectionHandle)=0;
  1.2160 +	virtual void Reply(TInt aData)=0;
  1.2161 +	virtual void ReplyBuf(const TDesC8 &aDes)=0;
  1.2162 +	virtual void ReplyBuf(const TDesC16 &aDes)=0;
  1.2163 +	virtual void SignalEvent(TInt aApp)=0;
  1.2164 +	virtual void Panic(TInt aApp, TInt aReason)=0;
  1.2165 +	virtual void MiscMessage(TInt aPriority,const TDesC &aFmt,TInt aParam=0)=0;
  1.2166 +	virtual void HeapDump()=0;
  1.2167 +	virtual void SetLoggingLevel(TInt aLevel)=0;
  1.2168 +	virtual void IniFileSettingRead(TInt aScreen, const TDesC& aVarName, TBool aFound, const TDesC& aResult)=0;
  1.2169 +	};
  1.2170 +
  1.2171 +inline TUint WservEncoding::Encode8BitValues(TUint8 aFirst,TUint8 aSecond)
  1.2172 +	{return aSecond<<8|aFirst;}
  1.2173 +inline TUint WservEncoding::Encode8BitValues(TUint8 aFirst,TUint8 aSecond,TUint8 aThird)
  1.2174 +	{return aThird<<16|Encode8BitValues(aFirst,aSecond);}
  1.2175 +inline TUint8 WservEncoding::ExtractFirst8BitValue(TUint aUint)
  1.2176 +	{return STATIC_CAST(TUint8,aUint&KMaxTUint8);}
  1.2177 +inline TUint8 WservEncoding::ExtractSecond8BitValue(TUint aUint)
  1.2178 +	{return STATIC_CAST(TUint8,aUint>>8&KMaxTUint8);}
  1.2179 +inline TUint8 WservEncoding::ExtractThird8BitValue(TUint aUint)
  1.2180 +	{return STATIC_CAST(TUint8,aUint>>16);}
  1.2181 +//
  1.2182 +inline TWsClCmdCreateSprite::TWsClCmdCreateSprite(TInt aWindow, const TPoint &aPos, TUint aFlags) :
  1.2183 +	window(aWindow),pos(aPos),flags(aFlags)
  1.2184 +	{}
  1.2185 +inline TWsClCmdSetWindowGroupOrdinalPosition::TWsClCmdSetWindowGroupOrdinalPosition(TInt aIdentifier, TInt aPosition) :
  1.2186 +	identifier(aIdentifier),position(aPosition)
  1.2187 +	{}
  1.2188 +inline TWsClCmdSetKeyboardRepeatRate::TWsClCmdSetKeyboardRepeatRate(const TTimeIntervalMicroSeconds32 &aInitial,const TTimeIntervalMicroSeconds32 &aTime) :
  1.2189 +	initial(aInitial), time(aTime)
  1.2190 +	{}
  1.2191 +inline TWsClCmdSetDoubleClick::TWsClCmdSetDoubleClick(const TTimeIntervalMicroSeconds32 &aInterval,TInt aDistance) :
  1.2192 +	interval(aInterval), distance(aDistance)
  1.2193 +	{}
  1.2194 +inline TWsClCmdSendEventToWindowGroup::TWsClCmdSendEventToWindowGroup(TInt aParameter, const TWsEvent &aEvent) :
  1.2195 +	parameter(aParameter), event(aEvent)
  1.2196 +	{}
  1.2197 +inline TWsClCmdFindWindowGroupIdentifier::TWsClCmdFindWindowGroupIdentifier(TInt aPreviousIdentifier,TInt aOffset,TInt aLength) :
  1.2198 +	identifier(aPreviousIdentifier),offset(aOffset),length(aLength)
  1.2199 +	{}
  1.2200 +inline TWsClCmdSendMessageToWindowGroup::TWsClCmdSendMessageToWindowGroup(TInt aIdentifier, TUid aUid, TInt aDataLength, const TDesC8 *aPtr) :
  1.2201 +	identifierOrPriority(aIdentifier), uid(aUid), dataLength(aDataLength), ptr(aPtr)
  1.2202 +	{}
  1.2203 +inline TWsClCmdFetchMessage::TWsClCmdFetchMessage(TInt aWindowGroupIdentifier) :
  1.2204 +	windowGroupIdentifier(aWindowGroupIdentifier)
  1.2205 +	{}
  1.2206 +inline TWsClCmdFindWindowGroupIdentifierThread::TWsClCmdFindWindowGroupIdentifierThread(TInt aPreviousIdentifier,TThreadId aThreadId) :
  1.2207 +	identifier(aPreviousIdentifier),threadId(aThreadId)
  1.2208 +	{}
  1.2209 +inline TWsClCmdGetWindowGroupNameFromIdentifier::TWsClCmdGetWindowGroupNameFromIdentifier(TInt aIdentifier,TInt aMaxLength) :
  1.2210 +	identifier(aIdentifier),maxLength(aMaxLength)
  1.2211 +	{}
  1.2212 +inline TWsClCmdOffEventsToShell::TWsClCmdOffEventsToShell(TBool aOn,TUint32 aWindow) :
  1.2213 +	on(aOn),window(aWindow)
  1.2214 +	{}
  1.2215 +inline TWsClCmdSetPointerCursorArea::TWsClCmdSetPointerCursorArea(TInt aMode,TRect aArea) :
  1.2216 +	mode(aMode),area(aArea)
  1.2217 +	{}
  1.2218 +inline TWsClCmdSetSystemFaded::TWsClCmdSetSystemFaded(TBool aFaded, TBool aUseDefaults/*=ETrue*/, TUint8 aBlackMap/*=0*/, TUint8 aWhiteMap/*=0*/)
  1.2219 +	{params=WservEncoding::Encode8BitValues(aBlackMap,aWhiteMap
  1.2220 +			,STATIC_CAST(TUint8,(aFaded?EFaded:0)|(aUseDefaults?EUseDefaultMap:0)));}
  1.2221 +inline TBool TWsClCmdSetSystemFaded::Faded() const
  1.2222 +	{return WservEncoding::ExtractThird8BitValue(params)&EFaded;}
  1.2223 +inline TBool TWsClCmdSetSystemFaded::UseDefaultMap() const
  1.2224 +	{return WservEncoding::ExtractThird8BitValue(params)&EUseDefaultMap;}
  1.2225 +inline void TWsClCmdSetSystemFaded::GetFadingParams(TUint8& aBlackMap,TUint8& aWhiteMap) const
  1.2226 +	{aBlackMap=WservEncoding::ExtractFirst8BitValue(params);aWhiteMap=WservEncoding::ExtractSecond8BitValue(params);}
  1.2227 +inline TWsClCmdDebugInfo::TWsClCmdDebugInfo(TInt aFunction, TInt aParam) : iFunction(aFunction), iParam(aParam)
  1.2228 +	{}
  1.2229 +#if defined(SYMBIAN_GRAPHICS_GCE)
  1.2230 +inline TWsClCmdCreateDrawableSource::TWsClCmdCreateDrawableSource(const TSgDrawableId& aDrawableId, TInt aScreenNumber)
  1.2231 +	: iDrawableId(aDrawableId), iScreenNumber(aScreenNumber)
  1.2232 +	{}
  1.2233 +inline TWsClCmdSurfaceRegister::TWsClCmdSurfaceRegister(TInt aScreenNumber, const TSurfaceId& aSurface):
  1.2234 +	screenNumber(aScreenNumber), surfaceId(aSurface)
  1.2235 +	{}
  1.2236 +#endif
  1.2237 +inline TWsWinCmdSetExtent::TWsWinCmdSetExtent(const TPoint &aPos,const TSize &aSize) :
  1.2238 +	pos(aPos),size(aSize)
  1.2239 +	{}
  1.2240 +inline TWsWinCmdCaptureLongKey::TWsWinCmdCaptureLongKey()
  1.2241 +	{}
  1.2242 +inline TWsWinCmdCaptureLongKey::TWsWinCmdCaptureLongKey(TUint aModifiers,TUint aModifierMask,TUint aInputKey,TUint aOutputKey
  1.2243 +																	,TTimeIntervalMicroSeconds32 aDelay,TInt aPriority,TUint aFlags) :
  1.2244 +	modifiers(aModifiers),modifierMask(aModifierMask),inputKey(aInputKey),outputKey(aOutputKey)
  1.2245 +																						,delay(aDelay),priority(aPriority),flags(aFlags)
  1.2246 +	{}
  1.2247 +inline TWsWinCmdScroll::TWsWinCmdScroll(const TRect &aClip,const TPoint &aOffset,const TRect &aRect) :
  1.2248 +	clip(aClip), offset(aOffset), rect(aRect)
  1.2249 +	{}
  1.2250 +inline TWsWinCmdSetTextCursor::TWsWinCmdSetTextCursor(TUint32 aWindow, const TPoint &aPos, const TTextCursor &aCursor, const TRect &aRect) :
  1.2251 +	window(aWindow), pos(aPos), cursor(aCursor), rect(aRect)
  1.2252 +	{}
  1.2253 +inline TWsWinCmdSetTextCursor::TWsWinCmdSetTextCursor(TUint32 aWindow, const TPoint &aPos, const TTextCursor &aCursor) :
  1.2254 +	window(aWindow), pos(aPos), cursor(aCursor)
  1.2255 +	{}
  1.2256 +inline TWsWinCmdGrabControl::TWsWinCmdGrabControl(const TUint aGrabControlFlags)
  1.2257 +: pointerNumber(KErrNotFound), flags(aGrabControlFlags)
  1.2258 +	{}
  1.2259 +inline TWsWinCmdGrabControl::TWsWinCmdGrabControl(const TUint8 aPointerNumber, const TUint aGrabControlFlags)
  1.2260 +: pointerNumber(aPointerNumber), flags(aGrabControlFlags)
  1.2261 +	{}
  1.2262 +inline TBool TWsWinCmdGrabControl::CheckFlags(TUint aFlags) const
  1.2263 +	{return (flags&aFlags)==aFlags;}
  1.2264 +inline TBool TWsWinCmdGrabControl::HasPointerNumber() const
  1.2265 +	{return KErrNotFound!=pointerNumber;}
  1.2266 +
  1.2267 +inline TWsWinCmdCancelPointerRepeatEventRequest::TWsWinCmdCancelPointerRepeatEventRequest()
  1.2268 +:	pointerNumber(KErrNotFound), flags(TWsWinCmdCancelPointerRepeatEventRequest::ECancelRepeatFlagsNone)
  1.2269 +	{}
  1.2270 +inline TWsWinCmdCancelPointerRepeatEventRequest::TWsWinCmdCancelPointerRepeatEventRequest(const TUint8 aPointerNumber)
  1.2271 +:	pointerNumber(aPointerNumber), flags(TWsWinCmdCancelPointerRepeatEventRequest::ECancelRepeatFlagsNone)
  1.2272 +	{}
  1.2273 +inline TWsWinCmdCancelPointerRepeatEventRequest::TWsWinCmdCancelPointerRepeatEventRequest(const TUint8 aPointerNumber, const TUint aFlags)
  1.2274 +:	pointerNumber(aPointerNumber), flags(aFlags)
  1.2275 +	{}
  1.2276 +inline TBool TWsWinCmdCancelPointerRepeatEventRequest::HasPointerNumber() const
  1.2277 +	{return KErrNotFound!=pointerNumber;}
  1.2278 +inline TWsWinCmdRequestPointerRepeatEvent::TWsWinCmdRequestPointerRepeatEvent(const TTimeIntervalMicroSeconds32 &aTime,const TRect &aRect)
  1.2279 +:	time(aTime),rect(aRect),pointerNumber(KErrNotFound),repeatFlags(ERepeatFlagsNone)
  1.2280 +	{}
  1.2281 +inline TWsWinCmdRequestPointerRepeatEvent::TWsWinCmdRequestPointerRepeatEvent(const TTimeIntervalMicroSeconds32 &aTime,const TRect &aRect,const TUint8 aPointerNumber, const TUint aRepeatFlags)
  1.2282 +:	time(aTime),rect(aRect),pointerNumber(aPointerNumber),repeatFlags(aRepeatFlags)
  1.2283 +	{}
  1.2284 +inline TBool TWsWinCmdRequestPointerRepeatEvent::HasPointerNumber() const
  1.2285 +	{return KErrNotFound!=pointerNumber;}
  1.2286 +inline TWsClCmdZThresholdPair::TWsClCmdZThresholdPair(const TInt aEnterThreshold, const TInt aExitThreshold)
  1.2287 +:	enterThreshold(aEnterThreshold),exitThreshold(aExitThreshold)
  1.2288 +	{}
  1.2289 +inline TWsClCmdSendEffectCommand::TWsClCmdSendEffectCommand(TInt aTfxCmd,TInt aTfxCmdDataLength, TInt aWinHandle) :
  1.2290 +    tfxCmd(aTfxCmd), tfxCmdDataLength(aTfxCmdDataLength), windowHandle(aWinHandle)
  1.2291 +	{}
  1.2292 +inline TWsClCmdRegisterEffect::TWsClCmdRegisterEffect(TInt aAction, TInt aPurpose, TInt aDirStrSize, TInt aPhase1StrSize, TInt aPhase2StrSize, TUint aAppUid, TBitFlags aFlags) :
  1.2293 +	tfxAction(aAction), tfxPurpose(aPurpose), tfxDirStrSize(aDirStrSize), tfxPhase1StrSize(aPhase1StrSize), tfxPhase2StrSize(aPhase2StrSize), tfxAppUid(aAppUid), tfxFlags(aFlags) 
  1.2294 +	{}
  1.2295 +inline TWsClCmdUnRegisterEffect::TWsClCmdUnRegisterEffect(TInt aAction, TInt aPurpose, TUint aAppUid) :
  1.2296 +	tfxAction(aAction), tfxPurpose(aPurpose), tfxAppUid(aAppUid)
  1.2297 +	{}
  1.2298 +inline TWsClCmdOverrideEffect::TWsClCmdOverrideEffect(TInt aAction, TInt aPurpose, TInt aDirStrSize, TInt aPhase1StrSize, TInt aPhase2StrSize, TBitFlags aFlags) :
  1.2299 +	tfxAction(aAction), tfxPurpose(aPurpose), tfxDirStrSize(aDirStrSize), tfxPhase1StrSize(aPhase1StrSize), tfxPhase2StrSize(aPhase2StrSize), tfxFlags(aFlags)
  1.2300 +	{}
  1.2301 +inline TWsWinCmdAddKeyRect::TWsWinCmdAddKeyRect(const TRect &aRect,TInt aScanCode, TBool aActivatedByPointerSwitchOn) :
  1.2302 +	rect(aRect), scanCode(aScanCode), activatedByPointerSwitchOn(aActivatedByPointerSwitchOn)
  1.2303 +	{}
  1.2304 +#if defined(SYMBIAN_GRAPHICS_GCE)
  1.2305 +inline TWsWinOpSetBackgroundSurfaceConfig::TWsWinOpSetBackgroundSurfaceConfig(const TSurfaceConfiguration& aConfiguration, TBool aTriggerRedraw) :
  1.2306 +	surfaceConfig(aConfiguration), triggerRedraw(aTriggerRedraw)
  1.2307 +	{}
  1.2308 +#endif
  1.2309 +inline TWsWinCmdEnableModifierChangedEvents::TWsWinCmdEnableModifierChangedEvents(TUint aModifierMask, TEventControl aCircumstances) :
  1.2310 +	modifierMask(aModifierMask), circumstances(aCircumstances)
  1.2311 +	{}
  1.2312 +inline TWsWinCmdSetFaded::TWsWinCmdSetFaded(TBool aFaded, TBool aIncludeChildren, TBool aUseDefaults/*=ETrue*/, TUint8 aBlackMap/*=0*/, TUint8 aWhiteMap/*=0*/)
  1.2313 +	{params=WservEncoding::Encode8BitValues(aBlackMap,aWhiteMap
  1.2314 +			,STATIC_CAST(TUint8,(aFaded?EFaded:0)|(aIncludeChildren?EIncludeChildren:0)|(aUseDefaults?EUseDefaultMap:0)));}
  1.2315 +inline TBool TWsWinCmdSetFaded::Faded() const
  1.2316 +	{return WservEncoding::ExtractThird8BitValue(params)&EFaded;}
  1.2317 +inline TBool TWsWinCmdSetFaded::IncludeChildren() const
  1.2318 +	{return WservEncoding::ExtractThird8BitValue(params)&EIncludeChildren;}
  1.2319 +inline TBool TWsWinCmdSetFaded::UseDefaultMap() const
  1.2320 +	{return WservEncoding::ExtractThird8BitValue(params)&EUseDefaultMap;}
  1.2321 +inline void TWsWinCmdSetFaded::GetFadingParams(TUint8& aBlackMap,TUint8& aWhiteMap) const
  1.2322 +	{aBlackMap=WservEncoding::ExtractFirst8BitValue(params);aWhiteMap=WservEncoding::ExtractSecond8BitValue(params);}
  1.2323 +//
  1.2324 +inline TWsGcCmdBoxTextVertical::TWsGcCmdBoxTextVertical(const TRect& aBox) : box(aBox)
  1.2325 +	{}
  1.2326 +inline TWsGcCmdBoxTextLocal::TWsGcCmdBoxTextLocal(const TRect &aBox) : box(aBox)
  1.2327 +	{}
  1.2328 +inline TWsGcCmdDrawTextLocal::TWsGcCmdDrawTextLocal(const TPoint &aPos,const TDesC *aDesc) :
  1.2329 +	pos(aPos), desc(aDesc)
  1.2330 +	{}
  1.2331 +inline TWsGcCmdDrawLine::TWsGcCmdDrawLine(const TPoint &aPnt1,const TPoint &aPnt2) : pnt1(aPnt1),pnt2(aPnt2)
  1.2332 +	{}
  1.2333 +inline TWsGcCmdDrawArcOrPie::TWsGcCmdDrawArcOrPie(const TRect &aRect,const TPoint &aStart,const TPoint &aEnd) :
  1.2334 +	rect(aRect),start(aStart),end(aEnd)
  1.2335 +	{}
  1.2336 +inline TWsGcCmdDrawText::TWsGcCmdDrawText(const TPoint &aPos, TInt aLength) : 
  1.2337 +	pos(aPos),length(aLength)
  1.2338 +	{}
  1.2339 +inline TWsGcCmdDrawTextVertical::TWsGcCmdDrawTextVertical(const TPoint &aPos, TInt aLength, TBool aUp) : 
  1.2340 +	pos(aPos),length(aLength),up(aUp)
  1.2341 +	{}
  1.2342 +inline TWsGcCmdBoxTextOptimised1::TWsGcCmdBoxTextOptimised1(const TRect &aRect, TInt aBaselineOffset,TInt aLength) :
  1.2343 +	box(aRect),baselineOffset(aBaselineOffset),length(aLength)
  1.2344 +	{}
  1.2345 +inline TWsGcCmdBoxTextOptimised2::TWsGcCmdBoxTextOptimised2(const TRect &aRect,TInt aBaselineOffset,CGraphicsContext::TTextAlign aHoriz,TInt aLeftMrg,TInt aLength) :
  1.2346 +	box(aRect),baselineOffset(aBaselineOffset),horiz(aHoriz),leftMrg(aLeftMrg),length(aLength)
  1.2347 +	{}
  1.2348 +inline TWsGcCmdBoxText::TWsGcCmdBoxText(const TRect &aRect,TInt aBaselineOffset,CGraphicsContext::TTextAlign aHoriz,TInt aLeftMrg,TInt aLength,TInt aWidth) :
  1.2349 +	box(aRect),baselineOffset(aBaselineOffset),horiz(aHoriz),leftMrg(aLeftMrg),length(aLength),width(aWidth)
  1.2350 +	{}
  1.2351 +inline TWsGcCmdDrawRoundRect::TWsGcCmdDrawRoundRect(const TRect &aRect,const TSize &aEllipse) : rect(aRect), ellipse(aEllipse)
  1.2352 +	{}
  1.2353 +inline TWsGcCmdDrawPolygonLocalBufLen::TWsGcCmdDrawPolygonLocalBufLen(const TPoint *aPointList,TInt aNumPoints, CGraphicsContext::TFillRule aFillRule) :
  1.2354 +	points(aPointList),length(aNumPoints),fillRule(aFillRule)
  1.2355 +	{}
  1.2356 +inline TWsGcCmdDrawPolyLineLocalBufLen::TWsGcCmdDrawPolyLineLocalBufLen(const TPoint *aPointList,TInt aNumPoints) :
  1.2357 +	points(aPointList),length(aNumPoints)
  1.2358 +	{}
  1.2359 +inline TWsGcCmdDrawBitmap::TWsGcCmdDrawBitmap(const TPoint &aPoint,TInt aHandle) : handle(aHandle), pos(aPoint)
  1.2360 +	{}
  1.2361 +inline TWsGcCmdDrawBitmap2::TWsGcCmdDrawBitmap2(const TRect &aRect,TInt aHandle) : handle(aHandle), rect(aRect)
  1.2362 +	{}
  1.2363 +inline TWsGcCmdDrawBitmap3::TWsGcCmdDrawBitmap3(const TRect &aRect,TInt aHandle,const TRect &aSrcRect) :
  1.2364 +	 handle(aHandle), rect(aRect), srcRect(aSrcRect)
  1.2365 +	{}
  1.2366 +inline TWsGcCmdDrawBitmapMasked::TWsGcCmdDrawBitmapMasked(const TRect &aDestRect,TInt aHandle,const TRect& aSrcRect,TInt aMaskHandle,TBool aInvertMask) :
  1.2367 +	 iHandle(aHandle),iMaskHandle(aMaskHandle),iRect(aDestRect),iSrcRect(aSrcRect),iInvertMask(aInvertMask)
  1.2368 +	 {}
  1.2369 +inline TWsGcCmdDrawBitmapLocal::TWsGcCmdDrawBitmapLocal(const TPoint &aPos,const CFbsBitmap *aBitmap) :
  1.2370 +	bitmap(aBitmap), pos(aPos)
  1.2371 +	{}
  1.2372 +inline TWsGcCmdDrawBitmap2Local::TWsGcCmdDrawBitmap2Local(const TRect &aRect,const CFbsBitmap *aBitmap) :
  1.2373 +	bitmap(aBitmap), rect(aRect)
  1.2374 +	{}
  1.2375 +inline TWsGcCmdDrawBitmap3Local::TWsGcCmdDrawBitmap3Local(const TRect &aRect,const CFbsBitmap *aBitmap,const TRect &aSrcRect) :
  1.2376 +	bitmap(aBitmap), rect(aRect), srcRect(aSrcRect)
  1.2377 +	{}
  1.2378 +inline TWsGcCmdDrawBitmapMaskedLocal::TWsGcCmdDrawBitmapMaskedLocal(const TRect &aDestRect,const CFbsBitmap* aBitmap,const TRect& aSrcRect,const CFbsBitmap* aMaskBitmap,TBool aInvertMask) :
  1.2379 +	iBitmap(aBitmap),iMaskBitmap(aMaskBitmap),iRect(aDestRect),iSrcRect(aSrcRect),iInvertMask(aInvertMask)
  1.2380 +	{}
  1.2381 +inline TWsGcCmdCopyRect::TWsGcCmdCopyRect(const TPoint &anOffset,const TRect &aRect) :
  1.2382 +	rect(aRect),pos(anOffset)
  1.2383 +	{}
  1.2384 +inline TWsGcCmdGdiBlt2::TWsGcCmdGdiBlt2(const TPoint &aPoint, TInt aHandle) :
  1.2385 +	handle(aHandle), pos(aPoint)
  1.2386 +	{}
  1.2387 +inline TWsGcCmdGdiBlt3::TWsGcCmdGdiBlt3(const TPoint &aPoint, TInt aHandle, const TRect &aSrcRect) :
  1.2388 +	handle(aHandle),pos(aPoint),rect(aSrcRect)
  1.2389 +	{}
  1.2390 +inline TWsGcCmdGdiBlt2Local::TWsGcCmdGdiBlt2Local(const TPoint &aPoint,const CFbsBitmap *aBitmap) :
  1.2391 +	bitmap(aBitmap), pos(aPoint)
  1.2392 +	{}
  1.2393 +inline TWsGcCmdGdiBlt3Local::TWsGcCmdGdiBlt3Local(const TPoint &aDestination,const CFbsBitmap *aBitmap,const TRect &aSource) :
  1.2394 +	bitmap(aBitmap), pos(aDestination), rect(aSource)
  1.2395 +	{}
  1.2396 +inline TWsGcCmdGdiBltMaskedLocal::TWsGcCmdGdiBltMaskedLocal(const TPoint& aPoint,const CFbsBitmap* aBitmap,const TRect &aSourceRect,const CFbsBitmap* aMaskBitmap,TBool aInvertMask) :
  1.2397 +	bitmap(aBitmap), maskBitmap(aMaskBitmap), invertMask(aInvertMask), pos(aPoint), rect(aSourceRect)
  1.2398 +	{}
  1.2399 +	inline TWsGcCmdBltMasked::TWsGcCmdBltMasked()
  1.2400 +	{}
  1.2401 +inline TWsGcCmdBltMasked::TWsGcCmdBltMasked(const TPoint& aPoint,TInt aBitmap,const TRect& aSourceRect,TInt aMaskBitmap,TBool aInvertMask) :
  1.2402 +	destination(aPoint), handle(aBitmap), source(aSourceRect), maskHandle(aMaskBitmap), invertMask(aInvertMask)
  1.2403 +	{}
  1.2404 +inline TWsGcCmdMapColors::TWsGcCmdMapColors(const TRect &aRect, TInt aNumPairs, TBool aMapForwards) :
  1.2405 +	rect(aRect), numPairs(aNumPairs), mapForwards(aMapForwards)
  1.2406 +	{}
  1.2407 +inline TWsGcCmdMapColorsLocal::TWsGcCmdMapColorsLocal(const TRect &aRect, const TRgb *aColors, TInt aNumPairs, TBool aMapForwards) :
  1.2408 +	rect(aRect), colors(aColors), numPairs(aNumPairs), mapForwards(aMapForwards)
  1.2409 +	{}	
  1.2410 +inline TWsGcCmdAlphaBlendBitmaps::TWsGcCmdAlphaBlendBitmaps()
  1.2411 +	{}
  1.2412 +inline TWsGcCmdAlphaBlendBitmaps::TWsGcCmdAlphaBlendBitmaps(const TPoint& aPoint, TInt aBitmap,const TRect& aSourceRect,TInt aAlpha,const TPoint& aAlphaPoint) :
  1.2413 +	point(aPoint), bitmapHandle(aBitmap), source(aSourceRect), alphaHandle(aAlpha), alphaPoint(aAlphaPoint)
  1.2414 +	{}
  1.2415 +inline TWsGcCmdAlphaBlendBitmapsLocal::TWsGcCmdAlphaBlendBitmapsLocal(const TPoint& aPoint, const CFbsBitmap *aBitmap, const TRect& aSourceRect, const CFbsBitmap *aAlpha, const TPoint& aAlphaPoint) :
  1.2416 +	point(aPoint), iBitmap(aBitmap), source(aSourceRect), iAlpha(aAlpha), alphaPoint(aAlphaPoint)
  1.2417 +	{}
  1.2418 +
  1.2419 +//
  1.2420 +inline TWsSdCmdSetScreenRotation::TWsSdCmdSetScreenRotation(TInt aMode, CFbsBitGc::TGraphicsOrientation aRotation) :
  1.2421 +	mode(aMode), rotation(aRotation)
  1.2422 +	{}
  1.2423 +inline TWsSdCmdGetScanLine::TWsSdCmdGetScanLine(const TPoint &aPos, TInt aLen, TDisplayMode aDispMode) :
  1.2424 +	pos(aPos), len(aLen), dispMode(aDispMode)
  1.2425 +	{}
  1.2426 +inline TWsSdCmdRectCompare::TWsSdCmdRectCompare(const TRect &aRect1,const TRect &aRect2,TUint aFlags) :
  1.2427 +	rect1(aRect1), rect2(aRect2), flags(aFlags)
  1.2428 +	{}
  1.2429 +inline TWsSdCmdCopyScreenToBitmap::TWsSdCmdCopyScreenToBitmap(TInt aHandle) :
  1.2430 +	handle(aHandle)
  1.2431 +	{}
  1.2432 +inline TWsSdCmdCopyScreenToBitmap2::TWsSdCmdCopyScreenToBitmap2(const TRect &aRect, TInt aHandle) :
  1.2433 +	rect(aRect), handle(aHandle)
  1.2434 +	{}
  1.2435 +inline TWsSdCmdSetPalette::TWsSdCmdSetPalette(TPtr8& aPtr) :
  1.2436 +	ptr(&aPtr), length(aPtr.Length())
  1.2437 +	{}
  1.2438 +inline TWsSdCmdMapCoordinates::TWsSdCmdMapCoordinates(const TRect &aSource, TCoordinateSpace aSourceSpace, TCoordinateSpace aTargetSpace):
  1.2439 +	sourceRect(aSource), sourceSpace(aSourceSpace), targetSpace(aTargetSpace)
  1.2440 +	{}
  1.2441 +//
  1.2442 +inline TWsSpriteCmdUpdateMember::TWsSpriteCmdUpdateMember(TInt aIndex,const TSpriteMember &aData) :
  1.2443 +	index(aIndex), data(aData)
  1.2444 +	{}
  1.2445 +//
  1.2446 +inline TWsDirectCmdRequestReply::TWsDirectCmdRequestReply()
  1.2447 +	{}
  1.2448 +inline TWsDirectCmdRequestReply::TWsDirectCmdRequestReply(TThreadId aId,TRequestStatus* aRequest) :
  1.2449 +	id(aId), request(aRequest)
  1.2450 +	{}
  1.2451 +//
  1.2452 +inline SKeyRepeatSettings::SKeyRepeatSettings()
  1.2453 +	{}
  1.2454 +inline SDoubleClickSettings::SDoubleClickSettings()
  1.2455 +	{}
  1.2456 +inline SDefModeMaxNumColors::SDefModeMaxNumColors()
  1.2457 +	{}
  1.2458 +//
  1.2459 +inline TCmdSpriteMember::TCmdSpriteMember()
  1.2460 +	{}
  1.2461 +	
  1.2462 +inline TWsGcCmdDrawTextVerticalPtr::TWsGcCmdDrawTextVerticalPtr(const TDesC *aDesc, const TPoint& aPos, const TBool aUp) : pos(aPos), up(aUp), text(const_cast<TDesC*>(aDesc))
  1.2463 +	{}
  1.2464 +	
  1.2465 +inline TWsGcCmdDrawWsGraphic::TWsGcCmdDrawWsGraphic(const TWsGraphicId& aId,const TRect& aRect):
  1.2466 +	iRect(aRect), iDataLen(0)
  1.2467 +	{
  1.2468 +	if(aId.IsUid())
  1.2469 +		{
  1.2470 +		iId = aId.Uid().iUid;
  1.2471 +		iFlags = EWsGraphicIdUid;
  1.2472 +		}
  1.2473 +	else
  1.2474 +		{
  1.2475 +		iId = aId.Id();
  1.2476 +		iFlags = EWsGraphicIdTransient;
  1.2477 +		}
  1.2478 +	}
  1.2479 +inline TWsGcCmdDrawTextInContext::TWsGcCmdDrawTextInContext(const TPoint &aPos, TInt aLength, TInt aStart, TInt aEnd) : 
  1.2480 +	pos(aPos),length(aLength),start(aStart),end(aEnd)
  1.2481 +	{}
  1.2482 +inline TWsGcCmdDrawTextInContextVertical::TWsGcCmdDrawTextInContextVertical(const TPoint &aPos, TInt aLength, TBool aUp,TInt aStart,TInt aEnd) : 
  1.2483 +	pos(aPos),length(aLength),up(aUp),start(aStart),end(aEnd)
  1.2484 +	{}
  1.2485 +inline TWsGcCmdDrawTextInContextVerticalPtr::TWsGcCmdDrawTextInContextVerticalPtr(const TDesC *aDesc, const TPoint& aPos, const TBool aUp,TInt aStart,TInt aEnd) : pos(aPos), up(aUp), text(const_cast<TDesC*>(aDesc)),start(aStart),end(aEnd)
  1.2486 +	{}
  1.2487 +inline TWsGcCmdBoxTextInContextLocal::TWsGcCmdBoxTextInContextLocal(const TRect &aBox,const TInt aStart,const TInt aEnd) : box(aBox),start(aStart),end(aEnd)
  1.2488 +	{}
  1.2489 +inline TWsGcCmdBoxTextInContextOptimised1::TWsGcCmdBoxTextInContextOptimised1(const TRect &aRect, TInt aBaselineOffset,TInt aLength,TInt aStart,TInt aEnd) :
  1.2490 +	box(aRect),baselineOffset(aBaselineOffset),length(aLength),start(aStart),end(aEnd)
  1.2491 +	{}
  1.2492 +inline TWsGcCmdBoxTextInContextOptimised2::TWsGcCmdBoxTextInContextOptimised2(const TRect &aRect,TInt aBaselineOffset,CGraphicsContext::TTextAlign aHoriz,TInt aLeftMrg,TInt aLength,TInt aStart,TInt aEnd) :
  1.2493 +	box(aRect),baselineOffset(aBaselineOffset),horiz(aHoriz),leftMrg(aLeftMrg),length(aLength),start(aStart),end(aEnd)
  1.2494 +	{}
  1.2495 +inline TWsGcCmdBoxTextInContext::TWsGcCmdBoxTextInContext(const TRect &aRect,TInt aBaselineOffset,CGraphicsContext::TTextAlign aHoriz,TInt aLeftMrg,TInt aLength,TInt aWidth,TInt aStart,TInt aEnd) :
  1.2496 +	box(aRect),baselineOffset(aBaselineOffset),horiz(aHoriz),leftMrg(aLeftMrg),length(aLength),width(aWidth),start(aStart),end(aEnd)
  1.2497 +	{}
  1.2498 +inline TWsGcCmdBoxTextInContextVertical::TWsGcCmdBoxTextInContextVertical(const TRect& aBox) : box(aBox)
  1.2499 +	{}
  1.2500 +inline TWsGcCmdDrawTextInContextLocal::TWsGcCmdDrawTextInContextLocal(const TPoint &aPos,const TDesC *aDesc,TInt aStart,TInt aEnd) :
  1.2501 +	pos(aPos), desc(aDesc),start(aStart),end(aEnd)
  1.2502 +	{}
  1.2503 +inline TWsGcCmdDrawResourceToPos::TWsGcCmdDrawResourceToPos(TInt aWsHandle, const TPoint &aPos, CWindowGc::TGraphicsRotation aRotation) : 
  1.2504 +	wsHandle(aWsHandle), pos(aPos), rotation(aRotation) 
  1.2505 +	{}
  1.2506 +inline TWsGcCmdDrawResourceToRect::TWsGcCmdDrawResourceToRect(TInt aWsHandle, const TRect &aRect, CWindowGc::TGraphicsRotation aRotation) : 
  1.2507 +	wsHandle(aWsHandle), rect(aRect), rotation(aRotation)
  1.2508 +	{}
  1.2509 +inline TWsGcCmdDrawResourceFromRectToRect::TWsGcCmdDrawResourceFromRectToRect(TInt aWsHandle, const TRect &aRectDest, const TRect &aRectSrc, CWindowGc::TGraphicsRotation aRotation) :
  1.2510 +	wsHandle(aWsHandle), rectDest(aRectDest), rectSrc(aRectSrc), rotation(aRotation)
  1.2511 +	{}
  1.2512 +inline TWsGcCmdDrawResourceWithData::TWsGcCmdDrawResourceWithData(TInt aWsHandle, const TRect &aRect, const TDesC8* aDesc) :
  1.2513 +	wsHandle(aWsHandle), rect(aRect), desc(aDesc)
  1.2514 +	{}
  1.2515 +#endif