Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : *
9 : * This file incorporates work covered by the following license notice:
10 : *
11 : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : * contributor license agreements. See the NOTICE file distributed
13 : * with this work for additional information regarding copyright
14 : * ownership. The ASF licenses this file to you under the Apache
15 : * License, Version 2.0 (the "License"); you may not use this file
16 : * except in compliance with the License. You may obtain a copy of
17 : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : */
19 : #ifndef _REGIONSW_HXX
20 : #define _REGIONSW_HXX
21 :
22 : #include <hintids.hxx>
23 : #include <vcl/field.hxx>
24 : #include <vcl/lstbox.hxx>
25 : #include <vcl/edit.hxx>
26 : #include <vcl/button.hxx>
27 : #include <vcl/fixed.hxx>
28 : #include <vcl/combobox.hxx>
29 : #include <vcl/group.hxx>
30 : #include <svtools/treelistbox.hxx>
31 : #include <sfx2/basedlgs.hxx>
32 : #include <sfx2/tabdlg.hxx>
33 : #include <editeng/brshitem.hxx>
34 :
35 : #include <condedit.hxx>
36 : #include <section.hxx>
37 : #include <fmtclds.hxx>
38 : #include <fmtftntx.hxx>
39 : #include <fmtclbl.hxx>
40 : #include <numberingtypelistbox.hxx>
41 : #include <editeng/frmdiritem.hxx>
42 : #include <vcl/image.hxx>
43 : #include <svx/paraprev.hxx>
44 : #include <editeng/lrspitem.hxx>
45 :
46 : #include <boost/ptr_container/ptr_set.hpp>
47 :
48 : class SwWrtShell;
49 :
50 : namespace sfx2
51 : {
52 : class DocumentInserter;
53 : class FileDialogHelper;
54 : }
55 :
56 : /*************************************************************************
57 : dialog "edit regions"
58 : *************************************************************************/
59 : class SectRepr;
60 : typedef SectRepr* SectReprPtr;
61 : typedef boost::ptr_set<SectRepr> SectReprArr;
62 :
63 : class SwEditRegionDlg : public SfxModalDialog
64 : {
65 : FixedLine aNameFL;
66 : Edit aCurName;
67 : SvTreeListBox aTree;
68 :
69 : FixedLine aLinkFL;
70 : TriStateBox aFileCB;
71 : CheckBox aDDECB;
72 : FixedText aFileNameFT;
73 : FixedText aDDECommandFT;
74 : Edit aFileNameED;
75 : PushButton aFilePB;
76 : FixedText aSubRegionFT;
77 : ComboBox aSubRegionED;
78 : bool bSubRegionsFilled;
79 :
80 : FixedLine aProtectFL;
81 : TriStateBox aProtectCB;
82 : CheckBox aPasswdCB;
83 : PushButton aPasswdPB;
84 :
85 : FixedLine aHideFL;
86 : TriStateBox aHideCB;
87 : FixedText aConditionFT;
88 : ConditionEdit aConditionED;
89 :
90 : // #114856# edit in readonly sections
91 : FixedLine aPropertiesFL;
92 : TriStateBox aEditInReadonlyCB;
93 :
94 : OKButton aOK;
95 : CancelButton aCancel;
96 : PushButton aOptionsPB;
97 : PushButton aDismiss;
98 : HelpButton aHelp;
99 : ImageList aImageIL;
100 :
101 : SwWrtShell& rSh;
102 : SectReprArr aSectReprArr;
103 : const SwSection* pCurrSect;
104 : sfx2::DocumentInserter* m_pDocInserter;
105 : Window* m_pOldDefDlgParent;
106 :
107 : sal_Bool bDontCheckPasswd :1;
108 : sal_Bool bWeb :1;
109 :
110 :
111 : Image BuildBitmap(sal_Bool bProtect,sal_Bool bHidden);
112 :
113 : void RecurseList( const SwSectionFmt* pFmt, SvTreeListEntry* pEntry);
114 : sal_uInt16 FindArrPos(const SwSectionFmt* pFmt);
115 :
116 : DECL_LINK( GetFirstEntryHdl, SvTreeListBox * );
117 : DECL_LINK( DeselectHdl, SvTreeListBox * );
118 :
119 : DECL_LINK(OkHdl, void *);
120 : DECL_LINK(NameEditHdl, void *);
121 : DECL_LINK( ConditionEditHdl, Edit * );
122 :
123 : DECL_LINK( ChangePasswdHdl, Button * );
124 : DECL_LINK( ChangeProtectHdl, TriStateBox * );
125 : DECL_LINK( ChangeHideHdl, TriStateBox * );
126 : // #114856# edit in readonly sections
127 : DECL_LINK( ChangeEditInReadonlyHdl, TriStateBox * );
128 : DECL_LINK(ChangeDismissHdl, void *);
129 : DECL_LINK( UseFileHdl, CheckBox* );
130 : DECL_LINK(FileSearchHdl, void *);
131 : DECL_LINK(OptionsHdl, void *);
132 : DECL_LINK( FileNameHdl, Edit* );
133 : DECL_LINK( DDEHdl, CheckBox* );
134 : DECL_LINK( DlgClosedHdl, sfx2::FileDialogHelper* );
135 : DECL_LINK( SubRegionEventHdl, VclWindowEvent * );
136 :
137 : sal_Bool CheckPasswd(CheckBox* pBox = 0);
138 :
139 : public:
140 : SwEditRegionDlg( Window* pParent, SwWrtShell& rWrtSh );
141 : virtual ~SwEditRegionDlg();
142 :
143 : void SelectSection(const String& rSectionName);
144 :
145 : };
146 :
147 : /*************************************************************************
148 : dialog "insert region"
149 : *************************************************************************/
150 : class SwInsertSectionTabPage : public SfxTabPage
151 : {
152 : FixedLine aNameFL;
153 : ComboBox aCurName;
154 :
155 : FixedLine aLinkFL;
156 : CheckBox aFileCB;
157 : CheckBox aDDECB;
158 : FixedText aDDECommandFT;
159 : FixedText aFileNameFT;
160 : Edit aFileNameED;
161 : PushButton aFilePB;
162 : FixedText aSubRegionFT;
163 : ComboBox aSubRegionED;
164 :
165 : FixedLine aProtectFL;
166 : CheckBox aProtectCB;
167 : CheckBox aPasswdCB;
168 : PushButton aPasswdPB;
169 :
170 : FixedLine aHideFL;
171 : CheckBox aHideCB;
172 : FixedText aConditionFT;
173 : ConditionEdit aConditionED;
174 :
175 : // #114856# edit in readonly sections
176 : FixedLine aPropertiesFL;
177 : CheckBox aEditInReadonlyCB;
178 :
179 : String m_sFileName;
180 : String m_sFilterName;
181 : String m_sFilePasswd;
182 :
183 : // SwFmtCol* pCols;
184 : ::com::sun::star::uno::Sequence <sal_Int8 > m_aNewPasswd;
185 : SwWrtShell* m_pWrtSh;
186 : sfx2::DocumentInserter* m_pDocInserter;
187 : Window* m_pOldDefDlgParent;
188 :
189 : DECL_LINK( ChangeHideHdl, CheckBox * );
190 : // #114856# edit in readonly sections
191 : DECL_LINK(ChangeEditInReadonlyHdl, void *);
192 : DECL_LINK( ChangeProtectHdl, CheckBox * );
193 : DECL_LINK( ChangePasswdHdl, Button * );
194 : DECL_LINK(NameEditHdl, void *);
195 : DECL_LINK( UseFileHdl, CheckBox* );
196 : DECL_LINK(FileSearchHdl, void *);
197 : DECL_LINK( DDEHdl, CheckBox* );
198 : DECL_LINK( DlgClosedHdl, sfx2::FileDialogHelper* );
199 :
200 : public:
201 : SwInsertSectionTabPage(Window *pParent, const SfxItemSet &rAttrSet);
202 : virtual ~SwInsertSectionTabPage();
203 :
204 : void SetWrtShell(SwWrtShell& rSh);
205 :
206 : virtual sal_Bool FillItemSet( SfxItemSet& );
207 : virtual void Reset( const SfxItemSet& );
208 :
209 : static SfxTabPage* Create( Window* pParent,
210 : const SfxItemSet& rAttrSet);
211 : };
212 :
213 : class SwSectionFtnEndTabPage : public SfxTabPage
214 : {
215 : FixedLine aFtnFL;
216 : CheckBox aFtnNtAtTextEndCB;
217 :
218 : CheckBox aFtnNtNumCB;
219 : FixedText aFtnOffsetLbl;
220 : NumericField aFtnOffsetFld;
221 :
222 : CheckBox aFtnNtNumFmtCB;
223 : FixedText aFtnPrefixFT;
224 : Edit aFtnPrefixED;
225 : SwNumberingTypeListBox aFtnNumViewBox;
226 : FixedText aFtnSuffixFT;
227 : Edit aFtnSuffixED;
228 :
229 : FixedLine aEndFL;
230 : CheckBox aEndNtAtTextEndCB;
231 :
232 : CheckBox aEndNtNumCB;
233 : FixedText aEndOffsetLbl;
234 : NumericField aEndOffsetFld;
235 :
236 : CheckBox aEndNtNumFmtCB;
237 : FixedText aEndPrefixFT;
238 : Edit aEndPrefixED;
239 : SwNumberingTypeListBox aEndNumViewBox;
240 : FixedText aEndSuffixFT;
241 : Edit aEndSuffixED;
242 :
243 :
244 : DECL_LINK( FootEndHdl, CheckBox * );
245 : void ResetState( sal_Bool bFtn, const SwFmtFtnEndAtTxtEnd& );
246 :
247 : public:
248 : SwSectionFtnEndTabPage( Window *pParent, const SfxItemSet &rAttrSet );
249 : virtual ~SwSectionFtnEndTabPage();
250 :
251 : virtual sal_Bool FillItemSet( SfxItemSet& );
252 : virtual void Reset( const SfxItemSet& );
253 :
254 : static SfxTabPage* Create( Window* pParent,
255 : const SfxItemSet& rAttrSet);
256 : };
257 :
258 : class SwSectionIndentTabPage : public SfxTabPage
259 : {
260 : FixedLine aIndentFL;
261 : FixedText aBeforeFT;
262 : MetricField aBeforeMF;
263 : FixedText aAfterFT;
264 : MetricField aAfterMF;
265 :
266 : SvxParaPrevWindow aPreviewWin;
267 :
268 : DECL_LINK(IndentModifyHdl, void *);
269 : public:
270 : SwSectionIndentTabPage( Window *pParent, const SfxItemSet &rAttrSet );
271 : virtual ~SwSectionIndentTabPage();
272 :
273 : virtual sal_Bool FillItemSet( SfxItemSet& );
274 : virtual void Reset( const SfxItemSet& );
275 :
276 : static SfxTabPage* Create( Window* pParent,
277 : const SfxItemSet& rAttrSet);
278 :
279 : void SetWrtShell(SwWrtShell& rSh);
280 : };
281 :
282 : class SwInsertSectionTabDialog : public SfxTabDialog
283 : {
284 : SwWrtShell& rWrtSh;
285 : ::std::auto_ptr<SwSectionData> m_pSectionData;
286 :
287 : protected:
288 : virtual void PageCreated( sal_uInt16 nId, SfxTabPage &rPage );
289 : virtual short Ok();
290 : public:
291 : SwInsertSectionTabDialog(Window* pParent, const SfxItemSet& rSet, SwWrtShell& rSh);
292 : virtual ~SwInsertSectionTabDialog();
293 :
294 : void SetSectionData(SwSectionData const& rSect);
295 0 : SwSectionData * GetSectionData() { return m_pSectionData.get(); }
296 : };
297 :
298 : class SwSectionPropertyTabDialog : public SfxTabDialog
299 : {
300 : SwWrtShell& rWrtSh;
301 : protected:
302 : virtual void PageCreated( sal_uInt16 nId, SfxTabPage &rPage );
303 : public:
304 : SwSectionPropertyTabDialog(Window* pParent, const SfxItemSet& rSet, SwWrtShell& rSh);
305 : virtual ~SwSectionPropertyTabDialog();
306 : };
307 :
308 : #endif
309 :
310 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|