22#include <rtl/strbuf.hxx>
62#include <com/sun/star/accessibility/AccessibleRelation.hpp>
63#include <com/sun/star/accessibility/XAccessible.hpp>
64#include <com/sun/star/accessibility/XAccessibleEditableText.hpp>
65#include <com/sun/star/awt/XVclWindowPeer.hpp>
66#include <com/sun/star/datatransfer/clipboard/XClipboard.hpp>
67#include <com/sun/star/datatransfer/dnd/XDragGestureRecognizer.hpp>
68#include <com/sun/star/datatransfer/dnd/XDropTarget.hpp>
69#include <com/sun/star/rendering/CanvasFactory.hpp>
70#include <com/sun/star/rendering/XSpriteCanvas.hpp>
74#include <osl/diagnose.h>
77#include <boost/property_tree/ptree.hpp>
108 ImplInit( pParent, nStyle,
nullptr );
111#if OSL_DEBUG_LEVEL > 0
114 OString lcl_createWindowInfo(
const vcl::Window* pWindow)
128 return OString::Concat(
" ") +
129 typeid( *pWindow ).name() +
133 RTL_TEXTENCODING_UTF8
146 "vcl::Window child should have its parent disposed first" );
172 if(
p != rList.end() )
177 Reference < XComponent > xDnDComponent(
mpWindowImpl->mxDNDListenerContainer, UNO_QUERY );
179 if( xDnDComponent.is() )
180 xDnDComponent->dispose();
187 if(
mpWindowImpl->mpFrameData->mxDropTargetListener.is() )
189 Reference< XDragGestureRecognizer > xDragGestureRecognizer(
mpWindowImpl->mpFrameData->mxDragSource, UNO_QUERY);
190 if( xDragGestureRecognizer.is() )
192 xDragGestureRecognizer->removeDragGestureListener(
193 Reference< XDragGestureListener > (
mpWindowImpl->mpFrameData->mxDropTargetListener, UNO_QUERY));
196 mpWindowImpl->mpFrameData->mxDropTarget->removeDropTargetListener(
mpWindowImpl->mpFrameData->mxDropTargetListener );
197 mpWindowImpl->mpFrameData->mxDropTargetListener.clear();
201 Reference< XComponent > xComponent(
mpWindowImpl->mpFrameData->mxDropTarget, UNO_QUERY );
205 if( xComponent.is() )
206 xComponent->dispose();
223 Reference< XComponent> xC(
mpWindowImpl->mxAccessible, UNO_QUERY );
234 "Window::~Window(): Window is in TrackingMode");
236 "Window::~Window(): Window has the mouse captured");
244#if OSL_DEBUG_LEVEL > 0
247 OStringBuffer aErrorStr;
253 OStringBuffer aTempStr =
"Window (" +
254 lcl_createWindowInfo(
this) +
255 ") with live children destroyed: ";
259 aTempStr.append(lcl_createWindowInfo(pTempWin));
262 OSL_FAIL( aTempStr.getStr() );
274 aErrorStr.append(lcl_createWindowInfo(pTempWin));
282 lcl_createWindowInfo(
this) +
283 ") with live SystemWindows destroyed: " +
285 OSL_FAIL(aTempStr.getStr());
297 aErrorStr.append(lcl_createWindowInfo(pTempWin));
299 pTempWin = pTempWin->
mpWindowImpl->mpFrameData->mpNextFrame;
303 OString aTempStr =
"Window (" +
304 lcl_createWindowInfo(
this) +
305 ") with live SystemWindows destroyed: " +
307 OSL_FAIL( aTempStr.getStr() );
313 OStringBuffer aTempStr =
"Window (" +
314 lcl_createWindowInfo(
this) +
315 ") with live SystemWindows destroyed: ";
319 aTempStr.append(lcl_createWindowInfo(pTempWin));
322 OSL_FAIL( aTempStr.getStr() );
339 OString aTempStr =
"Window (" +
340 lcl_createWindowInfo(
this) +
341 ") still in TaskPanelList!";
342 OSL_FAIL( aTempStr.getStr() );
367 SAL_WARN(
"vcl",
"Window (" <<
GetText() <<
") not found in TaskPanelList");
376 for (
auto const& mnemonicLabel : aMnemonicLabels)
393 bool bHasFocusedChild =
false;
397 bHasFocusedChild =
true;
398#if OSL_DEBUG_LEVEL > 0
399 OUString aTempStr =
"Window (" +
GetText() +
400 ") with focused child window destroyed ! THIS WILL LEAD TO CRASHES AND MUST BE FIXED !";
414 pOverlapWindow->
mpWindowImpl->mpLastFocusWindow =
nullptr;
439 pOverlapWindow->
mpWindowImpl->mpLastFocusWindow =
nullptr;
444 if ( pOverlapWindow !=
nullptr &&
445 pOverlapWindow->
mpWindowImpl->mpLastFocusWindow ==
this )
446 pOverlapWindow->
mpWindowImpl->mpLastFocusWindow =
nullptr;
461 if (
mpWindowImpl->mpFrameData->mpMouseMoveWin ==
this )
463 if (
mpWindowImpl->mpFrameData->mpMouseDownWin ==
this )
515 sal_Int32 nWindows = 0;
517 while ( pSysWin && pSysWin->
mpWindowImpl->mpFrameData->mpNextFrame.get() !=
this )
519 pSysWin = pSysWin->
mpWindowImpl->mpFrameData->mpNextFrame;
525 assert (
mpWindowImpl->mpFrameData->mpNextFrame.get() != pSysWin);
529 SAL_WARN(
"vcl.window",
"Window " <<
this <<
" marked as frame window, "
530 "is missing from list of " << nWindows <<
" frames");
537 assert (
mpWindowImpl->mpFrameData->mnFocusId ==
nullptr);
538 assert (
mpWindowImpl->mpFrameData->mnMouseMoveId ==
nullptr);
735 static bool bDoubleBuffer = getenv(
"VCL_DOUBLEBUFFERING_FORCE_ENABLE");
751 mnCompositionCharRects(0),
753 mnIsTopWindow(sal_uInt16(~0)),
755 mbEnableNativeWidget(false)
765 : maPaintIdle(
"vcl::Window maPaintIdle" ),
766 maResizeIdle(
"vcl::Window maResizeIdle" )
843 while ( pReleaseOutDev )
850 if ( pReleaseOutDev )
944 "Window::Window(): pParent == NULL" );
1052 if ( pSystemParentData )
1060 "Could not create system window!",
1061 Reference< XInterface >() );
1194 if ( nSymHeight > nTextWidth )
1195 nTextWidth = nSymHeight;
1196 else if ( nSymHeight+5 > nTextWidth )
1197 nTextWidth = nSymHeight+5;
1210 tools::Rectangle aCtrlRegion(
Point(),
Size( nTextWidth < 10 ? 10 : nTextWidth, nTextHeight < 10 ? 10 : nTextHeight ) );
1215 aBoundingRgn, aContentRgn ) )
1219 if( aContentRgn.
GetHeight() - nTextHeight > (nTextHeight+4)/4 )
1230 static const char* pNoNWF = getenv(
"SAL_NO_NWF" );
1233 mpWindowImpl->mpWinData->mbEnableNativeWidget = !(pNoNWF && *pNoNWF);
1245 if (bWindowInvalidate)
1269 if (
this == &rSrcDev )
1270 pSrcDevChecked =
nullptr;
1272 pSrcDevChecked = &rSrcDev;
1274 pSrcDevChecked =
nullptr;
1276 pSrcDevChecked = &rSrcDev;
1278 return pSrcDevChecked;
1291 if (
mpWindowImpl->mpFrameWindow->GetOutDev()->mpGraphics )
1293 mpWindowImpl->mpFrameWindow->GetOutDev()->mbInitClipRegion =
true;
1303 mpWindowImpl->mpFrameWindow->GetOutDev()->mpGraphics->ResetClipRegion();
1304 return mpWindowImpl->mpFrameWindow->GetOutDev()->mpGraphics;
1315 bool bBecameReallyVisible = !
mpWindowImpl->mbReallyVisible;
1416 bool bSysChild =
false;
1461 bool bNewPos =
false;
1462 bool bNewSize =
false;
1463 bool bCopyBits =
false;
1468 std::unique_ptr<vcl::Region> pOverlapRegion;
1469 std::unique_ptr<vcl::Region> pOldRegion;
1474 Size( nOldOutWidth, nOldOutHeight ) );
1475 pOldRegion.reset(
new vcl::Region( aOldWinRect ) );
1485 bool bnXRecycled =
false;
1497 if ( nWidth !=
GetOutDev()->mnOutWidth )
1508 if ( nHeight !=
GetOutDev()->mnOutHeight )
1553 if ( bCopyBits && !pOverlapRegion )
1557 *pOverlapRegion,
false,
true );
1570 if ( bCopyBits && !pOverlapRegion )
1574 *pOverlapRegion,
false,
true );
1582 if ( !(bNewPos || bNewSize) )
1585 bool bUpdateSysObjPos =
false;
1596 mpWindowImpl->mpClientWindow->mpWindowImpl->mnTopBorder,
1612 mpWindowImpl->mpClientWindow->mpWindowImpl->mbCallMove =
true;
1638 bool bUpdateSysObjClip =
false;
1641 if ( bNewPos || bNewSize )
1648 if ( bNewPos || (
GetOutDev()->mnOutWidth > nOldOutWidth) || (
GetOutDev()->mnOutHeight > nOldOutHeight) )
1652 bool bInvalidate =
false;
1653 bool bParentPaint =
true;
1655 bParentPaint =
mpWindowImpl->mpParent->IsPaintEnabled();
1662 if ( !pOverlapRegion->IsEmpty() )
1664 pOverlapRegion->Move(
GetOutDev()->mnOutOffX - nOldOutOffX,
GetOutDev()->mnOutOffY - nOldOutOffY );
1665 aRegion.
Exclude( *pOverlapRegion );
1671 Size( nOldOutWidth, nOldOutHeight ) ),
1679 const bool bSelectClipRegion = pOutDev->
SelectClipRegion( aRegion, pGraphics );
1680 if ( bSelectClipRegion )
1683 nOldOutOffX, nOldOutOffY,
1684 nOldOutWidth, nOldOutHeight,
1694 if ( !pOverlapRegion->IsEmpty() )
1709 aRegion.
Exclude( *pOldRegion );
1720 (
GetOutDev()->mnOutWidth < nOldOutWidth) || (
GetOutDev()->mnOutHeight < nOldOutHeight) )
1732 if ( bUpdateSysObjClip )
1734 if ( bUpdateSysObjPos )
1749 if ( rInputContext == pFocusWin->
mpWindowImpl->mpFrameData->maOldInputContext )
1752 pFocusWin->
mpWindowImpl->mpFrameData->maOldInputContext = rInputContext;
1758 aNewContext.
mpFont =
nullptr;
1759 if (!rFontName.isEmpty())
1774 rFont, aSize,
static_cast<float>(aSize.
Height()) );
1775 if ( pFontInstance )
1776 aNewContext.
mpFont = pFontInstance;
1876 if ( rStr.isEmpty() )
1914 if( !aStrHelpId.isEmpty() )
1915 pHelp->
Start( aStrHelpId,
this );
2001 !
mpWindowImpl->mpBorderWindow->mpWindowImpl->mbFrame &&
2030 mpWindowImpl->mpBorderWindow->SetBorderStyle( nBorderStyle );
2090 std::unique_ptr<ExtTextInputAttr[]> pAttr(
new ExtTextInputAttr[rText.getLength()]);
2091 for (
int i = 0;
i < rText.getLength(); ++
i) {
2153 if ( pRect && (nCompositionLength > 0) )
2163 rAllChildren.push_back(
this );
2177 rRenderContext.
SetFont(aFont);
2194 bool bRealVisibilityChanged =
false;
2205 bool bOldUpdate =
mpWindowImpl->mpBorderWindow->mpWindowImpl->mbNoParentUpdate;
2207 mpWindowImpl->mpBorderWindow->mpWindowImpl->mbNoParentUpdate =
true;
2209 mpWindowImpl->mpBorderWindow->mpWindowImpl->mbNoParentUpdate = bOldUpdate;
2229 bRealVisibilityChanged =
mpWindowImpl->mbReallyVisible;
2257 const int workaround_border = 5;
2260 aBounds.
AdjustTop( -workaround_border );
2263 aInvRegion = aBounds;
2318 bRealVisibilityChanged = !
mpWindowImpl->mbReallyVisible;
2345 pApp->InitFinished();
2372 mpWindowImpl->mpFrame->GetClientSize( nOutWidth, nOutHeight );
2395 if ( !bRealVisibilityChanged )
2406 SAL_WARN(
"vcl.layout",
"WTF no windowimpl");
2411 if(
mpWindowImpl->mpFrameData->maResizeIdle.IsActive() )
2415 mpWindowImpl->mpFrameData->maResizeIdle.Invoke(
nullptr );
2425 sal_Int32& rRightBorder, sal_Int32& rBottomBorder )
const
2456 mpWindowImpl->mpBorderWindow->Enable( bEnable,
false );
2484 pChild->
Enable( bEnable, bChild );
2500 mpWindowImpl->mpBorderWindow->EnableInput( bEnable,
false );
2556 if( pExcludeWindow )
2587 pFrameWin = pFrameWin->
mpWindowImpl->mpFrameData->mpNextFrame;
2594 ::std::vector< VclPtr<vcl::Window> >& rList =
mpWindowImpl->mpFrameData->maOwnerDrawList;
2595 for (
auto const& elem : rList)
2603 elem->EnableInput( bEnable );
2612 mpWindowImpl->mpBorderWindow->AlwaysEnableInput( bAlways,
false );
2639 mpWindowImpl->mpBorderWindow->SetActivateMode( nMode );
2693 sal_uInt16 nSysFlags=0;
2730 pWinParent->
mpWindowImpl->mpFrame->GetUnmirroredGeometry();
2733 myWidth = aSysGeometry.
width();
2739 - myWidth - 1 - aSysGeometry.
x();
2762 if( nWidth < aMinSize.
Width() )
2763 nWidth = aMinSize.
Width();
2764 if( nHeight < aMinSize.
Height() )
2765 nHeight = aMinSize.
Height();
2767 if( nWidth > aMaxSize.
Width() )
2768 nWidth = aMaxSize.
Width();
2769 if( nHeight > aMaxSize.
Height() )
2770 nHeight = aMaxSize.
Height();
2774 pWindow->
mpWindowImpl->mpFrame->SetPosSize( nX, nY, nWidth, nHeight, nSysFlags );
2778 pWindow->
mpWindowImpl->mpFrame->GetClientSize(nWidth, nHeight);
2802 mpWindowImpl->mpFrameWindow->mpWindowImpl->mpFrame->GetWorkArea( rRect );
2828 offx -=
mpWindowImpl->mpParent->GetOutDev()->mnOutOffX;
2833 offx +=
mpWindowImpl->mpParent->GetOutDev()->mnOutOffX;
2870 p.AdjustX( -(g.
x()) );
2871 p.AdjustY( -(g.
y()) );
2958 ImplScroll( aRect, nHorzScroll, nVertScroll, nFlags );
3048 if ( pWindow && pWindow !=
this )
3093 bool bStrHelpId = !aStrHelpId.isEmpty();
3095 if ( !
mpWindowImpl->maHelpText.getLength() && bStrHelpId )
3107 else if(
mpWindowImpl->mbHelpTextDynamic && bStrHelpId )
3109 static const char* pEnv = getenv(
"HELP_DEBUG" );
3112 OUString aTxt =
mpWindowImpl->maHelpText +
"\n------------------\n" + aStrHelpId;
3120 return *
mpWindowImpl->mpAccessibleInfos->pAccessibleDescription;
3134 SAL_WARN_IF( !pWrapper,
"vcl.window",
"SetComponentInterface: No Wrapper!" );
3159 SAL_WARN_IF( !pWrapper,
"vcl.window",
"SetComponentInterface: No Wrapper!" );
3173 return s_aLOKWindowsMap;
3194 GetLOKWindowsMap().emplace(
mpWindowImpl->mnLOKWindowId,
this);
3202 const auto it = GetLOKWindowsMap().find(nWindowId);
3203 if (it != GetLOKWindowsMap().
end())
3211 return GetLOKWindowsMap().empty();
3231 for (
auto it = GetLOKWindowsMap().
begin(); it != GetLOKWindowsMap().end();)
3233 WindowImpl* pWindowImpl = it->second->ImplGetWindowImpl();
3238 it = GetLOKWindowsMap().erase(it);
3269std::string_view windowTypeName(
WindowType nWindowType)
3271 switch (nWindowType)
3362 rJsonWriter.
put(
"type", windowTypeName(
GetType()));
3366 rJsonWriter.
put(
"visible",
false);
3370 auto childrenNode = rJsonWriter.
startArray(
"children");
3375 pChild->DumpAsPropertyTree(rJsonWriter);
3376 sal_Int32 nLeft = pChild->get_grid_left_attach();
3377 sal_Int32 nTop = pChild->get_grid_top_attach();
3378 if (nLeft != -1 && nTop != -1)
3380 rJsonWriter.
put(
"left", nLeft);
3381 rJsonWriter.
put(
"top", nTop);
3384 sal_Int32 nWidth = pChild->get_grid_width();
3386 rJsonWriter.
put(
"width", nWidth);
3388 pChild = pChild->mpWindowImpl->mpNext;
3394 rJsonWriter.
put(
"labelFor", pAccLabelFor->
get_id());
3398 rJsonWriter.
put(
"labelledBy", pAccLabelledBy->
get_id());
3400 mpWindowImpl->maDumpAsPropertyTreeHdl.Call(rJsonWriter);
3450 return static_cast<XClipboard*
>(
nullptr);
3466 sal_uInt16 highlight,
3478 Color aSelectionFillCol( aSelectionBorderCol );
3486 if( !bDark && !bBright &&
abs( c2-c1 ) < 75 )
3491 if( b > 50 ) b -= 40;
3494 aSelectionBorderCol = aSelectionFillCol;
3506 sal_uInt16 nPercent = 0;
3516 if( bChecked && highlight == 2 )
3529 else if( bChecked || highlight == 1 )
3550 if( highlight == 3 )
3599 return (
mpWindowImpl->mpFrameWindow->mpWindowImpl->mpFrameData->mnModalMode != 0);
3606 while( pFrameWindow )
3608 pFrameWindow->
mpWindowImpl->mpFrameData->mnModalMode++;
3609 while( pParent && pParent->
mpWindowImpl->mpFrameWindow == pFrameWindow )
3613 pFrameWindow = pParent ? pParent->
mpWindowImpl->mpFrameWindow.get() :
nullptr;
3620 while( pFrameWindow )
3622 pFrameWindow->
mpWindowImpl->mpFrameData->mnModalMode--;
3623 while( pParent && pParent->
mpWindowImpl->mpFrameWindow == pFrameWindow )
3627 pFrameWindow = pParent ? pParent->
mpWindowImpl->mpFrameWindow.get() :
nullptr;
3652 bool bDecorated =
false;
3671 pFrameWin = pFrameWin->
mpWindowImpl->mpFrameData->mpNextFrame;
3683 static const char* pNoNWF = getenv(
"SAL_NO_NWF" );
3684 if( pNoNWF && *pNoNWF )
3698 mpWindowImpl->mpBorderWindow->ImplGetWinData()->mbEnableNativeWidget = bEnable;
3720 Sequence< Any > aArg{
3721 Any(
reinterpret_cast<sal_Int64
>(
this)),
3724 Any(Reference< css::awt::XWindow >(
3735 css::rendering::CanvasFactory::create( xContext ) );
3736 Reference<XMultiComponentFactory> xCanvasFactory(xStaticCanvasFactory.
get());
3737 Reference< css::rendering::XCanvas > xCanvas;
3739 if(xCanvasFactory.is())
3750 xCanvas.set( xCanvasFactory->createInstanceWithArgumentsAndContext(
3752 OUString(
"com.sun.star.rendering.SpriteCanvas.MultiScreen" ) :
3753 OUString(
"com.sun.star.rendering.Canvas.MultiScreen" ),
3762 xCanvas.set( xCanvasFactory->createInstanceWithArgumentsAndContext(
3764 OUString(
"com.sun.star.rendering.SpriteCanvas" ) :
3765 OUString(
"com.sun.star.rendering.Canvas" ),
3791 uno::Reference<accessibility::XAccessibleEditableText> lcl_GetxText(
vcl::Window *pFocusWin)
3793 uno::Reference<accessibility::XAccessibleEditableText> xText;
3796 uno::Reference< accessibility::XAccessible > xAccessible( pFocusWin->
GetAccessible() );
3797 if (xAccessible.is())
3800 catch(
const uno::Exception&)
3813 uno::Reference<accessibility::XAccessibleEditableText> xText = lcl_GetxText(
this);
3816 sal_Int32 nPosition = xText->getCaretPosition();
3818 sal_Int32 nDeletePos = rSelection.
Min();
3819 sal_Int32 nDeleteEnd = rSelection.
Max();
3824 if (nDeleteEnd > xText->getCharacterCount())
3825 nDeleteEnd = xText->getCharacterCount();
3827 xText->deleteText(nDeletePos, nDeleteEnd);
3829 if (nDeletePos < nPosition)
3831 if (nDeleteEnd <= nPosition)
3832 nPosition = nPosition - (nDeleteEnd - nDeletePos);
3834 nPosition = nDeletePos;
3836 if (xText->getCharacterCount() >= nPosition)
3837 xText->setCaretPosition( nPosition );
3937 static OUString empty;
3948 mxOwnerWindow(&rOwnerWindow)
uno::Reference< accessibility::XAccessibleEditableText > FindFocusedEditableText(uno::Reference< accessibility::XAccessibleContext > const &xContext)
const StyleSettings & GetStyleSettings() const
static bool GetLayoutRTL()
static unsigned int GetScreenCount()
Get the number of screens available for the display.
static void Abort(const OUString &rErrorText)
Ends the program prematurely with an error message.
static void RemoveUserEvent(ImplSVEvent *nUserEvent)
Remove user event based on event ID.
static void RemoveMouseAndKeyEvents(vcl::Window *pWin)
Remove mouse and keypress events from a window... any also zoom and scroll events if the platform sup...
static Help * GetHelp()
Gets the application's help.
static bool IsHeadlessModeEnabled()
Determines if headless mode is enabled.
sal_uInt8 GetLuminance() const
void RGBtoHSB(sal_uInt16 &nHue, sal_uInt16 &nSaturation, sal_uInt16 &nBrightness) const
static Color HSBtoRGB(sal_uInt16 nHue, sal_uInt16 nSaturation, sal_uInt16 nBrightness)
void RemoveWindow(const vcl::Window *pWin)
ImplDockingWindowWrapper * GetDockingWindowWrapper(const vcl::Window *pWin)
HelpEventMode GetMode() const
const Point & GetMousePosPixel() const
virtual bool Start(const OUString &rHelpId, weld::Widget *pWidget=nullptr)
virtual OUString GetHelpText(const OUString &aHelpURL, const weld::Widget *pWidget)
static void ShowQuickHelp(vcl::Window *pParent, const tools::Rectangle &rScreenRect, const OUString &rHelpText, QuickHelpFlags nStyle=QuickHelpFlags::NONE)
static void ShowBalloon(vcl::Window *pParent, const Point &rScreenPos, const tools::Rectangle &, const OUString &rHelpText)
VclPtr< vcl::Window > mpMenuBarWindow
ImplDockingWindowWrapper.
void Tracking(const TrackingEvent &rTEvt)
InputContextFlags GetOptions() const
const vcl::Font & GetFont() const
const vcl::KeyCode & GetKeyCode() const
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
tools::Rectangle GetOutputRectPixel() const
const vcl::Font & GetFont() const
virtual void ReleaseGraphics(bool bRelease=true)=0
Release the graphics device, and remove it from the graphics device list.
SAL_DLLPRIVATE bool ImplIsAntiparallel() const
tools::Long mnOutOffY
Output offset for device output in pixel (pseudo window offset within window system's frames)
css::awt::DeviceInfo GetCommonDeviceInfo(Size const &aDevSize) const
void SetFont(const vcl::Font &rNewFont)
SAL_DLLPRIVATE tools::Rectangle ImplLogicToDevicePixel(const tools::Rectangle &rLogicRect) const
Convert a logical rectangle to a rectangle in physical device pixel units.
std::shared_ptr< ImplFontCache > mxFontCache
virtual void dispose() override
virtual bool AcquireGraphics() const =0
Acquire a graphics device that the output device uses to draw on.
tools::Long mnOutOffX
Output offset for device output in pixel (pseudo window offset within window system's frames)
SAL_WARN_UNUSED_RESULT Point PixelToLogic(const Point &rDevicePt) const
std::unique_ptr< ImplOutDevData > mpOutDevData
std::shared_ptr< vcl::font::PhysicalFontCollection > mxFontCollection
void DrawRect(const tools::Rectangle &rRect)
virtual void ImplReleaseFonts()
SalGraphics * mpGraphics
Graphics context to draw on.
VclPtr< OutputDevice > mpNextGraphics
Next output device in list.
SAL_DLLPRIVATE void ImplDisposeCanvas()
css::uno::Any GetSystemGfxDataAny() const
SAL_WARN_UNUSED_RESULT Point LogicToPixel(const Point &rLogicPt) const
AntialiasingFlags mnAntialiasing
SAL_DLLPRIVATE void ReMirror(Point &rPoint) const
virtual bool HasMirroredGraphics() const
const Color & GetLineColor() const
sal_Int32 mnDPIScalePercentage
For HiDPI displays, we want to draw elements for a percentage larger.
static vcl::Font GetDefaultFont(DefaultFontType nType, LanguageType eLang, GetDefaultFontFlags nFlags, const OutputDevice *pOutDev=nullptr)
std::optional< AllSettings > moSettings
OutDevType GetOutDevType() const
bool SelectClipRegion(const vcl::Region &, SalGraphics *pGraphics=nullptr)
void DrawTransparent(const tools::PolyPolygon &rPolyPoly, sal_uInt16 nTransparencePercent)
VclPtr< OutputDevice > mpPrevGraphics
Previous output device in list.
virtual void CopyDeviceArea(SalTwoRect &aPosAry, bool bWindowInvalidate)
const Color & GetFillColor() const
constexpr tools::Long Y() const
void setX(tools::Long nX)
tools::Long AdjustY(tools::Long nVertMove)
tools::Long AdjustX(tools::Long nHorzMove)
constexpr tools::Long X() const
constexpr sal_uInt32 leftDecoration() const
constexpr sal_uInt32 bottomDecoration() const
constexpr sal_uInt32 topDecoration() const
constexpr sal_uInt32 rightDecoration() const
A SalFrame is a system window (e.g. an X11 window).
virtual void SetInputContext(SalInputContext *pContext)=0
virtual void SetExtendedFrameStyle(SalExtStyle nExtStyle)=0
void SetModalHierarchyHdl(const Link< bool, void > &rLink)
void SetCallback(vcl::Window *pWindow, SALFRAMEPROC pProc)
virtual void EndExtTextInput(EndExtTextInputFlags nFlags)=0
virtual void SetXORMode(bool bSet, bool bInvertOnly)=0
void setAntiAlias(bool bNew)
void CopyBits(const SalTwoRect &rPosAry, const OutputDevice &rOutDev)
void CopyArea(tools::Long nDestX, tools::Long nDestY, tools::Long nSrcX, tools::Long nSrcY, tools::Long nSrcWidth, tools::Long nSrcHeight, const OutputDevice &rOutDev)
virtual void DestroyFrame(SalFrame *pFrame)=0
virtual SalFrame * CreateFrame(SalFrame *pParent, SalFrameStyleFlags nStyle)=0
virtual SalFrame * CreateChildFrame(SystemParentData *pParent, SalFrameStyleFlags nStyle)=0
constexpr tools::Long Height() const
tools::Long AdjustHeight(tools::Long n)
void setWidth(tools::Long nWidth)
tools::Long AdjustWidth(tools::Long n)
void setHeight(tools::Long nHeight)
constexpr tools::Long Width() const
sal_Int32 GetTitleHeight() const
const Color & GetWindowColor() const
const Color & GetWindowTextColor() const
static sal_Int32 GetBorderSize()
const Color & GetHighlightColor() const
const Color & GetFaceColor() const
const vcl::Font & GetAppFont() const
const vcl::Font & GetTitleFont() const
const Color & GetButtonTextColor() const
const Size & GetMinOutputSizePixel() const
SAL_DLLPRIVATE bool ImplIsInTaskPaneList(vcl::Window *pWin)
const Size & GetMaxOutputSizePixel() const
TaskPaneList * GetTaskPaneList()
void RemoveWindow(vcl::Window *pWindow)
void SetPriority(TaskPriority ePriority)
void SetInvokeHandler(const Link< Timer *, void > &rLink)
virtual css::uno::Reference< css::awt::XVclWindowPeer > GetWindowInterface(vcl::Window *pWindow)=0
virtual void SetWindowInterface(vcl::Window *pWindow, const css::uno::Reference< css::awt::XVclWindowPeer > &xIFace)=0
virtual void WindowDestroyed(vcl::Window *pWindow)=0
static UnoWrapperBase * GetUnoWrapper(bool bCreateIfNotExists=true)
Get the application's UNO wrapper object.
A construction helper for a temporary VclPtr.
reference_type * get() const
Get the body.
static VclPtr< reference_type > Create(Arg &&... arg)
A construction helper for VclPtr.
const Color & GetColor() const
bool mbCompoundControlHasFocus
sal_Int32 mnGridTopAttach
ControlPart mnNativeBackground
VclPtr< vcl::Window > mpRealParent
bool mbCreatedWithToolkit
VclPtr< vcl::Window > mpNext
std::unique_ptr< vcl::Region > mpChildClipRegion
ActivateModeFlags mnActivateMode
VclPtr< vcl::Window > mpBorderWindow
VclPtr< vcl::Window > mpFirstChild
VclPtr< vcl::Window > mpParent
sal_Int32 mnGridLeftAttach
bool mbMenuFloatingWindow
VclPtr< vcl::Window > mpOverlapWindow
sal_Int32 mnOptimalWidthCache
VclPtr< vcl::WindowOutputDevice > mxOutDev
int mnEventListenersIteratingCount
WindowExtendedStyle mnExtendedStyle
VclPtr< vcl::Window > mpFrameWindow
bool mbDrawSelectionBackground
ImplFrameData * mpFrameData
vcl::Region maWinClipRegion
vcl::Region * mpPaintRegion
sal_Int32 mnOptimalHeightCache
bool mbNativeFocusVisible
ImplPaintFlags mnPaintFlags
VCLXWindow * mpVCLXWindow
VclPtr< vcl::Window > mpClientWindow
bool mbDoubleBufferingRequested
VclPtr< vcl::Window > mpDlgCtrlDownWindow
GetFocusFlags mnGetFocusFlags
bool mbToolbarFloatingWindow
ParentClipMode mnParentClipMode
Color maControlBackground
std::unique_ptr< ImplAccessibleInfos > mpAccessibleInfos
int mnChildEventListenersIteratingCount
std::unique_ptr< ImplWinData > mpWinData
sal_Int32 mnHeightRequest
VclPtr< vcl::Window > mpNextOverlap
WindowImpl(const WindowImpl &)=delete
AlwaysInputMode meAlwaysInputMode
bool mbSuppressAccessibilityEvents
VclPtr< vcl::Window > mpLastChild
vcl::LOKWindowId mnLOKWindowId
ID of this specific window.
Color maControlForeground
VclPtr< vcl::Window > mpPrev
DialogControlFlags mnDlgCtrlFlags
VclPtr< vcl::Window > mpLastOverlap
VclPtr< vcl::Window > mpLastFocusWindow
VclPtr< vcl::Window > mpFirstOverlap
const vcl::ILibreOfficeKitNotifier * mpLOKNotifier
To emit the LOK callbacks eg. for dialog tunneling.
static std::unique_ptr< UIObject > create(vcl::Window *pWindow)
SAL_DLLPRIVATE void ImplShow()
Similar to DeleteOnDeinit, the DeleteUnoReferenceOnDeinit template class makes sure that a static UNO...
css::uno::Reference< I > get()
void SetFontSize(const Size &)
const OUString & GetFamilyName() const
const Size & GetFontSize() const
virtual ~ILibreOfficeKitNotifier()
sal_uInt16 GetCode() const
sal_uInt16 GetModifier() const
void Intersect(const tools::Rectangle &rRegion)
tools::Rectangle GetBoundRect() const
void Exclude(const tools::Rectangle &rRegion)
virtual void CopyDeviceArea(SalTwoRect &aPosAry, bool bWindowInvalidate) override
virtual void DrawOutDevDirectProcess(const OutputDevice &rSrcDev, SalTwoRect &rPosAry, SalGraphics *pSrcGraphics) override
virtual bool UsePolyPolygonForComplexGradient() override
virtual void dispose() override
virtual void ReleaseGraphics(bool bRelease=true) override
Release the graphics device, and remove it from the graphics device list.
virtual const OutputDevice * DrawOutDevDirectCheck(const OutputDevice &rSrcDev) const override
VclPtr< vcl::Window > mxOwnerWindow
virtual ~WindowOutputDevice() override
WindowOutputDevice(vcl::Window &rOwnerWindow)
virtual bool AcquireGraphics() const override
Acquire a graphics device that the output device uses to draw on.
virtual css::uno::Reference< css::rendering::XCanvas > ImplGetCanvas(bool bSpriteCanvas) const override
bool CanEnableNativeWidget() const override
Determine if native widgets can be enabled.
Color GetBackgroundColor() const override
css::awt::DeviceInfo GetDeviceInfo() const override
constexpr sal_Int32 y() const
constexpr sal_Int32 x() const
constexpr sal_Int32 width() const
static SAL_DLLPRIVATE void ImplInitAppFontData(vcl::Window const *pWindow)
Point AbsoluteScreenToOutputPixel(const Point &rPos) const
Point OutputToScreenPixel(const Point &rPos) const
virtual vcl::Window * getAccessibleRelationLabelFor() const
virtual void dispose() override
This is intended to be used to clear any locally held references to other Window-subclass objects.
const Wallpaper & GetBackground() const
tools::Long GetTextWidth(const OUString &rStr, sal_Int32 nIndex=0, sal_Int32 nLen=-1, vcl::text::TextLayoutCache const *=nullptr, SalLayoutGlyphs const *const pLayoutCache=nullptr) const
Width of the text.
void SetStyle(WinBits nStyle)
SAL_DLLPRIVATE void ImplPosSizeWindow(tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, PosSizeFlags nFlags)
void SetFont(const vcl::Font &rNewFont)
void SetCursorRect(const tools::Rectangle *pRect=nullptr, tools::Long nExtTextInputWidth=0)
void SetUpdateMode(bool bUpdate)
tools::Rectangle GetWindowExtentsAbsolute() const
SAL_DLLPRIVATE bool ImplIsWindowOrChild(const vcl::Window *pWindow, bool bSystemWindow=false) const
SAL_DLLPRIVATE tools::Rectangle ImplOutputToUnmirroredAbsoluteScreenPixel(const tools::Rectangle &rRect) const
static SAL_DLLPRIVATE void ImplNewInputContext()
void SetActivateMode(ActivateModeFlags nMode)
SAL_DLLPRIVATE void ImplGrabFocus(GetFocusFlags nFlags)
bool IsNativeWidgetEnabled() const
void SetInputContext(const InputContext &rInputContext)
SAL_DLLPRIVATE void ImplScroll(const tools::Rectangle &rRect, tools::Long nHorzScroll, tools::Long nVertScroll, ScrollFlags nFlags)
bool IsReallyVisible() const
void SimulateKeyPress(sal_uInt16 nKeyCode) const
vcl::Window * GetParent() const
virtual void RequestHelp(const HelpEvent &rHEvt)
SAL_DLLPRIVATE void ImplStartToTop(ToTopFlags nFlags)
virtual void StateChanged(StateChangedType nStateChange)
virtual Selection GetSurroundingTextSelection() const
bool IsInputEnabled() const
void SetLOKNotifier(const vcl::ILibreOfficeKitNotifier *pNotifier, bool bParent=false)
Interface to register for dialog / window tunneling.
bool IsMouseCaptured() const
bool HasActiveChildFrame() const
const InputContext & GetInputContext() const
bool HasChildPathFocus(bool bSystemWindow=false) const
SAL_DLLPRIVATE void ImplCallDeactivateListeners(vcl::Window *)
SAL_DLLPRIVATE bool ImplIsAccessibleCandidate() const
SAL_DLLPRIVATE void ImplClipBoundaries(vcl::Region &rRegion, bool bThis, bool bOverlaps)
tools::Rectangle GetDesktopRectPixel() const
virtual const Wallpaper & GetDisplayBackground() const
KeyIndicatorState GetIndicatorState() const
Query the states of keyboard indicators - Caps Lock, Num Lock and Scroll Lock.
void EndTracking(TrackingEventFlags nFlags=TrackingEventFlags::NONE)
SAL_DLLPRIVATE void ImplCalcOverlapRegion(const tools::Rectangle &rSourceRect, vcl::Region &rRegion, bool bChildren, bool bSiblings)
LanguageType GetInputLanguage() const
SAL_DLLPRIVATE void ImplExcludeWindowRegion(vcl::Region &rRegion)
SAL_DLLPRIVATE tools::Rectangle ImplUnmirroredAbsoluteScreenToOutputPixel(const tools::Rectangle &rRect) const
VclPtr< vcl::Window > GetFocusedWindow() const
bool IsBackground() const
const OUString & get_id() const
Get the ID of the window.
bool IsPaintTransparent() const
WindowType GetType() const
bool SupportsDoubleBuffering() const
Can the widget derived from this Window do the double-buffering via RenderContext properly?
SAL_DLLPRIVATE ::std::vector< VclPtr< vcl::Window > > & ImplGetOwnerDrawList()
virtual void Tracking(const TrackingEvent &rTEvt)
void GetBorder(sal_Int32 &rLeftBorder, sal_Int32 &rTopBorder, sal_Int32 &rRightBorder, sal_Int32 &rBottomBorder) const
SAL_DLLPRIVATE void ImplGenerateMouseMove()
virtual void Command(const CommandEvent &rCEvt)
SAL_DLLPRIVATE bool ImplIsOverlapWindow() const
SAL_DLLPRIVATE bool CompatNotify(NotifyEvent &rNEvt)
SAL_DLLPRIVATE void ImplInitWinClipRegion()
void SetCursor(vcl::Cursor *pCursor)
SAL_DLLPRIVATE vcl::Window * ImplGetBorderWindow() const
SAL_DLLPRIVATE bool ImplIsChild(const vcl::Window *pWindow, bool bSystemWindow=false) const
virtual void queue_resize(StateChangedType eReason=StateChangedType::Layout)
void SetClipboard(css::uno::Reference< css::datatransfer::clipboard::XClipboard > const &xClipboard)
Sets a custom clipboard for the window's frame, instead of creating it on-demand using css::datatrans...
bool IsCompoundControl() const
void set_id(const OUString &rID)
Sets an ID.
SAL_DLLPRIVATE void ImplHideAllOverlaps()
SAL_DLLPRIVATE void ImplPointToLogic(vcl::RenderContext const &rRenderContext, vcl::Font &rFont) const
void ReleaseLOKNotifier()
Indicate that LOK is not going to use this dialog any more.
bool GetNativeControlRegion(ControlType nType, ControlPart nPart, const tools::Rectangle &rControlRegion, ControlState nState, const ImplControlValue &aValue, tools::Rectangle &rNativeBoundingRegion, tools::Rectangle &rNativeContentRegion) const
Query the native control's actual drawing region (including adornment)
void remove_mnemonic_label(FixedText *pLabel)
void SetHelpHdl(const Link< vcl::Window &, bool > &rLink)
vcl::Window * GetAccessibleParentWindow() const
virtual Point GetPosPixel() const
void SetParent(vcl::Window *pNewParent)
SAL_DLLPRIVATE void ImplInsertWindow(vcl::Window *pParent)
SAL_DLLPRIVATE bool ImplUpdatePos()
SAL_DLLPRIVATE bool CompatPreNotify(NotifyEvent &rNEvt)
tools::Long GetTextHeight() const
Height where any character of the current font fits; in logic coordinates.
SAL_DLLPRIVATE void ImplNotifyIconifiedState(bool bIconified)
SAL_DLLPRIVATE void ImplInvalidateParentFrameRegion(const vcl::Region &rRegion)
void Enable(bool bEnable=true, bool bChild=true)
Point NormalizedScreenToOutputPixel(const Point &rPos) const
SAL_DLLPRIVATE void ImplUpdateSysObjPos()
SAL_DLLPRIVATE void CollectChildren(::std::vector< vcl::Window * > &rAllChildren)
Add all children to rAllChildren recursively.
virtual ~Window() override
bool IsMapModeEnabled() const
void SetFakeFocus(bool bFocus)
Set this when you need to act as if the window has focus even if it doesn't.
void GrabFocusToDocument()
const AllSettings & GetSettings() const
void Show(bool bVisible=true, ShowFlags nFlags=ShowFlags::NONE)
virtual void KeyInput(const KeyEvent &rKEvt)
vcl::Window * GetAccessibleRelationLabeledBy() const
SAL_DLLPRIVATE bool ImplSetClipFlag(bool bSysObjOnlySmaller=false)
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect)
void SetCompositionCharRect(const tools::Rectangle *pRect, tools::Long nCompositionLength, bool bVertical=false)
const std::vector< VclPtr< FixedText > > & list_mnemonic_labels() const
virtual OUString GetSurroundingText() const
const OUString & GetHelpId() const
virtual bool PreNotify(NotifyEvent &rNEvt)
SAL_DLLPRIVATE vcl::Window * ImplGetParent() const
vcl::Font GetPointFont(vcl::RenderContext const &rRenderContext) const
SAL_DLLPRIVATE void ImplResetReallyVisible()
tools::Long CalcTitleWidth() const
const MapMode & GetMapMode() const
SAL_DLLPRIVATE vcl::Window * ImplGetFirstOverlapWindow()
VclPtr< vcl::Window > GetParentWithLOKNotifier()
Find the nearest parent with LOK Notifier; can be itself if this Window has LOK notifier set.
SAL_DLLPRIVATE void ImplCallActivateListeners(vcl::Window *)
::OutputDevice const * GetOutDev() const
virtual void setPosSizePixel(tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, PosSizeFlags nFlags=PosSizeFlags::All)
Color GetBackgroundColor() const
virtual OUString GetDisplayText() const
SAL_DLLPRIVATE void ImplRemoveWindow(bool bRemoveFrameData)
const vcl::Font & GetFont() const
SAL_DLLPRIVATE float approximate_char_width() const
const vcl::ILibreOfficeKitNotifier * GetLOKNotifier() 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 ImplSetReallyVisible()
SAL_DLLPRIVATE void CompatDataChanged(const DataChangedEvent &rDCEvt)
SAL_DLLPRIVATE void ImplCallMove()
void RequestDoubleBuffering(bool bRequest)
Enable/disable double-buffering of the frame window and all its children.
SAL_DLLPRIVATE ImplWinData * ImplGetWinData() const
virtual bool DeleteSurroundingText(const Selection &rSelection)
SAL_DLLPRIVATE WindowImpl * ImplGetWindowImpl() const
SAL_DLLPRIVATE void ImplInitResolutionSettings()
SAL_DLLPRIVATE void ImplUpdateSysObjClip()
SAL_DLLPRIVATE void ImplMirrorFramePos(Point &pt) const
SAL_DLLPRIVATE void CompatLoseFocus()
static bool IsLOKWindowsEmpty()
check if LOK Window container is empty
void RecordLayoutData(vcl::ControlLayoutData *pLayout, const tools::Rectangle &rRect)
virtual css::uno::Reference< css::awt::XVclWindowPeer > GetComponentInterface(bool bCreate=true)
SAL_DLLPRIVATE void ImplIsInTaskPaneList(bool mbIsInTaskList)
std::unique_ptr< WindowImpl > mpWindowImpl
vcl::LOKWindowId GetLOKWindowId() const
SalFrame * ImplGetFrame() const
virtual void Scroll(tools::Long nHorzScroll, tools::Long nVertScroll, ScrollFlags nFlags=ScrollFlags::NONE)
virtual void DumpAsPropertyTree(tools::JsonWriter &)
Dumps itself and potentially its children to a property tree, to be written easily to JSON.
bool IsSystemWindow() const
css::uno::Reference< css::accessibility::XAccessible > GetAccessible(bool bCreate=true)
virtual Size GetSizePixel() const
Size GetOutputSizePixel() const
virtual void Deactivate()
SAL_DLLPRIVATE void ImplLogicToPoint(vcl::RenderContext const &rRenderContext, vcl::Font &rFont) const
virtual void Draw(::OutputDevice *pDev, const Point &rPos, SystemTextColorFlags nFlags)
SAL_DLLPRIVATE void ImplFocusToTop(ToTopFlags nFlags, bool bReallyVisible)
virtual void DataChanged(const DataChangedEvent &rDCEvt)
WindowBorderStyle GetBorderStyle() const
SAL_DLLPRIVATE void ImplDlgCtrlNextWindow()
virtual void ImplInvalidate(const vcl::Region *pRegion, InvalidateFlags nFlags)
void DrawSelectionBackground(const tools::Rectangle &rRect, sal_uInt16 highlight, bool bChecked, bool bDrawBorder)
void remove_from_all_size_groups()
vcl::Window * GetAccessibleRelationLabelFor() const
void SetPointFont(vcl::RenderContext &rRenderContext, const vcl::Font &rFont)
const tools::Rectangle * GetCursorRect() const
SAL_DLLPRIVATE bool ImplIsFloatingWindow() const
virtual void ApplySettings(vcl::RenderContext &rRenderContext)
void PostExtTextInputEvent(VclEventId nType, const OUString &rText)
static VclPtr< vcl::Window > FindLOKWindow(vcl::LOKWindowId nWindowId)
Find an existing Window based on the LOKWindowId.
void AlwaysEnableInput(bool bAlways, bool bChild=true)
Override EnableInput.
bool HasPaintEvent() const
SAL_DLLPRIVATE void ImplCallResize()
SAL_DLLPRIVATE void ImplCallInitShow()
void SetWindowPeer(css::uno::Reference< css::awt::XVclWindowPeer > const &xPeer, VCLXWindow *pVCLXWindow)
tools::Long GetCursorExtTextInputWidth() const
SAL_DLLPRIVATE void ImplMoveAllInvalidateRegions(const tools::Rectangle &rRect, tools::Long nHorzScroll, tools::Long nVertScroll, bool bChildren)
virtual void KeyUp(const KeyEvent &rKEvt)
Point OutputToAbsoluteScreenPixel(const Point &rPos) const
void CallEventListeners(VclEventId nEvent, void *pData=nullptr)
virtual void SetText(const OUString &rStr)
virtual OUString GetText() const
SAL_DLLPRIVATE void ImplUpdateGlobalSettings(AllSettings &rSettings, bool bCallHdl=true) const
bool IsScrollable() const
css::uno::Reference< css::datatransfer::clipboard::XClipboard > GetClipboard()
tools::Rectangle GetOutputRectPixel() const
void SetBorderStyle(WindowBorderStyle nBorderStyle)
SAL_DLLPRIVATE tools::Long ImplGetUnmirroredOutOffX() const
vcl::Window * ImplGetWindow() const
if this is a proxy return the client, otherwise itself
void SetComponentInterface(css::uno::Reference< css::awt::XVclWindowPeer > const &xIFace)
Point ScreenToOutputPixel(const Point &rPos) const
virtual bool EventNotify(NotifyEvent &rNEvt)
SAL_DLLPRIVATE void ImplShowAllOverlaps()
void EnableNativeWidget(bool bEnable=true)
const OUString & GetQuickHelpText() const
tools::Rectangle GetWindowExtentsRelative(const vcl::Window &rRelativeWindow) const
void SetExtendedStyle(WindowExtendedStyle nExtendedStyle)
void SetDumpAsPropertyTreeHdl(const Link< tools::JsonWriter &, void > &rLink)
SAL_DLLPRIVATE SalGraphics * ImplGetFrameGraphics() const
SAL_DLLPRIVATE void ImplInvalidateFrameRegion(const vcl::Region *pRegion, InvalidateFlags nFlags)
SAL_DLLPRIVATE void ImplGrabFocusToDocument(GetFocusFlags nFlags)
SAL_DLLPRIVATE void ImplInit(vcl::Window *pParent, WinBits nStyle, SystemParentData *pSystemParentData)
const OUString & GetHelpText() const
void SetModalHierarchyHdl(const Link< bool, void > &rLink)
void EnableInput(bool bEnable=true, bool bChild=true)
void SetTextColor(const Color &rColor)
virtual const SystemEnvData * GetSystemData() const
SAL_DLLPRIVATE void CompatGetFocus()
SAL_DLLPRIVATE bool ImplIsAccessibleNativeFrame() const
virtual FactoryFunction GetUITestFactory() const
SAL_DLLPRIVATE bool ImplIsRealParentPath(const vcl::Window *pWindow) const
Point OutputToNormalizedScreenPixel(const Point &rPos) const
SAL_DLLPRIVATE void CompatStateChanged(StateChangedType nStateChange)
constexpr ::Color COL_GRAY(0x80, 0x80, 0x80)
constexpr ::Color COL_WHITE(0xFF, 0xFF, 0xFF)
constexpr ::Color COL_LIGHTGRAY(0xC0, 0xC0, 0xC0)
constexpr ::Color COL_BLACK(0x00, 0x00, 0x00)
constexpr ::Color COL_TRANSPARENT(ColorTransparency, 0xFF, 0xFF, 0xFF, 0xFF)
#define EXTTEXTINPUT_CURSOR_OVERWRITE
#define DBG_TESTSOLARMUTEX()
#define TOOLS_WARN_EXCEPTION(area, stream)
GraphicsSharedPtr mpGraphics
void ImplDestroyHelpWindow(bool bUpdateHideTime)
std::function< std::unique_ptr< UIObject >(vcl::Window *)> FactoryFunction
constexpr sal_uInt16 KEY_MOD2
constexpr sal_uInt16 KEY_MOD1
#define LANGUAGE_ENGLISH_US
#define LINK(Instance, Class, Member)
#define SAL_WARN_IF(condition, area, stream)
#define SAL_WARN(area, stream)
Reference< XComponentContext > getProcessComponentContext()
enumrange< T >::Iterator begin(enumrange< T >)
OString OUStringToOString(std::u16string_view str, ConnectionSettings const *settings)
static sal_Int32 CountDPIScaleFactor(sal_Int32 nDPI)
std::map< vcl::LOKWindowId, VclPtr< vcl::Window > > LOKWindowsMap
SwNodeOffset abs(const SwNodeOffset &a)
#define SAL_FRAME_POSSIZE_X
#define SAL_FRAME_EXT_STYLE_DOCUMENT
#define SAL_FRAME_EXT_STYLE_DOCMODIFIED
#define SAL_FRAME_POSSIZE_HEIGHT
#define SAL_FRAME_POSSIZE_WIDTH
#define SAL_FRAME_POSSIZE_Y
VclPtr< vcl::Window > mpTrackWin
tools::Long mnBeforeLastMouseX
sal_uInt64 mnMouseDownTime
sal_Int32 mnTouchPanPosition
ImplFrameData(vcl::Window *pWindow)
MouseEventModifiers mnMouseMode
bool mbInBufferedPaint
PaintHelper is in the process of painting into this buffer.
tools::Long mnFirstMouseY
std::shared_ptr< vcl::font::PhysicalFontCollection > mxFontCollection
VclPtr< vcl::Window > mpMouseMoveWin
tools::Long mnBeforeLastMouseY
std::shared_ptr< ImplFontCache > mxFontCache
ImplSVEvent * mnMouseMoveId
tools::Long mnLastMouseWinY
VclPtr< vcl::Window > mpMouseDownWin
tools::Long mnFirstMouseX
VclPtr< vcl::Window > mpNextFrame
VclPtr< vcl::Window > mpFirstOverlap
VclPtr< vcl::Window > mpFocusWin
sal_uInt16 mnFirstMouseCode
bool mbInternalDragGestureRecognizer
tools::Long mnLastMouseWinX
std::optional< AllSettings > mxSettings
ImplSVFrameData maFrameData
ImplSVWinData * mpWinData
VclPtr< vcl::Window > mpIntroWindow
VclPtr< vcl::Window > mpFirstFrame
VclPtr< vcl::Window > mpActiveApplicationFrame
VclPtr< vcl::WindowOutputDevice > mpLastWinGraphics
std::shared_ptr< vcl::font::PhysicalFontCollection > mxScreenFontList
std::shared_ptr< ImplFontCache > mxScreenFontCache
VclPtr< vcl::WindowOutputDevice > mpFirstWinGraphics
VclPtr< vcl::Window > mpLastWheelWindow
VclPtr< vcl::Window > mpLastDeacWin
VclPtr< vcl::Window > mpFocusWin
VclPtr< vcl::Window > mpTrackWin
VclPtr< vcl::Window > mpExtTextInputWin
tools::Long mnCompositionCharRects
std::unique_ptr< tools::Rectangle[]> mpCompositionCharRects
std::optional< tools::Rectangle > mpCursorRect
bool mbEnableNativeWidget
::std::list< VclPtr< vcl::Window > > maTopWindowChildren
tools::Long mnCursorExtWidth
rtl::Reference< LogicalFontInstance > mpFont
InputContextFlags mnOptions
ImplSVData * ImplGetSVData()
ImplSVHelpData & ImplGetSVHelpData()
DockingManager * ImplGetDockingManager()
@ RESIZE
Resize runs before repaint, so we won't paint twice.
@ REPAINT
All repaint events should go in here.
Reference< XClipboard > GetSystemClipboard()
@ WindowFrameTitleChanged
@ Children
The child windows are invalidated, too.
@ NoTransparent
The parent window is not invalidated.
bool ImplWindowFrameProc(vcl::Window *_pWindow, SalEvent nEvent, const void *pEvent)
void ImplHandleResize(vcl::Window *pWindow, tools::Long nNewWidth, tools::Long nNewHeight)
WinBits const WB_CLOSEABLE
WinBits const WB_MOVEABLE
WinBits const WB_DIALOGCONTROL
WinBits const WB_OWNERDRAWDECORATION
@ TOOLKIT_SYSTEMCHILDWINDOW
WinBits const WB_SYSTEMCHILDWINDOW
WinBits const WB_SIZEABLE
WinBits const WB_DEFAULTWIN
WinBits const WB_SYSTEMFLOATWIN
WinBits const WB_INTROWIN
WinBits const WB_NODIALOGCONTROL
WinBits const WB_TOOLTIPWIN
WinBits const WB_NOSHADOW