xref: /AOO41X/main/sw/source/ui/inc/outline.hxx (revision 1d2dbeb0b7301723c6d13094e87a8714ef81a328)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 #ifndef _OUTLINE_HXX
24 #define _OUTLINE_HXX
25 
26 #include <sfx2/tabdlg.hxx>
27 
28 
29 #include <vcl/menu.hxx>
30 
31 #ifndef _BUTTON_HXX //autogen
32 #include <vcl/button.hxx>
33 #endif
34 #include <svtools/stdctrl.hxx>
35 
36 #ifndef _FIXED_HXX //autogen
37 #include <vcl/fixed.hxx>
38 #endif
39 
40 #ifndef _LSTBOX_HXX //autogen
41 #include <vcl/lstbox.hxx>
42 #endif
43 
44 #ifndef _EDIT_HXX //autogen
45 #include <vcl/edit.hxx>
46 #endif
47 
48 #ifndef _FIELD_HXX //autogen
49 #include <vcl/field.hxx>
50 #endif
51 
52 #include "swtypes.hxx"      //fuer MAXLEVEL
53 #include <numprevw.hxx>
54 #include <numberingtypelistbox.hxx>
55 
56 class SwWrtShell;
57 class SwNumRule;
58 class SwChapterNumRules;
59 
60 /* -----------------07.07.98 13:38-------------------
61  *
62  * --------------------------------------------------*/
63 class SwOutlineTabDialog : public SfxTabDialog
64 {
65     static     sal_uInt16    nNumLevel;
66 
67     String              aNullStr;
68     String              aCollNames[MAXLEVEL];
69     PopupMenu           aFormMenu;
70 
71     SwWrtShell&         rWrtSh;
72     SwNumRule*          pNumRule;
73     SwChapterNumRules*  pChapterNumRules;
74 
75     sal_Bool                bModified : 1;
76 
77     protected:
78     DECL_LINK( CancelHdl, Button * );
79     DECL_LINK( FormHdl, Button * );
80     DECL_LINK( MenuSelectHdl, Menu * );
81 
82         virtual void    PageCreated(sal_uInt16 nPageId, SfxTabPage& rPage);
83         virtual short   Ok();
84 
85     public:
86         SwOutlineTabDialog(Window* pParent,
87                     const SfxItemSet* pSwItemSet,
88                     SwWrtShell &);
89         ~SwOutlineTabDialog();
90 
GetNumRule()91     SwNumRule*          GetNumRule() {return pNumRule;}
92     sal_uInt16              GetLevel(const String &rFmtName) const;
GetCollNames()93     String*             GetCollNames() {return aCollNames;}
94 
GetActNumLevel()95     static sal_uInt16       GetActNumLevel() {return nNumLevel;}
SetActNumLevel(sal_uInt16 nSet)96     static void         SetActNumLevel(sal_uInt16 nSet) {nNumLevel = nSet;}
97 };
98 /* -----------------07.07.98 13:47-------------------
99  *
100  * --------------------------------------------------*/
101 class SwOutlineSettingsTabPage : public SfxTabPage
102 {
103     FixedLine       aLevelFL;
104     ListBox         aLevelLB;
105 
106     FixedLine        aNumberFL;
107     FixedText       aCollLbl;
108     ListBox         aCollBox;
109     FixedText       aNumberLbl;
110     SwNumberingTypeListBox  aNumberBox;
111     FixedText       aCharFmtFT;
112     ListBox         aCharFmtLB;
113     FixedText       aAllLevelFT;
114     NumericField    aAllLevelNF;
115     FixedText       aDelim;
116     FixedText       aPrefixFT;
117     Edit            aPrefixED;
118     FixedText       aSuffixFT;
119     Edit            aSuffixED;
120     FixedText       aStartLbl;
121     NumericField    aStartEdit;
122     NumberingPreview aPreviewWIN;
123 
124     String              aNoFmtName;
125     String              aSaveCollNames[MAXLEVEL];
126     SwWrtShell*         pSh;
127     SwNumRule*          pNumRule;
128     String*             pCollNames;
129     sal_uInt16              nActLevel;
130 
131     DECL_LINK( LevelHdl, ListBox * );
132     DECL_LINK( ToggleComplete, NumericField * );
133     DECL_LINK( CollSelect, ListBox * );
134     DECL_LINK( CollSelectGetFocus, ListBox * );
135     DECL_LINK( NumberSelect, SwNumberingTypeListBox * );
136     DECL_LINK( DelimModify, Edit * );
137     DECL_LINK( StartModified, NumericField * );
138     DECL_LINK( CharFmtHdl, ListBox * );
139 
140     void    Update();
141 
SetModified()142     void    SetModified(){aPreviewWIN.Invalidate();}
143     void    CheckForStartValue_Impl(sal_uInt16 nNumberingType);
144 
145     using SfxTabPage::ActivatePage;
146     using SfxTabPage::DeactivatePage;
147 
148 public:
149     SwOutlineSettingsTabPage(Window* pParent, const SfxItemSet& rSet);
150     ~SwOutlineSettingsTabPage();
151 
152     void SetWrtShell(SwWrtShell* pShell);
153 
154     virtual void        ActivatePage(const SfxItemSet& rSet);
155     virtual int         DeactivatePage(SfxItemSet *pSet);
156 
157     virtual sal_Bool        FillItemSet( SfxItemSet& rSet );
158     virtual void        Reset( const SfxItemSet& rSet );
159     static SfxTabPage*  Create( Window* pParent,
160                                 const SfxItemSet& rAttrSet);
161 };
162 #endif
163