23#include <com/sun/star/awt/WindowEvent.hpp>
24#include <com/sun/star/awt/KeyEvent.hpp>
25#include <com/sun/star/awt/MouseEvent.hpp>
26#include <com/sun/star/awt/MouseWheelBehavior.hpp>
27#include <com/sun/star/awt/Style.hpp>
28#include <com/sun/star/awt/DockingEvent.hpp>
29#include <com/sun/star/awt/EndDockingEvent.hpp>
30#include <com/sun/star/awt/EndPopupModeEvent.hpp>
31#include <com/sun/star/awt/XWindowListener2.hpp>
32#include <com/sun/star/style/VerticalAlignment.hpp>
33#include <com/sun/star/lang/DisposedException.hpp>
34#include <com/sun/star/text/WritingMode2.hpp>
40#include <helper/property.hxx>
41#include <rtl/math.hxx>
68using ::com::sun::star::uno::Reference;
69using ::com::sun::star::uno::UNO_QUERY;
70using ::com::sun::star::lang::EventObject;
71using ::com::sun::star::awt::XWindowListener2;
72using ::com::sun::star::awt::XDockableWindowListener;
73using ::com::sun::star::awt::XDevice;
74using ::com::sun::star::awt::XStyleSettings;
75using ::com::sun::star::lang::DisposedException;
76using ::com::sun::star::style::VerticalAlignment;
77using ::com::sun::star::style::VerticalAlignment_TOP;
78using ::com::sun::star::style::VerticalAlignment_MIDDLE;
79using ::com::sun::star::style::VerticalAlignment_BOTTOM;
81namespace WritingMode2 = ::com::sun::star::text::WritingMode2;
125 std::unique_ptr<UnoPropertyArrayHelper>
128 css::uno::Reference< css::accessibility::XAccessibleContext >
130 css::uno::Reference< css::awt::XGraphics >
132 css::uno::Reference< css::awt::XStyleSettings >
193 :mrAntiImpl( _rAntiImpl )
195 ,mbDrawingOntoParent( false )
196 ,mbEnableVisible(true)
197 ,mbDirectVisible(true)
198 ,maWindow2Listeners( maListenerContainerMutex )
199 ,maDockableWindowListeners( maListenerContainerMutex )
200 ,maEventListeners( _rAntiImpl )
201 ,maFocusListeners( _rAntiImpl )
202 ,maWindowListeners( _rAntiImpl )
203 ,maKeyListeners( _rAntiImpl )
204 ,maMouseListeners( _rAntiImpl )
205 ,maMouseMotionListeners( _rAntiImpl )
206 ,maPaintListeners( _rAntiImpl )
207 ,maContainerListeners( _rAntiImpl )
208 ,maTopWindowListeners( _rAntiImpl )
209 ,mnCallbackEventId( nullptr )
210 ,mbDisposing( false )
211 ,mbDesignMode( false )
212 ,mbSynthesizingVCLEvent( false )
213 ,mbWithDefaultProps( _bWithDefaultProps )
214 ,mnListenerLockLevel( 0 )
215 ,mnWritingMode( WritingMode2::
CONTEXT )
216 ,mnContextWritingMode( WritingMode2::
CONTEXT )
237 css::lang::EventObject
aEvent;
253 if ( pStyleSettings !=
nullptr )
274 const Reference< uno::XInterface > xKeepAlive( mrAntiImpl );
276 SAL_INFO(
"toolkit.controls",
"OnProcessCallbacks grabbing solarmutex");
279 CallbackArray aCallbacksCopy;
282 aCallbacksCopy.swap(maCallbackEvents);
285 mrAntiImpl.release();
287 assert( mnCallbackEventId &&
"should not be possible to call us if the event was removed");
289 mnCallbackEventId =
nullptr;
293 SAL_INFO(
"toolkit.controls",
"OnProcessCallbacks relinquished solarmutex");
295 for (
const auto& rCallback : aCallbacksCopy)
306 throw DisposedException( OUString(),
mrAntiImpl );
323 rEvent.Width = aSz.
Width();
324 rEvent.Height = aSz.
Height();
326 pWindow->
GetBorder( rEvent.LeftInset, rEvent.TopInset, rEvent.RightInset, rEvent.BottomInset );
336 assert(
mpImpl->mbDisposing &&
"forgot to call dispose()");
344 mpImpl->callBackAsync( i_callback );
350 return mpImpl->getAccessibleFactory().getFactory();
355 assert(!
mpImpl->mbDisposing || !pWindow);
363 SetOutputDevice( pWindow ? pWindow->GetOutDev() :
nullptr );
368 bool bDirectVisible = pWindow && pWindow->IsVisible();
369 mpImpl->setDirectVisible( bDirectVisible );
375 ++
mpImpl->mnListenerLockLevel;
380 DBG_ASSERT(
mpImpl->mnListenerLockLevel,
"VCLXWindow::resumeVclEventListening: not suspended!" );
381 --
mpImpl->mnListenerLockLevel;
386 if (
mpImpl->getContainerListeners().getLength() )
388 awt::VclContainerEvent
aEvent;
391 mpImpl->getContainerListeners().windowRemoved(
aEvent );
397 if ( mpImpl->mbDisposing || mpImpl->mnListenerLockLevel )
400 DBG_ASSERT( rEvent.GetWindow() && GetWindow(),
"Window???" );
401 ProcessWindowEvent( rEvent );
406 struct CallWindow2Listener
409 :m_rWindow2Listeners( i_rWindow2Listeners )
410 ,m_bEnabled( i_bEnabled )
411 ,m_aEvent(
std::move( i_Event ))
417 m_rWindow2Listeners.notifyEach( m_bEnabled ? &XWindowListener2::windowEnabled : &XWindowListener2::windowDisabled, m_aEvent );
421 const bool m_bEnabled;
422 const EventObject m_aEvent;
430 css::uno::Reference< css::uno::XInterface > xThis(
static_cast<cppu::OWeakObject*
>(
this) );
432 switch ( rVclWindowEvent.
GetId() )
434 case VclEventId::WindowEnabled:
435 case VclEventId::WindowDisabled:
437 Callback aCallback = CallWindow2Listener(
438 mpImpl->getWindow2Listeners(),
439 ( VclEventId::WindowEnabled == rVclWindowEvent.
GetId() ),
446 case VclEventId::WindowPaint:
448 if (
mpImpl->getPaintListeners().getLength() )
450 css::awt::PaintEvent
aEvent;
458 case VclEventId::WindowMove:
460 if (
mpImpl->getWindowListeners().getLength() )
462 css::awt::WindowEvent
aEvent;
469 case VclEventId::WindowResize:
471 if (
mpImpl->getWindowListeners().getLength() )
473 css::awt::WindowEvent
aEvent;
480 case VclEventId::WindowShow:
482 if (
mpImpl->getWindowListeners().getLength() )
484 css::awt::WindowEvent
aEvent;
491 if (
mpImpl->getTopWindowListeners().getLength() )
493 css::lang::EventObject
aEvent;
499 case VclEventId::WindowHide:
501 if (
mpImpl->getWindowListeners().getLength() )
503 css::awt::WindowEvent
aEvent;
510 if (
mpImpl->getTopWindowListeners().getLength() )
512 css::lang::EventObject
aEvent;
518 case VclEventId::WindowActivate:
519 case VclEventId::WindowDeactivate:
521 if (!
mpImpl->getTopWindowListeners().getLength())
526 bool bSuppress =
false;
539 if (pWin->
GetType() == WindowType::FLOATINGWINDOW &&
544 if (!bSuppress && pWin->
GetWindow(GetWindowType::Frame) == pWin)
547 pWin = pWin->
GetWindow(GetWindowType::RealParent);
550 css::lang::EventObject
aEvent;
552 if (rVclWindowEvent.
GetId() == VclEventId::WindowActivate)
553 mpImpl->getTopWindowListeners().windowActivated(
aEvent );
555 mpImpl->getTopWindowListeners().windowDeactivated(
aEvent );
558 case VclEventId::WindowClose:
560 if (
mpImpl->getDockableWindowListeners().getLength() )
562 css::lang::EventObject
aEvent;
564 mpImpl->getDockableWindowListeners().notifyEach( &XDockableWindowListener::closed,
aEvent );
566 if (
mpImpl->getTopWindowListeners().getLength() )
568 css::lang::EventObject
aEvent;
570 mpImpl->getTopWindowListeners().windowClosing(
aEvent );
574 case VclEventId::ControlGetFocus:
575 case VclEventId::WindowGetFocus:
578 && rVclWindowEvent.
GetId() == VclEventId::ControlGetFocus
581 && rVclWindowEvent.
GetId() == VclEventId::WindowGetFocus
585 if (
mpImpl->getFocusListeners().getLength() )
587 css::awt::FocusEvent
aEvent;
596 case VclEventId::ControlLoseFocus:
597 case VclEventId::WindowLoseFocus:
600 && rVclWindowEvent.
GetId() == VclEventId::ControlLoseFocus
603 && rVclWindowEvent.
GetId() == VclEventId::WindowLoseFocus
607 if (
mpImpl->getFocusListeners().getLength() )
609 css::awt::FocusEvent
aEvent;
632 case VclEventId::WindowMinimize:
634 if (
mpImpl->getTopWindowListeners().getLength() )
636 css::lang::EventObject
aEvent;
638 mpImpl->getTopWindowListeners().windowMinimized(
aEvent );
642 case VclEventId::WindowNormalize:
644 if (
mpImpl->getTopWindowListeners().getLength() )
646 css::lang::EventObject
aEvent;
648 mpImpl->getTopWindowListeners().windowNormalized(
aEvent );
652 case VclEventId::WindowKeyInput:
654 if (
mpImpl->getKeyListeners().getLength() )
663 case VclEventId::WindowKeyUp:
665 if (
mpImpl->getKeyListeners().getLength() )
674 case VclEventId::WindowCommand:
677 if (
mpImpl->getMouseListeners().getLength() && ( pCmdEvt->
GetCommand() == CommandEventId::ContextMenu ) )
686 aWhere =
Point( -1, -1 );
691 aEvent.PopupTrigger =
true;
694 { this->
mpImpl->getMouseListeners().mousePressed( aEvent ); };
700 case VclEventId::WindowMouseMove:
708 { MouseListenerMultiplexer& rMouseListeners = this->
mpImpl->getMouseListeners();
710 ? rMouseListeners.mouseEntered(
aEvent)
711 : rMouseListeners.mouseExited(
aEvent); };
720 if ( pMouseEvt->
GetMode() & MouseEventModifiers::SIMPLEMOVE )
723 mpImpl->getMouseMotionListeners().mouseDragged(
aEvent );
727 case VclEventId::WindowMouseButtonDown:
729 if (
mpImpl->getMouseListeners().getLength() )
733 { this->
mpImpl->getMouseListeners().mousePressed( aEvent ); };
738 case VclEventId::WindowMouseButtonUp:
740 if (
mpImpl->getMouseListeners().getLength() )
745 { this->
mpImpl->getMouseListeners().mouseReleased( aEvent ); };
750 case VclEventId::WindowStartDocking:
752 if (
mpImpl->getDockableWindowListeners().getLength() )
758 css::awt::DockingEvent
aEvent;
764 aEvent.bInteractive =
true;
766 mpImpl->getDockableWindowListeners().notifyEach( &XDockableWindowListener::startDocking,
aEvent );
771 case VclEventId::WindowDocking:
773 if (
mpImpl->getDockableWindowListeners().getLength() )
779 css::awt::DockingEvent
aEvent;
785 aEvent.bInteractive =
true;
787 Reference< XDockableWindowListener > xFirstListener;
791 xFirstListener = aIter.
next();
794 css::awt::DockingData aDockingData =
795 xFirstListener->docking(
aEvent );
797 pData->mbFloating = aDockingData.bFloating;
802 case VclEventId::WindowEndDocking:
804 if (
mpImpl->getDockableWindowListeners().getLength() )
810 css::awt::EndDockingEvent
aEvent;
815 mpImpl->getDockableWindowListeners().notifyEach( &XDockableWindowListener::endDocking,
aEvent );
820 case VclEventId::WindowPrepareToggleFloating:
822 if (
mpImpl->getDockableWindowListeners().getLength() )
826 css::lang::EventObject
aEvent;
829 Reference< XDockableWindowListener > xFirstListener;
833 xFirstListener = aIter.
next();
836 *p_bFloating = xFirstListener->prepareToggleFloatingMode(
aEvent );
840 case VclEventId::WindowToggleFloating:
842 if (
mpImpl->getDockableWindowListeners().getLength() )
844 css::lang::EventObject
aEvent;
846 mpImpl->getDockableWindowListeners().notifyEach( &XDockableWindowListener::toggleFloatingMode,
aEvent );
850 case VclEventId::WindowEndPopupMode:
852 if (
mpImpl->getDockableWindowListeners().getLength() )
858 css::awt::EndPopupModeEvent
aEvent;
860 aEvent.FloatingPosition.X =
pData->maFloatingPos.X();
861 aEvent.FloatingPosition.Y =
pData->maFloatingPos.Y();
863 mpImpl->getDockableWindowListeners().notifyEach( &XDockableWindowListener::endPopupMode,
aEvent );
882 mpImpl->mbSynthesizingVCLEvent = _b;
887 return mpImpl->mbSynthesizingVCLEvent;
897 sal_Int32 nLeft, nTop, nRight, nBottom;
898 pWindow->GetBorder( nLeft, nTop, nRight, nBottom );
911 if (
mpImpl->mbDisposing )
914 mpImpl->mbDisposing =
true;
916 mpImpl->mxViewGraphics =
nullptr;
922 pWindow->RemoveEventListener(
LINK(
this,
VCLXWindow, WindowEventListener ) );
923 pWindow->SetWindowPeer(
nullptr,
nullptr );
924 pWindow->SetAccessible(
nullptr );
926 SetOutputDevice(
nullptr );
927 pWindow.disposeAndClear();
935 css::uno::Reference< css::lang::XComponent > xComponent(
mpImpl->mxAccessibleContext, css::uno::UNO_QUERY );
936 if ( xComponent.is() )
937 xComponent->dispose();
939 catch (
const css::uno::Exception& )
941 OSL_FAIL(
"VCLXWindow::dispose: could not dispose the accessible context!" );
943 mpImpl->mxAccessibleContext.clear();
951 mpImpl->getEventListeners().addInterface( rxListener );
959 mpImpl->getEventListeners().removeInterface( rxListener );
982 css::awt::Rectangle aBounds;
1013 pWindow->Enable( bEnable,
false );
1014 pWindow->EnableInput( bEnable );
1032 mpImpl->getWindowListeners().addInterface( rxListener );
1034 Reference< XWindowListener2 > xListener2( rxListener, UNO_QUERY );
1035 if ( xListener2.is() )
1036 mpImpl->getWindow2Listeners().addInterface( xListener2 );
1050 Reference< XWindowListener2 > xListener2( rxListener, UNO_QUERY );
1051 if ( xListener2.is() )
1052 mpImpl->getWindow2Listeners().removeInterface( xListener2 );
1054 mpImpl->getWindowListeners().removeInterface( rxListener );
1062 mpImpl->getFocusListeners().addInterface( rxListener );
1070 mpImpl->getFocusListeners().removeInterface( rxListener );
1078 mpImpl->getKeyListeners().addInterface( rxListener );
1086 mpImpl->getKeyListeners().removeInterface( rxListener );
1094 mpImpl->getMouseListeners().addInterface( rxListener );
1102 mpImpl->getMouseListeners().removeInterface( rxListener );
1110 mpImpl->getMouseMotionListeners().addInterface( rxListener );
1118 mpImpl->getMouseMotionListeners().removeInterface( rxListener );
1126 mpImpl->getPaintListeners().addInterface( rxListener );
1134 mpImpl->getPaintListeners().removeInterface( rxListener );
1166 if ( ( eWinType == WindowType::WINDOW ) ||
1167 ( eWinType == WindowType::WORKWINDOW ) ||
1168 ( eWinType == WindowType::FLOATINGWINDOW ) )
1196 bool bIsChild =
false;
1201 bIsChild = pPeerWindow && pWindow->IsChild( pPeerWindow );
1211 mpImpl->mbDesignMode = bOn;
1217 return mpImpl->mbDesignMode;
1246void VCLXWindow::getStyles( sal_Int16 nType, css::awt::FontDescriptor& Font, sal_Int32& ForegroundColor, sal_Int32& BackgroundColor )
1257 case css::awt::Style::FRAME:
1264 case css::awt::Style::DIALOG:
1271 default: OSL_FAIL(
"VCLWindow::getStyles() - unknown Type" );
1280 sal_Int32 nColor = 0;
1281 if ( !( _rValue >>= nColor ) )
1299 va_start( pVarArgs, nFirstId );
1302 nId = va_arg( pVarArgs,
int ) )
1303 rIds.push_back(
static_cast<sal_uInt16
>(
nId) );
1350 return mpImpl->getContainerListeners();
1355 return mpImpl->getTopWindowListeners();
1360 void lcl_updateWritingMode(
vcl::Window& _rWindow,
const sal_Int16 _nWritingMode,
const sal_Int16 _nContextWritingMode )
1362 bool bEnableRTL =
false;
1363 switch ( _nWritingMode )
1365 case WritingMode2::LR_TB: bEnableRTL =
false;
break;
1366 case WritingMode2::RL_TB: bEnableRTL =
true;
break;
1367 case WritingMode2::CONTEXT:
1372 switch ( _nContextWritingMode )
1374 case WritingMode2::LR_TB: bEnableRTL =
false;
break;
1375 case WritingMode2::RL_TB: bEnableRTL =
true;
break;
1376 case WritingMode2::CONTEXT:
1379 OSL_ENSURE( pParent,
"lcl_updateWritingMode: cannot determine context's writing mode!" );
1388 OSL_FAIL(
"lcl_updateWritingMode: unsupported WritingMode!" );
1403 bool bVoid =
Value.getValueType().getTypeClass() == css::uno::TypeClass_VOID;
1407 switch ( nPropType )
1412 OSL_ENSURE( pControl,
"VCLXWindow::setProperty( RefDevice ): need a Control for this!" );
1415 Reference< XDevice > xDevice(
Value, UNO_QUERY );
1423 OSL_VERIFY(
Value >>=
mpImpl->mnContextWritingMode );
1424 if (
mpImpl->mnWritingMode == WritingMode2::CONTEXT )
1425 lcl_updateWritingMode( *pWindow,
mpImpl->mnWritingMode,
mpImpl->mnContextWritingMode );
1431 bool bProperType = (
Value >>=
mpImpl->mnWritingMode );
1432 OSL_ENSURE( bProperType,
"VCLXWindow::setProperty( 'WritingMode' ): illegal value type!" );
1434 lcl_updateWritingMode( *pWindow,
mpImpl->mnWritingMode,
mpImpl->mnContextWritingMode );
1440 sal_uInt16 nWheelBehavior( css::awt::MouseWheelBehavior::SCROLL_FOCUS_ONLY );
1441 OSL_VERIFY(
Value >>= nWheelBehavior );
1447 switch ( nWheelBehavior )
1449 case css::awt::MouseWheelBehavior::SCROLL_DISABLED: nVclBehavior = MouseWheelBehaviour::Disable;
break;
1450 case css::awt::MouseWheelBehavior::SCROLL_FOCUS_ONLY: nVclBehavior = MouseWheelBehaviour::FocusOnly;
break;
1451 case css::awt::MouseWheelBehavior::SCROLL_ALWAYS: nVclBehavior = MouseWheelBehaviour::ALWAYS;
break;
1453 OSL_FAIL(
"VCLXWindow::setProperty( 'MouseWheelBehavior' ): illegal property value!" );
1458 pWindow->SetSettings( aSettings,
true );
1464 bool bEnable(
true );
1465 OSL_VERIFY(
Value >>= bEnable );
1466 pWindow->EnableNativeWidget( bEnable );
1489 if( b !=
mpImpl->isEnableVisible() )
1491 mpImpl->setEnableVisible( b );
1492 pWindow->Show( b &&
mpImpl->isDirectVisible() );
1502 if (
Value >>= aText )
1506 case WindowType::OKBUTTON:
1507 case WindowType::CANCELBUTTON:
1508 case WindowType::HELPBUTTON:
1510 if (!aText.isEmpty())
1511 pWindow->SetText( aText );
1515 pWindow->SetText( aText );
1524 if (
Value >>= aText )
1525 pWindow->SetAccessibleName( aText );
1534 if ( aHelpURL.
GetProtocol() == INetProtocol::Hid )
1537 pWindow->SetHelpId(
aURL );
1544 if (
Value >>= aHelpText )
1546 pWindow->SetQuickHelpText( aHelpText );
1556 css::awt::FontDescriptor aFont;
1557 if (
Value >>= aFont )
1564 sal_Int16
n = sal_Int16();
1567 vcl::Font aFont = pWindow->GetControlFont();
1569 pWindow->SetControlFont( aFont );
1575 sal_Int16
n = sal_Int16();
1578 vcl::Font aFont = pWindow->GetControlFont();
1580 pWindow->SetControlFont( aFont );
1590 case WindowType::DIALOG:
1591 case WindowType::MESSBOX:
1592 case WindowType::INFOBOX:
1593 case WindowType::WARNINGBOX:
1594 case WindowType::ERRORBOX:
1595 case WindowType::QUERYBOX:
1596 case WindowType::TABPAGE:
1598 Color aColor = pWindow->GetSettings().GetStyleSettings().GetDialogColor();
1599 pWindow->SetBackground( aColor );
1600 pWindow->SetControlBackground( aColor );
1604 case WindowType::FIXEDTEXT:
1605 case WindowType::CHECKBOX:
1606 case WindowType::RADIOBUTTON:
1607 case WindowType::GROUPBOX:
1608 case WindowType::FIXEDLINE:
1611 pWindow->SetBackground();
1612 pWindow->SetControlBackground();
1613 pWindow->SetPaintTransparent(
true );
1623 if ( pWindow->IsCompoundControl() )
1624 pWindow->SetBackground();
1625 pWindow->SetControlBackground();
1633 if (
Value >>= aColor )
1635 pWindow->SetControlBackground( aColor );
1636 pWindow->SetBackground( aColor );
1640 case WindowType::FIXEDTEXT:
1641 case WindowType::CHECKBOX:
1642 case WindowType::RADIOBUTTON:
1643 case WindowType::GROUPBOX:
1644 case WindowType::FIXEDLINE:
1645 pWindow->SetPaintTransparent(
false );
1650 pWindow->Invalidate();
1657 pWindow->SetControlForeground();
1662 if (
Value >>= nColor )
1664 pWindow->SetTextColor( nColor );
1665 pWindow->SetControlForeground( nColor );
1672 pWindow->SetTextLineColor();
1677 if (
Value >>= nColor )
1678 pWindow->SetTextLineColor( nColor );
1683 pWindow->GetOutDev()->SetFillColor();
1687 if (
Value >>= nColor )
1688 pWindow->GetOutDev()->SetFillColor( nColor );
1693 pWindow->GetOutDev()->SetLineColor();
1697 if (
Value >>= nColor )
1698 pWindow->GetOutDev()->SetLineColor( nColor );
1710 if (!(
Value >>= nColor))
1718 pWindow->SetSettings(aSettings);
1730 if (!(
Value >>= nColor))
1738 pWindow->SetSettings(aSettings);
1743 WinBits nStyle = pWindow->GetStyle();
1744 sal_uInt16 nTmp = 0;
1751 pWindow->SetStyle( nStyle & ~
WB_BORDER );
1755 pWindow->SetStyle( nStyle |
WB_BORDER );
1756 pWindow->SetBorderStyle(
nBorder );
1762 WinBits nStyle = pWindow->GetStyle() & ~WB_TABSTOP;
1772 pWindow->SetStyle( nStyle );
1777 VerticalAlignment eAlign = css::style::VerticalAlignment::VerticalAlignment_MAKE_FIXED_SIZE;
1778 WinBits nStyle = pWindow->GetStyle();
1784 case VerticalAlignment_TOP:
1787 case VerticalAlignment_MIDDLE:
1790 case VerticalAlignment_BOTTOM:
1795 pWindow->SetStyle( nStyle );
1803 case WindowType::COMBOBOX:
1804 case WindowType::PUSHBUTTON:
1805 case WindowType::OKBUTTON:
1806 case WindowType::CANCELBUTTON:
1807 case WindowType::HELPBUTTON:
1810 case WindowType::FIXEDTEXT:
1811 case WindowType::EDIT:
1812 case WindowType::MULTILINEEDIT:
1813 case WindowType::CHECKBOX:
1814 case WindowType::RADIOBUTTON:
1815 case WindowType::LISTBOX:
1817 WinBits nStyle = pWindow->GetStyle();
1827 pWindow->SetStyle( nStyle );
1836 if ( ( eWinType == WindowType::FIXEDTEXT )
1837 || ( eWinType == WindowType::CHECKBOX )
1838 || ( eWinType == WindowType::RADIOBUTTON )
1839 || ( eWinType == WindowType::PUSHBUTTON )
1840 || ( eWinType == WindowType::OKBUTTON )
1841 || ( eWinType == WindowType::CANCELBUTTON )
1842 || ( eWinType == WindowType::HELPBUTTON )
1845 WinBits nStyle = pWindow->GetStyle();
1846 bool bMulti =
false;
1851 nStyle &= ~WB_WORDBREAK;
1852 pWindow->SetStyle( nStyle );
1858 if ( eWinType == WindowType::FIXEDLINE)
1860 sal_Int32 nOrientation = 0;
1861 if (
Value >>= nOrientation )
1863 WinBits nStyle = pWindow->GetStyle();
1865 if ( nOrientation == 0 )
1870 pWindow->SetStyle( nStyle );
1877 bool bAutoMnemonics =
false;
1878 Value >>= bAutoMnemonics;
1885 pWindow->SetSettings( aSettings );
1891 bool bMouseTransparent =
false;
1892 Value >>= bMouseTransparent;
1893 pWindow->SetMouseTransparent( bMouseTransparent );
1898 bool bPaintTransparent =
false;
1899 Value >>= bPaintTransparent;
1900 pWindow->SetPaintTransparent( bPaintTransparent );
1907 bool bRepeat(
false );
1910 WinBits nStyle = pWindow->GetStyle();
1914 nStyle &= ~WB_REPEAT;
1915 pWindow->SetStyle( nStyle );
1921 sal_Int32 nRepeatDelay = 0;
1922 if (
Value >>= nRepeatDelay )
1930 pWindow->SetSettings( aSettings,
true );
1949 css::uno::Any aProp;
1952 if (PropertyName ==
"ParentIs100thmm")
1954 bool bParentIs100thmm =
false;
1958 pWindow = pWindow->GetParent();
1959 if(pWindow && MapUnit::Map100thMM == pWindow->GetMapMode().GetMapUnit())
1961 bParentIs100thmm =
true;
1964 aProp <<= bParentIs100thmm;
1969 switch ( nPropType )
1974 OSL_ENSURE( pControl,
"VCLXWindow::setProperty( RefDevice ): need a Control for this!" );
1979 pDevice->SetOutputDevice( pControl->GetReferenceDevice() );
1980 aProp <<= Reference< XDevice >( pDevice );
1985 aProp <<=
mpImpl->mnContextWritingMode;
1989 aProp <<=
mpImpl->mnWritingMode;
1995 sal_uInt16 nBehavior = css::awt::MouseWheelBehavior::SCROLL_FOCUS_ONLY;
1996 switch ( nVclBehavior )
1998 case MouseWheelBehaviour::Disable: nBehavior = css::awt::MouseWheelBehavior::SCROLL_DISABLED;
break;
1999 case MouseWheelBehaviour::FocusOnly: nBehavior = css::awt::MouseWheelBehavior::SCROLL_FOCUS_ONLY;
break;
2000 case MouseWheelBehaviour::ALWAYS: nBehavior = css::awt::MouseWheelBehavior::SCROLL_ALWAYS;
break;
2002 OSL_FAIL(
"VCLXWindow::getProperty( 'MouseWheelBehavior' ): illegal VCL value!" );
2004 aProp <<= nBehavior;
2017 aProp <<=
mpImpl->isEnableVisible();
2061 aProp <<= static_cast<sal_Int16>(
GetWindow()->GetControlFont().GetRelief());
2064 aProp <<= static_cast<sal_Int16>(
GetWindow()->GetControlFont().GetEmphasisMark());
2089 aProp <<= static_cast<sal_uInt16>(
nBorder);
2099 aProp <<= VerticalAlignment_TOP;
2101 aProp <<= VerticalAlignment_MIDDLE;
2103 aProp <<= VerticalAlignment_BOTTOM;
2110 case WindowType::FIXEDTEXT:
2111 case WindowType::EDIT:
2112 case WindowType::MULTILINEEDIT:
2113 case WindowType::CHECKBOX:
2114 case WindowType::RADIOBUTTON:
2115 case WindowType::LISTBOX:
2116 case WindowType::COMBOBOX:
2117 case WindowType::PUSHBUTTON:
2118 case WindowType::OKBUTTON:
2119 case WindowType::CANCELBUTTON:
2120 case WindowType::HELPBUTTON:
2137 if ( ( eWinType == WindowType::FIXEDTEXT )
2138 || ( eWinType == WindowType::CHECKBOX )
2139 || ( eWinType == WindowType::RADIOBUTTON )
2140 || ( eWinType == WindowType::PUSHBUTTON )
2141 || ( eWinType == WindowType::OKBUTTON )
2142 || ( eWinType == WindowType::CANCELBUTTON )
2143 || ( eWinType == WindowType::HELPBUTTON )
2151 aProp <<= bAutoMnemonics;
2157 aProp <<= bMouseTransparent;
2163 aProp <<= bPaintTransparent;
2174 aProp <<= nButtonRepeat;
2205 case WindowType::CONTROL:
2210 case WindowType::PATTERNBOX:
2211 case WindowType::NUMERICBOX:
2212 case WindowType::METRICBOX:
2213 case WindowType::CURRENCYBOX:
2214 case WindowType::DATEBOX:
2215 case WindowType::TIMEBOX:
2216 case WindowType::LONGCURRENCYBOX:
2220 case WindowType::SCROLLBARBOX:
2227 return css::awt::Size( aSz.
Width(), aSz.
Height() );
2239 css::awt::Size aNewSize( rNewSize );
2242 if ( aNewSize.Width < aMinSize.Width )
2243 aNewSize.Width = aMinSize.Width;
2244 if ( aNewSize.Height < aMinSize.Height )
2245 aNewSize.Height = aMinSize.Height;
2257 mpImpl->mxViewGraphics = rxDevice;
2259 mpImpl->mxViewGraphics =
nullptr;
2261 return mpImpl->mxViewGraphics.is();
2268 return mpImpl->mxViewGraphics;
2278 return css::awt::Size( aSz.
Width(), aSz.
Height() );
2294 pDev = pWindow->GetParent()->GetOutDev();
2298 Point aPos( nX, nY );
2300 pTabPage->
Draw( pDev, aPos, SystemTextColorFlags::NONE );
2304 Point aPos( nX, nY );
2306 if ( pWindow->GetParent() && !pWindow->IsSystemWindow() && ( pWindow->GetParent()->GetOutDev() == pDev ) )
2313 if ( !
mpImpl->getDrawingOntoParent_ref() )
2317 bool bWasVisible = pWindow->IsVisible();
2318 Point aOldPos( pWindow->GetPosPixel() );
2320 if ( bWasVisible && aOldPos == aPos )
2322 pWindow->PaintImmediately();
2326 pWindow->SetPosPixel( aPos );
2331 if( pWindow->GetParent() )
2332 pWindow->GetParent()->PaintImmediately();
2335 pWindow->PaintImmediately();
2336 pWindow->SetParentUpdateMode(
false );
2338 pWindow->SetParentUpdateMode(
true );
2340 pWindow->SetPosPixel( aOldPos );
2352 || ( pPDFExport !=
nullptr );
2355 pWindow->Draw( pDev, aP, SystemTextColorFlags::NoControls );
2359 bool bOldNW =pWindow->IsNativeWidgetEnabled();
2361 pWindow->EnableNativeWidget(
false);
2362 pWindow->PaintToDevice( pDev, aP );
2364 pWindow->EnableNativeWidget();
2378 double nZoom( fZoomX );
2379 Fraction aZoom(::rtl::math::round(nZoom, 4));
2394 uno::Reference< uno::XInterface > aAC(
mpImpl->mxAccessibleContext, uno::UNO_QUERY );
2395 uno::Reference< uno::XInterface > xSource( _rSource.Source, uno::UNO_QUERY );
2397 if ( aAC.get() == xSource.get() )
2399 mpImpl->mxAccessibleContext.clear();
2410 return uno::Reference< accessibility::XAccessibleContext >();
2419 uno::Reference< lang::XComponent > xComp(
mpImpl->mxAccessibleContext, uno::UNO_QUERY );
2421 xComp->addEventListener(
this );
2424 return mpImpl->mxAccessibleContext;
2432 if (!
mpImpl->mbDisposing && xListener.is() )
2433 mpImpl->getDockableWindowListeners().addInterface( xListener );
2441 if (!
mpImpl->mbDisposing)
2442 mpImpl->getDockableWindowListeners().removeInterface( xListener );
2451 pWindow->EnableDocking( bEnable );
2521 pWindow->SetOutputSizePixel(
VCLSize( aSize ) );
2528 return AWTSize( pWindow->GetOutputSizePixel() );
2530 return css::awt::Size();
2576 if (
mpImpl->mpPropHelper ==
nullptr )
2578 std::vector< sal_uInt16 > aIDs;
2582 return mpImpl->mpPropHelper.get();
2585css::uno::Sequence< css::beans::Property > SAL_CALL
2590css::beans::Property SAL_CALL
2604 return mpImpl->getStyleSettings();
2609 return mpImpl->mbDisposing;
const MouseSettings & GetMouseSettings() const
void SetMouseSettings(const MouseSettings &rSet)
const StyleSettings & GetStyleSettings() const
void SetStyleSettings(const StyleSettings &rSet)
static css::uno::Reference< css::awt::XToolkit > GetVCLToolkit()
static const AllSettings & GetSettings()
static ImplSVEvent * PostUserEvent(const Link< void *, void > &rLink, void *pCaller=nullptr, bool bReferenceLink=false)
static void RemoveUserEvent(ImplSVEvent *nUserEvent)
static vcl::Window * GetFocusWindow()
CommandEventId GetCommand() const
bool IsMouseEvent() const
void SetReferenceDevice(OutputDevice *_referenceDevice)
void Lock(const vcl::Window *pWin)
bool IsFloating(const vcl::Window *pWin)
void Unlock(const vcl::Window *pWin)
void SetFloatingMode(const vcl::Window *pWin, bool bFloating)
void SetPosSizePixel(vcl::Window const *pWin, tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, PosSizeFlags nFlags)
bool IsLocked(const vcl::Window *pWin)
void ReduceInaccurate(unsigned nSignificantBits)
OUString GetURLPath(DecodeMechanism eMechanism=DecodeMechanism::ToIUri, rtl_TextEncoding eCharset=RTL_TEXTENCODING_UTF8) const
INetProtocol GetProtocol() const
bool IsEnterWindow() const
MouseEventModifiers GetMode() const
bool IsLeaveWindow() const
sal_Int32 GetButtonRepeat() const
void SetWheelBehavior(MouseWheelBehaviour nBehavior)
MouseWheelBehaviour GetWheelBehavior() const
void SetButtonRepeat(sal_Int32 nRepeat)
SAL_WARN_UNUSED_RESULT Point PixelToLogic(const Point &rDevicePt) const
vcl::ExtOutDevData * GetExtOutDevData() const
OutDevViewType GetOutDevViewType() const
const Color & GetLineColor() const
OutDevType GetOutDevType() const
const Color & GetFillColor() const
constexpr tools::Long Y() const
constexpr tools::Long X() const
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
const Color & GetMonoColor() const
const Color & GetWindowColor() const
const Color & GetDialogTextColor() const
bool GetHighContrastMode() const
void SetHighlightTextColor(const Color &rColor)
const Color & GetWindowTextColor() const
void SetAutoMnemonic(bool bAutoMnemonic)
void SetHighlightColor(const Color &rColor)
void SetMonoColor(const Color &rColor)
const Color & GetDialogColor() const
void SetButtonTextColor(const Color &rColor)
const Color & GetHighlightColor() const
const vcl::Font & GetAppFont() const
bool GetAutoMnemonic() const
const Color & GetHighlightTextColor() const
const Color & GetButtonTextColor() const
virtual void Draw(OutputDevice *pDev, const Point &rPos, SystemTextColorFlags nFlags) override
sal_Bool SAL_CALL hasPropertyByName(const OUString &rPropertyName) override
css::uno::Sequence< css::beans::Property > SAL_CALL getProperties() override
css::beans::Property SAL_CALL getPropertyByName(const OUString &rPropertyName) override
static css::awt::FontDescriptor CreateFontDescriptor(const vcl::Font &rFont)
convert Font to css::awt::FontDescriptor
static css::awt::KeyEvent createKeyEvent(const ::KeyEvent &_rVclEvent, const css::uno::Reference< css::uno::XInterface > &_rxContext)
static OutputDevice * GetOutputDevice(const css::uno::Reference< css::awt::XDevice > &rxDevice)
static css::awt::MouseEvent createMouseEvent(const ::MouseEvent &_rVclEvent, const css::uno::Reference< css::uno::XInterface > &_rxContext)
static vcl::Font CreateFont(const css::awt::FontDescriptor &rDescr, const vcl::Font &rInitFont)
static vcl::Window * GetWindow(const css::uno::Reference< css::awt::XWindow > &rxWindow)
A UNO wrapper for the VCL OutputDevice.
PointerStyle GetPointer() const
CallbackArray maCallbackEvents
bool isDirectVisible() const
PaintListenerMultiplexer maPaintListeners
TopWindowListenerMultiplexer maTopWindowListeners
::toolkit::AccessibilityClient & getAccessibleFactory()
::std::vector< VCLXWindow::Callback > CallbackArray
WindowListenerMultiplexer & getWindowListeners()
::osl::Mutex maListenerContainerMutex
::comphelper::OInterfaceContainerHelper3< XDockableWindowListener > maDockableWindowListeners
VCLXWindowImpl(VCLXWindow &_rAntiImpl, bool _bWithDefaultProps)
ctor
::comphelper::OInterfaceContainerHelper3< XDockableWindowListener > & getDockableWindowListeners()
FocusListenerMultiplexer & getFocusListeners()
WindowListenerMultiplexer maWindowListeners
Reference< XStyleSettings > getStyleSettings()
const VCLXWindowImpl & operator=(const VCLXWindowImpl &)=delete
css::uno::Reference< css::awt::XGraphics > mxViewGraphics
PaintListenerMultiplexer & getPaintListeners()
TopWindowListenerMultiplexer & getTopWindowListeners()
bool isEnableVisible() const
::comphelper::OInterfaceContainerHelper3< css::awt::XWindowListener2 > maWindow2Listeners
KeyListenerMultiplexer & getKeyListeners()
EventListenerMultiplexer maEventListeners
MouseListenerMultiplexer maMouseListeners
css::uno::Reference< css::awt::XStyleSettings > mxWindowStyleSettings
MouseMotionListenerMultiplexer maMouseMotionListeners
void disposing()
notifies the object that its VCLXWindow is being disposed
void setEnableVisible(bool bEnableVisible)
synchronously mbEnableVisible
css::uno::Reference< css::accessibility::XAccessibleContext > mxAccessibleContext
std::unique_ptr< UnoPropertyArrayHelper > mpPropHelper
KeyListenerMultiplexer maKeyListeners
sal_Int16 mnContextWritingMode
bool & getDrawingOntoParent_ref()
MouseMotionListenerMultiplexer & getMouseMotionListeners()
EventListenerMultiplexer & getEventListeners()
MouseListenerMultiplexer & getMouseListeners()
bool mbSynthesizingVCLEvent
void callBackAsync(const VCLXWindow::Callback &i_callback)
impl-version of VCLXWindow::ImplExecuteAsyncWithoutSolarLock
ImplSVEvent * mnCallbackEventId
FocusListenerMultiplexer maFocusListeners
sal_uLong mnListenerLockLevel
void setDirectVisible(bool bDirectVisible)
synchronously mbDirectVisible;
::comphelper::OInterfaceContainerHelper3< css::awt::XWindowListener2 > & getWindow2Listeners()
returns the container of registered XWindowListener2 listeners
::toolkit::AccessibilityClient maAccFactory
VclContainerListenerMultiplexer maContainerListeners
VclContainerListenerMultiplexer & getContainerListeners()
DECL_LINK(OnProcessCallbacks, void *, void)
VCLXWindowImpl(const VCLXWindowImpl &)=delete
void SAL_CALL addWindowListener(const css::uno::Reference< css::awt::XWindowListener > &rrxListener) override
void SAL_CALL removePaintListener(const css::uno::Reference< css::awt::XPaintListener > &rrxListener) override
void SAL_CALL setControlFont(const css::awt::FontDescriptor &aFont) override
virtual ~VCLXWindow() override
void SAL_CALL setFocus() override
void suspendVclEventListening()
void SAL_CALL setVisible(sal_Bool Visible) override
css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext() override
UnoPropertyArrayHelper * GetPropHelper()
bool IsSynthesizingVCLEvent() const
std::unique_ptr< VCLXWindowImpl > mpImpl
ListenerMultiplexerBase< css::awt::XTopWindowListener > & GetTopWindowListeners()
css::awt::Size SAL_CALL getMinimumSize() override
virtual css::uno::Reference< css::accessibility::XAccessibleContext > CreateAccessibleContext()
sal_Bool SAL_CALL isFloating() override
vcl::Window * GetWindow() const
css::uno::Reference< css::awt::XToolkit > SAL_CALL getToolkit() override
void SAL_CALL addMouseListener(const css::uno::Reference< css::awt::XMouseListener > &rrxListener) override
virtual void ProcessWindowEvent(const VclWindowEvent &rVclWindowEvent)
void SAL_CALL removeEventListener(const css::uno::Reference< css::lang::XEventListener > &rxListener) override
void SAL_CALL setOutputSize(const css::awt::Size &aSize) override
void SAL_CALL setPosSize(sal_Int32 X, sal_Int32 Y, sal_Int32 Width, sal_Int32 Height, sal_Int16 Flags) override
void SAL_CALL setPointer(const css::uno::Reference< css::awt::XPointer > &Pointer) override
sal_Bool SAL_CALL hasPropertyByName(const OUString &Name) override
virtual void GetPropertyIds(std::vector< sal_uInt16 > &aIds)
void SAL_CALL invalidate(sal_Int16 Flags) override
ListenerMultiplexerBase< css::awt::XVclContainerListener > & GetContainerListeners()
void SAL_CALL removeMouseMotionListener(const css::uno::Reference< css::awt::XMouseMotionListener > &rrxListener) override
css::awt::Size SAL_CALL getSize() override
void SAL_CALL addKeyListener(const css::uno::Reference< css::awt::XKeyListener > &rrxListener) override
virtual void SetWindow(const VclPtr< vcl::Window > &pWindow)
void SAL_CALL lock() override
void SAL_CALL addPaintListener(const css::uno::Reference< css::awt::XPaintListener > &rrxListener) override
void SAL_CALL addMouseMotionListener(const css::uno::Reference< css::awt::XMouseMotionListener > &rrxListener) override
void SAL_CALL startPopupMode(const css::awt::Rectangle &WindowRect) override
void SAL_CALL getStyles(sal_Int16 nType, css::awt::FontDescriptor &Font, sal_Int32 &ForegroundColor, sal_Int32 &BackgroundColor) override
void SAL_CALL setEnable(sal_Bool Enable) override
sal_Bool SAL_CALL isEnabled() override
Size ImplCalcWindowSize(const Size &rOutSz) const
static void ImplGetPropertyIds(std::vector< sal_uInt16 > &aIds, bool bWithDefaults=false)
void SAL_CALL setDesignMode(sal_Bool bOn) override
void SAL_CALL invalidateRect(const css::awt::Rectangle &Rect, sal_Int16 Flags) override
css::awt::Rectangle SAL_CALL getPosSize() override
sal_Bool SAL_CALL isVisible() override
virtual css::uno::Reference< css::awt::XStyleSettings > SAL_CALL getStyleSettings() override
void SAL_CALL removeKeyListener(const css::uno::Reference< css::awt::XKeyListener > &rrxListener) override
css::uno::Reference< css::awt::XGraphics > SAL_CALL getGraphics() override
css::awt::Size SAL_CALL getPreferredSize() override
void SAL_CALL setFloatingMode(sal_Bool bFloating) override
css::uno::Any SAL_CALL getProperty(const OUString &PropertyName) override
sal_Bool SAL_CALL isInPopupMode() override
void SAL_CALL unlock() override
void SAL_CALL enableDocking(sal_Bool bEnable) override
void SAL_CALL addDockableWindowListener(const css::uno::Reference< css::awt::XDockableWindowListener > &xListener) override
static void PushPropertyIds(std::vector< sal_uInt16 > &aIds, int nFirstId,...)
void SetSynthesizingVCLEvent(bool b)
void SAL_CALL addFocusListener(const css::uno::Reference< css::awt::XFocusListener > &rrxListener) override
void SetSystemParent_Impl(const css::uno::Any &rHandle)
helper method to set a window handle into a SystemParentData struct
void resumeVclEventListening()
void SAL_CALL setProperty(const OUString &PropertyName, const css::uno::Any &Value) override
sal_Bool SAL_CALL isLocked() override
sal_Bool SAL_CALL setGraphics(const css::uno::Reference< css::awt::XGraphics > &aDevice) override
virtual void SAL_CALL disposing(const css::lang::EventObject &Source) override
::toolkit::IAccessibleFactory & getAccessibleFactory()
css::beans::Property SAL_CALL getPropertyByName(const OUString &aName) override
void ImplExecuteAsyncWithoutSolarLock(const Callback &i_callback)
executes the given callback asynchronously
void SAL_CALL setBackground(sal_Int32 Color) override
css::uno::Sequence< css::beans::Property > SAL_CALL getProperties() override
VCLXWindow(bool bWithDefaultProps=false)
::std::function< void()> Callback
void SAL_CALL addEventListener(const css::uno::Reference< css::lang::XEventListener > &rxListener) override
void SAL_CALL draw(sal_Int32 nX, sal_Int32 nY) override
void SAL_CALL removeDockableWindowListener(const css::uno::Reference< css::awt::XDockableWindowListener > &xListener) override
sal_Bool SAL_CALL hasFocus() override
css::awt::Size SAL_CALL calcAdjustedSize(const css::awt::Size &aNewSize) override
void SAL_CALL removeMouseListener(const css::uno::Reference< css::awt::XMouseListener > &rrxListener) override
sal_Bool SAL_CALL isDesignMode() override
css::awt::Size SAL_CALL getOutputSize() override
void SAL_CALL enableClipSiblings(sal_Bool bClip) override
void SAL_CALL removeWindowListener(const css::uno::Reference< css::awt::XWindowListener > &rrxListener) override
void SAL_CALL setZoom(float fZoomX, float fZoomY) override
void SAL_CALL setForeground(sal_Int32 Color) override
void SAL_CALL removeFocusListener(const css::uno::Reference< css::awt::XFocusListener > &rrxListener) override
sal_Bool SAL_CALL isChild(const css::uno::Reference< css::awt::XWindowPeer > &Peer) override
void SAL_CALL dispose() override
void notifyWindowRemoved(vcl::Window const &_rWindow)
sal_Bool SAL_CALL isActive() override
reference_type * get() const
vcl::Window * GetWindow() const
void disposeAndClear(const css::lang::EventObject &rEvt)
bool hasMoreElements() const
css::uno::Reference< ListenerT > const & next()
void SetRelief(FontRelief)
void SetEmphasisMark(FontEmphasisMark)
bool IsNativeWidgetEnabled() const
vcl::Window * GetParent() const
GetFocusFlags GetGetFocusFlags() const
void RemoveEventListener(const Link< VclWindowEvent &, void > &rEventListener)
void SetControlForeground()
bool IsPaintTransparent() const
WindowType GetType() const
VCLXWindow * GetWindowPeer() const
static DockingManager * GetDockingManager()
void GetBorder(sal_Int32 &rLeftBorder, sal_Int32 &rTopBorder, sal_Int32 &rRightBorder, sal_Int32 &rBottomBorder) const
Size get_preferred_size() const
vcl::Window * GetWindow(GetWindowType nType) const
const Color & GetControlForeground() const
bool IsCompoundControl() const
void SetControlBackground()
const Color & GetTextLineColor() const
virtual Point GetPosPixel() const
virtual void EnableRTL(bool bEnable=true)
const AllSettings & GetSettings() const
const OUString & GetHelpId() const
vcl::Font GetControlFont() const
::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
void SetSettings(const AllSettings &rSettings)
void AddEventListener(const Link< VclWindowEvent &, void > &rEventListener)
void SetZoom(const Fraction &rZoom)
virtual css::uno::Reference< css::awt::XVclWindowPeer > GetComponentInterface(bool bCreate=true)
bool IsRTLEnabled() const
virtual Size GetSizePixel() const
WindowBorderStyle GetBorderStyle() const
const Color & GetControlBackground() const
virtual void SetPointer(PointerStyle)
OUString GetAccessibleName() const
void EnableClipSiblings(bool bClipSiblings=true)
void Invalidate(InvalidateFlags nFlags=InvalidateFlags::NONE)
virtual OUString GetText() const
bool IsMenuFloatingWindow() const
const OUString & GetQuickHelpText() const
bool IsMouseTransparent() const
css::awt::Size AWTSize(const Size &rVCLSize)
css::awt::Rectangle AWTRectangle(const ::tools::Rectangle &rVCLRect)
inline ::tools::Rectangle VCLRectangle(const css::awt::Rectangle &rAWTRect)
inline ::Size VCLSize(const css::awt::Size &rAWTSize)
#define DBG_ASSERT(sCon, aError)
#define DBG_TESTSOLARMUTEX()
#define LINK(Instance, Class, Member)
#define SAL_INFO(area, stream)
std::unique_ptr< sal_Int32[]> pData
tools::Long const nBorder
sal_uInt16 GetPropertyId(const OUString &rPropertyName)
#define BASEPROPERTY_MULTILINE
#define BASEPROPERTY_PLUGINPARENT
#define BASEPROPERTY_TEXTLINECOLOR
#define BASEPROPERTY_ACCESSIBLENAME
#define BASEPROPERTY_BORDER
#define BASEPROPERTY_PAINTTRANSPARENT
#define BASEPROPERTY_MOUSE_WHEEL_BEHAVIOUR
#define BASEPROPERTY_FILLCOLOR
#define BASEPROPERTY_NATIVE_WIDGET_LOOK
#define BASEPROPERTY_ORIENTATION
#define BASEPROPERTY_CONTEXT_WRITING_MODE
#define BASEPROPERTY_HIGHLIGHT_COLOR
#define BASEPROPERTY_TEXT
#define BASEPROPERTY_MOUSETRANSPARENT
#define BASEPROPERTY_TITLE
#define BASEPROPERTY_ALIGN
#define BASEPROPERTY_HELPURL
#define BASEPROPERTY_REPEAT
#define BASEPROPERTY_SYMBOL_COLOR
#define BASEPROPERTY_HIGHCONTRASTMODE
#define BASEPROPERTY_BACKGROUNDCOLOR
#define BASEPROPERTY_LINECOLOR
#define BASEPROPERTY_TABSTOP
#define BASEPROPERTY_FONTRELIEF
#define BASEPROPERTY_ENABLED
#define BASEPROPERTY_DEFAULTCONTROL
#define BASEPROPERTY_VERTICALALIGN
#define BASEPROPERTY_WRITING_MODE
#define BASEPROPERTY_AUTOMNEMONICS
#define BASEPROPERTY_HIGHLIGHT_TEXT_COLOR
#define BASEPROPERTY_LABEL
#define BASEPROPERTY_BORDERCOLOR
#define BASEPROPERTY_FONTDESCRIPTOR
#define PROPERTY_ALIGN_CENTER
#define BASEPROPERTY_DISPLAYBACKGROUNDCOLOR
#define BASEPROPERTY_ENABLEVISIBLE
#define BASEPROPERTY_HELPTEXT
#define BASEPROPERTY_REFERENCE_DEVICE
#define BASEPROPERTY_NOTFOUND
#define BASEPROPERTY_FONTEMPHASISMARK
#define BASEPROPERTY_REPEAT_DELAY
#define BASEPROPERTY_TEXTCOLOR
#define PROPERTY_ALIGN_LEFT
#define BASEPROPERTY_PRINTABLE
#define PROPERTY_ALIGN_RIGHT
IMPL_LINK_NOARG(VCLXWindowImpl, OnProcessCallbacks, void *, void)
IMPL_LINK(VCLXWindow, WindowEventListener, VclWindowEvent &, rEvent, void)
static void ImplInitWindowEvent(css::awt::WindowEvent &rEvent, vcl::Window const *pWindow)
WinBits const WB_NOTABSTOP
WinBits const WB_WORDBREAK