1.1 --- a/epoc32/include/w32std.h Wed Mar 31 12:27:01 2010 +0100
1.2 +++ b/epoc32/include/w32std.h Wed Mar 31 12:33:34 2010 +0100
1.3 @@ -1,9 +1,9 @@
1.4 -// Copyright (c) 1994-2009 Nokia Corporation and/or its subsidiary(-ies).
1.5 +// Copyright (c) 1994-2010 Nokia Corporation and/or its subsidiary(-ies).
1.6 // All rights reserved.
1.7 // This component and the accompanying materials are made available
1.8 -// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
1.9 +// under the terms of "Eclipse Public License v1.0"
1.10 // which accompanies this distribution, and is available
1.11 -// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
1.12 +// at the URL "http://www.eclipse.org/legal/epl-v10.html".
1.13 //
1.14 // Initial Contributors:
1.15 // Nokia Corporation - initial contribution.
1.16 @@ -27,41 +27,25 @@
1.17 #ifndef __BITSTD_H__
1.18 #include <bitstd.h>
1.19 #endif
1.20 +#include <e32keys.h>
1.21 +#include <textcursor.h>
1.22 +#include <pointerevent.h>
1.23 +#include <advancedpointerevent.h>
1.24 +#include <sizemode.h>
1.25 +
1.26 +#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
1.27 +#include <graphics/windowserverconstants.h>
1.28 +#include <graphics/pointereventdata.h>
1.29 +#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
1.30
1.31 _LIT(KWSERVThreadName,"Wserv");
1.32
1.33 -/**
1.34 -@internalAll
1.35 -*/
1.36 -_LIT(KWSERVServerName,"!Windowserver");
1.37 -
1.38 class RWindowBase;
1.39 class RWindow;
1.40 class RWsBuffer;
1.41 class MWsObjectProvider;
1.42 -
1.43 -/** Used for testing purpose.
1.44 -
1.45 -@internalComponent
1.46 -@released
1.47 -*/
1.48 -class TSizeMode
1.49 - {
1.50 -public:
1.51 - inline TSizeMode(){}
1.52 - inline TSizeMode(TSize& aSize);
1.53 - static inline TInt ScaledCord(TInt aOrigin,TInt aScale);
1.54 - inline TPoint ScaledOrigin();
1.55 -public:
1.56 - CFbsBitGc::TGraphicsOrientation iRotation;
1.57 - TPoint iOrigin;
1.58 - TSize iScreenSize;
1.59 - TSize iScreenTwipsSize;
1.60 - TUint iAlternativeRotations;
1.61 - TRect iPointerCursorArea;
1.62 - TSize iScreenScale;
1.63 - TDisplayMode iDefaultDisplayMode;
1.64 - };
1.65 +class RWsDrawableSource;
1.66 +class TSizeMode;
1.67
1.68 /** Screen mode enforcement flags.
1.69
1.70 @@ -318,10 +302,7 @@
1.71
1.72 This event is sent when the user presses or releases a pointer button (or
1.73 the equivalent action, depending on the type of pointing device), drags the
1.74 - pointer, or uses the pointer to switch on the device. If the current input
1.75 - type (see TXYInputType) is "mouse" or "relative mouse", i.e. it generates
1.76 - pointer move events as well as drag events, then this event type is also
1.77 - generated whenever the pointer is moved. */
1.78 + pointer, moves it or uses the pointer to switch on the device. */
1.79 EEventPointer, //5
1.80 /** Pointer enter event.
1.81
1.82 @@ -452,6 +433,14 @@
1.83 This event is only delivered if explicitly requested using RWsSession:RequestOffEvent(). */
1.84 EEventRestartSystem,
1.85 #endif
1.86 + /** The display state or configuration has changed
1.87 +
1.88 + Either change of the current resolution list (state change) or current resolution/background
1.89 + (mode change) will trigger this event.
1.90 +
1.91 + Notification of this event is requested by calling MDisplayControl::EnableDisplayChangeEvents()
1.92 + */
1.93 + EEventDisplayChanged = EEventWindowVisibilityChanged+2,
1.94 //Codes for events only passed into Key Click DLL's
1.95 /** Repeating key event.
1.96
1.97 @@ -663,115 +652,12 @@
1.98 an instant password check. */
1.99 EPasswordOnceADayTriggerNow,
1.100 };
1.101 -struct TTextCursor
1.102 -/** Text cursor parameter information.
1.103 -
1.104 -A text cursor is a rectangular area which can be set to flash. It is normally
1.105 -only visible when the window group which owns it has the keyboard focus. This
1.106 -structure is used to define the parameters of a text cursor, which can be
1.107 -selected for use through the window group using RWindowGroup::SetTextCursor().
1.108 -
1.109 -Custom (non-rectangular) text cursors are supported from v7.0s. They are added
1.110 -to the window server using RWsSession::SetCustomTextCursor(), after which
1.111 -they can be selected for use through the window group, in the same way as
1.112 -standard rectangular cursors. They have a unique identifier, stored in the
1.113 -iType member, which must be greater than ETypeLastBasic. Custom text cursors
1.114 -are clipped to their iHeight and iWidth values. Their iColour member is not
1.115 -used.
1.116 -
1.117 -@publishedAll
1.118 -@released */
1.119 - {
1.120 - // The different normal text cursors
1.121 - // A Text cursor can either be a predefined one
1.122 - // or a general sprite. Cursors between ETypeFirst
1.123 - // and ETypeLastBasic are predefined ones (even though
1.124 - // the ones above ETypeLast do not exist and are
1.125 - // for future use)
1.126 - /** Cursor type values.
1.127 -
1.128 - The values between ETypeFirst and ETypeLastBasic are reserved for predefined
1.129 - cursors. Custom text cursors must have a value greater than ETypeLastBasic.
1.130 -
1.131 - The values not listed below are for internal use only. */
1.132 - enum ENamedCursors
1.133 - {
1.134 - /** @internalAll */
1.135 - ETypeNone,
1.136 - /** Standard filled rectangular cursor. */
1.137 - ETypeRectangle,
1.138 - /** Standard hollow rectangular cursor. */
1.139 - ETypeHollowRectangle,
1.140 - /** The first predefined cursor type.
1.141 -
1.142 - Equivalent to ETypeRectangle. This can be used for iterating through the predefined
1.143 - cursor types. */
1.144 - ETypeFirst=ETypeRectangle,
1.145 - /** The last predefined cursor type.
1.146 -
1.147 - Equivalent to ETypeHollowRectangle. This can be used for iterating through
1.148 - the predefined cursor types. */
1.149 - ETypeLast=ETypeHollowRectangle,
1.150 - /** Reserved for future use.
1.151 -
1.152 - All custom text cursors must have a type value greater than this. */
1.153 - ETypeLastBasic = 1000,
1.154 - };
1.155 - /** Added for compatibility with previous releases. */
1.156 - typedef TInt EType;
1.157 - /** Cursor flash and clipping flags.
1.158 -
1.159 - The flags not listed below are for internal use only. */
1.160 - enum EFlags
1.161 - {
1.162 - /** The text cursor should not flash. */
1.163 - EFlagNoFlash = 0x00000001,
1.164 - /** The bitmap of each sprite member is clipped left of its x-origin and right of
1.165 - its x-origin plus iWidth.
1.166 -
1.167 - Used for custom text cursors only. */
1.168 - EFlagClipHorizontal = 0x00000002,
1.169 - /** The bitmap of each sprite member is clipped vertically.
1.170 -
1.171 - How it is clipped depends on the text cursor's vertical alignment, see the
1.172 - TCustomTextCursorAlignment enum in class RWsSession.
1.173 -
1.174 - Used for custom text cursors only. */
1.175 - EFlagClipVertical = 0x00000004,
1.176 - /** @internalComponent */
1.177 - EUserFlags = 0x0000FFFF,
1.178 - /** @internalComponent */
1.179 - EFlagClipped = 0x00010000,
1.180 - /** @internalComponent */
1.181 - EPrivateFlags = 0xFFFF0000,
1.182 - };
1.183 - /** The cursor type.
1.184 -
1.185 - For possible values, see the ENamedCursors enum. */
1.186 - TInt iType;
1.187 - /** The height of the text cursor.
1.188 -
1.189 - This value is also used for clipping custom text cursors, if the EFlagClipVertical
1.190 - flag is set. */
1.191 - TInt iHeight;
1.192 - /** The ascent of the text cursor (the distance between the origin and the top). */
1.193 - TInt iAscent;
1.194 - /** The width of the text cursor.
1.195 -
1.196 - Custom text cursors are clipped to this value, if the EFlagClipHorizontal
1.197 - flag is set. */
1.198 - TInt iWidth;
1.199 - /** Cursor flash and clipping flags.
1.200 -
1.201 - For possible values, see the EFlags enum. */
1.202 - TUint iFlags;
1.203 - /** The colour of the text cursor.
1.204 -
1.205 - If the cursor is flashing, this colour is XOR'd with the screen.
1.206 -
1.207 - This value is not used for custom text cursors. */
1.208 - TRgb iColor;
1.209 - };
1.210 +enum TPriorities {
1.211 + /**
1.212 + Defines the value EAllPriorities.
1.213 + */
1.214 + EAllPriorities=KMinTInt,
1.215 + };
1.216
1.217 /** Sprite flags.
1.218
1.219 @@ -787,39 +673,17 @@
1.220
1.221 All flashing is done on the same timer, including the text cursor. */
1.222 ESpriteFlash=0x1,
1.223 - /** With this flag set, the sprite is displayed over the window and all its children.
1.224 -
1.225 - Without the flag, the sprite is only displayed over the window's visible area.
1.226 -
1.227 - This is particularly useful when the sprite is owned by a window group, as
1.228 - it means the sprite will be displayed over the whole screen.
1.229 -
1.230 - Notes:
1.231 -
1.232 - By default a sprite is clipped to the visible region of the window that owns
1.233 - it.
1.234 -
1.235 - Sprites with this flag set are displayed in front of sprites without this
1.236 - flag. */
1.237 + /** This flag no longer has any effect.
1.238 +
1.239 + If you want a sprite to appear on top of all windows, you can create a floating sprite
1.240 + by specifying a RWindowGroup as parent to the sprite. */
1.241 ESpriteNoChildClip=0x2,
1.242 /** The sprite's appearance will not change when it is on a shadowed part of the
1.243 screen.
1.244
1.245 (Typically this is used for sprites attached to window groups so that
1.246 they are perceived to be floating above the windows). */
1.247 - ESpriteNoShadows=0x4,
1.248 - /** @internalComponent */
1.249 - ESpriteNonSystemFlags=0x0000FFFF,
1.250 - /** @internalComponent */
1.251 - ESpriteSystemFlags= 0xFFFF0000,
1.252 - /** @internalComponent */
1.253 - ESpritePointer=0x10000,
1.254 - /** @internalComponent */
1.255 - ESpriteOOM=0x20000,
1.256 - /** @internalComponent */
1.257 - ESpriteDisabled=0x40000,
1.258 - /** @internalComponent */
1.259 - ESpriteActive=0x80000,
1.260 + ESpriteNoShadows=0x4
1.261 };
1.262
1.263 struct TSpriteMember
1.264 @@ -929,70 +793,6 @@
1.265 EPointerMoveEvents=EPointerFilterMove|EPointerGenerateSimulatedMove,
1.266 };
1.267
1.268 -struct TPointerEvent
1.269 -/** Pointer event details.
1.270 -
1.271 -The function TWsEvent::Pointer() is used to get this structure for a pointer
1.272 -event.
1.273 -
1.274 -@publishedAll
1.275 -@released */
1.276 - {
1.277 -/** Pointer event types.
1.278 -
1.279 -Note that the user actions that cause these events will vary according to
1.280 -the type of pointing device used. */
1.281 - enum TType
1.282 - {
1.283 - /** Button 1 or pen down. */
1.284 - EButton1Down,
1.285 - /** Button 1 or pen up. */
1.286 - EButton1Up,
1.287 - /** Button 2 down.
1.288 -
1.289 - This is the middle button of a 3 button mouse. */
1.290 - EButton2Down,
1.291 - /** Button 2 up.
1.292 -
1.293 - This is the middle button of a 3 button mouse. */
1.294 - EButton2Up,
1.295 - /** Button 3 down. */
1.296 - EButton3Down,
1.297 - /** Button 3 up. */
1.298 - EButton3Up,
1.299 - /** Drag event.
1.300 -
1.301 - These events are only received when button 1 is down. */
1.302 - EDrag,
1.303 - /** Move event.
1.304 -
1.305 - These events are only received when button 1 is up and the XY input mode is
1.306 - not pen. */
1.307 - EMove,
1.308 - /** Button repeat event. */
1.309 - EButtonRepeat,
1.310 - /** Switch on event caused by a screen tap. */
1.311 - ESwitchOn,
1.312 - };
1.313 - /** The type of pointer event. */
1.314 - TType iType;
1.315 - /** The state of the modifier keys, defined in TEventModifier. */
1.316 - TUint iModifiers; // State of pointing device and associated buttons
1.317 - /** Co-ordinates of the pointer event relative to the origin of the window it occurred
1.318 - in.
1.319 -
1.320 - Positive co-ordinates indicate a position to the right of and down from
1.321 - the window's origin, negative co-ordinates indicate a position to the left
1.322 - and up. */
1.323 - TPoint iPosition;
1.324 - /** Co-ordinates of the pointer event relative to the parent window of the window
1.325 - it occurred in.
1.326 -
1.327 - Positive co-ordinates indicate a position to the right of and down from the window's
1.328 - origin, negative co-ordinates indicate a position to the left and up. */
1.329 - TPoint iParentPosition;
1.330 - };
1.331 -
1.332 struct TKeyEvent
1.333 /** Key event details.
1.334
1.335 @@ -1072,6 +872,41 @@
1.336 TUint iFlags;
1.337 };
1.338
1.339 +struct TWsDisplayChangedEvent
1.340 +/** Display changed events.
1.341 +
1.342 +These events are generated by attaching, detaching the display device, changing the resolution list or change
1.343 +current resolution or backgound (change the current configuration).
1.344 +@publishedAll
1.345 +@released
1.346 +@see MDisplayControl::EnableDisplayChangeEvents() */
1.347 + {
1.348 + /**
1.349 + Number of display that has changed, causing this event. This is
1.350 + also known as the screen number, and is zero-based.
1.351 +
1.352 + @see CWsScreenDevice::Construct(TInt)
1.353 + */
1.354 + TInt iDisplayNumber;
1.355 + /**
1.356 + Opaque value that changes when the current display configuration
1.357 + has changed.
1.358 +
1.359 + Compare values in subsequent events to determine whether the
1.360 + current resolution has changed since the last event.
1.361 + */
1.362 + TInt iConfigurationChangeId;
1.363 + /**
1.364 + Opaque value that changes when the resolution list has changed.
1.365 +
1.366 + Compare values in subsequent events to determine whether the list
1.367 + of available resolutions has changed since the last event.
1.368 +
1.369 + @see MDisplayControlBase::GetResolutions
1.370 + */
1.371 + TInt iResolutionListChangeId;
1.372 + };
1.373 +
1.374 struct TWsErrorMessage
1.375 /** Error event details.
1.376
1.377 @@ -1104,13 +939,6 @@
1.378 TUint iError;
1.379 };
1.380
1.381 -struct TWsGraphicMessageHeaderEvent
1.382 -/** @internalComponent @released */
1.383 - {
1.384 - TInt iClientHandle;
1.385 - TInt iDataLen;
1.386 - };
1.387 -
1.388 class TWsRedrawEvent
1.389 /** Window server redraw event.
1.390
1.391 @@ -1129,10 +957,8 @@
1.392 void SetHandle(TUint aHandle);
1.393 void SetRect(TRect aRect);
1.394 protected:
1.395 - /** @internalComponent */
1.396 - TUint iHandle;
1.397 - /** @internalComponent */
1.398 - TRect iRect; // Rectangle to redraw
1.399 + TUint iHandle; /**< WARNING: Member variable for internal use ONLY. Compatibility is not guaranteed in future releases. Please access using the provided get/set APIs only. */
1.400 + TRect iRect; /**< Rectangle to redraw. WARNING: Member variable for internal use ONLY. Compatibility is not guaranteed in future releases. Please access using the provided get/set APIs only. */
1.401 };
1.402
1.403 class TWsPriorityKeyEvent
1.404 @@ -1149,10 +975,8 @@
1.405 inline TUint Handle() const;
1.406 inline void SetHandle(TUint aHandle);
1.407 protected:
1.408 - /** @internalComponent */
1.409 - TUint iHandle;
1.410 - /** @internalComponent */
1.411 - TUint8 iEventData[sizeof(TKeyEvent)];
1.412 + TUint iHandle; /**< WARNING: Member variable for internal use ONLY. Compatibility is not guaranteed in future releases. Please access using the provided get/set APIs only. */
1.413 + TUint8 iEventData[sizeof(TKeyEvent)]; /**< WARNING: Member variable for internal use ONLY. Compatibility is not guaranteed in future releases. Please access using the provided get/set APIs only. */
1.414 };
1.415
1.416 class TWsEvent
1.417 @@ -1171,18 +995,20 @@
1.418 /** Event data size. */
1.419 enum
1.420 {
1.421 - /** The size of a TPointerEvent.
1.422 -
1.423 + /**
1.424 This is the maximum number of bytes of data that can be returned by EventData().
1.425 - Note: this value is 24 bytes.*/
1.426 - EWsEventDataSize=sizeof(TPointerEvent)+8
1.427 + Note: this value is 32 bytes.*/
1.428 + EWsEventDataSize=sizeof(TAdvancedPointerEvent)
1.429 };
1.430 public:
1.431 - inline TPointerEvent* Pointer() const;
1.432 + inline TWsEvent();
1.433 + inline TAdvancedPointerEvent* Pointer() const;
1.434 inline TKeyEvent* Key() const;
1.435 inline TModifiersChangedEvent* ModifiersChanged() const;
1.436 inline TWsVisibilityChangedEvent* VisibilityChanged();
1.437 inline const TWsVisibilityChangedEvent* VisibilityChanged() const;
1.438 + inline TWsDisplayChangedEvent* DisplayChanged();
1.439 + inline const TWsDisplayChangedEvent* DisplayChanged() const;
1.440 inline TWsErrorMessage* ErrorMessage() const;
1.441 inline TUint8* EventData() const;
1.442 inline TInt Type() const;
1.443 @@ -1192,15 +1018,14 @@
1.444 inline void SetHandle(TUint aHandle);
1.445 inline void SetTimeNow();
1.446 inline TInt* Int() const;
1.447 + IMPORT_C void InitAdvancedPointerEvent(TPointerEvent::TType aType, TUint aModifiers, const TPoint3D &aPoint3D, TUint8 aPointerNumber);
1.448 + IMPORT_C void SetPointerNumber(TUint8 aPointerNumber);
1.449 + IMPORT_C void SetPointerZ(TInt aZ);
1.450 protected:
1.451 - /** @internalComponent */
1.452 - TInt iType;
1.453 - /** @internalComponent */
1.454 - TUint iHandle;
1.455 - /** @internalComponent */
1.456 - TTime iTime;
1.457 - /** @internalComponent */
1.458 - TUint8 iEventData[EWsEventDataSize];
1.459 + TInt iType; /**< WARNING: Member variable for internal use ONLY. Compatibility is not guaranteed in future releases. Please access using the provided get/set APIs only. */
1.460 + TUint iHandle; /**< WARNING: Member variable for internal use ONLY. Compatibility is not guaranteed in future releases. Please access using the provided get/set APIs only. */
1.461 + TTime iTime; /**< WARNING: Member variable for internal use ONLY. Compatibility is not guaranteed in future releases. Please access using the provided get/set APIs only. */
1.462 + TUint8 iEventData[EWsEventDataSize]; /**< WARNING: Member variable for internal use ONLY. Compatibility is not guaranteed in future releases. Please access using the provided get/set APIs only. */
1.463 };
1.464
1.465
1.466 @@ -1274,6 +1099,7 @@
1.467 class TReadDescriptorType;
1.468 class TWriteDescriptorType;
1.469 class CWindowGc;
1.470 +class RWsSession;
1.471
1.472 class TWsGraphicId
1.473 /** Identifies an abstract artwork
1.474 @@ -1338,6 +1164,8 @@
1.475 IMPORT_C TInt SendSynchronMessage(const TDesC8& aData) const;
1.476 IMPORT_C TInt Flush() const;
1.477 IMPORT_C void SetGraphicExtension(MWsObjectProvider* aExt);
1.478 + IMPORT_C RWsSession& Session();
1.479 +
1.480 private:
1.481 // events from wserv, to be implemented by derived classes
1.482 /**
1.483 @@ -1396,11 +1224,16 @@
1.484 TInt WriteReplyByProvidingRemoteReadAccess(const TAny* aBuf, TInt aBufLen,const TReadDescriptorType& aRemoteReadBuffer,TUint aOpcode) const;
1.485 void AddToBitmapArray(const TInt aBitmapHandle)const;
1.486 void AsyncRequest(TRequestStatus& aStatus, TUint aOpcode) const;
1.487 +
1.488 + TBool WindowSizeCacheEnabled() const;
1.489 + void MarkWindowSizeCacheDirty();
1.490 + void RefreshWindowSizeCache(const TSize& aNewSize) const;
1.491 + TInt CachedWindowSize(TSize& aSize) const;
1.492 + void DestroyWindowSizeCacheEntry();
1.493 +
1.494 protected:
1.495 - /** @internalComponent*/
1.496 - TInt32 iWsHandle;
1.497 - /** @internalComponent*/
1.498 - RWsBuffer *iBuffer;
1.499 + TInt32 iWsHandle; /**< WARNING: Member variable for internal use ONLY. Compatibility is not guaranteed in future releases. Please access using the provided get/set APIs only. */
1.500 + RWsBuffer *iBuffer; /**< WARNING: Member variable for internal use ONLY. Compatibility is not guaranteed in future releases. Please access using the provided get/set APIs only. */
1.501 };
1.502
1.503
1.504 @@ -1448,8 +1281,9 @@
1.505 all window groups in the system, setting the default shadow vector, setting
1.506 the system pointer cursors, counting resources used by the window server
1.507 (this is only useful for debugging checks), getting and setting the state of
1.508 -the modifier keys (for instance Shift and Ctrl), and setting the window server
1.509 -background colour.
1.510 +the modifier keys (for instance Shift and Ctrl), setting the window server
1.511 +background colour, getting and setting thresholds for window server generated
1.512 +pointer events.
1.513
1.514 @publishedAll
1.515 @released */
1.516 @@ -1463,6 +1297,7 @@
1.517 friend class RDirectScreenAccess;
1.518 friend class RSoundPlugIn;
1.519 friend class CWsGraphic;
1.520 + friend class RWsDrawableSource;
1.521 public:
1.522 /** Compute mode flags.
1.523
1.524 @@ -1519,7 +1354,7 @@
1.525 };
1.526
1.527 struct SSystemInfo
1.528 - /** @internalComponent */
1.529 + /** WARNING: Struct for internal use ONLY. Compatibility is not guaranteed in future releases. */
1.530 {
1.531 TInt iInfo[ESystemInfoArraySize];
1.532 };
1.533 @@ -1545,7 +1380,7 @@
1.534 IMPORT_C TInt Connect();
1.535 IMPORT_C TInt Connect(RFs& aFileServer);
1.536 IMPORT_C void Close();
1.537 - IMPORT_C TVersion Version();
1.538 + IMPORT_C TVersion Version() const;
1.539
1.540 IMPORT_C TInt SetHotKey(THotKey aType, TUint aKeyCode, TUint aModifierMask, TUint aModifier);
1.541 IMPORT_C TInt ClearHotKeys(THotKey aType);
1.542 @@ -1553,7 +1388,7 @@
1.543 //
1.544 IMPORT_C void EventReady(TRequestStatus *aStat);
1.545 IMPORT_C void EventReadyCancel();
1.546 - IMPORT_C void GetEvent(TWsEvent &aEvent);
1.547 + IMPORT_C void GetEvent(TWsEvent &aEvent) const;
1.548 IMPORT_C void PurgePointerEvents();
1.549 //
1.550 IMPORT_C void RedrawReady(TRequestStatus *aStat);
1.551 @@ -1562,38 +1397,38 @@
1.552 //
1.553 IMPORT_C void PriorityKeyReady(TRequestStatus *aStat);
1.554 IMPORT_C void PriorityKeyReadyCancel();
1.555 - IMPORT_C void GetPriorityKey(TWsPriorityKeyEvent &aEvent);
1.556 + IMPORT_C void GetPriorityKey(TWsPriorityKeyEvent &aEvent) const;
1.557 //
1.558 IMPORT_C void Flush();
1.559 IMPORT_C TBool SetAutoFlush(TBool aState);
1.560 IMPORT_C TInt SetKeyboardRepeatRate(const TTimeIntervalMicroSeconds32 &aInitialTime, const TTimeIntervalMicroSeconds32 &aTime);
1.561 - IMPORT_C void GetKeyboardRepeatRate(TTimeIntervalMicroSeconds32 &aInitialTime, TTimeIntervalMicroSeconds32 &aTime);
1.562 - IMPORT_C void GetDoubleClickSettings(TTimeIntervalMicroSeconds32 &aInterval, TInt &aDistance);
1.563 + IMPORT_C void GetKeyboardRepeatRate(TTimeIntervalMicroSeconds32 &aInitialTime, TTimeIntervalMicroSeconds32 &aTime) const;
1.564 + IMPORT_C void GetDoubleClickSettings(TTimeIntervalMicroSeconds32 &aInterval, TInt &aDistance) const;
1.565 IMPORT_C TInt SetDoubleClick(const TTimeIntervalMicroSeconds32 &aInterval, TInt aDistance);
1.566 //
1.567 IMPORT_C TInt NumWindowGroups() const;
1.568 - IMPORT_C TInt WindowGroupList(CArrayFixFlat<TInt> *aWindowList);
1.569 - IMPORT_C TInt WindowGroupList(RArray<TWindowGroupChainInfo>* aWindowList);
1.570 + IMPORT_C TInt WindowGroupList(CArrayFixFlat<TInt> *aWindowList) const;
1.571 + IMPORT_C TInt WindowGroupList(RArray<TWindowGroupChainInfo>* aWindowList) const;
1.572 IMPORT_C TInt NumWindowGroups(TInt aPriority) const;
1.573 - IMPORT_C TInt WindowGroupList(TInt aPriority, CArrayFixFlat<TInt> *aWindowList);
1.574 - IMPORT_C TInt WindowGroupList(TInt aPriority, RArray<TWindowGroupChainInfo>* aWindowList);
1.575 - IMPORT_C TInt GetFocusWindowGroup();
1.576 - IMPORT_C TInt GetDefaultOwningWindow();
1.577 + IMPORT_C TInt WindowGroupList(TInt aPriority, CArrayFixFlat<TInt> *aWindowList) const;
1.578 + IMPORT_C TInt WindowGroupList(TInt aPriority, RArray<TWindowGroupChainInfo>* aWindowList) const;
1.579 + IMPORT_C TInt GetFocusWindowGroup() const;
1.580 + IMPORT_C TInt GetDefaultOwningWindow() const;
1.581 IMPORT_C TInt SetWindowGroupOrdinalPosition(TInt aIdentifier, TInt aPosition);
1.582 - IMPORT_C TInt GetWindowGroupClientThreadId(TInt aIdentifier, TThreadId &aThreadId);
1.583 - IMPORT_C TInt GetWindowGroupHandle(TInt aIdentifier);
1.584 - IMPORT_C TInt GetWindowGroupOrdinalPriority(TInt aIdentifier);
1.585 + IMPORT_C TInt GetWindowGroupClientThreadId(TInt aIdentifier, TThreadId &aThreadId) const;
1.586 + IMPORT_C TInt GetWindowGroupHandle(TInt aIdentifier) const;
1.587 + IMPORT_C TInt GetWindowGroupOrdinalPriority(TInt aIdentifier) const;
1.588 IMPORT_C TInt SendEventToWindowGroup(TInt aIdentifier, const TWsEvent &aEvent);
1.589 IMPORT_C TInt SendEventToAllWindowGroups(const TWsEvent &aEvent);
1.590 IMPORT_C TInt SendEventToAllWindowGroups(TInt aPriority, const TWsEvent &aEvent);
1.591 IMPORT_C TInt SendEventToOneWindowGroupsPerClient(const TWsEvent &aEvent);
1.592 - IMPORT_C TInt GetWindowGroupNameFromIdentifier(TInt aIdentifier, TDes &aWindowName);
1.593 - IMPORT_C TInt FindWindowGroupIdentifier(TInt aPreviousIdentifier,const TDesC& aMatch,TInt aOffset=0);
1.594 - IMPORT_C TInt FindWindowGroupIdentifier(TInt aPreviousIdentifier,TThreadId aThreadId);
1.595 + IMPORT_C TInt GetWindowGroupNameFromIdentifier(TInt aIdentifier, TDes &aWindowName) const;
1.596 + IMPORT_C TInt FindWindowGroupIdentifier(TInt aPreviousIdentifier,const TDesC& aMatch,TInt aOffset=0) const;
1.597 + IMPORT_C TInt FindWindowGroupIdentifier(TInt aPreviousIdentifier,TThreadId aThreadId) const;
1.598 IMPORT_C TInt SendMessageToWindowGroup(TInt aIdentifier, TUid aUid, const TDesC8 &aParams);
1.599 IMPORT_C TInt SendMessageToAllWindowGroups(TUid aUid, const TDesC8& aParams);
1.600 IMPORT_C TInt SendMessageToAllWindowGroups(TInt aPriority, TUid aUid, const TDesC8& aParams);
1.601 - IMPORT_C TInt FetchMessage(TUid &aUid, TPtr8 &aParams, const TWsEvent& aMessageEvent);
1.602 + IMPORT_C TInt FetchMessage(TUid &aUid, TPtr8 &aParams, const TWsEvent& aMessageEvent) const;
1.603 //
1.604 IMPORT_C void SetShadowVector(const TPoint &aVector);
1.605 IMPORT_C TPoint ShadowVector() const;
1.606 @@ -1601,9 +1436,9 @@
1.607 IMPORT_C void SetBackgroundColor(TRgb aColor);
1.608 IMPORT_C TRgb GetBackgroundColor() const;
1.609 //
1.610 - IMPORT_C TInt RegisterSurface(TInt aScreenNumber, const TSurfaceId& aSurface); ///< @publishedPartner
1.611 - IMPORT_C void UnregisterSurface(TInt aScreenNumber, const TSurfaceId& aSurface); ///< @publishedPartner
1.612 - IMPORT_C TInt PreferredSurfaceConfigurationSize(); ///< @publishedPartner
1.613 + IMPORT_C TInt RegisterSurface(TInt aScreenNumber, const TSurfaceId& aSurface);
1.614 + IMPORT_C void UnregisterSurface(TInt aScreenNumber, const TSurfaceId& aSurface);
1.615 + IMPORT_C TInt PreferredSurfaceConfigurationSize() const;
1.616 //
1.617 IMPORT_C TInt SetSystemPointerCursor(const RWsPointerCursor &aPointerCursor,TInt aCursorNumber);
1.618 IMPORT_C void ClearSystemPointerCursor(TInt aCursorNumber);
1.619 @@ -1612,7 +1447,7 @@
1.620 //
1.621 IMPORT_C TInt SetCustomTextCursor(TInt aIdentifier, const TArray<TSpriteMember>& aSpriteMemberArray, TUint aSpriteFlags, TCustomTextCursorAlignment aAlignment);
1.622 //
1.623 - IMPORT_C TInt ResourceCount();
1.624 + IMPORT_C TInt ResourceCount() const;
1.625 IMPORT_C void PasswordEntered();
1.626 IMPORT_C void ComputeMode(TComputeMode aMode);
1.627 //
1.628 @@ -1620,6 +1455,7 @@
1.629 IMPORT_C TInt DebugInfo(TInt aFunction, TInt aParam=0) const;
1.630 IMPORT_C TInt DebugInfo(TInt aFunction, TDes8& aReturnBuf, TInt aParam=0) const;
1.631 IMPORT_C void HeapSetFail(TInt aTAllocFail,TInt aValue);
1.632 + IMPORT_C void HeapSetBurstFail(TInt aTAllocFail,TInt aRate,TInt aBurst);
1.633 IMPORT_C TInt SetModifierState(TEventModifier aModifier,TModifierState aState);
1.634 IMPORT_C TInt GetModifierState() const;
1.635 //
1.636 @@ -1648,22 +1484,27 @@
1.637
1.638 // Functions for multiple screens
1.639 IMPORT_C TInt SetFocusScreen(TInt aScreenNumber);
1.640 - IMPORT_C TInt GetFocusScreen();
1.641 + IMPORT_C TInt GetFocusScreen() const;
1.642 IMPORT_C void ClearAllRedrawStores();
1.643 + IMPORT_C TInt NumWindowGroups(TInt aScreenNumber,TInt aPriority) const;
1.644 + IMPORT_C TInt NumberOfScreens() const;
1.645 + IMPORT_C TInt WindowGroupList(CArrayFixFlat<TInt>* aWindowList,TInt aScreenNumber,TInt aPriority=EAllPriorities) const;
1.646 + IMPORT_C TInt GetFocusWindowGroup(TInt aScreenNumber) const;
1.647 + IMPORT_C TInt GetDefaultOwningWindow(TInt aScreenNumber) const;
1.648 + IMPORT_C TDisplayMode GetDefModeMaxNumColors(TInt aScreenNumber,TInt& aColor,TInt& aGray) const;
1.649 + IMPORT_C TInt GetColorModeList(TInt aScreenNumber,CArrayFixFlat<TInt>* aModeList) const;
1.650 #if defined(__WINS__)
1.651 // Function for WINS behaviour only
1.652 -//
1.653 IMPORT_C void SetRemoveKeyCode(TBool aRemove);
1.654 - IMPORT_C void SimulateXyInputType(TXYInputType aInputType); //Only for testing WSERV
1.655 + IMPORT_C void SimulateXyInputType(TInt aInputType); //Only for testing WSERV
1.656 #endif
1.657 //
1.658 IMPORT_C void SimulateRawEvent(TRawEvent aEvent);
1.659 IMPORT_C void SimulateKeyEvent(TKeyEvent aEvent);
1.660 IMPORT_C void LogCommand(TLoggingCommand aCommand);
1.661 IMPORT_C void LogMessage(const TLogMessageText &aMessage);
1.662 -//
1.663 +
1.664 // Functions for test code use only
1.665 -//
1.666 IMPORT_C void SystemInfo(TInt &aSystemInfoNumber, SSystemInfo &aSystemInfo);
1.667 IMPORT_C void TestWrite(TInt aHandle,TInt aOpcode,const TAny *aData, TInt aLength);
1.668 IMPORT_C void TestWriteReply(TInt aHandle,TInt aOpcode,const TAny *aData, TInt aLength);
1.669 @@ -1673,15 +1514,26 @@
1.670
1.671 IMPORT_C TInt Finish();
1.672 IMPORT_C void SyncMsgBuf();
1.673 +
1.674 +// Getters and setters for pointer event's thresholds
1.675 + IMPORT_C TInt SetCloseProximityThresholds(TInt aEnterCloseProximityThreshold, TInt aExitCloseProximityThreshold);
1.676 + IMPORT_C TInt GetEnterCloseProximityThreshold() const;
1.677 + IMPORT_C TInt GetExitCloseProximityThreshold() const;
1.678 + IMPORT_C TInt SetHighPressureThresholds(TInt aEnterHighPressureThreshold, TInt aExitHighPressureThreshold);
1.679 + IMPORT_C TInt GetEnterHighPressureThreshold() const;
1.680 + IMPORT_C TInt GetExitHighPressureThreshold() const;
1.681 +//
1.682 + IMPORT_C void EnableWindowSizeCacheL();
1.683 +
1.684 // functions not exported, used by CWsGraphic
1.685 void GraphicMessageReady(TRequestStatus *aStat);
1.686 - void GetGraphicMessage(TDes8& aData);
1.687 + void GetGraphicMessage(TDes8& aData) const;
1.688 void GraphicMessageCancel();
1.689 void GraphicAbortMessage(TInt aError);
1.690 TInt GraphicFetchHeaderMessage();
1.691 private:
1.692 - TInt doWindowGroupList(TInt aPriority, RArray<TWindowGroupChainInfo>* aWindowListCh, TInt aNumOpcode, TInt aListOpcode);
1.693 - TInt doWindowGroupList(TInt aPriority,CArrayFixFlat<TInt>* aWindowListId,TInt aNumOpcode,TInt aListOpcode);
1.694 + TInt doWindowGroupList(TInt aPriority, RArray<TWindowGroupChainInfo>* aWindowListCh, TInt aNumOpcode, TInt aListOpcode) const;
1.695 + TInt doWindowGroupList(TInt aScreenNumber, TInt aPriority, CArrayFixFlat<TInt>* aWindowListId, TInt aNumOpcode, TInt aListOpcode) const;
1.696 TInt doSetHotKey(TInt aOpcode, TInt aType, TUint aKeycode, TUint aModifierMask, TUint aModifiers);
1.697 void doReadEvent(TRequestStatus *aStat, TInt aOpcode);
1.698
1.699 @@ -1695,9 +1547,6 @@
1.700 class RWindowGroup;
1.701 class RWsSprite;
1.702
1.703 -/** @internalComponent */
1.704 -typedef TInt (*AnimCommand)(TPtr8 *aBufPtr,TAny *aPackage);
1.705 -
1.706
1.707 class RWindowTreeNode : public MWsClientClass
1.708 /** A handle to a node in the server-side window tree.
1.709 @@ -1745,7 +1594,8 @@
1.710 IMPORT_C TInt FullOrdinalPosition() const;
1.711 IMPORT_C void SetOrdinalPosition(TInt aPos);
1.712 IMPORT_C void SetOrdinalPosition(TInt aPos,TInt aOrdinalPriority);
1.713 - IMPORT_C TInt WindowGroupId();
1.714 + IMPORT_C TInt ScreenNumber() const;
1.715 + IMPORT_C TInt WindowGroupId() const;
1.716 IMPORT_C TInt SetPointerCursor(TInt aCursorNumber);
1.717 IMPORT_C void SetCustomPointerCursor(const RWsPointerCursor &aPointerCursor);
1.718 IMPORT_C TInt EnableOnEvents(TEventControl aCircumstances=EEventControlOnlyWithKeyboardFocus);
1.719 @@ -1766,6 +1616,7 @@
1.720 IMPORT_C void SetFaded(TBool aFaded,TFadeControl aIncludeChildren);
1.721 IMPORT_C void SetFaded(TBool aFaded,TFadeControl aIncludeChildren,TUint8 aBlackMap,TUint8 aWhiteMap);
1.722 IMPORT_C void ClearPointerCursor();
1.723 + IMPORT_C RWsSession* Session() const;
1.724 protected:
1.725 __DECLARE_TEST;
1.726 };
1.727 @@ -1823,6 +1674,7 @@
1.728 IMPORT_C void PointerFilter(TUint32 aFilterMask, TUint32 aFilter);
1.729 IMPORT_C void SetPointerGrab(TBool aState);
1.730 IMPORT_C void ClaimPointerGrab(TBool aSendUpEvent=ETrue);
1.731 + IMPORT_C TInt ClaimPointerGrab(const TUint8 aPointerNumber, const TBool aSendUpEvent=ETrue);
1.732 IMPORT_C void SetPointerCapture(TInt aFlags);
1.733 IMPORT_C void SetPointerCapturePriority(TInt aPriority);
1.734 IMPORT_C TInt GetPointerCapturePriority() const;
1.735 @@ -1834,28 +1686,32 @@
1.736 IMPORT_C TInt SetCornerType(TCornerType aCornerType, TInt aCornerFlags=0);
1.737 IMPORT_C TInt SetShape(const TRegion &aRegion);
1.738 IMPORT_C TInt SetRequiredDisplayMode(TDisplayMode aMode);
1.739 - IMPORT_C TDisplayMode DisplayMode();
1.740 + IMPORT_C TDisplayMode DisplayMode() const;
1.741 IMPORT_C void EnableBackup(TUint aBackupType=EWindowBackupAreaBehind);
1.742 IMPORT_C void RequestPointerRepeatEvent(TTimeIntervalMicroSeconds32 aTime,const TRect &aRect);
1.743 IMPORT_C void CancelPointerRepeatEventRequest();
1.744 + IMPORT_C TInt RequestPointerRepeatEvent(TTimeIntervalMicroSeconds32 aTime,const TRect &aRect, const TUint8 aPointerNumber); //< @prototype
1.745 + IMPORT_C TInt CancelPointerRepeatEventRequest(const TUint8 aPointerNumber); //< @prototype
1.746 IMPORT_C TInt AllocPointerMoveBuffer(TInt aMaxPoints, TUint aFlags);
1.747 IMPORT_C void FreePointerMoveBuffer();
1.748 IMPORT_C void EnablePointerMoveBuffer();
1.749 IMPORT_C void DisablePointerMoveBuffer();
1.750 - IMPORT_C TInt RetrievePointerMoveBuffer(TDes8 &aBuf);
1.751 + IMPORT_C TInt RetrievePointerMoveBuffer(TDes8 &aBuf) const;
1.752 IMPORT_C void DiscardPointerMoveBuffer();
1.753 IMPORT_C TInt AddKeyRect(const TRect &aRect, TInt aScanCode, TBool aActivatedByPointerSwitchOn);
1.754 IMPORT_C void RemoveAllKeyRects();
1.755 IMPORT_C TInt PasswordWindow(TPasswordMode aPasswordMode);
1.756 IMPORT_C void FadeBehind(TBool aFade);
1.757 - IMPORT_C TBool IsFaded();
1.758 - IMPORT_C TBool IsNonFading();
1.759 + IMPORT_C TBool IsFaded() const;
1.760 + IMPORT_C TBool IsNonFading() const;
1.761 IMPORT_C TInt MoveToGroup(TInt aIdentifier);
1.762 - IMPORT_C TInt SetBackgroundSurface(const TSurfaceId& aSurface); ///< @publishedPartner
1.763 - IMPORT_C TInt SetBackgroundSurface(const TSurfaceConfiguration& aConfiguration, TBool aTriggerRedraw); ///< @publishedPartner
1.764 - IMPORT_C void RemoveBackgroundSurface(TBool aTriggerRedraw); ///< @publishedPartner
1.765 - IMPORT_C TInt GetBackgroundSurface(TSurfaceConfiguration& aConfiguration); ///< @publishedPartner
1.766 - IMPORT_C TRgb KeyColor(); ///< @publishedPartner whilst prototype
1.767 + IMPORT_C TInt SetBackgroundSurface(const TSurfaceId& aSurface);
1.768 + IMPORT_C TInt SetBackgroundSurface(const TSurfaceConfiguration& aConfiguration, TBool aTriggerRedraw);
1.769 + IMPORT_C void RemoveBackgroundSurface(TBool aTriggerRedraw);
1.770 + IMPORT_C TInt GetBackgroundSurface(TSurfaceConfiguration& aConfiguration) const;
1.771 + IMPORT_C void SetSurfaceTransparency(TBool aSurfaceTransparency);
1.772 + IMPORT_C TRgb KeyColor() const;
1.773 + IMPORT_C void EnableAdvancedPointers();
1.774 protected:
1.775 TInt construct(const RWindowTreeNode &parent,TUint32 aHandle, TInt aType, TDisplayMode aDisplayMode);
1.776 };
1.777 @@ -1902,7 +1758,7 @@
1.778 IMPORT_C void Scroll(const TRect &aClipRect, const TPoint &aOffset);
1.779 IMPORT_C void Scroll(const TPoint &aOffset, const TRect &aRect);
1.780 IMPORT_C void Scroll(const TRect &aClipRect, const TPoint &aOffset, const TRect &aRect);
1.781 - IMPORT_C TRect GetDrawRect();
1.782 + IMPORT_C TRect GetDrawRect() const;
1.783 protected:
1.784 void SetDrawRect(const TRect &aRect);
1.785 private:
1.786 @@ -1943,7 +1799,7 @@
1.787 IMPORT_C void EndRedraw();
1.788 IMPORT_C void Invalidate();
1.789 IMPORT_C void Invalidate(const TRect &aRect);
1.790 - IMPORT_C void GetInvalidRegion(RRegion &aRegion);
1.791 + IMPORT_C void GetInvalidRegion(RRegion &aRegion) const;
1.792 IMPORT_C void SetBackgroundColor(TRgb aColor);
1.793 IMPORT_C void SetBackgroundColor();
1.794 IMPORT_C void SetSize(const TSize &size);
1.795 @@ -1957,7 +1813,7 @@
1.796 IMPORT_C TInt SetTransparencyAlphaChannel();
1.797 IMPORT_C TInt SetTransparentRegion(const TRegion& aRegion);
1.798 IMPORT_C TInt SetTransparencyPolicy(TWsTransparencyPolicy aPolicy);
1.799 - IMPORT_C TBool IsRedrawStoreEnabled();
1.800 + IMPORT_C TBool IsRedrawStoreEnabled() const;
1.801 IMPORT_C void EnableOSB(TBool);
1.802 IMPORT_C void ClearRedrawStore();
1.803 };
1.804 @@ -1975,13 +1831,14 @@
1.805 this bitmap directly and perform updates to the window under application control.
1.806
1.807 @publishedAll
1.808 -@released */
1.809 +@deprecated
1.810 +*/
1.811 {
1.812 public:
1.813 IMPORT_C RBackedUpWindow();
1.814 IMPORT_C RBackedUpWindow(RWsSession &aWs);
1.815 IMPORT_C TInt Construct(const RWindowTreeNode &parent,TDisplayMode aDisplayMode, TUint32 aHandle);
1.816 - IMPORT_C TInt BitmapHandle();
1.817 + IMPORT_C TInt BitmapHandle() const;
1.818 IMPORT_C void UpdateScreen();
1.819 IMPORT_C void UpdateScreen(const TRegion &aRegion);
1.820 IMPORT_C void UpdateBackupBitmap();
1.821 @@ -1999,6 +1856,8 @@
1.822 IMPORT_C RWindowGroup();
1.823 IMPORT_C RWindowGroup(RWsSession &aWs);
1.824 IMPORT_C TInt Construct(TUint32 aClientHandle);
1.825 + IMPORT_C TInt Construct(TUint32 aClientHandle,CWsScreenDevice* aScreenDevice);
1.826 + IMPORT_C TInt Construct(TUint32 aClientHandle,TBool aIsFocusable,CWsScreenDevice* aScreenDevice);
1.827 IMPORT_C TInt Construct(TUint32 aClientHandle,TBool aIsFocusable);
1.828 IMPORT_C TInt ConstructChildApp(TInt aIdOfParentWindowGroup,TUint32 aClientHandle);
1.829 IMPORT_C TInt ConstructChildApp(TInt aIdOfParentWindowGroup,TUint32 aClientHandle,TBool aIsFocusable);
1.830 @@ -2032,12 +1891,13 @@
1.831 IMPORT_C TInt EnableScreenChangeEvents();
1.832 IMPORT_C void DisableScreenChangeEvents();
1.833 IMPORT_C void SimulatePointerEvent(TRawEvent aEvent);
1.834 + IMPORT_C void SimulateAdvancedPointerEvent(TRawEvent aEvent);
1.835 IMPORT_C TInt ClearChildGroup();
1.836 IMPORT_C TInt SetChildGroup(TInt aId);
1.837 private:
1.838 TInt32 doCaptureKey(TUint aKey, TUint aModifierMask, TUint aModifiers, TInt aPriority, TInt aOpcode);
1.839 void doCancelCaptureKey(TInt32 aCaptureKeyHandle, TInt aOpcode);
1.840 - TInt Construct(TInt aIdOfParentWindowGroup,TUint32 aClientHandle,TBool aIsFocusable);
1.841 + TInt Construct(TInt aIdOfParentWindowGroup, TUint32 aClientHandle, TBool aIsFocusable, CWsScreenDevice* aScreenDevice);
1.842 };
1.843
1.844
1.845 @@ -2140,6 +2000,24 @@
1.846 {
1.847 friend class CWsScreenDevice;
1.848 public:
1.849 + /** Defines possible clockwise rotation values.
1.850 +
1.851 + WARNING: Enum for internal and partner use ONLY. Compatibility is not guaranteed in future releases.
1.852 +
1.853 + @prototype
1.854 + */
1.855 + enum TGraphicsRotation
1.856 + {
1.857 + /** No rotation. */
1.858 + EGraphicsRotationNone,
1.859 + /** A 90 degree rotation. */
1.860 + EGraphicsRotation90,
1.861 + /** A 180 degree rotation. */
1.862 + EGraphicsRotation180,
1.863 + /** A 270 degree rotation. */
1.864 + EGraphicsRotation270
1.865 + };
1.866 +
1.867 IMPORT_C CWindowGc(CWsScreenDevice *aDevice);
1.868 IMPORT_C virtual ~CWindowGc();
1.869 IMPORT_C virtual TInt Construct();
1.870 @@ -2204,6 +2082,10 @@
1.871 IMPORT_C virtual void DrawBitmap(const TRect &aDestRect, const CFbsBitmap *aDevice, const TRect &aSourceRect);
1.872 IMPORT_C virtual void DrawBitmapMasked(const TRect& aDestRect, const CFbsBitmap* aBitmap, const TRect& aSourceRect, const CFbsBitmap* aMaskBitmap, TBool aInvertMask);
1.873 IMPORT_C virtual void DrawBitmapMasked(const TRect& aDestRect, const CWsBitmap* aBitmap, const TRect& aSourceRect, const CWsBitmap* aMaskBitmap, TBool aInvertMask);
1.874 +
1.875 +// Required as not all DrawText and DrawTextVertical functions are implemented in CWindowGc
1.876 + using CBitmapContext::DrawText;
1.877 + using CBitmapContext::DrawTextVertical;
1.878 //
1.879 // Text drawing subject to drawing mode
1.880 // Subject to used font, pen color, drawing mode,
1.881 @@ -2237,6 +2119,9 @@
1.882 IMPORT_C virtual void SetFadingParameters(TUint8 aBlackMap,TUint8 aWhiteMap);
1.883 IMPORT_C virtual TInt AlphaBlendBitmaps(const TPoint& aDestPt, const CFbsBitmap* aSrcBmp, const TRect& aSrcRect, const CFbsBitmap* aAlphaBmp, const TPoint& aAlphaPt);
1.884 IMPORT_C virtual TInt AlphaBlendBitmaps(const TPoint& aDestPt, const CWsBitmap* aSrcBmp, const TRect& aSrcRect, const CWsBitmap* aAlphaBmp, const TPoint& aAlphaPt);
1.885 +//
1.886 + IMPORT_C TAny* Interface(TUid aInterfaceId);
1.887 + IMPORT_C const TAny* Interface(TUid aInterfaceId) const;
1.888
1.889 protected:
1.890 IMPORT_C TInt APIExtension(TUid aUid, TAny*& aOutput, TAny* aInput);
1.891 @@ -2252,13 +2137,12 @@
1.892 public:
1.893 IMPORT_C virtual void DrawWsGraphic(const TWsGraphicId& aId,const TRect& aDestRect);
1.894 IMPORT_C virtual void DrawWsGraphic(const TWsGraphicId& aId,const TRect& aDestRect,const TDesC8& aData);
1.895 -
1.896 private:
1.897 IMPORT_C virtual void Reserved_CWindowGc_3();
1.898 IMPORT_C virtual void Reserved_CWindowGc_4();
1.899 IMPORT_C virtual void Reserved_CWindowGc_5();
1.900
1.901 -////=============================================================
1.902 +//=============================================================
1.903 private: // Private code
1.904 TRgb Color(TInt aOpcode)const;
1.905 void SetJustification(TInt aExcessWidth,TInt aNumGaps, TInt aOpcode);
1.906 @@ -2268,11 +2152,24 @@
1.907 void WriteTextPos(TInt aOpcode,TInt aOpcodePtr,const TPoint &aPos,const TDesC &aBuf) const;
1.908 void WriteTextCommand(TAny *aCmd, TInt aLen,const TDesC &aBuf,TInt aOpcode,TInt aOpcodePtr) const;
1.909 void WriteTextCommand(TAny *aCmd, TInt aLen,const TDesC8 &aBuf,TInt aOpcode,TInt aOpcodePtr) const;
1.910 - void APIExGetUnderlineMetrics(TAny*& aOutput);
1.911 + TInt APIExGetUnderlineMetrics(TAny*& aOutput);
1.912 TInt APIExSetShadowColor(TAny* aShadowColor);
1.913 -
1.914 + TInt APIExGetShadowColor(TAny*& aOutput);
1.915 + // New DrawText API's that take in context
1.916 + TInt APIExDrawText(const TDesC &aBuf,const TTextParameters* aParam,const TPoint &aPos);
1.917 + TInt APIExDrawText(const TDesC &aBuf,const TTextParameters* aParam,const TRect &aBox,TInt aBaselineOffset,TTextAlign aHoriz=ELeft,TInt aLeftMrg=0);
1.918 + TInt APIExDrawTextVertical(const TDesC& aText,const TTextParameters* aParam,const TPoint& aPos,TBool aUp);
1.919 + TInt APIExDrawTextVertical(const TDesC& aText,const TTextParameters* aParam,const TRect& aBox,TInt aBaselineOffset,TBool aUp,TTextAlign aVert=ELeft,TInt aMargin=0);
1.920 + TInt APIExInterface(TAny*& aInterface, TUid aInterfaceId);
1.921 +
1.922 + void DrawResource(const TPoint& aPos, const RWsDrawableSource& aSource, TGraphicsRotation aRotation=EGraphicsRotationNone);
1.923 + void DrawResource(const TRect& aDestRect, const RWsDrawableSource& aSource, TGraphicsRotation aRotation=EGraphicsRotationNone);
1.924 + void DrawResource(const TRect& aDestRect, const RWsDrawableSource& aSource, const TRect& aSrcRect, TGraphicsRotation aRotation=EGraphicsRotationNone);
1.925 + void DrawResource(const TRect& aDestRect, const RWsDrawableSource& aSource, const TDesC8& aParam);
1.926 +
1.927 private: // Private data
1.928 - CFbsFont *iFont;
1.929 + class CPimpl;
1.930 + CPimpl* iPimpl;
1.931 CWsScreenDevice *iDevice;
1.932 };
1.933
1.934 @@ -2321,6 +2218,10 @@
1.935 IMPORT_C ~CWsScreenDevice();
1.936 IMPORT_C TInt Construct();
1.937 IMPORT_C TInt Construct( TInt aDefaultScreenNumber ) ;
1.938 + IMPORT_C TAny* GetInterface(TUint aInterfaceId);
1.939 + inline const TAny* GetInterface(TUint aInterfaceId) const;
1.940 + IMPORT_C TBool IsModeDynamic(TInt aSizeMode) const;
1.941 + IMPORT_C TBool IsCurrentModeDynamic() const;
1.942 //==== From CGraphicsDevice ====//
1.943 IMPORT_C TDisplayMode DisplayMode() const;
1.944 IMPORT_C TSize SizeInPixels() const;
1.945 @@ -2355,7 +2256,7 @@
1.946 //===== Extra functions ====//
1.947 IMPORT_C TInt SetCustomPalette(const CPalette* aPalette);
1.948 IMPORT_C TInt GetFontById(CFont*& aFont,TUid aUid,const TAlgStyle& aAlgStyle);
1.949 - IMPORT_C TBool RectCompare(const TRect &aRect1,const TRect &aRect2);
1.950 + IMPORT_C TBool RectCompare(const TRect &aRect1,const TRect &aRect2) const;
1.951 IMPORT_C TBool RectCompare(const TRect& aRect1,const TRect &aRect2,TUint aFlags) const;
1.952 IMPORT_C TInt CopyScreenToBitmap(const CFbsBitmap *aBitmap) const;
1.953 IMPORT_C TInt CopyScreenToBitmap(const CFbsBitmap *aBitmap, const TRect &aRect) const;
1.954 @@ -2381,14 +2282,19 @@
1.955 IMPORT_C TSize GetScreenModeScale(TInt aMode) const;
1.956 IMPORT_C TPoint GetCurrentScreenModeScaledOrigin() const;
1.957 IMPORT_C TPoint GetScreenModeScaledOrigin(TInt aMode) const;
1.958 - IMPORT_C TInt GetScreenSizeModeList(RArray<TInt>* aModeList);
1.959 + IMPORT_C TInt GetScreenSizeModeList(RArray<TInt>* aModeList) const;
1.960 IMPORT_C TDisplayMode GetScreenModeDisplayMode(const TInt &aMode) const;
1.961 //===== Used for testing purpose only ====//
1.962 IMPORT_C TSizeMode GetCurrentScreenModeAttributes() const;
1.963 IMPORT_C void SetCurrentScreenModeAttributes(const TSizeMode &aModeAtt);
1.964 IMPORT_C TInt GetScreenNumber() const;
1.965 +private:
1.966 + CFbsTypefaceStore* TypeFaceStore()const;
1.967 + TSize DisplaySizeInPixels()const;
1.968 + TSize PhysicalScreenSizeInTwips()const;
1.969 private: // Private data
1.970 - CFbsTypefaceStore* iTypefaceStore;
1.971 + class CScrDevExtension; //Implements extension interfaces, including and replacing typeface store
1.972 + CScrDevExtension* iExtension;
1.973 TSize iPhysicalScreenSizeInTwips;
1.974 TSize iDisplaySizeInPixels;
1.975 friend class CWindowGc;
1.976 @@ -2445,17 +2351,20 @@
1.977 After a pointer cursor has been created and activated, it does not become
1.978 visible until the application calls RWindowTreeNode::SetPointerCursor() or
1.979 RWindowTreeNode::SetCustomPointerCursor(). The pointer cursor's origin automatically
1.980 -tracks the position of the pointing device, and the origin forms the pointer
1.981 -cursor's "hot spot", i.e., the point whose co-ordinates are sent to the client
1.982 -if a pointer event occurs. If the pointer cursor's bitmap needs to extend
1.983 -to the left or upwards from the pointer position, its sprite member should
1.984 -be given a negative offset in TSpriteMember::iOffset.
1.985 +tracks the position of the pointing device, or position of emulated single pointer if there
1.986 +are more pointers in the system (see documentation of RWindowBase::EnableAdvancedPointers()
1.987 +for more details), and the origin forms the pointer cursor's "hot spot", i.e., the point
1.988 +whose co-ordinates are sent to the client if a pointer event occurs.
1.989 +If the pointer cursor's bitmap needs to extend to the left or upwards from the pointer
1.990 +position, its sprite member should be given a negative offset in TSpriteMember::iOffset.
1.991
1.992 Note:
1.993
1.994 Pointer cursors are rarely used in pure pen architectures, but they are supported
1.995 for mouse or tablet use.
1.996
1.997 +@see RWindowBase::EnableAdvancedPointers()
1.998 +
1.999 @publishedAll
1.1000 @released */
1.1001 {
1.1002 @@ -2581,6 +2490,7 @@
1.1003 IMPORT_C RDirectScreenAccess();
1.1004 IMPORT_C RDirectScreenAccess(RWsSession& aWs);
1.1005 IMPORT_C TInt Construct();
1.1006 + IMPORT_C TInt Construct(TBool aRegionTrackingOnly);
1.1007 IMPORT_C TInt Request(RRegion*& aRegion,TRequestStatus& aStatus,const RWindowBase& aWindow);
1.1008 IMPORT_C void Completed();
1.1009 IMPORT_C void Cancel();
1.1010 @@ -2672,6 +2582,7 @@
1.1011 {
1.1012 public:
1.1013 IMPORT_C static CDirectScreenAccess* NewL(RWsSession& aWs,CWsScreenDevice& aScreenDevice,RWindowBase& aWin,MDirectScreenAccess& aAbort);
1.1014 + IMPORT_C static CDirectScreenAccess* NewL(RWsSession& aWs,CWsScreenDevice& aScreenDevice,RWindowBase& aWin,MDirectScreenAccess& aAbort,TBool aRegionTrackingOnly);
1.1015 ~CDirectScreenAccess();
1.1016 IMPORT_C void StartL();
1.1017 inline CFbsBitGc* Gc();
1.1018 @@ -2680,12 +2591,13 @@
1.1019 private:
1.1020 enum TFlags
1.1021 {
1.1022 - EDirectCheckModeChange=0x1,
1.1023 - EDirectCheckSizeModeChange=0x2,
1.1024 + EDirectCheckModeChange = 0x01,
1.1025 + EDirectCheckSizeModeChange = 0x02,
1.1026 + EDirectRegionTrackingOnly = 0x04,
1.1027 };
1.1028 private:
1.1029 inline CDirectScreenAccess(RWsSession& aWs,CWsScreenDevice* aScreenDevice,RWindowBase& aWindow,MDirectScreenAccess& aAbort);
1.1030 - void ConstructL(RWsSession& aWs);
1.1031 + void ConstructL(RWsSession& aWs,TBool aRegionTrackingOnly);
1.1032 void CreateScreenObjectsL(TDisplayMode aCurrentMode);
1.1033 void UpdateSizeAndRotation(CFbsBitGc* aGc);
1.1034 static TInt Restart(TAny* aDirect);
1.1035 @@ -2735,13 +2647,13 @@
1.1036 IMPORT_C TInt Construct(TUid aUid=KNullUid);
1.1037 IMPORT_C void Close();
1.1038 IMPORT_C void Destroy();
1.1039 - IMPORT_C TBool IsLoaded(TBool& aIsChangeable);
1.1040 + IMPORT_C TBool IsLoaded(TBool& aIsChangeable) const;
1.1041 IMPORT_C TInt Unload();
1.1042 IMPORT_C TInt Load(const TDesC &aFileName);
1.1043 IMPORT_C void SetKeyClick(TBool aEnabled);
1.1044 IMPORT_C void SetPenClick(TBool aEnabled);
1.1045 - IMPORT_C TBool KeyClickEnabled();
1.1046 - IMPORT_C TBool PenClickEnabled();
1.1047 + IMPORT_C TBool KeyClickEnabled() const;
1.1048 + IMPORT_C TBool PenClickEnabled() const;
1.1049 IMPORT_C TInt CommandReply(TInt aOpcode, const TPtrC8 &aArgs);
1.1050 };
1.1051
1.1052 @@ -2751,6 +2663,11 @@
1.1053 @return The server-side handle for the object. */
1.1054 {return(iWsHandle);}
1.1055
1.1056 +inline const TAny* CWsScreenDevice::GetInterface(TUint aInterfaceId) const
1.1057 + {
1.1058 + return const_cast<CWsScreenDevice*>(this)->GetInterface(aInterfaceId);
1.1059 + }
1.1060 +
1.1061 inline TInt CWsScreenDevice::CreateContext(CWindowGc *&aGc)
1.1062 /** Creates a graphics context for this device.
1.1063
1.1064 @@ -2779,14 +2696,146 @@
1.1065 the window whose handle is given by Handle(). */
1.1066 {return(iRect);}
1.1067
1.1068 -inline TPointerEvent *TWsEvent::Pointer() const
1.1069 +inline TWsEvent::TWsEvent()
1.1070 + /** Constructor. Zero Initialise Data
1.1071 + @publishedAll
1.1072 + @released */
1.1073 + {
1.1074 + iType=0;
1.1075 + iHandle=0;
1.1076 + iTime=0;
1.1077 + Mem::FillZ(iEventData,EWsEventDataSize);
1.1078 + }
1.1079 +
1.1080 +inline TAdvancedPointerEvent* TWsEvent::Pointer() const
1.1081 /** Gets the pointer event.
1.1082 -
1.1083 - This function can be used to get information about the pointer event if Type()
1.1084 - returns an event of type EEventPointer. or EEventDragDrop.
1.1085 -
1.1086 - @return Structure containing pointer event data. */
1.1087 - {return((TPointerEvent *)&iEventData);}
1.1088 +
1.1089 + This method can be used to get information about the pointer event if Type()
1.1090 + returns an event of type EEventPointer or EEventDragDrop.
1.1091 +
1.1092 + If the event has been received by the window without advanced pointer events enabled,
1.1093 + this method will return a pointer to TPointerEvent with additional fields of
1.1094 + TAdvancedPointerEvent being cleared to 0.
1.1095 +
1.1096 + @return Structure containing advanced pointer event data.
1.1097 + @see TPointerEvent::AdvancedPointerEvent()
1.1098 + @see RWindowBase::EnableAdvancedPointers() */
1.1099 + {return((TAdvancedPointerEvent *)&iEventData);}
1.1100 +
1.1101 +inline TInt TAdvancedPointerEvent::PointerNumber() const
1.1102 +/** Gets the pointer number of the pointer whose state change is described by this event.
1.1103 +
1.1104 + As soon as the pointer (for example a finger) is detected by the device's sensors,
1.1105 + it is assigned a pointer number. Then all events related to this pointer always
1.1106 + use the same pointer number. When the device loses track of the pointer,
1.1107 + TPointerEvent::EOutOfRange is sent with its pointer number and the number is released
1.1108 + - from this time it may be re-used to identify another pointer coming into range.
1.1109 +
1.1110 + On a particular device, the pointer number is always an integer in the range 0 to
1.1111 + HALData::EPointerNumberOfPointers - 1. If the device doesn't provide value for
1.1112 + this attribute, it is assumed to be 1.
1.1113 +
1.1114 + Please note that in order to receive events from multiple pointers in a window, the method
1.1115 + RWindowBase::EnableAdvancedPointers() has to be called for this window's instance
1.1116 + before it is activated. Otherwise this window will only receive TPointerEvents from one
1.1117 + emulated pointer, which will always have pointer number 0.
1.1118 +
1.1119 + @return Pointer number of the pointer whose state change is described by this event.
1.1120 + @see RWindowBase::EnableAdvancedPointers()
1.1121 + @see HALData::EPointerNumberOfPointers */
1.1122 + {
1.1123 + return IsAdvancedPointerEvent() ? DoGetPointerNumber() : ENonAdvancedPointerPointerNumber;
1.1124 + }
1.1125 +
1.1126 +inline TInt TAdvancedPointerEvent::Proximity() const
1.1127 +/** Gets the proximity of the pointer to the screen's surface.
1.1128 + Proximity units may vary between devices and may be non-linear.
1.1129 + Returned value will be a negative integer as the maximum supported proximity
1.1130 + range in Symbian OS is from KMinTInt to 0, where KMinTInt means the highest
1.1131 + proximity that Symbian OS can support and 0 means touching the screen.
1.1132 + HALData attributes provide more information about proximity support on particular
1.1133 + device.
1.1134 +
1.1135 + On platforms without pointer proximity support, proximity is always assumed to be 0.
1.1136 +
1.1137 + @return Proximity of the pointer to the screen's surface.
1.1138 + @see TAdvancedPointerEvent::Position3D()
1.1139 + @see TAdvancedPointerEvent::ProximityAndPressure()
1.1140 + @see HALData::EPointer3DMaxProximity
1.1141 + @see HALData::EPointer3DProximityStep */
1.1142 + {
1.1143 + return IsAdvancedPointerEvent() ? DoGetProximity() : ENonAdvancedPointerZCoordinate;
1.1144 + }
1.1145 +
1.1146 +inline TInt TAdvancedPointerEvent::Pressure() const
1.1147 +/** Gets the pressure applied by the pointer to the screen.
1.1148 + Pressure units may vary between devices and may be non-linear.
1.1149 + Returned value will be a positive integer as the maximum supported pressure range
1.1150 + in Symbian OS is from 0 to KMaxTInt. HALData attributes provide more information
1.1151 + about pressure support on particular device.
1.1152 +
1.1153 + On platforms without pointer pressure support, pressure is always assumed to be 0.
1.1154 +
1.1155 + @return Pressure applied by the pointer to the screen.
1.1156 + @see TAdvancedPointerEvent::Pressure3D()
1.1157 + @see TAdvancedPointerEvent::ProximityAndPressure()
1.1158 + @see HALData::EPointer3DMaxPressure
1.1159 + @see HALData::EPointer3DPressureStep */
1.1160 + {
1.1161 + return IsAdvancedPointerEvent() ? DoGetPressure() : ENonAdvancedPointerZCoordinate;
1.1162 + }
1.1163 +
1.1164 +inline TInt TAdvancedPointerEvent::ProximityAndPressure() const
1.1165 +/** Gets pressure applied by the pointer to the screen and proximity of the pointer
1.1166 + to the screen as one value. This is possible because the pointer is never in proximity
1.1167 + to the screen and pressing the screen at the same time.
1.1168 +
1.1169 + @return The value of proximity if the pointer is in proximity to the screen; proximity
1.1170 + is always represented as negative TInt. The value of pressure if the pointer
1.1171 + is touching the screen; pressure is always represented as positive TInt.
1.1172 + @see TAdvancedPointerEvent::Proximity()
1.1173 + @see TAdvancedPointerEvent::Pressure()
1.1174 + @see TAdvancedPointerEvent::PositionAndPressure3D() */
1.1175 + {return IsAdvancedPointerEvent() ? DoGetProximityAndPressure() : ENonAdvancedPointerZCoordinate;}
1.1176 +
1.1177 +inline TPoint3D TAdvancedPointerEvent::PositionAndPressure3D() const
1.1178 +/**
1.1179 + @return Pointer's X and Y coordinates plus combined proximity and pressure as
1.1180 + Z coordinate.
1.1181 + @see TAdvancedPointerEvent::ProximityAndPressure() */
1.1182 + {
1.1183 + TPoint3D point3D;
1.1184 + point3D.iX=iPosition.iX;
1.1185 + point3D.iY=iPosition.iY;
1.1186 + point3D.iZ=ProximityAndPressure();
1.1187 + return point3D;
1.1188 + }
1.1189 +
1.1190 +inline TPoint3D TAdvancedPointerEvent::Position3D() const
1.1191 +/**
1.1192 + @return Pointer's X and Y coordinates plus pointer's proximity to the screen as
1.1193 + Z coordinate. Please note that returned Z coordinate will be always negative or 0.
1.1194 + @see TAdvancedPointerEvent::Proximity() */
1.1195 + {
1.1196 + TPoint3D point3D;
1.1197 + point3D.iX=iPosition.iX;
1.1198 + point3D.iY=iPosition.iY;
1.1199 + point3D.iZ=IsAdvancedPointerEvent() ? DoGetProximity() : ENonAdvancedPointerZCoordinate;
1.1200 + return point3D;
1.1201 + }
1.1202 +
1.1203 +inline TPoint3D TAdvancedPointerEvent::Pressure3D() const
1.1204 +/**
1.1205 + @return Pointer's X and Y coordinates plus pressure applied by the pointer to the screen
1.1206 + as Z coordinate.
1.1207 + @see TAdvancedPointerEvent::Pressure() */
1.1208 + {
1.1209 + TPoint3D point3D;
1.1210 + point3D.iX=iPosition.iX;
1.1211 + point3D.iY=iPosition.iY;
1.1212 + point3D.iZ=IsAdvancedPointerEvent() ? DoGetPressure() : ENonAdvancedPointerZCoordinate;
1.1213 + return point3D;
1.1214 + }
1.1215
1.1216 inline TKeyEvent *TWsEvent::Key() const
1.1217 /** Gets the key event.
1.1218 @@ -2815,6 +2864,24 @@
1.1219 @return Structure containing visibility changed event data */
1.1220 { return reinterpret_cast<const TWsVisibilityChangedEvent*>(iEventData); }
1.1221
1.1222 +inline TWsDisplayChangedEvent* TWsEvent::DisplayChanged()
1.1223 + /** Gets information about the display changed event.
1.1224 +
1.1225 + This function can be used to get information about the display changed event
1.1226 + if Type() returns an event of type EEventDisplayChanged.
1.1227 +
1.1228 + @return Structure containing display changed event data */
1.1229 + { return reinterpret_cast<TWsDisplayChangedEvent*>(iEventData); }
1.1230 +
1.1231 +inline const TWsDisplayChangedEvent* TWsEvent::DisplayChanged() const
1.1232 + /** Gets information about the display changed event.
1.1233 +
1.1234 + This function can be used to get information about the display changed event
1.1235 + if Type() returns an event of type EEventDisplayChanged.
1.1236 +
1.1237 + @return Structure containing display changed event data */
1.1238 + { return reinterpret_cast<const TWsDisplayChangedEvent*>(iEventData); }
1.1239 +
1.1240 inline TModifiersChangedEvent *TWsEvent::ModifiersChanged() const
1.1241 /** Gets information about the modifier changed event.
1.1242
1.1243 @@ -2885,7 +2952,19 @@
1.1244 {iTime.UniversalTime();}
1.1245
1.1246 inline TInt *TWsEvent::Int() const
1.1247 - /** Gets the event data as a TInt.*/
1.1248 + /** Gets the event data as a TInt.
1.1249 +
1.1250 + For TWsEvents of type EEventPointerEnter and EEventPointerExit this is the pointer number
1.1251 + of the pointer that entered/exited the window. Please note that on platforms that
1.1252 + use the older Symbian OS, without multipointer support, pointer number is not initialized
1.1253 + for EEventPointerEnter and EEventPointerExit and thus it is random.
1.1254 +
1.1255 + If the value of the attribute returned from HALData::EPointerNumberOfPointers is greater than 1,
1.1256 + then the system has multipointer support.
1.1257 +
1.1258 + @see HALData::EPointerNumberOfPointers
1.1259 + @see HAL::Get(TAttribute,TInt&)
1.1260 + */
1.1261 { return (TInt*)&iEventData; }
1.1262
1.1263 inline TUint TWsPriorityKeyEvent::Handle() const
1.1264 @@ -2954,14 +3033,4 @@
1.1265 @return The clipping region to draw to. */
1.1266 { return iDrawingRegion; }
1.1267
1.1268 -inline TSizeMode::TSizeMode(TSize& aSize) :
1.1269 - iOrigin(0, 0), iScreenSize(aSize)
1.1270 - {}
1.1271 -
1.1272 -inline TInt TSizeMode::ScaledCord(TInt aOrigin,TInt aScale)
1.1273 - {return (aOrigin+aScale-1)/aScale;}
1.1274 -
1.1275 -inline TPoint TSizeMode::ScaledOrigin()
1.1276 - {return TPoint(ScaledCord(iOrigin.iX,iScreenScale.iWidth),ScaledCord(iOrigin.iY,iScreenScale.iHeight));}
1.1277 -
1.1278 -#endif
1.1279 +#endif //__W32STD_H__