diff options
Diffstat (limited to 'sw/source/ui/inc/redlndlg.hxx')
-rw-r--r-- | sw/source/ui/inc/redlndlg.hxx | 189 |
1 files changed, 189 insertions, 0 deletions
diff --git a/sw/source/ui/inc/redlndlg.hxx b/sw/source/ui/inc/redlndlg.hxx new file mode 100644 index 000000000000..152c17387072 --- /dev/null +++ b/sw/source/ui/inc/redlndlg.hxx @@ -0,0 +1,189 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _SWREDLNDLG_HXX +#define _SWREDLNDLG_HXX +#include "swdllapi.h" +#include "chldwrap.hxx" +#include <redline.hxx> +#include <tools/datetime.hxx> +#include <vcl/msgbox.hxx> +#ifndef _SVSTDARR_HXX +#include <svl/svstdarr.hxx> +#endif +#include <svl/eitem.hxx> +#include <sfx2/basedlgs.hxx> +#include <sfx2/viewfrm.hxx> +#include <sfx2/dispatch.hxx> +#include <svx/ctredlin.hxx> +#include <svx/postattr.hxx> + +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 BOOL operator==( const SwRedlineDataParent& rObj ) const + { return (pData && pData->GetSeqNo() == rObj.pData->GetSeqNo()); } + inline 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; + BOOL bOnlyFormatedRedlines; + BOOL bHasReadonlySel; + 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 USHORT CalcDiff(USHORT nStart, BOOL bChild); + SW_DLLPRIVATE void InsertChilds(SwRedlineDataParent *pParent, const SwRedline& rRedln, const USHORT nAutoFmt); + SW_DLLPRIVATE void InsertParents(USHORT nStart, USHORT nEnd = USHRT_MAX); + SW_DLLPRIVATE void RemoveParents(USHORT nStart, USHORT nEnd); + SW_DLLPRIVATE void InitAuthors(); + + SW_DLLPRIVATE String GetRedlineText(const SwRedline& rRedln, DateTime &rDateTime, USHORT nStack = 0); + SW_DLLPRIVATE const String& GetActionText(const SwRedline& rRedln, USHORT nStack = 0); + SW_DLLPRIVATE USHORT GetRedlinePos( const SvLBoxEntry& rEntry) const; + +public: + SwRedlineAcceptDlg(Dialog *pParent, BOOL bAutoFmt = FALSE); + virtual ~SwRedlineAcceptDlg(); + + DECL_LINK( FilterChangedHdl, void *pDummy = 0 ); + + inline SvxAcceptChgCtr* GetChgCtrl() { return &aTabPagesCTRL; } + inline BOOL HasRedlineAutoFmt() const { return bRedlnAutoFmt; } + + void Init(USHORT nStart = 0); + void CallAcceptReject( BOOL bSelect, 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* , + USHORT nId, + SfxBindings*, + SfxChildWinInfo* ); + + SFX_DECL_CHILDWINDOW( SwRedlineAcceptChild ); + + virtual BOOL ReInitDlg(SwDocShell *pDocSh); +}; + + +#endif + + |