diff options
Diffstat (limited to 'vcl/inc/vcl/window.h')
-rw-r--r-- | vcl/inc/vcl/window.h | 125 |
1 files changed, 78 insertions, 47 deletions
diff --git a/vcl/inc/vcl/window.h b/vcl/inc/vcl/window.h index d52616a1c183..12f6eedc2906 100644 --- a/vcl/inc/vcl/window.h +++ b/vcl/inc/vcl/window.h @@ -39,7 +39,7 @@ #ifndef _SV_POINTR_HXX #include <vcl/pointr.hxx> #endif -#include <vcl/wintypes.hxx> +#include <tools/wintypes.hxx> #include <vcl/vclevent.hxx> #include <com/sun/star/uno/Reference.hxx> #include <cppuhelper/weakref.hxx> @@ -57,7 +57,6 @@ class VirtualDevice; class Cursor; class ImplDevFontList; class ImplFontCache; -class SmartId; class VCLXWindow; class SalFrame; class SalObject; @@ -100,10 +99,24 @@ namespace dnd { class XDropTarget; } } } } } -namespace vcl { struct ControlLayoutData; } +namespace vcl { + struct ControlLayoutData; + struct ExtWindowImpl; +} + +// -------------- +// - Prototypes - +// -------------- +long ImplWindowFrameProc( Window* pInst, SalFrame* pFrame, sal_uInt16 nEvent, const void* pEvent ); +// ----------- +// - HitTest - +// ----------- + +#define WINDOW_HITTEST_INSIDE ((sal_uInt16)0x0001) +#define WINDOW_HITTEST_TRANSPARENT ((sal_uInt16)0x0002) // --------------- // - ImplWinData - @@ -112,17 +125,15 @@ namespace vcl { struct ControlLayoutData; } struct ImplWinData { UniString* mpExtOldText; - USHORT* mpExtOldAttrAry; + sal_uInt16* mpExtOldAttrAry; Rectangle* mpCursorRect; long mnCursorExtWidth; Rectangle* mpFocusRect; Rectangle* mpTrackRect; - USHORT mnTrackFlags; - USHORT mnIsTopWindow; - BOOL mbMouseOver; // tracks mouse over for native widget paint effect - BOOL mbEnableNativeWidget; // toggle native widget rendering - SmartId* mpSmartHelpId; - SmartId* mpSmartUniqueId; + sal_uInt16 mnTrackFlags; + sal_uInt16 mnIsTopWindow; + sal_Bool mbMouseOver; // tracks mouse over for native widget paint effect + sal_Bool mbEnableNativeWidget; // toggle native widget rendering ::std::list< Window* > maTopWindowChildren; }; @@ -136,9 +147,9 @@ struct ImplOverlapData VirtualDevice* mpSaveBackDev; // Gesicherte Hintergrund-Bitmap Region* mpSaveBackRgn; // Gesicherte Region, was invalidiert werden muss Window* mpNextBackWin; // Naechstes Fenster mit Hintergrund-Sicherung - ULONG mnSaveBackSize; // Groesse Bitmap fuer Hintergrund-Sicherung - BOOL mbSaveBack; // TRUE: Background sichern - BYTE mnTopLevel; // Level for Overlap-Window + sal_uIntPtr mnSaveBackSize; // Groesse Bitmap fuer Hintergrund-Sicherung + sal_Bool mbSaveBack; // sal_True: Background sichern + sal_uInt8 mnTopLevel; // Level for Overlap-Window }; // ----------------- @@ -162,9 +173,9 @@ struct ImplFrameData sal_Int32 mnDPIX; // Original Screen Resolution sal_Int32 mnDPIY; // Original Screen Resolution ImplMapRes maMapUnitRes; // for LogicUnitToPixel - ULONG mnAllSaveBackSize; // Groesse aller Bitmaps fuer Hintergrund-Sicherung - ULONG mnFocusId; // FocusId for PostUserLink - ULONG mnMouseMoveId; // MoveId for PostUserLink + sal_uIntPtr mnAllSaveBackSize; // Groesse aller Bitmaps fuer Hintergrund-Sicherung + sal_uIntPtr mnFocusId; // FocusId for PostUserLink + sal_uIntPtr mnMouseMoveId; // MoveId for PostUserLink long mnLastMouseX; // last x mouse position long mnLastMouseY; // last y mouse position long mnBeforeLastMouseX; // last but one x mouse position @@ -173,23 +184,23 @@ struct ImplFrameData long mnFirstMouseY; // first y mouse position by mousebuttondown long mnLastMouseWinX; // last x mouse position, rel. to pMouseMoveWin long mnLastMouseWinY; // last y mouse position, rel. to pMouseMoveWin - USHORT mnModalMode; // frame based modal count (app based makes no sense anymore) - ULONG mnMouseDownTime; // mouse button down time for double click - USHORT mnClickCount; // mouse click count - USHORT mnFirstMouseCode; // mouse code by mousebuttondown - USHORT mnMouseCode; // mouse code - USHORT mnMouseMode; // mouse mode + sal_uInt16 mnModalMode; // frame based modal count (app based makes no sense anymore) + sal_uIntPtr mnMouseDownTime; // mouse button down time for double click + sal_uInt16 mnClickCount; // mouse click count + sal_uInt16 mnFirstMouseCode; // mouse code by mousebuttondown + sal_uInt16 mnMouseCode; // mouse code + sal_uInt16 mnMouseMode; // mouse mode MapUnit meMapUnit; // last MapUnit for LogicUnitToPixel - BOOL mbHasFocus; // focus - BOOL mbInMouseMove; // is MouseMove on stack - BOOL mbMouseIn; // is Mouse inside the frame - BOOL mbStartDragCalled; // is command startdrag called - BOOL mbNeedSysWindow; // set, when FrameSize <= IMPL_MIN_NEEDSYSWIN - BOOL mbMinimized; // set, when FrameSize <= 0 - BOOL mbStartFocusState; // FocusState, beim abschicken des Events - BOOL mbInSysObjFocusHdl; // Innerhalb vom GetFocus-Handler eines SysChilds - BOOL mbInSysObjToTopHdl; // Innerhalb vom ToTop-Handler eines SysChilds - BOOL mbSysObjFocus; // Hat ein SysChild den Focus + sal_Bool mbHasFocus; // focus + sal_Bool mbInMouseMove; // is MouseMove on stack + sal_Bool mbMouseIn; // is Mouse inside the frame + sal_Bool mbStartDragCalled; // is command startdrag called + sal_Bool mbNeedSysWindow; // set, when FrameSize <= IMPL_MIN_NEEDSYSWIN + sal_Bool mbMinimized; // set, when FrameSize <= 0 + sal_Bool mbStartFocusState; // FocusState, beim abschicken des Events + sal_Bool mbInSysObjFocusHdl; // Innerhalb vom GetFocus-Handler eines SysChilds + sal_Bool mbInSysObjToTopHdl; // Innerhalb vom ToTop-Handler eines SysChilds + sal_Bool mbSysObjFocus; // Hat ein SysChild den Focus ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::dnd::XDragSource > mxDragSource; ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::dnd::XDropTarget > mxDropTarget; @@ -197,9 +208,27 @@ struct ImplFrameData ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::clipboard::XClipboard > mxClipboard; ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::clipboard::XClipboard > mxSelection; - BOOL mbInternalDragGestureRecognizer; + sal_Bool mbInternalDragGestureRecognizer; +}; + +// ----------------------- +// - ImplAccessibleInfos - +// ----------------------- + +struct ImplAccessibleInfos +{ + sal_uInt16 nAccessibleRole; + String* pAccessibleName; + String* pAccessibleDescription; + Window* pLabeledByWindow; + Window* pLabelForWindow; + Window* pMemberOfWindow; + + ImplAccessibleInfos(); + ~ImplAccessibleInfos(); }; + // --------------- // - WindowImpl - // --------------- @@ -240,6 +269,7 @@ public: ImplDelData* mpFirstDel; void* mpUserData; + vcl::ExtWindowImpl* mpExtImpl; Cursor* mpCursor; Pointer maPointer; Fraction maZoom; @@ -255,8 +285,8 @@ public: long mnY; long mnAbsScreenX; Point maPos; - ULONG mnHelpId; - ULONG mnUniqId; + rtl::OString maHelpId; + rtl::OString maUniqId; XubString maHelpText; XubString maQuickHelpText; InputContext maInputContext; @@ -275,15 +305,15 @@ public: WinBits mnPrevExtendedStyle; WindowType mnType; ControlPart mnNativeBackground; - USHORT mnWaitCount; - USHORT mnPaintFlags; - USHORT mnGetFocusFlags; - USHORT mnParentClipMode; - USHORT mnActivateMode; - USHORT mnDlgCtrlFlags; - USHORT mnLockCount; + sal_uInt16 mnWaitCount; + sal_uInt16 mnPaintFlags; + sal_uInt16 mnGetFocusFlags; + sal_uInt16 mnParentClipMode; + sal_uInt16 mnActivateMode; + sal_uInt16 mnDlgCtrlFlags; + sal_uInt16 mnLockCount; AlwaysInputMode meAlwaysInputMode; - BOOL mbFrame:1, + sal_Bool mbFrame:1, mbBorderWin:1, mbOverlapWin:1, mbSysWin:1, @@ -356,7 +386,8 @@ public: mbDisableAccessibleLabelForRelation:1, mbDisableAccessibleLabeledByRelation:1, mbHelpTextDynamic:1, - mbFakeFocusSet:1; + mbFakeFocusSet:1, + mbInterceptChildWindowKeyDown:1; ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > mxDNDListenerContainer; }; @@ -365,9 +396,9 @@ public: // - Hilfsmethoden - // ----------------- -long ImplHandleMouseEvent( Window* pWindow, USHORT nSVEvent, BOOL bMouseLeave, - long nX, long nY, ULONG nMsgTime, - USHORT nCode, USHORT nMode ); +long ImplHandleMouseEvent( Window* pWindow, sal_uInt16 nSVEvent, sal_Bool bMouseLeave, + long nX, long nY, sal_uIntPtr nMsgTime, + sal_uInt16 nCode, sal_uInt16 nMode ); void ImplHandleResize( Window* pWindow, long nNewWidth, long nNewHeight ); #endif // _SV_WINDOW_H |