xref: /AOO41X/main/sw/source/ui/inc/num.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 _NUM_HXX
24 #define _NUM_HXX
25 
26 
27 #include <sfx2/tabdlg.hxx>
28 #ifndef _MENUBTN_HXX //autogen
29 #include <vcl/menubtn.hxx>
30 #endif
31 #ifndef _FIELD_HXX //autogen
32 #include <vcl/field.hxx>
33 #endif
34 #ifndef _FIXED_HXX //autogen
35 #include <vcl/fixed.hxx>
36 #endif
37 #include <svtools/stdctrl.hxx>
38 #ifndef _BUTTON_HXX //autogen
39 #include <vcl/button.hxx>
40 #endif
41 #ifndef _LSTBOX_HXX //autogen
42 #include <vcl/lstbox.hxx>
43 #endif
44 #ifndef _EDIT_HXX //autogen
45 #include <vcl/edit.hxx>
46 #endif
47 #include <svx/stddlg.hxx>
48 #include <numprevw.hxx>
49 #include "numrule.hxx"
50 
51 class SwWrtShell;
52 class SvxBrushItem;
53 class SwOutlineTabDialog;
54 
55 
56 /*-----------------13.02.97 14.02-------------------
57 
58 --------------------------------------------------*/
59 
60 struct SwBmpItemInfo
61 {
62     SvxBrushItem*   pBrushItem;
63     sal_uInt16          nItemId;
64 };
65 
66 
67 /*-----------------07.02.97 15.37-------------------
68 
69 --------------------------------------------------*/
70 #define NUM_PAGETYPE_BULLET         0
71 #define NUM_PAGETYPE_SINGLENUM      1
72 #define NUM_PAGETYPE_NUM            2
73 #define NUM_PAGETYPE_BMP            3
74 #define PAGETYPE_USER_START         10
75 
76 /*-----------------03.12.97 10:18-------------------
77 
78 --------------------------------------------------*/
79 class SwNumPositionTabPage : public SfxTabPage
80 {
81         FixedLine       aLevelFL;
82     MultiListBox    aLevelLB;
83 
84     // --> OD 2008-02-01 #newlistlevelattrs#
85     // former set of controls shown for numbering rules containing list level
86     // attributes in SvxNumberFormat::SvxNumPositionAndSpaceMode == LABEL_WIDTH_AND_POSITION
87     FixedLine       aPositionFL;
88     FixedText           aDistBorderFT;
89     MetricField         aDistBorderMF;
90     CheckBox            aRelativeCB;
91     FixedText           aIndentFT;
92     MetricField         aIndentMF;
93     FixedText           aDistNumFT;
94     MetricField         aDistNumMF;
95     FixedText           aAlignFT;
96     ListBox             aAlignLB;
97     // <--
98 
99     // --> OD 2008-02-01 #newlistlevelattrs#
100     // new set of controls shown for numbering rules containing list level
101     // attributes in SvxNumberFormat::SvxNumPositionAndSpaceMode == LABEL_ALIGNMENT
102     FixedText           aLabelFollowedByFT;
103     ListBox             aLabelFollowedByLB;
104     FixedText           aListtabFT;
105     MetricField         aListtabMF;
106     FixedText           aAlign2FT;
107     ListBox             aAlign2LB;
108     FixedText           aAlignedAtFT;
109     MetricField         aAlignedAtMF;
110     FixedText           aIndentAtFT;
111     MetricField         aIndentAtMF;
112     // <--
113 
114     PushButton          aStandardPB;
115 
116     NumberingPreview    aPreviewWIN;
117 
118     SwNumRule*          pActNum;
119     SwNumRule*          pSaveNum;
120     SwWrtShell*         pWrtSh;
121 
122     SwOutlineTabDialog* pOutlineDlg;
123     sal_uInt16              nActNumLvl;
124 
125     sal_Bool                bModified           : 1;
126     sal_Bool                bPreset             : 1;
127     sal_Bool                bInInintControl     : 1;  //Modify-Fehler umgehen, soll ab 391 behoben sein
128     // --> OD 2008-02-01 #newlistlevelattrs#
129     bool                bLabelAlignmentPosAndSpaceModeActive;
130     // <--
131 
132     void                InitControls();
133 
134     DECL_LINK( LevelHdl, ListBox * );
135     DECL_LINK( EditModifyHdl, Edit*);
136     DECL_LINK( DistanceHdl, MetricField * );
137     DECL_LINK( RelativeHdl, CheckBox * );
138     DECL_LINK( StandardHdl, PushButton * );
139 
140     // --> OD 2008-02-01 #newlistlevelattrs#
141     void InitPosAndSpaceMode();
142     void ShowControlsDependingOnPosAndSpaceMode();
143 
144     DECL_LINK( LabelFollowedByHdl_Impl, ListBox* );
145     DECL_LINK( ListtabPosHdl_Impl, MetricField* );
146     DECL_LINK( AlignAtHdl_Impl, MetricField* );
147     DECL_LINK( IndentAtHdl_Impl, MetricField* );
148     // <--
149 
150     using SfxTabPage::ActivatePage;
151     using SfxTabPage::DeactivatePage;
152 
153 public:
154 
155     SwNumPositionTabPage(Window* pParent,
156                                const SfxItemSet& rSet);
157     ~SwNumPositionTabPage();
158 
159     virtual void        ActivatePage(const SfxItemSet& rSet);
160     virtual int         DeactivatePage(SfxItemSet *pSet);
161     virtual sal_Bool        FillItemSet( SfxItemSet& rSet );
162     virtual void        Reset( const SfxItemSet& rSet );
163 
164     static SfxTabPage*  Create( Window* pParent,
165                                 const SfxItemSet& rAttrSet);
166 
SetOutlineTabDialog(SwOutlineTabDialog * pDlg)167     void                SetOutlineTabDialog(SwOutlineTabDialog* pDlg){pOutlineDlg = pDlg;}
168     void                SetWrtShell(SwWrtShell* pSh);
169 #if OSL_DEBUG_LEVEL > 1
170     void                SetModified(sal_Bool bRepaint = sal_True);
171 #else
SetModified(sal_Bool bRepaint=sal_True)172     void                SetModified(sal_Bool bRepaint = sal_True)
173                             {   bModified = sal_True;
174                                 if(bRepaint)
175                                 {
176                                     aPreviewWIN.SetLevel(nActNumLvl);
177                                     aPreviewWIN.Invalidate();
178                                 }
179                             }
180 #endif
181 };
182 
183 class SwSvxNumBulletTabDialog : public SfxTabDialog
184 {
185     SwWrtShell&         rWrtSh;
186 
187     String              sRemoveText;
188     int                 nRetOptionsDialog;
189 
190     protected:
191         virtual short   Ok();
192         virtual void    PageCreated(sal_uInt16 nPageId, SfxTabPage& rPage);
193         DECL_LINK(RemoveNumberingHdl, PushButton*);
194     public:
195         SwSvxNumBulletTabDialog(Window* pParent,
196                     const SfxItemSet* pSwItemSet,
197                     SwWrtShell &);
198         ~SwSvxNumBulletTabDialog();
199 };
200 #endif // _NUM_CXX
201 
202