xref: /trunk/main/sc/source/ui/inc/tpsort.hxx (revision 914d351e5f5b84e4342a86d6ab8d4aca7308b9bd)
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
10cdf0e10cSrcweir  *
11*38d50f7bSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
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.
19cdf0e10cSrcweir  *
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
218