summaryrefslogtreecommitdiff
path: root/include/sfx2
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2018-11-02 18:21:20 +0000
committerCaolán McNamara <caolanm@redhat.com>2018-11-04 17:33:06 +0100
commit4d83c24cdd433d5c63800290e2da6317ae12111c (patch)
treebfd4c863f0f79d40ac1671812fef1976ca4a9c85 /include/sfx2
parent628e96ce1fce194b30a5c2912feb8b7ec0328db0 (diff)
reweld SwWordCountFloatDlg
fixing up the bit that failed the last time Change-Id: I235f8f92cbc0c3e31837e01a9b094580c6f5aecf Reviewed-on: https://gerrit.libreoffice.org/62786 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'include/sfx2')
-rw-r--r--include/sfx2/basedlgs.hxx43
-rw-r--r--include/sfx2/childwin.hxx8
2 files changed, 41 insertions, 10 deletions
diff --git a/include/sfx2/basedlgs.hxx b/include/sfx2/basedlgs.hxx
index 79092bb744c5..703998b3644a 100644
--- a/include/sfx2/basedlgs.hxx
+++ b/include/sfx2/basedlgs.hxx
@@ -107,6 +107,41 @@ public:
DECL_LINK(TimerHdl, Timer *, void);
};
+class SFX2_DLLPUBLIC SfxDialogController : public weld::GenericDialogController
+{
+private:
+ DECL_DLLPRIVATE_LINK(InstallLOKNotifierHdl, void*, vcl::ILibreOfficeKitNotifier*);
+public:
+ SfxDialogController(weld::Widget* pParent, const OUString& rUIFile, const OString& rDialogId);
+};
+
+class SfxModelessDialog_Impl;
+class SFX2_DLLPUBLIC SfxModelessDialogController : public SfxDialogController
+{
+ SfxBindings* m_pBindings;
+ std::unique_ptr<SfxModelessDialog_Impl> m_xImpl;
+
+ SfxModelessDialogController(SfxModelessDialogController&) = delete;
+ void operator =(SfxModelessDialogController&) = delete;
+
+ void Init(SfxBindings *pBindinx, SfxChildWindow *pCW);
+
+ DECL_DLLPRIVATE_LINK(FocusInHdl, weld::Widget&, void);
+ DECL_DLLPRIVATE_LINK(FocusOutHdl, weld::Widget&, void);
+protected:
+ SfxModelessDialogController(SfxBindings*, SfxChildWindow* pChildWin,
+ weld::Window* pParent, const OUString& rUIXMLDescription, const OString& rID);
+ virtual ~SfxModelessDialogController() override;
+
+public:
+ virtual void FillInfo(SfxChildWinInfo&) const;
+ void Initialize (SfxChildWinInfo const * pInfo);
+ void Close();
+ void DeInit();
+ void EndDialog();
+ SfxBindings& GetBindings() { return *m_pBindings; }
+};
+
// class SfxFloatingWindow --------------------------------------------------
class SfxFloatingWindow_Impl;
class SFX2_DLLPUBLIC SfxFloatingWindow: public FloatingWindow
@@ -188,14 +223,6 @@ private:
std::unique_ptr<SingleTabDlgImpl> pImpl;
};
-class SFX2_DLLPUBLIC SfxDialogController : public weld::GenericDialogController
-{
-private:
- DECL_DLLPRIVATE_LINK(InstallLOKNotifierHdl, void*, vcl::ILibreOfficeKitNotifier*);
-public:
- SfxDialogController(weld::Widget* pParent, const OUString& rUIFile, const OString& rDialogId);
-};
-
class SFX2_DLLPUBLIC SfxSingleTabDialogController : public SfxDialogController
{
private:
diff --git a/include/sfx2/childwin.hxx b/include/sfx2/childwin.hxx
index 8c46889e533f..9a12bf896071 100644
--- a/include/sfx2/childwin.hxx
+++ b/include/sfx2/childwin.hxx
@@ -143,9 +143,10 @@ public:
class SFX2_DLLPUBLIC SfxChildWindow
{
- VclPtr<vcl::Window> pParent; // parent window ( Topwindow )
- sal_uInt16 const nType; // ChildWindow-Id
+ VclPtr<vcl::Window> pParent; // parent window ( Topwindow )
+ sal_uInt16 const nType; // ChildWindow-Id
VclPtr<vcl::Window> pWindow; // actual contents
+ std::shared_ptr<SfxModelessDialogController> xController; // actual contents
SfxChildAlignment eChildAlignment; // Current css::drawing::Alignment
std::unique_ptr< SfxChildWindow_Impl> pImpl; // Implementation data
std::unique_ptr<SfxChildWindowContext> pContext; // With context-sensitive ChildWindows:
@@ -161,6 +162,9 @@ public:
void Destroy();
vcl::Window* GetWindow() const
{ return pWindow; }
+ void SetController(std::shared_ptr<SfxModelessDialogController> controller) { xController = controller; }
+ void ClearController() { xController.reset(); }
+ std::shared_ptr<SfxModelessDialogController>& GetController() { return xController; }
vcl::Window* GetParent() const
{ return pParent; }
SfxChildAlignment GetAlignment() const