xref: /AOO41X/main/sd/inc/sdmod.hxx (revision 67e470dafe1997e73f56ff7ff4878983707e3e07)
1*c45d927aSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*c45d927aSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*c45d927aSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*c45d927aSAndrew Rist  * distributed with this work for additional information
6*c45d927aSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*c45d927aSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*c45d927aSAndrew Rist  * "License"); you may not use this file except in compliance
9*c45d927aSAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
11*c45d927aSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
13*c45d927aSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*c45d927aSAndrew Rist  * software distributed under the License is distributed on an
15*c45d927aSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*c45d927aSAndrew Rist  * KIND, either express or implied.  See the License for the
17*c45d927aSAndrew Rist  * specific language governing permissions and limitations
18*c45d927aSAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
20*c45d927aSAndrew Rist  *************************************************************/
21*c45d927aSAndrew Rist 
22*c45d927aSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef _SDMOD_HXX
25cdf0e10cSrcweir #define _SDMOD_HXX
26cdf0e10cSrcweir 
27cdf0e10cSrcweir 
28cdf0e10cSrcweir #ifndef _SDDLL_HXX
29cdf0e10cSrcweir #define _SD_DLL             // fuer SD_MOD()
30cdf0e10cSrcweir #include "sddll.hxx"        // fuer SdModuleDummy
31cdf0e10cSrcweir #endif
32cdf0e10cSrcweir #include "glob.hxx"
33cdf0e10cSrcweir #include "pres.hxx"
34cdf0e10cSrcweir 
35cdf0e10cSrcweir #include <sot/storage.hxx>
36cdf0e10cSrcweir #include <tools/shl.hxx>
37cdf0e10cSrcweir #include "sddllapi.h"
38cdf0e10cSrcweir #include <svl/lstner.hxx>
39cdf0e10cSrcweir #include <com/sun/star/text/WritingMode.hpp>
40cdf0e10cSrcweir #include <sfx2/module.hxx>
41cdf0e10cSrcweir #include <vcl/vclevent.hxx>
42cdf0e10cSrcweir 
43cdf0e10cSrcweir #ifndef INCLUDED_MEMORY
44cdf0e10cSrcweir #include <memory>
45cdf0e10cSrcweir #define INCLUDED_MEMORY
46cdf0e10cSrcweir #endif
47cdf0e10cSrcweir 
48cdf0e10cSrcweir class SdOptions;
49cdf0e10cSrcweir class BasicIDE;
50cdf0e10cSrcweir class SvxSearchItem;
51cdf0e10cSrcweir class SdAppLinkHdl;
52cdf0e10cSrcweir class SvxErrorHandler;
53cdf0e10cSrcweir class EditFieldInfo;
54cdf0e10cSrcweir class SvFactory;
55cdf0e10cSrcweir class SdTransferable;
56cdf0e10cSrcweir class SvNumberFormatter;
57cdf0e10cSrcweir class SfxErrorHandler;
58cdf0e10cSrcweir class OutputDevice;
59cdf0e10cSrcweir class SdPage;
60cdf0e10cSrcweir class SdDrawDocument;
61cdf0e10cSrcweir class SfxFrame;
62cdf0e10cSrcweir 
63cdf0e10cSrcweir namespace sd {
64cdf0e10cSrcweir class DrawDocShell;
65cdf0e10cSrcweir class SdGlobalResourceContainer;
66cdf0e10cSrcweir }
67cdf0e10cSrcweir 
68cdf0e10cSrcweir namespace com { namespace sun { namespace star { namespace frame {
69cdf0e10cSrcweir     class XFrame;
70cdf0e10cSrcweir } } } }
71cdf0e10cSrcweir 
72cdf0e10cSrcweir 
73cdf0e10cSrcweir // ----------------------
74cdf0e10cSrcweir // - SdOptionStreamMode -
75cdf0e10cSrcweir // ----------------------
76cdf0e10cSrcweir 
77cdf0e10cSrcweir enum SdOptionStreamMode
78cdf0e10cSrcweir {
79cdf0e10cSrcweir     SD_OPTION_LOAD = 0,
80cdf0e10cSrcweir     SD_OPTION_STORE = 1
81cdf0e10cSrcweir };
82cdf0e10cSrcweir 
83cdf0e10cSrcweir /*************************************************************************
84cdf0e10cSrcweir |*
85cdf0e10cSrcweir |* This subclass of <SfxModule> (which is a subclass of <SfxShell>) is
86cdf0e10cSrcweir |* linked to the DLL. One instance of this class exists while the DLL is
87cdf0e10cSrcweir |* loaded.
88cdf0e10cSrcweir |*
89cdf0e10cSrcweir |* SdModule is like to be compared with the <SfxApplication>-subclass.
90cdf0e10cSrcweir |*
91cdf0e10cSrcweir |* Remember: Don`t export this class! It uses DLL-internal symbols.
92cdf0e10cSrcweir |*
93cdf0e10cSrcweir \************************************************************************/
94cdf0e10cSrcweir 
95cdf0e10cSrcweir class SdModule : public SfxModule, public SfxListener
96cdf0e10cSrcweir {
97cdf0e10cSrcweir public:
98cdf0e10cSrcweir 
99cdf0e10cSrcweir                             TYPEINFO();
100cdf0e10cSrcweir                             SFX_DECL_INTERFACE(SD_IF_SDAPP)
101cdf0e10cSrcweir                             DECL_LINK( CalcFieldValueHdl, EditFieldInfo* );
102cdf0e10cSrcweir 
103cdf0e10cSrcweir                             SdModule(SfxObjectFactory* pDrawObjFact, SfxObjectFactory* pGraphicObjFact);
104cdf0e10cSrcweir     virtual                 ~SdModule();
105cdf0e10cSrcweir 
106cdf0e10cSrcweir     SdTransferable*         pTransferClip;
107cdf0e10cSrcweir     SdTransferable*         pTransferDrag;
108cdf0e10cSrcweir     SdTransferable*         pTransferSelection;
109cdf0e10cSrcweir 
110cdf0e10cSrcweir     void                    Execute(SfxRequest& rReq);
111cdf0e10cSrcweir     void                    GetState(SfxItemSet&);
112cdf0e10cSrcweir 
113cdf0e10cSrcweir     SdOptions*              GetSdOptions(DocumentType eDocType);
114cdf0e10cSrcweir     SD_DLLPUBLIC SvStorageStreamRef     GetOptionStream( const String& rOptionName, SdOptionStreamMode eMode );
115cdf0e10cSrcweir 
GetWaterCan() const116cdf0e10cSrcweir     sal_Bool                    GetWaterCan() const { return bWaterCan; }
SetWaterCan(sal_Bool bWC)117cdf0e10cSrcweir     void                    SetWaterCan( sal_Bool bWC ) { bWaterCan = bWC; }
118cdf0e10cSrcweir 
GetSearchItem()119cdf0e10cSrcweir     SvxSearchItem*          GetSearchItem() { return (pSearchItem); }
SetSearchItem(SvxSearchItem * pItem)120cdf0e10cSrcweir     void                    SetSearchItem(SvxSearchItem* pItem) { pSearchItem = pItem; }
121cdf0e10cSrcweir 
122cdf0e10cSrcweir     /** Return the virtual device that can be used for printer independent
123cdf0e10cSrcweir         layout.
124cdf0e10cSrcweir         @return
125cdf0e10cSrcweir             The returned pointer is NULL when the device could not be
126cdf0e10cSrcweir             created when this modules was instantiated.
127cdf0e10cSrcweir     */
128cdf0e10cSrcweir     OutputDevice* GetVirtualRefDevice (void);
129cdf0e10cSrcweir 
130cdf0e10cSrcweir     /** Deprecated alias to <member>GetVirtualRefDevice</member>.
131cdf0e10cSrcweir         @param rDocShell
132cdf0e10cSrcweir             Unused dummy parameter.
133cdf0e10cSrcweir     */
134cdf0e10cSrcweir     OutputDevice* GetRefDevice (::sd::DrawDocShell& rDocShell);
135cdf0e10cSrcweir 
136cdf0e10cSrcweir     SD_DLLPUBLIC SvNumberFormatter*     GetNumberFormatter();
137cdf0e10cSrcweir 
138cdf0e10cSrcweir     //virtuelle Methoden fuer den Optionendialog
139cdf0e10cSrcweir     virtual SfxItemSet*  CreateItemSet( sal_uInt16 nId );
140cdf0e10cSrcweir     virtual void         ApplyItemSet( sal_uInt16 nId, const SfxItemSet& rSet );
141cdf0e10cSrcweir     virtual SfxTabPage*  CreateTabPage( sal_uInt16 nId, Window* pParent, const SfxItemSet& rSet );
142cdf0e10cSrcweir 
143cdf0e10cSrcweir protected:
144cdf0e10cSrcweir 
145cdf0e10cSrcweir     SdOptions*              pImpressOptions;
146cdf0e10cSrcweir     SdOptions*              pDrawOptions;
147cdf0e10cSrcweir     SvxSearchItem*          pSearchItem;
148cdf0e10cSrcweir     SvNumberFormatter*      pNumberFormatter;
149cdf0e10cSrcweir     SvStorageRef            xOptionStorage;
150cdf0e10cSrcweir     sal_Bool                    bAutoSave;
151cdf0e10cSrcweir     sal_Bool                    bWaterCan;
152cdf0e10cSrcweir     SfxErrorHandler*        mpErrorHdl;
153cdf0e10cSrcweir     /** This device is used for printer independent layout.  It is virtual
154cdf0e10cSrcweir         in the sense that it does not represent a printer.  The pointer may
155cdf0e10cSrcweir         be NULL when the virtual device could not be created.
156cdf0e10cSrcweir     */
157cdf0e10cSrcweir     OutputDevice*           mpVirtualRefDevice;
158cdf0e10cSrcweir 
159cdf0e10cSrcweir     virtual void            Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
160cdf0e10cSrcweir 
161cdf0e10cSrcweir private:
162cdf0e10cSrcweir     SfxFrame* ExecuteNewDocument( SfxRequest& rReq );
163cdf0e10cSrcweir 
164cdf0e10cSrcweir     static void ChangeMedium( ::sd::DrawDocShell* pDocShell, SfxViewFrame* pViewFrame, const sal_Int32 eMedium );
165cdf0e10cSrcweir     static SfxFrame* CreateEmptyDocument( DocumentType eDocType, const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& i_rFrame );
166cdf0e10cSrcweir     static SfxFrame* CreateFromTemplate( const String& rTemplatePath, const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& i_rFrame );
167cdf0e10cSrcweir 
168cdf0e10cSrcweir     /** The resource container controls the lifetime of some singletons.
169cdf0e10cSrcweir     */
170cdf0e10cSrcweir     ::std::auto_ptr< ::sd::SdGlobalResourceContainer> mpResourceContainer;
171cdf0e10cSrcweir 
172cdf0e10cSrcweir     /** Create a new summary page.  When the document has been created in
173cdf0e10cSrcweir         the kiosk mode with automatical transitions then this method adds
174cdf0e10cSrcweir         this kind of transition to the new summary page.
175cdf0e10cSrcweir         @param pViewFrame
176cdf0e10cSrcweir             The view frame that is used to execute the slot for creating the
177cdf0e10cSrcweir             summary page.
178cdf0e10cSrcweir         @param pDocument
179cdf0e10cSrcweir             The document which will contain the summary page and from which
180cdf0e10cSrcweir             the information about the default transition is retrieved.
181cdf0e10cSrcweir     */
182cdf0e10cSrcweir     void AddSummaryPage (SfxViewFrame* pViewFrame, SdDrawDocument* pDocument);
183cdf0e10cSrcweir 
184cdf0e10cSrcweir     /** Take an outline from a text document and create a new impress
185cdf0e10cSrcweir         document according to the structure of the outline.
186cdf0e10cSrcweir         @param rRequest
187cdf0e10cSrcweir             This typically is the unmodified request from a execute()
188cdf0e10cSrcweir             function from where this function is called.
189cdf0e10cSrcweir     */
190cdf0e10cSrcweir     void OutlineToImpress (SfxRequest& rRequest);
191cdf0e10cSrcweir 
192cdf0e10cSrcweir     /** Add an eventlistener as soon as possible in sd, allows to use
193cdf0e10cSrcweir         remote devices to start the slideshow elegantly, and respecting
194cdf0e10cSrcweir         portability
195cdf0e10cSrcweir         @EventListenerHdl
196cdf0e10cSrcweir             The event listener handler
197cdf0e10cSrcweir         @VclSimpleEvent *
198cdf0e10cSrcweir             a poiter to a VCLSimpleEvent (see vcl/vclevent.hxx )
199cdf0e10cSrcweir     */
200cdf0e10cSrcweir     DECL_LINK( EventListenerHdl, VclSimpleEvent* );
201cdf0e10cSrcweir 
202cdf0e10cSrcweir };
203cdf0e10cSrcweir 
204cdf0e10cSrcweir 
205cdf0e10cSrcweir 
206cdf0e10cSrcweir 
207cdf0e10cSrcweir #ifndef SD_MOD
208cdf0e10cSrcweir #define SD_MOD() ( *(SdModule**) GetAppData(SHL_DRAW) )
209cdf0e10cSrcweir #endif
210cdf0e10cSrcweir 
211cdf0e10cSrcweir #endif                                 // _SDMOD_HXX
212cdf0e10cSrcweir 
213