21#include <config_feature_desktop.h>
34#include <com/sun/star/beans/XPropertySet.hpp>
35#include <com/sun/star/beans/PropertyAttribute.hpp>
36#include <com/sun/star/frame/ModuleManager.hpp>
37#include <com/sun/star/frame/XModel.hpp>
38#include <com/sun/star/frame/FrameAction.hpp>
39#include <com/sun/star/awt/PosSize.hpp>
40#include <com/sun/star/awt/XDevice.hpp>
41#include <com/sun/star/ui/theModuleUIConfigurationManagerSupplier.hpp>
42#include <com/sun/star/ui/XUIConfigurationManagerSupplier.hpp>
43#include <com/sun/star/ui/theWindowStateConfiguration.hpp>
44#include <com/sun/star/ui/theUIElementFactoryManager.hpp>
45#include <com/sun/star/container/XNameReplace.hpp>
46#include <com/sun/star/container/XNameContainer.hpp>
47#include <com/sun/star/frame/LayoutManagerEvents.hpp>
48#include <com/sun/star/frame/XDispatchProvider.hpp>
49#include <com/sun/star/frame/DispatchHelper.hpp>
50#include <com/sun/star/lang/DisposedException.hpp>
51#include <com/sun/star/util/URLTransformer.hpp>
62#include <officecfg/Office/Compatibility.hxx>
89 ::
cppu::OBroadcastHelperVar< ::
cppu::OMultiTypeInterfaceContainerHelper, ::
cppu::OMultiTypeInterfaceContainerHelper::keyType >(
m_aMutex)
92 , m_xURLTransformer( URLTransformer::create(xContext) )
94 , m_bInplaceMenuSet( false )
95 , m_bMenuVisible( true )
97 , m_bParentWindowVisible( false )
98 , m_bMustDoLayout( true )
99#if HAVE_FEATURE_DESKTOP
100 , m_bAutomaticToolbars(
true )
102 , m_bAutomaticToolbars(
false )
104 , m_bHideCurrentUI(
false )
105 , m_bGlobalSettings(
false )
106 , m_bPreserveContentSize(
false )
107 , m_bMenuBarCloseButton(
false )
108 , m_xModuleManager( ModuleManager::create( xContext ))
109 , m_xUIElementFactoryManager( ui::theUIElementFactoryManager::get(xContext) )
110 , m_xPersistentWindowStateSupplier( ui::theWindowStateConfiguration::get( xContext ) )
111 , m_aAsyncLayoutTimer(
"framework::LayoutManager m_aAsyncLayoutTimer" )
115 m_aStatusBarElement.m_aType =
"statusbar";
120 m_xToolbarManager =
new ToolbarLayoutManager( xContext, Reference<XUIElementFactory>(m_xUIElementFactoryManager, UNO_QUERY_THROW),
this );
123 m_aAsyncLayoutTimer.SetPriority( TaskPriority::HIGH_IDLE );
124 m_aAsyncLayoutTimer.SetTimeout( 50 );
125 m_aAsyncLayoutTimer.SetInvokeHandler(
LINK(
this,
LayoutManager, AsyncLayoutHdl ) );
148 if (
m_aModuleIdentifier ==
"com.sun.star.text.TextDocument" && officecfg::Office::Compatibility::View::MSCompatibleFormsMenu::get())
165 Reference< awt::XMenuBar > xMenuBar;
167 Reference< XPropertySet > xPropSet(
m_xMenuBar, UNO_QUERY );
172 xPropSet->getPropertyValue(
"XMenuBar") >>= xMenuBar;
174 catch (
const beans::UnknownPropertyException&)
177 catch (
const lang::WrappedTargetException&)
182 if ( !xMenuBar.is() )
211 MenuBar* pSetMenuBar =
nullptr;
216 Reference< awt::XMenuBar > xMenuBar;
218 Reference< XPropertySet > xPropSet(
m_xMenuBar, UNO_QUERY );
223 xPropSet->getPropertyValue(
"XMenuBar") >>= xMenuBar;
225 catch (
const beans::UnknownPropertyException&)
228 catch (
const lang::WrappedTargetException&)
239 if ( pSetMenuBar == pTopMenuBar )
255 Reference< XComponent > xComp(
m_xMenuBar, UNO_QUERY );
281 Reference< XUIConfiguration > xModuleCfgMgr(
m_xModuleCfgMgr, UNO_QUERY );
282 Reference< XUIConfiguration > xDocCfgMgr(
m_xDocCfgMgr, UNO_QUERY );
284 Reference< XComponentContext > xContext(
m_xContext );
294 Reference< XModel >
xModel;
299 OUString aOldModuleIdentifier( aModuleIdentifier );
306 if ( !aModuleIdentifier.isEmpty() && aOldModuleIdentifier != aModuleIdentifier )
308 Reference< XModuleUIConfigurationManagerSupplier > xModuleCfgSupplier;
310 xModuleCfgSupplier = theModuleUIConfigurationManagerSupplier::get( xContext );
312 if ( xModuleCfgMgr.is() )
317 xModuleCfgMgr->removeConfigurationListener( Reference< XUIConfigurationListener >(
this) );
327 xModuleCfgMgr.set( xModuleCfgSupplier->getUIConfigurationManager( aModuleIdentifier ), UNO_QUERY );
328 if ( xModuleCfgMgr.is() )
329 xModuleCfgMgr->addConfigurationListener( Reference< XUIConfigurationListener >(
this) );
338 if ( xPersistentWindowStateSupplier.is() )
339 xPersistentWindowStateSupplier->getByName( aModuleIdentifier ) >>= xPersistentWindowState;
341 catch (
const NoSuchElementException&)
344 catch (
const WrappedTargetException&)
352 Reference< XUIConfigurationManagerSupplier > xUIConfigurationManagerSupplier(
xModel, UNO_QUERY );
353 if ( xUIConfigurationManagerSupplier.is() )
355 if ( xDocCfgMgr.is() )
360 xDocCfgMgr->removeConfigurationListener( Reference< XUIConfigurationListener >(
this) );
369 xDocCfgMgr.set( xUIConfigurationManagerSupplier->getUIConfigurationManager(), UNO_QUERY );
370 if ( xDocCfgMgr.is() )
371 xDocCfgMgr->addConfigurationListener( Reference< XUIConfigurationListener >(
this) );
382 if ( xModuleCfgMgr.is() )
386 xModuleCfgMgr->removeConfigurationListener(
387 Reference< XUIConfigurationListener >(
this) );
394 if ( xDocCfgMgr.is() )
398 xDocCfgMgr->removeConfigurationListener(
399 Reference< XUIConfigurationListener >(
this) );
408 xModuleCfgMgr.clear();
410 xPersistentWindowState.clear();
411 aModuleIdentifier.clear();
414 Reference< XUIConfigurationManager > xModCfgMgr( xModuleCfgMgr, UNO_QUERY );
415 Reference< XUIConfigurationManager > xDokCfgMgr( xDocCfgMgr, UNO_QUERY );
429 if ( xToolbarManager.is() )
433 xToolbarManager->attach(
xFrame, xModCfgMgr, xDokCfgMgr, xPersistentWindowState );
434 uno::Reference< awt::XVclWindowPeer > xParent( xContainerWindow, UNO_QUERY );
435 xToolbarManager->setParentWindow( xParent );
436 if ( bAutomaticToolbars )
437 xToolbarManager->createStaticToolbars();
441 xToolbarManager->reset();
457 Reference< awt::XWindow > xFrameContainerWindow =
xFrame->getContainerWindow();
458 return xFrameContainerWindow != xContainerWindow;
467 if ( pToolbarManager )
483 if ( pToolbarManager )
489 OUString aElementType;
490 OUString aElementName;
493 if ( aElementType.equalsIgnoreAsciiCase(
"menubar") &&
494 aElementName.equalsIgnoreAsciiCase(
"menubar") )
496 else if (( aElementType.equalsIgnoreAsciiCase(
"statusbar") &&
497 aElementName.equalsIgnoreAsciiCase(
"statusbar") ) ||
500 else if ( aElementType.equalsIgnoreAsciiCase(
"progressbar") &&
501 aElementName.equalsIgnoreAsciiCase(
"progressbar") )
504 return uno::Reference< ui::XUIElement >();
514 const Reference< XNameAccess > &rPersistentWindowState,
515 std::unique_ptr<GlobalSettings> &rGlobalSettings,
bool &bInGlobalSettings,
516 const Reference< XComponentContext > &rComponentContext )
518 if ( !rPersistentWindowState.is() )
521 bool bGetSettingsState(
false );
524 bool bGlobalSettings( bInGlobalSettings );
525 if ( rGlobalSettings ==
nullptr )
528 bGetSettingsState =
true;
535 Sequence< PropertyValue > aWindowState;
536 if ( rPersistentWindowState->hasByName(
aName ) && (rPersistentWindowState->getByName(
aName ) >>= aWindowState) )
538 bool bValue(
false );
539 for ( PropertyValue
const & rProp : std::as_const(aWindowState) )
543 if ( rProp.Value >>= bValue )
548 if ( rProp.Value >>= bValue )
553 ui::DockingArea eDockingArea;
554 if ( rProp.Value >>= eDockingArea )
560 if (rProp.Value >>= aPoint)
573 if ( rProp.Value >>= aPoint )
579 if ( rProp.Value >>= aSize )
586 sal_Int32 nStyle = 0;
587 if ( rProp.Value >>= nStyle )
592 if ( rProp.Value >>= bValue )
597 if ( rProp.Value >>= bValue )
602 if ( rProp.Value >>= bValue )
609 if (bGetSettingsState || bGlobalSettings)
615 bInGlobalSettings =
true;
628 if ( aValue >>= bValue )
635 if (bDockingSupportCrippled)
640 catch (
const NoSuchElementException&)
654 bool bPersistent(
false );
655 Reference< XPropertySet > xPropSet( rElementData.
m_xUIElement, UNO_QUERY );
661 xPropSet->getPropertyValue(
"Persistent") >>= bPersistent;
663 catch (
const beans::UnknownPropertyException&)
668 catch (
const lang::WrappedTargetException&)
673 if ( !(bPersistent && xPersistentWindowState.is()) )
678 Sequence< PropertyValue > aWindowState{
694 if ( xPersistentWindowState->hasByName(
aName ))
696 Reference< XNameReplace > xReplace( xPersistentWindowState, uno::UNO_QUERY );
697 xReplace->replaceByName(
aName,
Any( aWindowState ));
701 Reference< XNameContainer > xInsert( xPersistentWindowState, uno::UNO_QUERY );
702 xInsert->insertByName(
aName,
Any( aWindowState ));
718 if ( pContainerWindow )
721 return aContainerWinSize;
726 Reference< ui::XUIElement > xUIElement;
736 catch (
const NoSuchElementException&)
739 catch (
const IllegalArgumentException&)
766 Reference< XUIElement > xMenuBar =
m_xMenuBar;
771 if (( xMenuBar.is() || xInplaceMenuBar.is() ) && xContainerWindow.is() )
776 if ( xInplaceMenuBar.is() )
777 pMenuBar =
static_cast<MenuBar *
>(xInplaceMenuBar->GetMenuBar());
807 if ( pToolbarManager )
832 Reference< XComponent > xCompStatusBar;
840 if ( xCompStatusBar.is() )
841 xCompStatusBar->dispose();
874 Reference< XUIElement > xStatusBar;
875 Reference< XUIElement > xProgressBar;
876 Reference< XUIElement > xProgressBarBackup;
877 Reference< awt::XWindow > xContainerWindow;
887 bool bRecycled = xProgressBarBackup.is();
891 else if ( xProgressBar.is() )
896 if ( xStatusBar.is() )
898 Reference< awt::XWindow > xWindow( xStatusBar->getRealInterface(), UNO_QUERY );
899 pWrapper->setStatusBar( xWindow );
903 Reference< awt::XWindow > xStatusBarWindow = pWrapper->getStatusBar();
907 if ( !pStatusBarWnd )
914 pWrapper->setStatusBar( xStatusBarWindow2,
true );
966 Reference< XUIElement > xStatusBar;
967 Reference< XUIElement > xProgressBar;
968 Reference< awt::XWindow > xContainerWindow;
976 Reference< awt::XWindow > xWindow;
977 if ( xStatusBar.is() )
978 xWindow.set( xStatusBar->getRealInterface(), UNO_QUERY );
979 else if ( xProgressBar.is() )
994 if ( pParentWindow && ( pWindow && pWindow->GetType() == WindowType::STATUSBAR ))
996 vcl::Window* pOldParentWindow = pWindow->GetParent();
997 if ( pParentWindow != pOldParentWindow )
998 pWindow->SetParent( pParentWindow );
999 static_cast<StatusBar *
>(pWindow.
get())->SetPosSizePixel( rPos, rSize );
1005 Reference< XUIElement > xStatusBar;
1006 Reference< XUIElement > xProgressBar;
1007 Reference< awt::XWindow > xWindow;
1020 xWindow.set( xStatusBar->getRealInterface(), UNO_QUERY );
1022 else if ( xProgressBar.is() )
1033 if ( !pWindow->IsVisible() )
1047 Reference< XUIElement > xProgressBar;
1048 Reference< awt::XWindow > xWindow;
1049 bool bHideStatusBar(
false );
1054 bool bInternalStatusBar(
false );
1055 if ( xProgressBar.is() )
1057 Reference< awt::XWindow > xStatusBar;
1062 if ( xStatusBarElement.is() )
1063 xStatusBar.set( xStatusBarElement->getRealInterface(), UNO_QUERY );
1064 bInternalStatusBar = xStatusBar != xWindow;
1071 if ( pWindow && pWindow->IsVisible() && ( bHideStatusBar || bInternalStatusBar ))
1090 if ( xStatusBar.is() )
1092 Reference< awt::XWindow > xWindow( xStatusBar->getRealInterface(), UNO_QUERY );
1096 if ( pWindow && !pWindow->IsVisible() )
1116 if ( xStatusBar.is() )
1118 Reference< awt::XWindow > xWindow( xStatusBar->getRealInterface(), UNO_QUERY );
1122 if ( pWindow && pWindow->IsVisible() )
1164 Reference< XDispatchProvider > xDispatchProvider;
1195 if ( pMenuBarWrapper )
1227 const Reference< XIndexAccess >& xMergedMenuBar )
1262 if ( !xDockingAreaAcceptor.is() )
1269 if ( !xDockingAreaAcceptor.is() )
1277 xWindow->removeWindowListener( Reference< awt::XWindowListener >(
this) );
1280 if ( pToolbarManager )
1284 if ( pContainerWindow )
1285 pContainerWindow->RemoveChildEventListener(
LINK(
this,
LayoutManager, WindowEventListener ) );
1298 m_xFrame->getContainerWindow()->addWindowListener( Reference< awt::XWindowListener >(
this) );
1304 if( pContainerWindow )
1312 if ( xDockingAreaAcceptor.is() )
1318 if ( pContainerWindow )
1319 pContainerWindow->AddChildEventListener(
LINK(
this,
LayoutManager, WindowEventListener ) );
1327 if ( pToolbarManager && xDockingAreaAcceptor.is() )
1329 if ( bAutomaticToolbars )
1346 uno::Reference< awt::XWindow > xStatusBarWindow;
1351 xStatusBarWindow.set( aStatusBarElement.
m_xUIElement->getRealInterface(), UNO_QUERY );
1362 if ( xStatusBarWindow.is() )
1367 if ( pWindow && pContainerWindow )
1368 pWindow->SetParent( pContainerWindow );
1375 if ( pToolbarManager )
1376 pToolbarManager->
setParentWindow( uno::Reference< awt::XVclWindowPeer >( xContainerWindow, uno::UNO_QUERY ));
1389 if ( pWindow && pWindow->
GetType() == WindowType::TOOLBOX )
1395 if ( pToolbarManager )
1402 SAL_INFO(
"fwk",
"LayoutManager::createElement " <<
aName );
1414 bool bMustBeLayouted(
false );
1415 bool bNotify(
false );
1430 OUString aElementType;
1431 OUString aElementName;
1440 else if ( aElementType.equalsIgnoreAsciiCase(
"menubar") &&
1441 aElementName.equalsIgnoreAsciiCase(
"menubar") &&
1450 else if ( aElementType.equalsIgnoreAsciiCase(
"statusbar") &&
1456 else if ( aElementType.equalsIgnoreAsciiCase(
"progressbar") &&
1457 aElementName.equalsIgnoreAsciiCase(
"progressbar") &&
1463 else if ( aElementType.equalsIgnoreAsciiCase(
"dockingwindow"))
1466 uno::Reference< uno::XInterface > xThis(
static_cast< OWeakObject*
>(
this), uno::UNO_QUERY );
1469 if ( xUIElement.is() )
1479 if ( bMustBeLayouted )
1491 SAL_INFO(
"fwk",
"LayoutManager::destroyElement " <<
aName );
1493 bool bMustBeLayouted(
false);
1494 bool bNotify(
false);
1499 OUString aElementType;
1500 OUString aElementName;
1504 if (aElementType.equalsIgnoreAsciiCase(
"menubar")
1505 && aElementName.equalsIgnoreAsciiCase(
"menubar"))
1514 else if ((aElementType.equalsIgnoreAsciiCase(
"statusbar")
1515 && aElementName.equalsIgnoreAsciiCase(
"statusbar"))
1520 bMustBeLayouted =
true;
1523 else if (aElementType.equalsIgnoreAsciiCase(
"progressbar")
1524 && aElementName.equalsIgnoreAsciiCase(
"progressbar"))
1528 bMustBeLayouted =
true;
1538 else if (aElementType.equalsIgnoreAsciiCase(
"dockingwindow"))
1541 uno::Reference<XComponentContext> xContext(
m_xContext);
1545 bMustBeLayouted =
false;
1551 if ( bMustBeLayouted )
1560 bool bResult(
false );
1561 bool bNotify(
false );
1562 OUString aElementType;
1563 OUString aElementName;
1569 OString aResName =
OUStringToOString( aElementName, RTL_TEXTENCODING_ASCII_US );
1570 SAL_INFO(
"fwk",
"LayoutManager::requestElement " << aResName );
1572 if (( aElementType.equalsIgnoreAsciiCase(
"statusbar") &&
1573 aElementName.equalsIgnoreAsciiCase(
"statusbar") ) ||
1586 if ( xUIElement.is() )
1590 Reference< awt::XWindow > xWindow( xUIElement->getRealInterface(), UNO_QUERY );
1594 pWindow->Show(
true, ShowFlags::NoFocusChange | ShowFlags::NoActivate );
1601 else if ( aElementType.equalsIgnoreAsciiCase(
"progressbar") &&
1602 aElementName.equalsIgnoreAsciiCase(
"progressbar") )
1615 if ( pToolbarManager && bComponentAttached )
1620 else if ( aElementType.equalsIgnoreAsciiCase(
"dockingwindow"))
1637 if ( !xUIElement.is() )
1643 if ( pToolbarManager )
1653 uno::Reference< ui::XUIElement > xMenuBar(
m_xMenuBar );
1658 Sequence< Reference< ui::XUIElement > >
aSeq;
1659 if ( pToolbarManager )
1662 sal_Int32 nSize =
aSeq.getLength();
1663 sal_Int32 nMenuBarIndex(-1);
1664 sal_Int32 nStatusBarIndex(-1);
1665 if ( xMenuBar.is() )
1667 nMenuBarIndex = nSize;
1670 if ( xStatusBar.is() )
1672 nStatusBarIndex = nSize;
1676 aSeq.realloc(nSize);
1677 auto pSeq =
aSeq.getArray();
1678 if ( nMenuBarIndex >= 0 )
1679 pSeq[nMenuBarIndex] = xMenuBar;
1680 if ( nStatusBarIndex >= 0 )
1681 pSeq[nStatusBarIndex] = xStatusBar;
1688 bool bResult(
false );
1689 bool bNotify(
false );
1690 bool bMustLayout(
false );
1691 OUString aElementType;
1692 OUString aElementName;
1696 OString aResName =
OUStringToOString( aElementName, RTL_TEXTENCODING_ASCII_US );
1697 SAL_INFO(
"fwk",
"LayoutManager::showElement " << aResName );
1699 if ( aElementType.equalsIgnoreAsciiCase(
"menubar") &&
1700 aElementName.equalsIgnoreAsciiCase(
"menubar") )
1710 else if (( aElementType.equalsIgnoreAsciiCase(
"statusbar") &&
1711 aElementName.equalsIgnoreAsciiCase(
"statusbar") ) ||
1726 else if ( aElementType.equalsIgnoreAsciiCase(
"progressbar") &&
1727 aElementName.equalsIgnoreAsciiCase(
"progressbar") )
1737 if ( pToolbarManager )
1743 else if ( aElementType.equalsIgnoreAsciiCase(
"dockingwindow"))
1747 uno::Reference< XComponentContext > xContext(
m_xContext );
1764 bool bNotify(
false );
1765 bool bMustLayout(
false );
1766 OUString aElementType;
1767 OUString aElementName;
1770 OString aResName =
OUStringToOString( aElementName, RTL_TEXTENCODING_ASCII_US );
1771 SAL_INFO(
"fwk",
"LayoutManager::hideElement " << aResName );
1773 if ( aElementType.equalsIgnoreAsciiCase(
"menubar") &&
1774 aElementName.equalsIgnoreAsciiCase(
"menubar") )
1795 else if (( aElementType.equalsIgnoreAsciiCase(
"statusbar") &&
1796 aElementName.equalsIgnoreAsciiCase(
"statusbar") ) ||
1808 else if ( aElementType.equalsIgnoreAsciiCase(
"progressbar") &&
1809 aElementName.equalsIgnoreAsciiCase(
"progressbar") )
1819 if ( pToolbarManager )
1825 else if ( aElementType.equalsIgnoreAsciiCase(
"dockingwindow"))
1829 uno::Reference< XComponentContext > xContext(
m_xContext );
1846 OUString aElementType;
1847 OUString aElementName;
1856 if ( pToolbarManager )
1869 bool bResult(
false );
1873 if ( pToolbarManager )
1884 bool bResult(
false );
1891 if ( pToolbarManager )
1903 bool bResult(
false );
1910 if ( pToolbarManager )
1922 bool bResult(
false );
1929 if ( pToolbarManager )
1948 if ( pToolbarManager )
1965 if ( pToolbarManager )
1982 if ( pToolbarManager )
1992 OUString aElementType;
1993 OUString aElementName;
1996 if ( aElementType.equalsIgnoreAsciiCase(
"menubar") &&
1997 aElementName.equalsIgnoreAsciiCase(
"menubar") )
2019 else if (( aElementType.equalsIgnoreAsciiCase(
"statusbar") &&
2020 aElementName.equalsIgnoreAsciiCase(
"statusbar") ) ||
2030 if ( pWindow && pWindow->IsVisible() )
2037 else if ( aElementType.equalsIgnoreAsciiCase(
"progressbar") &&
2038 aElementName.equalsIgnoreAsciiCase(
"progressbar") )
2049 if ( pToolbarManager )
2052 else if ( aElementType.equalsIgnoreAsciiCase(
"dockingwindow"))
2072 if ( pToolbarManager )
2087 if ( pToolbarManager )
2102 if ( pToolbarManager )
2117 if ( pToolbarManager )
2132 if ( pToolbarManager )
2136 return awt::Point();
2147 SAL_INFO(
"fwk",
"LayoutManager::lock " <<
reinterpret_cast<sal_Int64
>(
this) <<
" - " << nLockCount );
2149 Any a( nLockCount );
2161 SAL_INFO(
"fwk",
"LayoutManager::unlock " <<
reinterpret_cast<sal_Int64
>(
this) <<
" - " << nLockCount);
2171 Any a( nLockCount );
2199 SAL_INFO(
"fwk",
"LayoutManager::implts_doLayout" );
2213 Reference< awt::XWindow > xComponentWindow;
2215 xComponentWindow =
m_xFrame->getComponentWindow();
2216 }
catch (css::lang::DisposedException &) {
2230 bool bLayouted(
false );
2232 if ( bNoLock && xDockingAreaAcceptor.is() && xContainerWindow.is() && xComponentWindow.is() )
2237 awt::Rectangle aBorderSpace( aDockSpace );
2238 bool bGotRequestedBorderSpace(
true );
2243 if ( !
equalRectangles( aBorderSpace, aCurrBorderSpace ) || bForceRequestBorderSpace || bMustDoLayout )
2247 if ( bOuterResize && !bPreserveContentSize )
2248 bOuterResize =
false;
2251 if ( bOuterResize && xContainerTopWindow.is() && xContainerTopWindow->getIsMaximized() )
2252 bOuterResize =
false;
2256 awt::Rectangle aComponentRect = xComponentWindow->getPosSize();
2257 if ( bOuterResize && ( aComponentRect.Width == 0 ) && ( aComponentRect.Height == 0 ) )
2258 bOuterResize =
false;
2260 bGotRequestedBorderSpace =
false;
2263 Reference< awt::XDevice > xDevice( xContainerWindow, uno::UNO_QUERY );
2264 awt::DeviceInfo aContainerInfo = xDevice->getInfo();
2266 awt::Size aRequestedSize( aComponentRect.Width + aContainerInfo.LeftInset + aContainerInfo.RightInset + aBorderSpace.X + aBorderSpace.Width,
2267 aComponentRect.Height + aContainerInfo.TopInset + aContainerInfo.BottomInset + aBorderSpace.Y + aBorderSpace.Height );
2268 awt::Point aComponentPos( aBorderSpace.X, aBorderSpace.Y );
2274 if ( !bGotRequestedBorderSpace )
2275 bGotRequestedBorderSpace = xDockingAreaAcceptor->requestDockingAreaSpace( aBorderSpace );
2277 if ( bGotRequestedBorderSpace )
2285 if ( bGotRequestedBorderSpace )
2306 if ( aStatusBarSize.
Height() > 0 )
2312 xDockingAreaAcceptor->setDockingAreaSpace( aBorderSpace );
2320 const awt::Point& rComponentPos )
2325 Reference< awt::XWindow > xComponentWindow =
m_xFrame->getComponentWindow();
2329 sal_Int32 nDisplay = xContainerTopWindow->getDisplay();
2334 if (( rContainerSize.Width > aWorkArea.
GetWidth() ) || ( rContainerSize.Height > aWorkArea.
GetHeight() ))
2345 xContainerWindow->setPosSize( 0, 0, rContainerSize.Width, rContainerSize.Height, awt::PosSize::SIZE );
2347 xComponentWindow->setPosSize( rComponentPos.X, rComponentPos.Y, 0, 0, awt::PosSize::POS );
2358 if ( bWasVisible !=
bool(
bVisible) )
2372 bool bProgressBarVisible(
isElementVisible(
"private:resource/progressbar/progressbar" ));
2377 Reference< awt::XWindow > xWindow;
2378 if ( bStatusBarVisible &&
bVisible && xStatusBar.is() )
2379 xWindow.set( xStatusBar->getRealInterface(), UNO_QUERY );
2380 else if ( xProgressBar.is() && !xStatusBar.is() && bProgressBarVisible )
2390 awt::Rectangle aPosSize = xWindow->getPosSize();
2391 return ::Size( aPosSize.Width, aPosSize.Height );
2404 awt::Rectangle aBorderSpace;
2405 if (
m_xToolbarManager.is() && xDockingAreaAcceptor.is() && xContainerWindow.is() )
2408 return aBorderSpace;
2417 uno::Reference< awt::XDevice > xDevice( xContainerWindow, uno::UNO_QUERY );
2419 awt::Rectangle aRectangle = xContainerWindow->getPosSize();
2420 awt::DeviceInfo aInfo = xDevice->getInfo();
2421 awt::Size aContainerClientSize( aRectangle.Width - aInfo.LeftInset - aInfo.RightInset,
2422 aRectangle.Height - aInfo.TopInset - aInfo.BottomInset );
2426 if ( aStatusBarSize.
Height() > 0 )
2429 ::Size( aContainerClientSize.Width, aStatusBarSize.
Height() ));
2440 if ( !xContainerWindow.is() )
2465 MenuBar* pSetMenuBar =
nullptr;
2471 if ( pMenuBarWrapper )
2476 if ( pSysWindow && bMenuVisible && pSetMenuBar )
2492 uno::Reference< XUIElementSettings > xMenuBarSettings(
m_xMenuBar, UNO_QUERY);
2493 uno::Reference< container::XIndexReplace > xMenuIndex(xMenuBarSettings->getSettings(
true), UNO_QUERY);
2495 sal_Int32 nFormsMenu = -1;
2498 uno::Sequence< beans::PropertyValue > aProps;
2499 xMenuIndex->getByIndex(
nIndex ) >>= aProps;
2501 for ( beans::PropertyValue
const & rProp : std::as_const(aProps) )
2503 if (rProp.Name ==
"CommandURL")
2510 if (
aCommand ==
".uno:FormatFormMenu")
2513 assert(nFormsMenu != -1);
2516 css::uno::Reference< css::ui::XUIElement > xFormsMenu =
implts_createElement(
"private:resource/menubar/mscompatibleformsmenu" );
2517 if(!xFormsMenu.is())
2521 uno::Reference< XUIElementSettings > xFormsMenuSettings(xFormsMenu, UNO_QUERY);
2522 uno::Reference< container::XIndexAccess > xFormsMenuIndex(xFormsMenuSettings->getSettings(
true));
2524 assert(xFormsMenuIndex->getCount() >= 1);
2525 uno::Sequence< beans::PropertyValue > aNewFormsMenu;
2526 xFormsMenuIndex->getByIndex( 0 ) >>= aNewFormsMenu;
2527 xMenuIndex->replaceByIndex(nFormsMenu,
uno::Any(aNewFormsMenu));
2532 Reference< XComponent > xFormsMenuComp( xFormsMenu, UNO_QUERY );
2533 if ( xFormsMenuComp.is() )
2534 xFormsMenuComp->dispose();
2541 uno::Reference< frame::XDispatchProvider > xProvider(
m_xFrame, uno::UNO_QUERY);
2542 uno::Reference< XComponentContext > xContext(
m_xContext );
2545 if ( !xProvider.is())
2548 uno::Reference< frame::XDispatchHelper > xDispatcher = frame::DispatchHelper::create( xContext );
2550 xDispatcher->executeDispatch(
2555 uno::Sequence< beans::PropertyValue >());
2573 if (pContainer==
nullptr)
2582 static_cast<frame::XLayoutManagerListener*
>(pIterator.
next())->layoutEvent(aSource, nEvent, rInfoParam);
2584 catch(
const uno::RuntimeException& )
2598 Reference< XInterface > xIfac( xContainerWindow, UNO_QUERY );
2616 Reference< awt::XWindow > xComponentWindow(
m_xFrame->getComponentWindow() );
2617 if( xComponentWindow.is() )
2619 uno::Reference< awt::XDevice > xDevice(
m_xFrame->getContainerWindow(), uno::UNO_QUERY );
2622 awt::Rectangle aRectangle =
m_xFrame->getContainerWindow()->getPosSize();
2623 awt::DeviceInfo aInfo = xDevice->getInfo();
2624 awt::Size aSize( aRectangle.Width - aInfo.LeftInset - aInfo.RightInset ,
2625 aRectangle.Height - aInfo.TopInset - aInfo.BottomInset );
2628 xComponentWindow->setPosSize( 0, 0, aSize.Width, aSize.Height, awt::PosSize::POSSIZE );
2644 Reference< XInterface > xIfac( xContainerWindow, UNO_QUERY );
2645 if ( xIfac ==
aEvent.Source )
2664 Reference< XInterface > xIfac( xContainerWindow, UNO_QUERY );
2665 if ( xIfac ==
aEvent.Source )
2672 if ( bSetInvisible )
2682 if (!m_xContainerWindow.is())
2686 implts_setDockingAreaWindowSizes();
2687 implts_doLayout(
true,
false );
2694 if ((
aEvent.Action == FrameAction_COMPONENT_ATTACHED ) || (
aEvent.Action == FrameAction_COMPONENT_REATTACHED ))
2696 SAL_INFO(
"fwk",
"LayoutManager::frameAction (COMPONENT_ATTACHED|REATTACHED)" );
2707 else if ((
aEvent.Action == FrameAction_FRAME_UI_ACTIVATED ) || (
aEvent.Action == FrameAction_FRAME_UI_DEACTIVATING ))
2709 SAL_INFO(
"fwk",
"LayoutManager::frameAction (FRAME_UI_ACTIVATED|DEACTIVATING)" );
2713 else if (
aEvent.Action == FrameAction_COMPONENT_DETACHING )
2715 SAL_INFO(
"fwk",
"LayoutManager::frameAction (COMPONENT_DETACHING)" );
2723 bool bDisposeAndClear(
false );
2729 if (rEvent.Source == Reference<XInterface>(
m_xFrame, UNO_QUERY))
2758 Reference<XUIConfiguration> xModuleCfgMgr(
m_xModuleCfgMgr, UNO_QUERY);
2759 xModuleCfgMgr->removeConfigurationListener(Reference<XUIConfigurationListener>(
this));
2770 Reference<XUIConfiguration> xDocCfgMgr(
m_xDocCfgMgr, UNO_QUERY);
2771 xDocCfgMgr->removeConfigurationListener(Reference<XUIConfigurationListener>(
this));
2783 bDisposeAndClear =
true;
2789 if (pToolbarManager)
2791 uno::Reference<awt::XVclWindowPeer> aEmptyWindowPeer;
2807 else if (rEvent.Source == Reference<XInterface>(
m_xDocCfgMgr, UNO_QUERY))
2809 else if (rEvent.Source == Reference<XInterface>(
m_xModuleCfgMgr, UNO_QUERY))
2815 if ( bDisposeAndClear )
2818 uno::Reference< frame::XLayoutManager > xThis(
this);
2819 lang::EventObject
aEvent( xThis );
2834 OUString aElementType;
2835 OUString aElementName;
2836 bool bRefreshLayout(
false);
2841 if ( xToolbarManager.is() )
2843 xToolbarManager->elementInserted( Event );
2844 bRefreshLayout = xToolbarManager->isLayoutDirty();
2850 Reference< XUIElementSettings > xElementSettings( xUIElement, UNO_QUERY );
2851 if ( xElementSettings.is() )
2853 uno::Reference< XPropertySet > xPropSet( xElementSettings, uno::UNO_QUERY );
2854 if ( xPropSet.is() )
2856 if ( Event.Source == uno::Reference< uno::XInterface >(
m_xDocCfgMgr, uno::UNO_QUERY ))
2857 xPropSet->setPropertyValue(
"ConfigurationSource",
Any(
m_xDocCfgMgr ));
2859 xElementSettings->updateSettings();
2863 if ( bRefreshLayout )
2873 Reference< ui::XUIElement > xMenuBar(
m_xMenuBar );
2874 Reference< ui::XUIConfigurationManager > xModuleCfgMgr(
m_xModuleCfgMgr );
2875 Reference< ui::XUIConfigurationManager > xDocCfgMgr(
m_xDocCfgMgr );
2881 OUString aElementType;
2882 OUString aElementName;
2883 bool bRefreshLayout(
false);
2888 if ( xToolbarManager.is() )
2890 xToolbarManager->elementRemoved( Event );
2891 bRefreshLayout = xToolbarManager->isLayoutDirty();
2897 Reference< XUIElementSettings > xElementSettings( xUIElement, UNO_QUERY );
2898 if ( xElementSettings.is() )
2900 bool bNoSettings(
false );
2901 OUString aConfigSourcePropName(
"ConfigurationSource" );
2902 Reference< XInterface > xElementCfgMgr;
2903 Reference< XPropertySet > xPropSet( xElementSettings, UNO_QUERY );
2905 if ( xPropSet.is() )
2906 xPropSet->getPropertyValue( aConfigSourcePropName ) >>= xElementCfgMgr;
2908 if ( !xElementCfgMgr.is() )
2912 if ( Event.Source == xElementCfgMgr )
2915 if ( Event.Source == Reference< XInterface >( xDocCfgMgr, UNO_QUERY ))
2918 if ( xModuleCfgMgr->hasSettings( Event.ResourceURL ))
2921 xElementSettings->updateSettings();
2930 if ( xContainerWindow.is() && bNoSettings )
2932 if ( aElementType.equalsIgnoreAsciiCase(
"menubar") &&
2933 aElementName.equalsIgnoreAsciiCase(
"menubar") )
2939 Reference< XComponent > xComp( xMenuBar, UNO_QUERY );
2950 if ( bRefreshLayout )
2964 OUString aElementType;
2965 OUString aElementName;
2966 bool bRefreshLayout(
false);
2971 if ( xToolbarManager.is() )
2973 xToolbarManager->elementReplaced( Event );
2974 bRefreshLayout = xToolbarManager->isLayoutDirty();
2980 Reference< XUIElementSettings > xElementSettings( xUIElement, UNO_QUERY );
2981 if ( xElementSettings.is() )
2983 Reference< XInterface > xElementCfgMgr;
2984 Reference< XPropertySet > xPropSet( xElementSettings, UNO_QUERY );
2986 if ( xPropSet.is() )
2987 xPropSet->getPropertyValue(
"ConfigurationSource" ) >>= xElementCfgMgr;
2989 if ( !xElementCfgMgr.is() )
2993 if ( Event.Source == xElementCfgMgr )
2994 xElementSettings->updateSettings();
2998 if ( bRefreshLayout )
3017 if (( aValue >>= bValue ) && bValue )
3024 if ( pToolbarManager )
3066 return INFO.getHelper();
3071 static uno::Reference< beans::XPropertySetInfo > xInfo( createPropertySetInfo(
getInfoHelper() ) );
3078extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface *
3080 css::uno::XComponentContext *context,
3081 css::uno::Sequence<css::uno::Any>
const &)
PropertiesInfo aProperties
css::uno::Reference< css::lang::XComponent > m_xFrame
static tools::Rectangle GetScreenPosSizePixel(unsigned int nScreen)
constexpr tools::Long Height() const
tools::Long AdjustHeight(tools::Long n)
constexpr tools::Long Width() const
static bool GetDockingFloatsSupported()
MenuBar * GetMenuBar() const
void SetMenuBar(MenuBar *pMenuBar)
virtual void Start(bool bStartTimer=true) override
virtual void Invoke() override
static css::uno::Reference< css::awt::XWindow > GetInterface(vcl::Window *pWindow)
static vcl::Window * GetWindow(const css::uno::Reference< css::awt::XWindow > &rxWindow)
reference_type * get() const
static VclPtr< reference_type > Create(Arg &&... arg)
css::uno::XInterface * next()
bool hasMoreElements() const
OInterfaceContainerHelper2 * getContainer(const css::uno::Type &rKey) const
sal_Int32 removeInterface(const css::uno::Type &rKey, const css::uno::Reference< css::uno::XInterface > &rxIFace)
sal_Int32 addInterface(const css::uno::Type &rKey, const css::uno::Reference< css::uno::XInterface > &r)
void disposeAndClear(const css::lang::EventObject &rEvt)
void describeProperties(css::uno::Sequence< css::beans::Property > &_rProps) const
virtual void SAL_CALL setFastPropertyValue_NoBroadcast(sal_Int32 nHandle, const css::uno::Any &rValue) override
bool GetToolbarStateInfo(StateInfo eStateInfo, css::uno::Any &aValue)
bool HasToolbarStatesInfo() const
css::uno::Reference< css::container::XNameAccess > m_xPersistentWindowStateSupplier
virtual void SAL_CALL reset() override
virtual void SAL_CALL windowMoved(const css::awt::WindowEvent &aEvent) override
css::uno::Reference< css::ui::XUIElement > m_xProgressBarBackup
UIElement m_aStatusBarElement
virtual void SAL_CALL windowHidden(const css::lang::EventObject &aEvent) override
css::uno::Reference< css::frame::XFrame > m_xFrame
void implts_resetInplaceMenuBar()
css::uno::Reference< css::awt::XTopWindow2 > m_xContainerTopWindow
virtual sal_Bool SAL_CALL hideElement(const OUString &aName) override
virtual css::awt::Size SAL_CALL getElementSize(const OUString &aName) override
virtual sal_Bool SAL_CALL dockAllWindows(::sal_Int16 nElementType) override
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
::Size implts_getStatusBarSize()
virtual void SAL_CALL setElementSize(const OUString &aName, const css::awt::Size &aSize) override
css::uno::Reference< css::container::XNameAccess > m_xPersistentWindowState
css::uno::Reference< css::ui::XUIElement > implts_createDockingWindow(const OUString &aElementName)
bool m_bParentWindowVisible
bool implts_showStatusBar(bool bStoreState=false)
css::awt::Rectangle implts_calcDockingAreaSizes()
virtual void SAL_CALL removeLayoutManagerEventListener(const css::uno::Reference< css::frame::XLayoutManagerListener > &aLayoutManagerListener) override
virtual sal_Bool SAL_CALL lockWindow(const OUString &ResourceURL) override
void implts_setCurrentUIVisibility(bool bShow)
void implts_setStatusBarPosSize(const ::Point &rPos, const ::Size &rSize)
virtual sal_Bool SAL_CALL isElementLocked(const OUString &ResourceURL) override
virtual void SAL_CALL windowResized(const css::awt::WindowEvent &aEvent) override
virtual void SAL_CALL elementRemoved(const css::ui::ConfigurationEvent &Event) override
void implts_notifyListeners(short nEvent, const css::uno::Any &rInfoParam)
css::uno::Reference< css::ui::XUIConfigurationManager > m_xModuleCfgMgr
virtual css::uno::Sequence< css::uno::Reference< css::ui::XUIElement > > SAL_CALL getElements() override
virtual void SAL_CALL elementReplaced(const css::ui::ConfigurationEvent &Event) override
virtual void SAL_CALL setFastPropertyValue_NoBroadcast(sal_Int32 nHandle, const css::uno::Any &aValue) override
virtual void SAL_CALL setDockingAreaAcceptor(const css::uno::Reference< css::ui::XDockingAreaAcceptor > &xDockingAreaAcceptor) final override
css::uno::Reference< css::ui::XUIElement > implts_findElement(std::u16string_view aName)
bool implts_doLayout(bool bForceRequestBorderSpace, bool bOuterResize)
void implts_destroyStatusBar()
css::uno::Reference< css::awt::XWindow > m_xContainerWindow
css::uno::Reference< css::ui::XUIElementFactoryManager > m_xUIElementFactoryManager
bool implts_resetMenuBar()
virtual css::awt::Rectangle SAL_CALL getCurrentDockingArea() override
UIElement m_aProgressBarElement
void implts_setVisibleState(bool bShow)
virtual void SAL_CALL setVisible(sal_Bool bVisible) override
virtual sal_Bool SAL_CALL setMergedMenuBar(const css::uno::Reference< css::container::XIndexAccess > &xMergedMenuBar) override
virtual ::cppu::IPropertyArrayHelper &SAL_CALL getInfoHelper() override
virtual ~LayoutManager() override
Timer m_aAsyncLayoutTimer
virtual void SAL_CALL createElement(const OUString &aName) override
void implts_doLayout_notify(bool bOuterResize)
virtual sal_Bool SAL_CALL unlockWindow(const OUString &ResourceURL) override
void implts_toggleFloatingUIElementsVisibility(bool bActive)
rtl::Reference< ToolbarLayoutManager > m_xToolbarManager
::Size implts_getContainerWindowOutputSize()
bool implts_hideProgressBar()
virtual void SAL_CALL addLayoutManagerEventListener(const css::uno::Reference< css::frame::XLayoutManagerListener > &aLayoutManagerListener) override
void implts_updateMenuBarClose()
virtual sal_Bool SAL_CALL floatWindow(const OUString &aName) override
void implts_createMSCompatibleMenuBar(const OUString &rName)
virtual sal_Bool SAL_CALL isElementVisible(const OUString &aName) override
void implts_destroyElements()
css::uno::Reference< css::uno::XComponentContext > m_xContext
virtual void SAL_CALL attachFrame(const css::uno::Reference< css::frame::XFrame > &Frame) override
void implts_writeWindowStateData(const OUString &rName, const UIElement &rElementData)
void impl_clearUpMenuBar()
void implts_setDockingAreaWindowSizes()
virtual void SAL_CALL destroyElement(const OUString &aName) override
virtual css::uno::Reference< css::ui::XDockingAreaAcceptor > SAL_CALL getDockingAreaAcceptor() override
rtl::Reference< MenuBarManager > m_xInplaceMenuBar
virtual void SAL_CALL frameAction(const css::frame::FrameActionEvent &aEvent) override
void implts_setOffset(const sal_Int32 nBottomOffset)
void implts_backupProgressBarWrapper()
virtual sal_Bool SAL_CALL showElement(const OUString &aName) override
bool m_bPreserveContentSize
virtual sal_Bool SAL_CALL requestElement(const OUString &ResourceURL) override
virtual css::uno::Reference< css::ui::XUIElement > SAL_CALL getElement(const OUString &aName) override
css::uno::Reference< css::frame::XModuleManager2 > m_xModuleManager
css::uno::Reference< css::ui::XUIElement > implts_createElement(const OUString &aName)
css::uno::Reference< css::ui::XDockingAreaAcceptor > m_xDockingAreaAcceptor
virtual void SAL_CALL lock() override
void implts_reparentChildWindows()
bool implts_resizeContainerWindow(const css::awt::Size &rContainerSize, const css::awt::Point &rComponentPos)
virtual sal_Bool SAL_CALL dockWindow(const OUString &aName, css::ui::DockingArea DockingArea, const css::awt::Point &Pos) override
void implts_reset(bool bAttach)
void implts_readStatusBarState(const OUString &rStatusBarName)
bool implts_isEmbeddedLayoutManager() const
virtual css::awt::Point SAL_CALL getElementPos(const OUString &aName) override
virtual void SAL_CALL windowShown(const css::lang::EventObject &aEvent) override
css::awt::Rectangle m_aDockingArea
css::uno::Reference< css::ui::XUIConfigurationManager > m_xDocCfgMgr
css::uno::Reference< css::ui::XUIElement > m_xMenuBar
std::unique_ptr< GlobalSettings > m_pGlobalSettings
OUString m_aModuleIdentifier
virtual void SAL_CALL elementInserted(const css::ui::ConfigurationEvent &Event) override
void implts_updateUIElementsVisibleState(bool bShow)
bool m_bMenuBarCloseButton
virtual sal_Bool SAL_CALL isVisible() override
virtual sal_Bool SAL_CALL isElementDocked(const OUString &aName) override
css::uno::Reference< css::util::XURLTransformer > m_xURLTransformer
reference to factory, which has created this instance.
virtual void SAL_CALL doLayout() override
void implts_setInplaceMenuBar(const css::uno::Reference< css::container::XIndexAccess > &xMergedMenuBar)
bool implts_showProgressBar()
void implts_destroyProgressBar()
virtual void SAL_CALL disposing(const css::lang::EventObject &aEvent) override
virtual void SAL_CALL unlock() override
bool m_bAutomaticToolbars
static bool readWindowStateData(const OUString &rName, UIElement &rElementData, const css::uno::Reference< css::container::XNameAccess > &rPersistentWindowState, std::unique_ptr< GlobalSettings > &rGlobalSettings, bool &bInGlobalSettings, const css::uno::Reference< css::uno::XComponentContext > &rComponentContext)
Reading of settings - shared with ToolbarLayoutManager.
bool implts_readWindowStateData(const OUString &rName, UIElement &rElementData)
void implts_createMenuBar(const OUString &rMenuBarName)
void implts_createProgressBar()
void implts_createStatusBar(const OUString &rStatusBarName)
virtual void SAL_CALL setElementPosSize(const OUString &aName, const css::awt::Point &aPos, const css::awt::Size &aSize) override
bool implts_hideStatusBar(bool bStoreState=false)
virtual void SAL_CALL removeMergedMenuBar() override
virtual sal_Bool SAL_CALL isElementFloating(const OUString &aName) override
virtual void SAL_CALL setElementPos(const OUString &aName, const css::awt::Point &aPos) override
comphelper::OMultiTypeInterfaceContainerHelper2 m_aListenerContainer
css::uno::Reference< css::awt::XWindow > getStatusBar() const
void setStatusBar(const css::uno::Reference< css::awt::XWindow > &rStatusBar, bool bOwnsInstance=false)
std::unique_ptr<::cppu::OPropertyArrayHelper > m_pInfoHelper
InfoHelperBuilder & operator=(const InfoHelperBuilder &)=delete
::cppu::OPropertyArrayHelper & getHelper()
InfoHelperBuilder(const InfoHelperBuilder &)=delete
InfoHelperBuilder(const LayoutManager &rManager)
WindowType GetType() const
Size GetOutputSizePixel() const
css::uno::Reference< css::uno::XComponentContext > m_xContext
constexpr OUStringLiteral UIRESOURCETYPE_TOOLBAR
#define UIRESOURCETYPE_MENUBAR
constexpr OUStringLiteral STATUS_BAR_ALIAS
SAL_DLLPUBLIC_EXPORT css::uno::XInterface * com_sun_star_comp_framework_LayoutManager_get_implementation(css::uno::XComponentContext *context, css::uno::Sequence< css::uno::Any > const &)
#define LINK(Instance, Class, Member)
Sequence< sal_Int8 > aSeq
#define SAL_INFO(area, stream)
if(aStr !=aBuf) UpdateName_Impl(m_xFollowLb.get()
css::beans::PropertyValue makePropertyValue(const OUString &rName, T &&rValue)
constexpr OUStringLiteral LAYOUTMANAGER_PROPNAME_ASCII_PRESERVE_CONTENT_SIZE
void parseResourceURL(std::u16string_view aResourceURL, OUString &aElementType, OUString &aElementName)
::cppu::WeakImplHelper< css::lang::XServiceInfo, css::frame::XLayoutManager2, css::awt::XWindowListener > LayoutManager_Base
bool IsDockingWindowVisible(const css::uno::Reference< css::frame::XFrame > &rFrame, std::u16string_view rResourceURL)
IMPL_LINK(WindowCommandDispatch, impl_notifyCommand, VclWindowEvent &, rEvent, void)
constexpr OUStringLiteral LAYOUTMANAGER_PROPNAME_ASCII_AUTOMATICTOOLBARS
void impl_addWindowListeners(const css::uno::Reference< css::uno::XInterface > &xThis, const css::uno::Reference< css::ui::XUIElement > &xUIElement)
void CreateDockingWindow(const css::uno::Reference< css::frame::XFrame > &rFrame, std::u16string_view rResourceURL)
IMPL_LINK_NOARG(CloseDispatcher, impl_asyncCallback, LinkParamNone *, void)
asynchronous callback @descr We start all actions inside this object asynchronous (see comments there...
SystemWindow * getTopSystemWindow(const uno::Reference< awt::XWindow > &xWindow)
uno::Reference< frame::XModel > impl_getModelFromFrame(const uno::Reference< frame::XFrame > &rFrame)
void impl_setDockingWindowVisibility(const css::uno::Reference< css::uno::XComponentContext > &rxContext, const css::uno::Reference< css::frame::XFrame > &rFrame, std::u16string_view rDockingWindowName, bool bVisible)
std::u16string_view getElementTypeFromResourceURL(std::u16string_view aResourceURL)
bool implts_isPreviewModel(const uno::Reference< frame::XModel > &xModel)
constexpr OUStringLiteral LAYOUTMANAGER_PROPNAME_ASCII_REFRESHTOOLTIP
bool implts_isFrameOrWindowTop(const uno::Reference< frame::XFrame > &xFrame)
::comphelper::OPropertyContainer LayoutManager_PBase
bool equalRectangles(const css::awt::Rectangle &rRect1, const css::awt::Rectangle &rRect2)
constexpr OUStringLiteral LAYOUTMANAGER_PROPNAME_ASCII_HIDECURRENTUI
constexpr OUStringLiteral LAYOUTMANAGER_PROPNAME_ASCII_LOCKCOUNT
constexpr OUStringLiteral LAYOUTMANAGER_PROPNAME_ASCII_REFRESHVISIBILITY
bool equalsIgnoreAsciiCase(std::u16string_view s1, std::u16string_view s2)
OString OUStringToOString(std::u16string_view str, ConnectionSettings const *settings)
IMPLEMENT_FORWARD_XTYPEPROVIDER2(ChildWindowPane, ChildWindowPaneInterfaceBase, Pane)
IMPLEMENT_FORWARD_XINTERFACE2(ChildWindowPane, ChildWindowPaneInterfaceBase, Pane)
#define LAYOUTMANAGER_PROPHANDLE_MENUBARCLOSER
#define LAYOUTMANAGER_PROPHANDLE_PRESERVE_CONTENT_SIZE
#define LAYOUTMANAGER_PROPHANDLE_LOCKCOUNT
#define LAYOUTMANAGER_PROPNAME_MENUBARCLOSER
#define LAYOUTMANAGER_PROPHANDLE_AUTOMATICTOOLBARS
#define LAYOUTMANAGER_PROPHANDLE_REFRESHTOOLTIP
#define LAYOUTMANAGER_PROPHANDLE_HIDECURRENTUI
#define LAYOUTMANAGER_PROPHANDLE_REFRESHVISIBILITY
css::ui::DockingArea m_nDockedArea
FloatingData m_aFloatingData
css::uno::Reference< css::ui::XUIElement > m_xUIElement
Reference< XFrame > xFrame
Reference< XModel > xModel
constexpr OUStringLiteral WINDOWSTATE_PROPERTY_VISIBLE
constexpr OUStringLiteral WINDOWSTATE_PROPERTY_DOCKINGAREA
constexpr OUStringLiteral WINDOWSTATE_PROPERTY_POS
constexpr OUStringLiteral WINDOWSTATE_PROPERTY_LOCKED
constexpr OUStringLiteral WINDOWSTATE_PROPERTY_STYLE
constexpr OUStringLiteral WINDOWSTATE_PROPERTY_DOCKPOS
constexpr OUStringLiteral WINDOWSTATE_PROPERTY_DOCKED
constexpr OUStringLiteral WINDOWSTATE_PROPERTY_NOCLOSE
constexpr OUStringLiteral WINDOWSTATE_PROPERTY_SIZE
constexpr OUStringLiteral WINDOWSTATE_PROPERTY_UINAME
constexpr OUStringLiteral WINDOWSTATE_PROPERTY_CONTEXT