diff options
Diffstat (limited to 'svx/inc/svx/ctredlin.hxx')
-rw-r--r-- | svx/inc/svx/ctredlin.hxx | 431 |
1 files changed, 431 insertions, 0 deletions
diff --git a/svx/inc/svx/ctredlin.hxx b/svx/inc/svx/ctredlin.hxx new file mode 100644 index 000000000000..abedd54f0c00 --- /dev/null +++ b/svx/inc/svx/ctredlin.hxx @@ -0,0 +1,431 @@ +/************************************************************************* + * + * 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 _SVX_CTREDLIN_HXX +#define _SVX_CTREDLIN_HXX + +#ifndef _MOREBTN_HXX //autogen +#include <vcl/morebtn.hxx> +#endif +#ifndef _COMBOBOX_HXX //autogen +#include <vcl/combobox.hxx> +#endif +#include <svtools/headbar.hxx> +#include <svtools/svtabbx.hxx> +#include <vcl/lstbox.hxx> +#include <vcl/tabpage.hxx> +#include <vcl/field.hxx> +#include <vcl/fixed.hxx> + +#ifndef _SVX_SIMPTABL +#include <svx/simptabl.hxx> +#endif +#include <vcl/tabctrl.hxx> +#include <tools/datetime.hxx> +#include <svtools/txtcmp.hxx> +#include "svx/svxdllapi.h" + +#define FLT_DATE_BEFORE 0 +#define FLT_DATE_SINCE 1 +#define FLT_DATE_EQUAL 2 +#define FLT_DATE_NOTEQUAL 3 +#define FLT_DATE_BETWEEN 4 +#define FLT_DATE_SAVE 5 + + +// Struct fuer Datums-Sortierung + +class SVX_DLLPUBLIC RedlinData +{ +public: + RedlinData(); + virtual ~RedlinData(); + BOOL bDisabled; + DateTime aDateTime; + void* pData; +}; + +class SvxRedlinEntry : public SvLBoxEntry +{ +public: + SvxRedlinEntry(); + virtual ~SvxRedlinEntry(); +}; + +// Klasse fuer die Darstellung von schriftabhaengigen Strings +class SvLBoxColorString : public SvLBoxString +{ +private: + + Color aPrivColor; + +public: + SvLBoxColorString( SvLBoxEntry*,USHORT nFlags,const XubString& rStr, + const Color& rCol); + SvLBoxColorString(); + ~SvLBoxColorString(); + + void Paint( const Point&, SvLBox& rDev, USHORT nFlags,SvLBoxEntry* ); + SvLBoxItem* Create() const; +}; + +class SVX_DLLPUBLIC SvxRedlinTable : public SvxSimpleTable +{ + using SvTabListBox::InsertEntry; + +private: + + BOOL bIsCalc; + USHORT nDatePos; + BOOL bAuthor; + BOOL bDate; + BOOL bComment; + USHORT nDaTiMode; + DateTime aDaTiFirst; + DateTime aDaTiLast; + DateTime aDaTiFilterFirst; + DateTime aDaTiFilterLast; + String aAuthor; + Color aEntryColor; + String aCurEntry; + utl::TextSearch* pCommentSearcher; + Link aColCompareLink; + +protected: + + virtual StringCompare ColCompare(SvLBoxEntry*,SvLBoxEntry*); + virtual void InitEntry(SvLBoxEntry*,const XubString&,const Image&,const Image&,SvLBoxButtonKind); + + + +public: + + SvxRedlinTable( Window* pParent,WinBits nBits ); + SvxRedlinTable( Window* pParent,const ResId& rResId); + ~SvxRedlinTable(); + + // For FilterPage only { + void SetFilterDate(BOOL bFlag=TRUE); + void SetDateTimeMode(USHORT nMode); + void SetFirstDate(const Date&); + void SetLastDate(const Date&); + void SetFirstTime(const Time&); + void SetLastTime(const Time&); + void SetFilterAuthor(BOOL bFlag=TRUE); + void SetAuthor(const String &); + void SetFilterComment(BOOL bFlag=TRUE); + void SetCommentParams( const utl::SearchParam* pSearchPara ); + + void UpdateFilterTest(); + // } For FilterPage only + + void SetCalcView(BOOL bFlag=TRUE); + BOOL IsValidCalcEntry(const String& ,RedlinData *pUserData); + BOOL IsValidWriterEntry(const String& ,RedlinData *pUserData); + + // keine NULL-Ptr. ueberpruefung { + BOOL IsValidEntry(const String* pAuthor,const DateTime *pDateTime,const String* pComment); + BOOL IsValidEntry(const String* pAuthor,const DateTime *pDateTime); + BOOL IsValidComment(const String* pComment); + // } + + SvLBoxEntry* InsertEntry(const String& ,RedlinData *pUserData, + SvLBoxEntry* pParent=NULL,ULONG nPos=LIST_APPEND); + + SvLBoxEntry* InsertEntry(const String& ,RedlinData *pUserData,const Color&, + SvLBoxEntry* pParent=NULL,ULONG nPos=LIST_APPEND); + + + virtual SvLBoxEntry* CreateEntry() const; + + void SetColCompareHdl(const Link& rLink ) { aColCompareLink = rLink; } + const Link& GetColCompareHdl() const { return aColCompareLink; } + + +}; + +//================================================================== +// Filter- Tabpage +//================================================================== +class SVX_DLLPUBLIC SvxTPFilter: public TabPage +{ +private: + + Link aReadyLink; + Link aModifyLink; + Link aModifyDateLink; + Link aModifyAuthorLink; + Link aModifyRefLink; + Link aRefLink; + Link aModifyComLink; + + SvxRedlinTable* pRedlinTable; + CheckBox aCbDate; + ListBox aLbDate; + DateField aDfDate; + TimeField aTfDate; + ImageButton aIbClock; + FixedText aFtDate2; + DateField aDfDate2; + TimeField aTfDate2; + ImageButton aIbClock2; + CheckBox aCbAuthor; + ListBox aLbAuthor; + CheckBox aCbRange; + Edit aEdRange; + PushButton aBtnRange; + ListBox aLbAction; + CheckBox aCbComment; + Edit aEdComment; + String aActionStr; + String aRangeStr; + String aStrMyName; + BOOL bModified; + + DECL_LINK( SelDateHdl, ListBox* ); + DECL_LINK( RowEnableHdl, CheckBox* ); + DECL_LINK( TimeHdl, ImageButton* ); + DECL_LINK( ModifyHdl, void* ); + DECL_LINK( ModifyDate, void* ); + DECL_LINK( RefHandle, PushButton* ); + + +protected: + + void ShowDateFields(USHORT nKind); + void EnableDateLine1(BOOL bFlag); + void EnableDateLine2(BOOL bFlag); + +public: + SvxTPFilter( Window * pParent); + + virtual void DeactivatePage(); + void SetRedlinTable(SvxRedlinTable*); + + String GetMyName() const; + Date GetFirstDate() const; + void SetFirstDate(const Date &aDate); + Time GetFirstTime() const; + void SetFirstTime(const Time &aTime); + + Date GetLastDate() const; + void SetLastDate(const Date &aDate); + Time GetLastTime() const; + void SetLastTime(const Time &aTime); + + void SetDateMode(USHORT nMode); + USHORT GetDateMode(); + + void ClearAuthors(); + void InsertAuthor( const String& rString, USHORT nPos = LISTBOX_APPEND ); + USHORT GetSelectedAuthorPos(); + String GetSelectedAuthor()const; + void SelectedAuthorPos(USHORT nPos); + USHORT SelectAuthor(const String& aString); + void SetComment(const String &rComment); + String GetComment()const; + + + // Methoden fuer Calc { + void SetRange(const String& rString); + String GetRange() const; + void HideRange(BOOL bHide=TRUE); + void DisableRange(BOOL bFlag=TRUE); + void SetFocusToRange(); + // } Methoden fuer Calc + + void HideClocks(BOOL bHide=TRUE); + void DisableRef(BOOL bFlag); + + BOOL IsDate(); + BOOL IsAuthor(); + BOOL IsRange(); + BOOL IsAction(); + BOOL IsComment(); + + void ShowAction(BOOL bShow=TRUE); + + void CheckDate(BOOL bFlag=TRUE); + void CheckAuthor(BOOL bFlag=TRUE); + void CheckRange(BOOL bFlag=TRUE); + void CheckAction(BOOL bFlag=TRUE); + void CheckComment(BOOL bFlag=TRUE); + + ListBox* GetLbAction(); + + void SetReadyHdl( const Link& rLink ) { aReadyLink= rLink; } + const Link& GetReadyHdl() const { return aReadyLink; } + + void SetModifyHdl( const Link& rLink ) { aModifyLink = rLink; } + const Link& GetModifyHdl() const { return aModifyLink; } + + void SetModifyDateHdl( const Link& rLink ) { aModifyDateLink = rLink; } + const Link& GetModifyDateHdl() const { return aModifyDateLink; } + + void SetModifyAuthorHdl( const Link& rLink ) { aModifyAuthorLink = rLink; } + const Link& GetModifyAuthorHdl() const { return aModifyAuthorLink; } + + void SetModifyCommentHdl(const Link& rLink ) { aModifyComLink = rLink; } + const Link& GetModifyCommentHdl() const { return aModifyComLink; } + + + // Methoden fuer Calc { + void SetModifyRangeHdl( const Link& rLink ) { aModifyRefLink = rLink; } + const Link& GetModifyRangeHdl() const { return aModifyRefLink; } + + void SetRefHdl( const Link& rLink ) { aRefLink = rLink; } + const Link& GetRefHdl() const { return aRefLink; } + + void Enable( bool bEnable = true, bool bChild = true ); + void Disable( bool bChild = true ); + + // } Methoden fuer Calc +}; + + +//================================================================== +// View- Tabpage +//================================================================== + +class SVX_DLLPUBLIC SvxTPView: public TabPage +{ +private: + + Link AcceptClickLk; + Link AcceptAllClickLk; + Link RejectClickLk; + Link RejectAllClickLk; + Link UndoClickLk; + + SvxRedlinTable aViewData; + PushButton PbAccept; + PushButton PbReject; + PushButton PbAcceptAll; + PushButton PbRejectAll; + PushButton PbUndo; + String aTitle1; + String aTitle2; + String aTitle3; + String aTitle4; + String aTitle5; + String aStrMyName; + long nDistance; + Size aMinSize; + + DECL_LINK( PbClickHdl, PushButton* ); + + +protected: + + void Resize(); + +public: + SvxTPView( Window * pParent); + + String GetMyName() const; + + void InsertWriterHeader(); + void InsertCalcHeader(); + SvxRedlinTable* GetTableControl(); + + void EnableAccept(BOOL nFlag=TRUE); + void EnableAcceptAll(BOOL nFlag=TRUE); + void EnableReject(BOOL nFlag=TRUE); + void EnableRejectAll(BOOL nFlag=TRUE); + void EnableUndo(BOOL nFlag=TRUE); + + void DisableAccept() {EnableAccept(FALSE);} + void DisableAcceptAll() {EnableAcceptAll(FALSE);} + void DisableReject() {EnableReject(FALSE);} + void DisableRejectAll() {EnableRejectAll(FALSE);} + void DisableUndo() {EnableUndo(FALSE);} + + void ShowUndo(BOOL nFlag=TRUE); + void HideUndo() {ShowUndo(FALSE);} + BOOL IsUndoVisible(); + + Size GetMinSizePixel(); + + void SetAcceptClickHdl( const Link& rLink ) { AcceptClickLk = rLink; } + const Link& GetAcceptClickHdl() const { return AcceptClickLk; } + + void SetAcceptAllClickHdl( const Link& rLink ) { AcceptAllClickLk = rLink; } + const Link& GetAcceptAllClickHdl() const { return AcceptAllClickLk; } + + void SetRejectClickHdl( const Link& rLink ) { RejectClickLk = rLink; } + const Link& GetRejectClickHdl() const { return RejectClickLk; } + + void SetRejectAllClickHdl( const Link& rLink ) { RejectAllClickLk = rLink; } + const Link& GetRejectAllClickHdl() const { return RejectAllClickLk; } + + void SetUndoClickHdl( const Link& rLink ) { UndoClickLk = rLink; } + const Link& GetUndoAllClickHdl() const { return UndoClickLk; } +}; + +//================================================================== +// Redlining - Control (Accept- Changes) +//================================================================== + +class SVX_DLLPUBLIC SvxAcceptChgCtr : public Control +{ +private: + + Link aMinSizeLink; + TabControl aTCAccept; + SvxTPFilter* pTPFilter; + SvxTPView* pTPView; + Size aMinSize; + +protected: + + virtual void Resize(); + +public: + SvxAcceptChgCtr( Window* pParent, WinBits nWinStyle = 0 ); + SvxAcceptChgCtr( Window* pParent, const ResId& rResId ); + + ~SvxAcceptChgCtr(); + + Size GetMinSizePixel() const; + + void ShowFilterPage(); + void ShowViewPage(); + + BOOL IsFilterPageVisible(); + BOOL IsViewPageVisible(); + + SvxTPFilter* GetFilterPage(); + SvxTPView* GetViewPage(); + SvxRedlinTable* GetViewTable(); + + void SetMinSizeHdl( const Link& rLink ) { aMinSizeLink= rLink; } + const Link& GetMinSizeHdl() const { return aMinSizeLink; } +}; + + +#endif // _SVX_CTREDLIN_HXX + |