blob: a8d5abe2db999f8eafcc5c9e1706f5d1cfc78734 [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#ifndef _SFXDOCTEMPL_HXX
#define _SFXDOCTEMPL_HXX
#include "sal/config.h"
#include "sfx2/dllapi.h"
#include "sal/types.h"
#include <tools/ref.hxx>
#include <tools/string.hxx>
// CLASS -----------------------------------------------------------------
class SfxObjectShell;
#ifndef SFX_DECL_OBJECTSHELL_DEFINED
#define SFX_DECL_OBJECTSHELL_DEFINED
SV_DECL_REF(SfxObjectShell)
#endif
class SfxDocTemplate_Impl;
#ifndef SFX_DECL_DOCTEMPLATES_DEFINED
#define SFX_DECL_DOCTEMPLATES_DEFINED
SV_DECL_REF(SfxDocTemplate_Impl)
#endif
// class SfxDocumentTemplates --------------------------------------------
class SFX2_DLLPUBLIC SfxDocumentTemplates
{
private:
SfxDocTemplate_ImplRef pImp;
SAL_DLLPRIVATE sal_Bool CopyOrMove( sal_uInt16 nTargetRegion, sal_uInt16 nTargetIdx,
sal_uInt16 nSourceRegion, sal_uInt16 nSourceIdx, sal_Bool bMove );
public:
SfxDocumentTemplates();
SfxDocumentTemplates(const SfxDocumentTemplates &);
~SfxDocumentTemplates();
sal_Bool IsConstructed() { return pImp != NULL; }
void Construct();
static sal_Bool SaveDir( /*SfxTemplateDir &rEntry */ ) ;
const SfxDocumentTemplates &operator=(const SfxDocumentTemplates &);
sal_Bool Rescan( ); // Aktualisieren
void ReInitFromComponent();
sal_Bool IsRegionLoaded( sal_uInt16 nIdx ) const;
sal_uInt16 GetRegionCount() const;
const String& GetRegionName(sal_uInt16 nIdx) const; //dv!
String GetFullRegionName(sal_uInt16 nIdx) const;
sal_uInt16 GetRegionNo( const String &rRegionName ) const;
sal_uInt16 GetCount(sal_uInt16 nRegion) const;
sal_uInt16 GetCount( const String &rName) const;
const String& GetName(sal_uInt16 nRegion, sal_uInt16 nIdx) const; //dv!
String GetFileName(sal_uInt16 nRegion, sal_uInt16 nIdx) const;
String GetPath(sal_uInt16 nRegion, sal_uInt16 nIdx) const;
String GetDefaultTemplatePath(const String &rLongName);
// Pfad zur Vorlage geben lassen; logischer Name muss angegeben
// werden, damit beim Ueberschreiben einer Vorlage der
// richtige Dateiname gefunden werden kann
String GetTemplatePath(sal_uInt16 nRegion, const String &rLongName) const;
// Allows to retrieve the target template URL from the UCB
::rtl::OUString GetTemplateTargetURLFromComponent( const ::rtl::OUString& aGroupName,
const ::rtl::OUString& aTitle );
// Speichern als Vorlage hat geklappt -> Aktualisieren
void NewTemplate(sal_uInt16 nRegion,
const String &rLongName,
const String &rFileName);
sal_Bool Copy(sal_uInt16 nTargetRegion,
sal_uInt16 nTargetIdx,
sal_uInt16 nSourceRegion,
sal_uInt16 nSourceIdx);
sal_Bool Move(sal_uInt16 nTargetRegion,
sal_uInt16 nTargetIdx,
sal_uInt16 nSourceRegion,
sal_uInt16 nSourceIdx);
sal_Bool Delete(sal_uInt16 nRegion, sal_uInt16 nIdx);
sal_Bool InsertDir(const String &rText, sal_uInt16 nRegion);
sal_Bool SetName(const String &rName, sal_uInt16 nRegion, sal_uInt16 nIdx);
sal_Bool CopyTo(sal_uInt16 nRegion, sal_uInt16 nIdx, const String &rName) const;
sal_Bool CopyFrom(sal_uInt16 nRegion, sal_uInt16 nIdx, String &rName);
SfxObjectShellRef CreateObjectShell(sal_uInt16 nRegion, sal_uInt16 nIdx);
sal_Bool DeleteObjectShell(sal_uInt16, sal_uInt16);
sal_Bool GetFull( const String& rRegion, const String& rName, String& rPath );
sal_Bool GetLogicNames( const String& rPath, String& rRegion, String& rName ) const;
/** updates the configuration where the document templates structure is stored.
<p>The info about the document templates (which files, which groups etc.) is stored in the
configuration. This means that just by copying files into OOo's template directories, this
change is not reflected in the SfxDocumentTemplates - 'cause the configuration is not synchronous with
the file system. This can be enforced with this method.</p>
@param _bSmart
The update of the configuration is rather expensive - nothing you want to do regulary if you don't really
need it. So you have the possibility to do a smart update - it first checks if the update if necessary.
In case the update is needed, the additional check made it somewhat more expensive. In case it's not
necessary (which should be the usual case), the check alone is (much) less expensive than the real update.
<br/>
So set <arg>_bSmart</arg> to <TRUE/> to do a check for necessity first.
*/
void Update( sal_Bool _bSmart = sal_True );
// allows to detect whether it is allowed to delete ( at least partially )
// a group or a template, or to edit a template
sal_Bool HasUserContents( sal_uInt16 nRegion, sal_uInt16 nIdx ) const;
};
#endif // #ifndef _SFXDOCTEMPL_HXX