/************************************************************** * * 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 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ #ifndef _SWREDLNDLG_HXX #define _SWREDLNDLG_HXX #include "swdllapi.h" #include "chldwrap.hxx" #include #include #include #ifndef _SVSTDARR_HXX #include #endif #include #include #include #include #include #include class SwChildWinWrapper; struct SwRedlineDataChild { const SwRedlineData* pChild; // Verweis auf originale gestackte Daten const SwRedlineDataChild* pNext; // Verweis auf gestackte Daten SvLBoxEntry* pTLBChild; // zugehoeriger TreeListBox-Eintrag }; struct SwRedlineDataParent { const SwRedlineData* pData; // RedlineDataPtr const SwRedlineDataChild* pNext; // Verweis auf gestackte Daten SvLBoxEntry* pTLBParent; // zugehoeriger TreeListBox-Eintrag String sComment; // Redline-Kommentar inline sal_Bool operator==( const SwRedlineDataParent& rObj ) const { return (pData && pData->GetSeqNo() == rObj.pData->GetSeqNo()); } inline sal_Bool operator< ( const SwRedlineDataParent& rObj ) const { return (pData && pData->GetSeqNo() < rObj.pData->GetSeqNo()); } }; typedef SwRedlineDataParent* SwRedlineDataParentPtr; SV_DECL_PTRARR_DEL(SwRedlineDataParentArr, SwRedlineDataParentPtr, 10, 20) SV_DECL_PTRARR_SORT(SwRedlineDataParentSortArr, SwRedlineDataParentPtr, 10, 20) typedef SwRedlineDataChild* SwRedlineDataChildPtr; SV_DECL_PTRARR_DEL(SwRedlineDataChildArr, SwRedlineDataChildPtr, 4, 4) typedef SvLBoxEntry* SvLBoxEntryPtr; SV_DECL_PTRARR(SvLBoxEntryArr, SvLBoxEntryPtr, 100, 100) class SW_DLLPUBLIC SwRedlineAcceptDlg { Dialog* pParentDlg; SwRedlineDataParentArr aRedlineParents; SwRedlineDataChildArr aRedlineChilds; SwRedlineDataParentSortArr aUsedSeqNo; SvxAcceptChgCtr aTabPagesCTRL; PopupMenu aPopup; Timer aDeselectTimer; Timer aSelectTimer; String sInserted; String sDeleted; String sFormated; String sTableChgd; String sFmtCollSet; String sFilterAction; String sAutoFormat; Size aBorderSz; SvxTPView* pTPView; SvxRedlinTable* pTable; // PB 2006/02/02 #i48648 now SvHeaderTabListBox Link aOldSelectHdl; Link aOldDeselectHdl; sal_Bool bOnlyFormatedRedlines; sal_Bool bHasReadonlySel; sal_Bool bRedlnAutoFmt; // prevent update dialog data during longer operations (cf #102657#) bool bInhibitActivate; SW_DLLPRIVATE DECL_LINK( AcceptHdl, void* ); SW_DLLPRIVATE DECL_LINK( AcceptAllHdl, void* ); SW_DLLPRIVATE DECL_LINK( RejectHdl, void* ); SW_DLLPRIVATE DECL_LINK( RejectAllHdl, void* ); SW_DLLPRIVATE DECL_LINK( UndoHdl, void* ); SW_DLLPRIVATE DECL_LINK( DeselectHdl, void* ); SW_DLLPRIVATE DECL_LINK( SelectHdl, void* ); SW_DLLPRIVATE DECL_LINK( GotoHdl, void* ); SW_DLLPRIVATE DECL_LINK( CommandHdl, void* ); SW_DLLPRIVATE sal_uInt16 CalcDiff(sal_uInt16 nStart, sal_Bool bChild); SW_DLLPRIVATE void InsertChilds(SwRedlineDataParent *pParent, const SwRedline& rRedln, const sal_uInt16 nAutoFmt); SW_DLLPRIVATE void InsertParents(sal_uInt16 nStart, sal_uInt16 nEnd = USHRT_MAX); SW_DLLPRIVATE void RemoveParents(sal_uInt16 nStart, sal_uInt16 nEnd); SW_DLLPRIVATE void InitAuthors(); SW_DLLPRIVATE String GetRedlineText(const SwRedline& rRedln, DateTime &rDateTime, sal_uInt16 nStack = 0); SW_DLLPRIVATE const String& GetActionText(const SwRedline& rRedln, sal_uInt16 nStack = 0); SW_DLLPRIVATE sal_uInt16 GetRedlinePos( const SvLBoxEntry& rEntry) const; public: SwRedlineAcceptDlg(Dialog *pParent, sal_Bool bAutoFmt = sal_False); virtual ~SwRedlineAcceptDlg(); DECL_LINK( FilterChangedHdl, void *pDummy = 0 ); inline SvxAcceptChgCtr* GetChgCtrl() { return &aTabPagesCTRL; } inline sal_Bool HasRedlineAutoFmt() const { return bRedlnAutoFmt; } void Init(sal_uInt16 nStart = 0); void CallAcceptReject( sal_Bool bSelect, sal_Bool bAccept ); void Initialize(const String &rExtraData); void FillInfo(String &rExtraData) const; virtual void Activate(); virtual void Resize(); }; /*------------------------------------------------------------------------ Beschreibung: ------------------------------------------------------------------------*/ class SwModelessRedlineAcceptDlg : public SfxModelessDialog { SwRedlineAcceptDlg* pImplDlg; SwChildWinWrapper* pChildWin; virtual void Resize(); public: SwModelessRedlineAcceptDlg(SfxBindings*, SwChildWinWrapper*, Window *pParent); ~SwModelessRedlineAcceptDlg(); virtual void Activate(); virtual void FillInfo(SfxChildWinInfo&) const; void Initialize (SfxChildWinInfo* pInfo); }; /*------------------------------------------------------------------------ Beschreibung: ------------------------------------------------------------------------*/ class SwRedlineAcceptChild : public SwChildWinWrapper { public: SwRedlineAcceptChild( Window* , sal_uInt16 nId, SfxBindings*, SfxChildWinInfo* ); SFX_DECL_CHILDWINDOW( SwRedlineAcceptChild ); virtual sal_Bool ReInitDlg(SwDocShell *pDocSh); }; #endif