xref: /trunk/main/cui/source/factory/dlgfact.hxx (revision 64b14621)
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 _CUI_DLGFACT_HXX
24 #define _CUI_DLGFACT_HXX
25 
26 // include ---------------------------------------------------------------
27 #include <svx/svxdlg.hxx>
28 #include <com/sun/star/container/XNameReplace.hpp>
29 
30 #include "tools/link.hxx"
31 #include <com/sun/star/frame/XFrame.hpp>
32 
33 class SfxTabDialog;
34 class SfxModalDialog;
35 class Dialog;
36 class SfxItemPool;
37 class FmShowColsDialog;
38 class SvxZoomDialog;
39 class FmInputRecordNoDialog;
40 class SvxJSearchOptionsDialog;
41 class FmFormShell;
42 class SvxNewDictionaryDialog;
43 class SvxNameDialog;
44 
45 // #i68101#
46 class SvxObjectNameDialog;
47 class SvxObjectTitleDescDialog;
48 
49 class SvxMessDialog;
50 class SvxMultiPathDialog;
51 class SvxMultiFileDialog;
52 class SvxHpLinkDlg;
53 class FmSearchDialog;
54 class Graphic;
55 class GraphicFilterDialog;
56 class SvxAreaTabDialog;
57 class InsertObjectDialog_Impl;
58 class SvPasteObjectDialog;
59 class SvBaseLinksDlg;
60 class SvxTransformTabDialog;
61 class SvxCaptionTabDialog;
62 class SvxThesaurusDialog;
63 class SvxHyphenWordDialog;
64 
65 namespace svx{
66 class HangulHanjaConversionDialog;
67 }
68 using namespace svx;
69 
70 #define DECL_ABSTDLG_BASE(Class,DialogClass)		\
71 	DialogClass* 		pDlg;                   	\
72 public:												\
73 					Class( DialogClass* p)			\
74 					 : pDlg(p)						\
75 					 {}                             \
76 	virtual			~Class();               		\
77 	virtual	short	Execute() ;
78 //	virtual void	Show( sal_Bool bVisible = sal_True, sal_uInt16 nFlags = 0 )
79 
80 #define IMPL_ABSTDLG_BASE(Class)					\
81 Class::~Class()                    					\
82 {                                                   \
83 	delete pDlg;                                 	\
84 }													\
85 short Class::Execute()                             \
86 {                                                   \
87 	return pDlg->Execute();                      	\
88 }
89 
90 //for GalleryThemeProperties begin
91 class VclAbstractDialog2_Impl : public VclAbstractDialog2
92 {
93     Dialog*         m_pDlg;
94     Link            m_aEndDlgHdl;
95 public:
96                     VclAbstractDialog2_Impl( Dialog* p ) : m_pDlg( p ) {}                             \
97     virtual         ~VclAbstractDialog2_Impl();
98     virtual void    StartExecuteModal( const Link& rEndDialogHdl );
99     virtual long    GetResult();
100 private:
101                     DECL_LINK( EndDialogHdl, Dialog* );
102 };
103 //for GalleryThemeProperties end
104 
105 class VclAbstractDialog_Impl : public VclAbstractDialog
106 {
107 	DECL_ABSTDLG_BASE(VclAbstractDialog_Impl,Dialog)
108 };
109 
110 //for ActualizeProgress begin
111 class VclAbstractRefreshableDialog_Impl : public VclAbstractRefreshableDialog
112 {
113 	DECL_ABSTDLG_BASE(VclAbstractRefreshableDialog_Impl,Dialog)
114 	virtual void        Update() ;
115 	virtual void        Sync() ;
116 };
117 //for ActualizeProgress end
118 
119 class AbstractSfxDialog_Impl : public SfxAbstractDialog
120 {
121 	DECL_ABSTDLG_BASE(AbstractSfxDialog_Impl,SfxModalDialog)
122 	virtual const SfxItemSet* 	GetOutputItemSet() const;
123 
124 		//From class Window.
125     virtual void		SetText( const XubString& rStr );
126     virtual String   	GetText() const ;
127 };
128 
129 class AbstractTabDialog_Impl : public SfxAbstractTabDialog
130 {
131 	DECL_ABSTDLG_BASE(AbstractTabDialog_Impl,SfxTabDialog)
132 	virtual void				SetCurPageId( sal_uInt16 nId );
133 	virtual const SfxItemSet* 	GetOutputItemSet() const;
134 	virtual const sal_uInt16*		GetInputRanges( const SfxItemPool& pItem );	//add by CHINA001
135 	virtual void				SetInputSet( const SfxItemSet* pInSet );   //add by CHINA001
136 		//From class Window.
137     virtual void		SetText( const XubString& rStr ); //add by CHINA001
138     virtual String   	GetText() const; //add by CHINA001
139 };
140 
141 //for SvxDistributeDialog begin
142 class SvxDistributeDialog;
143 class AbstractSvxDistributeDialog_Impl: public AbstractSvxDistributeDialog
144 {
145 	DECL_ABSTDLG_BASE(AbstractSvxDistributeDialog_Impl,SvxDistributeDialog)
146 public:
147 	virtual SvxDistributeHorizontal GetDistributeHor() const;
148 	virtual SvxDistributeVertical GetDistributeVer() const;
149 };
150 //for SvxDistributeDialog end
151 
152 // for HangulHanjaConversionDialog begin
153 class AbstractHangulHanjaConversionDialog_Impl: public AbstractHangulHanjaConversionDialog
154 {
155 	DECL_ABSTDLG_BASE(AbstractHangulHanjaConversionDialog_Impl,HangulHanjaConversionDialog)
156 	virtual void	EndDialog(long nResult = 0);
157     virtual void    EnableRubySupport( sal_Bool _bVal );
158 	virtual void 	SetByCharacter( sal_Bool _bByCharacter ) ;
159 	virtual void	SetConversionDirectionState( sal_Bool _bTryBothDirections, editeng::HangulHanjaConversion::ConversionDirection _ePrimaryConversionDirection );
160 	virtual void 	SetConversionFormat( editeng::HangulHanjaConversion::ConversionFormat _eType );
161     virtual void	SetOptionsChangedHdl( const Link& _rHdl );
162 	virtual void	SetIgnoreHdl( const Link& _rHdl );
163 	virtual void	SetIgnoreAllHdl( const Link& _rHdl ) ;
164 	virtual void	SetChangeHdl( const Link& _rHdl ) ;
165 	virtual void	SetChangeAllHdl( const Link& _rHdl ) ;
166     virtual void	SetClickByCharacterHdl( const Link& _rHdl ) ;
167 	virtual void	SetConversionFormatChangedHdl( const Link& _rHdl ) ;
168 	virtual void	SetFindHdl( const Link& _rHdl );
169 	virtual sal_Bool		GetUseBothDirections( ) const;
170     virtual editeng::HangulHanjaConversion::ConversionDirection    GetDirection( editeng::HangulHanjaConversion::ConversionDirection _eDefaultDirection ) const;
171 	virtual void	SetCurrentString(
172 					const String& _rNewString,
173 					const ::com::sun::star::uno::Sequence< ::rtl::OUString >& _rSuggestions,
174 					bool _bOriginatesFromDocument = true
175 				);
176 	virtual String	GetCurrentString( ) const ;
177 	virtual editeng::HangulHanjaConversion::ConversionFormat    GetConversionFormat( ) const ;
178 	virtual void	FocusSuggestion( );
179 	virtual String	GetCurrentSuggestion( ) const;
180 };
181 
182 class AbstractThesaurusDialog_Impl : public AbstractThesaurusDialog
183 {
184 	DECL_ABSTDLG_BASE(AbstractThesaurusDialog_Impl,SvxThesaurusDialog)
185     virtual String		GetWord();
186 	virtual sal_uInt16	GetLanguage() const;
187 	virtual Window*		GetWindow();
188 };
189 
190 
191 class AbstractHyphenWordDialog_Impl: public AbstractHyphenWordDialog
192 {
193 	DECL_ABSTDLG_BASE(AbstractHyphenWordDialog_Impl,SvxHyphenWordDialog)
194 	virtual void	SelLeft();
195 	virtual void	SelRight();
196 	virtual Window*	GetWindow();
197 };
198 
199 // for FmShowColsDialog begin
200 class FmShowColsDialog;
201 class AbstractFmShowColsDialog_Impl : public AbstractFmShowColsDialog
202 {
203 	DECL_ABSTDLG_BASE(AbstractFmShowColsDialog_Impl,FmShowColsDialog)
204  	virtual void 	SetColumns(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer>& xCols);
205 };
206 //for FmShowColsDialog end
207 
208 
209 //for SvxZoomDialog begin
210 class SvxZoomDialog;
211 class AbstractSvxZoomDialog_Impl : public AbstractSvxZoomDialog
212 {
213 	DECL_ABSTDLG_BASE(AbstractSvxZoomDialog_Impl,SvxZoomDialog)
214 	virtual void	SetLimits( sal_uInt16 nMin, sal_uInt16 nMax );
215 	virtual void	HideButton( sal_uInt16 nBtnId );
216 	virtual const SfxItemSet*	GetOutputItemSet() const ;
217 
218 };
219 //for SvxZoomDialog end
220 
221 //for SvxSpellDialog begin
222 namespace svx{ class SpellDialog;}
223 class AbstractSpellDialog_Impl : public AbstractSpellDialog
224 {
225  public:
226     DECL_ABSTDLG_BASE(AbstractSpellDialog_Impl, svx::SpellDialog)
227     virtual void        SetLanguage( sal_uInt16 nLang );
228     virtual sal_Bool    Close();
229     virtual void        Invalidate();
230     virtual Window*     GetWindow();
231     virtual SfxBindings& GetBindings();
232 };
233 
234 //for SearchProgress begin
235 class SearchProgress;
236 class AbstractSearchProgress_Impl : public AbstractSearchProgress
237 {
238 	DECL_ABSTDLG_BASE(AbstractSearchProgress_Impl,SearchProgress)
239 	virtual void        Update() ;
240     virtual void        Sync() ;
241 	virtual void 	SetFileType( const String& rType ) ;
242 	virtual void 	SetDirectory( const INetURLObject& rURL ) ;
243 	virtual PLinkStub	GetLinkStubCleanUpHdl() ;
244 
245 };
246 //for SearchProgress end
247 
248 //for TakeProgress begin
249 class TakeProgress;
250 class AbstractTakeProgress_Impl : public AbstractTakeProgress
251 {
252 	DECL_ABSTDLG_BASE(AbstractTakeProgress_Impl,TakeProgress)
253 	virtual void        Update() ;
254     virtual void        Sync() ;
255 	virtual void 		SetFile( const INetURLObject& rURL ) ;
256 	virtual PLinkStub	GetLinkStubCleanUpHdl() ;
257 
258 };
259 //for TakeProgress end
260 
261 //for TitleDialog begin
262 class TitleDialog;
263 class AbstractTitleDialog_Impl : public AbstractTitleDialog
264 {
265 	DECL_ABSTDLG_BASE(AbstractTitleDialog_Impl,TitleDialog)
266 	virtual String	GetTitle() const ;
267 
268 };
269 //for TitleDialog end
270 
271 //for SvxScriptSelectorDialog begin
272 class SvxScriptSelectorDialog;
273 class AbstractScriptSelectorDialog_Impl : public AbstractScriptSelectorDialog
274 {
275 	DECL_ABSTDLG_BASE(
276 		AbstractScriptSelectorDialog_Impl, SvxScriptSelectorDialog)
277 
278 	virtual String GetScriptURL() const;
279 
280 	virtual void SetRunLabel();
281 };
282 
283 //for GalleryIdDialog begin
284 class GalleryIdDialog;
285 class AbstractGalleryIdDialog_Impl : public AbstractGalleryIdDialog
286 {
287 	DECL_ABSTDLG_BASE(AbstractGalleryIdDialog_Impl,GalleryIdDialog)
288 	virtual sal_uLong	GetId() const ;
289 
290 };
291 //for GalleryIdDialog end
292 
293 //for URLDlg start
294 class URLDlg;
295 class AbstractURLDlg_Impl :public AbstractURLDlg
296 {
297 	DECL_ABSTDLG_BASE(AbstractURLDlg_Impl,URLDlg)
298 	virtual String		GetURL() const;
299 	virtual String		GetAltText() const;
300 	virtual String		GetDesc() const;
301 	virtual String		GetTarget() const;
302 	virtual String		GetName() const;
303 };
304 //for URLDlg end
305 
306 //for SvxHlinkDlgMarkWnd begin
307 class SvxHlinkDlgMarkWnd;
308 class AbstractSvxHlinkDlgMarkWnd_Impl : public AbstractSvxHlinkDlgMarkWnd
309 {
310 	DECL_ABSTDLG_BASE(AbstractSvxHlinkDlgMarkWnd_Impl,SvxHlinkDlgMarkWnd)
311 	virtual void				Hide( sal_uInt16 nFlags = 0 );
312     virtual sal_Bool				IsVisible() const ;
313 	virtual void				Invalidate( sal_uInt16 nFlags = 0 );
314 	virtual void				SetSizePixel( const Size& rNewSize );
315     virtual Size				GetSizePixel() const;
316 	virtual sal_Bool				MoveTo ( Point aNewPos )const;
317 	virtual sal_Bool				ConnectToDialog( sal_Bool bDoit = sal_True )const;
318 	virtual void				RefreshTree ( String aStrURL ) ;
319 	virtual void				SelectEntry ( String aStrMark );
320 	virtual sal_uInt16				SetError( sal_uInt16 nError) ;
321 
322 };
323 //for SvxHlinkDlgMarkWnd end
324 
325 //for SvxSearchSimilarityDialog begin
326 class SvxSearchSimilarityDialog;
327 class AbstractSvxSearchSimilarityDialog_Impl :public AbstractSvxSearchSimilarityDialog
328 {
329 	DECL_ABSTDLG_BASE(AbstractSvxSearchSimilarityDialog_Impl,SvxSearchSimilarityDialog)
330 	virtual sal_uInt16				GetOther();
331 	virtual sal_uInt16				GetShorter();
332 	virtual sal_uInt16				GetLonger();
333 	virtual sal_Bool 				IsRelaxed();
334 };
335 //for SvxSearchSimilarityDialog end
336 
337 //for SvxJSearchOptionsDialog end
338 class SvxJSearchOptionsDialog;
339 class AbstractSvxJSearchOptionsDialog_Impl :public AbstractSvxJSearchOptionsDialog
340 {
341 	DECL_ABSTDLG_BASE(AbstractSvxJSearchOptionsDialog_Impl,SvxJSearchOptionsDialog)
342 	virtual sal_Int32			GetTransliterationFlags() const;
343 };
344 //for SvxJSearchOptionsDialog end
345 
346 class AbstractSvxTransformTabDialog_Impl : public AbstractSvxTransformTabDialog
347 {
348     DECL_ABSTDLG_BASE(AbstractSvxTransformTabDialog_Impl,SvxTransformTabDialog)
349     virtual void SetValidateFramePosLink( const Link& rLink );
350     virtual void                SetCurPageId( sal_uInt16 nId );
351     virtual const SfxItemSet*   GetOutputItemSet() const;
352     virtual const sal_uInt16*       GetInputRanges( const SfxItemPool& pItem );
353     virtual void                SetInputSet( const SfxItemSet* pInSet );
354     virtual void        SetText( const XubString& rStr );
355     virtual String      GetText() const;
356 };
357 class AbstractSvxCaptionDialog_Impl : public AbstractSvxCaptionDialog
358 {
359     DECL_ABSTDLG_BASE(AbstractSvxCaptionDialog_Impl,SvxCaptionTabDialog)
360     virtual void SetValidateFramePosLink( const Link& rLink );
361     virtual void                SetCurPageId( sal_uInt16 nId );
362     virtual const SfxItemSet*   GetOutputItemSet() const;
363     virtual const sal_uInt16*       GetInputRanges( const SfxItemPool& pItem );
364     virtual void                SetInputSet( const SfxItemSet* pInSet );
365     virtual void        SetText( const XubString& rStr );
366     virtual String      GetText() const;
367 };
368 
369 //for FmInputRecordNoDialog end
370 class FmInputRecordNoDialog;
371 class AbstractFmInputRecordNoDialog_Impl :public AbstractFmInputRecordNoDialog
372 {
373 	DECL_ABSTDLG_BASE(AbstractFmInputRecordNoDialog_Impl,FmInputRecordNoDialog)
374     virtual void SetValue(long nNew) ;
375 	virtual long GetValue() const ;
376 };
377 //for FmInputRecordNoDialog end
378 
379 //for SvxNewDictionaryDialog end
380 class SvxNewDictionaryDialog;
381 class AbstractSvxNewDictionaryDialog_Impl :public AbstractSvxNewDictionaryDialog
382 {
383 	DECL_ABSTDLG_BASE(AbstractSvxNewDictionaryDialog_Impl,SvxNewDictionaryDialog)
384     virtual ::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XDictionary >  GetNewDictionary();
385 };
386 //for SvxNewDictionaryDialog end
387 
388 //for SvxNameDialog end
389 class SvxNameDialog;
390 class AbstractSvxNameDialog_Impl :public AbstractSvxNameDialog
391 {
392 	DECL_ABSTDLG_BASE(AbstractSvxNameDialog_Impl,SvxNameDialog)
393 	virtual void    GetName( String& rName ) ;
394 	virtual void    SetCheckNameHdl( const Link& rLink, bool bCheckImmediately = false ) ;
395     virtual void    SetEditHelpId(const rtl::OString&) ;
396 	//from class Window
397 	virtual void    SetHelpId( const rtl::OString& ) ;
398 	virtual void    SetText( const XubString& rStr ) ;
399 private:
400 	Link aCheckNameHdl;
401 	DECL_LINK( CheckNameHdl, Window*);
402 };
403 //for SvxNameDialog end
404 
405 ///////////////////////////////////////////////////////////////////////////////////////////////
406 // #i68101#
407 
408 // predefines
409 class SvxObjectNameDialog;
410 class SvxObjectTitleDescDialog;
411 
412 class AbstractSvxObjectNameDialog_Impl :public AbstractSvxObjectNameDialog
413 {
414 	DECL_ABSTDLG_BASE(AbstractSvxObjectNameDialog_Impl, SvxObjectNameDialog)
415 	virtual void GetName(String& rName) ;
416 	virtual void SetCheckNameHdl(const Link& rLink, bool bCheckImmediately = false);
417 
418 private:
419 	Link aCheckNameHdl;
420 	DECL_LINK(CheckNameHdl, Window*);
421 };
422 
423 class AbstractSvxObjectTitleDescDialog_Impl :public AbstractSvxObjectTitleDescDialog
424 {
425 	DECL_ABSTDLG_BASE(AbstractSvxObjectTitleDescDialog_Impl, SvxObjectTitleDescDialog)
426 	virtual void GetTitle(String& rName);
427 	virtual void GetDescription(String& rName);
428 };
429 
430 ///////////////////////////////////////////////////////////////////////////////////////////////
431 
432 //for SvxMessDialog end
433 class SvxMessDialog;
434 class AbstractSvxMessDialog_Impl :public AbstractSvxMessDialog
435 {
436 	DECL_ABSTDLG_BASE(AbstractSvxMessDialog_Impl,SvxMessDialog)
437 	virtual void	SetButtonText( sal_uInt16 nBtnId, const String& rNewTxt );
438 };
439 //for SvxMessDialog end
440 
441 //for SvxMultiPathDialog end
442 class SvxMultiPathDialog;
443 class AbstractSvxMultiPathDialog_Impl :public AbstractSvxMultiPathDialog
444 {
445 	DECL_ABSTDLG_BASE(AbstractSvxMultiPathDialog_Impl,SvxMultiPathDialog)
446 	virtual String			GetPath() const;
447 	virtual void			SetPath( const String& rPath );
448     virtual void            EnableRadioButtonMode();
449     virtual void            SetTitle( const String& rNewTitle );
450 };
451 //for SvxMultiPathDialog end
452 
453 //for SvxMultiFileDialog begin
454 class SvxMultiFileDialog;
455 class AbstractSvxMultiFileDialog_Impl :public AbstractSvxMultiFileDialog
456 {
457 	DECL_ABSTDLG_BASE(AbstractSvxMultiFileDialog_Impl,SvxMultiFileDialog)
458 	virtual String			GetFiles() const ;
459 	virtual void			SetFiles( const String& rPath ) ;
460 	//from SvxMultiPathDialog
461 	virtual String			GetPath() const;
462 	virtual void			SetPath( const String& rPath );
463 	virtual void			SetClassPathMode();
464     virtual void            EnableRadioButtonMode();
465     virtual void            SetTitle( const String& rNewTitle );
466 	//From Class Window
467 	virtual void    SetHelpId( const rtl::OString& ) ;
468 
469 };
470 //for SvxMultiFileDialog end
471 
472 //for SvxHpLinkDlg begin
473 class SvxHpLinkDlg;
474 class AbstractSvxHpLinkDlg_Impl :public AbstractSvxHpLinkDlg
475 {
476     DECL_ABSTDLG_BASE(AbstractSvxHpLinkDlg_Impl,SvxHpLinkDlg)
477     virtual Window*     GetWindow();
478     virtual sal_Bool    QueryClose();
479 };
480 //for SvxHpLinkDlg end
481 
482 //for FmSearchDialog begin
483 class FmSearchDialog;
484 class AbstractFmSearchDialog_Impl :public AbstractFmSearchDialog
485 {
486 	DECL_ABSTDLG_BASE(AbstractFmSearchDialog_Impl,FmSearchDialog)
487 	virtual void SetFoundHandler(const Link& lnk) ;
488 	virtual void SetCanceledNotFoundHdl(const Link& lnk);
489 	virtual void SetActiveField(const String& strField);
490 };
491 //for FmSearchDialog end
492 
493 //for GraphicFilterDialog begin
494 class GraphicFilterDialog;
495 class AbstractGraphicFilterDialog_Impl :public AbstractGraphicFilterDialog
496 {
497 	DECL_ABSTDLG_BASE(AbstractGraphicFilterDialog_Impl,GraphicFilterDialog)
498 	virtual Graphic	GetFilteredGraphic( const Graphic& rGraphic, double fScaleX, double fScaleY );
499 };
500 //for GraphicFilterDialog end
501 
502 //add for SvxAreaTabDialog begin
503 class SvxAreaTabDialog;
504 class AbstractSvxAreaTabDialog_Impl :public AbstractSvxAreaTabDialog
505 {
506 	DECL_ABSTDLG_BASE(AbstractSvxAreaTabDialog_Impl,SvxAreaTabDialog)
507 	virtual void				SetCurPageId( sal_uInt16 nId );
508 	virtual const SfxItemSet* 	GetOutputItemSet() const;
509 	virtual const sal_uInt16*		GetInputRanges( const SfxItemPool& pItem );
510 	virtual void				SetInputSet( const SfxItemSet* pInSet );
511 		//From class Window.
512     virtual void		SetText( const XubString& rStr );
513     virtual String   	GetText() const;
514 };
515 //add for SvxAreaTabDialog end
516 
517 class AbstractInsertObjectDialog_Impl : public SfxAbstractInsertObjectDialog
518 {
519     DECL_ABSTDLG_BASE(AbstractInsertObjectDialog_Impl, InsertObjectDialog_Impl)
520     virtual com::sun::star::uno::Reference < com::sun::star::embed::XEmbeddedObject > GetObject();
521 	virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > GetIconIfIconified( ::rtl::OUString* pGraphicMediaType );
522     virtual sal_Bool IsCreateNew();
523 };
524 
525 class AbstractPasteDialog_Impl : public SfxAbstractPasteDialog
526 {
527 public:
528     DECL_ABSTDLG_BASE(AbstractPasteDialog_Impl, SvPasteObjectDialog )
529     virtual void Insert( SotFormatStringId nFormat, const String & rFormatName );
530     virtual void SetObjName( const SvGlobalName & rClass, const String & rObjName );
531     virtual sal_uLong GetFormat( const TransferableDataHelper& aHelper,
532                         const DataFlavorExVector* pFormats=0,
533                         const TransferableObjectDescriptor* pDesc=0 );
534 };
535 
536 class AbstractLinksDialog_Impl : public SfxAbstractLinksDialog
537 {
538 public:
539     DECL_ABSTDLG_BASE(AbstractLinksDialog_Impl, SvBaseLinksDlg )
540 };
541 
542 
543 //add for SvxPostItDialog begin
544 class SvxPostItDialog;
545 class AbstractSvxPostItDialog_Impl :public AbstractSvxPostItDialog
546 {
547 	DECL_ABSTDLG_BASE( AbstractSvxPostItDialog_Impl, SvxPostItDialog )
548 	virtual void				SetText( const XubString& rStr );  //From class Window
549 	virtual const SfxItemSet*   GetOutputItemSet() const;
550 	virtual void                SetPrevHdl( const Link& rLink ) ;
551 	virtual void                SetNextHdl( const Link& rLink ) ;
552 	virtual void				EnableTravel(sal_Bool bNext, sal_Bool bPrev) ;
553 	virtual String				GetNote() ;
554 	virtual void				SetNote(const String& rTxt) ;
555 	virtual void				ShowLastAuthor(const String& rAuthor, const String& rDate) ;
556 	virtual void				DontChangeAuthor() ;
557 	virtual void				HideAuthor() ;
558 	virtual void				SetReadonlyPostIt(sal_Bool bDisable) ;
559 	virtual sal_Bool 				IsOkEnabled() const  ;
560 	virtual Window *			GetWindow();
561 private:
562 	Link aNextHdl;
563 	Link aPrevHdl;
564 	DECL_LINK( NextHdl, Window*);
565 	DECL_LINK( PrevHdl, Window*);
566 };
567 //add for SvxPostItDialog end
568 
569 //for PasswordToOpenModifyDialog begin
570 class PasswordToOpenModifyDialog;
571 class AbstractPasswordToOpenModifyDialog_Impl : public AbstractPasswordToOpenModifyDialog
572 {
573     DECL_ABSTDLG_BASE( AbstractPasswordToOpenModifyDialog_Impl, PasswordToOpenModifyDialog )
574 
575     virtual String  GetPasswordToOpen() const;
576     virtual String  GetPasswordToModify() const;
577     virtual bool    IsRecommendToOpenReadonly() const;
578 };
579 //for PasswordToOpenModifyDialog end
580 
581 
582 //------------------------------------------------------------------------
583 //AbstractDialogFactory_Impl implementations
584 class AbstractDialogFactory_Impl : public SvxAbstractDialogFactory
585 {
586 public:
587 	virtual VclAbstractDialog* 			CreateVclDialog( Window* pParent, sal_uInt32 nResId );
588 	virtual VclAbstractDialog* 			CreateSfxDialog( Window* pParent, const SfxBindings& rBindings, sal_uInt32 nResId );
589 	virtual SfxAbstractDialog*			CreateSfxDialog( sal_uInt32 nResId,
590 											Window* pParent,
591                                             const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& xViewFrame,
592 											const SfxItemSet* pAttrSet=0 );
593 	virtual SfxAbstractDialog*			CreateSfxDialog( Window* pParent,
594 											const SfxItemSet& rAttr,
595 											const SdrView* pView,
596 											sal_uInt32 nResId );
597 	virtual SfxAbstractDialog*				CreateSfxDialog( Window* pParent, //add for SvxMeasureDialog & SvxConnectionDialog
598 																		const SfxItemSet& rAttr,
599 									const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& _rxFrame,
600 																		sal_uInt32 nResId
601 																		);
602 	virtual VclAbstractDialog*          CreateFrameDialog( Window* pParent, const com::sun::star::uno::Reference< com::sun::star::frame::XFrame >& rxFrame, sal_uInt32 nResId, const String& rParameter );
603 	virtual SfxAbstractTabDialog*		CreateTabDialog( sal_uInt32 nResId,
604 											Window* pParent,
605 											const SfxItemSet* pAttrSet,
606 											SfxViewFrame* pViewFrame,
607 											bool bEditFmt=false,
608 											const String *pUserButtonText=0 );
609 	virtual SfxAbstractTabDialog*		CreateTabDialog( sal_uInt32 nResId,
610 											Window* pParent,
611 											const SfxItemSet* pAttrSet,
612                                             const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& xViewFrame,
613 											bool bEditFmt=false,
614 											const String *pUserButtonText=0 );
615 	virtual SfxAbstractTabDialog* 		CreateTextTabDialog( Window* pParent,
616 											const SfxItemSet* pAttrSet,
617 											SdrView* pView,
618 											SdrModel* pModel=0 ); //add for SvxTextTabDialog
619 	virtual SfxAbstractTabDialog*		CreateTabItemDialog( Window* pParent,
620 											const SfxItemSet& rSet,
621 											sal_uInt32 nResId); //add by CHINA001
622     virtual AbstractSvxCaptionDialog*   CreateCaptionDialog( Window* pParent,
623 											const SdrView* pView,
624 											sal_uInt16 nAnchorTypes = 0 );		//add for SvxCaptionTabDialog CHINA001
625 	virtual	AbstractSvxDistributeDialog* 	CreateSvxDistributeDialog(Window* pParent,
626 											const SfxItemSet& rAttr,
627 											SvxDistributeHorizontal eHor = SvxDistributeHorizontalNone,
628 											SvxDistributeVertical eVer = SvxDistributeVerticalNone);
629     virtual SfxAbstractInsertObjectDialog* CreateInsertObjectDialog( Window* pParent, const rtl::OUString& rCommmand,
630             const com::sun::star::uno::Reference < com::sun::star::embed::XStorage >& xStor,
631             const SvObjectServerList* pList = 0 );
632     virtual VclAbstractDialog*          CreateEditObjectDialog( Window* pParent, const rtl::OUString& rCommmand,
633             const com::sun::star::uno::Reference < com::sun::star::embed::XEmbeddedObject >& xObj );
634    virtual  SfxAbstractPasteDialog*         CreatePasteDialog( Window* pParent );
635    virtual  SfxAbstractLinksDialog*         CreateLinksDialog( Window* pParent, sfx2::LinkManager* pMgr, sal_Bool bHTML, sfx2::SvBaseLink* p=0  );
636 
637    virtual AbstractHangulHanjaConversionDialog * CreateHangulHanjaConversionDialog( Window* _pParent,  //add for HangulHanjaConversionDialog CHINA001
638 											editeng::HangulHanjaConversion::ConversionDirection _ePrimaryDirection );
639 	virtual AbstractThesaurusDialog*		CreateThesaurusDialog( Window*, ::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XThesaurus >  xThesaurus,
640 												const String &rWord, sal_Int16 nLanguage );
641 
642 	virtual AbstractHyphenWordDialog*		CreateHyphenWordDialog( Window*,
643 												const String &rWord, LanguageType nLang,
644 												::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XHyphenator >  &xHyphen,
645 												SvxSpellWrapper* pWrapper );
646 
647    virtual AbstractFmShowColsDialog * CreateFmShowColsDialog( Window* pParent );  //add for FmShowColsDialog
648    virtual AbstractSvxZoomDialog * CreateSvxZoomDialog( Window* pParent,  //add for SvxZoomDialog
649 											const SfxItemSet& rCoreSet);
650    virtual SfxAbstractTabDialog* CreateSvxBorderBackgroundDlg( Window* pParent, //add for SvxBorderBackgroundDlg
651 											const SfxItemSet& rCoreSet,
652 											sal_Bool bEnableSelector = sal_False) ;
653    virtual AbstractSvxTransformTabDialog* CreateSvxTransformTabDialog( Window* pParent, //add for SvxTransformTabDialog
654 																const SfxItemSet* pAttr,
655 																const SdrView* pView,
656 																sal_uInt16 nAnchorTypes = 0) ;
657 	virtual SfxAbstractTabDialog* CreateSchTransformTabDialog( Window* pParent,  //add for SchTransformTabDialog
658 																const SfxItemSet* pAttr,
659 																const SdrView* pSdrView,
660 																sal_uInt32 nResId,
661 																bool bSizeTabPage = false
662 																 );
663     virtual AbstractSpellDialog *  CreateSvxSpellDialog(
664                             Window* pParent,
665                             SfxBindings* pBindings,
666                             svx::SpellDialogChildWindow* pSpellChildWindow );
667 
668 //STRIP001    virtual AbstractSvxSpellCheckDialog * CreateSvxSpellCheckDialog( Window* pParent, //add for SvxSpellCheckDialog
669 //STRIP001    ::com::sun::star::uno::Reference<
670 //STRIP001    ::com::sun::star::linguistic2::XSpellChecker1 >  &xChecker,
671 //STRIP001    SvxSpellWrapper* pWrapper,
672 //STRIP001    sal_uInt32 nResId);
673 	virtual VclAbstractRefreshableDialog * CreateActualizeProgressDialog( Window* pParent, GalleryTheme* pThm );
674 	virtual AbstractSearchProgress * CreateSearchProgressDialog( Window* pParent,
675 											const INetURLObject& rStartURL);
676 	virtual AbstractTakeProgress * CreateTakeProgressDialog( Window* pParent );
677 	virtual AbstractTitleDialog * CreateTitleDialog( Window* pParent,  //add for TitleDialog
678 		 									const String& rOldText);
679 	virtual AbstractGalleryIdDialog * CreateGalleryIdDialog( Window* pParent,  //add for SvxZoomDialog
680 											GalleryTheme* pThm);
681     virtual VclAbstractDialog2 * CreateGalleryThemePropertiesDialog( Window* pParent,  //add for GalleryThemeProperties
682 											ExchangeData* pData,
683 											SfxItemSet* pItemSet);
684 	virtual AbstractURLDlg * CreateURLDialog( Window* pParent,  //add for URLDlg
685 											const String& rURL, const String& rAltText, const String& rDescription,
686 											const String& rTarget, const String& rName,
687 											TargetList& rTargetList );
688 	virtual AbstractSvxHlinkDlgMarkWnd* CreateSvxHlinkDlgMarkWndDialog( SvxHyperlinkTabPageBase* pParent, sal_uInt32 nResId ); //add for SvxHlinkDlgMarkWnd
689 
690 	virtual VclAbstractDialog* 		CreateSvxSearchAttributeDialog( Window* pParent,
691 											SearchAttrItemList& rLst,
692 											const sal_uInt16* pWhRanges);
693 	virtual AbstractSvxSearchSimilarityDialog * CreateSvxSearchSimilarityDialog( Window* pParent,
694 															sal_Bool bRelax,
695 															sal_uInt16 nOther,
696 															sal_uInt16 nShorter,
697 															sal_uInt16 nLonger); //add for SvxSearchSimilarityDialog
698 	virtual AbstractSvxJSearchOptionsDialog * CreateSvxJSearchOptionsDialog( Window* pParent,
699 															const SfxItemSet& rOptionsSet,
700 															sal_Int32 nInitialFlags);
701 	virtual AbstractFmInputRecordNoDialog * CreateFmInputRecordNoDialog( Window* pParent );
702 	virtual AbstractSvxNewDictionaryDialog* CreateSvxNewDictionaryDialog( Window* pParent,
703 											::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XSpellChecker1 >  &xSpl,
704 											sal_uInt32 nResId ); //add for SvxNewDictionaryDialog
705 	virtual VclAbstractDialog *		CreateSvxEditDictionaryDialog( Window* pParent,
706 											const String& rName,
707 											::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XSpellChecker1> &xSpl,
708 											sal_uInt32 nResId);//add for SvxEditDictionaryDialog
709 	virtual AbstractSvxNameDialog *		CreateSvxNameDialog( Window* pParent,
710 											const String& rName, const String& rDesc );
711 	// #i68101#
712 	virtual AbstractSvxObjectNameDialog* CreateSvxObjectNameDialog(Window* pParent, const String& rName );
713 	virtual AbstractSvxObjectTitleDescDialog* CreateSvxObjectTitleDescDialog(Window* pParent, const String& rTitle, const String& rDescription);
714 
715 	virtual AbstractSvxMessDialog *			CreateSvxMessDialog( Window* pParent, sal_uInt32 nResId,
716 											const String& rText, const String& rDesc,
717 											Image* pImg = NULL ); //add for SvxMessDialog
718 	virtual AbstractSvxMultiPathDialog *	CreateSvxMultiPathDialog( Window* pParent, sal_Bool bEmptyAllowed = sal_False ); //add for SvxMultiPathDialog
719 	virtual AbstractSvxMultiFileDialog *	CreateSvxMultiFileDialog( Window* pParent, sal_Bool bEmptyAllowed = sal_False ); //add for SvxMultiFileDialog
720 	virtual AbstractSvxHpLinkDlg *			CreateSvxHpLinkDlg (Window* pParent,  //add for SvxHpLink
721 											SfxBindings* pBindings,
722 											sal_uInt32 nResId);
723 	virtual AbstractFmSearchDialog* 		CreateFmSearchDialog(Window* pParent, //add for FmSearchDialog
724 														const String& strInitialText,
725                                                         const ::std::vector< String >& _rContexts,
726 														sal_Int16 nInitialContext,
727 														const Link& lnkContextSupplier);
728 	virtual AbstractGraphicFilterDialog *	CreateGraphicFilterEmboss (Window* pParent,  //add for GraphicFilterEmboss
729 											const Graphic& rGraphic,
730 											RECT_POINT eLightSource, sal_uInt32 nResId);
731 	virtual AbstractGraphicFilterDialog *	CreateGraphicFilterPosterSepia (Window* pParent,  //add for GraphicFilterPoster & GraphicFilterSepia
732 											const Graphic& rGraphic,
733 											sal_uInt16 nCount,
734 											sal_uInt32 nResId);
735 	virtual AbstractGraphicFilterDialog *	CreateGraphicFilterSolarize (Window* pParent,  //add for GraphicFilterSolarize
736 											const Graphic& rGraphic,
737 											sal_uInt8 nGreyThreshold, sal_Bool bInvert, sal_uInt32 nResId);
738 	virtual AbstractGraphicFilterDialog *	CreateGraphicFilterMosaic (Window* pParent,  //add for GraphicFilterMosaic
739 											const Graphic& rGraphic,
740 											sal_uInt16 nTileWidth, sal_uInt16 nTileHeight, sal_Bool bEnhanceEdges, sal_uInt32 nResId);
741 	virtual AbstractSvxAreaTabDialog* 		CreateSvxAreaTabDialog( Window* pParent,//add for SvxAreaTabDialog
742 															const SfxItemSet* pAttr,
743 															SdrModel* pModel,
744                                                             bool bShadow ); //add for SvxAreaTabDialog
745 	virtual SfxAbstractTabDialog*			CreateSvxLineTabDialog( Window* pParent, const SfxItemSet* pAttr, //add for SvxLineTabDialog
746 																 SdrModel* pModel,
747 																 const SdrObject* pObj = NULL,
748 																sal_Bool bHasObj = sal_True );
749 	virtual AbstractSvxPostItDialog*		CreateSvxPostItDialog( Window* pParent, //add for SvxPostItDialog
750 																		const SfxItemSet& rCoreSet,
751 																		sal_Bool bPrevNext = sal_False, sal_Bool bRedline = sal_False );
752 
753 	// For TabPage
754 	virtual CreateTabPage				GetTabPageCreatorFunc( sal_uInt16 nId );
755 	virtual CreateSvxDistributePage		GetSvxDistributePageCreatorFunc();
756 
757 	virtual GetTabPageRanges			GetTabPageRangesFunc( sal_uInt16 nId );
758 	virtual DialogGetRanges			GetDialogGetRangesFunc( sal_uInt16 nId ); //add for SvxPostItDialog
759     virtual VclAbstractDialog*    		CreateSvxScriptOrgDialog( Window* pParent, const String& rLanguage );
760 
761     virtual AbstractScriptSelectorDialog*
762 		CreateScriptSelectorDialog(
763 			Window* pParent,
764             sal_Bool bShowSlots,
765             const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& _rxFrame
766         );
767 
768 	virtual VclAbstractDialog* CreateScriptErrorDialog(
769 			Window* pParent, ::com::sun::star::uno::Any aException);
770 
771     virtual VclAbstractDialog*  CreateSvxMacroAssignDlg(
772                 Window* _pParent,
773                 const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& _rxDocumentFrame,
774                 const bool _bUnoDialogMode,
775                 const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameReplace >& _rxEvents,
776                 const sal_uInt16 _nInitiallySelectedEvent
777             );
778 
779 	virtual SfxAbstractTabDialog* CreateSvxFormatCellsDialog( Window* pParent, const SfxItemSet* pAttr, SdrModel* pModel, const SdrObject* pObj = NULL );
780 
781 	virtual SvxAbstractSplittTableDialog* CreateSvxSplittTableDialog( Window* pParent, bool bIsTableVertical, long nMaxVertical, long nMaxHorizontal );
782 
783 	virtual SvxAbstractNewTableDialog* CreateSvxNewTableDialog( Window* pParent ) ;
784 
785 	virtual VclAbstractDialog*          CreateOptionsDialog(
786         Window* pParent, const rtl::OUString& rExtensionId, const rtl::OUString& rApplicationContext );
787 
788 	virtual SvxAbstractInsRowColDlg* CreateSvxInsRowColDlg( Window* pParent, bool bCol, const rtl::OString& sHelpId );
789 
790     virtual AbstractPasswordToOpenModifyDialog *    CreatePasswordToOpenModifyDialog( Window * pParent, sal_uInt16 nMinPasswdLen, sal_uInt16 nMaxPasswdLen, bool bIsPasswordToModify );
791 };
792 
793 #endif
794 
795