summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2019-04-18 16:49:26 +0100
committerCaolán McNamara <caolanm@redhat.com>2019-04-27 12:41:14 +0200
commit56dd851cfc77c362c3db5c0aae4a490c7f6782cc (patch)
tree0f5f6564e0b9af8123f4cebfe9a2f55c1bbbba57 /include
parent6afbe153ffd4cab27f0a7bb77f71f25923dc2e43 (diff)
weld cluster of change tracking dialogs
Change-Id: I42ca7acb41699df91b91a9f59fc68cd30972a397 Reviewed-on: https://gerrit.libreoffice.org/70988 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'include')
-rw-r--r--include/sfx2/basedlgs.hxx1
-rw-r--r--include/sfx2/childwin.hxx8
-rw-r--r--include/svtools/ctrlbox.hxx9
-rw-r--r--include/svx/ctredlin.hxx176
-rw-r--r--include/svx/sidebar/PanelLayout.hxx7
-rw-r--r--include/svx/svxdlg.hxx2
-rw-r--r--include/vcl/treelistbox.hxx2
-rw-r--r--include/vcl/weld.hxx24
8 files changed, 136 insertions, 93 deletions
diff --git a/include/sfx2/basedlgs.hxx b/include/sfx2/basedlgs.hxx
index 272ad3fae082..d2646af1d9e5 100644
--- a/include/sfx2/basedlgs.hxx
+++ b/include/sfx2/basedlgs.hxx
@@ -143,6 +143,7 @@ public:
virtual void Activate() override;
virtual void Deactivate() override;
virtual void ChildWinDispose() override;
+ virtual void FillInfo(SfxChildWinInfo&) const;
SfxBindings& GetBindings() { return *m_pBindings; }
};
diff --git a/include/sfx2/childwin.hxx b/include/sfx2/childwin.hxx
index 0a65e3c964a6..a01881c7698a 100644
--- a/include/sfx2/childwin.hxx
+++ b/include/sfx2/childwin.hxx
@@ -163,6 +163,7 @@ public:
void SetController(std::shared_ptr<SfxDialogController> controller) { xController = controller; }
void ClearController() { xController.reset(); }
std::shared_ptr<SfxDialogController>& GetController() { return xController; }
+ const std::shared_ptr<SfxDialogController>& GetController() const { return xController; }
vcl::Window* GetParent() const
{ return pParent; }
SfxChildAlignment GetAlignment() const
@@ -297,6 +298,13 @@ public:
static_cast<SfxModelessDialog*>(GetWindow())->FillInfo( aInfo ); \
return aInfo; }
+#define SFX_IMPL_MODELESSDIALOGCONTOLLER_WITHID(Class, MyID) \
+ SFX_IMPL_CHILDWINDOW_WITHID(Class, MyID) \
+ SfxChildWinInfo Class::GetInfo() const \
+ { \
+ SfxChildWinInfo aInfo = SfxChildWindow::GetInfo(); \
+ static_cast<const SfxModelessDialogController*>(GetController().get())->FillInfo( aInfo ); \
+ return aInfo; }
#define SFX_IMPL_DOCKINGWINDOW(Class, MyID) \
SFX_IMPL_CHILDWINDOW(Class, MyID) \
diff --git a/include/svtools/ctrlbox.hxx b/include/svtools/ctrlbox.hxx
index 80384fd0e882..1923809ba344 100644
--- a/include/svtools/ctrlbox.hxx
+++ b/include/svtools/ctrlbox.hxx
@@ -300,9 +300,14 @@ public:
void set_date(const Date& rDate);
Date get_date() const { return m_xCalendar->get_date(); }
+ void set_label(const OUString& rLabel) { m_xControl->set_label(rLabel); }
+ OUString get_label() const { return m_xControl->get_label(); }
+
void set_sensitive(bool bSensitive) { m_xControl->set_sensitive(bSensitive); }
bool get_sensitive() const { return m_xControl->get_sensitive(); }
void grab_focus() { m_xControl->grab_focus(); }
+
+ void connect_activated(const Link<SvtCalendarBox&, void>& rActivatedHdl) { m_aActivatedHdl = rActivatedHdl; }
private:
DECL_LINK(SelectHdl, weld::Calendar&, void);
DECL_LINK(ActivateHdl, weld::Calendar&, void);
@@ -311,6 +316,10 @@ private:
std::unique_ptr<weld::Builder> m_xBuilder;
std::unique_ptr<weld::Widget> m_xTopLevel;
std::unique_ptr<weld::Calendar> m_xCalendar;
+
+ Link<SvtCalendarBox&, void> m_aActivatedHdl;
+
+ void set_label_from_date();
};
class SVT_DLLPUBLIC FontNameBox : public ComboBox
diff --git a/include/svx/ctredlin.hxx b/include/svx/ctredlin.hxx
index 7e2260b4f1c4..3e2e88367156 100644
--- a/include/svx/ctredlin.hxx
+++ b/include/svx/ctredlin.hxx
@@ -20,10 +20,12 @@
#ifndef INCLUDED_SVX_CTREDLIN_HXX
#define INCLUDED_SVX_CTREDLIN_HXX
+#include <comphelper/string.hxx>
#include <rtl/ustring.hxx>
#include <sal/types.h>
#include <svx/svxdllapi.h>
#include <svtools/simptabl.hxx>
+#include <svtools/ctrlbox.hxx>
#include <vcl/svlbitm.hxx>
#include <vcl/svtabbx.hxx>
#include <vcl/treelistbox.hxx>
@@ -108,11 +110,13 @@ public:
virtual std::unique_ptr<SvLBoxItem> Clone(SvLBoxItem const * pSource) const override;
};
-class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxRedlinTable : public SvSimpleTable
+class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxRedlinTable
{
- using SvTabListBox::InsertEntry;
-
private:
+ std::unique_ptr<comphelper::string::NaturalStringSorter> xSorter;
+ std::unique_ptr<weld::TreeView> xWriterTreeView;
+ std::unique_ptr<weld::TreeView> xCalcTreeView;
+ weld::TreeView* pTreeView;
sal_uInt16 nDatePos;
bool bAuthor;
@@ -128,18 +132,18 @@ private:
Image maEntryImage;
OUString maEntryString;
std::unique_ptr<utl::TextSearch> pCommentSearcher;
- Link<const SvSortData*,sal_Int32> aColCompareLink;
-
-protected:
- virtual sal_Int32 ColCompare(SvTreeListEntry*,SvTreeListEntry*) override;
- virtual void InitEntry(SvTreeListEntry*, const OUString&, const Image&, const Image&, SvLBoxButtonKind) override;
+ int ColCompare(const weld::TreeIter& rLeft, const weld::TreeIter& rRight);
public:
+ SvxRedlinTable(std::unique_ptr<weld::TreeView> xWriterControl,
+ std::unique_ptr<weld::TreeView> xCalcControl);
- SvxRedlinTable(SvSimpleTableContainer& rParent, WinBits nBits = WB_BORDER);
- virtual ~SvxRedlinTable() override;
- virtual void dispose() override;
+ void set_size_request(int nWidth, int nHeight);
+
+ weld::TreeView& GetWidget() { return *pTreeView; }
+
+ ~SvxRedlinTable();
// For FilterPage only {
void SetFilterDate(bool bFlag);
@@ -157,80 +161,71 @@ public:
// } For FilterPage only
void SetCalcView();
+ void SetWriterView();
bool IsValidEntry(const OUString &rAuthor, const DateTime &rDateTime, const OUString &rComment);
bool IsValidEntry(const OUString &rAuthor, const DateTime &rDateTime);
bool IsValidComment(const OUString &rComment);
- /** Insert a redline entry.
-
- The rStr contains the entire redline entry; the columns are delimited by '\t'.
- */
- SvTreeListEntry* InsertEntry(const OUString &rStr, std::unique_ptr<RedlinData> pUserData,
- SvTreeListEntry* pParent = nullptr, sal_uLong nPos = TREELIST_APPEND);
-
- /** Insert a redline entry.
-
- The rStr contains the entire redline entry; the columns are delimited by '\t'.
- */
- SvTreeListEntry* InsertEntry(const OUString &rStr, std::unique_ptr<RedlinData> pUserData, const Color&,
- SvTreeListEntry* pParent, sal_uLong nPos = TREELIST_APPEND);
-
- /** Insert a redline entry.
-
- rRedlineType contains the image for this redline entry (plus for insertion, minus for deletion etc.).
- rStr contains the rest of the redline entry; the columns are delimited by '\t'.
- */
- SvTreeListEntry* InsertEntry(const Image &rRedlineType, const OUString &rStr, std::unique_ptr<RedlinData> pUserData,
- SvTreeListEntry* pParent, sal_uLong nPos = TREELIST_APPEND);
-
- virtual SvTreeListEntry* CreateEntry() const override;
+ DECL_LINK(HeaderBarClick, int, void);
+};
- void SetColCompareHdl(const Link<const SvSortData*,sal_Int32>& rLink ) { aColCompareLink = rLink; }
+class SVX_DLLPUBLIC SvxTPage
+{
+protected:
+ std::unique_ptr<weld::Builder> m_xBuilder;
+ std::unique_ptr<weld::Container> m_xContainer;
+public:
+ SvxTPage(weld::Container* pParent, const OUString& rUIXMLDescription, const OString& rID);
+ virtual ~SvxTPage();
+ virtual void ActivatePage();
+ virtual void DeactivatePage();
+ void Show() { m_xContainer->show(); }
};
/// Tabpage with the filter text entries etc.
-class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxTPFilter final : public TabPage
+class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxTPFilter final : public SvxTPage
{
Link<SvxTPFilter*,void> aReadyLink;
Link<SvxTPFilter*,void> aRefLink;
- VclPtr<SvxRedlinTable> pRedlinTable;
- VclPtr<CheckBox> m_pCbDate;
- VclPtr<ListBox> m_pLbDate;
- VclPtr<DateField> m_pDfDate;
- VclPtr<TimeField> m_pTfDate;
- VclPtr<PushButton> m_pIbClock;
- VclPtr<FixedText> m_pFtDate2;
- VclPtr<DateField> m_pDfDate2;
- VclPtr<TimeField> m_pTfDate2;
- VclPtr<PushButton> m_pIbClock2;
- VclPtr<CheckBox> m_pCbAuthor;
- VclPtr<ListBox> m_pLbAuthor;
- VclPtr<CheckBox> m_pCbRange;
- VclPtr<Edit> m_pEdRange;
- VclPtr<PushButton> m_pBtnRange;
- VclPtr<CheckBox> m_pCbAction;
- VclPtr<ListBox> m_pLbAction;
- VclPtr<CheckBox> m_pCbComment;
- VclPtr<Edit> m_pEdComment;
bool bModified;
- DECL_LINK( SelDateHdl, ListBox&, void );
- DECL_LINK( RowEnableHdl, Button*, void );
- DECL_LINK( TimeHdl, Button*, void );
- DECL_LINK( ModifyHdl, Edit&, void );
- DECL_LINK( ModifyListBoxHdl, ListBox&, void );
- DECL_LINK( ModifyDate, Edit&, void );
- DECL_LINK( RefHandle, Button*, void );
+ SvxRedlinTable* m_pRedlinTable;
+ std::unique_ptr<weld::CheckButton> m_xCbDate;
+ std::unique_ptr<weld::ComboBox> m_xLbDate;
+ std::unique_ptr<SvtCalendarBox> m_xDfDate;
+ std::unique_ptr<weld::TimeSpinButton> m_xTfDate;
+ std::unique_ptr<weld::Button> m_xIbClock;
+ std::unique_ptr<weld::Label> m_xFtDate2;
+ std::unique_ptr<SvtCalendarBox> m_xDfDate2;
+ std::unique_ptr<weld::TimeSpinButton> m_xTfDate2;
+ std::unique_ptr<weld::Button> m_xIbClock2;
+ std::unique_ptr<weld::CheckButton> m_xCbAuthor;
+ std::unique_ptr<weld::ComboBox> m_xLbAuthor;
+ std::unique_ptr<weld::CheckButton> m_xCbRange;
+ std::unique_ptr<weld::Entry> m_xEdRange;
+ std::unique_ptr<weld::Button> m_xBtnRange;
+ std::unique_ptr<weld::CheckButton> m_xCbAction;
+ std::unique_ptr<weld::ComboBox> m_xLbAction;
+ std::unique_ptr<weld::CheckButton> m_xCbComment;
+ std::unique_ptr<weld::Entry> m_xEdComment;
+
+ DECL_LINK( SelDateHdl, weld::ComboBox&, void );
+ DECL_LINK( RowEnableHdl, weld::Button&, void );
+ DECL_LINK( TimeHdl, weld::Button&, void );
+ DECL_LINK( ModifyHdl, weld::Entry&, void );
+ DECL_LINK( ModifyListBoxHdl, weld::ComboBox&, void );
+ DECL_LINK( ModifyDate, SvtCalendarBox&, void );
+ DECL_LINK( ModifyTime, weld::TimeSpinButton&, void );
+ DECL_LINK( RefHandle, weld::Button&, void );
void EnableDateLine1(bool bFlag);
void EnableDateLine2(bool bFlag);
public:
- SvxTPFilter( vcl::Window * pParent);
- virtual ~SvxTPFilter() override;
- virtual void dispose() override;
+ SvxTPFilter(weld::Container* pParent);
+ virtual ~SvxTPFilter() override;
virtual void DeactivatePage() override;
void SetRedlinTable(SvxRedlinTable*);
@@ -277,7 +272,7 @@ public:
void CheckAction(bool bFlag);
void CheckComment(bool bFlag);
- ListBox* GetLbAction() { return m_pLbAction;}
+ weld::ComboBox* GetLbAction() { return m_xLbAction.get(); }
void SetReadyHdl( const Link<SvxTPFilter*,void>& rLink ) { aReadyLink= rLink; }
@@ -291,7 +286,7 @@ public:
};
/// Tabpage with the redlining entries.
-class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxTPView : public TabPage
+class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxTPView : public SvxTPage
{
private:
@@ -301,35 +296,34 @@ private:
Link<SvxTPView*,void> RejectAllClickLk;
Link<SvxTPView*,void> UndoClickLk;
- VclPtr<SvxRedlinTable> m_pViewData;
- VclPtr<PushButton> m_pAccept;
- VclPtr<PushButton> m_pReject;
- VclPtr<PushButton> m_pAcceptAll;
- VclPtr<PushButton> m_pRejectAll;
- VclPtr<PushButton> m_pUndo;
-
bool bEnableAccept;
bool bEnableAcceptAll;
bool bEnableReject;
bool bEnableRejectAll;
bool bEnableUndo;
- DECL_LINK( PbClickHdl, Button*, void );
+ std::unique_ptr<weld::Button> m_xAccept;
+ std::unique_ptr<weld::Button> m_xReject;
+ std::unique_ptr<weld::Button> m_xAcceptAll;
+ std::unique_ptr<weld::Button> m_xRejectAll;
+ std::unique_ptr<weld::Button> m_xUndo;
+ std::unique_ptr<SvxRedlinTable> m_xViewData;
+
+ DECL_LINK( PbClickHdl, weld::Button&, void );
public:
- SvxTPView(vcl::Window * pParent, VclBuilderContainer *pTopLevel);
+ SvxTPView(weld::Container* pParent, weld::Builder* pTopLevel);
virtual ~SvxTPView() override;
- virtual void dispose() override;
void InsertWriterHeader();
void InsertCalcHeader();
- SvxRedlinTable* GetTableControl() { return m_pViewData;}
+ SvxRedlinTable* GetTableControl() { return m_xViewData.get(); }
void EnableAccept(bool bFlag);
void EnableAcceptAll(bool bFlag);
void EnableReject(bool bFlag);
void EnableRejectAll(bool bFlag);
- static void EnableClearFormatButton(VclPtr<PushButton>, bool bFlag);
+ static void EnableClearFormatButton(weld::Button&, bool bFlag);
void EnableClearFormat(bool bFlag);
void EnableClearFormatAll(bool bFlag);
void EnableUndo(bool bFlag=true);
@@ -350,29 +344,29 @@ public:
virtual void DeactivatePage() override;
};
-
// Redlining - Control (Accept- Changes)
class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxAcceptChgCtr
- : public TabControl
- , public VclBuilderContainer
{
private:
+ std::unique_ptr<weld::Builder> m_xBuilder;
+ std::unique_ptr<weld::Notebook> m_xTabCtrl;
- VclPtr<SvxTPFilter> pTPFilter;
- VclPtr<SvxTPView> pTPView;
+ std::unique_ptr<SvxTPFilter> m_xTPFilter;
+ std::unique_ptr<SvxTPView> m_xTPView;
- sal_uInt16 m_nFilterPageId;
+ DECL_DLLPRIVATE_LINK(ActivatePageHdl, const OString&, void);
+ DECL_DLLPRIVATE_LINK(DeactivatePageHdl, const OString&, bool);
public:
- SvxAcceptChgCtr(vcl::Window* pParent, VclBuilderContainer* pTopLevel);
-
- virtual ~SvxAcceptChgCtr() override;
- virtual void dispose() override;
+ SvxAcceptChgCtr(weld::Container* pParent, weld::Builder* pTopLevel);
+ ~SvxAcceptChgCtr();
void ShowFilterPage();
- SvxTPFilter* GetFilterPage() { return pTPFilter;}
- SvxTPView* GetViewPage() { return pTPView;}
+ SvxTPFilter* GetFilterPage() { return m_xTPFilter.get(); }
+ SvxTPView* GetViewPage() { return m_xTPView.get(); }
+
+ void set_help_id(const OString& rId) { m_xTabCtrl->set_help_id(rId); }
};
#endif // INCLUDED_SVX_CTREDLIN_HXX
diff --git a/include/svx/sidebar/PanelLayout.hxx b/include/svx/sidebar/PanelLayout.hxx
index 0932fe459f40..ddb52b172b33 100644
--- a/include/svx/sidebar/PanelLayout.hxx
+++ b/include/svx/sidebar/PanelLayout.hxx
@@ -17,6 +17,7 @@
#include <vcl/timer.hxx>
#include <vcl/idle.hxx>
#include <vcl/vclptr.hxx>
+#include <vcl/weld.hxx>
#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/frame/XFrame.hpp>
@@ -24,6 +25,10 @@
/// This class is the base for the Widget Layout-based sidebar panels.
class SVX_DLLPUBLIC PanelLayout : public Control, public VclBuilderContainer
{
+protected:
+ std::unique_ptr<weld::Builder> m_xBuilder;
+ std::unique_ptr<weld::Container> m_xContainer;
+
private:
Idle m_aPanelLayoutIdle;
bool m_bInClose;
@@ -33,7 +38,7 @@ private:
public:
PanelLayout(vcl::Window* pParent, const OString& rID, const OUString& rUIXMLDescription,
- const css::uno::Reference<css::frame::XFrame> &rFrame);
+ const css::uno::Reference<css::frame::XFrame> &rFrame, bool bInterimBuilder = false);
virtual ~PanelLayout() override;
virtual void dispose() override;
diff --git a/include/svx/svxdlg.hxx b/include/svx/svxdlg.hxx
index 2a50a9ccde03..4926a7be9f42 100644
--- a/include/svx/svxdlg.hxx
+++ b/include/svx/svxdlg.hxx
@@ -428,7 +428,7 @@ public:
virtual VclPtr<SfxAbstractDialog> CreateCharMapDialog(weld::Window* pParent, const SfxItemSet& rAttr, bool bInsert) = 0;
virtual VclPtr<SfxAbstractDialog> CreateEventConfigDialog(weld::Window* pParent, const SfxItemSet& rAttr,
const css::uno::Reference< css::frame::XFrame >& _rxFrame) = 0;
- virtual VclPtr<AbstractSvxPostItDialog> CreateSvxPostItDialog(weld::Window* pParent, const SfxItemSet& rCoreSet, bool bPrevNext = false) = 0;
+ virtual VclPtr<AbstractSvxPostItDialog> CreateSvxPostItDialog(weld::Widget* pParent, const SfxItemSet& rCoreSet, bool bPrevNext = false) = 0;
virtual VclPtr<VclAbstractDialog> CreateSvxScriptOrgDialog(weld::Window* pParent, const OUString& rLanguage) override = 0;
virtual DialogGetRanges GetDialogGetRangesFunc() = 0;
diff --git a/include/vcl/treelistbox.hxx b/include/vcl/treelistbox.hxx
index c88ada02c74e..f0ac85bd3980 100644
--- a/include/vcl/treelistbox.hxx
+++ b/include/vcl/treelistbox.hxx
@@ -208,6 +208,7 @@ class VCL_DLLPUBLIC SvTreeListBox
Link<SvTreeListBox*,bool> aExpandingHdl;
Link<SvTreeListBox*,void> aSelectHdl;
Link<SvTreeListBox*,void> aDeselectHdl;
+ Link<const CommandEvent&, bool> aPopupMenuHdl;
Image aPrevInsertedExpBmp;
Image aPrevInsertedColBmp;
@@ -441,6 +442,7 @@ public:
const Link<SvTreeListBox*,bool>& GetDoubleClickHdl() const { return aDoubleClickHdl; }
void SetExpandingHdl(const Link<SvTreeListBox*,bool>& rNewHdl){aExpandingHdl=rNewHdl;}
void SetExpandedHdl(const Link<SvTreeListBox*,void>& rNewHdl){aExpandedHdl=rNewHdl;}
+ void SetPopupMenuHdl(const Link<const CommandEvent&, bool>& rLink) { aPopupMenuHdl = rLink; }
virtual void ExpandedHdl();
virtual bool ExpandingHdl();
diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx
index a5b83aadbb9d..ed3d69d5a652 100644
--- a/include/vcl/weld.hxx
+++ b/include/vcl/weld.hxx
@@ -552,6 +552,8 @@ protected:
Link<const TreeIter&, bool> m_aExpandingHdl;
Link<TreeView&, void> m_aVisibleRangeChangedHdl;
Link<TreeView&, void> m_aModelChangedHdl;
+ Link<const CommandEvent&, bool> m_aPopupMenuHdl;
+ std::function<int(const weld::TreeIter&, const weld::TreeIter&)> m_aCustomSort;
std::vector<int> m_aRadioIndexes;
@@ -673,6 +675,7 @@ public:
virtual OUString get_id(int pos) const = 0;
virtual int find_id(const OUString& rId) const = 0;
void select_id(const OUString& rId) { select(find_id(rId)); }
+ void remove_id(const OUString& rText) { remove(find_id(rText)); }
//via iter
virtual std::unique_ptr<TreeIter> make_iterator(const TreeIter* pOrig = nullptr) const = 0;
@@ -702,6 +705,11 @@ public:
virtual bool iter_parent(TreeIter& rIter) const = 0;
virtual int get_iter_depth(const TreeIter& rIter) const = 0;
virtual int get_iter_index_in_parent(const TreeIter& rIter) const = 0;
+ /* Compares two paths. If a appears before b in a tree, then -1 is returned.
+ If b appears before a , then 1 is returned. If the two nodes are equal,
+ then 0 is returned.
+ */
+ virtual int iter_compare(const TreeIter& a, const TreeIter& b) const = 0;
virtual bool iter_has_child(const TreeIter& rIter) const = 0;
virtual void remove(const TreeIter& rIter) = 0;
virtual void select(const TreeIter& rIter) = 0;
@@ -721,12 +729,15 @@ public:
virtual void set_image(const TreeIter& rIter,
const css::uno::Reference<css::graphic::XGraphic>& rImage, int col)
= 0;
+ virtual void set_font_color(const TreeIter& rIter, const Color& rColor) const = 0;
virtual void scroll_to_row(const TreeIter& rIter) = 0;
virtual bool is_selected(const TreeIter& rIter) const = 0;
virtual void move_subtree(TreeIter& rNode, const TreeIter* pNewParent, int nIndexInNewParent)
= 0;
+ //calling func on each element until func returns true or we run out of elements
+ virtual void all_foreach(const std::function<bool(TreeIter&)>& func) = 0;
//calling func on each selected element until func returns true or we run out of elements
virtual void selected_foreach(const std::function<bool(TreeIter&)>& func) = 0;
//calling func on each visible element until func returns true or we run out of elements
@@ -740,6 +751,11 @@ public:
m_aVisibleRangeChangedHdl = rLink;
}
+ virtual void connect_popup_menu(const Link<const CommandEvent&, bool>& rLink)
+ {
+ m_aPopupMenuHdl = rLink;
+ }
+
//all of them
void select_all() { unselect(-1); }
void unselect_all() { select(-1); }
@@ -759,6 +775,12 @@ public:
virtual int get_sort_column() const = 0;
virtual void set_sort_column(int nColumn) = 0;
+ virtual void
+ set_sort_func(const std::function<int(const weld::TreeIter&, const weld::TreeIter&)>& func)
+ {
+ m_aCustomSort = func;
+ }
+
virtual void clear() = 0;
virtual int get_height_rows(int nRows) const = 0;
@@ -1434,6 +1456,8 @@ public:
return m_xSpinButton->get_value_changed_from_saved();
}
void set_position(int nCursorPos) { m_xSpinButton->set_position(nCursorPos); }
+ void set_text(const OUString& rText) { m_xSpinButton->set_text(rText); }
+ OUString get_text() const { return m_xSpinButton->get_text(); }
weld::SpinButton& get_widget() { return *m_xSpinButton; }
};