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 INCLUDED_SVX_SVXDLG_HXX
20 : #define INCLUDED_SVX_SVXDLG_HXX
21 :
22 : #include <sfx2/sfxdlg.hxx>
23 : #include <svx/zoom_def.hxx>
24 : #include <editeng/edtdlg.hxx>
25 :
26 : class SdrModel;
27 : class SdrView;
28 :
29 : #include <svx/dstribut_enum.hxx>
30 : #include <svx/rectenum.hxx>
31 : #include <com/sun/star/container/XIndexContainer.hpp>
32 : #include <com/sun/star/container/XNameReplace.hpp>
33 : #include <svx/svxdllapi.h>
34 : #include <vector>
35 :
36 : namespace com{namespace sun{namespace star{
37 : namespace linguistic2{
38 : class XDictionary;
39 : class XSpellChecker1;
40 : class XSpellChecker;
41 : class XThesaurus;
42 : class XHyphenator;
43 : }}}}
44 :
45 : class SvxSpellWrapper;
46 : typedef VclPtr<SfxTabPage> (*CreateSvxDistributePage)(vcl::Window *pParent, const SfxItemSet &rAttrSet, SvxDistributeHorizontal eHor, SvxDistributeVertical eVer);
47 : typedef const sal_uInt16* (*DialogGetRanges)();
48 :
49 : struct ExchangeData;
50 : class INetURLObject;
51 : class GalleryTheme;
52 : class SvxHyperlinkTabPageBase;
53 : class SearchAttrItemList;
54 : class FmFormShell;
55 : class Graphic;
56 : class SdrObject;
57 : class SvxSpellWrapper;
58 :
59 : typedef ::std::vector< OUString > TargetList;
60 :
61 : namespace svx{ class SpellDialogChildWindow;}
62 :
63 0 : class AbstractSvxDistributeDialog :public VclAbstractDialog
64 : {
65 : public:
66 : virtual SvxDistributeHorizontal GetDistributeHor() const = 0;
67 : virtual SvxDistributeVertical GetDistributeVer() const = 0;
68 : };
69 :
70 0 : class AbstractFmShowColsDialog : public VclAbstractDialog
71 : {
72 : public:
73 : virtual void SetColumns(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer>& xCols)= 0;
74 : };
75 :
76 0 : class AbstractSvxZoomDialog : public VclAbstractDialog
77 : {
78 : public:
79 : virtual void SetLimits( sal_uInt16 nMin, sal_uInt16 nMax ) = 0;
80 : virtual void HideButton( ZoomButtonId nBtnId )= 0;
81 : virtual const SfxItemSet* GetOutputItemSet() const = 0 ;
82 : };
83 :
84 0 : class AbstractSpellDialog : public VclAbstractDialog
85 : {
86 : public:
87 : virtual void SetLanguage( sal_uInt16 nLang ) = 0;
88 : virtual bool Close() = 0;
89 : virtual void Invalidate() = 0;
90 : virtual vcl::Window* GetWindow() = 0;
91 : virtual SfxBindings& GetBindings() = 0;
92 : };
93 :
94 : typedef sal_IntPtr (*PLinkStub)( void*, void* );
95 :
96 0 : class AbstractSearchProgress :public VclAbstractRefreshableDialog
97 : {
98 : public:
99 : virtual void SetFileType( const OUString& rType ) = 0;
100 : virtual void SetDirectory( const INetURLObject& rURL ) = 0;
101 : virtual PLinkStub GetLinkStubCleanUpHdl() = 0;
102 : };
103 :
104 0 : class AbstractTakeProgress :public VclAbstractRefreshableDialog
105 : {
106 : public:
107 : virtual void SetFile( const INetURLObject& rURL ) = 0;
108 : virtual PLinkStub GetLinkStubCleanUpHdl() = 0;
109 : };
110 :
111 0 : class AbstractTitleDialog :public VclAbstractDialog
112 : {
113 : public:
114 : virtual OUString GetTitle() const =0;
115 : };
116 :
117 0 : class AbstractGalleryIdDialog :public VclAbstractDialog
118 : {
119 : public:
120 : virtual sal_uIntPtr GetId() const =0;
121 : };
122 :
123 0 : class AbstractURLDlg :public VclAbstractDialog
124 : {
125 : public:
126 : virtual OUString GetURL() const = 0;
127 : virtual OUString GetAltText() const = 0;
128 : virtual OUString GetDesc() const = 0;
129 : virtual OUString GetTarget() const = 0;
130 : virtual OUString GetName() const = 0;
131 : };
132 :
133 0 : class AbstractSvxHlinkDlgMarkWnd :public VclAbstractDialog
134 : {
135 : public:
136 : virtual bool MoveTo ( Point aNewPos ) const = 0;
137 : virtual bool ConnectToDialog( bool bDoit = true ) const = 0;
138 : virtual void RefreshTree ( const OUString& aStrURL ) = 0;
139 : virtual void SelectEntry ( const OUString& aStrMark ) = 0;
140 : virtual sal_uInt16 SetError( sal_uInt16 nError) = 0;
141 : // in class Window
142 : virtual void SetSizePixel( const Size& rNewSize ) = 0;
143 : virtual Size GetSizePixel() const = 0;
144 : virtual void Hide() = 0;
145 : virtual bool IsVisible() const = 0;
146 : virtual void Invalidate( InvalidateFlags nFlags = InvalidateFlags::NONE ) = 0;
147 : };
148 :
149 0 : class AbstractSvxSearchSimilarityDialog :public VclAbstractDialog
150 : {
151 : public:
152 : virtual sal_uInt16 GetOther() =0 ;
153 : virtual sal_uInt16 GetShorter() =0 ;
154 : virtual sal_uInt16 GetLonger() =0 ;
155 : virtual bool IsRelaxed() =0 ;
156 : };
157 :
158 0 : class AbstractSvxJSearchOptionsDialog :public VclAbstractDialog
159 : {
160 : public:
161 : virtual sal_Int32 GetTransliterationFlags() const = 0;
162 : };
163 :
164 0 : class AbstractFmInputRecordNoDialog :public VclAbstractDialog
165 : {
166 : public:
167 : virtual void SetValue(long dNew) = 0;
168 : virtual long GetValue() const = 0;
169 : };
170 :
171 0 : class AbstractSvxNewDictionaryDialog :public VclAbstractDialog
172 : {
173 : public:
174 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XDictionary > GetNewDictionary() = 0;
175 : };
176 :
177 0 : class AbstractSvxNameDialog :public VclAbstractDialog
178 : {
179 : public:
180 : virtual void GetName( OUString& rName ) = 0;
181 : virtual void SetCheckNameHdl( const Link<>& rLink, bool bCheckImmediately = false ) = 0;
182 : virtual void SetEditHelpId(const OString&) = 0;
183 : //from class Window
184 : virtual void SetHelpId( const OString& ) = 0;
185 : virtual void SetText( const OUString& rStr ) = 0;
186 : };
187 :
188 0 : class AbstractSvxObjectNameDialog :public VclAbstractDialog
189 : {
190 : public:
191 : virtual void GetName(OUString& rName) = 0;
192 : virtual void SetCheckNameHdl(const Link<>& rLink, bool bCheckImmediately = false) = 0;
193 : };
194 :
195 0 : class AbstractSvxObjectTitleDescDialog :public VclAbstractDialog
196 : {
197 : public:
198 : virtual void GetTitle(OUString& rTitle) = 0;
199 : virtual void GetDescription(OUString& rDescription) = 0;
200 : };
201 :
202 0 : class AbstractSvxMessDialog :public VclAbstractDialog
203 : {
204 : public:
205 : virtual void SetButtonText( sal_uInt16 nBtnId, const OUString& rNewTxt ) = 0;
206 : };
207 :
208 0 : class AbstractSvxMultiPathDialog : public VclAbstractDialog
209 : {
210 : public:
211 : virtual OUString GetPath() const = 0;
212 : virtual void SetPath( const OUString& rPath ) = 0;
213 : virtual void SetTitle( const OUString& rNewTitle ) = 0;
214 : };
215 :
216 0 : class AbstractSvxHpLinkDlg : public VclAbstractDialog
217 : {
218 : public:
219 : virtual vcl::Window* GetWindow() = 0;
220 : virtual bool QueryClose() = 0;
221 : };
222 :
223 0 : class AbstractFmSearchDialog :public VclAbstractDialog
224 : {
225 : public:
226 : virtual void SetFoundHandler(const Link<>& lnk) = 0;
227 : virtual void SetCanceledNotFoundHdl(const Link<>& lnk)=0;
228 : virtual void SetActiveField(const OUString& strField)=0;
229 : };
230 :
231 0 : class AbstractGraphicFilterDialog :public VclAbstractDialog
232 : {
233 : public:
234 : virtual Graphic GetFilteredGraphic( const Graphic& rGraphic, double fScaleX, double fScaleY ) = 0;
235 : };
236 :
237 0 : class AbstractSvxAreaTabDialog :public SfxAbstractTabDialog
238 : {
239 : };
240 :
241 0 : class AbstractSvxTransformTabDialog : public SfxAbstractTabDialog
242 : {
243 : public:
244 : virtual void SetValidateFramePosLink( const Link<>& rLink ) = 0;
245 : };
246 :
247 0 : class AbstractSvxCaptionDialog : public SfxAbstractTabDialog
248 : {
249 : public:
250 : virtual void SetValidateFramePosLink( const Link<>& rLink ) = 0;
251 : };
252 :
253 0 : class AbstractSvxPostItDialog :public VclAbstractDialog
254 : {
255 : public:
256 : virtual void SetText( const OUString& rStr ) = 0; //From class Window
257 : virtual const SfxItemSet* GetOutputItemSet() const = 0;
258 : virtual void SetPrevHdl( const Link<>& rLink ) = 0;
259 : virtual void SetNextHdl( const Link<>& rLink ) = 0;
260 : virtual void EnableTravel(bool bNext, bool bPrev) = 0;
261 : virtual OUString GetNote() = 0;
262 : virtual void SetNote(const OUString& rTxt) = 0;
263 : virtual void ShowLastAuthor(const OUString& rAuthor, const OUString& rDate) = 0;
264 : virtual void DontChangeAuthor() = 0;
265 : virtual void HideAuthor() = 0;
266 : virtual void SetReadonlyPostIt(bool bDisable) = 0;
267 : virtual bool IsOkEnabled() const = 0;
268 : virtual vcl::Window * GetWindow() = 0;
269 : };
270 :
271 0 : class SvxAbstractSplittTableDialog : public VclAbstractDialog
272 : {
273 : public:
274 : virtual bool IsHorizontal() const = 0;
275 : virtual bool IsProportional() const = 0;
276 : virtual long GetCount() const = 0;
277 : };
278 :
279 0 : class SvxAbstractNewTableDialog : public VclAbstractDialog
280 : {
281 : public:
282 : virtual sal_Int32 getRows() const = 0;
283 : virtual sal_Int32 getColumns() const = 0;
284 : };
285 :
286 0 : class SvxAbstractInsRowColDlg : public VclAbstractDialog
287 : {
288 : public:
289 : virtual bool isInsertBefore() const = 0;
290 : virtual sal_uInt16 getInsertCount() const = 0;
291 : };
292 :
293 0 : class SVX_DLLPUBLIC SvxAbstractDialogFactory : public SfxAbstractDialogFactory, public EditAbstractDialogFactory
294 : {
295 : public:
296 : static SvxAbstractDialogFactory* Create();
297 :
298 : // define dtor as this will create typeinfo and in svx library and export vtable
299 : virtual ~SvxAbstractDialogFactory();
300 :
301 : virtual SfxAbstractTabDialog* CreateTextTabDialog( vcl::Window* pParent,
302 : const SfxItemSet* pAttrSet,
303 : SdrView* pView,
304 : SdrModel* pModel=0 ) = 0 ;
305 :
306 : virtual AbstractSvxCaptionDialog* CreateCaptionDialog( vcl::Window* pParent,
307 : const SdrView* pView,
308 : sal_uInt16 nAnchorTypes = 0 ) = 0;
309 :
310 : virtual AbstractSvxDistributeDialog* CreateSvxDistributeDialog(vcl::Window* pParent,
311 : const SfxItemSet& rAttr,
312 : SvxDistributeHorizontal eHor = SvxDistributeHorizontalNone,
313 : SvxDistributeVertical eVer = SvxDistributeVerticalNone)= 0;
314 :
315 : virtual AbstractFmShowColsDialog * CreateFmShowColsDialog( vcl::Window* pParent ) = 0;
316 :
317 : virtual AbstractSvxZoomDialog * CreateSvxZoomDialog( vcl::Window* pParent,
318 : const SfxItemSet& rCoreSet )=0;
319 :
320 : virtual AbstractSpellDialog * CreateSvxSpellDialog(vcl::Window* pParent,
321 : SfxBindings* pBindings,
322 : svx::SpellDialogChildWindow* pSpellChildWindow )=0;
323 :
324 : virtual VclAbstractRefreshableDialog * CreateActualizeProgressDialog( vcl::Window* pParent,
325 : GalleryTheme* pThm ) = 0;
326 : virtual AbstractSearchProgress * CreateSearchProgressDialog( vcl::Window* pParent,
327 : const INetURLObject& rStartURL ) = 0;
328 : virtual AbstractTakeProgress * CreateTakeProgressDialog( vcl::Window* pParent ) = 0;
329 : virtual AbstractTitleDialog * CreateTitleDialog( vcl::Window* pParent,
330 : const OUString& rOldText ) = 0;
331 : virtual AbstractGalleryIdDialog * CreateGalleryIdDialog( vcl::Window* pParent,
332 : GalleryTheme* pThm ) = 0;
333 : virtual VclAbstractDialog2 * CreateGalleryThemePropertiesDialog( vcl::Window* pParent,
334 : ExchangeData* pData,
335 : SfxItemSet* pItemSet ) = 0;
336 : virtual AbstractURLDlg * CreateURLDialog( vcl::Window* pParent,
337 : const OUString& rURL, const OUString& rAltText, const OUString& rDescription,
338 : const OUString& rTarget, const OUString& rName,
339 : TargetList& rTargetList ) = 0;
340 : virtual AbstractSvxHlinkDlgMarkWnd* CreateSvxHlinkDlgMarkWndDialog( SvxHyperlinkTabPageBase* pParent, sal_uInt32 nResId ) =0;
341 :
342 : virtual SfxAbstractTabDialog* CreateTabItemDialog(vcl::Window* pParent,
343 : const SfxItemSet& rSet) = 0;
344 : virtual VclAbstractDialog* CreateSvxSearchAttributeDialog( vcl::Window* pParent,
345 : SearchAttrItemList& rLst,
346 : const sal_uInt16* pWhRanges)=0;
347 : virtual AbstractSvxSearchSimilarityDialog * CreateSvxSearchSimilarityDialog( vcl::Window* pParent,
348 : bool bRelax,
349 : sal_uInt16 nOther,
350 : sal_uInt16 nShorter,
351 : sal_uInt16 nLonger ) = 0;
352 : //UUUU add for SvxBorderBackgroundDlg
353 : virtual SfxAbstractTabDialog* CreateSvxBorderBackgroundDlg(
354 : vcl::Window* pParent,
355 : const SfxItemSet& rCoreSet,
356 : bool bEnableSelector = false,
357 : bool bEnableDrawingLayerFillStyles = false) = 0;
358 :
359 : virtual AbstractSvxTransformTabDialog* CreateSvxTransformTabDialog( vcl::Window* pParent,
360 : const SfxItemSet* pAttr,
361 : const SdrView* pView,
362 : sal_uInt16 nAnchorTypes = 0) = 0;
363 : virtual SfxAbstractTabDialog* CreateSchTransformTabDialog( vcl::Window* pParent,
364 : const SfxItemSet* pAttr,
365 : const SdrView* pSdrView,
366 : sal_uInt32 nResId,
367 : bool bSizeTabPage = false
368 : )=0;
369 : virtual AbstractSvxJSearchOptionsDialog * CreateSvxJSearchOptionsDialog( vcl::Window* pParent,
370 : const SfxItemSet& rOptionsSet,
371 : sal_Int32 nInitialFlags )=0;
372 : virtual AbstractFmInputRecordNoDialog * CreateFmInputRecordNoDialog( vcl::Window* pParent ) = 0;
373 : virtual AbstractSvxNewDictionaryDialog* CreateSvxNewDictionaryDialog( vcl::Window* pParent,
374 : ::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XSpellChecker1 > &xSpl ) = 0;
375 : virtual VclAbstractDialog * CreateSvxEditDictionaryDialog( vcl::Window* pParent,
376 : const OUString& rName,
377 : ::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XSpellChecker1> &xSpl,
378 : sal_uInt32 nResId) = 0;
379 : virtual AbstractSvxNameDialog * CreateSvxNameDialog( vcl::Window* pParent,
380 : const OUString& rName, const OUString& rDesc ) = 0;
381 :
382 : // #i68101#
383 : virtual AbstractSvxObjectNameDialog* CreateSvxObjectNameDialog(vcl::Window* pParent, const OUString& rName ) = 0;
384 : virtual AbstractSvxObjectTitleDescDialog* CreateSvxObjectTitleDescDialog(vcl::Window* pParent, const OUString& rTitle, const OUString& rDescription) = 0;
385 :
386 : virtual AbstractSvxMessDialog * CreateSvxMessDialog( vcl::Window* pParent, sal_uInt32 nResId,
387 : const OUString& rText, const OUString& rDesc,
388 : Image* pImg = NULL ) = 0;
389 :
390 : virtual AbstractSvxMultiPathDialog * CreateSvxMultiPathDialog(vcl::Window* pParent) = 0 ;
391 : virtual AbstractSvxMultiPathDialog * CreateSvxPathSelectDialog(vcl::Window* pParent) = 0 ;
392 : virtual AbstractSvxHpLinkDlg * CreateSvxHpLinkDlg (vcl::Window* pParent,
393 : SfxBindings* pBindings,
394 : sal_uInt32 nResId)=0;
395 : virtual AbstractFmSearchDialog* CreateFmSearchDialog(vcl::Window* pParent,
396 : const OUString& strInitialText,
397 : const ::std::vector< OUString >& _rContexts,
398 : sal_Int16 nInitialContext,
399 : const Link<>& lnkContextSupplier)=0;
400 : virtual AbstractGraphicFilterDialog * CreateGraphicFilterEmboss(vcl::Window* pParent,
401 : const Graphic& rGraphic,
402 : RECT_POINT eLightSource)=0;
403 : virtual AbstractGraphicFilterDialog * CreateGraphicFilterPoster(vcl::Window* pParent,
404 : const Graphic& rGraphic,
405 : sal_uInt16 nCount)=0;
406 : virtual AbstractGraphicFilterDialog * CreateGraphicFilterSepia (vcl::Window* pParent,
407 : const Graphic& rGraphic,
408 : sal_uInt16 nCount)=0;
409 : virtual AbstractGraphicFilterDialog * CreateGraphicFilterSmooth (vcl::Window* pParent,
410 : const Graphic& rGraphic,
411 : double nRadius)=0;
412 : virtual AbstractGraphicFilterDialog * CreateGraphicFilterSolarize (vcl::Window* pParent,
413 : const Graphic& rGraphic,
414 : sal_uInt8 nGreyThreshold, bool bInvert)=0;
415 : virtual AbstractGraphicFilterDialog * CreateGraphicFilterMosaic (vcl::Window* pParent,
416 : const Graphic& rGraphic,
417 : sal_uInt16 nTileWidth, sal_uInt16 nTileHeight, bool bEnhanceEdges)=0;
418 : virtual AbstractSvxAreaTabDialog* CreateSvxAreaTabDialog( vcl::Window* pParent,
419 : const SfxItemSet* pAttr,
420 : SdrModel* pModel,
421 : bool bShadow) = 0 ;
422 : virtual SfxAbstractTabDialog* CreateSvxLineTabDialog( vcl::Window* pParent, const SfxItemSet* pAttr, //add forSvxLineTabDialog
423 : SdrModel* pModel,
424 : const SdrObject* pObj = NULL,
425 : bool bHasObj = true )=0;
426 : virtual VclAbstractDialog* CreateSfxDialog( vcl::Window* pParent, const SfxBindings& rBindings, sal_uInt32 nResId ) SAL_OVERRIDE = 0;
427 : virtual SfxAbstractDialog* CreateSfxDialog( vcl::Window* pParent,
428 : const SfxItemSet& rAttr,
429 : const SdrView* pView,
430 : sal_uInt32 nResId
431 : )=0;
432 : virtual SfxAbstractDialog* CreateSfxDialog( vcl::Window* pParent,
433 : const SfxItemSet& rAttr,
434 : const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& _rxFrame,
435 : sal_uInt32 nResId
436 : )=0;
437 : virtual AbstractSvxPostItDialog* CreateSvxPostItDialog( vcl::Window* pParent,
438 : const SfxItemSet& rCoreSet,
439 : bool bPrevNext = false) = 0;
440 : virtual VclAbstractDialog* CreateSvxScriptOrgDialog( vcl::Window* pParent, const OUString& rLanguage ) SAL_OVERRIDE = 0;
441 :
442 : virtual CreateSvxDistributePage GetSvxDistributePageCreatorFunc() = 0;
443 : virtual DialogGetRanges GetDialogGetRangesFunc() = 0;
444 :
445 : virtual AbstractScriptSelectorDialog*
446 : CreateScriptSelectorDialog(
447 : vcl::Window* pParent,
448 : bool bShowSlots,
449 : const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& _rxFrame
450 : ) SAL_OVERRIDE = 0;
451 :
452 : virtual VclAbstractDialog* CreateScriptErrorDialog(
453 : vcl::Window* pParent, const css::uno::Any& rException) SAL_OVERRIDE = 0;
454 :
455 : virtual VclAbstractDialog* CreateSvxMacroAssignDlg(
456 : vcl::Window* _pParent,
457 : const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& _rxDocumentFrame,
458 : const bool _bUnoDialogMode,
459 : const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameReplace >& _rxEvents,
460 : const sal_uInt16 _nInitiallySelectedEvent
461 : ) = 0;
462 :
463 : virtual SfxAbstractTabDialog* CreateSvxFormatCellsDialog( vcl::Window* pParent, const SfxItemSet* pAttr, SdrModel* pModel, const SdrObject* pObj = NULL )=0;
464 :
465 : virtual SvxAbstractSplittTableDialog* CreateSvxSplittTableDialog( vcl::Window* pParent, bool bIsTableVertical, long nMaxVertical, long nMaxHorizontal )=0;
466 :
467 : virtual SvxAbstractNewTableDialog* CreateSvxNewTableDialog( vcl::Window* pParent ) = 0;
468 :
469 : virtual SvxAbstractInsRowColDlg* CreateSvxInsRowColDlg( vcl::Window* pParent, bool bCol, const OString& sHelpId ) = 0;
470 : };
471 :
472 : #endif
473 :
474 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|