1d119d52dSAndrew Rist /**************************************************************
2cdf0e10cSrcweir *
3d119d52dSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one
4d119d52dSAndrew Rist * or more contributor license agreements. See the NOTICE file
5d119d52dSAndrew Rist * distributed with this work for additional information
6d119d52dSAndrew Rist * regarding copyright ownership. The ASF licenses this file
7d119d52dSAndrew Rist * to you under the Apache License, Version 2.0 (the
8d119d52dSAndrew Rist * "License"); you may not use this file except in compliance
9d119d52dSAndrew Rist * with the License. You may obtain a copy of the License at
10d119d52dSAndrew Rist *
11d119d52dSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0
12d119d52dSAndrew Rist *
13d119d52dSAndrew Rist * Unless required by applicable law or agreed to in writing,
14d119d52dSAndrew Rist * software distributed under the License is distributed on an
15d119d52dSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16d119d52dSAndrew Rist * KIND, either express or implied. See the License for the
17d119d52dSAndrew Rist * specific language governing permissions and limitations
18d119d52dSAndrew Rist * under the License.
19d119d52dSAndrew Rist *
20d119d52dSAndrew Rist *************************************************************/
21d119d52dSAndrew Rist
22d119d52dSAndrew Rist
23cdf0e10cSrcweir
24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
25cdf0e10cSrcweir #include "precompiled_sfx2.hxx"
26cdf0e10cSrcweir #include <sfx2/new.hxx>
27cdf0e10cSrcweir #include <vcl/gdimtf.hxx>
28cdf0e10cSrcweir #include <vcl/msgbox.hxx>
29cdf0e10cSrcweir #include <vcl/morebtn.hxx>
30cdf0e10cSrcweir #include <svtools/svmedit.hxx>
31cdf0e10cSrcweir #include <svl/itemset.hxx>
32cdf0e10cSrcweir #include <svl/eitem.hxx>
33cdf0e10cSrcweir #include <svtools/sfxecode.hxx>
34cdf0e10cSrcweir #include <svtools/ehdl.hxx>
35cdf0e10cSrcweir #include <tools/urlobj.hxx>
36cdf0e10cSrcweir #include <unotools/localfilehelper.hxx>
37cdf0e10cSrcweir
38cdf0e10cSrcweir #include "new.hrc"
39cdf0e10cSrcweir #include "doc.hrc"
40cdf0e10cSrcweir #include <sfx2/sfx.hrc>
41cdf0e10cSrcweir #include "helpid.hrc"
42cdf0e10cSrcweir #include "sfxtypes.hxx"
43cdf0e10cSrcweir #include <sfx2/app.hxx>
44cdf0e10cSrcweir #include <sfx2/viewfrm.hxx>
45cdf0e10cSrcweir #include <sfx2/docfac.hxx>
46cdf0e10cSrcweir #include <sfx2/objsh.hxx>
47cdf0e10cSrcweir #include "fltfnc.hxx"
48cdf0e10cSrcweir #include <sfx2/viewsh.hxx>
49cdf0e10cSrcweir #include "sfx2/viewfac.hxx"
50cdf0e10cSrcweir #include "sfx2/sfxresid.hxx"
51cdf0e10cSrcweir #include <sfx2/docfile.hxx>
52cdf0e10cSrcweir #include "preview.hxx"
53cdf0e10cSrcweir #include <sfx2/printer.hxx>
54cdf0e10cSrcweir #include <vcl/waitobj.hxx>
55cdf0e10cSrcweir #include <vcl/virdev.hxx>
56cdf0e10cSrcweir #include <vcl/jobset.hxx>
57cdf0e10cSrcweir #include <svtools/accessibilityoptions.hxx>
58cdf0e10cSrcweir
59cdf0e10cSrcweir // Draw modes
60cdf0e10cSrcweir #define OUTPUT_DRAWMODE_COLOR (DRAWMODE_DEFAULT)
61cdf0e10cSrcweir #define OUTPUT_DRAWMODE_GRAYSCALE (DRAWMODE_GRAYLINE | DRAWMODE_GRAYFILL | DRAWMODE_BLACKTEXT | DRAWMODE_GRAYBITMAP | DRAWMODE_GRAYGRADIENT)
62cdf0e10cSrcweir #define OUTPUT_DRAWMODE_BLACKWHITE (DRAWMODE_BLACKLINE | DRAWMODE_BLACKTEXT | DRAWMODE_WHITEFILL | DRAWMODE_GRAYBITMAP | DRAWMODE_WHITEGRADIENT)
63cdf0e10cSrcweir #define OUTPUT_DRAWMODE_CONTRAST (DRAWMODE_SETTINGSLINE | DRAWMODE_SETTINGSFILL | DRAWMODE_SETTINGSTEXT | DRAWMODE_SETTINGSGRADIENT)
64cdf0e10cSrcweir
65cdf0e10cSrcweir //========================================================================
66cdf0e10cSrcweir
67cdf0e10cSrcweir #define MORE_BTN(x) pMoreBt->x
68cdf0e10cSrcweir
69cdf0e10cSrcweir //========================================================================
70cdf0e10cSrcweir
SetObjectShell(SfxObjectShell * pObj)71cdf0e10cSrcweir void SfxPreviewBase_Impl::SetObjectShell( SfxObjectShell* pObj )
72cdf0e10cSrcweir {
73cdf0e10cSrcweir ::boost::shared_ptr<GDIMetaFile> pFile = pObj
74cdf0e10cSrcweir ? pObj->GetPreviewMetaFile()
75cdf0e10cSrcweir : ::boost::shared_ptr<GDIMetaFile>();
76cdf0e10cSrcweir pMetaFile = pFile;
77cdf0e10cSrcweir Invalidate();
78cdf0e10cSrcweir }
79cdf0e10cSrcweir
SfxPreviewBase_Impl(Window * pParent,const ResId & rResId)80cdf0e10cSrcweir SfxPreviewBase_Impl::SfxPreviewBase_Impl(
81cdf0e10cSrcweir Window* pParent, const ResId& rResId )
82cdf0e10cSrcweir : Window(pParent, rResId), pMetaFile()
83cdf0e10cSrcweir {
84cdf0e10cSrcweir }
85cdf0e10cSrcweir
SfxPreviewBase_Impl(Window * pParent)86cdf0e10cSrcweir SfxPreviewBase_Impl::SfxPreviewBase_Impl( Window* pParent )
87cdf0e10cSrcweir : Window(pParent, 0 ), pMetaFile()
88cdf0e10cSrcweir {
89cdf0e10cSrcweir Resize();
90cdf0e10cSrcweir Show();
91cdf0e10cSrcweir }
92cdf0e10cSrcweir
~SfxPreviewBase_Impl()93cdf0e10cSrcweir SfxPreviewBase_Impl::~SfxPreviewBase_Impl()
94cdf0e10cSrcweir {
95cdf0e10cSrcweir }
96cdf0e10cSrcweir
Resize()97cdf0e10cSrcweir void SfxPreviewBase_Impl::Resize()
98cdf0e10cSrcweir {
99cdf0e10cSrcweir Invalidate();
100cdf0e10cSrcweir }
101cdf0e10cSrcweir
SetGDIFile(::boost::shared_ptr<GDIMetaFile> pFile)102cdf0e10cSrcweir void SfxPreviewBase_Impl::SetGDIFile( ::boost::shared_ptr<GDIMetaFile> pFile )
103cdf0e10cSrcweir {
104cdf0e10cSrcweir pMetaFile = pFile;
105cdf0e10cSrcweir Invalidate();
106cdf0e10cSrcweir }
107cdf0e10cSrcweir
PreviewFactory(SfxFrame * pFrame,const String &)108cdf0e10cSrcweir SfxFrameWindow* SfxPreviewWin_Impl::PreviewFactory(
109cdf0e10cSrcweir SfxFrame* pFrame, const String& /*rName*/ )
110cdf0e10cSrcweir {
111cdf0e10cSrcweir return new SfxFrameWindow( new SfxPreviewWin_Impl(
112cdf0e10cSrcweir &pFrame->GetCurrentViewFrame()->GetWindow() ) );
113cdf0e10cSrcweir }
114cdf0e10cSrcweir
ImpPaint(const Rectangle &,GDIMetaFile * pFile,Window * pWindow)115cdf0e10cSrcweir void SfxPreviewWin_Impl::ImpPaint(
116cdf0e10cSrcweir const Rectangle&, GDIMetaFile* pFile, Window* pWindow )
117cdf0e10cSrcweir {
118cdf0e10cSrcweir Size aTmpSize = pFile ? pFile->GetPrefSize() : Size(1,1 );
119cdf0e10cSrcweir DBG_ASSERT( aTmpSize.Height()*aTmpSize.Width(),
120cdf0e10cSrcweir "size of first page is 0, overload GetFirstPageSize or set vis-area!" );
121cdf0e10cSrcweir #define FRAME 4
122cdf0e10cSrcweir long nWidth = pWindow->GetOutputSize().Width() - 2*FRAME;
123cdf0e10cSrcweir long nHeight = pWindow->GetOutputSize().Height() - 2*FRAME;
124cdf0e10cSrcweir if( nWidth < 0 ) nWidth = 0;
125cdf0e10cSrcweir if( nHeight < 0 ) nHeight = 0;
126cdf0e10cSrcweir
127cdf0e10cSrcweir double dRatio=((double)aTmpSize.Width())/aTmpSize.Height();
128cdf0e10cSrcweir double dRatioPreV=((double) nWidth ) / nHeight;
129cdf0e10cSrcweir Size aSize;
130cdf0e10cSrcweir Point aPoint;
131cdf0e10cSrcweir if (dRatio>dRatioPreV)
132cdf0e10cSrcweir {
133cdf0e10cSrcweir aSize=Size(nWidth, (sal_uInt16)(nWidth/dRatio));
134cdf0e10cSrcweir aPoint=Point( 0, (sal_uInt16)((nHeight-aSize.Height())/2));
135cdf0e10cSrcweir }
136cdf0e10cSrcweir else
137cdf0e10cSrcweir {
138cdf0e10cSrcweir aSize=Size((sal_uInt16)(nHeight*dRatio), nHeight);
139cdf0e10cSrcweir aPoint=Point((sal_uInt16)((nWidth-aSize.Width())/2),0);
140cdf0e10cSrcweir }
141cdf0e10cSrcweir Point bPoint=Point(nWidth,nHeight)-aPoint;
142cdf0e10cSrcweir
143cdf0e10cSrcweir
144cdf0e10cSrcweir pWindow->SetLineColor();
145cdf0e10cSrcweir Color aLightGrayCol( COL_LIGHTGRAY );
146cdf0e10cSrcweir pWindow->SetFillColor( aLightGrayCol );
147cdf0e10cSrcweir pWindow->DrawRect( Rectangle( Point( 0,0 ), pWindow->GetOutputSize() ) );
148cdf0e10cSrcweir if ( pFile )
149cdf0e10cSrcweir {
150cdf0e10cSrcweir Color aBlackCol( COL_BLACK );
151cdf0e10cSrcweir Color aWhiteCol( COL_WHITE );
152cdf0e10cSrcweir pWindow->SetLineColor( aBlackCol );
153cdf0e10cSrcweir pWindow->SetFillColor( aWhiteCol );
154cdf0e10cSrcweir pWindow->DrawRect( Rectangle( aPoint + Point( FRAME, FRAME ), bPoint + Point( FRAME, FRAME ) ) );
155cdf0e10cSrcweir //! pFile->Move( Point( FRAME, FRAME ) );
156cdf0e10cSrcweir //! pFile->Scale( Fraction( aTmpSize.Width(), aSize.Width() ),
157cdf0e10cSrcweir //! Fraction( aTmpSize.Height(), aSize.Height() ) );
158cdf0e10cSrcweir pFile->WindStart();
159cdf0e10cSrcweir pFile->Play( pWindow, aPoint + Point( FRAME, FRAME ), aSize );
160cdf0e10cSrcweir }
161cdf0e10cSrcweir }
162cdf0e10cSrcweir
Paint(const Rectangle & rRect)163cdf0e10cSrcweir void SfxPreviewWin_Impl::Paint( const Rectangle& rRect )
164cdf0e10cSrcweir {
165cdf0e10cSrcweir ImpPaint( rRect, pMetaFile.get(), this );
166cdf0e10cSrcweir }
167cdf0e10cSrcweir
SfxPreviewWin(Window * pParent,const ResId & rResId,SfxObjectShellLock & rDocSh)168cdf0e10cSrcweir SfxPreviewWin::SfxPreviewWin(
169cdf0e10cSrcweir Window* pParent, const ResId& rResId, SfxObjectShellLock &rDocSh )
170cdf0e10cSrcweir : Window(pParent, rResId), rDocShell( rDocSh )
171cdf0e10cSrcweir {
172cdf0e10cSrcweir SetHelpId( HID_PREVIEW_FRAME );
173cdf0e10cSrcweir
174cdf0e10cSrcweir // adjust contrast mode initially
175cdf0e10cSrcweir bool bUseContrast = UseHighContrastSetting();
176cdf0e10cSrcweir SetDrawMode( bUseContrast ? OUTPUT_DRAWMODE_CONTRAST : OUTPUT_DRAWMODE_COLOR );
177cdf0e10cSrcweir
178cdf0e10cSrcweir // #107818# This preview window is for document previews. Therefore
179cdf0e10cSrcweir // right-to-left mode should be off
180cdf0e10cSrcweir EnableRTL( sal_False );
181cdf0e10cSrcweir }
182cdf0e10cSrcweir
Paint(const Rectangle & rRect)183cdf0e10cSrcweir void SfxPreviewWin::Paint( const Rectangle& rRect )
184cdf0e10cSrcweir {
185cdf0e10cSrcweir SfxViewFrame *pFrame = SfxViewFrame::GetFirst( &rDocShell );
186cdf0e10cSrcweir if ( pFrame && pFrame->GetViewShell() &&
187cdf0e10cSrcweir pFrame->GetViewShell()->GetPrinter() &&
188cdf0e10cSrcweir pFrame->GetViewShell()->GetPrinter()->IsPrinting() )
189cdf0e10cSrcweir {
190cdf0e10cSrcweir return;
191cdf0e10cSrcweir }
192cdf0e10cSrcweir
193cdf0e10cSrcweir Size aTmpSize( rDocShell->GetFirstPageSize() );
194cdf0e10cSrcweir GDIMetaFile aMtf;
195cdf0e10cSrcweir VirtualDevice aDevice;
196cdf0e10cSrcweir
197cdf0e10cSrcweir DBG_ASSERT( aTmpSize.Height() * aTmpSize.Width(), "size of first page is 0, overload GetFirstPageSize or set vis-area!" );
198cdf0e10cSrcweir
199cdf0e10cSrcweir aMtf.SetPrefSize( aTmpSize );
200cdf0e10cSrcweir aDevice.EnableOutput( sal_False );
201cdf0e10cSrcweir aDevice.SetMapMode( rDocShell->GetMapUnit() );
202cdf0e10cSrcweir aDevice.SetDrawMode( GetDrawMode() );
203cdf0e10cSrcweir aMtf.Record( &aDevice );
204cdf0e10cSrcweir rDocShell->DoDraw( &aDevice, Point(0,0), aTmpSize, JobSetup(), ASPECT_THUMBNAIL );
205cdf0e10cSrcweir aMtf.Stop();
206cdf0e10cSrcweir aMtf.WindStart();
207cdf0e10cSrcweir SfxPreviewWin_Impl::ImpPaint( rRect, &aMtf, this );
208cdf0e10cSrcweir }
209cdf0e10cSrcweir
DataChanged(const DataChangedEvent & rDCEvt)210cdf0e10cSrcweir void SfxPreviewWin::DataChanged( const DataChangedEvent& rDCEvt )
211cdf0e10cSrcweir {
212cdf0e10cSrcweir Window::DataChanged( rDCEvt );
213cdf0e10cSrcweir
214cdf0e10cSrcweir if( (rDCEvt.GetType() == DATACHANGED_SETTINGS) &&
215cdf0e10cSrcweir (rDCEvt.GetFlags() & SETTINGS_STYLE) )
216cdf0e10cSrcweir {
217cdf0e10cSrcweir // adjust contrast mode
218cdf0e10cSrcweir bool bUseContrast = UseHighContrastSetting();
219cdf0e10cSrcweir SetDrawMode( bUseContrast ? OUTPUT_DRAWMODE_CONTRAST : OUTPUT_DRAWMODE_COLOR );
220cdf0e10cSrcweir }
221cdf0e10cSrcweir }
222cdf0e10cSrcweir
UseHighContrastSetting() const223cdf0e10cSrcweir bool SfxPreviewWin::UseHighContrastSetting() const
224cdf0e10cSrcweir {
225cdf0e10cSrcweir return GetSettings().GetStyleSettings().GetHighContrastMode();
226cdf0e10cSrcweir }
227cdf0e10cSrcweir
228cdf0e10cSrcweir
229cdf0e10cSrcweir class SfxNewFileDialog_Impl
230cdf0e10cSrcweir {
231cdf0e10cSrcweir FixedText aRegionFt;
232cdf0e10cSrcweir ListBox aRegionLb;
233cdf0e10cSrcweir FixedText aTemplateFt;
234cdf0e10cSrcweir ListBox aTemplateLb;
235cdf0e10cSrcweir
236cdf0e10cSrcweir CheckBox aPreviewBtn;
237cdf0e10cSrcweir SfxPreviewWin_Impl aPreviewWin;
238cdf0e10cSrcweir
239cdf0e10cSrcweir FixedText aTitleFt;
240cdf0e10cSrcweir Edit aTitleEd;
241cdf0e10cSrcweir FixedText aThemaFt;
242cdf0e10cSrcweir Edit aThemaEd;
243cdf0e10cSrcweir FixedText aKeywordsFt;
244cdf0e10cSrcweir Edit aKeywordsEd;
245cdf0e10cSrcweir FixedText aDescFt;
246cdf0e10cSrcweir MultiLineEdit aDescEd;
247cdf0e10cSrcweir FixedLine aDocinfoGb;
248cdf0e10cSrcweir
249cdf0e10cSrcweir CheckBox aTextStyleCB;
250cdf0e10cSrcweir CheckBox aFrameStyleCB;
251cdf0e10cSrcweir CheckBox aPageStyleCB;
252cdf0e10cSrcweir CheckBox aNumStyleCB;
253cdf0e10cSrcweir CheckBox aMergeStyleCB;
254cdf0e10cSrcweir PushButton aLoadFilePB;
255cdf0e10cSrcweir
256cdf0e10cSrcweir OKButton aOkBt;
257cdf0e10cSrcweir CancelButton aCancelBt;
258cdf0e10cSrcweir HelpButton aHelpBt;
259cdf0e10cSrcweir MoreButton* pMoreBt;
260cdf0e10cSrcweir Timer aPrevTimer;
261cdf0e10cSrcweir String aNone;
262cdf0e10cSrcweir String sLoadTemplate;
263cdf0e10cSrcweir
264cdf0e10cSrcweir sal_uInt16 nFlags;
265cdf0e10cSrcweir SfxDocumentTemplates aTemplates;
266cdf0e10cSrcweir SfxObjectShellLock xDocShell;
267cdf0e10cSrcweir SfxNewFileDialog* pAntiImpl;
268cdf0e10cSrcweir
269cdf0e10cSrcweir void ClearInfo();
270cdf0e10cSrcweir DECL_LINK( Update, void * );
271cdf0e10cSrcweir
272cdf0e10cSrcweir DECL_LINK( RegionSelect, ListBox * );
273cdf0e10cSrcweir DECL_LINK( TemplateSelect, ListBox * );
274cdf0e10cSrcweir DECL_LINK( DoubleClick, ListBox * );
275cdf0e10cSrcweir void TogglePreview(CheckBox *);
276cdf0e10cSrcweir DECL_LINK( Expand, MoreButton * );
277cdf0e10cSrcweir DECL_LINK( PreviewClick, CheckBox * );
278cdf0e10cSrcweir DECL_LINK( LoadFile, PushButton* );
279cdf0e10cSrcweir sal_uInt16 GetSelectedTemplatePos() const;
280cdf0e10cSrcweir
281cdf0e10cSrcweir public:
282cdf0e10cSrcweir
283cdf0e10cSrcweir SfxNewFileDialog_Impl( SfxNewFileDialog* pAntiImplP, sal_uInt16 nFlags );
284cdf0e10cSrcweir ~SfxNewFileDialog_Impl();
285cdf0e10cSrcweir
286cdf0e10cSrcweir // Liefert sal_False, wenn '- Keine -' als Vorlage eingestellt ist
287cdf0e10cSrcweir // Nur wenn IsTemplate() sal_True liefert, koennen Vorlagennamen
288cdf0e10cSrcweir // erfragt werden
289cdf0e10cSrcweir sal_Bool IsTemplate() const;
290cdf0e10cSrcweir String GetTemplateRegion() const;
291cdf0e10cSrcweir String GetTemplateName() const;
292cdf0e10cSrcweir String GetTemplateFileName() const;
293cdf0e10cSrcweir
294cdf0e10cSrcweir sal_uInt16 GetTemplateFlags()const;
295cdf0e10cSrcweir void SetTemplateFlags(sal_uInt16 nSet);
296cdf0e10cSrcweir };
297cdf0e10cSrcweir
298cdf0e10cSrcweir
299cdf0e10cSrcweir //-------------------------------------------------------------------------
300cdf0e10cSrcweir
ClearInfo()301cdf0e10cSrcweir void SfxNewFileDialog_Impl::ClearInfo()
302cdf0e10cSrcweir {
303cdf0e10cSrcweir const String aNo;
304cdf0e10cSrcweir aTitleEd.SetText(aNo);
305cdf0e10cSrcweir aThemaEd.SetText(aNo);
306cdf0e10cSrcweir aKeywordsEd.SetText(aNo);
307cdf0e10cSrcweir aDescEd.SetText(aNo);
308cdf0e10cSrcweir }
309cdf0e10cSrcweir
310cdf0e10cSrcweir //-------------------------------------------------------------------------
311cdf0e10cSrcweir
IMPL_LINK(SfxNewFileDialog_Impl,Update,void *,EMPTYARG)312cdf0e10cSrcweir IMPL_LINK( SfxNewFileDialog_Impl, Update, void *, EMPTYARG )
313cdf0e10cSrcweir {
314cdf0e10cSrcweir if ( xDocShell.Is() )
315cdf0e10cSrcweir {
316cdf0e10cSrcweir if ( xDocShell->GetProgress() )
317cdf0e10cSrcweir return sal_False;
318cdf0e10cSrcweir xDocShell.Clear();
319cdf0e10cSrcweir }
320cdf0e10cSrcweir
321cdf0e10cSrcweir const sal_uInt16 nEntry = GetSelectedTemplatePos();
322cdf0e10cSrcweir if(!nEntry)
323cdf0e10cSrcweir {
324cdf0e10cSrcweir ClearInfo();
325cdf0e10cSrcweir aPreviewWin.Invalidate();
326cdf0e10cSrcweir aPreviewWin.SetObjectShell( 0);
327cdf0e10cSrcweir return 0;
328cdf0e10cSrcweir }
329cdf0e10cSrcweir
330cdf0e10cSrcweir if ( aPreviewBtn.IsChecked() && (nFlags & SFXWB_PREVIEW) == SFXWB_PREVIEW)
331cdf0e10cSrcweir {
332cdf0e10cSrcweir
333cdf0e10cSrcweir String aFileName = aTemplates.GetPath( aRegionLb.GetSelectEntryPos(), nEntry-1);
334cdf0e10cSrcweir INetURLObject aTestObj( aFileName );
335cdf0e10cSrcweir if( aTestObj.GetProtocol() == INET_PROT_NOT_VALID )
336cdf0e10cSrcweir {
337cdf0e10cSrcweir // temp. fix until Templates are managed by UCB compatible service
338cdf0e10cSrcweir // does NOT work with locally cached components !
339cdf0e10cSrcweir String aTemp;
340cdf0e10cSrcweir utl::LocalFileHelper::ConvertPhysicalNameToURL( aFileName, aTemp );
341cdf0e10cSrcweir aFileName = aTemp;
342cdf0e10cSrcweir }
343cdf0e10cSrcweir
344cdf0e10cSrcweir INetURLObject aObj( aFileName );
345cdf0e10cSrcweir for ( SfxObjectShell* pTmp = SfxObjectShell::GetFirst();
346cdf0e10cSrcweir pTmp;
347cdf0e10cSrcweir pTmp = SfxObjectShell::GetNext(*pTmp) )
348cdf0e10cSrcweir {
349cdf0e10cSrcweir //! fsys bug op==
350cdf0e10cSrcweir if ( pTmp->GetMedium())
351cdf0e10cSrcweir // ??? HasName() MM
352cdf0e10cSrcweir if( INetURLObject( pTmp->GetMedium()->GetName() ) == aObj )
353cdf0e10cSrcweir {
354cdf0e10cSrcweir xDocShell = pTmp;
355cdf0e10cSrcweir break;
356cdf0e10cSrcweir }
357cdf0e10cSrcweir }
358cdf0e10cSrcweir
359cdf0e10cSrcweir if ( !xDocShell.Is() )
360cdf0e10cSrcweir {
361cdf0e10cSrcweir Window *pParent = Application::GetDefDialogParent();
362cdf0e10cSrcweir Application::SetDefDialogParent( pAntiImpl );
363cdf0e10cSrcweir SfxErrorContext eEC(ERRCTX_SFX_LOADTEMPLATE,pAntiImpl);
364cdf0e10cSrcweir SfxApplication *pSfxApp = SFX_APP();
365cdf0e10cSrcweir sal_uIntPtr lErr;
366cdf0e10cSrcweir SfxItemSet* pSet = new SfxAllItemSet( pSfxApp->GetPool() );
367cdf0e10cSrcweir pSet->Put( SfxBoolItem( SID_TEMPLATE, sal_True ) );
368cdf0e10cSrcweir pSet->Put( SfxBoolItem( SID_PREVIEW, sal_True ) );
369cdf0e10cSrcweir lErr = pSfxApp->LoadTemplate( xDocShell, aFileName, sal_True, pSet );
370cdf0e10cSrcweir if( lErr )
371cdf0e10cSrcweir ErrorHandler::HandleError(lErr);
372cdf0e10cSrcweir Application::SetDefDialogParent( pParent );
373cdf0e10cSrcweir if ( !xDocShell.Is() )
374cdf0e10cSrcweir {
375cdf0e10cSrcweir aPreviewWin.SetObjectShell( 0 );
376cdf0e10cSrcweir return sal_False;
377cdf0e10cSrcweir }
378cdf0e10cSrcweir }
379cdf0e10cSrcweir
380cdf0e10cSrcweir aPreviewWin.SetObjectShell( xDocShell );
381cdf0e10cSrcweir }
382cdf0e10cSrcweir return sal_True;
383cdf0e10cSrcweir }
384cdf0e10cSrcweir
385cdf0e10cSrcweir //-------------------------------------------------------------------------
386cdf0e10cSrcweir
IMPL_LINK(SfxNewFileDialog_Impl,RegionSelect,ListBox *,pBox)387cdf0e10cSrcweir IMPL_LINK( SfxNewFileDialog_Impl, RegionSelect, ListBox *, pBox )
388cdf0e10cSrcweir {
389cdf0e10cSrcweir if ( xDocShell.Is() && xDocShell->GetProgress() )
390cdf0e10cSrcweir return 0;
391cdf0e10cSrcweir
392cdf0e10cSrcweir const sal_uInt16 nRegion = pBox->GetSelectEntryPos();
393cdf0e10cSrcweir const sal_uInt16 nCount = aTemplates.GetRegionCount()? aTemplates.GetCount(nRegion): 0;
394cdf0e10cSrcweir aTemplateLb.SetUpdateMode(sal_False);
395cdf0e10cSrcweir aTemplateLb.Clear();
396cdf0e10cSrcweir String aSel=aRegionLb.GetSelectEntry();
397cdf0e10cSrcweir sal_uInt16 nc=aSel.Search('(');
398cdf0e10cSrcweir if (nc-1&&nc!=STRING_NOTFOUND)
399cdf0e10cSrcweir aSel.Erase(nc-1);
400cdf0e10cSrcweir if (aSel.CompareIgnoreCaseToAscii( String(SfxResId(STR_STANDARD)) )==COMPARE_EQUAL)
401cdf0e10cSrcweir aTemplateLb.InsertEntry(aNone);
402cdf0e10cSrcweir for (sal_uInt16 i = 0; i < nCount; ++i)
403cdf0e10cSrcweir aTemplateLb.InsertEntry(aTemplates.GetName(nRegion, i));
404cdf0e10cSrcweir aTemplateLb.SelectEntryPos(0);
405cdf0e10cSrcweir aTemplateLb.SetUpdateMode(sal_True);
406cdf0e10cSrcweir aTemplateLb.Invalidate();
407cdf0e10cSrcweir aTemplateLb.Update();
408cdf0e10cSrcweir return 0;
409cdf0e10cSrcweir }
410cdf0e10cSrcweir
411cdf0e10cSrcweir //-------------------------------------------------------------------------
412cdf0e10cSrcweir
IMPL_LINK_INLINE_START(SfxNewFileDialog_Impl,Expand,MoreButton *,EMPTYARG)413cdf0e10cSrcweir IMPL_LINK_INLINE_START( SfxNewFileDialog_Impl, Expand, MoreButton *, EMPTYARG )
414cdf0e10cSrcweir {
415cdf0e10cSrcweir TemplateSelect(&aTemplateLb);
416cdf0e10cSrcweir return 0;
417cdf0e10cSrcweir }
IMPL_LINK_INLINE_END(SfxNewFileDialog_Impl,Expand,MoreButton *,pMoreButton)418cdf0e10cSrcweir IMPL_LINK_INLINE_END( SfxNewFileDialog_Impl, Expand, MoreButton *, pMoreButton )
419cdf0e10cSrcweir
420cdf0e10cSrcweir //-------------------------------------------------------------------------
421cdf0e10cSrcweir
422cdf0e10cSrcweir IMPL_LINK( SfxNewFileDialog_Impl, PreviewClick, CheckBox *, pBox )
423cdf0e10cSrcweir {
424cdf0e10cSrcweir if ( xDocShell.Is() && xDocShell->GetProgress() )
425cdf0e10cSrcweir return 0;
426cdf0e10cSrcweir
427cdf0e10cSrcweir sal_uInt16 nEntry = GetSelectedTemplatePos();
428cdf0e10cSrcweir if ( nEntry && pBox->IsChecked() )
429cdf0e10cSrcweir {
430cdf0e10cSrcweir if(!Update(0))
431cdf0e10cSrcweir aPreviewWin.Invalidate();
432cdf0e10cSrcweir }
433cdf0e10cSrcweir else
434cdf0e10cSrcweir {
435cdf0e10cSrcweir if (xDocShell.Is())
436cdf0e10cSrcweir xDocShell.Clear();
437cdf0e10cSrcweir aPreviewWin.SetObjectShell( 0 );
438cdf0e10cSrcweir }
439cdf0e10cSrcweir return 0;
440cdf0e10cSrcweir }
441cdf0e10cSrcweir
442cdf0e10cSrcweir //-------------------------------------------------------------------------
443cdf0e10cSrcweir
IMPL_LINK(SfxNewFileDialog_Impl,TemplateSelect,ListBox *,EMPTYARG)444cdf0e10cSrcweir IMPL_LINK( SfxNewFileDialog_Impl, TemplateSelect, ListBox *, EMPTYARG )
445cdf0e10cSrcweir {
446cdf0e10cSrcweir // noch am Laden
447cdf0e10cSrcweir if ( xDocShell && xDocShell->GetProgress() )
448cdf0e10cSrcweir return 0;
449cdf0e10cSrcweir
450cdf0e10cSrcweir if ( !MORE_BTN(GetState()) )
451cdf0e10cSrcweir // Dialog nicht aufgeklappt
452cdf0e10cSrcweir return 0;
453*08de2c23SAndre Fischer if ( aPreviewBtn.IsChecked() )
454*08de2c23SAndre Fischer aPrevTimer.Start();
455cdf0e10cSrcweir return 0;
456cdf0e10cSrcweir }
457cdf0e10cSrcweir
458cdf0e10cSrcweir //-------------------------------------------------------------------------
459cdf0e10cSrcweir
IMPL_LINK_INLINE_START(SfxNewFileDialog_Impl,DoubleClick,ListBox *,pListBox)460cdf0e10cSrcweir IMPL_LINK_INLINE_START( SfxNewFileDialog_Impl, DoubleClick, ListBox *, pListBox )
461cdf0e10cSrcweir {
462cdf0e10cSrcweir (void)pListBox;
463cdf0e10cSrcweir // noch am Laden
464cdf0e10cSrcweir if ( !xDocShell.Is() || !xDocShell->GetProgress() )
465cdf0e10cSrcweir pAntiImpl->EndDialog(RET_OK);
466cdf0e10cSrcweir return 0;
467cdf0e10cSrcweir }
IMPL_LINK_INLINE_END(SfxNewFileDialog_Impl,DoubleClick,ListBox *,pListBox)468cdf0e10cSrcweir IMPL_LINK_INLINE_END( SfxNewFileDialog_Impl, DoubleClick, ListBox *, pListBox )
469cdf0e10cSrcweir
470cdf0e10cSrcweir //-------------------------------------------------------------------------
471cdf0e10cSrcweir
472cdf0e10cSrcweir IMPL_LINK_INLINE_START( SfxNewFileDialog_Impl, LoadFile, PushButton *, EMPTYARG )
473cdf0e10cSrcweir {
474cdf0e10cSrcweir pAntiImpl->EndDialog(RET_TEMPLATE_LOAD);
475cdf0e10cSrcweir return 0;
476cdf0e10cSrcweir }
IMPL_LINK_INLINE_END(SfxNewFileDialog_Impl,LoadFile,PushButton *,EMPTYARG)477cdf0e10cSrcweir IMPL_LINK_INLINE_END( SfxNewFileDialog_Impl, LoadFile, PushButton *, EMPTYARG )
478cdf0e10cSrcweir //-------------------------------------------------------------------------
479cdf0e10cSrcweir
480cdf0e10cSrcweir sal_uInt16 SfxNewFileDialog_Impl::GetSelectedTemplatePos() const
481cdf0e10cSrcweir {
482cdf0e10cSrcweir sal_uInt16 nEntry=aTemplateLb.GetSelectEntryPos();
483cdf0e10cSrcweir String aSel=aRegionLb.GetSelectEntry().Copy();
484cdf0e10cSrcweir sal_uInt16 nc=aSel.Search('(');
485cdf0e10cSrcweir if (nc-1&&nc!=STRING_NOTFOUND)
486cdf0e10cSrcweir aSel.Erase(nc-1);
487cdf0e10cSrcweir if (aSel.CompareIgnoreCaseToAscii(String(SfxResId(STR_STANDARD)))!=COMPARE_EQUAL)
488cdf0e10cSrcweir nEntry++;
489cdf0e10cSrcweir if (!aTemplateLb.GetSelectEntryCount())
490cdf0e10cSrcweir nEntry=0;
491cdf0e10cSrcweir return nEntry;
492cdf0e10cSrcweir }
493cdf0e10cSrcweir
494cdf0e10cSrcweir //-------------------------------------------------------------------------
495cdf0e10cSrcweir
IsTemplate() const496cdf0e10cSrcweir sal_Bool SfxNewFileDialog_Impl::IsTemplate() const
497cdf0e10cSrcweir {
498cdf0e10cSrcweir return GetSelectedTemplatePos()!=0;
499cdf0e10cSrcweir
500cdf0e10cSrcweir }
501cdf0e10cSrcweir
502cdf0e10cSrcweir //-------------------------------------------------------------------------
503cdf0e10cSrcweir
GetTemplateFileName() const504cdf0e10cSrcweir String SfxNewFileDialog_Impl::GetTemplateFileName() const
505cdf0e10cSrcweir {
506cdf0e10cSrcweir if(!IsTemplate() || !aTemplates.GetRegionCount())
507cdf0e10cSrcweir return String();
508cdf0e10cSrcweir return aTemplates.GetPath(aRegionLb.GetSelectEntryPos(),
509cdf0e10cSrcweir GetSelectedTemplatePos()-1);
510cdf0e10cSrcweir }
511cdf0e10cSrcweir
512cdf0e10cSrcweir //-------------------------------------------------------------------------
513cdf0e10cSrcweir
GetTemplateRegion() const514cdf0e10cSrcweir String SfxNewFileDialog_Impl::GetTemplateRegion() const
515cdf0e10cSrcweir {
516cdf0e10cSrcweir if(!IsTemplate() || !aTemplates.GetRegionCount())
517cdf0e10cSrcweir return String();
518cdf0e10cSrcweir return aRegionLb.GetSelectEntry();
519cdf0e10cSrcweir }
520cdf0e10cSrcweir
521cdf0e10cSrcweir //-------------------------------------------------------------------------
522cdf0e10cSrcweir
GetTemplateName() const523cdf0e10cSrcweir String SfxNewFileDialog_Impl::GetTemplateName() const
524cdf0e10cSrcweir {
525cdf0e10cSrcweir if(!IsTemplate() || !aTemplates.GetRegionCount())
526cdf0e10cSrcweir return String();
527cdf0e10cSrcweir return aTemplateLb.GetSelectEntry();
528cdf0e10cSrcweir }
529cdf0e10cSrcweir
530cdf0e10cSrcweir //-------------------------------------------------------------------------
531cdf0e10cSrcweir
AdjustPosSize_Impl(Window * pWin,short nMoveOffset,short nSizeOffset)532cdf0e10cSrcweir void AdjustPosSize_Impl(Window *pWin, short nMoveOffset, short nSizeOffset)
533cdf0e10cSrcweir {
534cdf0e10cSrcweir Point aPos(pWin->GetPosPixel());
535cdf0e10cSrcweir Size aSize(pWin->GetSizePixel());
536cdf0e10cSrcweir aPos.X() -= nMoveOffset;
537cdf0e10cSrcweir aSize.Width() += nSizeOffset;
538cdf0e10cSrcweir pWin->SetPosSizePixel(aPos, aSize);
539cdf0e10cSrcweir }
540cdf0e10cSrcweir //-------------------------------------------------------------------------
GetTemplateFlags() const541cdf0e10cSrcweir sal_uInt16 SfxNewFileDialog_Impl::GetTemplateFlags()const
542cdf0e10cSrcweir {
543cdf0e10cSrcweir sal_uInt16 nRet = aTextStyleCB.IsChecked() ? SFX_LOAD_TEXT_STYLES : 0;
544cdf0e10cSrcweir if(aFrameStyleCB.IsChecked())
545cdf0e10cSrcweir nRet |= SFX_LOAD_FRAME_STYLES;
546cdf0e10cSrcweir if(aPageStyleCB.IsChecked())
547cdf0e10cSrcweir nRet |= SFX_LOAD_PAGE_STYLES;
548cdf0e10cSrcweir if(aNumStyleCB.IsChecked())
549cdf0e10cSrcweir nRet |= SFX_LOAD_NUM_STYLES;
550cdf0e10cSrcweir if(aMergeStyleCB.IsChecked())
551cdf0e10cSrcweir nRet |= SFX_MERGE_STYLES;
552cdf0e10cSrcweir return nRet;
553cdf0e10cSrcweir }
554cdf0e10cSrcweir //-------------------------------------------------------------------------
SetTemplateFlags(sal_uInt16 nSet)555cdf0e10cSrcweir void SfxNewFileDialog_Impl::SetTemplateFlags(sal_uInt16 nSet)
556cdf0e10cSrcweir {
557cdf0e10cSrcweir aTextStyleCB.Check( 0 != (nSet&SFX_LOAD_TEXT_STYLES ));
558cdf0e10cSrcweir aFrameStyleCB.Check( 0 != (nSet&SFX_LOAD_FRAME_STYLES));
559cdf0e10cSrcweir aPageStyleCB.Check( 0 != (nSet&SFX_LOAD_PAGE_STYLES ));
560cdf0e10cSrcweir aNumStyleCB.Check( 0 != (nSet&SFX_LOAD_NUM_STYLES ));
561cdf0e10cSrcweir aMergeStyleCB.Check( 0 != (nSet&SFX_MERGE_STYLES ));
562cdf0e10cSrcweir }
563cdf0e10cSrcweir
564cdf0e10cSrcweir //-------------------------------------------------------------------------
565cdf0e10cSrcweir
SfxNewFileDialog_Impl(SfxNewFileDialog * pAntiImplP,sal_uInt16 nFl)566cdf0e10cSrcweir SfxNewFileDialog_Impl::SfxNewFileDialog_Impl(
567cdf0e10cSrcweir SfxNewFileDialog* pAntiImplP, sal_uInt16 nFl)
568cdf0e10cSrcweir : aRegionFt( pAntiImplP, SfxResId( FT_REGION ) ),
569cdf0e10cSrcweir aRegionLb( pAntiImplP, SfxResId( LB_REGION ) ),
570cdf0e10cSrcweir aTemplateFt( pAntiImplP, SfxResId( FT_TEMPLATE ) ),
571cdf0e10cSrcweir aTemplateLb( pAntiImplP, SfxResId( LB_TEMPLATE ) ),
572cdf0e10cSrcweir aPreviewBtn( pAntiImplP, SfxResId( BTN_PREVIEW ) ),
573cdf0e10cSrcweir aPreviewWin( pAntiImplP, SfxResId( WIN_PREVIEW ) ),
574cdf0e10cSrcweir aTitleFt( pAntiImplP, SfxResId( FT_TITLE ) ),
575cdf0e10cSrcweir aTitleEd( pAntiImplP, SfxResId( ED_TITLE ) ),
576cdf0e10cSrcweir aThemaFt( pAntiImplP, SfxResId( FT_THEMA ) ),
577cdf0e10cSrcweir aThemaEd( pAntiImplP, SfxResId( ED_THEMA ) ),
578cdf0e10cSrcweir aKeywordsFt( pAntiImplP, SfxResId( FT_KEYWORDS ) ),
579cdf0e10cSrcweir aKeywordsEd( pAntiImplP, SfxResId( ED_KEYWORDS ) ),
580cdf0e10cSrcweir aDescFt( pAntiImplP, SfxResId( FT_DESC ) ),
581cdf0e10cSrcweir aDescEd( pAntiImplP, SfxResId( ED_DESC ) ),
582cdf0e10cSrcweir aDocinfoGb( pAntiImplP, SfxResId( GB_DOCINFO ) ),
583cdf0e10cSrcweir aTextStyleCB( pAntiImplP, SfxResId( CB_TEXT_STYLE )),
584cdf0e10cSrcweir aFrameStyleCB( pAntiImplP, SfxResId( CB_FRAME_STYLE )),
585cdf0e10cSrcweir aPageStyleCB( pAntiImplP, SfxResId( CB_PAGE_STYLE )),
586cdf0e10cSrcweir aNumStyleCB( pAntiImplP, SfxResId( CB_NUM_STYLE )),
587cdf0e10cSrcweir aMergeStyleCB( pAntiImplP, SfxResId( CB_MERGE_STYLE )),
588cdf0e10cSrcweir aLoadFilePB( pAntiImplP, SfxResId( PB_LOAD_FILE )),
589cdf0e10cSrcweir aOkBt( pAntiImplP, SfxResId( BT_OK ) ),
590cdf0e10cSrcweir aCancelBt( pAntiImplP, SfxResId( BT_CANCEL ) ),
591cdf0e10cSrcweir aHelpBt( pAntiImplP, SfxResId( BT_HELP ) ),
592cdf0e10cSrcweir pMoreBt( new MoreButton( pAntiImplP, SfxResId( BT_MORE ) ) ),
593cdf0e10cSrcweir aNone( SfxResId(STR_NONE) ),
594cdf0e10cSrcweir sLoadTemplate( SfxResId(STR_LOAD_TEMPLATE)),
595cdf0e10cSrcweir nFlags(nFl),
596cdf0e10cSrcweir pAntiImpl( pAntiImplP )
597cdf0e10cSrcweir {
598cdf0e10cSrcweir short nMoveOffset = *(short *)pAntiImplP->GetClassRes();
599cdf0e10cSrcweir pAntiImplP->IncrementRes(sizeof(short));
600cdf0e10cSrcweir short nExpandSize= *(short *)pAntiImplP->GetClassRes();
601cdf0e10cSrcweir pAntiImplP->IncrementRes(sizeof(short));
602cdf0e10cSrcweir pAntiImplP->FreeResource();
603cdf0e10cSrcweir
604cdf0e10cSrcweir if (!nFlags)
605cdf0e10cSrcweir MORE_BTN(Hide());
606cdf0e10cSrcweir else if(SFXWB_LOAD_TEMPLATE == nFlags)
607cdf0e10cSrcweir {
608cdf0e10cSrcweir aLoadFilePB.SetClickHdl(LINK(this, SfxNewFileDialog_Impl, LoadFile));
609cdf0e10cSrcweir aLoadFilePB.Show();
610cdf0e10cSrcweir aTextStyleCB.Show();
611cdf0e10cSrcweir aFrameStyleCB.Show();
612cdf0e10cSrcweir aPageStyleCB.Show();
613cdf0e10cSrcweir aNumStyleCB.Show();
614cdf0e10cSrcweir aMergeStyleCB.Show();
615cdf0e10cSrcweir Size aSize(pAntiImplP->GetOutputSizePixel());
616cdf0e10cSrcweir Size aTmp(pAntiImplP->LogicToPixel(Size(16, 16), MAP_APPFONT));
617cdf0e10cSrcweir aSize.Height() += aTmp.Height();
618cdf0e10cSrcweir pAntiImplP->SetOutputSizePixel(aSize);
619cdf0e10cSrcweir pMoreBt->Hide();
620cdf0e10cSrcweir aTextStyleCB.Check();
621cdf0e10cSrcweir pAntiImplP->SetText(sLoadTemplate);
622cdf0e10cSrcweir }
623cdf0e10cSrcweir else
624cdf0e10cSrcweir {
625cdf0e10cSrcweir MORE_BTN(SetClickHdl(LINK(this, SfxNewFileDialog_Impl, Expand)));
626cdf0e10cSrcweir if((nFlags & SFXWB_PREVIEW) == SFXWB_PREVIEW)
627cdf0e10cSrcweir {
628cdf0e10cSrcweir MORE_BTN(AddWindow(&aPreviewBtn));
629cdf0e10cSrcweir MORE_BTN(AddWindow(&aPreviewWin));
630cdf0e10cSrcweir aPreviewBtn.SetClickHdl(LINK(this, SfxNewFileDialog_Impl, PreviewClick));
631*08de2c23SAndre Fischer aTemplateLb.SetSelectHdl(LINK(this, SfxNewFileDialog_Impl, TemplateSelect));
632cdf0e10cSrcweir }
633cdf0e10cSrcweir else
634cdf0e10cSrcweir {
635cdf0e10cSrcweir aPreviewBtn.Hide();
636cdf0e10cSrcweir aPreviewWin.Hide();
637cdf0e10cSrcweir nMoveOffset = (short)pAntiImplP->LogicToPixel(
638cdf0e10cSrcweir Size(nMoveOffset, nMoveOffset), MAP_APPFONT).Width();
639cdf0e10cSrcweir nExpandSize = (short)pAntiImplP->LogicToPixel(
640cdf0e10cSrcweir Size(nExpandSize, nExpandSize), MAP_APPFONT).Width();
641cdf0e10cSrcweir AdjustPosSize_Impl(&aTitleFt, nMoveOffset, 0);
642cdf0e10cSrcweir AdjustPosSize_Impl(&aTitleEd, nMoveOffset, nExpandSize);
643cdf0e10cSrcweir AdjustPosSize_Impl(&aThemaFt, nMoveOffset, 0);
644cdf0e10cSrcweir AdjustPosSize_Impl(&aThemaEd, nMoveOffset, nExpandSize);
645cdf0e10cSrcweir AdjustPosSize_Impl(&aKeywordsFt, nMoveOffset, 0);
646cdf0e10cSrcweir AdjustPosSize_Impl(&aKeywordsEd, nMoveOffset, nExpandSize);
647cdf0e10cSrcweir AdjustPosSize_Impl(&aDescFt , nMoveOffset, 0);
648cdf0e10cSrcweir AdjustPosSize_Impl(&aDescEd , nMoveOffset, nExpandSize);
649cdf0e10cSrcweir AdjustPosSize_Impl(&aDocinfoGb, nMoveOffset, nExpandSize);
650cdf0e10cSrcweir }
651cdf0e10cSrcweir }
652cdf0e10cSrcweir
653cdf0e10cSrcweir String &rExtra = pAntiImplP->GetExtraData();
654cdf0e10cSrcweir sal_uInt16 nTokCount = rExtra.GetTokenCount( '|' );
655cdf0e10cSrcweir if( nTokCount > 0 && nFlags )
656cdf0e10cSrcweir MORE_BTN(SetState( rExtra.GetToken( 0, '|' ) == 'Y' ));
657cdf0e10cSrcweir if( nTokCount > 1 && nFlags )
658cdf0e10cSrcweir aPreviewBtn.Check( rExtra.GetToken( 1 ,'|' ) == 'Y' );
659cdf0e10cSrcweir
660cdf0e10cSrcweir aTemplateLb.SetDoubleClickHdl(LINK(this, SfxNewFileDialog_Impl, DoubleClick));
661cdf0e10cSrcweir
662cdf0e10cSrcweir // update the template configuration if necessary
663cdf0e10cSrcweir {
664cdf0e10cSrcweir WaitObject aWaitCursor( pAntiImplP->GetParent() );
665cdf0e10cSrcweir aTemplates.Update( sal_True /* be smart */ );
666cdf0e10cSrcweir }
667cdf0e10cSrcweir // fill the list boxes
668cdf0e10cSrcweir const sal_uInt16 nCount = aTemplates.GetRegionCount();
669cdf0e10cSrcweir if (nCount)
670cdf0e10cSrcweir {
671cdf0e10cSrcweir for(sal_uInt16 i = 0; i < nCount; ++i)
672cdf0e10cSrcweir aRegionLb.InsertEntry(aTemplates.GetFullRegionName(i));
673cdf0e10cSrcweir aRegionLb.SetSelectHdl(LINK(this, SfxNewFileDialog_Impl, RegionSelect));
674cdf0e10cSrcweir }
675cdf0e10cSrcweir
676cdf0e10cSrcweir aPrevTimer.SetTimeout( 500 );
677cdf0e10cSrcweir aPrevTimer.SetTimeoutHdl( LINK( this, SfxNewFileDialog_Impl, Update));
678cdf0e10cSrcweir
679cdf0e10cSrcweir // else
680cdf0e10cSrcweir // aRegionLb.InsertEntry(String(SfxResId(STR_STANDARD)));
681cdf0e10cSrcweir aRegionLb.SelectEntryPos(0);
682cdf0e10cSrcweir RegionSelect(&aRegionLb);
683cdf0e10cSrcweir }
684cdf0e10cSrcweir
685cdf0e10cSrcweir //-------------------------------------------------------------------------
686cdf0e10cSrcweir
~SfxNewFileDialog_Impl()687cdf0e10cSrcweir SfxNewFileDialog_Impl::~SfxNewFileDialog_Impl()
688cdf0e10cSrcweir {
689cdf0e10cSrcweir String &rExtra = pAntiImpl->GetExtraData();
690cdf0e10cSrcweir rExtra = MORE_BTN(GetState()) ? 'Y' : 'N';
691cdf0e10cSrcweir rExtra += '|';
692cdf0e10cSrcweir rExtra += aPreviewBtn.IsChecked() ? 'Y' : 'N';
693cdf0e10cSrcweir
694cdf0e10cSrcweir delete pMoreBt;
695cdf0e10cSrcweir }
696cdf0e10cSrcweir //-------------------------------------------------------------------------
SfxNewFileDialog(Window * pParent,sal_uInt16 nFlags)697cdf0e10cSrcweir SfxNewFileDialog::SfxNewFileDialog(Window *pParent, sal_uInt16 nFlags)
698cdf0e10cSrcweir : SfxModalDialog( pParent, SfxResId( DLG_NEW_FILE ) )
699cdf0e10cSrcweir {
700cdf0e10cSrcweir pImpl = new SfxNewFileDialog_Impl( this, nFlags );
701cdf0e10cSrcweir }
702cdf0e10cSrcweir //-------------------------------------------------------------------------
~SfxNewFileDialog()703cdf0e10cSrcweir SfxNewFileDialog::~SfxNewFileDialog()
704cdf0e10cSrcweir {
705cdf0e10cSrcweir delete pImpl;
706cdf0e10cSrcweir }
707cdf0e10cSrcweir //-------------------------------------------------------------------------
IsTemplate() const708cdf0e10cSrcweir sal_Bool SfxNewFileDialog::IsTemplate() const
709cdf0e10cSrcweir {
710cdf0e10cSrcweir return pImpl->IsTemplate();
711cdf0e10cSrcweir }
712cdf0e10cSrcweir //-------------------------------------------------------------------------
GetTemplateRegion() const713cdf0e10cSrcweir String SfxNewFileDialog::GetTemplateRegion() const
714cdf0e10cSrcweir {
715cdf0e10cSrcweir return pImpl->GetTemplateRegion();
716cdf0e10cSrcweir }
717cdf0e10cSrcweir //-------------------------------------------------------------------------
GetTemplateName() const718cdf0e10cSrcweir String SfxNewFileDialog::GetTemplateName() const
719cdf0e10cSrcweir {
720cdf0e10cSrcweir return pImpl->GetTemplateName();
721cdf0e10cSrcweir }
722cdf0e10cSrcweir //-------------------------------------------------------------------------
GetTemplateFileName() const723cdf0e10cSrcweir String SfxNewFileDialog::GetTemplateFileName() const
724cdf0e10cSrcweir {
725cdf0e10cSrcweir return pImpl->GetTemplateFileName();
726cdf0e10cSrcweir }
727cdf0e10cSrcweir //-------------------------------------------------------------------------
GetTemplateFlags() const728cdf0e10cSrcweir sal_uInt16 SfxNewFileDialog::GetTemplateFlags()const
729cdf0e10cSrcweir {
730cdf0e10cSrcweir return pImpl->GetTemplateFlags();
731cdf0e10cSrcweir
732cdf0e10cSrcweir }
733cdf0e10cSrcweir //-------------------------------------------------------------------------
SetTemplateFlags(sal_uInt16 nSet)734cdf0e10cSrcweir void SfxNewFileDialog::SetTemplateFlags(sal_uInt16 nSet)
735cdf0e10cSrcweir {
736cdf0e10cSrcweir pImpl->SetTemplateFlags(nSet);
737cdf0e10cSrcweir }
738cdf0e10cSrcweir
739