[Libreoffice-commits] core.git: cui/source include/sfx2 include/svtools include/svx include/vcl sfx2/source solenv/clang-format svtools/source svx/inc svx/Library_svxcore.mk svx/Library_svx.mk svx/source svx/uiconfig svx/UIConfig_svx.mk vcl/source vcl/unx
Caolán McNamara (via logerrit)
logerrit at kemper.freedesktop.org
Tue Jan 21 08:58:38 UTC 2020
cui/source/dialogs/cuigaldlg.cxx | 8
cui/source/factory/dlgfact.cxx | 8
cui/source/factory/dlgfact.hxx | 9
cui/source/inc/cuigaldlg.hxx | 10
include/sfx2/tabdlg.hxx | 2
include/svtools/valueset.hxx | 2
include/svx/galctrl.hxx | 120 +-----
include/svx/galmisc.hxx | 15
include/svx/galtheme.hxx | 21 -
include/svx/strings.hrc | 4
include/svx/svxdlg.hxx | 9
include/vcl/customweld.hxx | 9
include/vcl/layout.hxx | 17
include/vcl/weld.hxx | 7
sfx2/source/dialog/tabdlg.cxx | 2
solenv/clang-format/blacklist | 2
svtools/source/control/valueset.cxx | 14
svx/Library_svx.mk | 1
svx/Library_svxcore.mk | 2
svx/UIConfig_svx.mk | 1
svx/inc/GalleryControl.hxx | 16
svx/inc/bitmaps.hlst | 2
svx/inc/galbrws2.hxx | 91 ++--
svx/inc/pch/precompiled_svx.hxx | 94 ----
svx/inc/pch/precompiled_svxcore.hxx | 11
svx/source/gallery2/GalleryControl.cxx | 204 ----------
svx/source/gallery2/GallerySplitter.cxx | 38 -
svx/source/gallery2/GallerySplitter.hxx | 44 --
svx/source/gallery2/galbrws1.cxx | 341 +++++------------
svx/source/gallery2/galbrws1.hxx | 75 +--
svx/source/gallery2/galbrws2.cxx | 637 +++++++++++++++-----------------
svx/source/gallery2/galctrl.cxx | 476 +++++------------------
svx/source/gallery2/galmisc.cxx | 47 +-
svx/source/gallery2/galtheme.cxx | 10
svx/uiconfig/ui/gallerymenu1.ui | 6
svx/uiconfig/ui/gallerymenu2.ui | 10
svx/uiconfig/ui/sidebargallery.ui | 345 +++++++++++++++++
vcl/source/app/customweld.cxx | 5
vcl/source/app/salvtables.cxx | 14
vcl/source/window/layout.cxx | 12
vcl/unx/gtk3/gtk3gtkinst.cxx | 290 +++++++++-----
41 files changed, 1369 insertions(+), 1662 deletions(-)
New commits:
commit fa8c85fa90e9565a357b247a69f930098d11ff84
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Thu Jan 16 16:38:15 2020 +0000
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Tue Jan 21 09:57:58 2020 +0100
weld gallery panel
Change-Id: I4aebb3f90e9943044d106a507972c39434988f03
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87003
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/cui/source/dialogs/cuigaldlg.cxx b/cui/source/dialogs/cuigaldlg.cxx
index 21726bb73c7c..fcf0d4cb79ac 100644
--- a/cui/source/dialogs/cuigaldlg.cxx
+++ b/cui/source/dialogs/cuigaldlg.cxx
@@ -367,7 +367,7 @@ void TakeProgress::LaunchThread()
maTakeThread->launch();
}
-ActualizeProgress::ActualizeProgress(weld::Window* pWindow, GalleryTheme* pThm)
+ActualizeProgress::ActualizeProgress(weld::Widget* pWindow, GalleryTheme* pThm)
: GenericDialogController(pWindow, "cui/ui/galleryupdateprogress.ui",
"GalleryUpdateProgress")
, pIdle(nullptr)
@@ -416,7 +416,7 @@ IMPL_LINK( ActualizeProgress, ActualizeHdl, const INetURLObject&, rURL, void )
m_xFtActualizeFile->set_label(GetReducedString(rURL, 30));
}
-TitleDialog::TitleDialog(weld::Window* pParent, const OUString& rOldTitle)
+TitleDialog::TitleDialog(weld::Widget* pParent, const OUString& rOldTitle)
: GenericDialogController(pParent, "cui/ui/gallerytitledialog.ui", "GalleryTitleDialog")
, m_xEdit(m_xBuilder->weld_entry("entry"))
{
@@ -428,7 +428,7 @@ TitleDialog::~TitleDialog()
{
}
-GalleryIdDialog::GalleryIdDialog(weld::Window* pParent, GalleryTheme* _pThm)
+GalleryIdDialog::GalleryIdDialog(weld::Widget* pParent, GalleryTheme* _pThm)
: GenericDialogController(pParent, "cui/ui/gallerythemeiddialog.ui", "GalleryThemeIDDialog")
, m_pThm(_pThm)
, m_xBtnOk(m_xBuilder->weld_button("ok"))
@@ -476,7 +476,7 @@ IMPL_LINK_NOARG(GalleryIdDialog, ClickOkHdl, weld::Button&, void)
m_xDialog->response(RET_OK);
}
-GalleryThemeProperties::GalleryThemeProperties(weld::Window* pParent,
+GalleryThemeProperties::GalleryThemeProperties(weld::Widget* pParent,
ExchangeData* _pData, SfxItemSet const * pItemSet)
: SfxTabDialogController(pParent, "cui/ui/gallerythemedialog.ui",
"GalleryThemeDialog", pItemSet)
diff --git a/cui/source/factory/dlgfact.cxx b/cui/source/factory/dlgfact.cxx
index 1b84c073f51d..0825c040c9e3 100644
--- a/cui/source/factory/dlgfact.cxx
+++ b/cui/source/factory/dlgfact.cxx
@@ -1103,7 +1103,7 @@ VclPtr<AbstractSpellDialog> AbstractDialogFactory_Impl::CreateSvxSpellDialog(
return VclPtr<AbstractSpellDialog_Impl>::Create(std::make_unique<svx::SpellDialog>(pSpellChildWindow, pParent, pBindings));
}
-VclPtr<VclAbstractDialog> AbstractDialogFactory_Impl::CreateActualizeProgressDialog(weld::Window* pParent,
+VclPtr<VclAbstractDialog> AbstractDialogFactory_Impl::CreateActualizeProgressDialog(weld::Widget* pParent,
GalleryTheme* pThm)
{
return VclPtr<CuiAbstractController_Impl>::Create(std::make_unique<ActualizeProgress>(pParent, pThm));
@@ -1136,19 +1136,19 @@ VclPtr<VclAbstractDialog> AbstractDialogFactory_Impl::CreateSvxScriptOrgDialog(w
return VclPtr<CuiAbstractController_Impl>::Create(std::make_unique<SvxScriptOrgDialog>(pParent, rLanguage));
}
-VclPtr<AbstractTitleDialog> AbstractDialogFactory_Impl::CreateTitleDialog(weld::Window* pParent,
+VclPtr<AbstractTitleDialog> AbstractDialogFactory_Impl::CreateTitleDialog(weld::Widget* pParent,
const OUString& rOldText)
{
return VclPtr<AbstractTitleDialog_Impl>::Create(std::make_unique<TitleDialog>(pParent, rOldText));
}
-VclPtr<AbstractGalleryIdDialog> AbstractDialogFactory_Impl::CreateGalleryIdDialog(weld::Window* pParent,
+VclPtr<AbstractGalleryIdDialog> AbstractDialogFactory_Impl::CreateGalleryIdDialog(weld::Widget* pParent,
GalleryTheme* pThm)
{
return VclPtr<AbstractGalleryIdDialog_Impl>::Create(std::make_unique<GalleryIdDialog>(pParent, pThm));
}
-VclPtr<VclAbstractDialog> AbstractDialogFactory_Impl::CreateGalleryThemePropertiesDialog(weld::Window* pParent,
+VclPtr<VclAbstractDialog> AbstractDialogFactory_Impl::CreateGalleryThemePropertiesDialog(weld::Widget* pParent,
ExchangeData* pData,
SfxItemSet* pItemSet)
{
diff --git a/cui/source/factory/dlgfact.hxx b/cui/source/factory/dlgfact.hxx
index 174417214907..9c60124748a1 100644
--- a/cui/source/factory/dlgfact.hxx
+++ b/cui/source/factory/dlgfact.hxx
@@ -839,13 +839,14 @@ public:
SfxBindings* pBindings,
svx::SpellDialogChildWindow* pSpellChildWindow ) override;
- virtual VclPtr<VclAbstractDialog> CreateActualizeProgressDialog(weld::Window* pParent, GalleryTheme* pThm) override;
- virtual VclPtr<AbstractTitleDialog> CreateTitleDialog(weld::Window* pParent, const OUString& rOldText) override;
- virtual VclPtr<AbstractGalleryIdDialog> CreateGalleryIdDialog(weld::Window* pParent,
+ virtual VclPtr<VclAbstractDialog> CreateActualizeProgressDialog(weld::Widget* pParent, GalleryTheme* pThm) override;
+ virtual VclPtr<AbstractTitleDialog> CreateTitleDialog(weld::Widget* pParent, const OUString& rOldText) override;
+ virtual VclPtr<AbstractGalleryIdDialog> CreateGalleryIdDialog(weld::Widget* pParent,
GalleryTheme* pThm) override;
- virtual VclPtr<VclAbstractDialog> CreateGalleryThemePropertiesDialog(weld::Window* pParent,
+ virtual VclPtr<VclAbstractDialog> CreateGalleryThemePropertiesDialog(weld::Widget* pParent,
ExchangeData* pData,
SfxItemSet* pItemSet) override;
+
virtual VclPtr<AbstractURLDlg> CreateURLDialog(weld::Widget* pParent,
const OUString& rURL, const OUString& rAltText, const OUString& rDescription,
const OUString& rTarget, const OUString& rName,
diff --git a/cui/source/inc/cuigaldlg.hxx b/cui/source/inc/cuigaldlg.hxx
index f472d283b2fd..0ad85b65401d 100644
--- a/cui/source/inc/cuigaldlg.hxx
+++ b/cui/source/inc/cuigaldlg.hxx
@@ -147,7 +147,7 @@ private:
DECL_LINK(ActualizeHdl, const INetURLObject&, void);
public:
- ActualizeProgress(weld::Window* pWindow, GalleryTheme* pThm);
+ ActualizeProgress(weld::Widget* pWindow, GalleryTheme* pThm);
virtual ~ActualizeProgress() override;
virtual short run() override;
@@ -158,7 +158,7 @@ class TitleDialog : public weld::GenericDialogController
private:
std::unique_ptr<weld::Entry> m_xEdit;
public:
- TitleDialog(weld::Window* pParent, const OUString& rOldText);
+ TitleDialog(weld::Widget* pParent, const OUString& rOldText);
virtual ~TitleDialog() override;
OUString GetTitle() const { return m_xEdit->get_text(); }
};
@@ -172,7 +172,7 @@ private:
DECL_LINK(ClickOkHdl, weld::Button&, void);
public:
- GalleryIdDialog(weld::Window* pParent, GalleryTheme* pThm);
+ GalleryIdDialog(weld::Widget* pParent, GalleryTheme* pThm);
virtual ~GalleryIdDialog() override;
sal_uInt32 GetId() const { return m_xLbResName->get_active(); }
};
@@ -184,7 +184,7 @@ class GalleryThemeProperties : public SfxTabDialogController
virtual void PageCreated(const OString& rId, SfxTabPage &rPage) override;
public:
- GalleryThemeProperties(weld::Window* pParent, ExchangeData* pData, SfxItemSet const * pItemSet);
+ GalleryThemeProperties(weld::Widget* pParent, ExchangeData* pData, SfxItemSet const * pItemSet);
};
class TPGalleryThemeGeneral : public SfxTabPage
@@ -231,7 +231,7 @@ class TPGalleryThemeProperties : public SfxTabPage
css::uno::Reference< css::media::XPlayer > xMediaPlayer;
css::uno::Reference< css::ui::dialogs::XFolderPicker2 > xFolderPicker;
- SvxGalleryPreview m_aWndPreview;
+ DialogGalleryPreview m_aWndPreview;
std::unique_ptr<weld::ComboBox> m_xCbbFileType;
std::unique_ptr<weld::TreeView> m_xLbxFound;
std::unique_ptr<weld::Button> m_xBtnSearch;
diff --git a/include/sfx2/tabdlg.hxx b/include/sfx2/tabdlg.hxx
index f4c4b9c7b14b..05230e58310b 100644
--- a/include/sfx2/tabdlg.hxx
+++ b/include/sfx2/tabdlg.hxx
@@ -101,7 +101,7 @@ protected:
*/
void SavePosAndId();
public:
- SfxTabDialogController(weld::Window* pParent, const OUString& rUIXMLDescription, const OString& rID,
+ SfxTabDialogController(weld::Widget* pParent, const OUString& rUIXMLDescription, const OString& rID,
const SfxItemSet * = nullptr, bool bEditFmt = false);
virtual ~SfxTabDialogController() override;
diff --git a/include/svtools/valueset.hxx b/include/svtools/valueset.hxx
index 5d520e2bb097..fed18733ec3c 100644
--- a/include/svtools/valueset.hxx
+++ b/include/svtools/valueset.hxx
@@ -479,6 +479,8 @@ public:
virtual void LoseFocus() override;
virtual void Resize() override;
virtual void StyleUpdated() override;
+ virtual void Show() override;
+ virtual void Hide() override;
virtual OUString RequestHelp(tools::Rectangle& rHelpRect) override;
void Select();
diff --git a/include/svx/galctrl.hxx b/include/svx/galctrl.hxx
index ddbcbb3a60cf..d88a156850e0 100644
--- a/include/svx/galctrl.hxx
+++ b/include/svx/galctrl.hxx
@@ -24,52 +24,50 @@
#include <vcl/customweld.hxx>
#include <vcl/transfer.hxx>
#include <svtools/valueset.hxx>
-#include <svtools/brwbox.hxx>
#include <vcl/GraphicObject.hxx>
#include <svx/svxdllapi.h>
+class GalleryDragDrop;
class GalleryTheme;
class GalleryBrowser2;
class INetURLObject;
-class GalleryPreview final : public vcl::Window, public DropTargetHelper, public DragSourceHelper
+class GalleryPreview final : public weld::CustomWidgetController
{
private:
- GraphicObject aGraphicObj;
- tools::Rectangle aPreviewRect;
- GalleryTheme* const mpTheme;
+ std::unique_ptr<GalleryDragDrop> mxDragDropTargetHelper;
+ std::unique_ptr<weld::ScrolledWindow> mxScrolledWindow;
+ GraphicObject aGraphicObj;
+ tools::Rectangle aPreviewRect;
+ GalleryBrowser2* mpParent;
+ GalleryTheme* mpTheme;
bool ImplGetGraphicCenterRect( const Graphic& rGraphic, tools::Rectangle& rResultRect ) const;
- void InitSettings();
// Window
virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) override;
- virtual Size GetOptimalSize() const override;
- virtual void MouseButtonDown(const MouseEvent& rMEvt) override;
- virtual void Command(const CommandEvent& rCEvt) override;
- virtual void KeyInput( const KeyEvent& rKEvt ) override;
- virtual void DataChanged( const DataChangedEvent& rDCEvt ) override;
+ virtual void SetDrawingArea(weld::DrawingArea* pDrawingArea) override;
+ virtual bool MouseButtonDown(const MouseEvent& rMEvt) override;
+ virtual bool Command(const CommandEvent& rCEvt) override;
+ virtual bool KeyInput( const KeyEvent& rKEvt ) override;
+public:
- // DropTargetHelper
- virtual sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt ) override;
- virtual sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt ) override;
+ GalleryPreview(GalleryBrowser2* pParent, std::unique_ptr<weld::ScrolledWindow> xScrolledWindow);
+ void SetTheme(GalleryTheme* pTheme) { mpTheme = pTheme; }
+ virtual ~GalleryPreview() override;
- // DragSourceHelper
- virtual void StartDrag( sal_Int8 nAction, const Point& rPosPixel ) override;
+ virtual bool StartDrag() override;
-public:
-
- GalleryPreview(vcl::Window* pParent,
- WinBits nStyle = WB_TABSTOP | WB_BORDER,
- GalleryTheme* pTheme = nullptr);
+ virtual void Show() override;
+ virtual void Hide() override;
void SetGraphic( const Graphic& rGraphic ) { aGraphicObj.SetGraphic( rGraphic ); }
static void PreviewMedia( const INetURLObject& rURL );
};
-class SVX_DLLPUBLIC SvxGalleryPreview final : public weld::CustomWidgetController
+class SVX_DLLPUBLIC DialogGalleryPreview final : public weld::CustomWidgetController
{
private:
GraphicObject aGraphicObj;
@@ -81,92 +79,40 @@ private:
public:
- SvxGalleryPreview();
+ DialogGalleryPreview();
virtual void SetDrawingArea(weld::DrawingArea* pDrawingArea) override;
void SetGraphic( const Graphic& rGraphic ) { aGraphicObj.SetGraphic( rGraphic ); }
bool SetGraphic( const INetURLObject& );
};
-class GalleryIconView final : public ValueSet, public DropTargetHelper, public DragSourceHelper
+class GalleryIconView final : public SvtValueSet
{
- using ValueSet::StartDrag;
-
private:
+ std::unique_ptr<GalleryDragDrop> mxDragDropTargetHelper;
+ GalleryBrowser2* mpParent;
GalleryTheme* mpTheme;
- void InitSettings();
-
// ValueSet
virtual void UserDraw( const UserDrawEvent& rUDEvt ) override;
// Window
- virtual void MouseButtonDown( const MouseEvent& rMEvt ) override;
- virtual void Command( const CommandEvent& rCEvt ) override;
- virtual void KeyInput( const KeyEvent& rKEvt ) override;
- virtual void DataChanged( const DataChangedEvent& rDCEvt ) override;
-
- // DropTargetHelper
- virtual sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt ) override;
- virtual sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt ) override;
-
- // DragSourceHelper
- virtual void StartDrag( sal_Int8 nAction, const Point& rPosPixel ) override;
-
-public:
-
- GalleryIconView( GalleryBrowser2* pParent, GalleryTheme* pTheme );
-};
+ virtual bool MouseButtonDown( const MouseEvent& rMEvt ) override;
+ virtual bool Command( const CommandEvent& rCEvt ) override;
+ virtual bool KeyInput( const KeyEvent& rKEvt ) override;
-class GalleryListView final : public BrowseBox
-{
- using BrowseBox::AcceptDrop;
- using BrowseBox::ExecuteDrop;
-
-private:
-
- Link<GalleryListView*,void> maSelectHdl;
- GalleryTheme* mpTheme;
- sal_uInt32 mnCurRow;
-
- void InitSettings();
-
- // BrowseBox
- virtual bool SeekRow( long nRow ) override;
- virtual void PaintField( vcl::RenderContext& rDev, const tools::Rectangle& rRect, sal_uInt16 nColumnId ) const override;
- virtual void DoubleClick( const BrowserMouseEvent& rEvt ) override;
- virtual void Select() override;
- virtual sal_Int8 AcceptDrop( const BrowserAcceptDropEvent& rEvt ) override;
- virtual sal_Int8 ExecuteDrop( const BrowserExecuteDropEvent& rEvt ) override;
- virtual void KeyInput( const KeyEvent& rKEvt ) override;
-
- // Window
- virtual void Command( const CommandEvent& rCEvt ) override;
- virtual void DataChanged( const DataChangedEvent& rDCEvt ) override;
-
- // DragSourceHelper
- virtual void StartDrag( sal_Int8 nAction, const Point& rPosPixel ) override;
+ virtual void SetDrawingArea(weld::DrawingArea* pDrawingArea) override;
public:
- GalleryListView( GalleryBrowser2* pParent, GalleryTheme* pTheme );
-
- void SetSelectHdl( const Link<GalleryListView*,void>& rSelectHdl ) { maSelectHdl = rSelectHdl; }
+ GalleryIconView(GalleryBrowser2* pParent, std::unique_ptr<weld::ScrolledWindow> xScrolledWindow);
+ void SetTheme(GalleryTheme* pTheme) { mpTheme = pTheme; }
+ virtual ~GalleryIconView() override;
- /** GetCellText returns the text at the given position
- @param _nRow
- the number of the row
- @param _nColId
- the ID of the column
- @return
- the text out of the cell
- */
- virtual OUString GetCellText(long _nRow, sal_uInt16 _nColId) const override;
+ virtual bool StartDrag() override;
- // from IAccessibleTableProvider
- virtual tools::Rectangle GetFieldCharacterBounds(sal_Int32 _nRow,sal_Int32 _nColumnPos,sal_Int32 nIndex) override;
- virtual sal_Int32 GetFieldIndexAtPoint(sal_Int32 _nRow,sal_Int32 _nColumnPos,const Point& _rPoint) override;
+ static void drawTransparenceBackground(vcl::RenderContext& rOut, const Point& rPos, const Size& rSize);
};
#endif // INCLUDED_SVX_GALCTRL_HXX
diff --git a/include/svx/galmisc.hxx b/include/svx/galmisc.hxx
index b3236cf9c37b..2ac010e0ed06 100644
--- a/include/svx/galmisc.hxx
+++ b/include/svx/galmisc.hxx
@@ -91,7 +91,6 @@ bool FileExists( const INetURLObject& rURL );
bool CreateDir( const INetURLObject& rURL );
bool CopyFile( const INetURLObject& rSrcURL, const INetURLObject& rDstURL );
bool KillFile( const INetURLObject& rURL );
-BitmapEx GalleryResGetBitmapEx(const OUString& rId);
class SgaIMapInfo final : public SdrObjUserData, public SfxListener
{
@@ -131,22 +130,26 @@ class SVX_DLLPUBLIC GalleryProgress
class GalleryTheme;
class GraphicObject;
-class GalleryTransferable final : public TransferableHelper
+class GalleryTransferable final : public TransferDataContainer
{
friend class GalleryTheme;
using TransferableHelper::CopyToClipboard;
GalleryTheme* mpTheme;
- SgaObjKind const meObjectKind;
- sal_uInt32 const mnObjectPos;
+ SgaObjKind meObjectKind;
+ sal_uInt32 mnObjectPos;
tools::SvRef<SotStorageStream> mxModelStream;
std::unique_ptr<GraphicObject> mpGraphicObject;
std::unique_ptr<INetURLObject> mpURL;
+ void InitData( bool bLazy );
+
+public:
GalleryTransferable( GalleryTheme* pTheme, sal_uInt32 nObjectPos, bool bLazy );
virtual ~GalleryTransferable() override;
- void InitData( bool bLazy );
+ void SelectObject(sal_uInt32 nObjectPos);
+ sal_uInt32 GetObject() const { return mnObjectPos; }
// TransferableHelper
virtual void AddSupportedFormats() override;
@@ -155,7 +158,7 @@ using TransferableHelper::CopyToClipboard;
virtual void DragFinished( sal_Int8 nDropAction ) override;
virtual void ObjectReleased() override;
- void StartDrag( vcl::Window* pWindow, sal_Int8 nDragSourceActions );
+ bool StartDrag();
};
enum class GalleryHintType
diff --git a/include/svx/galtheme.hxx b/include/svx/galtheme.hxx
index 64a3c7e5cfc4..ff7200ded31b 100644
--- a/include/svx/galtheme.hxx
+++ b/include/svx/galtheme.hxx
@@ -90,7 +90,11 @@ private:
SAL_DLLPRIVATE bool ImplWriteSgaObject(const SgaObject& rObj, sal_uInt32 nPos, GalleryObject* pExistentEntry);
SAL_DLLPRIVATE void ImplWrite();
SAL_DLLPRIVATE const GalleryObject* ImplGetGalleryObject(sal_uInt32 nPos) const
- { return aObjectList[ nPos ].get(); }
+ {
+ if (nPos < aObjectList.size())
+ return aObjectList[ nPos ].get();
+ return nullptr;
+ }
const GalleryObject* ImplGetGalleryObject( const INetURLObject& rURL );
SAL_DLLPRIVATE sal_uInt32 ImplGetGalleryObjectPos( const GalleryObject* pObj ) const
@@ -162,12 +166,12 @@ public:
public:
- SAL_DLLPRIVATE SgaObjKind GetObjectKind(sal_uInt32 nPos) const
- {
- DBG_ASSERT( nPos < GetObjectCount(), "Position out of range" );
- return ImplGetGalleryObject( nPos )->eObjKind;
- }
-
+ SAL_DLLPRIVATE SgaObjKind GetObjectKind(sal_uInt32 nPos) const
+ {
+ if (nPos < GetObjectCount())
+ return ImplGetGalleryObject( nPos )->eObjKind;
+ return SgaObjKind::NONE;
+ }
SAL_DLLPRIVATE const INetURLObject& GetObjectURL(sal_uInt32 nPos) const
{
@@ -192,8 +196,7 @@ public:
SAL_DLLPRIVATE bool InsertTransferable(const css::uno::Reference< css::datatransfer::XTransferable >& rxTransferable, sal_uInt32 nInsertPos);
- SAL_DLLPRIVATE void CopyToClipboard(vcl::Window* pWindow, sal_uInt32 nPos);
- SAL_DLLPRIVATE void StartDrag(vcl::Window* pWindow, sal_uInt32 nPos);
+ SAL_DLLPRIVATE void CopyToClipboard(sal_uInt32 nPos);
public:
diff --git a/include/svx/strings.hrc b/include/svx/strings.hrc
index 993b03a9c8e9..02d249e64664 100644
--- a/include/svx/strings.hrc
+++ b/include/svx/strings.hrc
@@ -938,7 +938,6 @@
// Tango colors, see: http://tango.freedesktop.org/Tango_Icon_Theme_Guidelines
#define RID_SVXSTR_COLOR_TANGO_ALUMINIUM NC_("RID_SVXSTR_COLOR_TANGO_ALUMINIUM", "Tango: Aluminium")
#define RID_SVXSTR_GALLERYPROPS_GALTHEME NC_("RID_SVXSTR_GALLERYPROPS_GALTHEME", "Gallery Theme")
-#define RID_SVXSTR_GALLERY_THEMEITEMS NC_("RID_SVXSTR_GALLERY_THEMEITEMS", "Theme Items")
#define RID_SVXSTR_GALLERY_PREVIEW NC_("RID_SVXSTR_GALLERY_PREVIEW", "Preview")
#define RID_SVXSTR_SUCCESSRECOV NC_("RID_SVXSTR_SUCCESSRECOV", "Successfully recovered")
#define RID_SVXSTR_ORIGDOCRECOV NC_("RID_SVXSTR_ORIGDOCRECOV", "Original document recovered")
@@ -966,10 +965,7 @@
#define RID_SVXSTR_GALLERY_FILTER NC_("RID_SVXSTR_GALLERY_FILTER", "Graphics filter")
#define RID_SVXSTR_GALLERY_NEWTHEME NC_("RID_SVXSTR_GALLERY_NEWTHEME", "New Theme")
-#define RID_SVXSTR_GALLERY_CREATETHEME NC_("RID_SVXSTR_GALLERY_CREATETHEME", "New Theme...")
#define RID_SVXSTR_GALLERY_TITLE NC_("RID_SVXSTR_GALLERY_TITLE", "Title")
-#define RID_SVXSTR_GALLERY_ICONVIEW NC_("RID_SVXSTR_GALLERY_ICONVIEW", "Icon View")
-#define RID_SVXSTR_GALLERY_LISTVIEW NC_("RID_SVXSTR_GALLERY_LISTVIEW", "Detailed View")
#define RID_GALLERYSTR_THEME_3D NC_("RID_GALLERYSTR_THEME_3D", "3D Effects")
#define RID_GALLERYSTR_THEME_ANIMATIONS NC_("RID_GALLERYSTR_THEME_ANIMATIONS", "Animations")
diff --git a/include/svx/svxdlg.hxx b/include/svx/svxdlg.hxx
index 2fce5d60b1b5..22b6139eb0bd 100644
--- a/include/svx/svxdlg.hxx
+++ b/include/svx/svxdlg.hxx
@@ -344,15 +344,16 @@ public:
SfxBindings* pBindings,
svx::SpellDialogChildWindow* pSpellChildWindow )=0;
- virtual VclPtr<VclAbstractDialog> CreateActualizeProgressDialog(weld::Window* pParent,
+ virtual VclPtr<VclAbstractDialog> CreateActualizeProgressDialog(weld::Widget* pParent,
GalleryTheme* pThm) = 0;
- virtual VclPtr<AbstractTitleDialog> CreateTitleDialog(weld::Window* pParent,
+ virtual VclPtr<AbstractTitleDialog> CreateTitleDialog(weld::Widget* pParent,
const OUString& rOldText) = 0;
- virtual VclPtr<AbstractGalleryIdDialog> CreateGalleryIdDialog(weld::Window* pParent,
+ virtual VclPtr<AbstractGalleryIdDialog> CreateGalleryIdDialog(weld::Widget* pParent,
GalleryTheme* pThm) = 0;
- virtual VclPtr<VclAbstractDialog> CreateGalleryThemePropertiesDialog(weld::Window* pParent,
+ virtual VclPtr<VclAbstractDialog> CreateGalleryThemePropertiesDialog(weld::Widget* pParent,
ExchangeData* pData,
SfxItemSet* pItemSet ) = 0;
+
virtual VclPtr<AbstractURLDlg> CreateURLDialog(weld::Widget* pParent,
const OUString& rURL, const OUString& rAltText, const OUString& rDescription,
const OUString& rTarget, const OUString& rName,
diff --git a/include/vcl/customweld.hxx b/include/vcl/customweld.hxx
index 330ab167e37d..148bd6ac6554 100644
--- a/include/vcl/customweld.hxx
+++ b/include/vcl/customweld.hxx
@@ -19,6 +19,7 @@ class VCL_DLLPUBLIC CustomWidgetController
private:
Size m_aSize;
weld::DrawingArea* m_pDrawingArea;
+ DECL_LINK(DragBeginHdl, weld::DrawingArea&, bool);
public:
virtual css::uno::Reference<css::accessibility::XAccessible> CreateAccessible()
@@ -72,6 +73,14 @@ public:
void SetPointer(PointerStyle ePointerStyle) { m_pDrawingArea->set_cursor(ePointerStyle); }
void SetHelpId(const OString& rHelpId) { m_pDrawingArea->set_help_id(rHelpId); }
void SetAccessibleName(const OUString& rName) { m_pDrawingArea->set_accessible_name(rName); }
+ void SetDragDataTransferrable(rtl::Reference<TransferDataContainer>& rTransferrable,
+ sal_uInt8 eDNDConstants)
+ {
+ m_pDrawingArea->enable_drag_source(rTransferrable, eDNDConstants);
+ m_pDrawingArea->connect_drag_begin(LINK(this, CustomWidgetController, DragBeginHdl));
+ }
+ // return true to disallow drag, false to allow
+ virtual bool StartDrag() { return false; }
void set_size_request(int nWidth, int nHeight)
{
m_pDrawingArea->set_size_request(nWidth, nHeight);
diff --git a/include/vcl/layout.hxx b/include/vcl/layout.hxx
index 9d8290929db6..7989c011cc7f 100644
--- a/include/vcl/layout.hxx
+++ b/include/vcl/layout.hxx
@@ -19,6 +19,7 @@
#include <vcl/window.hxx>
#include <vcl/settings.hxx>
#include <vcl/event.hxx>
+#include <vcl/transfer.hxx>
#include <vcl/vclptr.hxx>
#include <vcl/IContext.hxx>
#include <vcl/commandevent.hxx>
@@ -630,10 +631,13 @@ public:
};
class VCL_DLLPUBLIC VclDrawingArea final : public Control
+ , public DragSourceHelper
{
private:
FactoryFunction m_pFactoryFunction;
void* m_pUserData;
+ rtl::Reference<TransferDataContainer> m_xTransferHelper;
+ sal_Int8 m_nDragAction;
Link<std::pair<vcl::RenderContext&, const tools::Rectangle&>, void> m_aPaintHdl;
Link<const Size&, void> m_aResizeHdl;
Link<const MouseEvent&, bool> m_aMousePressHdl;
@@ -644,6 +648,7 @@ private:
Link<VclDrawingArea&, void> m_aStyleUpdatedHdl;
Link<const CommandEvent&, bool> m_aCommandHdl;
Link<tools::Rectangle&, OUString> m_aQueryTooltipHdl;
+ Link<VclDrawingArea*, bool> m_aStartDragHdl;
virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) override
{
@@ -723,6 +728,7 @@ private:
Help::ShowQuickHelp(this, aHelpArea, sHelpTip, eHelpWinStyle);
}
}
+ virtual void StartDrag(sal_Int8 nAction, const Point& rPosPixel) override;
virtual FactoryFunction GetUITestFactory() const override
{
if (m_pFactoryFunction)
@@ -733,8 +739,10 @@ private:
public:
VclDrawingArea(vcl::Window *pParent, WinBits nStyle)
: Control(pParent, nStyle)
+ , DragSourceHelper(this)
, m_pFactoryFunction(nullptr)
, m_pUserData(nullptr)
+ , m_nDragAction(0)
{
SetBackground();
}
@@ -787,6 +795,15 @@ public:
{
m_aQueryTooltipHdl = rLink;
}
+ void SetStartDragHdl(const Link<VclDrawingArea*, bool>& rLink)
+ {
+ m_aStartDragHdl = rLink;
+ }
+ void SetDragHelper(rtl::Reference<TransferDataContainer>& rHelper, sal_uInt8 eDNDConstants)
+ {
+ m_xTransferHelper = rHelper;
+ m_nDragAction = eDNDConstants;
+ }
};
//Get first window of a pTopLevel window as
diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx
index 9ac53dd91a9e..c61b73782087 100644
--- a/include/vcl/weld.hxx
+++ b/include/vcl/weld.hxx
@@ -1874,6 +1874,8 @@ protected:
Link<const CommandEvent&, bool> m_aCommandHdl;
Link<Widget&, tools::Rectangle> m_aGetFocusRectHdl;
Link<tools::Rectangle&, OUString> m_aQueryTooltipHdl;
+ // if handler returns true, drag is disallowed
+ Link<DrawingArea&, bool> m_aDragBeginHdl;
OUString signal_query_tooltip(tools::Rectangle& rHelpArea)
{
@@ -1892,10 +1894,15 @@ public:
{
m_aQueryTooltipHdl = rLink;
}
+ void connect_drag_begin(const Link<DrawingArea&, bool>& rLink) { m_aDragBeginHdl = rLink; }
virtual void queue_draw() = 0;
virtual void queue_draw_area(int x, int y, int width, int height) = 0;
virtual void queue_resize() = 0;
+ virtual void enable_drag_source(rtl::Reference<TransferDataContainer>& rTransferrable,
+ sal_uInt8 eDNDConstants)
+ = 0;
+
virtual void set_cursor(PointerStyle ePointerStyle) = 0;
// use return here just to generate matching VirtualDevices
diff --git a/sfx2/source/dialog/tabdlg.cxx b/sfx2/source/dialog/tabdlg.cxx
index f21c4e50874b..210b6fb87dc4 100644
--- a/sfx2/source/dialog/tabdlg.cxx
+++ b/sfx2/source/dialog/tabdlg.cxx
@@ -302,7 +302,7 @@ const SfxItemSet* SfxTabPage::GetDialogExampleSet() const
SfxTabDialogController::SfxTabDialogController
(
- weld::Window* pParent, // Parent Window
+ weld::Widget* pParent, // Parent Window
const OUString& rUIXMLDescription, const OString& rID, // Dialog .ui path, Dialog Name
const SfxItemSet* pItemSet, // Itemset with the data;
// can be NULL, when Pages are onDemand
diff --git a/solenv/clang-format/blacklist b/solenv/clang-format/blacklist
index 4ffdd13ad8f1..ce28416b0cdc 100644
--- a/solenv/clang-format/blacklist
+++ b/solenv/clang-format/blacklist
@@ -14056,8 +14056,6 @@ svx/source/form/tbxform.cxx
svx/source/form/typemap.cxx
svx/source/form/xfm_addcondition.cxx
svx/source/gallery2/GalleryControl.cxx
-svx/source/gallery2/GallerySplitter.cxx
-svx/source/gallery2/GallerySplitter.hxx
svx/source/gallery2/codec.cxx
svx/source/gallery2/codec.hxx
svx/source/gallery2/galbrws1.cxx
diff --git a/svtools/source/control/valueset.cxx b/svtools/source/control/valueset.cxx
index 414f3ae6a2ad..69d674be295d 100644
--- a/svtools/source/control/valueset.cxx
+++ b/svtools/source/control/valueset.cxx
@@ -4013,4 +4013,18 @@ void SvtValueSet::SetColor(const Color& rColor)
Invalidate();
}
+void SvtValueSet::Show()
+{
+ if (mxScrolledWindow)
+ mxScrolledWindow->show();
+ CustomWidgetController::Show();
+}
+
+void SvtValueSet::Hide()
+{
+ CustomWidgetController::Hide();
+ if (mxScrolledWindow)
+ mxScrolledWindow->hide();
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/Library_svx.mk b/svx/Library_svx.mk
index 66138648dca0..a2f22cd7c700 100644
--- a/svx/Library_svx.mk
+++ b/svx/Library_svx.mk
@@ -181,7 +181,6 @@ $(eval $(call gb_Library_add_exception_objects,svx,\
svx/source/sidebar/nbdtmg \
svx/source/sidebar/nbdtmgfact \
svx/source/sidebar/PanelFactory \
- svx/source/sidebar/PanelLayout \
svx/source/sidebar/SelectionAnalyzer \
svx/source/sidebar/SelectionChangeHandler \
svx/source/sidebar/text/TextCharacterSpacingControl \
diff --git a/svx/Library_svxcore.mk b/svx/Library_svxcore.mk
index 89067b0ca03f..e07289cc80f7 100644
--- a/svx/Library_svxcore.mk
+++ b/svx/Library_svxcore.mk
@@ -153,7 +153,6 @@ $(eval $(call gb_Library_add_exception_objects,svxcore,\
svx/source/gallery2/galobj \
svx/source/gallery2/galtheme \
svx/source/gallery2/GalleryControl \
- svx/source/gallery2/GallerySplitter \
svx/source/items/chrtitem \
svx/source/items/clipfmtitem \
svx/source/items/customshapeitem \
@@ -274,6 +273,7 @@ $(eval $(call gb_Library_add_exception_objects,svxcore,\
svx/source/sdr/properties/connectorproperties \
svx/source/sdr/properties/e3dcompoundproperties \
svx/source/sdr/properties/oleproperties \
+ svx/source/sidebar/PanelLayout \
svx/source/svdraw/clonelist \
svx/source/svdraw/charthelper \
svx/source/svdraw/gradtrns \
diff --git a/svx/UIConfig_svx.mk b/svx/UIConfig_svx.mk
index aa3486ae3a51..bd58d87d32e1 100644
--- a/svx/UIConfig_svx.mk
+++ b/svx/UIConfig_svx.mk
@@ -96,6 +96,7 @@ $(eval $(call gb_UIConfig_add_uifiles,svx,\
svx/uiconfig/ui/selectionmenu \
svx/uiconfig/ui/sidebararea \
svx/uiconfig/ui/sidebarshadow \
+ svx/uiconfig/ui/sidebargallery \
svx/uiconfig/ui/sidebargraphic \
svx/uiconfig/ui/sidebarline \
svx/uiconfig/ui/sidebarparagraph \
diff --git a/svx/inc/GalleryControl.hxx b/svx/inc/GalleryControl.hxx
index 4ed3dd7ec7b7..8e65bb50d13a 100644
--- a/svx/inc/GalleryControl.hxx
+++ b/svx/inc/GalleryControl.hxx
@@ -19,13 +19,12 @@
#ifndef INCLUDED_SVX_INC_GALLERYCONTROL_HXX
#define INCLUDED_SVX_INC_GALLERYCONTROL_HXX
-#include <vcl/window.hxx>
+#include <svx/sidebar/PanelLayout.hxx>
#include <svx/svxdllapi.h>
class SfxBindings;
class Gallery;
-class GallerySplitter;
class GalleryBrowser1;
class GalleryBrowser2;
class FmFormModel;
@@ -34,27 +33,20 @@ class Splitter;
namespace svx { namespace sidebar {
-class SVX_DLLPUBLIC GalleryControl final : public vcl::Window
+class SVX_DLLPUBLIC GalleryControl final : public PanelLayout
{
public:
GalleryControl( vcl::Window* pParentWindow );
- bool GalleryKeyInput( const KeyEvent& rKEvt );
-
private:
Gallery* mpGallery;
- VclPtr<GallerySplitter> mpSplitter;
- VclPtr<GalleryBrowser1> mpBrowser1;
- VclPtr<GalleryBrowser2> mpBrowser2;
- bool mbIsInitialResize;
+ std::unique_ptr<GalleryBrowser1> mxBrowser1;
+ std::unique_ptr<GalleryBrowser2> mxBrowser2;
void InitSettings();
- virtual void Resize() override;
virtual void GetFocus() override;
- DECL_LINK(SplitHdl, Splitter*, void);
-
virtual ~GalleryControl() override;
virtual void dispose() override;
};
diff --git a/svx/inc/bitmaps.hlst b/svx/inc/bitmaps.hlst
index 158b66175691..7316b88f7fec 100644
--- a/svx/inc/bitmaps.hlst
+++ b/svx/inc/bitmaps.hlst
@@ -145,8 +145,6 @@
#define RID_SVXBMP_GALLERY_SOUND_5 "svx/res/galsnd5.png"
#define RID_SVXBMP_GALLERY_SOUND_6 "svx/res/galsnd6.png"
#define RID_SVXBMP_GALLERY_SOUND_7 "svx/res/galsnd7.png"
-#define RID_SVXBMP_GALLERY_VIEW_ICON "svx/res/galicon.png"
-#define RID_SVXBMP_GALLERY_VIEW_LIST "svx/res/gallist.png"
#define BMP_NONE_ICON "svx/res/symphony/blank.png"
#define BMP_WIDTH1_ICON "svx/res/symphony/width1.png"
diff --git a/svx/inc/galbrws2.hxx b/svx/inc/galbrws2.hxx
index d37ddad93e65..6b25012b6af4 100644
--- a/svx/inc/galbrws2.hxx
+++ b/svx/inc/galbrws2.hxx
@@ -56,46 +56,39 @@ namespace o3tl
}
-class GalleryToolBox final : public ToolBox
-{
-private:
-
- virtual void KeyInput( const KeyEvent& rKEvt ) override;
-
-public:
-
- GalleryToolBox( GalleryBrowser2* pParent );
-};
-
-
class Gallery;
+class GalleryDragDrop;
class GalleryTheme;
class GalleryIconView;
class GalleryListView;
class GalleryPreview;
+class GalleryTransferable;
class Menu;
class SgaObject;
struct DispatchInfo;
namespace svx { namespace sidebar { class GalleryControl; } }
-class GalleryBrowser2 : public Control, public SfxListener
+class GalleryBrowser2 : public SfxListener
{
friend class GalleryBrowser;
friend class svx::sidebar::GalleryControl;
- using Window::KeyInput;
private:
SvtMiscOptions maMiscOptions;
Gallery* mpGallery;
GalleryTheme* mpCurTheme;
- VclPtr<GalleryIconView> mpIconView;
- VclPtr<GalleryListView> mpListView;
- VclPtr<GalleryPreview> mpPreview;
- VclPtr<GalleryToolBox> maViewBox;
- VclPtr<FixedLine> maSeparator;
- VclPtr<FixedText> maInfoBar;
+ std::unique_ptr<GalleryIconView> mxIconView;
+ std::unique_ptr<weld::CustomWeld> mxIconViewWin;
+ std::unique_ptr<weld::TreeView> mxListView;
+ std::unique_ptr<GalleryDragDrop> mxDragDropTargetHelper;
+ std::unique_ptr<GalleryPreview> mxPreview;
+ std::unique_ptr<weld::CustomWeld> mxPreviewWin;
+ std::unique_ptr<weld::ToggleButton> mxIconButton;
+ std::unique_ptr<weld::ToggleButton> mxListButton;
+ std::unique_ptr<weld::Label> mxInfoBar;
+ rtl::Reference<GalleryTransferable> m_xHelper;
sal_uInt32 mnCurActionPos;
GalleryBrowserMode meMode;
GalleryBrowserMode meLastMode;
@@ -103,24 +96,25 @@ private:
css::uno::Reference< css::uno::XComponentContext > m_xContext;
css::uno::Reference< css::util::XURLTransformer > m_xTransformer;
- void InitSettings();
-
void ImplUpdateViews( sal_uInt16 nSelectionId );
void ImplUpdateInfoBar();
sal_uInt32 ImplGetSelectedItemId( const Point* pSelPosPixel, Point& rSelPos );
void ImplSelectItemId(sal_uInt32 nItemId);
-
- // Control
- virtual void Resize() override;
- virtual void DataChanged( const DataChangedEvent& rDCEvt ) override;
+ void ImplUpdateSelection();
+ void UpdateVisibleRows();
// SfxListener
virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) override;
- DECL_LINK( SelectObjectHdl, GalleryListView*, void );
- DECL_LINK( SelectObjectValueSetHdl, ValueSet*, void );
- DECL_LINK( SelectTbxHdl, ToolBox*, void );
- DECL_LINK( MiscHdl, LinkParamNone*, void );
+ DECL_LINK( SelectObjectHdl, weld::TreeView&, void );
+ DECL_LINK( SelectObjectValueSetHdl, SvtValueSet*, void );
+ DECL_LINK( SelectTbxHdl, weld::ToggleButton&, void );
+ DECL_LINK( PopupMenuHdl, const CommandEvent&, bool );
+ DECL_LINK( KeyInputHdl, const KeyEvent&, bool );
+ DECL_LINK( RowActivatedHdl, weld::TreeView&, bool );
+ DECL_LINK( DragBeginHdl, weld::TreeView&, bool );
+ DECL_LINK( VisRowsScrolledHdl, weld::TreeView&, void );
+ DECL_LINK( SizeAllocHdl, const Size&, void );
private:
@@ -132,16 +126,15 @@ public:
public:
- GalleryBrowser2(vcl::Window* pParent, Gallery* pGallery);
- virtual ~GalleryBrowser2() override;
- virtual void dispose() override;
+ GalleryBrowser2(weld::Builder& rBuilder, Gallery* pGallery);
+ ~GalleryBrowser2();
void SelectTheme( const OUString& rThemeName );
GalleryBrowserMode GetMode() const { return meMode; }
void SetMode( GalleryBrowserMode eMode );
- vcl::Window* GetViewWindow() const;
+ weld::Widget* GetViewWindow() const;
void Travel( GalleryBrowserTravel eTravel );
@@ -150,10 +143,11 @@ public:
sal_Int8 AcceptDrop( DropTargetHelper& rTarget );
sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt );
- void StartDrag( const Point* pDragPoint = nullptr );
+ bool StartDrag();
void TogglePreview();
- void ShowContextMenu( const Point* pContextPoint );
- bool KeyInput( const KeyEvent& rEvt, vcl::Window* pWindow );
+ void ShowContextMenu(const CommandEvent& rCEvt);
+ bool KeyInput(const KeyEvent& rEvt);
+ bool ViewBoxHasFocus() const;
static css::uno::Reference< css::frame::XFrame > GetFrame();
const css::uno::Reference< css::util::XURLTransformer >& GetURLTransformer() const { return m_xTransformer; }
@@ -165,6 +159,29 @@ public:
DECL_STATIC_LINK( GalleryBrowser2, AsyncDispatch_Impl, void*, void );
};
+class GalleryDragDrop : public DropTargetHelper
+{
+private:
+ GalleryBrowser2* m_pParent;
+
+ virtual sal_Int8 AcceptDrop(const AcceptDropEvent& /*rEvt*/) override
+ {
+ return m_pParent->AcceptDrop(*this);
+ }
+
+ virtual sal_Int8 ExecuteDrop(const ExecuteDropEvent& rEvt) override
+ {
+ return m_pParent->ExecuteDrop(rEvt);
+ }
+
+public:
+ GalleryDragDrop(GalleryBrowser2* pParent, const css::uno::Reference<css::datatransfer::dnd::XDropTarget>& rDropTarget)
+ : DropTargetHelper(rDropTarget)
+ , m_pParent(pParent)
+ {
+ }
+};
+
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/inc/pch/precompiled_svx.hxx b/svx/inc/pch/precompiled_svx.hxx
index fd54e6804165..69189bb5b1d6 100644
--- a/svx/inc/pch/precompiled_svx.hxx
+++ b/svx/inc/pch/precompiled_svx.hxx
@@ -13,7 +13,7 @@
manual changes will be rewritten by the next run of update_pch.sh (which presumably
also fixes all possible problems, so it's usually better to use it).
- Generated on 2020-01-14 14:50:22 using:
+ Generated on 2020-01-17 19:33:52 using:
./bin/update_pch svx svx --cutoff=3 --exclude:system --exclude:module --include:local
If after updating build fails, use the following command to locate conflicting headers:
@@ -47,27 +47,20 @@
#endif // PCH_LEVEL >= 1
#if PCH_LEVEL >= 2
#include <osl/diagnose.h>
-#include <osl/diagnose.hxx>
#include <osl/doublecheckedlocking.h>
#include <osl/file.hxx>
#include <osl/getglobalmutex.hxx>
#include <osl/interlck.h>
#include <osl/mutex.hxx>
-#include <osl/nlsupport.h>
-#include <osl/security.hxx>
#include <osl/thread.h>
#include <rtl/alloc.h>
#include <rtl/bootstrap.hxx>
#include <rtl/instance.hxx>
-#include <rtl/math.hxx>
#include <rtl/ref.hxx>
-#include <rtl/string.h>
-#include <rtl/string.hxx>
+#include <rtl/strbuf.hxx>
#include <rtl/tencinfo.h>
#include <rtl/textenc.h>
-#include <rtl/uri.hxx>
#include <rtl/ustrbuf.hxx>
-#include <rtl/ustring.h>
#include <rtl/ustring.hxx>
#include <rtl/uuid.h>
#include <sal/config.h>
@@ -78,7 +71,7 @@
#include <sal/typesizes.h>
#include <vcl/BitmapFilter.hxx>
#include <vcl/EnumContext.hxx>
-#include <vcl/IContext.hxx>
+#include <vcl/GraphicObject.hxx>
#include <vcl/Scanline.hxx>
#include <vcl/alpha.hxx>
#include <vcl/bitmapex.hxx>
@@ -100,23 +93,17 @@
#include <vcl/fixed.hxx>
#include <vcl/font.hxx>
#include <vcl/gdimtf.hxx>
-#include <vcl/gradient.hxx>
#include <vcl/graph.hxx>
-#include <vcl/help.hxx>
#include <vcl/idle.hxx>
#include <vcl/image.hxx>
#include <vcl/imap.hxx>
#include <vcl/imapobj.hxx>
-#include <vcl/layout.hxx>
-#include <vcl/mapmod.hxx>
#include <vcl/menu.hxx>
#include <vcl/metric.hxx>
#include <vcl/outdev.hxx>
#include <vcl/ptrstyle.hxx>
-#include <vcl/region.hxx>
#include <vcl/scrbar.hxx>
#include <vcl/settings.hxx>
-#include <vcl/split.hxx>
#include <vcl/status.hxx>
#include <vcl/svapp.hxx>
#include <vcl/task.hxx>
@@ -135,48 +122,35 @@
#include <basegfx/matrix/b2dhommatrix.hxx>
#include <basegfx/matrix/b3dhommatrix.hxx>
#include <basegfx/point/b2dpoint.hxx>
+#include <basegfx/point/b2ipoint.hxx>
#include <basegfx/point/b3dpoint.hxx>
-#include <basegfx/polygon/b2dpolygon.hxx>
#include <basegfx/polygon/b2dpolygontools.hxx>
-#include <basegfx/polygon/b2dpolypolygon.hxx>
#include <basegfx/polygon/b2dpolypolygontools.hxx>
-#include <basegfx/polygon/b3dpolypolygon.hxx>
#include <basegfx/range/b2irectangle.hxx>
-#include <basegfx/range/b3drange.hxx>
+#include <basegfx/tuple/b2dtuple.hxx>
+#include <basegfx/vector/b2enums.hxx>
#include <basegfx/vector/b3dvector.hxx>
#include <com/sun/star/accessibility/AccessibleEventId.hpp>
-#include <com/sun/star/accessibility/AccessibleEventObject.hpp>
#include <com/sun/star/accessibility/AccessibleRelationType.hpp>
#include <com/sun/star/accessibility/AccessibleRole.hpp>
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
#include <com/sun/star/accessibility/XAccessible.hpp>
#include <com/sun/star/accessibility/XAccessibleContext.hpp>
#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
-#include <com/sun/star/awt/FontDescriptor.hpp>
-#include <com/sun/star/awt/FontSlant.hpp>
#include <com/sun/star/awt/GradientStyle.hpp>
+#include <com/sun/star/awt/Point.hpp>
#include <com/sun/star/awt/Rectangle.hpp>
-#include <com/sun/star/awt/XWindow.hpp>
#include <com/sun/star/beans/NamedValue.hpp>
-#include <com/sun/star/beans/PropertyChangeEvent.hpp>
#include <com/sun/star/beans/PropertyState.hpp>
#include <com/sun/star/beans/PropertyValue.hpp>
-#include <com/sun/star/beans/XMultiPropertySet.hpp>
-#include <com/sun/star/beans/XMultiPropertyStates.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/beans/XPropertySetInfo.hpp>
-#include <com/sun/star/beans/XPropertyState.hpp>
-#include <com/sun/star/container/XChild.hpp>
-#include <com/sun/star/container/XEnumerationAccess.hpp>
#include <com/sun/star/container/XIndexAccess.hpp>
-#include <com/sun/star/container/XIndexReplace.hpp>
#include <com/sun/star/container/XNameAccess.hpp>
#include <com/sun/star/container/XNameContainer.hpp>
#include <com/sun/star/drawing/FillStyle.hpp>
#include <com/sun/star/drawing/LineCap.hpp>
#include <com/sun/star/drawing/TextFitToSizeType.hpp>
-#include <com/sun/star/drawing/XShapeDescriptor.hpp>
-#include <com/sun/star/drawing/XShapes.hpp>
#include <com/sun/star/frame/XController.hpp>
#include <com/sun/star/frame/XController2.hpp>
#include <com/sun/star/frame/XDispatchProvider.hpp>
@@ -185,32 +159,20 @@
#include <com/sun/star/frame/XStatusListener.hpp>
#include <com/sun/star/frame/XToolbarController.hpp>
#include <com/sun/star/i18n/BreakIterator.hpp>
-#include <com/sun/star/i18n/UnicodeScript.hpp>
-#include <com/sun/star/i18n/WordType.hpp>
#include <com/sun/star/lang/DisposedException.hpp>
#include <com/sun/star/lang/EventObject.hpp>
#include <com/sun/star/lang/IllegalArgumentException.hpp>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
#include <com/sun/star/lang/Locale.hpp>
#include <com/sun/star/lang/XInitialization.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/lang/XTypeProvider.hpp>
#include <com/sun/star/lang/XUnoTunnel.hpp>
-#include <com/sun/star/style/LineSpacing.hpp>
#include <com/sun/star/style/NumberingType.hpp>
-#include <com/sun/star/style/TabStop.hpp>
#include <com/sun/star/style/XStyle.hpp>
#include <com/sun/star/text/DefaultNumberingProvider.hpp>
+#include <com/sun/star/text/WritingMode2.hpp>
#include <com/sun/star/text/XNumberingFormatter.hpp>
-#include <com/sun/star/text/XNumberingTypeInfo.hpp>
-#include <com/sun/star/text/XTextAppend.hpp>
-#include <com/sun/star/text/XTextContent.hpp>
-#include <com/sun/star/text/XTextCopy.hpp>
-#include <com/sun/star/text/XTextCursor.hpp>
-#include <com/sun/star/text/XTextRange.hpp>
-#include <com/sun/star/text/XTextRangeCompare.hpp>
-#include <com/sun/star/text/XTextRangeMover.hpp>
#include <com/sun/star/text/textfield/Type.hpp>
#include <com/sun/star/ui/XContextChangeEventListener.hpp>
#include <com/sun/star/uno/Any.h>
@@ -228,16 +190,13 @@
#include <com/sun/star/uno/XWeak.hpp>
#include <com/sun/star/uno/genfunc.hxx>
#include <com/sun/star/util/NumberFormat.hpp>
-#include <com/sun/star/util/URL.hpp>
#include <com/sun/star/util/URLTransformer.hpp>
#include <com/sun/star/util/XModifyListener.hpp>
#include <com/sun/star/util/XUpdatable.hpp>
#include <com/sun/star/view/XSelectionChangeListener.hpp>
#include <com/sun/star/view/XSelectionSupplier.hpp>
-#include <comphelper/accessibleeventnotifier.hxx>
#include <comphelper/broadcasthelper.hxx>
#include <comphelper/comphelperdllapi.h>
-#include <comphelper/interfacecontainer2.hxx>
#include <comphelper/lok.hxx>
#include <comphelper/processfactory.hxx>
#include <comphelper/proparrhlp.hxx>
@@ -262,42 +221,37 @@
#include <cppuhelper/propshlp.hxx>
#include <cppuhelper/queryinterface.hxx>
#include <cppuhelper/supportsservice.hxx>
-#include <cppuhelper/typeprovider.hxx>
#include <cppuhelper/weak.hxx>
-#include <cppuhelper/weakagg.hxx>
-#include <cppuhelper/weakref.hxx>
#include <drawinglayer/drawinglayerdllapi.h>
#include <drawinglayer/geometry/viewinformation2d.hxx>
#include <drawinglayer/primitive2d/baseprimitive2d.hxx>
-#include <editeng/boxitem.hxx>
#include <editeng/brushitem.hxx>
#include <editeng/colritem.hxx>
#include <editeng/editdata.hxx>
#include <editeng/editeng.hxx>
#include <editeng/editengdllapi.h>
#include <editeng/editstat.hxx>
-#include <editeng/editview.hxx>
+#include <editeng/eedata.hxx>
#include <editeng/eeitem.hxx>
#include <editeng/fhgtitem.hxx>
#include <editeng/flditem.hxx>
#include <editeng/fontitem.hxx>
+#include <editeng/frmdir.hxx>
#include <editeng/itemtype.hxx>
#include <editeng/kernitem.hxx>
#include <editeng/lrspitem.hxx>
-#include <editeng/memberids.h>
#include <editeng/numdef.hxx>
#include <editeng/numitem.hxx>
#include <editeng/outliner.hxx>
#include <editeng/outlobj.hxx>
+#include <editeng/paragraphdata.hxx>
#include <editeng/postitem.hxx>
#include <editeng/sizeitem.hxx>
#include <editeng/svxenum.hxx>
+#include <editeng/svxfont.hxx>
#include <editeng/udlnitem.hxx>
#include <editeng/ulspitem.hxx>
#include <editeng/unoedhlp.hxx>
-#include <editeng/unoedsrc.hxx>
-#include <editeng/unolingu.hxx>
-#include <editeng/unotext.hxx>
#include <editeng/wghtitem.hxx>
#include <i18nlangtag/lang.h>
#include <i18nlangtag/languagetag.hxx>
@@ -305,6 +259,7 @@
#include <o3tl/cow_wrapper.hxx>
#include <o3tl/deleter.hxx>
#include <o3tl/optional.hxx>
+#include <o3tl/safeint.hxx>
#include <o3tl/typed_flags_set.hxx>
#include <o3tl/underlyingenumvalue.hxx>
#include <officecfg/Office/Common.hxx>
@@ -352,12 +307,10 @@
#include <svl/stylesheetuser.hxx>
#include <svl/svldllapi.h>
#include <svl/typedwhich.hxx>
-#include <svl/urihelper.hxx>
+#include <svl/undo.hxx>
#include <svl/zforlist.hxx>
#include <svtools/colorcfg.hxx>
-#include <svtools/ctrltool.hxx>
#include <svtools/ehdl.hxx>
-#include <svtools/miscopt.hxx>
#include <svtools/popupwindowcontroller.hxx>
#include <svtools/svtdllapi.h>
#include <svtools/svtresid.hxx>
@@ -365,7 +318,6 @@
#include <svtools/toolboxcontroller.hxx>
#include <svtools/unitconv.hxx>
#include <svtools/valueset.hxx>
-#include <toolkit/helper/convert.hxx>
#include <toolkit/helper/vclunohelper.hxx>
#include <tools/color.hxx>
#include <tools/date.hxx>
@@ -374,7 +326,9 @@
#include <tools/diagnose_ex.h>
#include <tools/fldunit.hxx>
#include <tools/fontenum.hxx>
+#include <tools/fract.hxx>
#include <tools/gen.hxx>
+#include <tools/helpers.hxx>
#include <tools/link.hxx>
#include <tools/mapunit.hxx>
#include <tools/poly.hxx>
@@ -384,16 +338,15 @@
#include <tools/time.hxx>
#include <tools/toolsdllapi.h>
#include <tools/urlobj.hxx>
-#include <unicode/uchar.h>
#include <uno/data.h>
#include <uno/sequence2.h>
#include <unotools/accessiblerelationsethelper.hxx>
#include <unotools/accessiblestatesethelper.hxx>
+#include <unotools/configitem.hxx>
#include <unotools/fontcvt.hxx>
#include <unotools/localedatawrapper.hxx>
#include <unotools/options.hxx>
#include <unotools/pathoptions.hxx>
-#include <unotools/syslocale.hxx>
#include <unotools/unotoolsdllapi.h>
#include <unotools/viewoptions.hxx>
#endif // PCH_LEVEL >= 3
@@ -420,17 +373,14 @@
#include <svx/fmpage.hxx>
#include <svx/fmshell.hxx>
#include <svx/fmtools.hxx>
-#include <svx/gallery.hxx>
#include <svx/galmisc.hxx>
#include <svx/itemwin.hxx>
#include <svx/itextprovider.hxx>
-#include <svx/msdffdef.hxx>
#include <svx/obj3d.hxx>
#include <svx/pageitem.hxx>
#include <svx/rotmodit.hxx>
#include <svx/rulritem.hxx>
-#include <svx/scene3d.hxx>
-#include <svx/sdasitm.hxx>
+#include <svx/sdooitm.hxx>
#include <svx/sdprcitm.hxx>
#include <svx/sdrpaintwindow.hxx>
#include <svx/sdshitm.hxx>
@@ -441,24 +391,22 @@
#include <svx/srchdlg.hxx>
#include <svx/strarray.hxx>
#include <svx/svddef.hxx>
-#include <svx/svdetc.hxx>
#include <svx/svditer.hxx>
#include <svx/svdmodel.hxx>
#include <svx/svdoashp.hxx>
#include <svx/svdoattr.hxx>
#include <svx/svdobj.hxx>
-#include <svx/svdogrp.hxx>
#include <svx/svdopath.hxx>
#include <svx/svdorect.hxx>
#include <svx/svdotable.hxx>
#include <svx/svdotext.hxx>
-#include <svx/svdoutl.hxx>
#include <svx/svdpage.hxx>
#include <svx/svdpagv.hxx>
#include <svx/svdtext.hxx>
#include <svx/svdtrans.hxx>
#include <svx/svdtypes.hxx>
#include <svx/svdview.hxx>
+#include <svx/svx3ditems.hxx>
#include <svx/svxdlg.hxx>
#include <svx/svxdllapi.h>
#include <svx/tbxcolor.hxx>
@@ -466,10 +414,8 @@
#include <svx/unomid.hxx>
#include <svx/unopage.hxx>
#include <svx/unoprov.hxx>
-#include <svx/unoshape.hxx>
#include <svx/unoshtxt.hxx>
#include <svx/viewpt3d.hxx>
-#include <svx/xbtmpit.hxx>
#include <svx/xcolit.hxx>
#include <svx/xdef.hxx>
#include <svx/xenum.hxx>
@@ -486,10 +432,8 @@
#include <svx/xlnstit.hxx>
#include <svx/xlntrit.hxx>
#include <svx/xlnwtit.hxx>
-#include <svx/xoutbmp.hxx>
#include <svx/xtable.hxx>
#include <svx/zoomslideritem.hxx>
-#include <uiobject.hxx>
#endif // PCH_LEVEL >= 4
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/inc/pch/precompiled_svxcore.hxx b/svx/inc/pch/precompiled_svxcore.hxx
index e1dc18dadb0b..bc5d37d92124 100644
--- a/svx/inc/pch/precompiled_svxcore.hxx
+++ b/svx/inc/pch/precompiled_svxcore.hxx
@@ -13,7 +13,7 @@
manual changes will be rewritten by the next run of update_pch.sh (which presumably
also fixes all possible problems, so it's usually better to use it).
- Generated on 2020-01-14 14:50:28 using:
+ Generated on 2020-01-19 20:29:49 using:
./bin/update_pch svx svxcore --cutoff=7 --exclude:system --include:module --exclude:local
If after updating build fails, use the following command to locate conflicting headers:
@@ -61,12 +61,10 @@
#include <osl/getglobalmutex.hxx>
#include <osl/interlck.h>
#include <osl/mutex.hxx>
-#include <osl/process.h>
#include <osl/thread.h>
#include <osl/time.h>
#include <rtl/alloc.h>
#include <rtl/character.hxx>
-#include <rtl/crc.h>
#include <rtl/instance.hxx>
#include <rtl/locale.h>
#include <rtl/math.h>
@@ -93,7 +91,6 @@
#include <sal/saldllapi.h>
#include <sal/types.h>
#include <sal/typesizes.h>
-#include <vcl/AccessibleBrowseBoxObjType.hxx>
#include <vcl/EnumContext.hxx>
#include <vcl/GraphicExternalLink.hxx>
#include <vcl/NotebookBarAddonsMerger.hxx>
@@ -124,7 +121,6 @@
#include <vcl/gfxlink.hxx>
#include <vcl/graph.hxx>
#include <vcl/graphicfilter.hxx>
-#include <vcl/headbar.hxx>
#include <vcl/idle.hxx>
#include <vcl/image.hxx>
#include <vcl/keycod.hxx>
@@ -145,6 +141,7 @@
#include <vcl/task.hxx>
#include <vcl/textfilter.hxx>
#include <vcl/timer.hxx>
+#include <vcl/toolbox.hxx>
#include <vcl/transfer.hxx>
#include <vcl/vclenum.hxx>
#include <vcl/vclevent.hxx>
@@ -331,7 +328,6 @@
#include <editeng/writingmodeitem.hxx>
#include <i18nlangtag/i18nlangtagdllapi.h>
#include <i18nlangtag/lang.h>
-#include <i18nlangtag/languagetag.hxx>
#include <libxml/xmlwriter.h>
#include <o3tl/cow_wrapper.hxx>
#include <o3tl/deleter.hxx>
@@ -386,7 +382,6 @@
#include <tools/helpers.hxx>
#include <tools/link.hxx>
#include <tools/mapunit.hxx>
-#include <tools/poly.hxx>
#include <tools/ref.hxx>
#include <tools/solar.h>
#include <tools/stream.hxx>
@@ -415,7 +410,6 @@
#endif // PCH_LEVEL >= 3
#if PCH_LEVEL >= 4
#include <svx/XPropertyTable.hxx>
-#include <svx/cube3d.hxx>
#include <svx/dialmgr.hxx>
#include <svx/e3dsceneupdater.hxx>
#include <svx/extrud3d.hxx>
@@ -458,7 +452,6 @@
#include <svx/sdtfchim.hxx>
#include <svx/sdynitm.hxx>
#include <svx/selectioncontroller.hxx>
-#include <svx/sphere3d.hxx>
#include <svx/svddef.hxx>
#include <svx/svddrag.hxx>
#include <svx/svdedtv.hxx>
diff --git a/svx/source/gallery2/GalleryControl.cxx b/svx/source/gallery2/GalleryControl.cxx
index c3fc9a1cbcef..89ae895a967d 100644
--- a/svx/source/gallery2/GalleryControl.cxx
+++ b/svx/source/gallery2/GalleryControl.cxx
@@ -23,43 +23,23 @@
#include <svx/gallery1.hxx>
#include "galbrws1.hxx"
#include <galbrws2.hxx>
-#include "GallerySplitter.hxx"
#include <vcl/svapp.hxx>
#include <vcl/settings.hxx>
#include <sfx2/sidebar/Theme.hxx>
namespace svx::sidebar {
-static const sal_Int32 gnInitialVerticalSplitPosition (150);
-
-GalleryControl::GalleryControl (
- vcl::Window* pParentWindow)
- : Window(pParentWindow, WB_SIZEABLE|WB_MOVEABLE|WB_CLOSEABLE|WB_HIDE),
- mpGallery (Gallery::GetGalleryInstance()),
- mpSplitter(VclPtr<GallerySplitter>::Create(
- this,
- WB_HSCROLL,
- [this] () { return this->InitSettings(); })),
- mpBrowser1(VclPtr<GalleryBrowser1>::Create(
- this,
+GalleryControl::GalleryControl(vcl::Window* pParent)
+ : PanelLayout(pParent, "GalleryPanel", "svx/ui/sidebargallery.ui", nullptr, true)
+ , mpGallery(Gallery::GetGalleryInstance())
+ , mxBrowser1(new GalleryBrowser1(
+ *m_xBuilder,
mpGallery,
- [this] (KeyEvent const& rEvent, vcl::Window *const /*pWindow*/)
- { return this->GalleryKeyInput(rEvent); },
[this] ()
- { return mpBrowser2->SelectTheme(mpBrowser1->GetSelectedTheme()); })),
- mpBrowser2(VclPtr<GalleryBrowser2>::Create(this, mpGallery)),
- mbIsInitialResize(true)
+ { return mxBrowser2->SelectTheme(mxBrowser1->GetSelectedTheme()); }))
+ , mxBrowser2(new GalleryBrowser2(*m_xBuilder, mpGallery))
{
- mpBrowser1->SelectTheme(0);
- mpBrowser1->Show();
-
- mpBrowser2->Show();
-
- mpSplitter->SetHorizontal(false);
- mpSplitter->SetSplitHdl( LINK( this, GalleryControl, SplitHdl ) );
- mpSplitter->Show();
-
- InitSettings();
+ mxBrowser1->SelectTheme(0);
}
GalleryControl::~GalleryControl()
@@ -69,176 +49,18 @@ GalleryControl::~GalleryControl()
void GalleryControl::dispose()
{
- mpBrowser2.disposeAndClear();
- mpBrowser1.disposeAndClear();
- mpSplitter.disposeAndClear();
- vcl::Window::dispose();
-}
-
-void GalleryControl::InitSettings()
-{
- SetBackground( Wallpaper( GALLERY_DLG_COLOR ) );
- SetControlBackground( GALLERY_DLG_COLOR );
- SetControlForeground( GALLERY_DLG_COLOR );
-
- mpSplitter->SetBackground( Wallpaper( GALLERY_DLG_COLOR ) );
- mpSplitter->SetControlBackground( GALLERY_DLG_COLOR );
- mpSplitter->SetControlForeground( GALLERY_DLG_COLOR );
-
- mpBrowser1->SetBackground( Wallpaper( GALLERY_DLG_COLOR ) );
- mpBrowser1->SetControlBackground( GALLERY_DLG_COLOR );
- mpBrowser1->SetControlForeground( GALLERY_DLG_COLOR );
-
- mpBrowser2->SetBackground( Wallpaper( GALLERY_DLG_COLOR ) );
- mpBrowser2->SetControlBackground( GALLERY_DLG_COLOR );
- mpBrowser2->SetControlForeground( GALLERY_DLG_COLOR );
-
- const Wallpaper aBackground (sfx2::sidebar::Theme::GetWallpaper(sfx2::sidebar::Theme::Paint_PanelBackground));
- mpSplitter->SetBackground(aBackground);
- SetBackground(aBackground);
- mpBrowser2->SetBackground(aBackground);
-}
-
-void GalleryControl::Resize()
-{
- // call parent
- Window::Resize();
-
- // update hor/ver
- const Size aNewSize( GetOutputSizePixel() );
- if (aNewSize.Width()<=0 || aNewSize.Height()<=0)
- return;
-
- const bool bNewLayoutHorizontal(aNewSize.Width() > aNewSize.Height());
- const bool bOldLayoutHorizontal(mpSplitter->IsHorizontal());
- long nSplitPos( bOldLayoutHorizontal ? mpSplitter->GetPosPixel().X() : mpSplitter->GetPosPixel().Y());
- const long nSplitSize( bOldLayoutHorizontal ? mpSplitter->GetOutputSizePixel().Width() : mpSplitter->GetOutputSizePixel().Height());
-
- if(bNewLayoutHorizontal != bOldLayoutHorizontal)
- {
- mpSplitter->SetHorizontal(bNewLayoutHorizontal);
- }
- else
- {
- if (mbIsInitialResize)
- {
- nSplitPos = gnInitialVerticalSplitPosition;
- if (nSplitPos > aNewSize.Height()/2)
- nSplitPos = aNewSize.Height()/2;
- }
- }
- mbIsInitialResize = false;
-
- const long nFrameLen = LogicToPixel(Size(3, 0), MapMode(MapUnit::MapAppFont)).Width();
- const long nFrameLen2 = nFrameLen << 1;
-
- if(bNewLayoutHorizontal)
- {
- mpBrowser1->SetPosSizePixel(
- Point( nFrameLen, nFrameLen ),
- Size(nSplitPos - nFrameLen, aNewSize.Height() - nFrameLen2) );
-
- mpSplitter->SetPosSizePixel(
- Point( nSplitPos, 0),
- Size( nSplitSize, aNewSize.Height() ) );
-
- mpSplitter->SetDragRectPixel(
- tools::Rectangle(
- Point( nFrameLen2, 0 ),
- Size( aNewSize.Width() - ( nFrameLen2 << 1 ) - nSplitSize, aNewSize.Height() ) ) );
-
- mpBrowser2->SetPosSizePixel(
- Point( nSplitPos + nSplitSize, nFrameLen ),
- Size( aNewSize.Width() - nSplitSize - nSplitPos - nFrameLen, aNewSize.Height() - nFrameLen2 ) );
- }
- else
- {
- mpBrowser1->SetPosSizePixel(
- Point( nFrameLen, nFrameLen ),
- Size(aNewSize.Width() - nFrameLen2, nSplitPos - nFrameLen));
-
- mpSplitter->SetPosSizePixel(
- Point( 0, nSplitPos),
- Size( aNewSize.Width(), nSplitSize ) );
-
- mpSplitter->SetDragRectPixel(
- tools::Rectangle(
- Point( 0, nFrameLen2 ),
- Size( aNewSize.Width(), aNewSize.Height() - ( nFrameLen2 << 1 ) - nSplitSize ) ));
-
- mpBrowser2->SetPosSizePixel(
- Point( nFrameLen, nSplitPos + nSplitSize ),
- Size( aNewSize.Width() - nFrameLen2, aNewSize.Height() - nSplitSize - nSplitPos - nFrameLen ));
- }
-}
-
-bool GalleryControl::GalleryKeyInput( const KeyEvent& rKEvt )
-{
- const sal_uInt16 nCode = rKEvt.GetKeyCode().GetCode();
- bool bRet = ( !rKEvt.GetKeyCode().IsMod1() &&
- ( ( KEY_TAB == nCode ) || ( KEY_F6 == nCode && rKEvt.GetKeyCode().IsMod2() ) ) );
-
- if( bRet )
- {
- if( !rKEvt.GetKeyCode().IsShift() )
- {
- if( mpBrowser1->maNewTheme->HasFocus() )
- mpBrowser1->mpThemes->GrabFocus();
- else if( mpBrowser1->mpThemes->HasChildPathFocus( true ) )
- mpBrowser2->maViewBox->GrabFocus();
- else if( mpBrowser2->maViewBox->HasFocus() )
- mpBrowser2->GetViewWindow()->GrabFocus();
- else
- {
- if( mpBrowser1->maNewTheme->IsEnabled() )
- mpBrowser1->maNewTheme->GrabFocus();
- else
- mpBrowser1->mpThemes->GrabFocus();
- }
- }
- else
- {
- if( mpBrowser2->GetViewWindow()->HasFocus() )
- mpBrowser2->maViewBox->GrabFocus();
- else if( mpBrowser2->maViewBox->HasFocus() )
- mpBrowser1->mpThemes->GrabFocus();
- else if( mpBrowser1->mpThemes->HasChildPathFocus( true ) )
- {
- if( mpBrowser1->maNewTheme->IsEnabled() )
- mpBrowser1->maNewTheme->GrabFocus();
- else
- mpBrowser2->GetViewWindow()->GrabFocus();
- }
- else
- mpBrowser2->GetViewWindow()->GrabFocus();
- }
- }
-
- return bRet;
+ mxBrowser2.reset();
+ mxBrowser1.reset();
+ PanelLayout::dispose();
}
void GalleryControl::GetFocus()
{
Window::GetFocus();
- if (mpBrowser1)
- mpBrowser1->GrabFocus();
-}
-
-IMPL_LINK_NOARG( GalleryControl, SplitHdl, Splitter*, void )
-{
- if(mpSplitter->IsHorizontal())
- {
- mpSplitter->SetPosPixel( Point( mpSplitter->GetSplitPosPixel(), mpSplitter->GetPosPixel().Y() ) );
- }
- else
- {
- mpSplitter->SetPosPixel( Point( mpSplitter->GetPosPixel().X(), mpSplitter->GetSplitPosPixel() ) );
- }
-
- Resize();
+ if (mxBrowser1)
+ mxBrowser1->GrabFocus();
}
-
} // end of namespace svx::sidebar
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/gallery2/GallerySplitter.cxx b/svx/source/gallery2/GallerySplitter.cxx
deleted file mode 100644
index 21dc47c72b89..000000000000
--- a/svx/source/gallery2/GallerySplitter.cxx
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- 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 .
- */
-
-#include "GallerySplitter.hxx"
-
-GallerySplitter::GallerySplitter(
- vcl::Window* pParent,
- WinBits nStyle,
- const ::std::function<void ()>& rDataChangeFunctor)
- : Splitter(pParent, nStyle)
- , maDataChangeFunctor(rDataChangeFunctor)
-{
-}
-
-void GallerySplitter::DataChanged( const DataChangedEvent& rDCEvt )
-{
- Splitter::DataChanged( rDCEvt );
- if (maDataChangeFunctor)
- maDataChangeFunctor();
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/gallery2/GallerySplitter.hxx b/svx/source/gallery2/GallerySplitter.hxx
deleted file mode 100644
index 8c6e05f15ab7..000000000000
--- a/svx/source/gallery2/GallerySplitter.hxx
+++ /dev/null
@@ -1,44 +0,0 @@
-/* -*- 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 .
- */
-#ifndef INCLUDED_SVX_SOURCE_GALLERY2_GALLERYSPLITTER_HXX
-#define INCLUDED_SVX_SOURCE_GALLERY2_GALLERYSPLITTER_HXX
-
-#include <vcl/split.hxx>
-
-#include <functional>
-
-class GallerySplitter : public Splitter
-{
-public:
- GallerySplitter(
- vcl::Window* pParent,
- WinBits nStyle,
- const ::std::function<void ()>& rDataChangeFunctor);
-
-protected:
- virtual void DataChanged( const DataChangedEvent& rDCEvt ) override;
-
-private:
- ::std::function<void ()> const maDataChangeFunctor;
-};
-
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/gallery2/galbrws1.cxx b/svx/source/gallery2/galbrws1.cxx
index 8a435a5c31df..aefb42511d1f 100644
--- a/svx/source/gallery2/galbrws1.cxx
+++ b/svx/source/gallery2/galbrws1.cxx
@@ -47,126 +47,53 @@
using namespace ::com::sun::star;
-
-GalleryButton::GalleryButton( GalleryBrowser1* pParent, WinBits nWinBits ) :
- PushButton( pParent, nWinBits )
-{
-}
-
-void GalleryButton::KeyInput( const KeyEvent& rKEvt )
-{
- if( !static_cast< GalleryBrowser1* >( GetParent() )->KeyInput( rKEvt, this ) )
- PushButton::KeyInput( rKEvt );
-}
-
-
-GalleryThemeListBox::GalleryThemeListBox( GalleryBrowser1* pParent, WinBits nWinBits ) :
- ListBox( pParent, nWinBits )
-{
- InitSettings();
-}
-
-void GalleryThemeListBox::InitSettings()
-{
- SetBackground( Wallpaper( GALLERY_BG_COLOR ) );
- SetControlBackground( GALLERY_BG_COLOR );
- SetControlForeground( GALLERY_FG_COLOR );
-}
-
-void GalleryThemeListBox::DataChanged( const DataChangedEvent& rDCEvt )
-{
- if ( ( rDCEvt.GetType() == DataChangedEventType::SETTINGS ) && ( rDCEvt.GetFlags() & AllSettingsFlags::STYLE ) )
- InitSettings();
- else
- ListBox::DataChanged( rDCEvt );
-}
-
-bool GalleryThemeListBox::PreNotify( NotifyEvent& rNEvt )
-{
- bool bDone = false;
-
- if( rNEvt.GetType() == MouseNotifyEvent::COMMAND )
- {
- const CommandEvent* pCEvt = rNEvt.GetCommandEvent();
-
- if( pCEvt && pCEvt->GetCommand() == CommandEventId::ContextMenu )
- static_cast< GalleryBrowser1* >( GetParent() )->ShowContextMenu();
- }
- else if( rNEvt.GetType() == MouseNotifyEvent::KEYINPUT )
- {
- const KeyEvent* pKEvt = rNEvt.GetKeyEvent();
-
- if( pKEvt )
- bDone = static_cast< GalleryBrowser1* >( GetParent() )->KeyInput( *pKEvt, this );
- }
-
- return( bDone || ListBox::PreNotify( rNEvt ) );
-}
-
-
GalleryBrowser1::GalleryBrowser1(
- vcl::Window* pParent,
+ weld::Builder& rBuilder,
Gallery* pGallery,
- const std::function<sal_Bool (const KeyEvent&,Window*)>& rKeyInputHandler,
const std::function<void ()>& rThemeSlectionHandler)
:
- Control ( pParent, WB_TABSTOP ),
- maNewTheme ( VclPtr<GalleryButton>::Create(this, WB_3DLOOK) ),
- mpThemes ( VclPtr<GalleryThemeListBox>::Create( this, WB_TABSTOP | WB_3DLOOK | WB_BORDER | WB_HSCROLL | WB_VSCROLL | WB_AUTOHSCROLL | WB_SORT ) ),
+ mxNewTheme(rBuilder.weld_button("insert")),
+ mxThemes(rBuilder.weld_tree_view("themelist")),
mpGallery ( pGallery ),
mpExchangeData ( new ExchangeData ),
- aImgNormal ( GalleryResGetBitmapEx( RID_SVXBMP_THEME_NORMAL ) ),
- aImgDefault ( GalleryResGetBitmapEx( RID_SVXBMP_THEME_DEFAULT ) ),
- aImgReadOnly ( GalleryResGetBitmapEx( RID_SVXBMP_THEME_READONLY ) ),
- maKeyInputHandler(rKeyInputHandler),
+ aImgNormal ( RID_SVXBMP_THEME_NORMAL ),
+ aImgDefault ( RID_SVXBMP_THEME_DEFAULT ),
+ aImgReadOnly ( RID_SVXBMP_THEME_READONLY ),
maThemeSlectionHandler(rThemeSlectionHandler)
{
- StartListening( *mpGallery );
+ mxNewTheme->set_help_id(HID_GALLERY_NEWTHEME);
+ mxNewTheme->connect_clicked( LINK( this, GalleryBrowser1, ClickNewThemeHdl ) );
- maNewTheme->SetHelpId( HID_GALLERY_NEWTHEME );
- maNewTheme->SetText( SvxResId(RID_SVXSTR_GALLERY_CREATETHEME));
- maNewTheme->SetClickHdl( LINK( this, GalleryBrowser1, ClickNewThemeHdl ) );
+ mxThemes->make_sorted();
+ mxThemes->set_help_id( HID_GALLERY_THEMELIST );
+ mxThemes->connect_changed( LINK( this, GalleryBrowser1, SelectThemeHdl ) );
+ mxThemes->connect_popup_menu(LINK(this, GalleryBrowser1, PopupMenuHdl));
+ mxThemes->connect_key_press(LINK(this, GalleryBrowser1, KeyInputHdl));
+ mxThemes->set_size_request(-1, mxThemes->get_height_rows(6));
// disable creation of new themes if a writable directory is not available
if( mpGallery->GetUserURL().GetProtocol() == INetProtocol::NotValid )
- maNewTheme->Disable();
+ mxNewTheme->set_sensitive(false);
- mpThemes->SetHelpId( HID_GALLERY_THEMELIST );
- mpThemes->SetSelectHdl( LINK( this, GalleryBrowser1, SelectThemeHdl ) );
- mpThemes->SetAccessibleName(SvxResId(RID_SVXSTR_GALLERYPROPS_GALTHEME));
+ StartListening( *mpGallery );
- for( size_t i = 0, nCount = mpGallery->GetThemeCount(); i < nCount; i++ )
+ for (size_t i = 0, nCount = mpGallery->GetThemeCount(); i < nCount; ++i)
ImplInsertThemeEntry( mpGallery->GetThemeInfo( i ) );
-
- ImplAdjustControls();
- maNewTheme->Show();
- mpThemes->Show();
}
GalleryBrowser1::~GalleryBrowser1()
-{
- disposeOnce();
-}
-
-void GalleryBrowser1::dispose()
{
EndListening( *mpGallery );
- mpThemePropertiesDialog.clear();
- mpThemes.disposeAndClear();
mpExchangeData.reset();
- maNewTheme.disposeAndClear();
- Control::dispose();
}
-sal_uIntPtr GalleryBrowser1::ImplInsertThemeEntry( const GalleryThemeEntry* pEntry )
+void GalleryBrowser1::ImplInsertThemeEntry( const GalleryThemeEntry* pEntry )
{
static const bool bShowHiddenThemes = ( getenv( "GALLERY_SHOW_HIDDEN_THEMES" ) != nullptr );
- sal_uIntPtr nRet = LISTBOX_ENTRY_NOTFOUND;
-
if( pEntry && ( !pEntry->IsHidden() || bShowHiddenThemes ) )
{
- const Image* pImage;
+ const OUString* pImage;
if( pEntry->IsReadOnly() )
pImage = &aImgReadOnly;
@@ -175,23 +102,8 @@ sal_uIntPtr GalleryBrowser1::ImplInsertThemeEntry( const GalleryThemeEntry* pEnt
else
pImage = &aImgNormal;
- nRet = mpThemes->InsertEntry( pEntry->GetThemeName(), *pImage );
+ mxThemes->append("", pEntry->GetThemeName(), *pImage);
}
-
- return nRet;
-}
-
-void GalleryBrowser1::ImplAdjustControls()
-{
- const Size aOutSize( GetOutputSizePixel() );
- const long nNewThemeHeight = LogicToPixel(Size(0, 14), MapMode(MapUnit::MapAppFont)).Height();
- const long nStartY = nNewThemeHeight + 4;
-
- maNewTheme->SetPosSizePixel( Point(),
- Size( aOutSize.Width(), nNewThemeHeight ) );
-
- mpThemes->SetPosSizePixel( Point( 0, nStartY ),
- Size( aOutSize.Width(), aOutSize.Height() - nStartY ) );
}
void GalleryBrowser1::ImplFillExchangeData( const GalleryTheme* pThm, ExchangeData& rData )
@@ -267,18 +179,20 @@ void GalleryBrowser1::ImplGalleryThemeProperties( const OUString & rThemeName, b
ImplFillExchangeData( pTheme, *mpExchangeData );
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
- mpThemePropertiesDialog = pFact->CreateGalleryThemePropertiesDialog(GetFrameWeld(), mpExchangeData.get(), mpThemePropsDlgItemSet.get());
+ VclPtr<VclAbstractDialog> xThemePropertiesDialog = pFact->CreateGalleryThemePropertiesDialog(mxThemes.get(), mpExchangeData.get(), mpThemePropsDlgItemSet.get());
if ( bCreateNew )
{
- mpThemePropertiesDialog->StartExecuteAsync([this](sal_Int32 nResult){
+ xThemePropertiesDialog->StartExecuteAsync([xThemePropertiesDialog, this](sal_Int32 nResult){
EndNewThemePropertiesDlgHdl(nResult);
+ xThemePropertiesDialog->disposeOnce();
});
}
else
{
- mpThemePropertiesDialog->StartExecuteAsync([this](sal_Int32 nResult){
+ xThemePropertiesDialog->StartExecuteAsync([xThemePropertiesDialog, this](sal_Int32 nResult){
EndThemePropertiesDlgHdl(nResult);
+ xThemePropertiesDialog->disposeOnce();
});
}
}
@@ -304,8 +218,8 @@ void GalleryBrowser1::ImplEndGalleryThemeProperties(bool bCreateNew, sal_Int32 n
if ( bCreateNew )
{
- mpThemes->SelectEntry( mpExchangeData->pTheme->GetName() );
- SelectThemeHdl( *mpThemes );
+ mxThemes->select_text( mpExchangeData->pTheme->GetName() );
+ SelectThemeHdl( *mxThemes );
}
}
@@ -316,9 +230,6 @@ void GalleryBrowser1::ImplEndGalleryThemeProperties(bool bCreateNew, sal_Int32 n
{
mpGallery->RemoveTheme( aThemeName );
}
-
- // destroy mpThemeProps asynchronously
- Application::PostUserEvent( LINK( this, GalleryBrowser1, DestroyThemePropertiesDlgHdl ), nullptr, true );
}
void GalleryBrowser1::EndNewThemePropertiesDlgHdl(sal_Int32 nResult)
@@ -331,12 +242,6 @@ void GalleryBrowser1::EndThemePropertiesDlgHdl(sal_Int32 nResult)
ImplEndGalleryThemeProperties(false, nResult);
}
-IMPL_LINK( GalleryBrowser1, DestroyThemePropertiesDlgHdl, void*, /*p*/, void )
-{
- mpThemePropertiesDialog.disposeAndClear();
- mpThemePropsDlgItemSet.reset();
-}
-
void GalleryBrowser1::ImplExecute(const OString &rIdent)
{
if (rIdent == "update")
@@ -344,17 +249,17 @@ void GalleryBrowser1::ImplExecute(const OString &rIdent)
GalleryTheme* pTheme = mpGallery->AcquireTheme( GetSelectedTheme(), *this );
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
- ScopedVclPtr<VclAbstractDialog> aActualizeProgress(pFact->CreateActualizeProgressDialog(GetFrameWeld(), pTheme));
+ ScopedVclPtr<VclAbstractDialog> aActualizeProgress(pFact->CreateActualizeProgressDialog(mxThemes.get(), pTheme));
aActualizeProgress->Execute();
mpGallery->ReleaseTheme( pTheme, *this );
}
else if (rIdent == "delete")
{
- std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "svx/ui/querydeletethemedialog.ui"));
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(mxThemes.get(), "svx/ui/querydeletethemedialog.ui"));
std::unique_ptr<weld::MessageDialog> xQuery(xBuilder->weld_message_dialog("QueryDeleteThemeDialog"));
if (xQuery->run() == RET_YES)
- mpGallery->RemoveTheme( mpThemes->GetSelectedEntry() );
+ mpGallery->RemoveTheme( mxThemes->get_selected_text() );
}
else if (rIdent == "rename")
{
@@ -362,7 +267,7 @@ void GalleryBrowser1::ImplExecute(const OString &rIdent)
const OUString aOldName( pTheme->GetName() );
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
- ScopedVclPtr<AbstractTitleDialog> aDlg(pFact->CreateTitleDialog(GetFrameWeld(), aOldName));
+ ScopedVclPtr<AbstractTitleDialog> aDlg(pFact->CreateTitleDialog(mxThemes.get(), aOldName));
if( aDlg->Execute() == RET_OK )
{
@@ -391,7 +296,7 @@ void GalleryBrowser1::ImplExecute(const OString &rIdent)
{
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
- ScopedVclPtr<AbstractGalleryIdDialog> aDlg(pFact->CreateGalleryIdDialog(GetFrameWeld(), pTheme));
+ ScopedVclPtr<AbstractGalleryIdDialog> aDlg(pFact->CreateGalleryIdDialog(mxThemes.get(), pTheme));
if( aDlg->Execute() == RET_OK )
pTheme->SetId( aDlg->GetId(), true );
}
@@ -404,19 +309,12 @@ void GalleryBrowser1::ImplExecute(const OString &rIdent)
}
}
-void GalleryBrowser1::Resize()
+void GalleryBrowser1::GrabFocus()
{
- Control::Resize();
- ImplAdjustControls();
-}
-
-void GalleryBrowser1::GetFocus()
-{
- Control::GetFocus();
- if( maNewTheme->IsEnabled() )
- maNewTheme->GrabFocus();
+ if (mxNewTheme->get_sensitive())
+ mxNewTheme->grab_focus();
else
- mpThemes->GrabFocus();
+ mxThemes->grab_focus();
}
void GalleryBrowser1::Notify( SfxBroadcaster&, const SfxHint& rHint )
@@ -431,41 +329,41 @@ void GalleryBrowser1::Notify( SfxBroadcaster&, const SfxHint& rHint )
case GalleryHintType::THEME_RENAMED:
{
- const sal_Int32 nCurSelectPos = mpThemes->GetSelectedEntryPos();
- const sal_Int32 nRenameEntryPos = mpThemes->GetEntryPos( rGalleryHint.GetThemeName() );
+ const sal_Int32 nCurSelectPos = mxThemes->get_selected_index();
+ const sal_Int32 nRenameEntryPos = mxThemes->find_text( rGalleryHint.GetThemeName() );
- mpThemes->RemoveEntry( rGalleryHint.GetThemeName() );
+ mxThemes->remove_text( rGalleryHint.GetThemeName() );
ImplInsertThemeEntry( mpGallery->GetThemeInfo( rGalleryHint.GetStringData() ) );
if( nCurSelectPos == nRenameEntryPos )
{
- mpThemes->SelectEntry( rGalleryHint.GetStringData() );
- SelectThemeHdl( *mpThemes );
+ mxThemes->select_text( rGalleryHint.GetStringData() );
+ SelectThemeHdl( *mxThemes );
}
}
break;
case GalleryHintType::THEME_REMOVED:
{
- mpThemes->RemoveEntry( rGalleryHint.GetThemeName() );
+ mxThemes->remove_text( rGalleryHint.GetThemeName() );
}
break;
case GalleryHintType::CLOSE_THEME:
{
- const sal_Int32 nCurSelectPos = mpThemes->GetSelectedEntryPos();
- const sal_Int32 nCloseEntryPos = mpThemes->GetEntryPos( rGalleryHint.GetThemeName() );
+ const sal_Int32 nCurSelectPos = mxThemes->get_selected_index();
+ const sal_Int32 nCloseEntryPos = mxThemes->find_text( rGalleryHint.GetThemeName() );
if( nCurSelectPos == nCloseEntryPos )
{
- if( nCurSelectPos < ( mpThemes->GetEntryCount() - 1 ) )
- mpThemes->SelectEntryPos( nCurSelectPos + 1 );
+ if( nCurSelectPos < ( mxThemes->n_children() - 1 ) )
+ mxThemes->select( nCurSelectPos + 1 );
else if( nCurSelectPos )
- mpThemes->SelectEntryPos( nCurSelectPos - 1 );
+ mxThemes->select( nCurSelectPos - 1 );
else
- mpThemes->SetNoSelection();
+ mxThemes->select(-1);
- SelectThemeHdl( *mpThemes );
+ SelectThemeHdl( *mxThemes );
}
}
break;
@@ -475,121 +373,108 @@ void GalleryBrowser1::Notify( SfxBroadcaster&, const SfxHint& rHint )
}
}
-void GalleryBrowser1::ShowContextMenu()
+void GalleryBrowser1::ShowContextMenu(const CommandEvent& rCEvt)
{
- Application::PostUserEvent( LINK( this, GalleryBrowser1, ShowContextMenuHdl ), this, true );
+ PopupMenuHdl(rCEvt);
}
-bool GalleryBrowser1::KeyInput( const KeyEvent& rKEvt, vcl::Window* pWindow )
+IMPL_LINK(GalleryBrowser1, KeyInputHdl, const KeyEvent&, rKEvt, bool)
{
bool bRet = false;
- if (maKeyInputHandler)
- bRet = maKeyInputHandler(rKEvt, pWindow);
- if( !bRet )
+ std::vector<OString> aExecVector;
+ ImplGetExecuteVector(aExecVector);
+ OString sExecuteIdent;
+ bool bMod1 = rKEvt.GetKeyCode().IsMod1();
+
+ switch( rKEvt.GetKeyCode().GetCode() )
{
- std::vector<OString> aExecVector;
- ImplGetExecuteVector(aExecVector);
- OString sExecuteIdent;
- bool bMod1 = rKEvt.GetKeyCode().IsMod1();
+ case KEY_INSERT:
+ ClickNewThemeHdl(*mxNewTheme);
+ break;
- switch( rKEvt.GetKeyCode().GetCode() )
+ case KEY_I:
{
- case KEY_INSERT:
- ClickNewThemeHdl( nullptr );
- break;
+ if( bMod1 )
+ ClickNewThemeHdl(*mxNewTheme);
+ }
+ break;
- case KEY_I:
- {
- if( bMod1 )
- ClickNewThemeHdl( nullptr );
- }
- break;
+ case KEY_U:
+ {
+ if( bMod1 )
+ sExecuteIdent = "update";
+ }
+ break;
- case KEY_U:
- {
- if( bMod1 )
- sExecuteIdent = "update";
- }
- break;
+ case KEY_DELETE:
+ sExecuteIdent = "delete";
+ break;
- case KEY_DELETE:
+ case KEY_D:
+ {
+ if( bMod1 )
sExecuteIdent = "delete";
- break;
-
- case KEY_D:
- {
- if( bMod1 )
- sExecuteIdent = "delete";
- }
- break;
-
- case KEY_R:
- {
- if( bMod1 )
- sExecuteIdent = "rename";
- }
- break;
+ }
+ break;
- case KEY_RETURN:
- {
- if( bMod1 )
- sExecuteIdent = "properties";
- }
- break;
+ case KEY_R:
+ {
+ if( bMod1 )
+ sExecuteIdent = "rename";
}
+ break;
- if (!sExecuteIdent.isEmpty() && (std::find( aExecVector.begin(), aExecVector.end(), sExecuteIdent) != aExecVector.end()))
+ case KEY_RETURN:
{
- ImplExecute(sExecuteIdent);
- bRet = true;
+ if( bMod1 )
+ sExecuteIdent = "properties";
}
+ break;
+ }
+
+ if (!sExecuteIdent.isEmpty() && (std::find( aExecVector.begin(), aExecVector.end(), sExecuteIdent) != aExecVector.end()))
+ {
+ ImplExecute(sExecuteIdent);
+ bRet = true;
}
return bRet;
}
-IMPL_LINK_NOARG(GalleryBrowser1, ShowContextMenuHdl, void*, void)
+IMPL_LINK(GalleryBrowser1, PopupMenuHdl, const CommandEvent&, rCEvt, bool)
{
+ if (rCEvt.GetCommand() != CommandEventId::ContextMenu)
+ return false;
+
std::vector<OString> aExecVector;
ImplGetExecuteVector(aExecVector);
- if( aExecVector.empty() )
- return;
-
- VclBuilder aBuilder(nullptr, VclBuilderContainer::getUIRootDir(), "svx/ui/gallerymenu1.ui", "");
- VclPtr<PopupMenu> aMenu(aBuilder.get_menu("menu"));
+ if (aExecVector.empty())
+ return true;
- aMenu->EnableItem( aMenu->GetItemId("update"), std::find( aExecVector.begin(), aExecVector.end(), "update" ) != aExecVector.end() );
- aMenu->EnableItem( aMenu->GetItemId("rename"), std::find( aExecVector.begin(), aExecVector.end(), "rename" ) != aExecVector.end() );
- aMenu->EnableItem( aMenu->GetItemId("delete"), std::find( aExecVector.begin(), aExecVector.end(), "delete" ) != aExecVector.end() );
- aMenu->EnableItem( aMenu->GetItemId("assign"), std::find( aExecVector.begin(), aExecVector.end(), "assign" ) != aExecVector.end() );
- aMenu->EnableItem( aMenu->GetItemId("properties"), std::find( aExecVector.begin(), aExecVector.end(), "properties" ) != aExecVector.end() );
- aMenu->SetSelectHdl( LINK( this, GalleryBrowser1, PopupMenuHdl ) );
- aMenu->RemoveDisabledEntries();
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(mxThemes.get(), "svx/ui/gallerymenu1.ui"));
+ std::unique_ptr<weld::Menu> xMenu(xBuilder->weld_menu("menu"));
- const tools::Rectangle aThemesRect( mpThemes->GetPosPixel(), mpThemes->GetOutputSizePixel() );
- Point aSelPos( mpThemes->GetBoundingRectangle( mpThemes->GetSelectedEntryPos() ).Center() );
+ xMenu->set_visible("update", std::find( aExecVector.begin(), aExecVector.end(), "update" ) != aExecVector.end());
+ xMenu->set_visible("rename", std::find( aExecVector.begin(), aExecVector.end(), "rename" ) != aExecVector.end());
+ xMenu->set_visible("delete", std::find( aExecVector.begin(), aExecVector.end(), "delete" ) != aExecVector.end());
+ xMenu->set_visible("assign", std::find( aExecVector.begin(), aExecVector.end(), "assign" ) != aExecVector.end());
+ xMenu->set_visible("properties", std::find( aExecVector.begin(), aExecVector.end(), "properties" ) != aExecVector.end());
- aSelPos.setX( std::max( std::min( aSelPos.X(), aThemesRect.Right() ), aThemesRect.Left() ) );
- aSelPos.setY( std::max( std::min( aSelPos.Y(), aThemesRect.Bottom() ), aThemesRect.Top() ) );
+ OString sCommand(xMenu->popup_at_rect(mxThemes.get(), tools::Rectangle(rCEvt.GetMousePosPixel(), Size(1,1))));
+ ImplExecute(sCommand);
- aMenu->Execute( this, aSelPos );
-}
-
-IMPL_LINK( GalleryBrowser1, PopupMenuHdl, Menu*, pMenu, bool )
-{
- ImplExecute(pMenu->GetCurItemIdent());
- return false;
+ return true;
}
-IMPL_LINK_NOARG(GalleryBrowser1, SelectThemeHdl, ListBox&, void)
+IMPL_LINK_NOARG(GalleryBrowser1, SelectThemeHdl, weld::TreeView&, void)
{
if (maThemeSlectionHandler)
maThemeSlectionHandler();
}
-IMPL_LINK_NOARG(GalleryBrowser1, ClickNewThemeHdl, Button*, void)
+IMPL_LINK_NOARG(GalleryBrowser1, ClickNewThemeHdl, weld::Button&, void)
{
OUString aNewTheme( SvxResId(RID_SVXSTR_GALLERY_NEWTHEME) );
OUString aName( aNewTheme );
diff --git a/svx/source/gallery2/galbrws1.hxx b/svx/source/gallery2/galbrws1.hxx
index 825d773801af..288ff6d804ff 100644
--- a/svx/source/gallery2/galbrws1.hxx
+++ b/svx/source/gallery2/galbrws1.hxx
@@ -31,31 +31,6 @@
class GalleryBrowser1;
-class GalleryButton : public PushButton
-{
-private:
-
- virtual void KeyInput( const KeyEvent& rKEvt ) override;
-
-public:
-
- GalleryButton( GalleryBrowser1* pParent, WinBits nWinBits );
-};
-
-
-class GalleryThemeListBox final : public ListBox
-{
- void InitSettings();
-
- virtual void DataChanged( const DataChangedEvent& rDCEvt ) override;
- virtual bool PreNotify( NotifyEvent& rNEvt ) override;
-
-public:
-
- GalleryThemeListBox( GalleryBrowser1* pParent, WinBits nWinBits );
-};
-
-
class Gallery;
class GalleryThemeEntry;
class GalleryTheme;
@@ -65,31 +40,26 @@ class SfxItemSet;
namespace svx { namespace sidebar { class GalleryControl; } }
-class GalleryBrowser1 : public Control, public SfxListener
+class GalleryBrowser1 final : public SfxListener
{
friend class GalleryBrowser;
friend class svx::sidebar::GalleryControl;
- friend class GalleryThemeListBox;
- using Window::KeyInput;
private:
- VclPtr<GalleryButton> maNewTheme;
- VclPtr<GalleryThemeListBox> mpThemes;
- VclPtr<VclAbstractDialog> mpThemePropertiesDialog; // to keep it alive during execution
- Gallery* mpGallery;
+ std::unique_ptr<weld::Button> mxNewTheme;
+ std::unique_ptr<weld::TreeView> mxThemes;
+ Gallery* mpGallery;
std::unique_ptr<ExchangeData> mpExchangeData;
- std::unique_ptr<SfxItemSet> mpThemePropsDlgItemSet;
+ std::unique_ptr<SfxItemSet> mpThemePropsDlgItemSet;
- Image aImgNormal;
- Image aImgDefault;
- Image aImgReadOnly;
+ OUString aImgNormal;
+ OUString aImgDefault;
+ OUString aImgReadOnly;
- ::std::function<sal_Bool (const KeyEvent&,Window*)> const maKeyInputHandler;
::std::function<void ()> const maThemeSlectionHandler;
- void ImplAdjustControls();
- sal_uIntPtr ImplInsertThemeEntry( const GalleryThemeEntry* pEntry );
+ void ImplInsertThemeEntry( const GalleryThemeEntry* pEntry );
static void ImplFillExchangeData( const GalleryTheme* pThm, ExchangeData& rData );
void ImplGetExecuteVector(std::vector<OString>& o_aExec);
void ImplExecute(const OString &rIdent);
@@ -98,33 +68,28 @@ private:
void EndThemePropertiesDlgHdl(sal_Int32 nResult);
void ImplEndGalleryThemeProperties(bool bCreateNew, sal_Int32 nResult);
- // Control
- virtual void Resize() override;
- virtual void GetFocus() override;
-
// SfxListener
virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) override;
- DECL_LINK( ClickNewThemeHdl, Button*, void );
- DECL_LINK( SelectThemeHdl, ListBox&, void );
- DECL_LINK( ShowContextMenuHdl, void*, void );
- DECL_LINK( PopupMenuHdl, Menu*, bool );
- DECL_LINK( DestroyThemePropertiesDlgHdl, void*, void );
+ DECL_LINK( ClickNewThemeHdl, weld::Button&, void );
+ DECL_LINK( SelectThemeHdl, weld::TreeView&, void );
+ DECL_LINK( PopupMenuHdl, const CommandEvent&, bool );
+ DECL_LINK( KeyInputHdl, const KeyEvent&, bool );
public:
GalleryBrowser1(
- vcl::Window* pParent,
+ weld::Builder& rBuilder,
Gallery* pGallery,
- const ::std::function<sal_Bool (const KeyEvent&,Window*)>& rKeyInputHandler,
const ::std::function<void ()>& rThemeSlectionHandler);
- virtual ~GalleryBrowser1() override;
- virtual void dispose() override;
- void SelectTheme( sal_uInt16 nThemePos ) { mpThemes->SelectEntryPos( nThemePos ); SelectThemeHdl( *mpThemes ); }
- OUString GetSelectedTheme() const { return mpThemes->GetEntryCount() ? mpThemes->GetSelectedEntry() : OUString(); }
+ ~GalleryBrowser1();
+
+ void SelectTheme( sal_uInt16 nThemePos ) { mxThemes->select( nThemePos ); SelectThemeHdl( *mxThemes ); }
+ OUString GetSelectedTheme() const { return mxThemes->get_selected_text(); }
+ void GrabFocus();
- void ShowContextMenu();
+ void ShowContextMenu(const CommandEvent& rCEvt);
bool KeyInput( const KeyEvent& rKEvt, vcl::Window* pWindow );
};
diff --git a/svx/source/gallery2/galbrws2.cxx b/svx/source/gallery2/galbrws2.cxx
index eb70b0d0a8a5..d973a43596a9 100644
--- a/svx/source/gallery2/galbrws2.cxx
+++ b/svx/source/gallery2/galbrws2.cxx
@@ -24,6 +24,7 @@
#include <svl/intitem.hxx>
#include <svl/eitem.hxx>
#include <vcl/transfer.hxx>
+#include <vcl/virdev.hxx>
#include <sfx2/bindings.hxx>
#include <sfx2/dispatch.hxx>
#include <sfx2/viewfrm.hxx>
@@ -59,9 +60,6 @@
#include <memory>
#include <cppuhelper/implbase.hxx>
-#define TBX_ID_ICON 1
-#define TBX_ID_LIST 2
-
GalleryBrowserMode GalleryBrowser2::meInitMode = GALLERYBROWSERMODE_ICON;
struct DispatchInfo
@@ -109,10 +107,10 @@ private:
const GalleryTheme* mpTheme;
sal_uInt32 const mnObjectPos;
bool const mbPreview;
- VclBuilder maBuilder;
- VclPtr<PopupMenu> mpPopupMenu;
- VclPtr<PopupMenu> mpBackgroundPopup;
- VclPtr<GalleryBrowser2> mpBrowser;
+ std::unique_ptr<weld::Builder> mxBuilder;
+ std::unique_ptr<weld::Menu> mxPopupMenu;
+ std::unique_ptr<weld::Menu> mxBackgroundPopup;
+ GalleryBrowser2* mpBrowser;
typedef std::map< int, CommandInfo > CommandInfoMap;
CommandInfoMap m_aCommandInfo;
@@ -120,15 +118,16 @@ private:
static void Execute( const CommandInfo &rCmdInfo,
const css::uno::Sequence< css::beans::PropertyValue > &rArguments );
- DECL_LINK( MenuSelectHdl, Menu*, bool );
- DECL_LINK( BackgroundMenuSelectHdl, Menu*, bool );
+ void MenuSelectHdl(const OString& rIdent);
+ void BackgroundMenuSelectHdl(sal_uInt16 nId);
public:
- GalleryThemePopup( const GalleryTheme* pTheme,
- sal_uInt32 nObjectPos,
- bool bPreview,
- GalleryBrowser2* pBrowser );
+ GalleryThemePopup(weld::Widget* pParent,
+ const GalleryTheme* pTheme,
+ sal_uInt32 nObjectPos,
+ bool bPreview,
+ GalleryBrowser2* pBrowser);
- void ExecutePopup( vcl::Window *pParent, const ::Point &aPos );
+ void ExecutePopup(weld::Widget* pParent, const ::Point &rPos);
virtual void SAL_CALL statusChanged( const css::frame::FeatureStateEvent &rEvent) override;
virtual void SAL_CALL disposing( const css::lang::EventObject &rSource) override;
@@ -136,6 +135,7 @@ public:
GalleryThemePopup::GalleryThemePopup(
+ weld::Widget* pParent,
const GalleryTheme* pTheme,
sal_uInt32 nObjectPos,
bool bPreview,
@@ -143,13 +143,11 @@ GalleryThemePopup::GalleryThemePopup(
: mpTheme( pTheme )
, mnObjectPos( nObjectPos )
, mbPreview( bPreview )
- , maBuilder(nullptr, VclBuilderContainer::getUIRootDir(), "svx/ui/gallerymenu2.ui", "")
- , mpPopupMenu(maBuilder.get_menu("menu"))
- , mpBackgroundPopup( VclPtr<PopupMenu>::Create() )
+ , mxBuilder(Application::CreateBuilder(pParent, "svx/ui/gallerymenu2.ui"))
+ , mxPopupMenu(mxBuilder->weld_menu("menu"))
+ , mxBackgroundPopup(mxBuilder->weld_menu("backgroundmenu"))
, mpBrowser( pBrowser )
{
- mpPopupMenu->SetPopupMenu(mpPopupMenu->GetItemId("background"), mpBackgroundPopup);
-
// SID_GALLERY_ENABLE_ADDCOPY
m_aCommandInfo.emplace(
SID_GALLERY_ENABLE_ADDCOPY,
@@ -173,26 +171,26 @@ void SAL_CALL GalleryThemePopup::statusChanged(
{
if ( !rEvent.IsEnabled )
{
- mpPopupMenu->EnableItem(mpPopupMenu->GetItemId("add"), false);
+ mxPopupMenu->set_visible("add", false);
}
}
else if ( rURL == ".uno:BackgroundImage" )
{
- mpBackgroundPopup->Clear();
+ mxBackgroundPopup->clear();
if ( rEvent.IsEnabled )
{
OUString sItem;
css::uno::Sequence< OUString > sItems;
if ( ( rEvent.State >>= sItem ) && sItem.getLength() )
{
- mpBackgroundPopup->InsertItem( 1, sItem );
+ mxBackgroundPopup->append(OUString::number(1), sItem);
}
else if ( ( rEvent.State >>= sItems ) && sItems.hasElements() )
{
sal_uInt16 nId = 1;
for ( const OUString& rStr : std::as_const(sItems) )
{
- mpBackgroundPopup->InsertItem( nId, rStr );
+ mxBackgroundPopup->append(OUString::number(nId), rStr);
nId++;
}
}
@@ -222,7 +220,7 @@ void GalleryThemePopup::Execute(
}
}
-void GalleryThemePopup::ExecutePopup( vcl::Window *pWindow, const ::Point &aPos )
+void GalleryThemePopup::ExecutePopup(weld::Widget* pParent, const ::Point &rPos)
{
css::uno::Reference< css::frame::XStatusListener > xThis( this );
@@ -232,27 +230,27 @@ void GalleryThemePopup::ExecutePopup( vcl::Window *pWindow, const ::Point &aPos
const_cast< GalleryTheme* >( mpTheme )->GetURL( mnObjectPos, aURL );
const bool bValidURL = ( aURL.GetProtocol() != INetProtocol::NotValid );
- mpPopupMenu->EnableItem(mpPopupMenu->GetItemId("add"), bValidURL && SgaObjKind::Sound != eObjKind);
+ mxPopupMenu->set_visible("add", bValidURL && SgaObjKind::Sound != eObjKind);
- mpPopupMenu->EnableItem(mpPopupMenu->GetItemId("preview"), bValidURL);
- mpPopupMenu->CheckItem("preview", mbPreview);
+ mxPopupMenu->set_visible("preview", bValidURL);
+ mxPopupMenu->set_active("preview", mbPreview);
if( mpTheme->IsReadOnly() || !mpTheme->GetObjectCount() )
{
- mpPopupMenu->EnableItem(mpPopupMenu->GetItemId("delete"), false);
- mpPopupMenu->EnableItem(mpPopupMenu->GetItemId("title"), false);
+ mxPopupMenu->set_visible("delete", false);
+ mxPopupMenu->set_visible("title", false);
if (mpTheme->IsReadOnly())
- mpPopupMenu->EnableItem(mpPopupMenu->GetItemId("paste"), false);
+ mxPopupMenu->set_visible("paste", false);
if (!mpTheme->GetObjectCount())
- mpPopupMenu->EnableItem(mpPopupMenu->GetItemId("copy"), false);
+ mxPopupMenu->set_visible("copy", false);
}
else
{
... etc. - the rest is truncated
More information about the Libreoffice-commits
mailing list