xref: /aoo41x/main/sc/source/ui/inc/tpsort.hxx (revision 38d50f7b)
1*38d50f7bSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*38d50f7bSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*38d50f7bSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*38d50f7bSAndrew Rist  * distributed with this work for additional information
6*38d50f7bSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*38d50f7bSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*38d50f7bSAndrew Rist  * "License"); you may not use this file except in compliance
9*38d50f7bSAndrew Rist  * with the License.  You may obtain a copy of the License at
10*38d50f7bSAndrew Rist  *
11*38d50f7bSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*38d50f7bSAndrew Rist  *
13*38d50f7bSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*38d50f7bSAndrew Rist  * software distributed under the License is distributed on an
15*38d50f7bSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*38d50f7bSAndrew Rist  * KIND, either express or implied.  See the License for the
17*38d50f7bSAndrew Rist  * specific language governing permissions and limitations
18*38d50f7bSAndrew Rist  * under the License.
19*38d50f7bSAndrew Rist  *
20*38d50f7bSAndrew Rist  *************************************************************/
21*38d50f7bSAndrew Rist 
22*38d50f7bSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef SC_TPSORT_HXX
25cdf0e10cSrcweir #define SC_TPSORT_HXX
26cdf0e10cSrcweir 
27cdf0e10cSrcweir 
28cdf0e10cSrcweir #include <sfx2/tabdlg.hxx>
29cdf0e10cSrcweir #include <vcl/edit.hxx>
30cdf0e10cSrcweir #include <vcl/fixed.hxx>
31cdf0e10cSrcweir #include <vcl/lstbox.hxx>
32cdf0e10cSrcweir #include <svtools/stdctrl.hxx>
33cdf0e10cSrcweir #include <svx/langbox.hxx>
34cdf0e10cSrcweir 
35cdf0e10cSrcweir 
36cdf0e10cSrcweir #include "global.hxx"
37cdf0e10cSrcweir #include "address.hxx"
38cdf0e10cSrcweir 
39cdf0e10cSrcweir //------------------------------------------------------------------------
40cdf0e10cSrcweir 
41cdf0e10cSrcweir // +1 because one field is reserved for the "- undefined -" entry
42cdf0e10cSrcweir #define SC_MAXFIELDS	MAXCOLCOUNT+1
43cdf0e10cSrcweir 
44cdf0e10cSrcweir class ScViewData;
45cdf0e10cSrcweir class ScSortDlg;
46cdf0e10cSrcweir struct ScSortParam;
47cdf0e10cSrcweir 
48cdf0e10cSrcweir //========================================================================
49cdf0e10cSrcweir // Kriterien
50cdf0e10cSrcweir 
51cdf0e10cSrcweir class ScTabPageSortFields : public SfxTabPage
52cdf0e10cSrcweir {
53cdf0e10cSrcweir public:
54cdf0e10cSrcweir 				ScTabPageSortFields( Window*			 pParent,
55cdf0e10cSrcweir 									 const SfxItemSet&	 rArgSet );
56cdf0e10cSrcweir 				~ScTabPageSortFields();
57cdf0e10cSrcweir 
58cdf0e10cSrcweir 	static	SfxTabPage*	Create		( Window*				pParent,
59cdf0e10cSrcweir 									  const SfxItemSet& 	rArgSet );
60cdf0e10cSrcweir 	static	sal_uInt16*		GetRanges	();
61cdf0e10cSrcweir 	virtual	sal_Bool		FillItemSet	( SfxItemSet& rArgSet );
62cdf0e10cSrcweir 	virtual	void		Reset		( const SfxItemSet& rArgSet );
63cdf0e10cSrcweir 
64cdf0e10cSrcweir protected:
65cdf0e10cSrcweir // fuer Datenaustausch (sollte noch umgestellt werden!)
66cdf0e10cSrcweir //	virtual void		ActivatePage	( const SfxItemSet& rSet );
67cdf0e10cSrcweir     using SfxTabPage::ActivatePage;
68cdf0e10cSrcweir     using SfxTabPage::DeactivatePage;
69cdf0e10cSrcweir 	virtual void		ActivatePage	();
70cdf0e10cSrcweir 	virtual int			DeactivatePage	( SfxItemSet* pSet = 0);
71cdf0e10cSrcweir 
72cdf0e10cSrcweir private:
73cdf0e10cSrcweir     FixedLine       aFlSort1;
74cdf0e10cSrcweir 	ListBox			aLbSort1;
75cdf0e10cSrcweir 	RadioButton		aBtnUp1;
76cdf0e10cSrcweir 	RadioButton 	aBtnDown1;
77cdf0e10cSrcweir 
78cdf0e10cSrcweir     FixedLine       aFlSort2;
79cdf0e10cSrcweir 	ListBox			aLbSort2;
80cdf0e10cSrcweir 	RadioButton		aBtnUp2;
81cdf0e10cSrcweir 	RadioButton 	aBtnDown2;
82cdf0e10cSrcweir 
83cdf0e10cSrcweir     FixedLine       aFlSort3;
84cdf0e10cSrcweir 	ListBox			aLbSort3;
85cdf0e10cSrcweir 	RadioButton		aBtnUp3;
86cdf0e10cSrcweir 	RadioButton 	aBtnDown3;
87cdf0e10cSrcweir 
88cdf0e10cSrcweir 	String			aStrUndefined;
89cdf0e10cSrcweir 	String			aStrColumn;
90cdf0e10cSrcweir 	String			aStrRow;
91cdf0e10cSrcweir 
92cdf0e10cSrcweir 	const sal_uInt16		nWhichSort;
93cdf0e10cSrcweir 	ScSortDlg*			pDlg;
94cdf0e10cSrcweir 	ScViewData*			pViewData;
95cdf0e10cSrcweir 	const ScSortParam&	rSortData;
96cdf0e10cSrcweir 	SCCOLROW			nFieldArr[SC_MAXFIELDS];
97cdf0e10cSrcweir 	sal_uInt16				nFieldCount;
98cdf0e10cSrcweir 	SCCOL				nFirstCol;
99cdf0e10cSrcweir 	SCROW				nFirstRow;
100cdf0e10cSrcweir 	sal_Bool				bHasHeader;
101cdf0e10cSrcweir 	sal_Bool				bSortByRows;
102cdf0e10cSrcweir 
103cdf0e10cSrcweir 	ListBox*			aSortLbArr[3];
104cdf0e10cSrcweir 	RadioButton*		aDirBtnArr[3][2];
105cdf0e10cSrcweir     FixedLine*          aFlArr[3];
106cdf0e10cSrcweir 
107cdf0e10cSrcweir #ifdef _TPSORT_CXX
108cdf0e10cSrcweir private:
109cdf0e10cSrcweir 	void	Init			();
110cdf0e10cSrcweir 	void	DisableField	( sal_uInt16 nField );
111cdf0e10cSrcweir 	void	EnableField		( sal_uInt16 nField );
112cdf0e10cSrcweir 	void	FillFieldLists	();
113cdf0e10cSrcweir 	sal_uInt16	GetFieldSelPos	( SCCOLROW nField );
114cdf0e10cSrcweir 
115cdf0e10cSrcweir 	// Handler ------------------------
116cdf0e10cSrcweir 	DECL_LINK( SelectHdl, ListBox * );
117cdf0e10cSrcweir #endif
118cdf0e10cSrcweir };
119cdf0e10cSrcweir 
120cdf0e10cSrcweir //========================================================================
121cdf0e10cSrcweir // Sortieroptionen:
122cdf0e10cSrcweir 
123cdf0e10cSrcweir class ScDocument;
124cdf0e10cSrcweir class ScRangeData;
125cdf0e10cSrcweir class CollatorRessource;
126cdf0e10cSrcweir class CollatorWrapper;
127cdf0e10cSrcweir 
128cdf0e10cSrcweir #if ENABLE_LAYOUT_EXPERIMENTAL
129cdf0e10cSrcweir #include <sfx2/layout.hxx>
130cdf0e10cSrcweir #include <layout/layout-pre.hxx>
131cdf0e10cSrcweir #else /* !ENABLE_LAYOUT_EXPERIMENTAL */
132cdf0e10cSrcweir #define LocalizedString String
133cdf0e10cSrcweir #endif /* !ENABLE_LAYOUT_EXPERIMENTAL */
134cdf0e10cSrcweir 
135cdf0e10cSrcweir class ScTabPageSortOptions : public SfxTabPage
136cdf0e10cSrcweir {
137cdf0e10cSrcweir public:
138cdf0e10cSrcweir 				ScTabPageSortOptions( Window*			 pParent,
139cdf0e10cSrcweir 									  const SfxItemSet&	 rArgSet );
140cdf0e10cSrcweir 				~ScTabPageSortOptions();
141cdf0e10cSrcweir 
142cdf0e10cSrcweir #undef SfxTabPage
143cdf0e10cSrcweir #define SfxTabPage ::SfxTabPage
144cdf0e10cSrcweir 	static	SfxTabPage*	Create		( Window*				pParent,
145cdf0e10cSrcweir 									  const SfxItemSet& 	rArgSet );
146cdf0e10cSrcweir 	static	sal_uInt16*		GetRanges	();
147cdf0e10cSrcweir 	virtual	sal_Bool		FillItemSet	( SfxItemSet& rArgSet );
148cdf0e10cSrcweir 	virtual	void		Reset		( const SfxItemSet& rArgSet );
149cdf0e10cSrcweir 
150cdf0e10cSrcweir protected:
151cdf0e10cSrcweir // fuer Datenaustausch (sollte noch umgestellt werden!)
152cdf0e10cSrcweir //	virtual void		ActivatePage	( const SfxItemSet& rSet );
153cdf0e10cSrcweir     using SfxTabPage::ActivatePage;
154cdf0e10cSrcweir     using SfxTabPage::DeactivatePage;
155cdf0e10cSrcweir 	virtual void		ActivatePage	();
156cdf0e10cSrcweir 	virtual int			DeactivatePage	( SfxItemSet* pSet = 0);
157cdf0e10cSrcweir 
158cdf0e10cSrcweir private:
159cdf0e10cSrcweir 
160cdf0e10cSrcweir     CheckBox            aBtnCase;
161cdf0e10cSrcweir     CheckBox            aBtnHeader;
162cdf0e10cSrcweir     CheckBox            aBtnFormats;
163cdf0e10cSrcweir 
164cdf0e10cSrcweir     CheckBox            aBtnCopyResult;
165cdf0e10cSrcweir     ListBox             aLbOutPos;
166cdf0e10cSrcweir     Edit                aEdOutPos;
167cdf0e10cSrcweir 
168cdf0e10cSrcweir     CheckBox            aBtnSortUser;
169cdf0e10cSrcweir     ListBox             aLbSortUser;
170cdf0e10cSrcweir 
171cdf0e10cSrcweir     FixedText           aFtLanguage;
172cdf0e10cSrcweir     SvxLanguageBox      aLbLanguage;
173cdf0e10cSrcweir     FixedText           aFtAlgorithm;
174cdf0e10cSrcweir     ListBox             aLbAlgorithm;
175cdf0e10cSrcweir 
176cdf0e10cSrcweir     FixedLine           aLineDirection;
177cdf0e10cSrcweir     RadioButton         aBtnTopDown;
178cdf0e10cSrcweir     RadioButton         aBtnLeftRight;
179cdf0e10cSrcweir 
180cdf0e10cSrcweir     FixedText           aFtAreaLabel;
181cdf0e10cSrcweir //  FixedInfo           aFtArea;
182cdf0e10cSrcweir     LocalizedString aStrRowLabel;
183cdf0e10cSrcweir     LocalizedString aStrColLabel;
184cdf0e10cSrcweir     LocalizedString aStrUndefined;
185cdf0e10cSrcweir     String              aStrNoName;
186cdf0e10cSrcweir     String              aStrAreaLabel;
187cdf0e10cSrcweir 
188cdf0e10cSrcweir 	const sal_uInt16		nWhichSort;
189cdf0e10cSrcweir 	const ScSortParam&	rSortData;
190cdf0e10cSrcweir 	ScViewData*			pViewData;
191cdf0e10cSrcweir 	ScDocument*			pDoc;
192cdf0e10cSrcweir 	ScSortDlg*			pDlg;
193cdf0e10cSrcweir 	ScAddress			theOutPos;
194cdf0e10cSrcweir 
195cdf0e10cSrcweir 	CollatorRessource*	pColRes;
196cdf0e10cSrcweir 	CollatorWrapper*	pColWrap;
197cdf0e10cSrcweir 
198cdf0e10cSrcweir #ifdef _TPSORT_CXX
199cdf0e10cSrcweir private:
200cdf0e10cSrcweir 	void Init					();
201cdf0e10cSrcweir 	void FillUserSortListBox	();
202cdf0e10cSrcweir 	void FillOutPosList 		();
203cdf0e10cSrcweir 
204cdf0e10cSrcweir 	// Handler ------------------------
205cdf0e10cSrcweir 	DECL_LINK( EnableHdl, CheckBox * );
206cdf0e10cSrcweir 	DECL_LINK( SelOutPosHdl, ListBox * );
207cdf0e10cSrcweir 	void EdOutPosModHdl	( Edit* pEd );
208cdf0e10cSrcweir 	DECL_LINK( SortDirHdl, RadioButton * );
209cdf0e10cSrcweir 	DECL_LINK( FillAlgorHdl, void * );
210cdf0e10cSrcweir #endif
211cdf0e10cSrcweir };
212cdf0e10cSrcweir 
213cdf0e10cSrcweir #if ENABLE_LAYOUT_EXPERIMENTAL
214cdf0e10cSrcweir #include <layout/layout-post.hxx>
215cdf0e10cSrcweir #endif /* ENABLE_LAYOUT_EXPERIMENTAL */
216cdf0e10cSrcweir 
217cdf0e10cSrcweir #endif // SC_TPSORT_HXX
218cdf0e10cSrcweir 
219