[Libreoffice-commits] core.git: include/vcl solenv/clang-format vcl/source
Caolán McNamara (via logerrit)
logerrit at kemper.freedesktop.org
Wed Mar 3 09:21:45 UTC 2021
include/vcl/dockwin.hxx | 105 ------------------------
solenv/clang-format/excludelist | 1
vcl/source/window/dockmgr.cxx | 2
vcl/source/window/dockwin.cxx | 2
vcl/source/window/event.cxx | 2
vcl/source/window/impldockingwrapper.hxx | 131 +++++++++++++++++++++++++++++++
vcl/source/window/menu.cxx | 6 -
vcl/source/window/toolbox.cxx | 1
vcl/source/window/toolbox2.cxx | 2
vcl/source/window/window.cxx | 1
10 files changed, 146 insertions(+), 107 deletions(-)
New commits:
commit 81565c31829fe1141e64acb900d891e9f9705971
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Tue Mar 2 10:27:53 2021 +0000
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Wed Mar 3 10:20:54 2021 +0100
move ImplDockingWindowWrapper out of public header
and down to where it is needed
Change-Id: Ieded4a1b5d10ab7f9a57c2694a4684bdecc77fd0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111827
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/include/vcl/dockwin.hxx b/include/vcl/dockwin.hxx
index d8f69ccd1fb5..8dbe5ead00a4 100644
--- a/include/vcl/dockwin.hxx
+++ b/include/vcl/dockwin.hxx
@@ -62,110 +62,7 @@ struct EndPopupModeData
{};
};
-/** ImplDockingWindowWrapper
- *
- * ImplDockingWindowWrapper obsoletes the DockingWindow class.
- * It is better because it can make a "normal window" dockable.
- * All DockingWindows should be converted the new class.
- */
-
-class ImplDockingWindowWrapper final
-{
- friend class ::vcl::Window;
- friend class DockingManager;
- friend class DockingWindow;
-
-private:
-
- // the original 'Docking'window
- VclPtr<vcl::Window> mpDockingWindow;
-
- // the original DockingWindow members
- VclPtr<FloatingWindow> mpFloatWin;
- VclPtr<vcl::Window> mpOldBorderWin;
- VclPtr<vcl::Window> mpParent;
- Link<FloatingWindow*,void> maPopupModeEndHdl;
- Point maFloatPos;
- Point maDockPos;
- Point maMouseOff;
- Size maMinOutSize;
- Size maMaxOutSize;
- tools::Rectangle maDragArea;
- tools::Long mnTrackX;
- tools::Long mnTrackY;
- tools::Long mnTrackWidth;
- tools::Long mnTrackHeight;
- sal_Int32 mnDockLeft;
- sal_Int32 mnDockTop;
- sal_Int32 mnDockRight;
- sal_Int32 mnDockBottom;
- WinBits mnFloatBits;
- bool mbDockCanceled:1,
- mbDocking:1,
- mbLastFloatMode:1,
- mbDockBtn:1,
- mbHideBtn:1,
- mbStartDockingEnabled:1,
- mbLocked:1;
-
- DECL_LINK( PopupModeEnd, FloatingWindow*, void );
- void ImplEnableStartDocking() { mbStartDockingEnabled = true; }
- bool ImplStartDockingEnabled() const { return mbStartDockingEnabled; }
- void ImplPreparePopupMode();
-
-public:
- ImplDockingWindowWrapper( const vcl::Window *pWindow );
- ~ImplDockingWindowWrapper();
-
- vcl::Window* GetWindow() { return mpDockingWindow; }
- void ImplStartDocking( const Point& rPos );
-
- // those methods actually call the corresponding handlers
- void StartDocking( const Point& rPos, tools::Rectangle const & rRect );
- bool Docking( const Point& rPos, tools::Rectangle& rRect );
- void EndDocking( const tools::Rectangle& rRect, bool bFloatMode );
- bool PrepareToggleFloatingMode();
- void ToggleFloatingMode();
-
- void SetDragArea( const tools::Rectangle& rRect );
- const tools::Rectangle& GetDragArea() const { return maDragArea;}
-
- void Lock();
- void Unlock();
- bool IsLocked() const { return mbLocked;}
-
- void StartPopupMode( const tools::Rectangle& rRect, FloatWinPopupFlags nPopupModeFlags );
- void StartPopupMode( ToolBox* pParentToolBox, FloatWinPopupFlags nPopupModeFlags );
- bool IsInPopupMode() const;
-
- void SetPopupModeEndHdl( const Link<FloatingWindow*,void>& rLink ) { maPopupModeEndHdl = rLink; }
-
- void TitleButtonClick( TitleButton nButton );
- void Resizing( Size& rSize );
- void Tracking( const TrackingEvent& rTEvt );
-
- void ShowTitleButton( TitleButton nButton, bool bVisible );
-
- void SetMinOutputSizePixel( const Size& rSize );
-
- void SetMaxOutputSizePixel( const Size& rSize );
-
- bool IsDocking() const { return mbDocking; }
- bool IsDockingCanceled() const { return mbDockCanceled; }
-
- void SetFloatingMode( bool bFloatMode );
- bool IsFloatingMode() const;
- SystemWindow* GetFloatingWindow() const;
-
- void SetFloatStyle( WinBits nWinStyle );
- WinBits GetFloatStyle() const { return mnFloatBits;}
-
- void setPosSizePixel( tools::Long nX, tools::Long nY,
- tools::Long nWidth, tools::Long nHeight,
- PosSizeFlags nFlags );
- Point GetPosPixel() const;
- Size GetSizePixel() const;
-};
+class ImplDockingWindowWrapper;
class VCL_DLLPUBLIC DockingManager
{
diff --git a/solenv/clang-format/excludelist b/solenv/clang-format/excludelist
index e51305a2f579..d3205d56d617 100644
--- a/solenv/clang-format/excludelist
+++ b/solenv/clang-format/excludelist
@@ -15117,6 +15117,7 @@ vcl/source/window/errinf.cxx
vcl/source/window/event.cxx
vcl/source/window/floatwin.cxx
vcl/source/window/globalization.cxx
+vcl/source/window/impldockingwrapper.hxx
vcl/source/window/keycod.cxx
vcl/source/window/keyevent.cxx
vcl/source/window/layout.cxx
diff --git a/vcl/source/window/dockmgr.cxx b/vcl/source/window/dockmgr.cxx
index 83018e34622b..9b74789d2847 100644
--- a/vcl/source/window/dockmgr.cxx
+++ b/vcl/source/window/dockmgr.cxx
@@ -33,6 +33,8 @@
#include <vcl/timer.hxx>
#include <vcl/settings.hxx>
+#include "impldockingwrapper.hxx"
+
#define DOCKWIN_FLOATSTYLES (WB_SIZEABLE | WB_MOVEABLE | WB_CLOSEABLE | WB_STANDALONE)
namespace {
diff --git a/vcl/source/window/dockwin.cxx b/vcl/source/window/dockwin.cxx
index efa9d2272672..77218140e507 100644
--- a/vcl/source/window/dockwin.cxx
+++ b/vcl/source/window/dockwin.cxx
@@ -33,6 +33,8 @@
#include <window.h>
#include <brdwin.hxx>
+#include "impldockingwrapper.hxx"
+
#define DOCKWIN_FLOATSTYLES (WB_SIZEABLE | WB_MOVEABLE | WB_CLOSEABLE | WB_STANDALONE)
class DockingWindow::ImplData
diff --git a/vcl/source/window/event.cxx b/vcl/source/window/event.cxx
index 682dbd5a9fec..2a831a0ec995 100644
--- a/vcl/source/window/event.cxx
+++ b/vcl/source/window/event.cxx
@@ -29,6 +29,8 @@
#include <config_features.h>
#include <comphelper/scopeguard.hxx>
+#include "impldockingwrapper.hxx"
+
namespace vcl {
void Window::DataChanged( const DataChangedEvent& )
diff --git a/vcl/source/window/impldockingwrapper.hxx b/vcl/source/window/impldockingwrapper.hxx
new file mode 100644
index 000000000000..fe307ee6e356
--- /dev/null
+++ b/vcl/source/window/impldockingwrapper.hxx
@@ -0,0 +1,131 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#pragma once
+
+#include <vcl/dockwin.hxx>
+#include <memory>
+#include <vector>
+
+/** ImplDockingWindowWrapper
+ *
+ * ImplDockingWindowWrapper obsoletes the DockingWindow class.
+ * It is better because it can make a "normal window" dockable.
+ * All DockingWindows should be converted the new class.
+ */
+
+class ImplDockingWindowWrapper final
+{
+ friend class ::vcl::Window;
+ friend class DockingManager;
+ friend class DockingWindow;
+
+private:
+
+ // the original 'Docking'window
+ VclPtr<vcl::Window> mpDockingWindow;
+
+ // the original DockingWindow members
+ VclPtr<FloatingWindow> mpFloatWin;
+ VclPtr<vcl::Window> mpOldBorderWin;
+ VclPtr<vcl::Window> mpParent;
+ Link<FloatingWindow*,void> maPopupModeEndHdl;
+ Point maFloatPos;
+ Point maDockPos;
+ Point maMouseOff;
+ Size maMinOutSize;
+ Size maMaxOutSize;
+ tools::Rectangle maDragArea;
+ tools::Long mnTrackX;
+ tools::Long mnTrackY;
+ tools::Long mnTrackWidth;
+ tools::Long mnTrackHeight;
+ sal_Int32 mnDockLeft;
+ sal_Int32 mnDockTop;
+ sal_Int32 mnDockRight;
+ sal_Int32 mnDockBottom;
+ WinBits mnFloatBits;
+ bool mbDockCanceled:1,
+ mbDocking:1,
+ mbLastFloatMode:1,
+ mbDockBtn:1,
+ mbHideBtn:1,
+ mbStartDockingEnabled:1,
+ mbLocked:1;
+
+ DECL_LINK( PopupModeEnd, FloatingWindow*, void );
+ void ImplEnableStartDocking() { mbStartDockingEnabled = true; }
+ bool ImplStartDockingEnabled() const { return mbStartDockingEnabled; }
+ void ImplPreparePopupMode();
+
+public:
+ ImplDockingWindowWrapper( const vcl::Window *pWindow );
+ ~ImplDockingWindowWrapper();
+
+ vcl::Window* GetWindow() { return mpDockingWindow; }
+ void ImplStartDocking( const Point& rPos );
+
+ // those methods actually call the corresponding handlers
+ void StartDocking( const Point& rPos, tools::Rectangle const & rRect );
+ bool Docking( const Point& rPos, tools::Rectangle& rRect );
+ void EndDocking( const tools::Rectangle& rRect, bool bFloatMode );
+ bool PrepareToggleFloatingMode();
+ void ToggleFloatingMode();
+
+ void SetDragArea( const tools::Rectangle& rRect );
+ const tools::Rectangle& GetDragArea() const { return maDragArea;}
+
+ void Lock();
+ void Unlock();
+ bool IsLocked() const { return mbLocked;}
+
+ void StartPopupMode( const tools::Rectangle& rRect, FloatWinPopupFlags nPopupModeFlags );
+ void StartPopupMode( ToolBox* pParentToolBox, FloatWinPopupFlags nPopupModeFlags );
+ bool IsInPopupMode() const;
+
+ void SetPopupModeEndHdl( const Link<FloatingWindow*,void>& rLink ) { maPopupModeEndHdl = rLink; }
+
+ void TitleButtonClick( TitleButton nButton );
+ void Resizing( Size& rSize );
+ void Tracking( const TrackingEvent& rTEvt );
+
+ void ShowTitleButton( TitleButton nButton, bool bVisible );
+
+ void SetMinOutputSizePixel( const Size& rSize );
+
+ void SetMaxOutputSizePixel( const Size& rSize );
+
+ bool IsDocking() const { return mbDocking; }
+ bool IsDockingCanceled() const { return mbDockCanceled; }
+
+ void SetFloatingMode( bool bFloatMode );
+ bool IsFloatingMode() const;
+ SystemWindow* GetFloatingWindow() const;
+
+ void SetFloatStyle( WinBits nWinStyle );
+ WinBits GetFloatStyle() const { return mnFloatBits;}
+
+ void setPosSizePixel( tools::Long nX, tools::Long nY,
+ tools::Long nWidth, tools::Long nHeight,
+ PosSizeFlags nFlags );
+ Point GetPosPixel() const;
+ Size GetSizePixel() const;
+};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx
index ccb1178f8a0b..3992fe902b0b 100644
--- a/vcl/source/window/menu.cxx
+++ b/vcl/source/window/menu.cxx
@@ -105,9 +105,9 @@ void ImplClosePopupToolBox( const VclPtr<vcl::Window>& pWin )
{
if ( pWin->GetType() == WindowType::TOOLBOX && ImplGetDockingManager()->IsInPopupMode( pWin ) )
{
- ImplDockingWindowWrapper* pWrapper = ImplGetDockingManager()->GetDockingWindowWrapper( pWin );
- if ( pWrapper && pWrapper->GetFloatingWindow() )
- static_cast<FloatingWindow*>(pWrapper->GetFloatingWindow())->EndPopupMode( FloatWinPopupEndFlags::CloseAll );
+ SystemWindow* pFloatingWindow = ImplGetDockingManager()->GetFloatingWindow(pWin);
+ if (pFloatingWindow)
+ static_cast<FloatingWindow*>(pFloatingWindow)->EndPopupMode( FloatWinPopupEndFlags::CloseAll );
}
}
diff --git a/vcl/source/window/toolbox.cxx b/vcl/source/window/toolbox.cxx
index eff09817c4a0..bf0033eb65ec 100644
--- a/vcl/source/window/toolbox.cxx
+++ b/vcl/source/window/toolbox.cxx
@@ -52,6 +52,7 @@
#include <vector>
#include <math.h>
+#include "impldockingwrapper.hxx"
#define SMALLBUTTON_HSIZE 7
#define SMALLBUTTON_VSIZE 7
diff --git a/vcl/source/window/toolbox2.cxx b/vcl/source/window/toolbox2.cxx
index c231848a9cf1..537012174eaf 100644
--- a/vcl/source/window/toolbox2.cxx
+++ b/vcl/source/window/toolbox2.cxx
@@ -44,6 +44,8 @@
#include <vcl/uitest/uiobject.hxx>
+#include "impldockingwrapper.hxx"
+
using namespace vcl;
#define TB_SEP_SIZE 8 // Separator size
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index e21cacd71c07..308d1c6b5b55 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -80,6 +80,7 @@
#include <win/salframe.h>
#endif
+#include "impldockingwrapper.hxx"
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::lang;
More information about the Libreoffice-commits
mailing list