59#include <com/sun/star/datatransfer/dnd/DNDConstants.hpp>
60#include <com/sun/star/datatransfer/dnd/XDragSource.hpp>
61#include <com/sun/star/awt/MouseEvent.hpp>
63#define IMPL_MIN_NEEDSYSWIN 49
83 bool bHitTestInsideRect =
false;
90 if ( !pFloat || bHitTestInsideRect )
110 else if ( bHitTestInsideRect )
120 if ( bHitTestInsideRect )
176 if ( !(
bool(nHelpMode)) )
181 HelpEvent aHelpEvent( rMousePos, nHelpMode );
202 bool bMouse =
false, Point
const * pPos =
nullptr )
247struct ContextMenuEvent
257 ContextMenuEvent* pEv =
static_cast<ContextMenuEvent*
>(pCEvent);
259 if( ! pEv->pWindow->isDisposed() )
272 "(MouseNotifyEvent " <<
static_cast<sal_uInt16
>(nSVEvent) <<
") "
273 "(MouseLeave " << bMouseLeave <<
") "
274 "(X, Y " << nX <<
", " << nY <<
") "
275 "(Code " <<
nCode <<
") "
276 "(Modifiers " <<
static_cast<sal_uInt16
>(nMode) <<
")");
279 Point aMousePos( nX, nY );
282 sal_uInt16 nClicks(0);
343 "ImplHandleMouseEvent: TrackWin != CaptureWin");
358 "ImplHandleMouseEvent: mouse event is not sent to capture window" );
377 if ( !pChild && !bMouseLeave )
387 pChildWinOutDev->
ReMirror( aMousePos );
483 css::uno::Reference< css::datatransfer::dnd::XDragGestureRecognizer > xDragGestureRecognizer(
485 css::uno::UNO_QUERY );
487 if( xDragGestureRecognizer.is() )
495 css::awt::MouseEvent aMouseEvent(
static_cast < css::uno::XInterface *
> (
nullptr ),
510 css::uno::Reference< css::datatransfer::dnd::XDragSource > xDragSource = pMouseDownWin->
GetDragSource();
512 if( xDragSource.is() )
514 static_cast < DNDListenerContainer *
> ( xDragGestureRecognizer.get() )->fireDragGestureEvent( 0,
515 relLoc.X(), relLoc.Y(), xDragSource, css::uno::Any( aMouseEvent ) );
530 if ( pChild != pMouseMoveWin )
612 SAL_WARN_IF( !pChild,
"vcl",
"ImplHandleMouseEvent: pChild == NULL" );
640 bool bCallHelpRequest =
true;
641 SAL_WARN_IF( !pChild,
"vcl",
"ImplHandleMouseEvent: pChild is NULL" );
680 bCallHelpRequest =
false;
686 bCallHelpRequest =
false;
694 bCallHelpRequest =
false;
791 ContextMenuEvent* pEv =
new ContextMenuEvent;
792 pEv->pWindow = pChild;
793 pEv->aChildPos = aChildPos;
810 Point aMousePos(nX, nY);
835 css::uno::Reference<css::datatransfer::dnd::XDropTargetDragContext> xDropTargetDragContext =
837 css::uno::Reference<css::datatransfer::dnd::XDropTarget> xDropTarget(
840 if (!xDropTarget.is() ||
841 !xDropTargetDragContext.is() ||
850 xDropTargetDragContext,
851 css::datatransfer::dnd::DNDConstants::ACTION_MOVE,
854 (css::datatransfer::dnd::DNDConstants::ACTION_COPY |
855 css::datatransfer::dnd::DNDConstants::ACTION_MOVE |
856 css::datatransfer::dnd::DNDConstants::ACTION_LINK));
865 css::uno::Reference<css::datatransfer::XTransferable> xTransfer;
866 css::uno::Reference<css::datatransfer::dnd::XDropTargetDropContext> xDropTargetDropContext =
868 css::uno::Reference<css::datatransfer::dnd::XDropTarget> xDropTarget(
871 if (!xDropTarget.is() || !xDropTargetDropContext.is())
879 xDropTargetDropContext,
880 css::datatransfer::dnd::DNDConstants::ACTION_MOVE,
883 (css::datatransfer::dnd::DNDConstants::ACTION_COPY |
884 css::datatransfer::dnd::DNDConstants::ACTION_MOVE |
885 css::datatransfer::dnd::DNDConstants::ACTION_LINK),
923 css::uno::Reference< css::datatransfer::dnd::XDragGestureRecognizer > xDragGestureRecognizer(
925 css::uno::UNO_QUERY );
927 if (xDragGestureRecognizer.is())
930 css::awt::MouseEvent
aEvent(
931 static_cast < css::uno::XInterface *
> (
nullptr ),
942 css::uno::Reference< css::datatransfer::dnd::XDragSource > xDragSource =
945 if (xDragSource.is())
948 fireDragGestureEvent(
1066 sal_uInt16 nKeyCode, sal_uInt16 nCharCode, sal_uInt16 nRepeat,
bool bForward )
1070 sal_uInt16 nEvCode = aKeyCode.
GetCode();
1122 sal_uInt16 nOrigCode = aKeyCode.
GetCode();
1132 sal_uInt16 nEscCode = aKeyCode.
GetCode();
1184 if (
auto pEdit =
dynamic_cast<Edit*
>(pChild.
get()))
1185 bPass = pEdit->IsPassword();
1189 nCharCode =
static_cast<sal_uInt16
>(aSep[0]);
1199 NotifyEvent aNotifyEvt( nSVEvent, pChild, &aKeyEvt );
1203 if ( !bKeyPreNotify && !pChild->
isDisposed() )
1214 pChild->
KeyUp( aKeyEvt );
1230 bool bToolboxFocus=
false;
1238 bToolboxFocus =
true;
1279 else if ( aKeyCode.
IsShift() )
1318 pChild->
KeyUp( aKeyEvt );
1335 const OUString& rText,
1337 sal_Int32 nCursorPos, sal_uInt16 nCursorFlags )
1357 SAL_WARN(
"vcl",
"Failed to get ext text input context");
1380 bool bOnlyCursor =
false;
1381 sal_Int32 nMinLen = std::min( pWinData->
mpExtOldText->getLength(), rText.getLength() );
1382 sal_Int32 nDeltaStart = 0;
1383 while ( nDeltaStart < nMinLen )
1385 if ( (*pWinData->
mpExtOldText)[nDeltaStart] != rText[nDeltaStart] )
1396 while (
i < nDeltaStart )
1407 if ( (nDeltaStart >= nMinLen) &&
1408 (pWinData->
mpExtOldText->getLength() == rText.getLength()) )
1413 nCursorPos, nCursorFlags,
1474 if ( !aSize.
Width() )
1485 if (pVertical !=
nullptr)
1536class HandleGestureEventBase
1544 HandleGestureEventBase(
vcl::Window *pWindow,
const Point &rMousePos)
1546 , m_pWindow(pWindow)
1547 , m_aMousePos(rMousePos)
1553 virtual bool CallCommand(
vcl::Window *pWindow,
const Point &rMousePos) = 0;
1554 virtual ~HandleGestureEventBase() {}
1559bool HandleGestureEventBase::Setup()
1562 if (m_pSVData->mpWinData->mpAutoScrollWin)
1563 m_pSVData->mpWinData->mpAutoScrollWin->EndAutoScroll();
1566 return !m_pWindow->isDisposed();
1574 if (m_pSVData->mpWinData->mpFirstFloat && !m_pSVData->mpWinData->mpCaptureWin &&
1575 !m_pSVData->mpWinData->mpFirstFloat->ImplIsFloatPopupModeWindow( m_pWindow ) )
1577 bool bHitTestInsideRect =
false;
1578 pMouseWindow = m_pSVData->mpWinData->mpFirstFloat->ImplFloatHitTest( m_pWindow, m_aMousePos, bHitTestInsideRect );
1580 pMouseWindow = m_pSVData->mpWinData->mpFirstFloat;
1593 m_pWindow->OutputToAbsoluteScreenPixel(
1594 m_pWindow->ScreenToOutputPixel( m_aMousePos ) ) ) ) );
1602 pMouseWindow = pMouseWindow->
GetParent();
1605 return pMouseWindow;
1617 m_pWindow->OutputToAbsoluteScreenPixel(
1618 m_pWindow->ScreenToOutputPixel( m_aMousePos ) ) ) ) );
1619 bool bPropagate = CallCommand(pMouseWindow, aRelMousePos);
1621 pDispatchedTo = pMouseWindow;
1628 if ( pFocusWindow && (pFocusWindow != pMouseWindow) &&
1629 (pFocusWindow == m_pSVData->mpWinData->mpFocusWin) )
1637 m_pWindow->OutputToAbsoluteScreenPixel(
1638 m_pWindow->ScreenToOutputPixel( m_aMousePos ) ) ) ) );
1639 bool bPropagate = CallCommand(pFocusWindow, aRelMousePos);
1641 pDispatchedTo = pMouseWindow;
1645 return pDispatchedTo;
1650class HandleWheelEvent :
public HandleGestureEventBase
1656 : HandleGestureEventBase(pWindow,
Point(rEvt.mnX, rEvt.mnY))
1660 bool bHorz = rEvt.
mbHorz;
1677 virtual bool CallCommand(
vcl::Window *pWindow,
const Point &rMousePos)
override
1713class HandleGestureEvent :
public HandleGestureEventBase
1716 HandleGestureEvent(
vcl::Window *pWindow,
const Point &rMousePos)
1717 : HandleGestureEventBase(pWindow, rMousePos)
1725bool HandleGestureEvent::HandleEvent()
1732 bool bHandled = Dispatch(pTarget) !=
nullptr;
1738 HandleWheelEvent aHandler(pWindow, rEvt);
1739 return aHandler.HandleEvent(rEvt);
1744class HandleSwipeEvent :
public HandleGestureEvent
1750 : HandleGestureEvent(pWindow,
Point(rEvt.mnX, rEvt.mnY)),
1751 m_aSwipeData(rEvt.mnVelocityX)
1754 virtual bool CallCommand(
vcl::Window *pWindow,
const Point &)
override
1764 HandleSwipeEvent aHandler(pWindow, rEvt);
1765 return aHandler.HandleEvent();
1770class HandleLongPressEvent :
public HandleGestureEvent
1776 : HandleGestureEvent(pWindow,
Point(rEvt.mnX, rEvt.mnY)),
1777 m_aLongPressData(rEvt.mnX, rEvt.mnY)
1780 virtual bool CallCommand(
vcl::Window *pWindow,
const Point &)
override
1790 HandleLongPressEvent aHandler(pWindow, rEvt);
1791 return aHandler.HandleEvent();
1796class HandleGeneralGestureEvent :
public HandleGestureEvent
1803 : HandleGestureEvent(pWindow,
Point(rEvent.mnX, rEvent.mnY))
1804 , m_aGestureData(rEvent.mnX, rEvent.mnY, rEvent.meEventType, rEvent.mfOffset, rEvent.meOrientation)
1808 virtual bool CallCommand(
vcl::Window* pWindow,
const Point& )
override
1818 HandleGeneralGestureEvent aHandler(pWindow, rEvent);
1819 return aHandler.HandleEvent();
1830 if( bImmediateUpdate )
1865 (nNewWidth > 0 && nNewHeight > 0) ||
1879 bool bStartTimer =
true;
1892 bStartTimer =
false;
1898 bStartTimer =
false;
1902 bStartTimer =
false;
1922 bool bMinimized = (nNewWidth <= 0) || (nNewHeight <= 0);
1963 while ( pTempWindow )
1967 if ( (pTempWindow->
GetType() == WindowType::BORDERWINDOW) &&
1979 if (!ImplGetWindowImpl() || !ImplGetWindowImpl()->mpFrameData)
1982 ImplGetWindowImpl()->mpFrameData->mnFocusId =
nullptr;
1986 bool bHasFocus = ImplGetWindowImpl()->mpFrameData->mbHasFocus || ImplGetWindowImpl()->mpFrameData->mbSysObjFocus;
1992 if ( ImplGetWindowImpl()->mpFrameData->mbStartFocusState != bHasFocus )
1995 if ( ImplGetWindowImpl()->mpFrameData->mpFocusWin )
1997 bool bHandled =
false;
1998 if ( ImplGetWindowImpl()->mpFrameData->mpFocusWin->IsInputEnabled() &&
1999 ! ImplGetWindowImpl()->mpFrameData->mpFocusWin->IsInModalMode() )
2001 if ( ImplGetWindowImpl()->mpFrameData->mpFocusWin->IsEnabled() )
2003 ImplGetWindowImpl()->mpFrameData->mpFocusWin->GrabFocus();
2006 else if( ImplGetWindowImpl()->mpFrameData->mpFocusWin->ImplHasDlgCtrl() )
2010 ImplGetWindowImpl()->mpFrameData->mpFocusWin->ImplDlgCtrlNextWindow();
2031 vcl::Window* pFocusWin = ImplGetWindowImpl()->mpFrameData->mpFocusWin;
2056 if ( pOldRealWindow != pOldOverlapWindow )
2077 if ( ImplGetWindowImpl()->mpFrameData->mbStartFocusState != bHasFocus )
2147struct DelayedCloseEvent
2156 DelayedCloseEvent* pEv =
static_cast<DelayedCloseEvent*
>(pCEvent);
2158 if( ! pEv->pWindow->isDisposed() )
2161 if( pEv->pWindow->IsSystemWindow() )
2163 else if( pEv->pWindow->IsDockingWindow() )
2173 bool bWasPopup =
false;
2209 rLink.
Call(*pSysWin);
2217 DelayedCloseEvent* pEv =
new DelayedCloseEvent;
2218 pEv->pWindow = pWin;
2267 pEvent->
mnX, pEvent->
mnY,
2275 pEvent->
mnX, pEvent->
mnY,
2283 pEvent->
mnX, pEvent->
mnY,
2296 pEvent->
mnX, pEvent->
mnY,
2354 pWindow = pTrackWin;
2360 sal_uInt16 nNewCode = pEvent->
mnCode;
2361 if ( nOldCode != nNewCode )
2450 pEvt->
mnX = aCursorRect.
Left();
2451 pEvt->
mnY = aCursorRect.
Top();
2462 if( pWindow->
GetType() == WindowType::BORDERWINDOW )
2501 if( aSelRange.
Min() < 0 )
2503 else if( aSelRange.
Min() > pEvt->
maText.getLength() )
2508 if( aSelRange.
Max() < 0 )
2510 else if( aSelRange.
Max() > pEvt->
maText.getLength() )
2772 static bool bInQueryExit =
false;
2775 bInQueryExit =
true;
2784 bInQueryExit =
false;
2858 auto const * pGestureEvent =
static_cast<GestureEvent const *
>(pEvent);
2861 aSalGestureEvent.
mfOffset = pGestureEvent->mnOffset;
2862 aSalGestureEvent.
mnX = pGestureEvent->mnX;
2863 aSalGestureEvent.
mnY = pGestureEvent->mnY;
2864 aSalGestureEvent.
meEventType = pGestureEvent->meEventType;
2865 aSalGestureEvent.
meOrientation = pGestureEvent->meOrientation;
2872 auto const * aSalGestureEvent =
static_cast<SalGestureEvent const *
>(pEvent);
2877 SAL_WARN(
"vcl.layout",
"ImplWindowFrameProc(): unknown event (" <<
static_cast<int>(nEvent) <<
")" );
const MouseSettings & GetMouseSettings() const
const StyleSettings & GetStyleSettings() const
static bool GetLayoutRTL()
const LocaleDataWrapper & GetLocaleDataWrapper() const
Base class used mainly for the LibreOffice Desktop class.
virtual void OverrideSystemSettings(AllSettings &rSettings)
Sets user settings in settings object to override system settings.
static bool HandleKey(VclEventId nEvent, vcl::Window *pWin, KeyEvent *pKeyEvent)
Handle keypress event.
static void Yield()
Process the next event.
static void MergeSystemSettings(AllSettings &rSettings)
Set the settings object to the platform/desktop environment system settings.
static void ImplCallEventListenersApplicationDataChanged(void *pData)
Send event to all VCL application event listeners.
static const AllSettings & GetSettings()
Gets the application's settings.
static ImplSVEvent * PostUserEvent(const Link< void *, void > &rLink, void *pCaller=nullptr, bool bReferenceLink=false)
Post a user event to the default window.
static void Quit()
Quit the program.
static void SetSettings(const AllSettings &rSettings)
Sets the application's settings and notifies all windows of the change.
static void NotifyAllWindows(DataChangedEvent &rDCEvt)
Notify all windows that the application has changed data.
SAL_DLLPRIVATE FloatingWindow * ImplFindLastLevelFloat()
SAL_DLLPRIVATE bool ImplIsFloatPopupModeWindow(const vcl::Window *pWindow)
SAL_DLLPRIVATE FloatingWindow * ImplFloatHitTest(vcl::Window *pReference, const Point &rPos, bool &rbHitTestInsideRect)
void EndPopupMode(FloatWinPopupEndFlags nFlags=FloatWinPopupEndFlags::NONE)
SAL_DLLPRIVATE void ImplSetMouseDown()
FloatWinPopupFlags GetPopupModeFlags() const
SAL_DLLPRIVATE bool ImplIsMouseDown() const
SAL_DLLPRIVATE bool ImplIsInPrivatePopupMode() const
void SetKeyboardActivated(bool bKeyboard)
static bool StartExtHelp()
virtual void Start(bool bStartTimer=true) override
Schedules the task for execution.
bool IsAccelKey(const vcl::KeyCode &rKeyCode)
const vcl::Font & GetFont() const
sal_Unicode GetCharCode() const
const vcl::KeyCode & GetKeyCode() const
sal_uInt16 GetRepeat() const
const OUString & getNumDecimalSep() const
sal_uInt16 GetModifier() const
sal_uInt16 GetButtons() const
const Point & GetPosPixel() const
MouseMiddleButtonAction GetMiddleButtonAction() const
sal_uInt64 GetDoubleClickTime() const
static sal_uInt16 GetStartDragCode()
sal_Int32 GetDoubleClickWidth() const
sal_Int32 GetDoubleClickHeight() const
sal_Int32 GetStartDragWidth() const
sal_Int32 GetStartDragHeight() const
static sal_uInt16 GetContextMenuClicks()
static sal_uInt16 GetContextMenuCode()
vcl::Window * GetWindow() const
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
Size GetOutputSize() const
static SAL_DLLPRIVATE void ImplUpdateAllFontData(bool bNewFontLists)
SAL_DLLPRIVATE bool ImplIsAntiparallel() const
SAL_DLLPRIVATE tools::Rectangle ImplLogicToDevicePixel(const tools::Rectangle &rLogicRect) const
Convert a logical rectangle to a rectangle in physical device pixel units.
tools::Long GetOutputHeightPixel() const
SAL_DLLPRIVATE tools::Long ImplLogicWidthToDevicePixel(tools::Long nWidth) const
Convert a logical width to a width in units of device pixels.
SAL_DLLPRIVATE void ReMirror(Point &rPoint) const
virtual bool HasMirroredGraphics() const
A SalFrame is a system window (e.g. an X11 window).
SalFrameGeometry maGeometry
absolute, unmirrored values
virtual void GetClientSize(tools::Long &rWidth, tools::Long &rHeight)=0
virtual void SetPointer(PointerStyle ePointerStyle)=0
SalFrameGeometry GetGeometry() const
void setMin(tools::Long nMin)
void setMax(tools::Long nMax)
constexpr tools::Long getHeight() const
constexpr tools::Long getWidth() const
void setWidth(tools::Long nWidth)
constexpr tools::Long Width() const
A helper class that calls Application::ReleaseSolarMutex() in its constructor and restores the mutex ...
sal_Int32 GetCursorSize() const
const Link< SystemWindow &, void > & GetCloseHdl() const
virtual void Start(bool bStartTimer=true) override
Schedules the task for execution.
static UITestLogger & getInstance()
void logKeyInput(VclPtr< vcl::Window > const &xUIElement, const KeyEvent &rEvent)
reference_type * get() const
Get the body.
bool SetOutputSizePixel(const Size &rNewSize, bool bErase=true)
VclPtr< vcl::Window > mpNext
VclPtr< vcl::Window > mpFirstChild
css::uno::Reference< css::uno::XInterface > mxDNDListenerContainer
VclPtr< vcl::Window > mpFrameWindow
ImplFrameData * mpFrameData
ImplPaintFlags mnPaintFlags
VclPtr< vcl::Window > mpClientWindow
VclPtr< vcl::Window > mpLastFocusWindow
VclPtr< vcl::Window > mpFirstOverlap
bool IsPresentationMode() const
const Point & GetPos() const
SAL_DLLPRIVATE void ImplShow()
SAL_DLLPRIVATE void ImplHide()
const Size & GetSize() const
sal_uInt16 GetCode() const
sal_uInt16 GetModifier() const
sal_uInt16 GetFullCode() const
constexpr sal_Int32 height() const
constexpr sal_Int32 width() const
Point AbsoluteScreenToOutputPixel(const Point &rPos) const
Point OutputToScreenPixel(const Point &rPos) const
SAL_DLLPRIVATE Point ImplFrameToOutput(const Point &rPos)
SAL_DLLPRIVATE bool ImplIsWindowOrChild(const vcl::Window *pWindow, bool bSystemWindow=false) const
bool IsReallyVisible() const
vcl::Window * GetParent() const
ActivateModeFlags GetActivateMode() const
virtual void RequestHelp(const HelpEvent &rHEvt)
SAL_DLLPRIVATE vcl::Window * ImplFindWindow(const Point &rFramePos)
virtual Selection GetSurroundingTextSelection() const
tools::Long GetOutOffXPixel() const
bool IsInputEnabled() const
const InputContext & GetInputContext() const
Point LogicToPixel(const Point &rLogicPt) const
SAL_DLLPRIVATE void ImplCallDeactivateListeners(vcl::Window *)
void EndTracking(TrackingEventFlags nFlags=TrackingEventFlags::NONE)
WindowType GetType() const
bool SupportsDoubleBuffering() const
Can the widget derived from this Window do the double-buffering via RenderContext properly?
virtual void Tracking(const TrackingEvent &rTEvt)
virtual void Command(const CommandEvent &rCEvt)
vcl::Window * GetWindow(GetWindowType nType) const
virtual void MouseButtonDown(const MouseEvent &rMEvt)
vcl::Cursor * GetCursor() const
SAL_DLLPRIVATE bool CompatPreNotify(NotifyEvent &rNEvt)
SAL_DLLPRIVATE void ImplNotifyIconifiedState(bool bIconified)
const AllSettings & GetSettings() const
virtual void MouseButtonUp(const MouseEvent &rMEvt)
SAL_DLLPRIVATE void ImplNotifyKeyMouseCommandEventListeners(NotifyEvent &rNEvt)
virtual void KeyInput(const KeyEvent &rKEvt)
SAL_DLLPRIVATE bool ImplSetClipFlag(bool bSysObjOnlySmaller=false)
tools::Long GetOutOffYPixel() const
virtual OUString GetSurroundingText() const
SAL_DLLPRIVATE void ImplCallMouseMove(sal_uInt16 nMouseCode, bool bModChanged=false)
void ToTop(ToTopFlags nFlags=ToTopFlags::NONE)
SAL_DLLPRIVATE vcl::Window * ImplGetFirstOverlapWindow()
::OutputDevice const * GetOutDev() const
bool IsInModalMode() const
A window is in modal mode if one of its children or subchildren is a running modal window (a modal di...
SAL_DLLPRIVATE void ImplCallMove()
SAL_DLLPRIVATE ImplWinData * ImplGetWinData() const
virtual bool DeleteSurroundingText(const Selection &rSelection)
SAL_DLLPRIVATE WindowImpl * ImplGetWindowImpl() const
virtual void MouseMove(const MouseEvent &rMEvt)
SAL_DLLPRIVATE void CompatLoseFocus()
SalFrame * ImplGetFrame() const
bool IsRTLEnabled() const
virtual Size GetSizePixel() const
Size GetOutputSizePixel() const
virtual void Deactivate()
Point GetPointerPosPixel()
SAL_DLLPRIVATE ImplFrameData * ImplGetFrameData()
const tools::Rectangle * GetCursorRect() const
SAL_DLLPRIVATE bool ImplIsFloatingWindow() const
css::uno::Reference< css::datatransfer::dnd::XDragSource > GetDragSource()
bool IsWindowOrChild(const vcl::Window *pWindow, bool bSystemWindow=false) const
SAL_DLLPRIVATE void ImplCallResize()
tools::Long GetCursorExtTextInputWidth() const
virtual void KeyUp(const KeyEvent &rKEvt)
Point OutputToAbsoluteScreenPixel(const Point &rPos) const
SAL_DLLPRIVATE void ImplInvalidateOverlapFrameRegion(const vcl::Region &rRegion)
vcl::Window * ImplGetWindow() const
if this is a proxy return the client, otherwise itself
Point ScreenToOutputPixel(const Point &rPos) const
bool IsMenuFloatingWindow() const
SAL_DLLPRIVATE PointerStyle ImplGetMousePointer() const
SAL_DLLPRIVATE vcl::Window * ImplGetFrameWindow() const
#define DBG_ASSERT(sCon, aError)
#define DBG_TESTSOLARMUTEX()
void ImplDestroyHelpWindow(bool bUpdateHideTime)
constexpr sal_uInt16 KEY_RETURN
constexpr sal_uInt16 KEY_F2
constexpr sal_uInt16 KEY_CONTEXTMENU
constexpr sal_uInt16 KEY_MOD2
constexpr sal_uInt16 KEY_ESCAPE
constexpr sal_uInt16 KEY_MOD1
constexpr sal_uInt16 KEY_LEFT
constexpr sal_uInt16 KEY_DECIMAL
constexpr sal_uInt16 KEY_F6
constexpr sal_uInt16 KEY_F10
constexpr sal_uInt16 KEY_F1
constexpr sal_uInt16 KEY_MOD3
constexpr sal_uInt16 KEY_RIGHT
constexpr sal_uInt16 KEY_HELP
constexpr sal_uInt16 KEY_SHIFT
#define LINK(Instance, Class, Member)
#define SAL_WARN_IF(condition, area, stream)
#define SAL_WARN(area, stream)
#define SAL_INFO(area, stream)
std::unique_ptr< sal_Int32[]> pData
constexpr OUStringLiteral aData
constexpr std::enable_if_t< std::is_signed_v< T >, std::make_unsigned_t< T > > make_unsigned(T value)
void ImplDeletePrnQueueList()
@ DeleteSurroundingTextRequest
@ SurroundingTextSelectionChange
@ ExternalMouseButtonDown
VclPtr< vcl::Window > mpTrackWin
tools::Long mnBeforeLastMouseX
sal_uInt64 mnMouseDownTime
MouseEventModifiers mnMouseMode
VclPtr< VirtualDevice > mpBuffer
Buffer for the double-buffering.
tools::Long mnFirstMouseY
VclPtr< vcl::Window > mpMouseMoveWin
tools::Long mnBeforeLastMouseY
tools::Long mnLastMouseWinY
VclPtr< vcl::Window > mpMouseDownWin
tools::Long mnFirstMouseX
VclPtr< vcl::Window > mpFocusWin
sal_uInt16 mnFirstMouseCode
bool mbInternalDragGestureRecognizer
tools::Long mnLastMouseWinX
sal_uInt64 mnLastInputTime
VclPtr< PopupMenu > mpActivePopupMenu
ImplAccelManager * mpAccelMgr
ImplSVWinData * mpWinData
Link< void *, void > maLink
VclPtr< HelpTextWindow > mpHelpWin
VclPtr< vcl::Window > mpLastWheelWindow
VclPtr< FloatingWindow > mpFirstFloat
StartTrackingFlags mnTrackFlags
SalWheelMouseEvent maLastWheelEvent
VclPtr< vcl::Window > mpAutoScrollWin
VclPtr< vcl::Window > mpFocusWin
VclPtr< vcl::Window > mpCaptureWin
VclPtr< vcl::Window > mpTrackWin
VclPtr< vcl::Window > mpExtTextInputWin
std::vector< VclPtr< Dialog > > mpExecuteDialogs
Stack of dialogs that are Execute()'d - the last one is the top most one.
tools::Long mnCompositionCharRects
std::unique_ptr< tools::Rectangle[]> mpCompositionCharRects
std::optional< OUString > mpExtOldText
std::unique_ptr< ExtTextInputAttr[]> mpExtOldAttrAry
const ExtTextInputAttr * mpTextAttr
PanningOrientation meOrientation
GestureEventType meEventType
tools::Long mnBoundHeight
tools::Long mnCursorBoundHeight
tools::Long mnCursorBoundWidth
tools::Long mnCursorBoundX
tools::Long mnCursorBoundY
ImplSVData * ImplGetSVData()
ImplSVHelpData & ImplGetSVHelpData()
static void ImplHandleSurroundingTextRequest(vcl::Window *pWindow, OUString &rText, Selection &rSelRange)
IMPL_LINK_NOARG(vcl::Window, ImplAsyncFocusHdl, void *, void)
static void ImplHandleSalSettings(SalEvent nEvent)
static bool ImplHandleGestureEvent(vcl::Window *pWindow, const SalGestureEvent &rEvent)
static void DelayedCloseEventLink(void *pCEvent, void *)
static void ImplHandleSurroundingTextSelectionChange(vcl::Window *pWindow, sal_uLong nStart, sal_uLong nEnd)
MouseEventModifiers ImplGetMouseButtonMode(SalMouseEvent const *pEvent)
bool ImplHandleMouseEvent(const VclPtr< vcl::Window > &xWindow, MouseNotifyEvent nSVEvent, bool bMouseLeave, tools::Long nX, tools::Long nY, sal_uInt64 nMsgTime, sal_uInt16 nCode, MouseEventModifiers nMode)
static bool ImplHandleMenuEvent(vcl::Window const *pWindow, SalMenuEvent *pEvent, SalEvent nEvent)
static bool ImplCallCommand(const VclPtr< vcl::Window > &pChild, CommandEventId nEvt, void const *pData=nullptr, bool bMouse=false, Point const *pPos=nullptr)
static void ImplSetMousePointer(vcl::Window const *pChild)
static void ImplHandleLoseFocus(vcl::Window *pWindow)
static bool ImplHandleSwipe(vcl::Window *pWindow, const SalSwipeEvent &rEvt)
static bool ImplHandleSalMouseMove(vcl::Window *pWindow, SalMouseEvent const *pEvent)
static void ImplHandleMove(vcl::Window *pWindow)
static void ContextMenuEventLink(void *pCEvent, void *)
static void ImplHandleGetFocus(vcl::Window *pWindow)
static bool ImplHandleSalMouseButtonDown(vcl::Window *pWindow, SalMouseEvent const *pEvent)
static void ImplHandleMouseHelpRequest(vcl::Window *pChild, const Point &rMousePos)
static void ImplHandleSalKeyMod(vcl::Window *pWindow, SalKeyModEvent const *pEvent)
static bool ImplHandleInputContextChange(vcl::Window *pWindow)
static bool shouldReusePreviousMouseWindow(const SalWheelMouseEvent &rPrevEvt, const SalWheelMouseEvent &rEvt)
static bool ImplHandleSalMouseLeave(vcl::Window *pWindow, SalMouseEvent const *pEvent)
static void ImplHandleExtTextInputPos(vcl::Window *pWindow, tools::Rectangle &rRect, tools::Long &rInputWidth, bool *pVertical)
#define IMPL_MIN_NEEDSYSWIN
static void ImplHandleInputLanguageChange(vcl::Window *pWindow)
bool ImplLOKHandleMouseEvent(const VclPtr< vcl::Window > &xWindow, MouseNotifyEvent nEvent, bool, tools::Long nX, tools::Long nY, sal_uInt64, sal_uInt16 nCode, MouseEventModifiers nMode, sal_uInt16 nClicks)
static bool ImplHandleKey(vcl::Window *pWindow, MouseNotifyEvent nSVEvent, sal_uInt16 nKeyCode, sal_uInt16 nCharCode, sal_uInt16 nRepeat, bool bForward)
static void ImplHandleSalQueryCharPosition(vcl::Window *pWindow, SalQueryCharPositionEvent *pEvt)
static bool ImplCallWheelCommand(const VclPtr< vcl::Window > &pWindow, const Point &rPos, const CommandWheelData *pWheelData)
static bool ImplHandleEndExtTextInput()
static void KillOwnPopups(vcl::Window const *pWindow)
static bool ImplHandleShowDialog(vcl::Window *pWindow, ShowDialogId nDialogId)
static bool acceptableWheelScrollTarget(const vcl::Window *pMouseWindow)
MouseEventModifiers ImplGetMouseMoveMode(SalMouseEvent const *pEvent)
static void ImplActivateFloatingWindows(vcl::Window const *pWindow, bool bActive)
static vcl::Window * ImplGetKeyInputWindow(vcl::Window *pWindow)
static bool ImplHandleLongPress(vcl::Window *pWindow, const SalLongPressEvent &rEvt)
bool ImplCallPreNotify(NotifyEvent &rEvt)
static void ImplHandleStartReconversion(vcl::Window *pWindow)
static void ImplHandleSalDeleteSurroundingTextRequest(vcl::Window *pWindow, SalSurroundingTextSelectionChangeEvent *pEvt)
static void ImplHandleSalSurroundingTextRequest(vcl::Window *pWindow, SalSurroundingTextRequestEvent *pEvt)
static bool ImplHandleExtTextInput(vcl::Window *pWindow, const OUString &rText, const ExtTextInputAttr *pTextAttr, sal_Int32 nCursorPos, sal_uInt16 nCursorFlags)
static bool ImplHandleSalMouseButtonUp(vcl::Window *pWindow, SalMouseEvent const *pEvent)
static bool ImplHandleMouseFloatMode(vcl::Window *pChild, const Point &rMousePos, sal_uInt16 nCode, MouseNotifyEvent nSVEvent, bool bMouseLeave)
static void ImplHandlePaint(vcl::Window *pWindow, const tools::Rectangle &rBoundRect, bool bImmediateUpdate)
static bool ImplHandleWheelEvent(vcl::Window *pWindow, const SalWheelMouseEvent &rEvt)
static void ImplHandleClose(const vcl::Window *pWindow)
bool ImplWindowFrameProc(vcl::Window *_pWindow, SalEvent nEvent, const void *pEvent)
void ImplHandleResize(vcl::Window *pWindow, tools::Long nNewWidth, tools::Long nNewHeight)
static void ImplHandleUserEvent(ImplSVEvent *pSVEvent)
static void ImplHandleMoveResize(vcl::Window *pWindow, tools::Long nNewWidth, tools::Long nNewHeight)
static void ImplHandleSalExtTextInputPos(vcl::Window *pWindow, SalExtTextInputPosEvent *pEvt)
WinBits const WB_MOVEABLE
WinBits const WB_OWNERDRAWDECORATION
WinBits const WB_SIZEABLE