21 #include <tools/datetime.hxx>
39 #include <strings.hrc>
48 #include <bitmaps.hlst>
64 auto xDlg = std::make_shared<SwModelessRedlineAcceptDlg>(pBindings,
this, _pParent->GetFrameWeld());
66 xDlg->Initialize(pInfo);
82 "svx/ui/acceptrejectchangesdialog.ui",
"AcceptRejectChangesDialog")
83 , m_xContentArea(
m_xDialog->weld_content_area())
99 SwWait aWait( *pDocSh,
false );
123 if (pInfo !=
nullptr)
141 : m_xParentDlg(rParent)
142 , m_sInserted(
SwResId(STR_REDLINE_INSERTED))
143 , m_sDeleted(
SwResId(STR_REDLINE_DELETED))
144 , m_sFormated(
SwResId(STR_REDLINE_FORMATTED))
145 , m_sTableChgd(
SwResId(STR_REDLINE_TABLECHG))
146 , m_sFormatCollSet(
SwResId(STR_REDLINE_FMTCOLLSET))
147 , m_sAutoFormat(
SwResId(STR_REDLINE_AUTOFMT))
148 , m_bOnlyFormatedRedlines(false)
149 , m_bRedlnAutoFormat(bAutoFormat)
150 , m_bInhibitActivate(false)
152 , m_xPopup(pBuilder->weld_menu(
"writermenu"))
153 , m_xSortMenu(pBuilder->weld_menu(
"writersortmenu"))
227 std::unique_ptr<weld::TreeIter> xSelEntry(rTreeView.
make_iterator());
241 std::vector<OUString> aStrings;
248 bool bIsNotFormated =
false;
260 for (sal_uInt16 nStack = 1; nStack < rRedln.
GetStackCount(); nStack++)
266 std::sort(aStrings.begin(), aStrings.end());
267 aStrings.erase(std::unique(aStrings.begin(), aStrings.end()), aStrings.end());
269 for (
auto const &
i: aStrings)
272 if (pFilterPage->
SelectAuthor(sOldAuthor) == -1 && !aStrings.empty())
287 bIsNotFormated |= RedlineType::Format != rRedln.
GetType();
303 switch (rRedln.
GetType(nStack))
305 case RedlineType::Insert:
return BMP_REDLINE_INSERTED;
306 case RedlineType::Delete:
return BMP_REDLINE_DELETED;
307 case RedlineType::Format:
return BMP_REDLINE_FORMATTED;
308 case RedlineType::ParagraphFormat:
return BMP_REDLINE_FORMATTED;
309 case RedlineType::Table:
return BMP_REDLINE_TABLECHG;
310 case RedlineType::FmtColl:
return BMP_REDLINE_FMTCOLLSET;
319 switch( rRedln.
GetType(nStack) )
324 case RedlineType::ParagraphFormat:
return m_sFormated;
383 if (!pRedlineData && pBackupData)
395 if (pRedlineData != pBackupData->
pChild)
403 pBackupData = pBackupData->
pNext;
404 pRedlineData = pRedlineData->
Next();
418 bool bIsShowChangesInMargin =
SW_MOD()->GetUsrPref(
false)->IsShowChangesInMargin();
426 bool bShowDeletedTextAsComment = bIsShowChangesInMargin &&
428 const OUString sComment = bShowDeletedTextAsComment
472 [&pBackupData](
const std::unique_ptr<SwRedlineDataChild>& rChildPtr) {
return rChildPtr.get() == pBackupData; });
478 pParent->
pNext =
nullptr;
531 if (bHasRedlineAutoFormat)
536 std::pair<SwRedlineDataParentSortArr::const_iterator,bool>
const ret
549 bValidParent = bValidParent && bAutoFormatRedline;
551 bool bValidTree = bValidParent;
553 for (sal_uInt16 nStack = 1; nStack < rRedln.
GetStackCount(); nStack++)
555 pRedlineData = pRedlineData->
Next();
558 pRedlineChild->
pChild = pRedlineData;
561 if ( pLastRedlineChild )
562 pLastRedlineChild->
pNext = pRedlineChild;
564 pParent->
pNext = pRedlineChild;
569 if (bHasRedlineAutoFormat)
570 bValidChild = bValidChild && bAutoFormatRedline;
571 bValidTree |= bValidChild;
576 pData->pData = pRedlineChild;
577 pData->bDisabled =
true;
582 pData->eType = rRedln.
GetType(nStack);
584 OUString sComment = rRedln.
GetComment(nStack);
586 std::unique_ptr<weld::TreeIter> xChild(rTreeView.
make_iterator());
587 OUString
sId(OUString::number(reinterpret_cast<sal_Int64>(pData.release())));
589 false, xChild.get());
591 rTreeView.
set_image(*xChild, sImage, -1);
592 rTreeView.
set_text(*xChild, sAuthor, 1);
593 rTreeView.
set_text(*xChild, sDateEntry, 2);
594 rTreeView.
set_text(*xChild, sComment, 3);
596 pRedlineChild->
xTLBChild = std::move(xChild);
603 pLastRedlineChild = pRedlineChild;
606 if (pLastRedlineChild)
607 pLastRedlineChild->
pNext =
nullptr;
613 if (bHasRedlineAutoFormat)
623 std::vector<const weld::TreeIter*> aLBoxArr;
630 bool bChildrenRemoved =
false;
638 while( ( pCurEntry ==
nullptr ) && ( nPos > 0 ) )
656 [&pChildPtr](
const std::unique_ptr<SwRedlineDataChild>& rChildPtr) {
return rChildPtr.get() == pChildPtr; });
659 sal_uInt16 nChildren = 0;
667 bChildrenRemoved =
true;
672 aLBoxArr.push_back(pEntry);
679 for (
auto it = aLBoxArr.rbegin(); it != aLBoxArr.rend(); ++it)
701 nEnd = std::min(nEnd, (nCount - 1));
715 pSh->SwCursorShell::Push();
717 if(
nullptr == pCurrRedline )
723 pCurrRedline =
nullptr;
729 bool bIsShowChangesInMargin =
SW_MOD()->GetUsrPref(
false)->IsShowChangesInMargin();
736 pRedlineParent->
pData = pRedlineData;
737 pRedlineParent->
pNext =
nullptr;
739 bool bShowDeletedTextAsComment = bIsShowChangesInMargin &&
741 const OUString& sComment = bShowDeletedTextAsComment
744 pRedlineParent->
sComment = sComment.replace(
'\n',
' ');
746 std::unique_ptr<SwRedlineDataParent>(pRedlineParent));
749 pData->pData = pRedlineParent;
750 pData->bDisabled =
false;
755 pData->eType = rRedln.
GetType(0);
758 OUString
sId = OUString::number(reinterpret_cast<sal_Int64>(pData.release()));
759 std::unique_ptr<weld::TreeIter> xParent(rTreeView.
make_iterator());
760 rTreeView.
insert(
nullptr,
i,
nullptr, &sId,
nullptr,
nullptr,
false, xParent.get());
762 rTreeView.
set_image(*xParent, sImage, -1);
763 rTreeView.
set_text(*xParent, sAuthor, 1);
764 rTreeView.
set_text(*xParent, sDateEntry, 2);
765 rTreeView.
set_text(*xParent, sComment, 3);
767 if (pCurrRedline == &rRedln)
771 rTreeView.
select(*xParent);
776 pRedlineParent->
xTLBParent = std::move(xParent);
790 typedef std::vector<std::unique_ptr<weld::TreeIter>> ListBoxEntries_t;
791 ListBoxEntries_t aRedlines;
795 "recursive call of CallAcceptReject?");
800 auto lambda = [
this, pSh, bSelect, bAccept, &rTreeView, &nPos, &aRedlines](
weld::TreeIter& rEntry) {
801 if (!rTreeView.get_iter_depth(rEntry))
803 if (bSelect && nPos == -1)
808 bool bIsNotFormatted =
true;
819 if( RedlineType::Format == rRedln.
GetType() )
820 bIsNotFormatted =
false;
823 if (!pData->
bDisabled && bIsNotFormatted)
824 aRedlines.emplace_back(rTreeView.make_iterator(&rEntry));
831 rTreeView.selected_foreach(lambda);
833 rTreeView.all_foreach(lambda);
842 if (aRedlines.size() > 1)
848 OUString::number(aRedlines.size()));
864 for (
const auto& rRedLine : aRedlines)
868 (pSh->*FnAccRej)( nPosition );
871 if (aRedlines.size() > 1)
881 if (nPos != -1 && rTreeView.n_children())
883 if (nPos >= rTreeView.n_children())
884 nPos = rTreeView.n_children() - 1;
885 rTreeView.select(nPos);
886 rTreeView.scroll_to_row(nPos);
887 rTreeView.set_cursor(nPos);
888 SelectHdl(rTreeView);
897 return pSh->
FindRedlineOfData( *static_cast<SwRedlineDataParent*>(reinterpret_cast<RedlinData*>(
898 rTreeView.
get_id(rEntry).toInt64())->
pData)->pData );
903 CallAcceptReject(
true,
true );
908 CallAcceptReject(
false,
true );
913 CallAcceptReject(
true,
false );
918 CallAcceptReject(
false,
false );
925 Execute(SID_UNDO, SfxCallMode::SYNCHRON);
926 m_pTPView->EnableUndo(pView->
GetSlotState(SID_UNDO) !=
nullptr);
933 SvxTPFilter *pFilterTP = m_xTabPagesCTRL->GetFilterPage();
938 m_sFilterAction.clear();
945 m_aSelectTimer.Start();
951 m_aSelectTimer.Stop();
953 bool bIsNotFormated =
false;
960 if (!m_xParentDlg || m_xParentDlg->has_toplevel_focus())
963 std::unique_ptr<weld::TreeIter> xActEntry(rTreeView.
make_iterator());
987 bIsNotFormated |= RedlineType::Format != rRedln.
GetType();
1005 m_pTPView->EnableAccept( bEnable && bSel );
1006 m_pTPView->EnableReject( bEnable && bSel );
1007 m_pTPView->EnableClearFormat( bEnable && bSel && !bIsNotFormated );
1008 m_pTPView->EnableRejectAll( bEnable );
1009 m_pTPView->EnableClearFormatAll( bEnable && m_bOnlyFormatedRedlines );
1014 if (rCEvt.GetCommand() != CommandEventId::ContextMenu)
1021 std::unique_ptr<weld::TreeIter> xEntry(rTreeView.
make_iterator());
1025 std::unique_ptr<weld::TreeIter> xTopEntry(rTreeView.
make_iterator(xEntry.get()));
1041 m_xPopup->set_sensitive(
"writeredit", bEntry && pRed &&
1044 m_xPopup->set_sensitive(
"writersort", rTreeView.
n_children() != 0);
1048 for (sal_Int32
i = 0;
i < 5; ++
i)
1049 m_xSortMenu->set_active(
"writersort" + OString::number(
i),
i == nColumn);
1051 OString sCommand = m_xPopup->popup_at_rect(&rTreeView,
tools::Rectangle(rCEvt.GetMousePosPixel(),
Size(1,1)));
1053 if (sCommand ==
"writeredit")
1076 ::DialogGetRanges fnGetRange = pFact->GetDialogGetRangesFunc();
1084 SID_ATTR_POSTIT_DATE ));
1090 const char* pResId =
nullptr;
1093 case RedlineType::Insert:
1094 pResId = STR_REDLINE_INSERTED;
1096 case RedlineType::Delete:
1097 pResId = STR_REDLINE_DELETED;
1099 case RedlineType::Format:
1100 case RedlineType::ParagraphFormat:
1101 pResId = STR_REDLINE_FORMATTED;
1103 case RedlineType::Table:
1104 pResId = STR_REDLINE_TABLECHG;
1108 OUString sTitle(
SwResId(STR_REDLINE_COMMENT));
1111 pDlg->SetText(sTitle);
1115 if ( pDlg->Execute() ==
RET_OK )
1117 const SfxItemSet* pOutSet = pDlg->GetOutputItemSet();
1118 OUString sMsg(pOutSet->
Get(SID_ATTR_POSTIT_TEXT).GetValue());
1122 rTreeView.
set_text(*xEntry, sMsg.replace(
'\n',
' '), 3);
1127 pDlg.disposeAndClear();
1130 else if (!sCommand.isEmpty())
1132 int nSortMode = sCommand.copy(10).toInt32();
1134 if (nSortMode == 4 && nColumn == 4)
1140 m_pTable->HeaderBarClick(nSortMode);
1141 if (nSortMode == -1)
1149 OUString lcl_StripAcceptChgDat(OUString &rExtraString)
1154 sal_Int32
nPos = rExtraString.indexOf(
"AcceptChgDat:");
1159 sal_Int32
n1 = rExtraString.indexOf(
'(', nPos);
1162 sal_Int32
n2 = rExtraString.indexOf(
')', n1);
1166 aStr = rExtraString.copy(nPos, n2 - nPos + 1);
1167 rExtraString = rExtraString.replaceAt(nPos, n2 - nPos + 1,
"");
1168 aStr = aStr.copy(n1 - nPos + 1);
1178 if (rExtraString.isEmpty())
1181 OUString aStr = lcl_StripAcceptChgDat(rExtraString);
1185 int nCount = aStr.toInt32();
1189 std::vector<int> aEndPos;
1191 for (
int i = 0;
i < nCount; ++
i)
1193 sal_Int32 n1 = aStr.indexOf(
';');
1194 aStr = aStr.copy( n1+1 );
1195 aEndPos.push_back(aStr.toInt32());
1198 bool bUseless =
false;
1200 std::vector<int> aWidths;
1201 for (
int i = 1;
i < nCount; ++
i)
1203 aWidths.push_back(aEndPos[
i] - aEndPos[
i - 1]);
1204 if (aWidths.back() <= 0)
1220 lcl_StripAcceptChgDat(rExtraData);
1221 rExtraData +=
"AcceptChgDat:(";
1223 const int nTabCount = 4;
1225 rExtraData += OUString::number(nTabCount);
1229 std::vector<int> aWidths;
1234 for (
int i = 0;
i < nTabCount - 1; ++
i)
1237 assert(nWidth > 0 &&
"suspicious to get a value like this");
1238 aWidths.push_back(aWidths.back() + nWidth);
1241 for (
auto a : aWidths)
1243 rExtraData += OUString::number(
a);
1250 :
PanelLayout(pParent,
"ManageChangesPanel",
"modules/swriter/ui/managechangessidebar.ui", rFrame)
1251 , mxContentArea(m_xBuilder->weld_container(
"content_area"))
css::uno::Reference< css::linguistic2::XProofreadingIterator > get(css::uno::Reference< css::uno::XComponentContext > const &context)
virtual void FillInfo(SfxChildWinInfo &) const
virtual void set_text(int row, const OUString &rText, int col=-1)=0
std::shared_ptr< SfxDialogController > & GetController()
SfxViewFrame * GetViewFrame() const
#define LINK(Instance, Class, Member)
sal_uInt16 GetSeqNo() const
virtual int get_iter_index_in_parent(const TreeIter &rIter) const =0
const SfxPoolItem * ExecuteList(sal_uInt16 nSlot, SfxCallMode nCall, std::initializer_list< SfxPoolItem const * > args, std::initializer_list< SfxPoolItem const * > internalargs=std::initializer_list< SfxPoolItem const * >())
const SwRangeRedline & GetRedline(SwRedlineTable::size_type nPos) const
TOOLS_DLLPUBLIC OString convertLineEnd(const OString &rIn, LineEnd eLineEnd)
virtual int count_selected_rows() const =0
void SetRejectAllClickHdl(const Link< SvxTPView *, void > &rLink)
void Initialize(SfxChildWinInfo const *pInfo)
OUString const & GetAuthorString(sal_uInt16 nPos=0) const
std::unique_ptr< SvxAcceptChgCtr > m_xTabPagesCTRL
virtual const css::uno::Sequence< sal_Int8 > & GetRedlinePassword() const =0
virtual bool iter_parent(TreeIter &rIter) const =0
virtual void copy_iterator(const TreeIter &rSource, TreeIter &rDest) const =0
virtual void dispose() override
std::unique_ptr< ContentProperties > pData
void FillInfo(OUString &rExtraData) const
const SwRedlineData * Next() const
const SwRangeRedline * SelNextRedline()
virtual void insert(const TreeIter *pParent, int pos, const OUString *pStr, const OUString *pId, const OUString *pIconName, VirtualDevice *pImageSurface, bool bChildrenOnDemand, TreeIter *pRet)=0
SAL_DLLPRIVATE OUString GetActionText(const SwRangeRedline &rRedln, sal_uInt16 nStack=0)
SfxDispatcher * GetDispatcher()
static SvxAbstractDialogFactory * Create()
bool IsModified() const
Changes in document?
virtual void make_unsorted()=0
virtual void Activate() override
std::unique_ptr< weld::TreeIter > xTLBParent
SwUndoId EndUndo(SwUndoId eUndoId=SwUndoId::EMPTY, const SwRewriter *pRewriter=nullptr)
Closes parenthesis of nUndoId, not used by UI.
SwDocShell * GetOldDocShell()
const SwRangeRedline * GotoRedline(SwRedlineTable::size_type nArrPos, bool bSelect)
bool HasRedlineAutoFormat() const
void EnableRejectAll(bool bFlag)
virtual bool is_selected(int pos) const =0
void EnableClearFormat(bool bFlag)
SAL_DLLPRIVATE SwRedlineTable::size_type CalcDiff(SwRedlineTable::size_type nStart, bool bChild)
virtual ~SwModelessRedlineAcceptDlg() override
virtual std::unique_ptr< TreeIter > make_iterator(const TreeIter *pOrig=nullptr) const =0
void SetRejectClickHdl(const Link< SvxTPView *, void > &rLink)
virtual int get_column_width(int nCol) const =0
Used by the UI to modify the document model.
std::unique_ptr< weld::Container > mxContentArea
std::unique_ptr< weld::Builder > m_xBuilder
void connect_changed(const Link< TreeView &, void > &rLink)
std::vector< std::unique_ptr< SwRedlineDataChild > > m_RedlineChildren
const SwView & GetView() const
const BorderLinePrimitive2D *pCandidateB assert(pCandidateA)
weld::ComboBox * GetLbAction()
SwRedlineAcceptPanel(vcl::Window *pParent, const css::uno::Reference< css::frame::XFrame > &rFrame)
const DateTime & GetTimeStamp(sal_uInt16 nPos=0) const
virtual int n_children() const =0
LineEnd GetSystemLineEnd()
virtual void set_column_fixed_widths(const std::vector< int > &rWidths)=0
virtual void selected_foreach(const std::function< bool(TreeIter &)> &func)=0
virtual OUString get_id(int pos) const =0
IMPL_LINK(SwRedlineAcceptDlg, CommandHdl, const CommandEvent &, rCEvt, bool)
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
We need to be a SfxListener to be able to update the list of changes when we get SfxHintId::DocChange...
std::vector< std::unique_ptr< SwRedlineDataParent > > m_RedlineParents
const IDocumentRedlineAccess & getIDocumentRedlineAccess() const
Provides access to the document redline interface.
sal_uInt16 GetStackCount() const
const SwRedlineData & GetRedlineData(sal_uInt16 nPos=0) const
SFX_IMPL_MODELESSDIALOGCONTOLLER_WITHID(SvxContourDlgChildWindow, SID_CONTOUR_DLG)
bool AcceptRedline(SwRedlineTable::size_type nPos)
const SfxItemPool & GetAttrPool() const
bool IsAutoFormat() const
SAL_DLLPRIVATE SwRedlineTable::size_type GetRedlinePos(const weld::TreeIter &rEntry)
SAL_DLLPRIVATE void InitAuthors()
const SfxPoolItem * GetSlotState(sal_uInt16 nSlotId, const SfxInterface *pIF=nullptr, SfxItemSet *pStateSet=nullptr)
std::unique_ptr< SwRedlineAcceptDlg > mpImplDlg
bool SetRedlineComment(const OUString &rS)
Set comment to Redline at position.
void EndAction(const bool bIdleEnd=false, const bool DoSetPosX=false)
std::unique_ptr< weld::TreeIter > xTLBChild
OUString Apply(const OUString &rStr) const
void Initialize(SfxChildWinInfo *pInfo)
SwRedlineTable::size_type GetRedlineCount() const
const SwRangeRedline * SelPrevRedline()
void EnableClearFormatAll(bool bFlag)
vector_type::size_type size_type
SwRedlineAcceptDlg(SwRedlineAcceptDlg const &)=delete
SwRedlineTable::size_type FindRedlineOfData(const SwRedlineData &) const
Search Redline for this Data and.
static SAL_DLLPRIVATE OUString GetActionImage(const SwRangeRedline &rRedln, sal_uInt16 nStack=0)
const SwRedlineDataChild * pNext
SwUndoId StartUndo(SwUndoId eUndoId=SwUndoId::EMPTY, const SwRewriter *pRewriter=nullptr)
Undo: set up Undo parenthesis, return nUndoId of this parenthesis.
void AddRule(SwUndoArg eWhat, const OUString &rWith)
const DateTime & GetTimeStamp() const
const SwRedlineData * pChild
OUString GetSelectedAuthor() const
virtual void set_active(int pos)=0
void StartListening(SfxBroadcaster &rBroadcaster, DuplicateHandling eDuplicateHanding=DuplicateHandling::Unexpected)
SvxRedlinTable * m_pTable
OUString SwResId(const char *pId)
virtual ~SwRedlineAcceptPanel() override
virtual void expand_row(const TreeIter &rIter)=0
void SetTimeout(sal_uInt64 nTimeoutMs)
void SetOldDocShell(SwDocShell *pDcSh)
std::unique_ptr< weld::Container > m_xContentArea
std::unique_ptr< SwRedlineAcceptDlg > m_xImplDlg
SwDocShell * GetDocShell()
SAL_DLLPRIVATE void InsertParents(SwRedlineTable::size_type nStart, SwRedlineTable::size_type nEnd=SwRedlineTable::npos)
IMPL_LINK_NOARG(SwRedlineAcceptDlg, AcceptHdl, SvxTPView *, void)
virtual void remove(int pos)=0
int get_checkbox_column_width() const
const OUString & GetComment(sal_uInt16 nPos=0) const
void EnableUndo(bool bFlag=true)
bool IsValidEntry(std::u16string_view rAuthor, const DateTime &rDateTime, const OUString &rComment)
virtual void dispose() override
const SwRangeRedline * GetCurrRedline() const
virtual void select(int pos)=0
void SetUndoClickHdl(const Link< SvxTPView *, void > &rLink)
virtual void Activate() override
SwWrtShell * GetWrtShellPtr() const
void CallAcceptReject(bool bSelect, bool bAccept)
void EnableReject(bool bFlag)
static void SetCareDialog(const std::shared_ptr< weld::Window > &rNew)
virtual int get_sort_column() const =0
SwChildWinWrapper * pChildWin
const SfxPoolItem & Get(sal_uInt16 nWhich, bool bSrchInParent=true) const
sal_Int32 SelectAuthor(const OUString &aString)
SwModelessRedlineAcceptDlg(SfxBindings *, SwChildWinWrapper *, weld::Window *pParent)
virtual bool get_selected(TreeIter *pIter) const =0
weld::TreeView & GetWidget()
bool RejectRedline(SwRedlineTable::size_type nPos)
void EnableAccept(bool bFlag)
bool IsCursorPtAtEnd() const
virtual bool ReInitDlg(SwDocShell *pDocSh) override
void SetAcceptAllClickHdl(const Link< SvxTPView *, void > &rLink)
Reference< XExecutableDialog > m_xDialog
RedlineType GetType(sal_uInt16 nPos=0) const
virtual void set_cursor(int pos)=0
void SetInvokeHandler(const Link< Timer *, void > &rLink)
SvxRedlinTable * GetTableControl()
virtual void set_selection_mode(SelectionMode eMode)=0
SAL_DLLPRIVATE void InsertChildren(SwRedlineDataParent *pParent, const SwRangeRedline &rRedln, bool bHasRedlineAutoFormat)
virtual void set_image(int row, const OUString &rImage, int col=-1)=0
bool m_bOnlyFormatedRedlines
const SwRedlineData * pData
void Initialize(OUString &rExtraData)
SAL_DLLPRIVATE void RemoveParents(SwRedlineTable::size_type nStart, SwRedlineTable::size_type nEnd)
void append_text(const OUString &rStr)
OUString m_sFormatCollSet
const SwRedlineDataChild * pNext
virtual void FillInfo(SfxChildWinInfo &) const override
virtual bool ReInitDlg(SwDocShell *pDocSh)
std::pair< const_iterator, bool > insert(Value &&x)
SwRedlineDataParentSortArr m_aUsedSeqNo
void InsertAuthor(const OUString &rString)
static constexpr size_type npos
virtual void connect_popup_menu(const Link< const CommandEvent &, bool > &rLink)
void Init(SwRedlineTable::size_type nStart=0)
virtual void make_sorted()=0
#define FN_REDLINE_ACCEPT
void EnableAcceptAll(bool bFlag)
void SetAcceptClickHdl(const Link< SvxTPView *, void > &rLink)
size_type erase(const Value &x)
virtual OUString get_active_text() const =0
virtual int iter_compare(const TreeIter &a, const TreeIter &b) const =0
virtual int get_iter_depth(const TreeIter &rIter) const =0
virtual void scroll_to_row(int row)=0