xref: /AOO41X/main/sd/source/ui/dlg/sddlgfact.hxx (revision 3ce09a58b0d6873449cda31e55c66dba2dbc8f7f)
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 _SD_DLGFACT_HXX
24 #define _SD_DLGFACT_HXX
25 
26 // include ---------------------------------------------------------------
27 #include "sdabstdlg.hxx"
28 #include <sfx2/basedlgs.hxx>
29 
30 #define DECL_ABSTDLG_BASE(Class,DialogClass)        \
31     DialogClass*        pDlg;                       \
32 public:                                             \
33                     Class( DialogClass* p)          \
34                      : pDlg(p)                      \
35                      {}                             \
36     virtual         ~Class();                       \
37     virtual short   Execute() ;
38 
39 #define IMPL_ABSTDLG_BASE(Class)                    \
40 Class::~Class()                                     \
41 {                                                   \
42     delete pDlg;                                    \
43 }                                                   \
44 short Class::Execute()                             \
45 {                                                   \
46     return pDlg->Execute();                         \
47 }
48 
49 namespace sd {
50     class MorphDlg;
51     class CopyDlg;
52     class BreakDlg;
53     class OutlineBulletDlg;
54         class HeaderFooterDialog;
55 }
56 // add for BreakDlg
57 class Dialog;
58 class VclAbstractDialog_Impl : public VclAbstractDialog
59 {
60     DECL_ABSTDLG_BASE(VclAbstractDialog_Impl,Dialog)
61 };
62 
63 // add for CopyDlg
64 
65 class AbstractCopyDlg_Impl : public AbstractCopyDlg
66 {
67     DECL_ABSTDLG_BASE(AbstractCopyDlg_Impl,::sd::CopyDlg)
68     virtual void    GetAttr( SfxItemSet& rOutAttrs );
69 };
70 
71 // add for SdCustomShowDlg
72 class SdCustomShowDlg;
73 class AbstractSdCustomShowDlg_Impl : public AbstractSdCustomShowDlg
74 {
75     DECL_ABSTDLG_BASE(AbstractSdCustomShowDlg_Impl,SdCustomShowDlg)
76     virtual sal_Bool        IsModified() const ;
77     virtual sal_Bool        IsCustomShow() const ;
78 };
79 
80 //add for SdCharDlg begin
81 class SfxTabDialog;
82 class AbstractTabDialog_Impl : public SfxAbstractTabDialog
83 {
84     DECL_ABSTDLG_BASE( AbstractTabDialog_Impl,SfxTabDialog )
85     virtual void                SetCurPageId( sal_uInt16 nId );
86     virtual const SfxItemSet*   GetOutputItemSet() const;
87     virtual const sal_uInt16*       GetInputRanges( const SfxItemPool& pItem );
88     virtual void                SetInputSet( const SfxItemSet* pInSet );
89         //From class Window.
90     virtual void        SetText( const XubString& rStr );
91     virtual String      GetText() const;
92 };
93 //add for SdCharDlg end
94 
95 
96 //add for OutlineBulletDlg begin
97 class SfxTabDialog;
98 class AbstractBulletDialog_Impl : public SfxAbstractTabDialog
99 {
100     DECL_ABSTDLG_BASE( AbstractBulletDialog_Impl,SfxTabDialog )
101     virtual void                SetCurPageId( sal_uInt16 nId );
102     virtual const SfxItemSet*   GetOutputItemSet() const;
103     virtual const sal_uInt16*       GetInputRanges( const SfxItemPool& pItem );
104     virtual void                SetInputSet( const SfxItemSet* pInSet );
105         //From class Window.
106     virtual void        SetText( const XubString& rStr );
107     virtual String      GetText() const;
108 };
109 //add for OutlineBulletDlg end
110 
111 class SdPresLayoutTemplateDlg;
112 class SdPresLayoutTemplateDlg_Impl : public SfxAbstractTabDialog
113 {
114     DECL_ABSTDLG_BASE( SdPresLayoutTemplateDlg_Impl,SdPresLayoutTemplateDlg )
115     virtual void                SetCurPageId( sal_uInt16 nId );
116     virtual const SfxItemSet*   GetOutputItemSet() const;
117     virtual const sal_uInt16*       GetInputRanges( const SfxItemPool& pItem );
118     virtual void                SetInputSet( const SfxItemSet* pInSet );
119         //From class Window.
120     virtual void        SetText( const XubString& rStr );
121     virtual String      GetText() const;
122 };
123 
124 // add for AssistentDlg
125 class AssistentDlg;
126 class AbstractAssistentDlg_Impl : public AbstractAssistentDlg
127 {
128     DECL_ABSTDLG_BASE(AbstractAssistentDlg_Impl,AssistentDlg)
129     virtual SfxObjectShellLock GetDocument();
130     virtual OutputType GetOutputMedium() const;
131     virtual sal_Bool IsSummary() const;
132     virtual StartType GetStartType() const;
133     virtual String GetDocPath() const;
134     virtual sal_Bool GetStartWithFlag() const;
135     virtual sal_Bool IsDocEmpty() const;
136     virtual String GetPassword();
137 };
138 
139 // add for SdModifyFieldDlg
140 class SdModifyFieldDlg;
141 class AbstractSdModifyFieldDlg_Impl : public AbstractSdModifyFieldDlg
142 {
143     DECL_ABSTDLG_BASE(AbstractSdModifyFieldDlg_Impl,SdModifyFieldDlg)
144     virtual SvxFieldData*       GetField();
145     virtual SfxItemSet          GetItemSet();
146 };
147 
148 // add for SdSnapLineDlg
149 class SdSnapLineDlg;
150 class AbstractSdSnapLineDlg_Impl : public AbstractSdSnapLineDlg
151 {
152     DECL_ABSTDLG_BASE(AbstractSdSnapLineDlg_Impl,SdSnapLineDlg)
153     virtual void GetAttr(SfxItemSet& rOutAttrs);
154     virtual void HideRadioGroup();
155     virtual void HideDeleteBtn();
156     virtual void SetInputFields(sal_Bool bEnableX, sal_Bool bEnableY);
157     //from class Window
158     virtual void    SetText( const XubString& rStr );
159 };
160 
161 // add for SdInsertLayerDlg
162 class SdInsertLayerDlg;
163 class AbstractSdInsertLayerDlg_Impl : public AbstractSdInsertLayerDlg
164 {
165     DECL_ABSTDLG_BASE(AbstractSdInsertLayerDlg_Impl,SdInsertLayerDlg)
166     virtual void    GetAttr( SfxItemSet& rOutAttrs ) ;
167     //from class Window
168     virtual void    SetHelpId( const rtl::OString& rHelpId ) ;
169 };
170 
171 // add for SdInsertPasteDlg
172 class SdInsertPasteDlg;
173 class AbstractSdInsertPasteDlg_Impl : public AbstractSdInsertPasteDlg
174 {
175     DECL_ABSTDLG_BASE(AbstractSdInsertPasteDlg_Impl,SdInsertPasteDlg)
176     virtual sal_Bool            IsInsertBefore() const;
177 };
178 
179 // add for SdInsertPagesObjsDlg
180 class SdInsertPagesObjsDlg;
181 class AbstractSdInsertPagesObjsDlg_Impl : public AbstractSdInsertPagesObjsDlg
182 {
183     DECL_ABSTDLG_BASE(AbstractSdInsertPagesObjsDlg_Impl,SdInsertPagesObjsDlg)
184     virtual ::Window *  GetWindow(); //this method is added for return a Window type pointer
185     virtual List*       GetList( sal_uInt16 nType );
186     virtual sal_Bool        IsLink();
187     virtual sal_Bool        IsRemoveUnnessesaryMasterPages() const;
188 };
189 
190 // add for MorphDlg
191 class AbstractMorphDlg_Impl : public AbstractMorphDlg
192 {
193     DECL_ABSTDLG_BASE(AbstractMorphDlg_Impl,::sd::MorphDlg)
194     virtual void            SaveSettings() const;
195     virtual sal_uInt16          GetFadeSteps() const;
196     virtual sal_Bool            IsAttributeFade() const ;
197     virtual sal_Bool            IsOrientationFade() const ;
198 };
199 
200 // add for SdStartPresentationDlg
201 class SdStartPresentationDlg;
202 class AbstractSdStartPresDlg_Impl : public AbstractSdStartPresDlg
203 {
204     DECL_ABSTDLG_BASE(AbstractSdStartPresDlg_Impl,SdStartPresentationDlg)
205     virtual void    GetAttr( SfxItemSet& rOutAttrs );
206 };
207 
208 // add for SdPresLayoutDlg
209 class SdPresLayoutDlg;
210 class AbstractSdPresLayoutDlg_Impl : public AbstractSdPresLayoutDlg
211 {
212     DECL_ABSTDLG_BASE(AbstractSdPresLayoutDlg_Impl,SdPresLayoutDlg)
213     virtual void    GetAttr(SfxItemSet& rOutAttrs);
214 };
215 
216 // add for SdActionDlg
217 class SfxSingleTabDialog;
218 class AbstractSfxDialog_Impl : public SfxAbstractDialog
219 {
220     DECL_ABSTDLG_BASE(AbstractSfxDialog_Impl,SfxModalDialog)
221     virtual const SfxItemSet*   GetOutputItemSet() const;
222     virtual void        SetText( const XubString& rStr );
223     virtual String      GetText() const;
224 };
225 
226 // add for SdVectorizeDlg
227 class SdVectorizeDlg;
228 class AbstractSdVectorizeDlg_Impl :public AbstractSdVectorizeDlg
229 {
230     DECL_ABSTDLG_BASE(AbstractSdVectorizeDlg_Impl,SdVectorizeDlg)
231     virtual const GDIMetaFile&  GetGDIMetaFile() const ;
232 };
233 
234 // add for SdPublishingDlg
235 class SdPublishingDlg;
236 class AbstractSdPublishingDlg_Impl :public AbstractSdPublishingDlg
237 {
238     DECL_ABSTDLG_BASE(AbstractSdPublishingDlg_Impl,SdPublishingDlg)
239     virtual void GetParameterSequence( ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& rParams );
240 };
241 
242 // add for HeaderFooterDialog
243 class AbstractHeaderFooterDialog_Impl :public AbstractHeaderFooterDialog
244 {
245   DECL_ABSTDLG_BASE(AbstractHeaderFooterDialog_Impl,::sd::HeaderFooterDialog)
246   virtual void ApplyToAll( TabPage* pPage );
247   virtual void Apply( TabPage* pPage );
248   virtual void Cancel( TabPage* pPage );
249 };
250 
251 //------------------------------------------------------------------------
252 //AbstractDialogFactory_Impl implementations
253 class SdAbstractDialogFactory_Impl : public SdAbstractDialogFactory
254 {
255 
256 public:
257     virtual VclAbstractDialog*          CreateBreakDlg(::Window* pWindow, ::sd::DrawView* pDrView, ::sd::DrawDocShell* pShell, sal_uLong nSumActionCount, sal_uLong nObjCount );
258     virtual AbstractCopyDlg*            CreateCopyDlg( ::Window* pWindow, const SfxItemSet& rInAttrs, XColorListSharedPtr aColTab, ::sd::View* pView );
259     virtual AbstractSdCustomShowDlg*    CreateSdCustomShowDlg( ::Window* pWindow, SdDrawDocument& rDrawDoc );
260     virtual SfxAbstractTabDialog*       CreateSdTabCharDialog( ::Window* pParent, const SfxItemSet* pAttr, SfxObjectShell* pDocShell );
261     virtual SfxAbstractTabDialog*       CreateSdTabPageDialog( ::Window* pParent, const SfxItemSet* pAttr, SfxObjectShell* pDocShell, sal_Bool bAreaPage = sal_True );
262     virtual AbstractAssistentDlg*       CreateAssistentDlg( ::Window* pParent, sal_Bool bAutoPilot);
263     virtual AbstractSdModifyFieldDlg*   CreateSdModifyFieldDlg( ::Window* pWindow, const SvxFieldData* pInField, const SfxItemSet& rSet );
264     virtual AbstractSdSnapLineDlg*      CreateSdSnapLineDlg( ::Window* pWindow, const SfxItemSet& rInAttrs, ::sd::View* pView);
265     virtual AbstractSdInsertLayerDlg*   CreateSdInsertLayerDlg( ::Window* pWindow, const SfxItemSet& rInAttrs, bool bDeletable, String aStr );
266     virtual AbstractSdInsertPasteDlg*   CreateSdInsertPasteDlg( ::Window* pWindow );
267     virtual AbstractSdInsertPagesObjsDlg* CreateSdInsertPagesObjsDlg( ::Window* pParent, const SdDrawDocument* pDoc, SfxMedium* pSfxMedium, const String& rFileName );
268     virtual AbstractMorphDlg*           CreateMorphDlg( ::Window* pParent, const SdrObject* pObj1, const SdrObject* pObj2);
269     virtual SfxAbstractTabDialog*       CreateSdOutlineBulletTabDlg ( ::Window* pParent, const SfxItemSet* pAttr, ::sd::View* pView = NULL );
270     virtual SfxAbstractTabDialog*       CreateSdParagraphTabDlg ( ::Window* pParent, const SfxItemSet* pAttr );
271     virtual AbstractSdStartPresDlg*     CreateSdStartPresentationDlg( ::Window* pWindow, const SfxItemSet& rInAttrs, List& rPageNames, List* pCSList );
272     virtual SfxAbstractTabDialog*       CreateSdPresLayoutTemplateDlg( SfxObjectShell* pDocSh, ::Window* pParent, SdResId DlgId, SfxStyleSheetBase& rStyleBase, PresentationObjects ePO, SfxStyleSheetBasePool* pSSPool );
273     virtual AbstractSdPresLayoutDlg*    CreateSdPresLayoutDlg( ::sd::DrawDocShell* pDocShell, ::sd::ViewShell* pViewShell, ::Window* pWindow, const SfxItemSet& rInAttrs);
274     virtual SfxAbstractTabDialog*       CreateSdTabTemplateDlg( ::Window* pParent, const SfxObjectShell* pDocShell, SfxStyleSheetBase& rStyleBase, SdrModel* pModel, SdrView* pView );
275     virtual SfxAbstractDialog*          CreatSdActionDialog( ::Window* pParent, const SfxItemSet* pAttr, ::sd::View* pView );
276     virtual AbstractSdVectorizeDlg*     CreateSdVectorizeDlg( ::Window* pParent, const Bitmap& rBmp, ::sd::DrawDocShell* pDocShell );
277     virtual AbstractSdPublishingDlg*    CreateSdPublishingDlg( ::Window* pWindow, DocumentType eDocType);
278 
279     virtual VclAbstractDialog*          CreateMasterLayoutDialog( ::Window* pParent,
280                                                                   SdDrawDocument* pDoc,
281                                                                   SdPage* ); // add for MasterLayoutDialog
282 
283     virtual AbstractHeaderFooterDialog* CreateHeaderFooterDialog( ViewShell* pViewShell,
284                                                                   ::Window* pParent,
285                                                                   SdDrawDocument* pDoc,
286                                                                   SdPage* pCurrentPage ); // add for HeaderFooterDialog
287 
288     // For TabPage
289     virtual CreateTabPage               GetSdOptionsContentsTabPageCreatorFunc();
290     virtual CreateTabPage               GetSdPrintOptionsTabPageCreatorFunc();
291     virtual CreateTabPage               GetSdOptionsMiscTabPageCreatorFunc();
292     virtual CreateTabPage               GetSdOptionsSnapTabPageCreatorFunc();
293 };
294 
295 #endif
296 
297