summaryrefslogtreecommitdiff
path: root/svx/inc/svx/ctredlin.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'svx/inc/svx/ctredlin.hxx')
-rw-r--r--svx/inc/svx/ctredlin.hxx431
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
+