27#include <awt/vclxwindows.hxx>
40 case WindowType::IMAGEBUTTON:
41 case WindowType::SPINBUTTON:
42 case WindowType::MENUBUTTON:
43 case WindowType::MOREBUTTON:
44 case WindowType::PUSHBUTTON:
45 case WindowType::HELPBUTTON:
46 case WindowType::OKBUTTON:
47 case WindowType::CANCELBUTTON:
return new VCLXButton;
54 case WindowType::METRICBOX:
57 case WindowType::SPINFIELD:
60 case WindowType::MULTILINEEDIT:
61 case WindowType::EDIT:
return new VCLXEdit;
63 case WindowType::MESSBOX:
64 case WindowType::INFOBOX:
65 case WindowType::WARNINGBOX:
66 case WindowType::QUERYBOX:
70 case WindowType::MULTILISTBOX:
72 case WindowType::DIALOG:
73 case WindowType::TABDIALOG:
74 case WindowType::BUTTONDIALOG:
75 case WindowType::MODELESSDIALOG:
return new VCLXDialog;
81 case WindowType::WORKWINDOW:
82 case WindowType::DOCKINGWINDOW:
83 case WindowType::FLOATINGWINDOW:
86 case WindowType::WINDOW:
149 css::uno::Reference< css::awt::XVclWindowPeer> xPeer = pWindow->
GetWindowPeer();
154 xVCLXWindow->SetWindow( pWindow );
168 assert( pVCLXWindow &&
"must be a VCLXWindow subclass" );
179 css::uno::Reference< css::awt::XVclWindowPeer> xPeer = pWindow->
GetWindowPeer();
182 bool bSameInstance( pVCLXWindow ==
dynamic_cast< VCLXWindow*
>( xPeer.get() ));
183 SAL_WARN_IF( !bSameInstance,
"toolkit.helper",
"UnoWrapper::SetWindowInterface: there is already a WindowPeer/ComponentInterface for this VCL window" );
200 pGrf->Init( pOutDev );
211 pGrf->SetOutputDevice(
nullptr );
219 vcl::Window* pWindow = ( pPossibleChild != pParentWindow ) ? pPossibleChild :
nullptr;
220 while ( pWindow && ( pWindow != pParentWindow ) )
223 return pWindow !=
nullptr;
236 if ( pClient && pClient->GetWindowPeer() )
238 css::uno::Reference< css::lang::XComponent > xComp = pClient->GetComponentInterface(
false );
255 pOverlap = pOverlap->GetWindow( GetWindowType::FirstOverlap );
261 if ( pClient && pClient->GetWindowPeer() &&
lcl_ImplIsParent( pWindow, pClient ) )
263 css::uno::Reference< css::lang::XComponent > xComp = pClient->GetComponentInterface(
false );
267 pOverlap = pNextOverlap;
273 if ( pParent && pParent->GetWindowPeer() )
274 pParent->GetWindowPeer()->notifyWindowRemoved( *pWindow );
279 OSL_ENSURE( ( pWindowPeer !=
nullptr ) == xWindowPeerComp.is(),
280 "UnoWrapper::WindowDestroyed: inconsistency in the window's peers!" );
286 if ( xWindowPeerComp.is() )
287 xWindowPeerComp->dispose();
296 while ( pTopWindowChild )
298 OSL_ENSURE( pTopWindowChild->GetParent() == pWindow,
299 "UnoWrapper::WindowDestroyed: inconsistency in the SystemWindow relationship!" );
301 VclPtr< vcl::Window > pNextTopChild = pTopWindowChild->GetWindow( GetWindowType::NextTopWindowSibling );
304 pTopWindowChild = pNextTopChild;
std::vector< VCLXGraphics * > * GetUnoGraphicsList() const
void WindowDestroyed(vcl::Window *pWindow) override
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessible(Menu *pMenu, bool bIsMenuBar) override
css::uno::Reference< css::awt::XToolkit > mxToolkit
virtual void SetWindowInterface(vcl::Window *pWindow, const css::uno::Reference< css::awt::XVclWindowPeer > &xIFace) override
UnoWrapper(const css::uno::Reference< css::awt::XToolkit > &rxToolkit)
virtual VclPtr< vcl::Window > GetWindow(const css::uno::Reference< css::awt::XWindow > &rxWindow) override
virtual css::uno::Reference< css::awt::XGraphics > CreateGraphics(OutputDevice *pOutDev) override
virtual css::uno::Reference< css::awt::XVclWindowPeer > GetWindowInterface(vcl::Window *pWindow) override
virtual void Destroy() override
virtual css::uno::Reference< css::awt::XToolkit > GetVCLToolkit() override
::toolkit::AccessibilityClient maAccessibleFactoryAccess
virtual void ReleaseAllGraphics(OutputDevice *pOutDev) override
virtual css::uno::Reference< css::awt::XPopupMenu > CreateMenuInterface(PopupMenu *pPopupMenu) override
static css::uno::Reference< css::awt::XToolkit > CreateToolkit()
static vcl::Window * GetWindow(const css::uno::Reference< css::awt::XWindow > &rxWindow)
virtual void SetWindow(const VclPtr< vcl::Window > &pWindow)
vcl::Window * GetParent() const
WindowType GetType() const
VCLXWindow * GetWindowPeer() const
vcl::Window * GetWindow(GetWindowType nType) const
virtual css::uno::Reference< css::awt::XVclWindowPeer > GetComponentInterface(bool bCreate=true)
void SetWindowPeer(css::uno::Reference< css::awt::XVclWindowPeer > const &xPeer, VCLXWindow *pVCLXWindow)
#define TOOLKIT_DLLPUBLIC
#define SAL_WARN_IF(condition, area, stream)
static rtl::Reference< VCLXWindow > CreateXWindow(vcl::Window const *pWindow)
static bool lcl_ImplIsParent(vcl::Window const *pParentWindow, vcl::Window *pPossibleChild)
TOOLKIT_DLLPUBLIC UnoWrapperBase * CreateUnoWrapper()