sl@0: // Copyright (c) 1999-2010 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // Command numbers and structures for client to window server communications. sl@0: // sl@0: // sl@0: sl@0: #ifndef __W32CMD_H__ sl@0: #define __W32CMD_H__ sl@0: sl@0: #include sl@0: #include sl@0: #include sl@0: #if defined(SYMBIAN_GRAPHICS_GCE) sl@0: #include sl@0: #include sl@0: #endif sl@0: sl@0: #include sl@0: #include sl@0: sl@0: const TUint KWservMajorVersionNumber=1; sl@0: const TUint KWservMinorVersionNumber=0; sl@0: const TUint KWservBuildVersionNumber=151; sl@0: sl@0: const TUint KWservLoggingDllUidValue8=268435925; sl@0: const TUid KWservLoggingDllUid8={KWservLoggingDllUidValue8}; sl@0: const TUint KWservLoggingDllUidValue16=268450595; sl@0: const TUid KWservLoggingDllUid16={KWservLoggingDllUidValue16}; sl@0: //const TUint KUidWservLoggingCommon=268439591; sl@0: const TUint KWservLoggingDllUidValue=KWservLoggingDllUidValue16; sl@0: const TUid KWservLoggingDllUid={KWservLoggingDllUidValue}; sl@0: const TInt KDummyScreenNumber = -1; sl@0: class CClickMaker; sl@0: class CAnimDll; sl@0: class CDebugLogBase; sl@0: class TSurfaceId; sl@0: sl@0: /** Creates an interface object for Shell sl@0: sl@0: @publishedPartner sl@0: @released sl@0: */ sl@0: typedef TInt (*ShellEntryPoint)(TAny *); sl@0: sl@0: /** Creates the key or pointer click plug-in provider interface. sl@0: sl@0: When a key is pressed, a key auto repeats or when the screen is tapped with a pointer, sl@0: the window server informs the plug-in DLL, which can then make the sound. sl@0: sl@0: @publishedAll sl@0: @released sl@0: */ sl@0: typedef CClickMaker *(*CreateCClickHandler)(); sl@0: sl@0: /** Creates the animation dll factory interface object. sl@0: sl@0: Animation DLL objects are created by the CreateCAnimDllL() function, sl@0: which is called by the window server at the request of the client. sl@0: sl@0: @publishedAll sl@0: @released sl@0: */ sl@0: typedef CAnimDll* (*CreateCAnimDll)(); sl@0: sl@0: sl@0: class WservEncoding sl@0: { sl@0: public: sl@0: static inline TUint Encode8BitValues(TUint8 aFirst,TUint8 aSecond); sl@0: static inline TUint Encode8BitValues(TUint8 aFirst,TUint8 aSecond,TUint8 aThird); sl@0: static inline TUint8 ExtractFirst8BitValue(TUint aUint); sl@0: static inline TUint8 ExtractSecond8BitValue(TUint aUint); sl@0: static inline TUint8 ExtractThird8BitValue(TUint aUint); sl@0: }; sl@0: sl@0: struct SKeyRepeatSettings sl@0: { sl@0: SKeyRepeatSettings(); sl@0: TTimeIntervalMicroSeconds32 iInitialTime; sl@0: TTimeIntervalMicroSeconds32 iTime; sl@0: }; sl@0: struct SDoubleClickSettings sl@0: { sl@0: SDoubleClickSettings(); sl@0: TTimeIntervalMicroSeconds32 iInterval; sl@0: TInt iDistance; sl@0: }; sl@0: //struct SMaxNumColors sl@0: struct SDefModeMaxNumColors sl@0: { sl@0: SDefModeMaxNumColors(); sl@0: TInt iColors; sl@0: TInt iGrays; sl@0: TDisplayMode iDisplayMode; sl@0: }; sl@0: struct SEventMessageReady sl@0: { sl@0: TInt iWindowGroupIdentifier; sl@0: TUid iMessageUid; sl@0: TInt iMessageParametersSize; sl@0: }; sl@0: class TCmdSpriteMember sl@0: { sl@0: public: sl@0: inline TCmdSpriteMember(); sl@0: TCmdSpriteMember(const TSpriteMember &aSpriteMember); sl@0: public: sl@0: TInt iBitmap; sl@0: TInt iMaskBitmap; sl@0: TBool iInvertMask; sl@0: CGraphicsContext::TDrawMode iDrawMode; sl@0: TPoint iOffset; // Offset from sprites central position sl@0: TTimeIntervalMicroSeconds32 iInterval; sl@0: }; sl@0: sl@0: enum {EClientBufferSize=640}; // default buffer size sl@0: enum {EClientBufferMaxSize=0x4000}; // 16K is max buffer size sl@0: sl@0: enum {EWsOpcodeHandle=0x8000}; // Indicates a new handle is included in the message header sl@0: sl@0: enum {EMaxPolygonPoints=50}; // Max size polygon that can be drawn without allocing sl@0: enum {EMaxPolylinePoints=50}; // Max size polygon that can be drawn without allocing sl@0: sl@0: enum {EClickLoaded=0x01, EClickLoadable=0x02}; sl@0: sl@0: //////////////////////// sl@0: // Opcodes sl@0: //////////////////////// sl@0: sl@0: // Client opcodes sl@0: sl@0: enum TWsClientOpcodes sl@0: { sl@0: EWsClOpDisconnect, //Keep this as the first enum value - used by test code sl@0: EWsClOpClearHotKeys, sl@0: EWsClOpSetHotKey, sl@0: EWsClOpRestoreDefaultHotKey, sl@0: EWsClOpComputeMode, sl@0: EWsClOpEventReady, sl@0: EWsClOpEventReadyCancel, sl@0: EWsClOpGetEvent, sl@0: EWsClOpPurgePointerEvents, sl@0: EWsClOpRedrawReady, sl@0: EWsClOpRedrawReadyCancel, sl@0: EWsClOpGetRedraw, sl@0: EWsClOpPriorityKeyReady, sl@0: EWsClOpPriorityKeyReadyCancel, sl@0: EWsClOpGetPriorityKey, sl@0: EWsClOpSetShadowVector, sl@0: EWsClOpShadowVector, sl@0: EWsClOpSetKeyboardRepeatRate, sl@0: EWsClOpGetKeyboardRepeatRate, sl@0: EWsClOpSetDoubleClick, sl@0: EWsClOpGetDoubleClickSettings, sl@0: EWsClOpCreateWindowGroup, sl@0: EWsClOpCreateWindow, sl@0: EWsClOpCreateGc, sl@0: EWsClOpCreateAnimDll, sl@0: EWsClOpCreateScreenDevice, sl@0: EWsClOpCreateSprite, sl@0: EWsClOpCreatePointerCursor, sl@0: EWsClOpStartSetCustomTextCursor, sl@0: EWsClOpCompleteSetCustomTextCursor, sl@0: EWsClOpCreateBitmap, sl@0: EWsClOpNumWindowGroups, sl@0: EWsClOpNumWindowGroupsAllPriorities, sl@0: EWsClOpWindowGroupList, sl@0: EWsClOpWindowGroupListAllPriorities, sl@0: EWsClOpSetWindowGroupOrdinalPosition, sl@0: EWsClOpGetWindowGroupHandle, sl@0: EWsClOpGetWindowGroupOrdinalPriority, sl@0: EWsClOpGetWindowGroupClientThreadId, sl@0: EWsClOpGetWindowGroupNameFromIdentifier, sl@0: EWsClOpGetFocusWindowGroup, sl@0: EWsClOpGetDefaultOwningWindow, sl@0: EWsClOpSendEventToWindowGroup, sl@0: EWsClOpFindWindowGroupIdentifier, sl@0: EWsClOpFindWindowGroupIdentifierThread, sl@0: EWsClOpSetBackgroundColor, sl@0: EWsClOpGetBackgroundColor, sl@0: EWsClOpSetSystemPointerCursor, sl@0: EWsClOpClearSystemPointerCursor, sl@0: EWsClOpClaimSystemPointerCursorList, sl@0: EWsClOpFreeSystemPointerCursorList, sl@0: EWsClOpGetModifierState, sl@0: EWsClOpSetModifierState, sl@0: EWsClOpHeapCount, sl@0: EWsClOpResourceCount, sl@0: EWsClOpTestInvariant, sl@0: EWsClOpHeapSetFail, sl@0: EWsClOpRawEvent, sl@0: EWsClOpSystemInfo, sl@0: EWsClOpLogMessage, sl@0: EWsClOpPasswordEntered, sl@0: EWsClOpSendMessageToWindowGroup, sl@0: EWsClOpSendOffEventsToShell, sl@0: EWsClOpGetDefModeMaxNumColors, sl@0: EWsClOpGetColorModeList, sl@0: EWsClOpKeyEvent, sl@0: EWsClOpSendEventToAllWindowGroup, sl@0: EWsClOpSendEventToAllWindowGroupPriority, sl@0: EWsClOpSetPointerCursorArea, sl@0: EWsClOpPointerCursorArea, sl@0: EWsClOpSetPointerCursorMode, sl@0: EWsClOpPointerCursorMode, sl@0: EWsClOpSetDefaultSystemPointerCursor, sl@0: EWsClOpClearDefaultSystemPointerCursor, sl@0: EWsClOpSetPointerCursorPosition, sl@0: EWsClOpPointerCursorPosition, sl@0: EWsClOpSetDefaultFadingParams, sl@0: EWsClOpSendMessageToAllWindowGroups, sl@0: EWsClOpSendMessageToAllWindowGroupsPriority, sl@0: EWsClOpFetchMessage, sl@0: EWsClOpPrepareForSwitchOff, sl@0: EWsClOpCreateDirectScreenAccess, sl@0: EWsClOpSetFaded, sl@0: EWsClOpLogCommand, sl@0: EWsClOpCreateClick, sl@0: EWsClOpSendEventToOneWindowGroupPerClient, sl@0: #if defined(__WINS__) sl@0: EWsClOpRemoveKeyCode, sl@0: EWsClOpSimulateXyInput, sl@0: #endif sl@0: EWsClOpNoFlickerFree, sl@0: EWsClOpSetFocusScreen, sl@0: EWsClOpGetFocusScreen, sl@0: EWsClOpWindowGroupListAndChain, sl@0: EWsClOpWindowGroupListAndChainAllPriorities, sl@0: EWsClOpSetClientCursorMode, sl@0: EWsClOpClearAllRedrawStores, sl@0: EWsClOpCreateGraphic, sl@0: EWsClOpGraphicMessageReady, sl@0: EWsClOpGetGraphicMessage, sl@0: EWsClOpGraphicMessageCancel, sl@0: EWsClOpNumWindowGroupsOnScreen, sl@0: EWsClOpGetNumberOfScreens, sl@0: EWsClOpGraphicAbortMessage, sl@0: EWsClOpGraphicFetchHeaderMessage, sl@0: EWsClOpDebugInfo, sl@0: EWsClOpDebugInfoReplyBuf, sl@0: EWsClOpRegisterSurface, sl@0: EWsClOpUnregisterSurface, sl@0: EWsClOpSetCloseProximityThresholds, sl@0: EWsClOpSetHighPressureThresholds, sl@0: EWsClOpGetEnterCloseProximityThreshold, sl@0: EWsClOpGetExitCloseProximityThreshold, sl@0: EWsClOpGetEnterHighPressureThreshold, sl@0: EWsClOpGetExitHighPressureThreshold, sl@0: EWsClOpCreateDrawableSource, sl@0: EWsClOpCreateDirectScreenAccessRegionTrackingOnly, sl@0: EWsClOpSendEffectCommand, sl@0: EWsClOpRegisterTFXEffectBuf, sl@0: EWsClOpRegisterTFXEffectIPC, sl@0: EWsClOpUnregisterTFXEffect, sl@0: EWsClOpUnregisterAllTFXEffect, sl@0: EWsClOpOverrideEffectBuf, sl@0: EWsClOpOverrideEffectIPC, sl@0: EWsClOpIndicateAppOrientation, sl@0: EWsClOpLastEnumValue //Keep this at the end - used by test code sl@0: }; sl@0: sl@0: // Graphic Drawer opcodes sl@0: sl@0: enum TWsGraphicDrawerOpcodes sl@0: { sl@0: EWsGdOpFree = 0x0000, sl@0: EWsGdOpSendMsg, sl@0: EWsGdOpGetGraphicId, sl@0: EWsGdOpShareGlobally, sl@0: EWsGdOpUnShareGlobally, sl@0: EWsGdOpShare, sl@0: EWsGdOpUnShare, sl@0: EWsGdOpSendSynchronMsg, sl@0: }; sl@0: sl@0: // types of Graphic Drawer messages to be passed from the Graphic Drawer to the client sl@0: sl@0: enum TWsGraphicMessageType sl@0: { sl@0: EWsGraphMessageTypeUser = 0x00 sl@0: // max 0x03 as packed into lower two bits of client handle sl@0: }; sl@0: sl@0: // Window opcodes sl@0: sl@0: enum TWsWindowOpcodes sl@0: { sl@0: EWsWinOpFree=0x0000, sl@0: EWsWinOpSetExtent, sl@0: EWsWinOpSetExtentErr, sl@0: EWsWinOpOrdinalPosition, sl@0: EWsWinOpFullOrdinalPosition, sl@0: EWsWinOpSetOrdinalPosition, sl@0: EWsWinOpSetOrdinalPositionPri, sl@0: EWsWinOpSetOrdinalPriorityAdjust, sl@0: EWsWinOpSetPos, sl@0: EWsWinOpSetSize, sl@0: EWsWinOpSetSizeErr, sl@0: EWsWinOpPosition, sl@0: EWsWinOpAbsPosition, sl@0: EWsWinOpSize, sl@0: EWsWinOpActivate, sl@0: EWsWinOpInvalidate, sl@0: EWsWinOpInvalidateFull, sl@0: EWsWinOpBeginRedraw, sl@0: EWsWinOpBeginRedrawFull, sl@0: EWsWinOpEndRedraw, sl@0: EWsWinOpTestInvariant, sl@0: EWsWinOpParent, sl@0: EWsWinOpPrevSibling, sl@0: EWsWinOpNextSibling, sl@0: EWsWinOpChild, sl@0: EWsWinOpInquireOffset, sl@0: EWsWinOpPointerFilter, sl@0: EWsWinOpSetPointerCapture, sl@0: EWsWinOpSetPointerGrab, sl@0: EWsWinOpClaimPointerGrab, sl@0: EWsWinOpSetBackgroundColor, sl@0: EWsWinOpSetOrdinalPositionErr, sl@0: EWsWinOpSetVisible, sl@0: EWsWinOpScroll, sl@0: EWsWinOpScrollClip, sl@0: EWsWinOpScrollRect, sl@0: EWsWinOpScrollClipRect, sl@0: EWsWinOpReceiveFocus, sl@0: EWsWinOpAutoForeground, sl@0: EWsWinOpSetNoBackgroundColor, sl@0: EWsWinOpCaptureKey, sl@0: EWsWinOpCancelCaptureKey, sl@0: EWsWinOpCaptureKeyUpsAndDowns, sl@0: EWsWinOpCancelCaptureKeyUpsAndDowns, sl@0: EWsWinOpAddPriorityKey, sl@0: EWsWinOpRemovePriorityKey, sl@0: EWsWinOpSetTextCursor, sl@0: EWsWinOpSetTextCursorClipped, sl@0: EWsWinOpCancelTextCursor, sl@0: EWsWinOpSetShadowHeight, sl@0: EWsWinOpShadowDisabled, sl@0: EWsWinOpGetInvalidRegion, sl@0: EWsWinOpGetInvalidRegionCount, sl@0: EWsWinOpSetColor, sl@0: EWsWinOpSetCornerType, sl@0: EWsWinOpSetShape, sl@0: EWsWinOpBitmapHandle, sl@0: EWsWinOpUpdateScreen, sl@0: EWsWinOpUpdateScreenRegion, sl@0: EWsWinOpUpdateBackupBitmap, sl@0: EWsWinOpMaintainBackup, sl@0: EWsWinOpName, sl@0: EWsWinOpSetName, sl@0: EWsWinOpSetOwningWindowGroup, sl@0: EWsWinOpDefaultOwningWindow, sl@0: EWsWinOpRequiredDisplayMode, sl@0: EWsWinOpEnableOnEvents, sl@0: EWsWinOpDisableOnEvents, sl@0: EWsWinOpEnableGroupChangeEvents, sl@0: EWsWinOpDisableGroupChangeEvents, sl@0: EWsWinOpSetPointerCursor, sl@0: EWsWinOpSetCustomPointerCursor, sl@0: EWsWinOpRequestPointerRepeatEvent, sl@0: EWsWinOpCancelPointerRepeatEventRequest, sl@0: EWsWinOpAllocPointerMoveBuffer, sl@0: EWsWinOpFreePointerMoveBuffer, sl@0: EWsWinOpEnablePointerMoveBuffer, sl@0: EWsWinOpDisablePointerMoveBuffer, sl@0: EWsWinOpRetrievePointerMoveBuffer, sl@0: EWsWinOpDiscardPointerMoveBuffer, //Tested to here %%% sl@0: EWsWinOpEnableModifierChangedEvents, sl@0: EWsWinOpDisableModifierChangedEvents, sl@0: EWsWinOpEnableErrorMessages, sl@0: EWsWinOpDisableErrorMessages, sl@0: EWsWinOpAddKeyRect, sl@0: EWsWinOpRemoveAllKeyRects, sl@0: EWsWinOpPasswordWindow, sl@0: EWsWinOpEnableBackup, sl@0: EWsWinOpIdentifier, sl@0: EWsWinOpDisableKeyClick, sl@0: EWsWinOpSetFade=EWsWinOpDisableKeyClick+3, //Two messages removed sl@0: EWsWinOpSetNonFading, sl@0: EWsWinOpFadeBehind, sl@0: EWsWinOpEnableScreenChangeEvents, sl@0: EWsWinOpDisableScreenChangeEvents, sl@0: EWsWinOpSendPointerEvent, sl@0: EWsWinOpSendAdvancedPointerEvent, sl@0: EWsWinOpGetDisplayMode, sl@0: EWsWinOpGetIsFaded, sl@0: EWsWinOpGetIsNonFading, sl@0: EWsWinOpOrdinalPriority, sl@0: EWsWinOpClearPointerCursor, sl@0: EWsWinOpMoveToGroup, sl@0: EWsWinOpEnableFocusChangeEvents, sl@0: EWsWinOpDisableFocusChangeEvents, sl@0: EWsWinOpEnableGroupListChangeEvents, sl@0: EWsWinOpDisableGroupListChangeEvents, sl@0: EWsWinOpCaptureLongKey, sl@0: EWsWinOpCancelCaptureLongKey, sl@0: EWsWinOpStoreDrawCommands, sl@0: EWsWinOpHandleTransparencyUpdate, sl@0: EWsWinOpSetTransparencyFactor, sl@0: EWsWinOpSetTransparencyBitmap, sl@0: EWsWinOpAllowChildWindowGroup, sl@0: EWsWinOpSetTransparencyBitmapCWs, sl@0: EWsWinOpEnableVisibilityChangeEvents, sl@0: EWsWinOpDisableVisibilityChangeEvents, sl@0: EWsWinOpSetTransparencyAlphaChannel, sl@0: EWsWinOpWindowGroupId, sl@0: EWsWinOpSetPointerCapturePriority, sl@0: EWsWinOpGetPointerCapturePriority, sl@0: EWsWinOpSetTransparentRegion, sl@0: EWsWinOpSetTransparencyPolicy, sl@0: EWsWinOpIsRedrawStoreEnabled, sl@0: EWsWinOpEnableOSB, sl@0: EWsWinOpDisableOSB, sl@0: EWsWinOpClearChildGroup, sl@0: EWsWinOpSetChildGroup, sl@0: EWsWinOpClientHandle, sl@0: EWsWinOpSetBackgroundSurface, sl@0: EWsWinOpKeyColor=EWsWinOpSetBackgroundSurface+2, //One message removed sl@0: EWsWinOpSetBackgroundSurfaceConfig=EWsWinOpKeyColor+5, //Four messages removed sl@0: EWsWinOpRemoveBackgroundSurface=EWsWinOpSetBackgroundSurfaceConfig+2, //One message removed sl@0: EWsWinOpGetBackgroundSurfaceConfig=EWsWinOpRemoveBackgroundSurface+2, //One message removed sl@0: EWsWinOpClearRedrawStore=EWsWinOpGetBackgroundSurfaceConfig+2, //One message removed sl@0: EWsWinOpScreenNumber, sl@0: EWsWinOpEnableAdvancedPointers, sl@0: #ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS sl@0: EWsWinOpSetSurfaceTransparency, sl@0: #endif sl@0: EWsWinOpSetPurpose, sl@0: EWsWinOpSendEffectCommand, sl@0: EWsWinOpOverrideEffectBuf, sl@0: EWsWinOpOverrideEffectIPC, sl@0: EWsWinOpTestLowPriorityRedraw=0x2000, //Specific opcode for testing redraw queue priorities sl@0: }; sl@0: sl@0: // GC opcodes sl@0: sl@0: enum TWsGcOpcodes sl@0: { sl@0: EWsGcOpFree=0x0000, sl@0: EWsGcOpActivate, sl@0: EWsGcOpDeactivate, sl@0: EWsGcOpSetClippingRegion, sl@0: EWsGcOpSetClippingRect, sl@0: EWsGcOpCancelClippingRegion, sl@0: EWsGcOpCancelClippingRect, sl@0: EWsGcOpSetWordJustification, sl@0: EWsGcOpSetCharJustification, sl@0: EWsGcOpSetPenColor, sl@0: EWsGcOpSetPenStyle, sl@0: EWsGcOpSetPenSize, sl@0: EWsGcOpSetBrushColor, sl@0: EWsGcOpSetBrushStyle, sl@0: EWsGcOpSetBrushOrigin, sl@0: EWsGcOpUseBrushPattern, sl@0: EWsGcOpDiscardBrushPattern, sl@0: EWsGcOpDrawArc, sl@0: EWsGcOpDrawLine, sl@0: EWsGcOpPlot, sl@0: EWsGcOpDrawTo, sl@0: EWsGcOpDrawBy, sl@0: EWsGcOpDrawPolyLine, sl@0: EWsGcOpDrawPolyLineContinued, //Quater Way sl@0: sl@0: EWsGcOpDrawPie, sl@0: EWsGcOpDrawRoundRect, sl@0: EWsGcOpDrawPolygon, sl@0: EWsGcOpStartSegmentedDrawPolygon, sl@0: EWsGcOpSegmentedDrawPolygonData, sl@0: EWsGcOpDrawSegmentedPolygon, sl@0: EWsGcOpDrawBitmap, sl@0: EWsGcOpDrawBitmap2, sl@0: EWsGcOpDrawBitmap3, sl@0: EWsGcOpDrawBitmapMasked, sl@0: EWsGcOpWsDrawBitmapMasked, sl@0: EWsGcOpDrawText, sl@0: EWsGcOpDrawTextPtr, sl@0: EWsGcOpDrawTextInContextPtr, sl@0: EWsGcOpDrawTextInContext, sl@0: EWsGcOpDrawTextVertical, sl@0: EWsGcOpDrawTextInContextVertical, sl@0: EWsGcOpDrawTextInContextVerticalPtr, sl@0: EWsGcOpDrawTextVerticalPtr, sl@0: EWsGcOpDrawBoxTextOptimised1, sl@0: EWsGcOpDrawBoxTextOptimised2, sl@0: EWsGcOpDrawBoxTextInContextOptimised1, sl@0: EWsGcOpDrawBoxTextInContextOptimised2, sl@0: EWsGcOpDrawBoxText, sl@0: EWsGcOpDrawBoxTextInContext, sl@0: EWsGcOpDrawBoxTextPtr, sl@0: EWsGcOpDrawBoxTextInContextPtr, sl@0: EWsGcOpDrawBoxTextVertical, sl@0: EWsGcOpDrawBoxTextInContextVertical, sl@0: EWsGcOpDrawBoxTextVerticalPtr, sl@0: EWsGcOpDrawBoxTextInContextVerticalPtr, sl@0: EWsGcOpMoveBy, sl@0: EWsGcOpMoveTo, sl@0: EWsGcOpSetOrigin, sl@0: EWsGcOpCopyRect, sl@0: EWsGcOpDrawRect, sl@0: EWsGcOpDrawEllipse, //Half Way sl@0: sl@0: EWsGcOpGdiBlt2, sl@0: EWsGcOpGdiBlt3, sl@0: EWsGcOpGdiBltMasked, sl@0: EWsGcOpGdiWsBlt2, sl@0: EWsGcOpGdiWsBlt3, sl@0: EWsGcOpGdiWsBltMasked, sl@0: EWsGcOpSize, sl@0: EWsGcOpUseFont, sl@0: //Two unused codes deleted sl@0: EWsGcOpDiscardFont=EWsGcOpUseFont+3, sl@0: EWsGcOpSetUnderlineStyle, sl@0: EWsGcOpSetStrikethroughStyle, sl@0: EWsGcOpSetDrawMode, sl@0: EWsGcOpTestInvariant, sl@0: EWsGcOpClearRect, sl@0: EWsGcOpClear, sl@0: EWsGcOpReset, sl@0: EWsGcOpSetDitherOrigin, sl@0: EWsGcOpMapColors, sl@0: EWsGcOpDrawWsGraphic, //PREQ1246 Bravo sl@0: EWsGcOpDrawWsGraphicPtr, sl@0: // sl@0: // Local opcodes used internally access GC drawing code sl@0: // sl@0: EWsGcOpDrawPolyLineLocal, sl@0: EWsGcOpDrawPolyLineLocalBufLen, sl@0: EWsGcOpDrawPolygonLocal, sl@0: EWsGcOpDrawPolygonLocalBufLen, sl@0: EWsGcOpDrawTextLocal, sl@0: EWsGcOpDrawTextInContextLocal, sl@0: EWsGcOpDrawBoxTextLocal, sl@0: EWsGcOpDrawBoxTextInContextLocal, sl@0: EWsGcOpDrawBitmapLocal, sl@0: EWsGcOpDrawBitmap2Local, sl@0: EWsGcOpDrawBitmap3Local, sl@0: EWsGcOpDrawBitmapMaskedLocal, sl@0: EWsGcOpGdiBlt2Local, sl@0: EWsGcOpGdiBlt3Local, sl@0: EWsGcOpGdiBltMaskedLocal, sl@0: sl@0: // sl@0: // Local opcodes used when reading long strings sl@0: // sl@0: EWsGcOpDrawTextPtr1, sl@0: EWsGcOpDrawTextInContextPtr1, sl@0: EWsGcOpDrawTextVerticalPtr1, sl@0: EWsGcOpDrawTextInContextVerticalPtr1, sl@0: EWsGcOpDrawBoxTextPtr1, sl@0: EWsGcOpDrawBoxTextInContextPtr1, sl@0: EWsGcOpDrawBoxTextVerticalPtr1, sl@0: EWsGcOpDrawBoxTextInContextVerticalPtr1, sl@0: sl@0: // sl@0: // New functions added leaving a space just in case it may be useful sl@0: // sl@0: EWsGcOpSetFaded=200, sl@0: EWsGcOpSetFadeParams, sl@0: EWsGcOpGdiAlphaBlendBitmaps, sl@0: EWsGcOpGdiWsAlphaBlendBitmaps, sl@0: EWsGcOpSetOpaque, sl@0: EWsGcOpMapColorsLocal, sl@0: EWsGcOpAlphaBlendBitmapsLocal, sl@0: EWsGcOpSetShadowColor, sl@0: EWsGcOpSetDrawTextInContext, sl@0: EWsGcOpDrawResourceToPos, sl@0: EWsGcOpDrawResourceToRect, sl@0: EWsGcOpDrawResourceFromRectToRect, sl@0: EWsGcOpDrawResourceWithData, sl@0: // sl@0: // Codes for internal use only sl@0: // sl@0: EWsStoreAllGcAttributes=1000, sl@0: EWsStoreClippingRegion, sl@0: EWsGcOpFlagDrawOp=0x8000, sl@0: }; sl@0: sl@0: enum TWsAnimDllOpcode sl@0: { sl@0: EWsAnimDllOpCreateInstance=0x0000, sl@0: EWsAnimDllOpCommand, sl@0: EWsAnimDllOpCommandReply, sl@0: EWsAnimDllOpDestroyInstance, sl@0: EWsAnimDllOpFree, sl@0: EWsAnimDllOpCreateInstanceSprite, sl@0: }; sl@0: sl@0: enum TWsScreenDeviceOpcodes sl@0: { sl@0: EWsSdSetableBitFlag=0x80000000, sl@0: EWsSdOpGetScanLine=0x0000, sl@0: EWsSdOpPixel, sl@0: EWsSdOpTwipsSize, sl@0: EWsSdOpPixelSize, sl@0: EWsSdOpFree, sl@0: EWsSdOpHorizontalTwipsToPixels, sl@0: EWsSdOpVerticalTwipsToPixels, sl@0: EWsSdOpHorizontalPixelsToTwips, sl@0: EWsSdOpVerticalPixelsToTwips, sl@0: EWsSdOpDisplayMode, sl@0: EWsSdOpRectCompare, sl@0: EWsSdOpPointerRect, sl@0: EWsSdOpCopyScreenToBitmap, sl@0: EWsSdOpCopyScreenToBitmap2, sl@0: EWsSdOpSetScreenSizeAndRotation, sl@0: EWsSdOpSetScreenSizeAndRotation2, sl@0: EWsSdOpGetDefaultScreenSizeAndRotation, sl@0: EWsSdOpGetDefaultScreenSizeAndRotation2, sl@0: EWsSdOpGetNumScreenModes, sl@0: EWsSdOpSetScreenMode, sl@0: EWsSdOpGetScreenModeSizeAndRotation, sl@0: EWsSdOpGetScreenModeSizeAndRotation2, sl@0: EWsSdOpSetScreenModeEnforcement, sl@0: EWsSdOpScreenModeEnforcement, sl@0: EWsSdOpSetModeRotation, sl@0: EWsSdOpGetRotationList, sl@0: EWsSdOpPaletteAttributes, sl@0: EWsSdOpSetPalette, sl@0: EWsSdOpGetPalette, sl@0: EWsSdOpGetScreenMode, sl@0: EWsSdOpGetDefaultScreenModeOrigin, sl@0: EWsSdOpGetScreenModeOrigin, sl@0: EWsSdOpGetScreenModeScale, sl@0: EWsSdOpGetCurrentScreenModeScale, sl@0: EWsSdOpSetAppScreenMode, sl@0: EWsSdOpGetScreenModeScaledOrigin, sl@0: EWsSdOpGetCurrentScreenModeScaledOrigin, sl@0: EWsSdOpSetCurrentScreenModeAttributes, sl@0: EWsSdOpGetCurrentScreenModeAttributes, sl@0: EWsSdOpGetScreenNumber, sl@0: EWsSdOpGetScreenSizeModeList, sl@0: EWsSdOpGetScreenModeDisplayMode, sl@0: EWsClOpSetBackLight, sl@0: EWsSdOpExtensionsSupported, sl@0: EWsSdOpXDcGetNumberOfResolutions, sl@0: EWsSdOpXDcGetResolutionsList, sl@0: EWsSdOpXDcGetConfiguration, sl@0: EWsSdOpXDcSetConfiguration, sl@0: EWsSdOpXDcGetPreferredDisplayVersion, sl@0: EWsSdOpXDcNotifyOnDisplayChange, sl@0: EWsSdOpXDcNotifyOnDisplayChangeCancel, sl@0: EWsSdOpXDcDisplayChangeEventEnabled, sl@0: EWsSdOpXDmMapExtent, sl@0: EWsSdOpXTestScreenCapture, sl@0: EWsSdOpIsScreenModeDynamic, sl@0: EWsSdOpXTestScreenCaptureSize, sl@0: }; sl@0: sl@0: /** Bitfield of interface extensions explicitly supported. sl@0: * The client interface is welcome to group functionality in different ways, if desired. sl@0: * Operations classified as inside extensions can be called and fail safely on an individual basis. sl@0: * Note that to distinguish versions, new bits may need to be used. sl@0: * The top bit is reserved so that error value returns can be distinguished. sl@0: **/ sl@0: enum TWsInterfaceExtensions sl@0: { sl@0: TWsSdXDisplayControl = 0x00000001, sl@0: TWsSdXDisplayMapping = 0x00000002, sl@0: TWsSdXDebugComposition = 0x00000004, sl@0: sl@0: sl@0: TWsSdXReservedErrorFlag = 0x80000000 sl@0: }; sl@0: sl@0: enum TWsSpriteOpcodes sl@0: { sl@0: EWsSpriteOpFree=0x0000, sl@0: EWsSpriteOpSetPosition, sl@0: EWsSpriteOpUpdateMember, sl@0: EWsSpriteOpUpdateMember2, sl@0: EWsSpriteOpActivate, sl@0: EWsSpriteOpAppendMember, sl@0: }; sl@0: sl@0: enum TWsBitmapOpcodes sl@0: { sl@0: EWsBitmapOpFree=0x0000, sl@0: }; sl@0: sl@0: enum TWsDirectOpcodes sl@0: { sl@0: EWsDirectOpFree=0x0000, sl@0: EWsDirectOpRequest, sl@0: EWsDirectOpInitFailed, sl@0: EWsDirectOpGetRegion, sl@0: EWsDirectOpCancel, sl@0: EWsDirectOpGetSendQueue, sl@0: EWsDirectOpGetRecQueue, sl@0: }; sl@0: sl@0: enum TWsClickOpcodes sl@0: { sl@0: EWsClickOpFree=0x0000, sl@0: EWsClickOpIsLoaded, sl@0: EWsClickOpUnLoad, sl@0: EWsClickOpLoad, sl@0: EWsClickOpCommandReply, sl@0: EWsClickOpSetKeyClick, sl@0: EWsClickOpSetPenClick, sl@0: EWsClickOpKeyClickEnabled, sl@0: EWsClickOpPenClickEnabled, sl@0: }; sl@0: sl@0: enum TWsGraphicBitFlags sl@0: { sl@0: EWsGraphicIdUid = 0x01, sl@0: EWsGraphicIdTransient = 0x02, sl@0: EWsGraphicReplace = 0x04 sl@0: }; sl@0: sl@0: enum TWsDrawableSourceOpcodes sl@0: { sl@0: EWsDrawableSourceOpFree=0x0000, sl@0: }; sl@0: sl@0: //////////////////////// sl@0: // Command structures sl@0: //////////////////////// sl@0: sl@0: /** Structure used to pass commands between the client and the server. sl@0: sl@0: @internalComponent sl@0: @released sl@0: @see RWsBuffer::DoWrite() sl@0: @see CWsClient::DoCommandBufL() sl@0: */ sl@0: struct TWsCmdHeaderBase sl@0: { sl@0: TUint16 iOpcode; sl@0: TInt16 iCmdLength; sl@0: }; sl@0: sl@0: /** Structure used to pass commands between the client and the server. sl@0: sl@0: @internalComponent sl@0: @released sl@0: @see RWsBuffer::DoWrite() sl@0: @see CWsClient::DoCommandBufL() sl@0: */ sl@0: struct TWsCmdHeader sl@0: { sl@0: TWsCmdHeaderBase iBase; sl@0: TInt32 iDestHandle; sl@0: }; sl@0: sl@0: // sl@0: // Command structures sl@0: // sl@0: sl@0: // Client command structures sl@0: sl@0: enum TWinTypes sl@0: { sl@0: EWinRedraw, sl@0: EWinBackedUp, sl@0: EWinBlank, sl@0: }; sl@0: sl@0: struct TWsClCmdCreateWindow sl@0: { sl@0: TInt parent; sl@0: TUint32 clientHandle; sl@0: TWinTypes type; sl@0: TDisplayMode displayMode; // Only used for backed up windows sl@0: }; sl@0: struct TWsClCmdCreateWindowGroup sl@0: { sl@0: TUint32 clientHandle; sl@0: TBool focus; sl@0: TInt parentId; sl@0: TInt32 screenDeviceHandle; sl@0: }; sl@0: struct TWsClCmdLoadAnimDll sl@0: { sl@0: TInt length; sl@0: }; sl@0: struct TWsClCmdCreatePointerCursor sl@0: { sl@0: TUint flags; sl@0: }; sl@0: struct TWsClCmdCustomTextCursorData sl@0: { sl@0: TInt identifier; sl@0: TUint flags; sl@0: RWsSession::TCustomTextCursorAlignment alignment; sl@0: }; sl@0: struct TWsClCmdCreateSprite sl@0: { sl@0: inline TWsClCmdCreateSprite(TInt aWindow, const TPoint &aPos, TUint aFlags); sl@0: TInt window; sl@0: TPoint pos; sl@0: TUint flags; sl@0: }; sl@0: struct TWsClCmdCreateBitmap sl@0: { sl@0: TInt handle; sl@0: }; sl@0: struct TWsClCmdSetHotKey sl@0: { sl@0: TUint type; sl@0: TUint modifiers; sl@0: TUint modifierMask; sl@0: TUint16 keycode; sl@0: TUint16 filler; sl@0: }; sl@0: struct TWsClCmdWindowGroupList sl@0: { sl@0: TInt priority; sl@0: TInt count; sl@0: TInt screenNumber; sl@0: }; sl@0: struct TWsClCmdSetWindowGroupOrdinalPosition sl@0: { sl@0: inline TWsClCmdSetWindowGroupOrdinalPosition(TInt aIdentifier, TInt aPosition); sl@0: TInt identifier; sl@0: TInt position; sl@0: }; sl@0: struct TWsClCmdSetKeyboardRepeatRate sl@0: { sl@0: inline TWsClCmdSetKeyboardRepeatRate(const TTimeIntervalMicroSeconds32 &aInitial,const TTimeIntervalMicroSeconds32 &aTime); sl@0: TTimeIntervalMicroSeconds32 initial; sl@0: TTimeIntervalMicroSeconds32 time; sl@0: }; sl@0: struct TWsClCmdSetDoubleClick sl@0: { sl@0: inline TWsClCmdSetDoubleClick(const TTimeIntervalMicroSeconds32 &aInterval,TInt aDistance); sl@0: TTimeIntervalMicroSeconds32 interval; sl@0: TInt distance; sl@0: }; sl@0: struct TWsClCmdSetSystemPointerCursor sl@0: { sl@0: TInt handle; sl@0: TInt number; sl@0: }; sl@0: struct TWsClCmdHeapSetFail sl@0: { sl@0: RHeap::TAllocFail type; sl@0: TInt value; sl@0: TInt burst; sl@0: }; sl@0: struct TWsClCmdSendEventToWindowGroup sl@0: { sl@0: inline TWsClCmdSendEventToWindowGroup(TInt aParameter, const TWsEvent &aEvent); sl@0: TInt parameter; sl@0: TWsEvent event; sl@0: }; sl@0: struct TWsClCmdFindWindowGroupIdentifier sl@0: { sl@0: inline TWsClCmdFindWindowGroupIdentifier(TInt aPreviousIdentifier,TInt aOffset, TInt aLength); sl@0: TInt identifier; sl@0: TInt offset; sl@0: TInt length; sl@0: }; sl@0: struct TWsClCmdSendMessageToWindowGroup sl@0: { sl@0: inline TWsClCmdSendMessageToWindowGroup(TInt aIdentifier, TUid aUid, TInt aDataLength, const TDesC8 *aPtr); sl@0: TInt identifierOrPriority; // identifier in case of EWsClOpSendMessageToWindowGroup, not used in case of EWsClOpSendMessageToAllWindowGroup, priority in case of EWsClOpSendMessageToAllWindowGroupPriority sl@0: TUid uid; sl@0: TInt dataLength; sl@0: const TDesC8 *ptr; sl@0: }; sl@0: struct TWsClCmdFetchMessage sl@0: { sl@0: inline TWsClCmdFetchMessage(TInt aWindowGroupIdentifier); sl@0: TInt windowGroupIdentifier; sl@0: }; sl@0: struct TWsClCmdFindWindowGroupIdentifierThread sl@0: { sl@0: inline TWsClCmdFindWindowGroupIdentifierThread(TInt aPreviousIdentifier,TThreadId aThreadId); sl@0: TInt identifier; sl@0: TThreadId threadId; sl@0: }; sl@0: struct TWsClCmdGetWindowGroupNameFromIdentifier sl@0: { sl@0: inline TWsClCmdGetWindowGroupNameFromIdentifier(TInt aIdentifier,TInt aMaxLength); sl@0: TInt identifier; sl@0: TInt maxLength; sl@0: }; sl@0: struct TWsClCmdOffEventsToShell sl@0: { sl@0: inline TWsClCmdOffEventsToShell(TBool aOn,TUint32 aWindow); sl@0: TBool on; sl@0: TUint32 window; sl@0: }; sl@0: struct TWsClCmdSetModifierState sl@0: { sl@0: TEventModifier modifier; sl@0: TModifierState state; sl@0: }; sl@0: struct TWsClCmdSetPointerCursorArea sl@0: { sl@0: inline TWsClCmdSetPointerCursorArea(TInt aMode,TRect aArea); sl@0: TInt mode; sl@0: TRect area; sl@0: }; sl@0: struct TWsClCmdSetSystemFaded sl@0: { sl@0: enum {EFaded=0x01,EUseDefaultMap=0x02}; sl@0: inline TWsClCmdSetSystemFaded(TBool aFaded,TBool aUseDefaults=ETrue,TUint8 aBlackMap=0,TUint8 aWhiteMap=0); sl@0: inline TBool Faded() const; sl@0: inline TBool UseDefaultMap() const; sl@0: inline void GetFadingParams(TUint8& aBlackMap,TUint8& aWhiteMap) const; sl@0: TUint params; sl@0: }; sl@0: struct TWsClCmdCreateGraphic sl@0: { sl@0: TUint iFlags; // TWsGraphicBitFlags sl@0: TInt iClientHandle; sl@0: TInt iId; sl@0: TUid iType; sl@0: TInt iDataLen; sl@0: TBool iRemoteReadData; sl@0: }; sl@0: struct TWsClCmdGdSendMessage sl@0: { sl@0: TInt iDataLen; sl@0: TBool iRemoteReadData; sl@0: }; sl@0: struct TWsClCmdGdGetId sl@0: { sl@0: TInt iId; sl@0: TBool iIsUid; sl@0: }; sl@0: struct TWsClCmdDebugInfo sl@0: { sl@0: inline TWsClCmdDebugInfo(TInt aFunction, TInt aParam); sl@0: TInt iFunction; sl@0: TInt iParam; sl@0: }; sl@0: struct TWsClCmdCreateDrawableSource; sl@0: struct TWsClCmdSurfaceRegister; sl@0: #if defined(SYMBIAN_GRAPHICS_GCE) sl@0: struct TWsClCmdCreateDrawableSource sl@0: { sl@0: inline TWsClCmdCreateDrawableSource(const TSgDrawableId& aDrawableId, TInt aScreenNumber); sl@0: TSgDrawableId iDrawableId; sl@0: TInt iScreenNumber; sl@0: }; sl@0: struct TWsClCmdSurfaceRegister sl@0: { sl@0: inline TWsClCmdSurfaceRegister(TInt aScreenNumber, const TSurfaceId& aSurface); sl@0: TInt screenNumber; sl@0: TSurfaceId surfaceId; sl@0: }; sl@0: #endif sl@0: struct TWsClCmdNumWindowGroups sl@0: { sl@0: TInt screenNumber; sl@0: TInt priority; sl@0: }; sl@0: struct TWsClCmdCreateScreenDevice sl@0: { sl@0: TInt screenNumber; sl@0: TUint clientScreenDevicePointer; sl@0: }; sl@0: struct TWsClCmdZThresholdPair sl@0: { sl@0: inline TWsClCmdZThresholdPair(const TInt aEnterThreshold, const TInt aExitThreshold); sl@0: TInt enterThreshold; sl@0: TInt exitThreshold; sl@0: }; sl@0: struct TWsClCmdSendEffectCommand sl@0: { sl@0: inline TWsClCmdSendEffectCommand(TInt aTfxCmd,TInt aTfxCmdDataLength, TInt aWinHandle); sl@0: TInt tfxCmd; sl@0: TInt tfxCmdDataLength; sl@0: TInt windowHandle; sl@0: }; sl@0: struct TWsClCmdRegisterEffect sl@0: { sl@0: inline TWsClCmdRegisterEffect(TInt aAction, TInt aPurpose, TInt aDirStrSize, TInt aPhase1StrSize, TInt aPhase2StrSize, TUint aAppUid, TBitFlags aFlags); sl@0: TInt tfxAction; sl@0: TInt tfxPurpose; sl@0: TInt tfxDirStrSize; sl@0: TInt tfxPhase1StrSize; sl@0: TInt tfxPhase2StrSize; sl@0: TUint tfxAppUid; sl@0: TBitFlags tfxFlags; sl@0: }; sl@0: struct TWsClCmdUnRegisterEffect sl@0: { sl@0: inline TWsClCmdUnRegisterEffect(TInt aAction, TInt aPurpose, TUint aAppUid); sl@0: TInt tfxAction; sl@0: TInt tfxPurpose; sl@0: TUint tfxAppUid; sl@0: }; sl@0: struct TWsClCmdOverrideEffect sl@0: { sl@0: inline TWsClCmdOverrideEffect(TInt aAction, TInt aPurpose, TInt aDirStrSize, TInt aPhase1StrSize, TInt aPhase2StrSize, TBitFlags aFlags); sl@0: TInt tfxAction; sl@0: TInt tfxPurpose; sl@0: TInt tfxDirStrSize; sl@0: TInt tfxPhase1StrSize; sl@0: TInt tfxPhase2StrSize; sl@0: TBitFlags tfxFlags; sl@0: }; sl@0: typedef TRequestStatus *RqStatPtr; sl@0: union TWsClCmdUnion sl@0: { sl@0: const TAny* any; sl@0: const TAny** pAny; sl@0: const TInt* Int; sl@0: const TUint* UInt; sl@0: const TBool* Bool; sl@0: const TUid* Uid; sl@0: const TPointerCursorMode* Mode; sl@0: const TInt *XyInput; sl@0: const TPoint* Point; sl@0: const TRgb* rgb; sl@0: const RqStatPtr* RequestStatus; sl@0: const TRawEvent* RawEvent; sl@0: const TKeyEvent* KeyEvent; sl@0: const RWsSession::TComputeMode* ComputeMode; sl@0: const RWsSession::TLoggingCommand* LogCommand; sl@0: const TWsClCmdCreateWindow* CreateWindow; sl@0: const TWsClCmdCreateWindowGroup* CreateWindowGroup; sl@0: const TWsClCmdLoadAnimDll* LoadAnimDll; sl@0: const TWsClCmdCreatePointerCursor* CreatePointerCursor; sl@0: const TWsClCmdCustomTextCursorData* CustomTextCursorData; sl@0: const TWsClCmdCreateSprite* CreateSprite; sl@0: const TWsClCmdCreateBitmap* CreateBitmap; sl@0: const TWsClCmdSetHotKey* SetHotKey; sl@0: const TWsClCmdWindowGroupList* WindowGroupList; sl@0: const TWsClCmdSetWindowGroupOrdinalPosition* SetWindowGroupOrdinalPosition; sl@0: const TWsClCmdSetKeyboardRepeatRate* SetKeyboardRepeatRate; sl@0: const TWsClCmdHeapSetFail* HeapSetFail; sl@0: const TWsClCmdSetDoubleClick* SetDoubleClick; sl@0: const TWsClCmdSetSystemPointerCursor* SetSystemPointerCursor; sl@0: const TWsClCmdSendEventToWindowGroup* SendEventToWindowGroup; sl@0: const TWsClCmdSendMessageToWindowGroup* SendMessageToWindowGroup; sl@0: const TWsClCmdFetchMessage* FetchMessage; sl@0: const TWsClCmdFindWindowGroupIdentifier* FindWindowGroupIdentifier; sl@0: const TWsClCmdFindWindowGroupIdentifierThread* FindWindowGroupIdentifierThread; sl@0: const TWsClCmdGetWindowGroupNameFromIdentifier* GetWindowGroupNameFromIdentifier; sl@0: const TWsClCmdOffEventsToShell* OffEventsToShell; sl@0: const TWsClCmdSetModifierState* SetModifierState; sl@0: const TWsClCmdSetPointerCursorArea* SetPointerCursorArea; sl@0: const TWsClCmdSetSystemFaded* SetSystemFaded; sl@0: const TWsClCmdCreateGraphic* CreateGraphic; sl@0: const TWsClCmdGdSendMessage* GraphicSendMessage; sl@0: const TWsClCmdGdGetId* GetGraphicId; sl@0: const TWsClCmdDebugInfo* DebugInfo; sl@0: const TWsClCmdSurfaceRegister* SurfaceRegister; sl@0: const TWsClCmdNumWindowGroups* NumWinGroups; sl@0: const TWsClCmdCreateScreenDevice* CreateScreenDevice; sl@0: const TWsClCmdZThresholdPair* ZThresholdPair; sl@0: const TWsClCmdCreateDrawableSource* CreateDrawableSource; sl@0: const TWsClCmdSendEffectCommand* SendEffectCommand; sl@0: const TWsClCmdRegisterEffect* RegisterEffect; sl@0: const TWsClCmdUnRegisterEffect* UnRegisterEffect; sl@0: const TWsClCmdOverrideEffect* OverrideEffect; sl@0: const TRenderOrientation* Orientation; sl@0: }; sl@0: sl@0: // Window command structures sl@0: sl@0: struct TWsWinCmdSetExtent sl@0: { sl@0: inline TWsWinCmdSetExtent(const TPoint &aPos,const TSize &aSize); sl@0: TPoint pos; sl@0: TSize size; sl@0: }; sl@0: struct TWsWinCmdOrdinalPos sl@0: { sl@0: TInt pos; sl@0: TInt ordinalPriority; sl@0: }; sl@0: struct TWsWinCmdScroll sl@0: { sl@0: inline TWsWinCmdScroll(const TRect &aClip,const TPoint &aOffset,const TRect &aRect); sl@0: TRect clip; sl@0: TPoint offset; sl@0: TRect rect; sl@0: }; sl@0: struct TWsWinCmdCaptureKey sl@0: { sl@0: TUint modifiers; sl@0: TUint modifierMask; sl@0: TUint key; sl@0: TInt priority; sl@0: }; sl@0: struct TWsWinCmdCaptureLongKey sl@0: { sl@0: inline TWsWinCmdCaptureLongKey(); sl@0: inline TWsWinCmdCaptureLongKey(TUint aModifiers,TUint aModifierMask,TUint aInputKey,TUint aOutputKey sl@0: ,TTimeIntervalMicroSeconds32 aDelay,TInt aPriority,TUint aFlags); sl@0: TUint modifiers; sl@0: TUint modifierMask; sl@0: TUint inputKey; sl@0: TUint outputKey; sl@0: TTimeIntervalMicroSeconds32 delay; sl@0: TInt priority; sl@0: TUint flags; sl@0: }; sl@0: struct TWsWinCmdPriorityKey sl@0: { sl@0: TUint modifiers; sl@0: TUint modifierMask; sl@0: TUint keycode; sl@0: }; sl@0: struct TWsWinCmdSetTextCursor sl@0: { sl@0: inline TWsWinCmdSetTextCursor(TUint32 aWindow, const TPoint &aPos, const TTextCursor &aCursor, const TRect &aRect); sl@0: inline TWsWinCmdSetTextCursor(TUint32 aWindow, const TPoint &aPos, const TTextCursor &aCursor); sl@0: TUint32 window; sl@0: TPoint pos; sl@0: TTextCursor cursor; sl@0: TRect rect; sl@0: }; sl@0: struct TWsWinCmdPointerFilter sl@0: { sl@0: TUint32 mask; sl@0: TUint32 flags; sl@0: }; sl@0: struct TWsWinCmdSetCornerType sl@0: { sl@0: TCornerType type; sl@0: TInt flags; sl@0: }; sl@0: struct TWsWinCmdSetShape sl@0: { sl@0: TPtrC8 *ptr; sl@0: TInt count; sl@0: }; sl@0: struct TWsWinCmdUpdateScreen sl@0: { sl@0: TPtrC8 *ptr; sl@0: TInt count; sl@0: }; sl@0: struct TWsWinCmdGrabControl sl@0: { sl@0: enum TWsWinCmdGrabControlFlags sl@0: { sl@0: ENone=0, sl@0: ESendUpEvent=0x2, sl@0: ESendReply=0x4 sl@0: }; sl@0: inline TWsWinCmdGrabControl(const TUint aGrabControlFlags); sl@0: inline TWsWinCmdGrabControl(const TUint8 aPointerNumber, const TUint aGrabControlFlags); sl@0: inline TBool CheckFlags(TUint aFlags) const; sl@0: inline TBool HasPointerNumber() const; sl@0: sl@0: // integer to ensure passed in unsigned TUint8 can't get confused with sl@0: // signed negative values that are used internally. sl@0: // The signed int member will be "promoted" to unsigned for the assignement in the constructor. sl@0: TInt pointerNumber; sl@0: TUint flags; sl@0: }; sl@0: sl@0: struct TWsWinCmdCancelPointerRepeatEventRequest sl@0: { sl@0: enum TCancelRepeatFlags sl@0: { sl@0: ECancelRepeatFlagsNone=0, sl@0: ECancelRepeatFlagsSendReply=0x2 sl@0: }; sl@0: sl@0: inline TWsWinCmdCancelPointerRepeatEventRequest(); sl@0: inline TWsWinCmdCancelPointerRepeatEventRequest(const TUint8 aPointerNumber); sl@0: inline TWsWinCmdCancelPointerRepeatEventRequest(const TUint8 aPointerNumber, const TUint aFlags); sl@0: inline TBool HasPointerNumber() const; sl@0: TInt pointerNumber; sl@0: TUint flags; sl@0: }; sl@0: sl@0: struct TWsWinCmdRequestPointerRepeatEvent sl@0: { sl@0: enum TRepeatFlags sl@0: { sl@0: ERepeatFlagsNone=0, sl@0: ERepeatFlagsSendReply=0x2 sl@0: }; sl@0: sl@0: inline TWsWinCmdRequestPointerRepeatEvent(const TTimeIntervalMicroSeconds32 &aTime,const TRect &aRect); sl@0: inline TWsWinCmdRequestPointerRepeatEvent(const TTimeIntervalMicroSeconds32 &aTime,const TRect &aRect,const TUint8 aPointerNumber, const TUint aRepeatFlags); sl@0: inline TBool HasPointerNumber() const; sl@0: TTimeIntervalMicroSeconds32 time; sl@0: TRect rect; sl@0: TInt pointerNumber; sl@0: TUint repeatFlags; sl@0: }; sl@0: struct TWsWinCmdAllocPointerMoveBuffer sl@0: { sl@0: TInt maxNumPoints; sl@0: TInt flags; sl@0: }; sl@0: struct TWsWinCmdSetName sl@0: { sl@0: TInt length; sl@0: const TDesC *ptr; sl@0: }; sl@0: struct TWsWinCmdAddKeyRect sl@0: { sl@0: inline TWsWinCmdAddKeyRect(const TRect &aRect,TInt aScanCodea, TBool aActivatedByPointerSwitchOn); sl@0: TRect rect; sl@0: TInt scanCode; sl@0: TBool activatedByPointerSwitchOn; sl@0: }; sl@0: struct TWsWinOpSetBackgroundSurfaceConfig; sl@0: #if defined(SYMBIAN_GRAPHICS_GCE) sl@0: struct TWsWinOpSetBackgroundSurfaceConfig sl@0: { sl@0: inline TWsWinOpSetBackgroundSurfaceConfig(const TSurfaceConfiguration& aConfiguration, TBool aTriggerRedraw); sl@0: TSurfaceConfiguration surfaceConfig; sl@0: TBool triggerRedraw; sl@0: }; sl@0: #endif sl@0: struct TWsWinCmdEnableModifierChangedEvents sl@0: { sl@0: inline TWsWinCmdEnableModifierChangedEvents(TUint aModifierMask, TEventControl aCircumstances); sl@0: TInt modifierMask; sl@0: TEventControl circumstances; sl@0: }; sl@0: struct TWsWinCmdSetFaded sl@0: { sl@0: enum {EFaded=0x01,EIncludeChildren=0x02,EUseDefaultMap=0x04}; sl@0: inline TWsWinCmdSetFaded(TBool aFaded, TBool aIncludeChildren sl@0: ,TBool aUseDefaults=ETrue,TUint8 aBlackMap=0,TUint8 aWhiteMap=0); sl@0: inline TBool Faded() const; sl@0: inline TBool IncludeChildren() const; sl@0: inline TBool UseDefaultMap() const; sl@0: inline void GetFadingParams(TUint8& aBlackMap,TUint8& aWhiteMap) const; sl@0: TUint params; sl@0: }; sl@0: sl@0: union TWsWinCmdUnion sl@0: { sl@0: const TAny *any; sl@0: const TAny **pAny; sl@0: const TRect *rect; sl@0: const TPoint *pos; sl@0: const TSize *size; sl@0: const TInt *Int; sl@0: const TUint *UInt; sl@0: const TBool *Bool; sl@0: const TEventControl *EventControl; sl@0: const TRgb *rgb; sl@0: const TDisplayMode *DisplayMode; sl@0: const TPasswordMode *PasswordMode; sl@0: const TRawEvent *RawEvent; sl@0: const TSurfaceConfiguration *SurfaceConfiguration; sl@0: const TWsWinCmdSetExtent *SetEx; sl@0: const TWsWinCmdOrdinalPos *OrdinalPos; sl@0: const TWsWinCmdScroll *ScrollRect; sl@0: const TWsWinCmdCaptureKey *CaptureKey; sl@0: const TWsWinCmdCaptureLongKey *CaptureLongKey; sl@0: const TWsWinCmdPriorityKey *PriorityKey; sl@0: const TWsWinCmdSetTextCursor *SetTextCursor; sl@0: const TWsWinCmdPointerFilter *PointerFilter; sl@0: const TWsWinCmdSetCornerType *SetCornerType; sl@0: const TWsWinCmdSetShape *SetShape; sl@0: const TWsWinCmdUpdateScreen *UpdateScreen; sl@0: const TWsWinCmdRequestPointerRepeatEvent *RequestPointerRepeatEvent; sl@0: const TWsWinCmdAllocPointerMoveBuffer *AllocPointerMoveBuffer; sl@0: const TWsWinCmdSetName *SetName; sl@0: const TWsWinCmdAddKeyRect *AddKeyRect; sl@0: const TWsWinOpSetBackgroundSurfaceConfig *SurfaceConfigurationAndTrigger; sl@0: const TWsWinCmdEnableModifierChangedEvents *EnableModifierChangedEvents; sl@0: const TWsWinCmdSetFaded *SetFaded; sl@0: const TSurfaceId *Surface; sl@0: const TWsWinCmdCancelPointerRepeatEventRequest *CancelPointerRepeatEventRequest; sl@0: const TWsWinCmdGrabControl *GrabControl; sl@0: const TWsClCmdSendEffectCommand *SendEffectCommand; sl@0: const TWsClCmdOverrideEffect* OverrideEffect; sl@0: }; sl@0: sl@0: // GC command structures sl@0: sl@0: struct TWsGcLargeStruct sl@0: { sl@0: TInt int1; sl@0: TInt int2; sl@0: TInt int3; sl@0: TInt int4; sl@0: TInt int5; sl@0: TInt int6; sl@0: TInt int7; sl@0: TInt int8; sl@0: TInt int9; sl@0: TBool tbool; sl@0: CGraphicsContext::TTextAlign align; sl@0: TAny* ptr; sl@0: }; sl@0: struct TWsGcCmdSetClippingRegion sl@0: { sl@0: TPtrC8 *ptr; sl@0: TInt count; sl@0: }; sl@0: struct TWsGcCmdSetJustification sl@0: { sl@0: TInt excessWidth; sl@0: TInt numGaps; sl@0: }; sl@0: struct TWsGcCmdDrawText sl@0: { sl@0: inline TWsGcCmdDrawText(const TPoint &aPos, TInt aLength); sl@0: TPoint pos; sl@0: TInt length; sl@0: }; sl@0: struct TWsGcCmdDrawTextPtr sl@0: { sl@0: TPoint pos; sl@0: TDesC *text; sl@0: }; sl@0: sl@0: sl@0: struct TWsGcCmdDrawTextVertical sl@0: { sl@0: inline TWsGcCmdDrawTextVertical(const TPoint &aPos, TInt aLength, TBool aUp); sl@0: TPoint pos; sl@0: TInt length; sl@0: TBool up; sl@0: }; sl@0: sl@0: struct TWsGcCmdDrawTextVerticalPtr sl@0: { sl@0: TPoint pos; sl@0: TBool up; sl@0: TDesC *text; sl@0: inline TWsGcCmdDrawTextVerticalPtr(const TDesC *aDesc, const TPoint& aPos, const TBool aUp); sl@0: }; sl@0: sl@0: struct TWsGcCmdDrawTextLocal sl@0: { sl@0: inline TWsGcCmdDrawTextLocal(const TPoint &aPos,const TDesC *aDesc); sl@0: TPoint pos; sl@0: const TDesC *desc; sl@0: }; sl@0: sl@0: struct TWsGcCmdBoxTextOptimised1 sl@0: { sl@0: inline TWsGcCmdBoxTextOptimised1(const TRect &aRect,TInt aBaselineOffset,TInt alength); sl@0: TRect box; sl@0: TInt baselineOffset; sl@0: TInt length; sl@0: }; sl@0: struct TWsGcCmdBoxTextOptimised2 sl@0: { sl@0: inline TWsGcCmdBoxTextOptimised2(const TRect &aRect,TInt aBaselineOffset,CGraphicsContext::TTextAlign aHoriz,TInt aLeftMrg,TInt aLength); sl@0: TRect box; sl@0: TInt baselineOffset; sl@0: CGraphicsContext::TTextAlign horiz; sl@0: TInt leftMrg; sl@0: TInt length; sl@0: }; sl@0: sl@0: struct TWsGcCmdBoxText sl@0: { sl@0: inline TWsGcCmdBoxText(const TRect &aRect,TInt aBaselineOffset,CGraphicsContext::TTextAlign aHoriz,TInt aLeftMrg,TInt aLength,TInt aWidth); sl@0: TRect box; sl@0: TInt baselineOffset; sl@0: CGraphicsContext::TTextAlign horiz; sl@0: TInt leftMrg; sl@0: TInt length; sl@0: TInt width; sl@0: }; sl@0: sl@0: struct TWsGcCmdBoxTextPtr sl@0: { sl@0: TRect box; sl@0: TInt baselineOffset; sl@0: CGraphicsContext::TTextAlign horiz; sl@0: TInt leftMrg; sl@0: TInt width; sl@0: TDesC *text; sl@0: }; sl@0: sl@0: struct TWsGcCmdBoxTextVertical sl@0: { sl@0: inline TWsGcCmdBoxTextVertical(const TRect& aBox); sl@0: TRect box; sl@0: TInt baselineOffset; sl@0: TBool up; sl@0: CGraphicsContext::TTextAlign vert; sl@0: TInt margin; sl@0: TInt length; sl@0: TInt width; sl@0: }; sl@0: sl@0: struct TWsGcCmdBoxTextVerticalPtr sl@0: { sl@0: TRect box; sl@0: TInt baselineOffset; sl@0: TBool up; sl@0: CGraphicsContext::TTextAlign vert; sl@0: TInt margin; sl@0: TInt width; sl@0: TDesC *text; sl@0: }; sl@0: sl@0: struct TWsGcCmdBoxTextLocal sl@0: { sl@0: inline TWsGcCmdBoxTextLocal(const TRect &aBox); sl@0: TRect box; sl@0: TInt baselineOffset; sl@0: CGraphicsContext::TTextAlign horiz; sl@0: TInt leftMrg; sl@0: const TDesC *desc; sl@0: }; sl@0: sl@0: struct TWsGcCmdDrawLine sl@0: { sl@0: inline TWsGcCmdDrawLine(const TPoint &aPnt1,const TPoint &aPnt2); sl@0: TPoint pnt1; sl@0: TPoint pnt2; sl@0: }; sl@0: struct TWsGcCmdDrawPolyLine sl@0: { sl@0: TInt numPoints; sl@0: TInt more; sl@0: TPoint last; sl@0: }; sl@0: struct TWsGcCmdDrawArcOrPie sl@0: { sl@0: inline TWsGcCmdDrawArcOrPie(const TRect &aRect,const TPoint &aStart,const TPoint &aEnd); sl@0: TRect rect; sl@0: TPoint start; sl@0: TPoint end; sl@0: }; sl@0: struct TWsGcCmdDrawRoundRect sl@0: { sl@0: inline TWsGcCmdDrawRoundRect(const TRect &aRect,const TSize &aEllipse); sl@0: TRect rect; sl@0: TSize ellipse; sl@0: }; sl@0: struct TWsGcCmdDrawPolygon sl@0: { sl@0: TInt numPoints; sl@0: CGraphicsContext::TFillRule fillRule; sl@0: }; sl@0: struct TWsGcCmdStartSegmentedDrawPolygon sl@0: { sl@0: TInt totalNumPoints; sl@0: }; sl@0: struct TWsGcCmdSegmentedDrawPolygonData sl@0: { sl@0: const TDesC8 *points; sl@0: TInt index; sl@0: TInt numPoints; sl@0: }; sl@0: struct TWsGcCmdDrawSegmentedPolygon sl@0: { sl@0: CGraphicsContext::TFillRule fillRule; sl@0: }; sl@0: struct TWsGcCmdDrawPolygonLocal sl@0: { sl@0: const CArrayFix *pointList; sl@0: CGraphicsContext::TFillRule fillRule; sl@0: }; sl@0: struct TWsGcCmdDrawPolygonLocalBufLen sl@0: { sl@0: inline TWsGcCmdDrawPolygonLocalBufLen(const TPoint *aPointList,TInt aNumPoints, CGraphicsContext::TFillRule aFillRule); sl@0: const TPoint *points; sl@0: TInt length; sl@0: CGraphicsContext::TFillRule fillRule; sl@0: }; sl@0: struct TWsGcCmdDrawPolyLineLocalBufLen sl@0: { sl@0: inline TWsGcCmdDrawPolyLineLocalBufLen(const TPoint *aPointList,TInt aNumPoints); sl@0: const TPoint *points; sl@0: TInt length; sl@0: }; sl@0: struct TWsGcCmdDrawBitmap sl@0: { sl@0: inline TWsGcCmdDrawBitmap(const TPoint &aPoint,TInt aHandle); sl@0: TInt handle; sl@0: TPoint pos; sl@0: }; sl@0: struct TWsGcCmdDrawBitmap2 sl@0: { sl@0: inline TWsGcCmdDrawBitmap2(const TRect &aRect,TInt aHandle); sl@0: TInt handle; sl@0: TRect rect; sl@0: }; sl@0: struct TWsGcCmdDrawBitmap3 sl@0: { sl@0: inline TWsGcCmdDrawBitmap3(const TRect &aRect,TInt aHandle,const TRect &aSrcRect); sl@0: TInt handle; sl@0: TRect rect; sl@0: TRect srcRect; sl@0: }; sl@0: struct TWsGcCmdDrawBitmapMasked sl@0: { sl@0: inline TWsGcCmdDrawBitmapMasked(const TRect &aDestRect,TInt aHandle,const TRect& aSrcRect,TInt aMaskHandle,TBool aInvertMask); sl@0: TInt iHandle; sl@0: TInt iMaskHandle; sl@0: TRect iRect; sl@0: TRect iSrcRect; sl@0: TBool iInvertMask; sl@0: }; sl@0: struct TWsGcCmdDrawBitmapLocal sl@0: { sl@0: inline TWsGcCmdDrawBitmapLocal(const TPoint &aPos,const CFbsBitmap *aBitmap); sl@0: const CFbsBitmap *bitmap; sl@0: TPoint pos; sl@0: }; sl@0: struct TWsGcCmdDrawBitmap2Local sl@0: { sl@0: inline TWsGcCmdDrawBitmap2Local(const TRect &aRect,const CFbsBitmap *aBitmap); sl@0: const CFbsBitmap *bitmap; sl@0: TRect rect; sl@0: }; sl@0: struct TWsGcCmdDrawBitmap3Local sl@0: { sl@0: inline TWsGcCmdDrawBitmap3Local(const TRect &aRect,const CFbsBitmap *aBitmap, const TRect &aSrcRect); sl@0: const CFbsBitmap *bitmap; sl@0: TRect rect; sl@0: TRect srcRect; sl@0: }; sl@0: struct TWsGcCmdDrawBitmapMaskedLocal sl@0: { sl@0: inline TWsGcCmdDrawBitmapMaskedLocal(const TRect &aDestRect,const CFbsBitmap* aBitmap,const TRect& aSrcRect,const CFbsBitmap* aMaskBitmap,TBool aInvertMask); sl@0: const CFbsBitmap* iBitmap; sl@0: const CFbsBitmap* iMaskBitmap; sl@0: TRect iRect; sl@0: TRect iSrcRect; sl@0: TBool iInvertMask; sl@0: }; sl@0: struct TWsGcCmdCopyRect sl@0: { sl@0: inline TWsGcCmdCopyRect(const TPoint &anOffset,const TRect &aRect); sl@0: TRect rect; // Must be first sl@0: TPoint pos; sl@0: }; sl@0: struct TWsGcCmdGdiBlt2 sl@0: { sl@0: inline TWsGcCmdGdiBlt2(const TPoint &aPoint, TInt aHandle); sl@0: TInt handle; sl@0: TPoint pos; sl@0: }; sl@0: struct TWsGcCmdGdiBlt3 sl@0: { sl@0: inline TWsGcCmdGdiBlt3(const TPoint &aPoint, TInt aHandle, const TRect &aSrcRect); sl@0: TInt handle; sl@0: TPoint pos; sl@0: TRect rect; sl@0: }; sl@0: struct TWsGcCmdGdiBlt2Local sl@0: { sl@0: inline TWsGcCmdGdiBlt2Local(const TPoint &aPoint,const CFbsBitmap *aBitmap); sl@0: const CFbsBitmap *bitmap; sl@0: TPoint pos; sl@0: }; sl@0: struct TWsGcCmdGdiBlt3Local sl@0: { sl@0: inline TWsGcCmdGdiBlt3Local(const TPoint &aDestination,const CFbsBitmap *aBitmap,const TRect &aSource); sl@0: const CFbsBitmap *bitmap; sl@0: TPoint pos; sl@0: TRect rect; sl@0: }; sl@0: struct TWsGcCmdGdiBltMaskedLocal sl@0: { sl@0: inline TWsGcCmdGdiBltMaskedLocal(const TPoint& aPoint,const CFbsBitmap* aBitmap,const TRect& aSourceRect,const CFbsBitmap* aMaskBitmap,TBool aInvertMask); sl@0: const CFbsBitmap *bitmap; sl@0: const CFbsBitmap *maskBitmap; sl@0: TBool invertMask; sl@0: TPoint pos; sl@0: TRect rect; sl@0: }; sl@0: struct TWsGcCmdUsePatternBrush sl@0: { sl@0: TRgb *pdata; sl@0: TInt width; sl@0: TInt height; sl@0: TBool color; sl@0: }; sl@0: struct TWsGcCmdBltMasked sl@0: { sl@0: inline TWsGcCmdBltMasked(); sl@0: inline TWsGcCmdBltMasked(const TPoint& aPoint,TInt aBitmap,const TRect& aSourceRect,TInt aMaskBitmap,TBool aInvertMask); sl@0: TPoint destination; sl@0: TInt handle; sl@0: TRect source; sl@0: TInt maskHandle; sl@0: TBool invertMask; sl@0: }; sl@0: struct TWsGcCmdAlphaBlendBitmaps sl@0: { sl@0: inline TWsGcCmdAlphaBlendBitmaps(); sl@0: inline TWsGcCmdAlphaBlendBitmaps(const TPoint& aPoint, TInt aBitmap,const TRect& aSourceRect,TInt aAlpha,const TPoint& aAlphaPoint); sl@0: TPoint point; sl@0: TInt bitmapHandle; sl@0: TRect source; sl@0: TInt alphaHandle; sl@0: TPoint alphaPoint; sl@0: }; sl@0: sl@0: struct TWsGcCmdAlphaBlendBitmapsLocal sl@0: { sl@0: inline TWsGcCmdAlphaBlendBitmapsLocal(const TPoint& aPoint, const CFbsBitmap* aBitmap, const TRect& aSourceRect, const CFbsBitmap* aAlpha, const TPoint& aAlphaPoint); sl@0: TPoint point; sl@0: const CFbsBitmap *iBitmap; sl@0: TRect source; sl@0: const CFbsBitmap *iAlpha; sl@0: TPoint alphaPoint; sl@0: }; sl@0: sl@0: struct TWsGcCmdMapColors sl@0: { sl@0: inline TWsGcCmdMapColors(const TRect &aRect, TInt aNumPairs, TBool aMapForwards); sl@0: TRect rect; sl@0: TInt numPairs; sl@0: TBool mapForwards; sl@0: }; sl@0: sl@0: struct TWsGcCmdMapColorsLocal sl@0: { sl@0: inline TWsGcCmdMapColorsLocal(const TRect &aRect, const TRgb* aColors, TInt aNumPairs, TBool aMapForwards); sl@0: TRect rect; sl@0: const TRgb *colors; sl@0: TInt numPairs; sl@0: TBool mapForwards; sl@0: }; sl@0: sl@0: struct TWsGcCmdDrawWsGraphic sl@0: { sl@0: inline TWsGcCmdDrawWsGraphic(const TWsGraphicId& aId,const TRect& aRect); sl@0: TUint iFlags; // TWsGraphicBitFlags sl@0: TInt iId; sl@0: TRect iRect; sl@0: TInt iDataLen; sl@0: }; sl@0: struct TWsGcCmdDrawTextInContext sl@0: { sl@0: inline TWsGcCmdDrawTextInContext(const TPoint &aPos, TInt aLength, TInt aStart, TInt aEnd); sl@0: TPoint pos; sl@0: TInt length; sl@0: TInt start; sl@0: TInt end; sl@0: }; sl@0: struct TWsGcCmdDrawTextInContextPtr sl@0: { sl@0: TPoint pos; sl@0: TDesC *text; sl@0: TInt start; sl@0: TInt end; sl@0: }; sl@0: struct TWsGcCmdDrawTextInContextVertical sl@0: { sl@0: inline TWsGcCmdDrawTextInContextVertical(const TPoint &aPos, TInt aLength, TBool aUp, TInt aStart, TInt aEnd); sl@0: TPoint pos; sl@0: TInt length; sl@0: TBool up; sl@0: TInt start; sl@0: TInt end; sl@0: }; sl@0: struct TWsGcCmdDrawTextInContextVerticalPtr sl@0: { sl@0: TPoint pos; sl@0: TBool up; sl@0: TDesC *text; sl@0: TInt start; sl@0: TInt end; sl@0: inline TWsGcCmdDrawTextInContextVerticalPtr(const TDesC *aDesc, const TPoint& aPos, const TBool aUp, const TInt aStart, const TInt aEnd); sl@0: }; sl@0: struct TWsGcCmdDrawTextInContextLocal sl@0: { sl@0: inline TWsGcCmdDrawTextInContextLocal(const TPoint &aPos,const TDesC *aDesc,const TInt aStart,const TInt aEnd); sl@0: TPoint pos; sl@0: const TDesC *desc; sl@0: TInt start; sl@0: TInt end; sl@0: }; sl@0: struct TWsGcCmdBoxTextInContextOptimised1 sl@0: { sl@0: inline TWsGcCmdBoxTextInContextOptimised1(const TRect &aRect,TInt aBaselineOffset,TInt alength, TInt aStart, TInt aEnd); sl@0: TRect box; sl@0: TInt baselineOffset; sl@0: TInt length; sl@0: TInt start; sl@0: TInt end; sl@0: }; sl@0: struct TWsGcCmdBoxTextInContextOptimised2 sl@0: { sl@0: inline TWsGcCmdBoxTextInContextOptimised2(const TRect &aRect,TInt aBaselineOffset,CGraphicsContext::TTextAlign aHoriz,TInt aLeftMrg,TInt aLength, TInt aStart, TInt aEnd); sl@0: TRect box; sl@0: TInt baselineOffset; sl@0: CGraphicsContext::TTextAlign horiz; sl@0: TInt leftMrg; sl@0: TInt length; sl@0: TInt start; sl@0: TInt end; sl@0: }; sl@0: struct TWsGcCmdBoxTextInContext sl@0: { sl@0: inline TWsGcCmdBoxTextInContext(const TRect &aRect,TInt aBaselineOffset,CGraphicsContext::TTextAlign aHoriz,TInt aLeftMrg,TInt aLength,TInt aWidth, TInt aStart, TInt aEnd); sl@0: TRect box; sl@0: TInt baselineOffset; sl@0: CGraphicsContext::TTextAlign horiz; sl@0: TInt leftMrg; sl@0: TInt length; sl@0: TInt width; sl@0: TInt start; sl@0: TInt end; sl@0: }; sl@0: struct TWsGcCmdBoxTextInContextPtr sl@0: { sl@0: TRect box; sl@0: TInt baselineOffset; sl@0: CGraphicsContext::TTextAlign horiz; sl@0: TInt leftMrg; sl@0: TInt width; sl@0: TDesC *text; sl@0: TInt start; sl@0: TInt end; sl@0: }; sl@0: struct TWsGcCmdBoxTextInContextVertical sl@0: { sl@0: inline TWsGcCmdBoxTextInContextVertical(const TRect& aBox); sl@0: TRect box; sl@0: TInt baselineOffset; sl@0: TBool up; sl@0: CGraphicsContext::TTextAlign vert; sl@0: TInt margin; sl@0: TInt length; sl@0: TInt width; sl@0: TInt start; sl@0: TInt end; sl@0: }; sl@0: struct TWsGcCmdBoxTextInContextVerticalPtr sl@0: { sl@0: TRect box; sl@0: TInt baselineOffset; sl@0: TBool up; sl@0: CGraphicsContext::TTextAlign vert; sl@0: TInt margin; sl@0: TInt width; sl@0: TInt start; sl@0: TInt end; sl@0: TDesC *text; sl@0: }; sl@0: struct TWsGcCmdBoxTextInContextLocal sl@0: { sl@0: inline TWsGcCmdBoxTextInContextLocal(const TRect &aBox,TInt aStart,TInt aEnd); sl@0: TRect box; sl@0: TInt baselineOffset; sl@0: CGraphicsContext::TTextAlign horiz; sl@0: TInt leftMrg; sl@0: TInt start; sl@0: TInt end; sl@0: const TDesC *desc; sl@0: }; sl@0: struct TWsGcCmdDrawResourceToPos sl@0: { sl@0: inline TWsGcCmdDrawResourceToPos(TInt aWsHandle, const TPoint &aPos, CWindowGc::TGraphicsRotation aRotation); sl@0: TInt wsHandle; sl@0: TPoint pos; sl@0: CWindowGc::TGraphicsRotation rotation; sl@0: }; sl@0: struct TWsGcCmdDrawResourceToRect sl@0: { sl@0: inline TWsGcCmdDrawResourceToRect(TInt aWsHandle, const TRect &aRect, CWindowGc::TGraphicsRotation aRotation); sl@0: TInt wsHandle; sl@0: TRect rect; sl@0: CWindowGc::TGraphicsRotation rotation; sl@0: }; sl@0: struct TWsGcCmdDrawResourceFromRectToRect sl@0: { sl@0: inline TWsGcCmdDrawResourceFromRectToRect(TInt aWsHandle, const TRect &aRectDest, const TRect &aRectSrc, CWindowGc::TGraphicsRotation aRotation); sl@0: TInt wsHandle; sl@0: TRect rectDest; sl@0: TRect rectSrc; sl@0: CWindowGc::TGraphicsRotation rotation; sl@0: }; sl@0: struct TWsGcCmdDrawResourceWithData sl@0: { sl@0: inline TWsGcCmdDrawResourceWithData(TInt aWsHandle, const TRect &aRect, const TDesC8* aDesc); sl@0: TInt wsHandle; sl@0: TRect rect; sl@0: const TDesC8* desc; sl@0: }; sl@0: sl@0: union TWsGcCmdUnion sl@0: { sl@0: const TAny *any; sl@0: const TAny **pAny; sl@0: const TRect *Rect; sl@0: const TUint *UInt; sl@0: const TInt *Int; sl@0: const TInt *handle; sl@0: const TBool *Bool; sl@0: const TRgb *rgb; sl@0: const TPoint *Point; sl@0: const TSize *Size; sl@0: const TFontUnderline *SetUnderlineStyle; sl@0: const TFontStrikethrough *SetStrikethroughStyle; sl@0: const TWsGcCmdDrawText *DrawText; sl@0: const TWsGcCmdDrawTextInContext *DrawTextInContext; sl@0: const TWsGcCmdDrawTextVertical *DrawTextVertical; sl@0: const TWsGcCmdDrawTextInContextVertical *DrawTextInContextVertical; sl@0: const TWsGcCmdDrawLine *DrawLine; sl@0: const TWsGcCmdDrawPolyLine *PolyLine; sl@0: const TWsGcCmdStartSegmentedDrawPolygon *StartSegmentedDrawPolygon; sl@0: const TWsGcCmdSegmentedDrawPolygonData *SegmentedDrawPolygonData; sl@0: const TWsGcCmdDrawSegmentedPolygon *DrawSegmentedPolygon; sl@0: const TWsGcCmdDrawPolygonLocal *DrawPolygonLocal; sl@0: const TWsGcCmdDrawPolygonLocalBufLen *DrawPolygonLocalBufLen; sl@0: const TWsGcCmdDrawPolyLineLocalBufLen *DrawPolyLineLocalBufLen; sl@0: const TWsGcCmdDrawArcOrPie *ArcOrPie; sl@0: const TWsGcCmdDrawRoundRect *RoundRect; sl@0: const TWsGcCmdDrawPolygon *Polygon; sl@0: const TWsGcCmdDrawBitmap *Bitmap; sl@0: const TWsGcCmdDrawBitmap2 *Bitmap2; sl@0: const TWsGcCmdDrawBitmap3 *Bitmap3; sl@0: const TWsGcCmdDrawBitmapMasked* iBitmapMasked; sl@0: const TWsGcCmdCopyRect *CopyRect; sl@0: const TWsGcCmdGdiBlt2 *GdiBlt2; sl@0: const TWsGcCmdGdiBlt3 *GdiBlt3; sl@0: const TWsGcCmdUsePatternBrush *UsePatternBrush; sl@0: const TWsGcCmdBltMasked *GdiBltMasked; sl@0: const TWsGcCmdSetClippingRegion *SetClippingRegion; sl@0: const TWsGcCmdBoxText *BoxText; sl@0: const TWsGcCmdBoxTextInContext *BoxTextInContext; sl@0: const TWsGcCmdBoxTextOptimised1 *BoxTextO1; sl@0: const TWsGcCmdBoxTextOptimised2 *BoxTextO2; sl@0: const TWsGcCmdBoxTextInContextOptimised1 *BoxTextInContextO1; sl@0: const TWsGcCmdBoxTextInContextOptimised2 *BoxTextInContextO2; sl@0: const TWsGcCmdDrawTextLocal *DrawTextLocal; sl@0: const TWsGcCmdDrawTextInContextLocal *DrawTextInContextLocal; sl@0: const TWsGcCmdBoxTextVertical *DrawBoxTextVertical; sl@0: const TWsGcCmdBoxTextInContextVertical *DrawBoxTextInContextVertical; sl@0: const TWsGcCmdBoxTextLocal *BoxTextLocal; sl@0: const TWsGcCmdBoxTextInContextLocal *BoxTextInContextLocal; sl@0: const TWsGcCmdGdiBlt2Local *GdiBlt2Local; sl@0: const TWsGcCmdGdiBlt3Local *GdiBlt3Local; sl@0: const TWsGcCmdGdiBltMaskedLocal *GdiBltMaskedLocal; sl@0: const TWsGcCmdDrawBitmapLocal *BitmapLocal; sl@0: const TWsGcCmdDrawBitmap2Local *Bitmap2Local; sl@0: const TWsGcCmdDrawBitmap3Local *Bitmap3Local; sl@0: const TWsGcCmdDrawBitmapMaskedLocal* iBitmapMaskedLocal; sl@0: const CArrayFix *PointList; sl@0: const TWsGcCmdSetJustification *SetJustification; sl@0: const TWsGcCmdMapColors *MapColors; sl@0: TWsGcCmdDrawTextPtr *DrawTextPtr; sl@0: TWsGcCmdDrawTextVerticalPtr *DrawTextVerticalPtr; sl@0: TWsGcCmdDrawTextInContextVerticalPtr *DrawTextInContextVerticalPtr; sl@0: TWsGcCmdBoxTextPtr *DrawBoxTextPtr; sl@0: TWsGcCmdBoxTextInContextPtr *DrawBoxTextInContextPtr; sl@0: TWsGcCmdBoxTextVerticalPtr *DrawBoxTextVerticalPtr; sl@0: TWsGcCmdBoxTextInContextVerticalPtr *DrawBoxTextInContextVerticalPtr; sl@0: TWsGcCmdDrawTextInContextPtr *DrawTextInContextPtr; sl@0: const TWsGcLargeStruct *LargeStruct; sl@0: const TWsGcCmdAlphaBlendBitmaps *AlphaBlendBitmaps; sl@0: const TWsGcCmdAlphaBlendBitmapsLocal *AlphaBlendBitmapsLocal; sl@0: const TWsGcCmdMapColorsLocal *MapColorsLocal; sl@0: const TWsGcCmdDrawWsGraphic* WsGraphic; sl@0: const TWsGcCmdDrawResourceToPos* DrawWsResourceToPos; sl@0: const TWsGcCmdDrawResourceToRect* DrawWsResourceToRect; sl@0: const TWsGcCmdDrawResourceFromRectToRect* DrawWsResourceFromRectToRect; sl@0: const TWsGcCmdDrawResourceWithData* DrawWsResourceWithData; sl@0: }; sl@0: sl@0: struct TWsSdCmdSetScreenRotation sl@0: { sl@0: inline TWsSdCmdSetScreenRotation(TInt aMode, CFbsBitGc::TGraphicsOrientation aRotation); sl@0: TInt mode; sl@0: CFbsBitGc::TGraphicsOrientation rotation; sl@0: }; sl@0: struct TWsSdCmdGetScanLine sl@0: { sl@0: inline TWsSdCmdGetScanLine(const TPoint &aPos, TInt aLen, TDisplayMode aDispMode); sl@0: TPoint pos; sl@0: TInt len; sl@0: TDisplayMode dispMode; sl@0: }; sl@0: struct TWsSdCmdRectCompare sl@0: { sl@0: inline TWsSdCmdRectCompare(const TRect &aRect1,const TRect &aRect2,TUint aFlags); sl@0: TRect rect1; sl@0: TRect rect2; sl@0: TUint flags; sl@0: }; sl@0: struct TWsSdCmdCopyScreenToBitmap sl@0: { sl@0: inline TWsSdCmdCopyScreenToBitmap(TInt aHandle); sl@0: TInt handle; sl@0: }; sl@0: struct TWsSdCmdCopyScreenToBitmap2 sl@0: { sl@0: inline TWsSdCmdCopyScreenToBitmap2(const TRect &aRect, TInt aHandle); sl@0: TRect rect; sl@0: TInt handle; sl@0: }; sl@0: struct TWsSdCmdSetPalette sl@0: { sl@0: inline TWsSdCmdSetPalette(TPtr8& aPtr); sl@0: TPtr8* ptr; sl@0: TInt length; sl@0: }; sl@0: struct TWsSdCmdMapCoordinates sl@0: { sl@0: inline TWsSdCmdMapCoordinates(const TRect &aSource, TCoordinateSpace aSourceSpace, TCoordinateSpace aTargetSpace); sl@0: TRect sourceRect; sl@0: TCoordinateSpace sourceSpace; sl@0: TCoordinateSpace targetSpace; sl@0: }; sl@0: union TWsSdCmdUnion sl@0: { sl@0: const TAny *any; sl@0: const TAny **pAny; sl@0: const TUint *UInt; sl@0: const TInt *Int; sl@0: const TPoint *Point; sl@0: const TPixelsTwipsAndRotation *PixelsTwipsAndRotation; sl@0: const TPixelsAndRotation *PixelsAndRotation; sl@0: const TWsSdCmdSetScreenRotation *SetScreenRotation; sl@0: const TWsSdCmdGetScanLine *GetScanLine; sl@0: const TWsSdCmdRectCompare *RectCompare; sl@0: const TWsSdCmdCopyScreenToBitmap *CopyScreenToBitmap; sl@0: const TWsSdCmdCopyScreenToBitmap2 *CopyScreenToBitmap2; sl@0: const TWsSdCmdSetPalette *SetPalette; sl@0: const TSizeMode *ScreenSizeMode; sl@0: const TDisplayConfiguration *DisplayConfiguration; sl@0: const TWsSdCmdMapCoordinates *MapCoordinates; sl@0: }; sl@0: sl@0: union TWsAnimDllCmdUnion sl@0: { sl@0: const TAny *any; sl@0: const TUint *UInt; sl@0: }; sl@0: sl@0: struct TWsSpriteCmdUpdateMember sl@0: { sl@0: inline TWsSpriteCmdUpdateMember(TInt aIndex,const TSpriteMember &aData); sl@0: TInt index; sl@0: TCmdSpriteMember data; sl@0: }; sl@0: union TWsSpriteCmdUnion sl@0: { sl@0: const TAny *any; sl@0: const TPoint *Point; sl@0: const TCmdSpriteMember *SpriteMember; sl@0: const TWsSpriteCmdUpdateMember *UpdateMember; sl@0: }; sl@0: sl@0: struct TWsDirectCmdRequestReply sl@0: { sl@0: inline TWsDirectCmdRequestReply(); sl@0: inline TWsDirectCmdRequestReply(TThreadId aId,TRequestStatus* aRequest); sl@0: TThreadId id; sl@0: TRequestStatus* request; sl@0: }; sl@0: union TWsDirectCmdUnion sl@0: { sl@0: const TAny *any; sl@0: const TInt *Int; sl@0: }; sl@0: sl@0: union TWsClickCmdUnion sl@0: { sl@0: const TAny *any; sl@0: const TInt *Int; sl@0: const TBool *Bool; sl@0: }; sl@0: sl@0: // Client side Panics and asserts sl@0: sl@0: enum TW32Assert // used for w32 code errors sl@0: { sl@0: EW32AssertOddLengthData, sl@0: EW32AssertNotImplemented, sl@0: EW32AssertIllegalOpcode, sl@0: EW32AssertDirectMisuse, sl@0: EW32AssertBufferLogic, sl@0: EW32AssertUnexpectedOutOfRangePointerNumber, // Used for an out-of-range pointer number error within the old API's which doesn't take a pointer number. sl@0: EW32AssertWindowSizeCacheFailure, sl@0: }; sl@0: sl@0: enum TW32Panic // used for application errors sl@0: { sl@0: EW32PanicReConnect, //An attempt was made to reconnect to the window server using RWsSession::Connect() without having closed the existing one first sl@0: EW32PanicWindowAlreadyClosed, //Not used sl@0: EW32PanicGcAlreadyClosed, //Not used sl@0: EW32PanicPaletteAlreadyClosed, //Not used sl@0: EW32PanicMapColorsTooManyPairs, //Raised by CWindowGc::MapColors() when its aNumPairs argument has a value greater than 16. sl@0: EW32PanicDataExceedsBufferLength, //A single string is too long to fit into the buffer. sl@0: EW32PanicNullPalette, //CWsScreenDevice::SetCustomPalette() was called with a NULL pointer. sl@0: EW32PanicSilentFail, //The caller would not know that the function was not successful sl@0: EW32PanicDirectMisuse, //A direct screen access function is being called out of turn sl@0: EW32PanicInvalidRegion, //An attempt to pass an invalid region to window server sl@0: 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 sl@0: EW32PanicNullArray, //A Function has been called with a NULL array pointer when it should not be sl@0: EW32PanicGraphicAlreadyConstructed, //Not used sl@0: EW32PanicGraphicOrphaned, //The CWsGraphic::CManager's RPointerArray has still pointers to CWsGraphic left inside when it should be empty sl@0: EW32PanicGraphicInternal, //Raised when one of the CWsGraphic::CManager's member has an inconsistent value (i.e. NULL when it should not be and viceversa) sl@0: EW32PanicGraphicBadBuffer, //Raised if RWsGraphicMsgBuf has been passed an out of bounds index or an incorret type message sl@0: EW32PanicGraphicNullData, //Raised when trying to send an empty TWsClCmdGdSendMessage sl@0: EW32PanicFunctionNotSupported, //Operation not supported in the current OS distribution sl@0: EW32PanicInvalidParameter, // Raised when an invalid parameter is passed to a function sl@0: EW32PanicGraphicDoubleConstruction, //Raised when Construct() is called on an already constructed client-side object sl@0: EW32PanicBadClientInterface, //Debug: Trying to use an interface that is not initialised sl@0: EW32PanicSizeNotExpected, //Debug: Returned data does not match expected sizes or granularity sl@0: EW32PanicStringTooLong, //A string is longer than it is allowed to be sl@0: }; sl@0: sl@0: enum WservShutdown sl@0: {EWservShutdownCheck=0x13572468}; // Parameter to EWservMessShutdown to stop accidental shutdowns sl@0: sl@0: enum WservMessages sl@0: { sl@0: EWservMessCommandBuffer, sl@0: EWservMessShutdown, sl@0: EWservMessInit, sl@0: EWservMessFinish, sl@0: EWservMessSyncMsgBuf, sl@0: EWservMessAsynchronousService=0x010000, sl@0: EWservMessAnimDllAsyncCommand=0x100000, sl@0: }; sl@0: sl@0: enum WH_HANDLES sl@0: { sl@0: WS_HANDLE_ROOT_WINDOW, sl@0: WS_HANDLE_CLIENT, sl@0: WS_HANDLE_WINDOW, sl@0: WS_HANDLE_GROUP_WINDOW, sl@0: WS_HANDLE_GC, sl@0: WS_HANDLE_CAPTURE_KEY, sl@0: WS_HANDLE_ANIM_DLL, sl@0: WS_HANDLE_SCREEN_DEVICE, sl@0: WS_HANDLE_SPRITE, sl@0: WS_HANDLE_POINTER_CURSOR, sl@0: WS_HANDLE_BITMAP, sl@0: WS_HANDLE_DIRECT, sl@0: WS_HANDLE_CLICK, sl@0: WS_HANDLE_TEXT_CURSOR, sl@0: WS_HANDLE_GRAPHIC_DRAWER, sl@0: WS_HANDLE_DRAWABLE_SOURCE, sl@0: WS_HANDLE_CAPTURE_KEY_UPDOWNS, sl@0: WS_HANDLE_CAPTURE_LONG_KEY, sl@0: }; sl@0: sl@0: enum TClientPanic sl@0: { sl@0: EWservNoPanic=0, // Dummy Value used to indicate no panic sl@0: EWservPanicOpcode=1, // Out of range opcode sl@0: EWservPanicBuffer=2, // Invalid command buffer sl@0: EWservPanicHandle=3, // Invalid handle sl@0: EWservPanicNullHandle=4, // Null handle given as a handle value sl@0: EWservPanicDrawable=5, // Invalid drawable handle sl@0: EWservPanicWindow=6, // Invalid window handle sl@0: EWservPanicBitmap=7, // Invalid bitmap handle sl@0: EWservPanicReadOutstanding=8, // Event read already outstanding sl@0: EWservPanicGcNotActive=9, // Tried use a non-active GC sl@0: EWservPanicGcActive=10, // Tried to activate an already active GC sl@0: EWservPanicWindowActive=11, // Window already active sl@0: EWservPanicRedrawActive=12, // Already inside a begin/end redraw pair sl@0: EWservPanicFont=13, // Invalid font handle sl@0: EWservPanicNoFont=14, // Printing with no active font sl@0: EWservPanicInvalidTextCursor=15, // Tried to set invalid text cursor type sl@0: EWservPanicReadOnlyDrawable=16, // Attempted to write to a read only drawable sl@0: EWservPanicInvalidRgb=17, // Invalid RGB passed to window server sl@0: EWservPanicPatternBrush=18, // Invalid pattern brush sl@0: EWservPanicNoBrush=19, // Trying to paint without a brush sl@0: EWservPanicUninitialisedBitmap=20, // Trying to use an uninitialised bitmap sl@0: EWservPanicDestroy=21, // Trying to do a client destroy function on an illegal handle sl@0: EWservPanicAnimDll=22, // Panic from Animator DLL sl@0: EWservPanicAnim=23, // Invalid Anim object handle sl@0: EWservPanicAnimLeave=24, // Leave from a non-leaving anim function sl@0: EWservPanicKeyOfDeath=25, // Killed by the key of death!!!! sl@0: EWservPanicTmpFont=26, // Tried to reuse tmp font sl@0: EWservPanicNoTmpFont=27, // Tried to free tmp font when not allocated sl@0: EWservPanicBadPolyData=28, // Inconsistent polygon/polyline data sl@0: EWservPanicNegativeShadowHeight=29, // Tried to set a negative shadow height sl@0: EWservPanicRedrawToNonRedrawWindow=30, // Tried to redraw a non-redrawable window sl@0: EWservPanicRedrawType=31, // Init message contained invalid redraw type sl@0: EWservPanicInvalidRegionCount=32, // InvalidRegion was passed a zero count sl@0: EWservPanicNoReplyBuffer=33, // No reply buffer was passed to a function that requires one sl@0: EWservPanicBackedUpWindowGcActive=34, // Attempting to reactive a backed up window's GC sl@0: EWservPanicCornerParams=35, // Invalid corner type or flags sl@0: EWservPanicBitmapAccess=36, // Bitmap access not enabled on a backed up window sl@0: EWservPanicDescriptor=37, // Bad descriptor passed sl@0: EWservPanicWindowDestroyed=38, // Accessing a sprite after it's window has been destroyed sl@0: EWservPanicUnsignalledEventData=39, // A request for event data without a signal for that data being made sl@0: EWservPanicMaskSize=40, // The mask for a sprite is smaller then the bitmap sl@0: EWservPanicSprite=41, // bad sprite handle sl@0: EWservPanicNotSystemPointerCursorListOwner=42, // Trying to set/clear a system pointer cursor when not owning the list sl@0: EWservPanicNoPointerBuffer=43, // Enabling the pointer buffer when there isn't one allocated sl@0: EWservPanicBufferPtr=44, // Invalid Buf,Len in the window server command buffer sl@0: EWservPanicHotKey=45, // Invalid hot key type sl@0: EWservPanicPassword=46, // Invalid call to PasswordEntered() sl@0: EWservPanicSetComputeMode=47, // Invalid value in call to SetComputeMode() sl@0: EWservPanicBackupDisplayMode=48, // Trying to set the display mode of a backed up window sl@0: EWservPanicFetchMessage=49, // Trying to fetch a message when one has not been signalled sl@0: EWservPanicReInitialise=50, // Client sent a second Init() message sl@0: EWservPanicNoWindowSpecifed=51, // Trying to get off messages without specifing a window to send them to sl@0: EWservPanicParentDeleted=52, // Setting size, pos or extent of a window whose parent or ancestor has been deleted sl@0: EWservPanicResetingDefaultOwner=53, // Calling the function RWindowGroup::DefaultOwningWindow() twice on the same group window sl@0: EWservPanicScreenModeNumber=54, // Calling an API function with an illegal screen size mode index sl@0: EWservPanicScreenEnforcementMode=55, // Illegal screen mode enforcement mode sl@0: EWservPanicEventType=56, // Must be a pointer event sl@0: EWservPanicRotation=57, // Not valid rotation sl@0: EWservPanicNotTopClient=58, // Can only call this on a window whoes parent is a group window sl@0: EWservPanicDirectMisuse=59, // Trying to do things to a Direct Screen Access object in the wrong order sl@0: EWservPanicDuplicateHandle=60, // Client Handle already in use sl@0: EWservPanicNoCustomTextCursor=61, // The custom text cursor has not been set sl@0: EWservPanicCustomTextCursorAlign=62, // Illegal custom text cursor allignment used sl@0: EWservPanicNoSpriteMember=63, // Use of a sprite that does not have any member set. sl@0: EWservPanicTransparencyObjNotCreated=64,// Trying to set a transparency operation to a window that has not been enabled to be transparent. sl@0: EWservPanicScreenNumber=65, // Calling an multiple screen API function with an illegal screen number sl@0: EWservPanicPermissionDenied=66, sl@0: EWservPanicFunctionLeave=67, // A leave occured while processing command in the middle of the buffer sl@0: EWservPanicGroupWinScreenDeviceDeleted=68, //Trying to use a group window with a deleted Screen Device sl@0: EWservPanicDrawCommandsInvalidState=69, //Redraw storing cannot be disabled for transparent window sl@0: EWservPanicWsGraphic=70, // Bad internal state in CWsGraphic code sl@0: EWservPanicUninitialisedClient=71, // Tried to use an uninitialised CWsClient sl@0: EWservPanicNullMessageFromClient=72, // Client IPC message is NULL sl@0: EWservPanicTransparencyMisuse=73, // Incompatible use of window transparency and background surface sl@0: EWservPanic_Removed1=74, // Panic removed in CR1489, can be reused sl@0: EWservPanicInvalidSurface=75, // An incorrect surface type has been used sl@0: EWservPanicInvalidSurfaceConfiguration=76, // Use of a surface configuration without valid members sl@0: EWservPanic_Removed2=77, // Panic removed in CR1489, can be reused sl@0: EwservPanicIllegalDisplayMode=78, // Illegal display mode is used sl@0: EWservPanicWindowBeginRedrawNotCalled=79, // A draw operation was performed on the CWindowGc outside a RWindow::BeginRedraw() / EndRedraw() pair. Enable AutoFlush to debug. sl@0: EWservPanicInvalidParameter=80, // General invalid parameter code for invariant checking sl@0: EWservPanicDrawableSource=81, // Invalid drawable source handle sl@0: EWservPanicWrongScreen=82, // Child apps can only be constructed on the same screen as their parent. See RWindowGroup::ConstructChildApp sl@0: EWservPanicScreenCaptureInvalidRequest=83, // With Screen Capture disabled, an unexpected invalid request has been received sl@0: EWservPanicInvalidDisplayConfiguration=84, // Use of a display configuration without valid members sl@0: EWservPanicUnableToEnableAdvPointer=85, // Use when advanced pointers are enabled after an RWindow is activated sl@0: }; sl@0: sl@0: #if defined(__WINS__) sl@0: // Under WINS character code is passed in as HIWORD of the scan code, sl@0: // and will need to be removed in some situations sl@0: #define __REMOVE_WINS_CHARCODE &0x0000FFFF sl@0: #define __WINS_CHARCODE(c) ((c) & 0xFFFF0000) sl@0: #else sl@0: #define __REMOVE_WINS_CHARCODE sl@0: #endif sl@0: sl@0: class CDebugLogBase: public CBase sl@0: { sl@0: public: sl@0: enum {EDummyConnectionId=0}; //This value is used to mean WSERV itself sl@0: enum sl@0: { sl@0: ELogEverything=1, // Gives the complete WSERV client server interaction along with client logging. sl@0: ELogIntermediate=5, // Gives the important WSERV client server interaction along with client logging. sl@0: ELogImportant=9, // Gives logging of panics and client logging. sl@0: }; sl@0: public: sl@0: virtual void CommandBuf(TInt aApp)=0; sl@0: virtual void Command(TInt aClass, TInt aOpcode, const TAny *aCmdData, TInt aHandle)=0; sl@0: virtual void NewClient(TUint aConnectionHandle)=0; sl@0: virtual void Reply(TInt aData)=0; sl@0: virtual void ReplyBuf(const TDesC8 &aDes)=0; sl@0: virtual void ReplyBuf(const TDesC16 &aDes)=0; sl@0: virtual void SignalEvent(TInt aApp)=0; sl@0: virtual void Panic(TInt aApp, TInt aReason)=0; sl@0: virtual void MiscMessage(TInt aPriority,const TDesC &aFmt,TInt aParam=0)=0; sl@0: virtual void HeapDump()=0; sl@0: virtual void SetLoggingLevel(TInt aLevel)=0; sl@0: virtual void IniFileSettingRead(TInt aScreen, const TDesC& aVarName, TBool aFound, const TDesC& aResult)=0; sl@0: }; sl@0: sl@0: inline TUint WservEncoding::Encode8BitValues(TUint8 aFirst,TUint8 aSecond) sl@0: {return aSecond<<8|aFirst;} sl@0: inline TUint WservEncoding::Encode8BitValues(TUint8 aFirst,TUint8 aSecond,TUint8 aThird) sl@0: {return aThird<<16|Encode8BitValues(aFirst,aSecond);} sl@0: inline TUint8 WservEncoding::ExtractFirst8BitValue(TUint aUint) sl@0: {return STATIC_CAST(TUint8,aUint&KMaxTUint8);} sl@0: inline TUint8 WservEncoding::ExtractSecond8BitValue(TUint aUint) sl@0: {return STATIC_CAST(TUint8,aUint>>8&KMaxTUint8);} sl@0: inline TUint8 WservEncoding::ExtractThird8BitValue(TUint aUint) sl@0: {return STATIC_CAST(TUint8,aUint>>16);} sl@0: // sl@0: inline TWsClCmdCreateSprite::TWsClCmdCreateSprite(TInt aWindow, const TPoint &aPos, TUint aFlags) : sl@0: window(aWindow),pos(aPos),flags(aFlags) sl@0: {} sl@0: inline TWsClCmdSetWindowGroupOrdinalPosition::TWsClCmdSetWindowGroupOrdinalPosition(TInt aIdentifier, TInt aPosition) : sl@0: identifier(aIdentifier),position(aPosition) sl@0: {} sl@0: inline TWsClCmdSetKeyboardRepeatRate::TWsClCmdSetKeyboardRepeatRate(const TTimeIntervalMicroSeconds32 &aInitial,const TTimeIntervalMicroSeconds32 &aTime) : sl@0: initial(aInitial), time(aTime) sl@0: {} sl@0: inline TWsClCmdSetDoubleClick::TWsClCmdSetDoubleClick(const TTimeIntervalMicroSeconds32 &aInterval,TInt aDistance) : sl@0: interval(aInterval), distance(aDistance) sl@0: {} sl@0: inline TWsClCmdSendEventToWindowGroup::TWsClCmdSendEventToWindowGroup(TInt aParameter, const TWsEvent &aEvent) : sl@0: parameter(aParameter), event(aEvent) sl@0: {} sl@0: inline TWsClCmdFindWindowGroupIdentifier::TWsClCmdFindWindowGroupIdentifier(TInt aPreviousIdentifier,TInt aOffset,TInt aLength) : sl@0: identifier(aPreviousIdentifier),offset(aOffset),length(aLength) sl@0: {} sl@0: inline TWsClCmdSendMessageToWindowGroup::TWsClCmdSendMessageToWindowGroup(TInt aIdentifier, TUid aUid, TInt aDataLength, const TDesC8 *aPtr) : sl@0: identifierOrPriority(aIdentifier), uid(aUid), dataLength(aDataLength), ptr(aPtr) sl@0: {} sl@0: inline TWsClCmdFetchMessage::TWsClCmdFetchMessage(TInt aWindowGroupIdentifier) : sl@0: windowGroupIdentifier(aWindowGroupIdentifier) sl@0: {} sl@0: inline TWsClCmdFindWindowGroupIdentifierThread::TWsClCmdFindWindowGroupIdentifierThread(TInt aPreviousIdentifier,TThreadId aThreadId) : sl@0: identifier(aPreviousIdentifier),threadId(aThreadId) sl@0: {} sl@0: inline TWsClCmdGetWindowGroupNameFromIdentifier::TWsClCmdGetWindowGroupNameFromIdentifier(TInt aIdentifier,TInt aMaxLength) : sl@0: identifier(aIdentifier),maxLength(aMaxLength) sl@0: {} sl@0: inline TWsClCmdOffEventsToShell::TWsClCmdOffEventsToShell(TBool aOn,TUint32 aWindow) : sl@0: on(aOn),window(aWindow) sl@0: {} sl@0: inline TWsClCmdSetPointerCursorArea::TWsClCmdSetPointerCursorArea(TInt aMode,TRect aArea) : sl@0: mode(aMode),area(aArea) sl@0: {} sl@0: inline TWsClCmdSetSystemFaded::TWsClCmdSetSystemFaded(TBool aFaded, TBool aUseDefaults/*=ETrue*/, TUint8 aBlackMap/*=0*/, TUint8 aWhiteMap/*=0*/) sl@0: {params=WservEncoding::Encode8BitValues(aBlackMap,aWhiteMap sl@0: ,STATIC_CAST(TUint8,(aFaded?EFaded:0)|(aUseDefaults?EUseDefaultMap:0)));} sl@0: inline TBool TWsClCmdSetSystemFaded::Faded() const sl@0: {return WservEncoding::ExtractThird8BitValue(params)&EFaded;} sl@0: inline TBool TWsClCmdSetSystemFaded::UseDefaultMap() const sl@0: {return WservEncoding::ExtractThird8BitValue(params)&EUseDefaultMap;} sl@0: inline void TWsClCmdSetSystemFaded::GetFadingParams(TUint8& aBlackMap,TUint8& aWhiteMap) const sl@0: {aBlackMap=WservEncoding::ExtractFirst8BitValue(params);aWhiteMap=WservEncoding::ExtractSecond8BitValue(params);} sl@0: inline TWsClCmdDebugInfo::TWsClCmdDebugInfo(TInt aFunction, TInt aParam) : iFunction(aFunction), iParam(aParam) sl@0: {} sl@0: #if defined(SYMBIAN_GRAPHICS_GCE) sl@0: inline TWsClCmdCreateDrawableSource::TWsClCmdCreateDrawableSource(const TSgDrawableId& aDrawableId, TInt aScreenNumber) sl@0: : iDrawableId(aDrawableId), iScreenNumber(aScreenNumber) sl@0: {} sl@0: inline TWsClCmdSurfaceRegister::TWsClCmdSurfaceRegister(TInt aScreenNumber, const TSurfaceId& aSurface): sl@0: screenNumber(aScreenNumber), surfaceId(aSurface) sl@0: {} sl@0: #endif sl@0: inline TWsWinCmdSetExtent::TWsWinCmdSetExtent(const TPoint &aPos,const TSize &aSize) : sl@0: pos(aPos),size(aSize) sl@0: {} sl@0: inline TWsWinCmdCaptureLongKey::TWsWinCmdCaptureLongKey() sl@0: {} sl@0: inline TWsWinCmdCaptureLongKey::TWsWinCmdCaptureLongKey(TUint aModifiers,TUint aModifierMask,TUint aInputKey,TUint aOutputKey sl@0: ,TTimeIntervalMicroSeconds32 aDelay,TInt aPriority,TUint aFlags) : sl@0: modifiers(aModifiers),modifierMask(aModifierMask),inputKey(aInputKey),outputKey(aOutputKey) sl@0: ,delay(aDelay),priority(aPriority),flags(aFlags) sl@0: {} sl@0: inline TWsWinCmdScroll::TWsWinCmdScroll(const TRect &aClip,const TPoint &aOffset,const TRect &aRect) : sl@0: clip(aClip), offset(aOffset), rect(aRect) sl@0: {} sl@0: inline TWsWinCmdSetTextCursor::TWsWinCmdSetTextCursor(TUint32 aWindow, const TPoint &aPos, const TTextCursor &aCursor, const TRect &aRect) : sl@0: window(aWindow), pos(aPos), cursor(aCursor), rect(aRect) sl@0: {} sl@0: inline TWsWinCmdSetTextCursor::TWsWinCmdSetTextCursor(TUint32 aWindow, const TPoint &aPos, const TTextCursor &aCursor) : sl@0: window(aWindow), pos(aPos), cursor(aCursor) sl@0: {} sl@0: inline TWsWinCmdGrabControl::TWsWinCmdGrabControl(const TUint aGrabControlFlags) sl@0: : pointerNumber(KErrNotFound), flags(aGrabControlFlags) sl@0: {} sl@0: inline TWsWinCmdGrabControl::TWsWinCmdGrabControl(const TUint8 aPointerNumber, const TUint aGrabControlFlags) sl@0: : pointerNumber(aPointerNumber), flags(aGrabControlFlags) sl@0: {} sl@0: inline TBool TWsWinCmdGrabControl::CheckFlags(TUint aFlags) const sl@0: {return (flags&aFlags)==aFlags;} sl@0: inline TBool TWsWinCmdGrabControl::HasPointerNumber() const sl@0: {return KErrNotFound!=pointerNumber;} sl@0: sl@0: inline TWsWinCmdCancelPointerRepeatEventRequest::TWsWinCmdCancelPointerRepeatEventRequest() sl@0: : pointerNumber(KErrNotFound), flags(TWsWinCmdCancelPointerRepeatEventRequest::ECancelRepeatFlagsNone) sl@0: {} sl@0: inline TWsWinCmdCancelPointerRepeatEventRequest::TWsWinCmdCancelPointerRepeatEventRequest(const TUint8 aPointerNumber) sl@0: : pointerNumber(aPointerNumber), flags(TWsWinCmdCancelPointerRepeatEventRequest::ECancelRepeatFlagsNone) sl@0: {} sl@0: inline TWsWinCmdCancelPointerRepeatEventRequest::TWsWinCmdCancelPointerRepeatEventRequest(const TUint8 aPointerNumber, const TUint aFlags) sl@0: : pointerNumber(aPointerNumber), flags(aFlags) sl@0: {} sl@0: inline TBool TWsWinCmdCancelPointerRepeatEventRequest::HasPointerNumber() const sl@0: {return KErrNotFound!=pointerNumber;} sl@0: inline TWsWinCmdRequestPointerRepeatEvent::TWsWinCmdRequestPointerRepeatEvent(const TTimeIntervalMicroSeconds32 &aTime,const TRect &aRect) sl@0: : time(aTime),rect(aRect),pointerNumber(KErrNotFound),repeatFlags(ERepeatFlagsNone) sl@0: {} sl@0: inline TWsWinCmdRequestPointerRepeatEvent::TWsWinCmdRequestPointerRepeatEvent(const TTimeIntervalMicroSeconds32 &aTime,const TRect &aRect,const TUint8 aPointerNumber, const TUint aRepeatFlags) sl@0: : time(aTime),rect(aRect),pointerNumber(aPointerNumber),repeatFlags(aRepeatFlags) sl@0: {} sl@0: inline TBool TWsWinCmdRequestPointerRepeatEvent::HasPointerNumber() const sl@0: {return KErrNotFound!=pointerNumber;} sl@0: inline TWsClCmdZThresholdPair::TWsClCmdZThresholdPair(const TInt aEnterThreshold, const TInt aExitThreshold) sl@0: : enterThreshold(aEnterThreshold),exitThreshold(aExitThreshold) sl@0: {} sl@0: inline TWsClCmdSendEffectCommand::TWsClCmdSendEffectCommand(TInt aTfxCmd,TInt aTfxCmdDataLength, TInt aWinHandle) : sl@0: tfxCmd(aTfxCmd), tfxCmdDataLength(aTfxCmdDataLength), windowHandle(aWinHandle) sl@0: {} sl@0: inline TWsClCmdRegisterEffect::TWsClCmdRegisterEffect(TInt aAction, TInt aPurpose, TInt aDirStrSize, TInt aPhase1StrSize, TInt aPhase2StrSize, TUint aAppUid, TBitFlags aFlags) : sl@0: tfxAction(aAction), tfxPurpose(aPurpose), tfxDirStrSize(aDirStrSize), tfxPhase1StrSize(aPhase1StrSize), tfxPhase2StrSize(aPhase2StrSize), tfxAppUid(aAppUid), tfxFlags(aFlags) sl@0: {} sl@0: inline TWsClCmdUnRegisterEffect::TWsClCmdUnRegisterEffect(TInt aAction, TInt aPurpose, TUint aAppUid) : sl@0: tfxAction(aAction), tfxPurpose(aPurpose), tfxAppUid(aAppUid) sl@0: {} sl@0: inline TWsClCmdOverrideEffect::TWsClCmdOverrideEffect(TInt aAction, TInt aPurpose, TInt aDirStrSize, TInt aPhase1StrSize, TInt aPhase2StrSize, TBitFlags aFlags) : sl@0: tfxAction(aAction), tfxPurpose(aPurpose), tfxDirStrSize(aDirStrSize), tfxPhase1StrSize(aPhase1StrSize), tfxPhase2StrSize(aPhase2StrSize), tfxFlags(aFlags) sl@0: {} sl@0: inline TWsWinCmdAddKeyRect::TWsWinCmdAddKeyRect(const TRect &aRect,TInt aScanCode, TBool aActivatedByPointerSwitchOn) : sl@0: rect(aRect), scanCode(aScanCode), activatedByPointerSwitchOn(aActivatedByPointerSwitchOn) sl@0: {} sl@0: #if defined(SYMBIAN_GRAPHICS_GCE) sl@0: inline TWsWinOpSetBackgroundSurfaceConfig::TWsWinOpSetBackgroundSurfaceConfig(const TSurfaceConfiguration& aConfiguration, TBool aTriggerRedraw) : sl@0: surfaceConfig(aConfiguration), triggerRedraw(aTriggerRedraw) sl@0: {} sl@0: #endif sl@0: inline TWsWinCmdEnableModifierChangedEvents::TWsWinCmdEnableModifierChangedEvents(TUint aModifierMask, TEventControl aCircumstances) : sl@0: modifierMask(aModifierMask), circumstances(aCircumstances) sl@0: {} sl@0: inline TWsWinCmdSetFaded::TWsWinCmdSetFaded(TBool aFaded, TBool aIncludeChildren, TBool aUseDefaults/*=ETrue*/, TUint8 aBlackMap/*=0*/, TUint8 aWhiteMap/*=0*/) sl@0: {params=WservEncoding::Encode8BitValues(aBlackMap,aWhiteMap sl@0: ,STATIC_CAST(TUint8,(aFaded?EFaded:0)|(aIncludeChildren?EIncludeChildren:0)|(aUseDefaults?EUseDefaultMap:0)));} sl@0: inline TBool TWsWinCmdSetFaded::Faded() const sl@0: {return WservEncoding::ExtractThird8BitValue(params)&EFaded;} sl@0: inline TBool TWsWinCmdSetFaded::IncludeChildren() const sl@0: {return WservEncoding::ExtractThird8BitValue(params)&EIncludeChildren;} sl@0: inline TBool TWsWinCmdSetFaded::UseDefaultMap() const sl@0: {return WservEncoding::ExtractThird8BitValue(params)&EUseDefaultMap;} sl@0: inline void TWsWinCmdSetFaded::GetFadingParams(TUint8& aBlackMap,TUint8& aWhiteMap) const sl@0: {aBlackMap=WservEncoding::ExtractFirst8BitValue(params);aWhiteMap=WservEncoding::ExtractSecond8BitValue(params);} sl@0: // sl@0: inline TWsGcCmdBoxTextVertical::TWsGcCmdBoxTextVertical(const TRect& aBox) : box(aBox) sl@0: {} sl@0: inline TWsGcCmdBoxTextLocal::TWsGcCmdBoxTextLocal(const TRect &aBox) : box(aBox) sl@0: {} sl@0: inline TWsGcCmdDrawTextLocal::TWsGcCmdDrawTextLocal(const TPoint &aPos,const TDesC *aDesc) : sl@0: pos(aPos), desc(aDesc) sl@0: {} sl@0: inline TWsGcCmdDrawLine::TWsGcCmdDrawLine(const TPoint &aPnt1,const TPoint &aPnt2) : pnt1(aPnt1),pnt2(aPnt2) sl@0: {} sl@0: inline TWsGcCmdDrawArcOrPie::TWsGcCmdDrawArcOrPie(const TRect &aRect,const TPoint &aStart,const TPoint &aEnd) : sl@0: rect(aRect),start(aStart),end(aEnd) sl@0: {} sl@0: inline TWsGcCmdDrawText::TWsGcCmdDrawText(const TPoint &aPos, TInt aLength) : sl@0: pos(aPos),length(aLength) sl@0: {} sl@0: inline TWsGcCmdDrawTextVertical::TWsGcCmdDrawTextVertical(const TPoint &aPos, TInt aLength, TBool aUp) : sl@0: pos(aPos),length(aLength),up(aUp) sl@0: {} sl@0: inline TWsGcCmdBoxTextOptimised1::TWsGcCmdBoxTextOptimised1(const TRect &aRect, TInt aBaselineOffset,TInt aLength) : sl@0: box(aRect),baselineOffset(aBaselineOffset),length(aLength) sl@0: {} sl@0: inline TWsGcCmdBoxTextOptimised2::TWsGcCmdBoxTextOptimised2(const TRect &aRect,TInt aBaselineOffset,CGraphicsContext::TTextAlign aHoriz,TInt aLeftMrg,TInt aLength) : sl@0: box(aRect),baselineOffset(aBaselineOffset),horiz(aHoriz),leftMrg(aLeftMrg),length(aLength) sl@0: {} sl@0: inline TWsGcCmdBoxText::TWsGcCmdBoxText(const TRect &aRect,TInt aBaselineOffset,CGraphicsContext::TTextAlign aHoriz,TInt aLeftMrg,TInt aLength,TInt aWidth) : sl@0: box(aRect),baselineOffset(aBaselineOffset),horiz(aHoriz),leftMrg(aLeftMrg),length(aLength),width(aWidth) sl@0: {} sl@0: inline TWsGcCmdDrawRoundRect::TWsGcCmdDrawRoundRect(const TRect &aRect,const TSize &aEllipse) : rect(aRect), ellipse(aEllipse) sl@0: {} sl@0: inline TWsGcCmdDrawPolygonLocalBufLen::TWsGcCmdDrawPolygonLocalBufLen(const TPoint *aPointList,TInt aNumPoints, CGraphicsContext::TFillRule aFillRule) : sl@0: points(aPointList),length(aNumPoints),fillRule(aFillRule) sl@0: {} sl@0: inline TWsGcCmdDrawPolyLineLocalBufLen::TWsGcCmdDrawPolyLineLocalBufLen(const TPoint *aPointList,TInt aNumPoints) : sl@0: points(aPointList),length(aNumPoints) sl@0: {} sl@0: inline TWsGcCmdDrawBitmap::TWsGcCmdDrawBitmap(const TPoint &aPoint,TInt aHandle) : handle(aHandle), pos(aPoint) sl@0: {} sl@0: inline TWsGcCmdDrawBitmap2::TWsGcCmdDrawBitmap2(const TRect &aRect,TInt aHandle) : handle(aHandle), rect(aRect) sl@0: {} sl@0: inline TWsGcCmdDrawBitmap3::TWsGcCmdDrawBitmap3(const TRect &aRect,TInt aHandle,const TRect &aSrcRect) : sl@0: handle(aHandle), rect(aRect), srcRect(aSrcRect) sl@0: {} sl@0: inline TWsGcCmdDrawBitmapMasked::TWsGcCmdDrawBitmapMasked(const TRect &aDestRect,TInt aHandle,const TRect& aSrcRect,TInt aMaskHandle,TBool aInvertMask) : sl@0: iHandle(aHandle),iMaskHandle(aMaskHandle),iRect(aDestRect),iSrcRect(aSrcRect),iInvertMask(aInvertMask) sl@0: {} sl@0: inline TWsGcCmdDrawBitmapLocal::TWsGcCmdDrawBitmapLocal(const TPoint &aPos,const CFbsBitmap *aBitmap) : sl@0: bitmap(aBitmap), pos(aPos) sl@0: {} sl@0: inline TWsGcCmdDrawBitmap2Local::TWsGcCmdDrawBitmap2Local(const TRect &aRect,const CFbsBitmap *aBitmap) : sl@0: bitmap(aBitmap), rect(aRect) sl@0: {} sl@0: inline TWsGcCmdDrawBitmap3Local::TWsGcCmdDrawBitmap3Local(const TRect &aRect,const CFbsBitmap *aBitmap,const TRect &aSrcRect) : sl@0: bitmap(aBitmap), rect(aRect), srcRect(aSrcRect) sl@0: {} sl@0: inline TWsGcCmdDrawBitmapMaskedLocal::TWsGcCmdDrawBitmapMaskedLocal(const TRect &aDestRect,const CFbsBitmap* aBitmap,const TRect& aSrcRect,const CFbsBitmap* aMaskBitmap,TBool aInvertMask) : sl@0: iBitmap(aBitmap),iMaskBitmap(aMaskBitmap),iRect(aDestRect),iSrcRect(aSrcRect),iInvertMask(aInvertMask) sl@0: {} sl@0: inline TWsGcCmdCopyRect::TWsGcCmdCopyRect(const TPoint &anOffset,const TRect &aRect) : sl@0: rect(aRect),pos(anOffset) sl@0: {} sl@0: inline TWsGcCmdGdiBlt2::TWsGcCmdGdiBlt2(const TPoint &aPoint, TInt aHandle) : sl@0: handle(aHandle), pos(aPoint) sl@0: {} sl@0: inline TWsGcCmdGdiBlt3::TWsGcCmdGdiBlt3(const TPoint &aPoint, TInt aHandle, const TRect &aSrcRect) : sl@0: handle(aHandle),pos(aPoint),rect(aSrcRect) sl@0: {} sl@0: inline TWsGcCmdGdiBlt2Local::TWsGcCmdGdiBlt2Local(const TPoint &aPoint,const CFbsBitmap *aBitmap) : sl@0: bitmap(aBitmap), pos(aPoint) sl@0: {} sl@0: inline TWsGcCmdGdiBlt3Local::TWsGcCmdGdiBlt3Local(const TPoint &aDestination,const CFbsBitmap *aBitmap,const TRect &aSource) : sl@0: bitmap(aBitmap), pos(aDestination), rect(aSource) sl@0: {} sl@0: inline TWsGcCmdGdiBltMaskedLocal::TWsGcCmdGdiBltMaskedLocal(const TPoint& aPoint,const CFbsBitmap* aBitmap,const TRect &aSourceRect,const CFbsBitmap* aMaskBitmap,TBool aInvertMask) : sl@0: bitmap(aBitmap), maskBitmap(aMaskBitmap), invertMask(aInvertMask), pos(aPoint), rect(aSourceRect) sl@0: {} sl@0: inline TWsGcCmdBltMasked::TWsGcCmdBltMasked() sl@0: {} sl@0: inline TWsGcCmdBltMasked::TWsGcCmdBltMasked(const TPoint& aPoint,TInt aBitmap,const TRect& aSourceRect,TInt aMaskBitmap,TBool aInvertMask) : sl@0: destination(aPoint), handle(aBitmap), source(aSourceRect), maskHandle(aMaskBitmap), invertMask(aInvertMask) sl@0: {} sl@0: inline TWsGcCmdMapColors::TWsGcCmdMapColors(const TRect &aRect, TInt aNumPairs, TBool aMapForwards) : sl@0: rect(aRect), numPairs(aNumPairs), mapForwards(aMapForwards) sl@0: {} sl@0: inline TWsGcCmdMapColorsLocal::TWsGcCmdMapColorsLocal(const TRect &aRect, const TRgb *aColors, TInt aNumPairs, TBool aMapForwards) : sl@0: rect(aRect), colors(aColors), numPairs(aNumPairs), mapForwards(aMapForwards) sl@0: {} sl@0: inline TWsGcCmdAlphaBlendBitmaps::TWsGcCmdAlphaBlendBitmaps() sl@0: {} sl@0: inline TWsGcCmdAlphaBlendBitmaps::TWsGcCmdAlphaBlendBitmaps(const TPoint& aPoint, TInt aBitmap,const TRect& aSourceRect,TInt aAlpha,const TPoint& aAlphaPoint) : sl@0: point(aPoint), bitmapHandle(aBitmap), source(aSourceRect), alphaHandle(aAlpha), alphaPoint(aAlphaPoint) sl@0: {} sl@0: inline TWsGcCmdAlphaBlendBitmapsLocal::TWsGcCmdAlphaBlendBitmapsLocal(const TPoint& aPoint, const CFbsBitmap *aBitmap, const TRect& aSourceRect, const CFbsBitmap *aAlpha, const TPoint& aAlphaPoint) : sl@0: point(aPoint), iBitmap(aBitmap), source(aSourceRect), iAlpha(aAlpha), alphaPoint(aAlphaPoint) sl@0: {} sl@0: sl@0: // sl@0: inline TWsSdCmdSetScreenRotation::TWsSdCmdSetScreenRotation(TInt aMode, CFbsBitGc::TGraphicsOrientation aRotation) : sl@0: mode(aMode), rotation(aRotation) sl@0: {} sl@0: inline TWsSdCmdGetScanLine::TWsSdCmdGetScanLine(const TPoint &aPos, TInt aLen, TDisplayMode aDispMode) : sl@0: pos(aPos), len(aLen), dispMode(aDispMode) sl@0: {} sl@0: inline TWsSdCmdRectCompare::TWsSdCmdRectCompare(const TRect &aRect1,const TRect &aRect2,TUint aFlags) : sl@0: rect1(aRect1), rect2(aRect2), flags(aFlags) sl@0: {} sl@0: inline TWsSdCmdCopyScreenToBitmap::TWsSdCmdCopyScreenToBitmap(TInt aHandle) : sl@0: handle(aHandle) sl@0: {} sl@0: inline TWsSdCmdCopyScreenToBitmap2::TWsSdCmdCopyScreenToBitmap2(const TRect &aRect, TInt aHandle) : sl@0: rect(aRect), handle(aHandle) sl@0: {} sl@0: inline TWsSdCmdSetPalette::TWsSdCmdSetPalette(TPtr8& aPtr) : sl@0: ptr(&aPtr), length(aPtr.Length()) sl@0: {} sl@0: inline TWsSdCmdMapCoordinates::TWsSdCmdMapCoordinates(const TRect &aSource, TCoordinateSpace aSourceSpace, TCoordinateSpace aTargetSpace): sl@0: sourceRect(aSource), sourceSpace(aSourceSpace), targetSpace(aTargetSpace) sl@0: {} sl@0: // sl@0: inline TWsSpriteCmdUpdateMember::TWsSpriteCmdUpdateMember(TInt aIndex,const TSpriteMember &aData) : sl@0: index(aIndex), data(aData) sl@0: {} sl@0: // sl@0: inline TWsDirectCmdRequestReply::TWsDirectCmdRequestReply() sl@0: {} sl@0: inline TWsDirectCmdRequestReply::TWsDirectCmdRequestReply(TThreadId aId,TRequestStatus* aRequest) : sl@0: id(aId), request(aRequest) sl@0: {} sl@0: // sl@0: inline SKeyRepeatSettings::SKeyRepeatSettings() sl@0: {} sl@0: inline SDoubleClickSettings::SDoubleClickSettings() sl@0: {} sl@0: inline SDefModeMaxNumColors::SDefModeMaxNumColors() sl@0: {} sl@0: // sl@0: inline TCmdSpriteMember::TCmdSpriteMember() sl@0: {} sl@0: sl@0: inline TWsGcCmdDrawTextVerticalPtr::TWsGcCmdDrawTextVerticalPtr(const TDesC *aDesc, const TPoint& aPos, const TBool aUp) : pos(aPos), up(aUp), text(const_cast(aDesc)) sl@0: {} sl@0: sl@0: inline TWsGcCmdDrawWsGraphic::TWsGcCmdDrawWsGraphic(const TWsGraphicId& aId,const TRect& aRect): sl@0: iRect(aRect), iDataLen(0) sl@0: { sl@0: if(aId.IsUid()) sl@0: { sl@0: iId = aId.Uid().iUid; sl@0: iFlags = EWsGraphicIdUid; sl@0: } sl@0: else sl@0: { sl@0: iId = aId.Id(); sl@0: iFlags = EWsGraphicIdTransient; sl@0: } sl@0: } sl@0: inline TWsGcCmdDrawTextInContext::TWsGcCmdDrawTextInContext(const TPoint &aPos, TInt aLength, TInt aStart, TInt aEnd) : sl@0: pos(aPos),length(aLength),start(aStart),end(aEnd) sl@0: {} sl@0: inline TWsGcCmdDrawTextInContextVertical::TWsGcCmdDrawTextInContextVertical(const TPoint &aPos, TInt aLength, TBool aUp,TInt aStart,TInt aEnd) : sl@0: pos(aPos),length(aLength),up(aUp),start(aStart),end(aEnd) sl@0: {} sl@0: inline TWsGcCmdDrawTextInContextVerticalPtr::TWsGcCmdDrawTextInContextVerticalPtr(const TDesC *aDesc, const TPoint& aPos, const TBool aUp,TInt aStart,TInt aEnd) : pos(aPos), up(aUp), text(const_cast(aDesc)),start(aStart),end(aEnd) sl@0: {} sl@0: inline TWsGcCmdBoxTextInContextLocal::TWsGcCmdBoxTextInContextLocal(const TRect &aBox,const TInt aStart,const TInt aEnd) : box(aBox),start(aStart),end(aEnd) sl@0: {} sl@0: inline TWsGcCmdBoxTextInContextOptimised1::TWsGcCmdBoxTextInContextOptimised1(const TRect &aRect, TInt aBaselineOffset,TInt aLength,TInt aStart,TInt aEnd) : sl@0: box(aRect),baselineOffset(aBaselineOffset),length(aLength),start(aStart),end(aEnd) sl@0: {} sl@0: inline TWsGcCmdBoxTextInContextOptimised2::TWsGcCmdBoxTextInContextOptimised2(const TRect &aRect,TInt aBaselineOffset,CGraphicsContext::TTextAlign aHoriz,TInt aLeftMrg,TInt aLength,TInt aStart,TInt aEnd) : sl@0: box(aRect),baselineOffset(aBaselineOffset),horiz(aHoriz),leftMrg(aLeftMrg),length(aLength),start(aStart),end(aEnd) sl@0: {} sl@0: inline TWsGcCmdBoxTextInContext::TWsGcCmdBoxTextInContext(const TRect &aRect,TInt aBaselineOffset,CGraphicsContext::TTextAlign aHoriz,TInt aLeftMrg,TInt aLength,TInt aWidth,TInt aStart,TInt aEnd) : sl@0: box(aRect),baselineOffset(aBaselineOffset),horiz(aHoriz),leftMrg(aLeftMrg),length(aLength),width(aWidth),start(aStart),end(aEnd) sl@0: {} sl@0: inline TWsGcCmdBoxTextInContextVertical::TWsGcCmdBoxTextInContextVertical(const TRect& aBox) : box(aBox) sl@0: {} sl@0: inline TWsGcCmdDrawTextInContextLocal::TWsGcCmdDrawTextInContextLocal(const TPoint &aPos,const TDesC *aDesc,TInt aStart,TInt aEnd) : sl@0: pos(aPos), desc(aDesc),start(aStart),end(aEnd) sl@0: {} sl@0: inline TWsGcCmdDrawResourceToPos::TWsGcCmdDrawResourceToPos(TInt aWsHandle, const TPoint &aPos, CWindowGc::TGraphicsRotation aRotation) : sl@0: wsHandle(aWsHandle), pos(aPos), rotation(aRotation) sl@0: {} sl@0: inline TWsGcCmdDrawResourceToRect::TWsGcCmdDrawResourceToRect(TInt aWsHandle, const TRect &aRect, CWindowGc::TGraphicsRotation aRotation) : sl@0: wsHandle(aWsHandle), rect(aRect), rotation(aRotation) sl@0: {} sl@0: inline TWsGcCmdDrawResourceFromRectToRect::TWsGcCmdDrawResourceFromRectToRect(TInt aWsHandle, const TRect &aRectDest, const TRect &aRectSrc, CWindowGc::TGraphicsRotation aRotation) : sl@0: wsHandle(aWsHandle), rectDest(aRectDest), rectSrc(aRectSrc), rotation(aRotation) sl@0: {} sl@0: inline TWsGcCmdDrawResourceWithData::TWsGcCmdDrawResourceWithData(TInt aWsHandle, const TRect &aRect, const TDesC8* aDesc) : sl@0: wsHandle(aWsHandle), rect(aRect), desc(aDesc) sl@0: {} sl@0: #endif