blob: ff4ab4994a1e9ee67ac3a0e8af899d4b3818f3b7 [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 _MODOPT_HXX
#define _MODOPT_HXX
#include <tools/string.hxx>
#include <tools/wintypes.hxx>
#include <vcl/field.hxx>
#include <svl/svarray.hxx>
#include <unotools/configitem.hxx>
#include "swdllapi.h"
#include "authratr.hxx"
#include <SwCapObjType.hxx>
#include "tblenum.hxx"
#include "itabenum.hxx"
#include <tools/globname.hxx>
class SwModuleOptions;
//-----------------------------------------------------------------------------
class InsCaptionOpt;
typedef InsCaptionOpt* InsCaptionOptPtr;
SV_DECL_PTRARR_SORT_DEL(InsCapOptArr, InsCaptionOptPtr, 0, 5)
class InsCaptionOptArr : public InsCapOptArr
{
friend class SwModuleOptions;
friend class SwInsertConfig;
protected:
InsCaptionOpt* Find(const SwCapObjType eType, const SvGlobalName *pOleId = 0) const;
};
/* -----------------------------10.10.00 16:14--------------------------------
---------------------------------------------------------------------------*/
class SwRevisionConfig : public utl::ConfigItem
{
friend class SwModuleOptions;
AuthorCharAttr aInsertAttr; //Revision/TextDisplay/Insert/Attribute // Redlining: Author-Zeichenattribute
//Revision/TextDisplay/Insert/Color
AuthorCharAttr aDeletedAttr; //Revision/TextDisplay/Delete/Attribute
//Revision/TextDisplay/Delete/Color
AuthorCharAttr aFormatAttr; //Revision/TextDisplay/ChangeAttribute/Attribute
//Revision/TextDisplay/ChangeAttribute/Color
sal_uInt16 nMarkAlign; //Revision/LinesChanged/Mark
Color aMarkColor; //Revision/LinesChanged/Color
const com::sun::star::uno::Sequence<rtl::OUString>& GetPropertyNames();
public:
SwRevisionConfig();
~SwRevisionConfig();
virtual void Commit();
virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames );
void Load();
void SetModified(){ConfigItem::SetModified();}
};
/* -----------------------------11.10.00 09:00--------------------------------
---------------------------------------------------------------------------*/
class SwInsertConfig : public utl::ConfigItem
{
friend class SwModuleOptions;
InsCaptionOptArr* pCapOptions;
InsCaptionOpt* pOLEMiscOpt;
SvGlobalName aGlobalNames[5];
sal_Bool bInsWithCaption; //Insert/Caption/Automatic // Objekte beschriftet einfuegen
sal_Bool bCaptionOrderNumberingFirst; //#i61007# caption order starting with numbering
// sal_uInt16 nInsTblFlags; //Insert/Table/Header // Flags fuer Tabellen einfuegen
//Insert/Table/RepeatHeader
//Insert/Table/Split
//Insert/Table/Border
SwInsertTableOptions aInsTblOpts;
sal_Bool bIsWeb;
const com::sun::star::uno::Sequence<rtl::OUString>& GetPropertyNames();
public:
SwInsertConfig(sal_Bool bWeb);
~SwInsertConfig();
virtual void Commit();
virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames );
void Load();
void SetModified(){ConfigItem::SetModified();}
};
/* -----------------------------11.10.00 09:00--------------------------------
---------------------------------------------------------------------------*/
class SwTableConfig : public utl::ConfigItem
{
friend class SwModuleOptions;
sal_uInt16 nTblHMove; //int Table/Shift/Row
sal_uInt16 nTblVMove; //int Table/Shift/Column
sal_uInt16 nTblHInsert; //int Table/Insert/Row
sal_uInt16 nTblVInsert; //int Table/Insert/Column
TblChgMode eTblChgMode; //int Table/Change/Effect
sal_Bool bInsTblFormatNum; // Table/Input/NumberRecognition // Automatische Zahlenerkennung
sal_Bool bInsTblChangeNumFormat; // Table/Input/NumberFormatRecognition // Automatische Zahlenformaterkennung
sal_Bool bInsTblAlignNum; // Table/Input/Alignment // Zahlen ausrichten
const com::sun::star::uno::Sequence<rtl::OUString>& GetPropertyNames();
public:
SwTableConfig(sal_Bool bWeb);
~SwTableConfig();
virtual void Commit();
virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames );
void Load();
void SetModified(){ConfigItem::SetModified();}
};
/* -----------------------------18.01.01 16:57--------------------------------
---------------------------------------------------------------------------*/
class SwMiscConfig : public utl::ConfigItem
{
friend class SwModuleOptions;
String sWordDelimiter; // Statistics/WordNumber/Delimiter
sal_Bool bDefaultFontsInCurrDocOnly; // DefaultFont/Document
sal_Bool bShowIndexPreview ; // Index/ShowPreview
sal_Bool bGrfToGalleryAsLnk; // Misc/GraphicToGalleryAsLink
sal_Bool bNumAlignSize; // Numbering/Graphic/KeepRatio
sal_Bool bSinglePrintJob; // FormLetter/PrintOutput/SinglePrintJobs
sal_Bool bIsNameFromColumn; // FormLetter/FileOutput/FileName/Generation
sal_Bool bAskForMailMergeInPrint; // Ask if documents containing fields should be 'mailmerged'
sal_Int16 nMailingFormats; // FormLetter/MailingOutput/Formats
String sNameFromColumn; // FormLetter/FileOutput/FileName/FromDatabaseField (string!)
String sMailingPath; // FormLetter/FileOutput/Path
String sMailName; // FormLetter/FileOutput/FileName/FromManualSetting (string!)
const com::sun::star::uno::Sequence<rtl::OUString>& GetPropertyNames();
public:
SwMiscConfig();
~SwMiscConfig();
virtual void Commit();
virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames );
void Load();
void SetModified(){ConfigItem::SetModified();}
};
/* ---------------------------------------------------------------------------
---------------------------------------------------------------------------*/
class SW_DLLPUBLIC SwModuleOptions
{
SwRevisionConfig aRevisionConfig;
SwInsertConfig aInsertConfig;
SwInsertConfig aWebInsertConfig;
SwTableConfig aTableConfig;
SwTableConfig aWebTableConfig;
SwMiscConfig aMiscConfig;
//fiscus: don't show tips of text fields - it's not part of the configuration!
sal_Bool bHideFieldTips : 1;
public:
SwModuleOptions();
TblChgMode GetTblMode() const { return aTableConfig.eTblChgMode;}
void SetTblMode( TblChgMode eSet ) { aTableConfig.eTblChgMode = eSet;
aTableConfig.SetModified();}
sal_uInt16 GetTblHMove() const { return aTableConfig.nTblHMove;}
void SetTblHMove( sal_uInt16 nSet ) { aTableConfig.nTblHMove = nSet;
aTableConfig.SetModified();}
sal_uInt16 GetTblVMove() const { return aTableConfig.nTblVMove;}
void SetTblVMove( sal_uInt16 nSet ) { aTableConfig.nTblVMove = nSet;
aTableConfig.SetModified();}
sal_uInt16 GetTblHInsert() const {return aTableConfig.nTblHInsert;}
void SetTblHInsert( sal_uInt16 nSet ) { aTableConfig.nTblHInsert = nSet;
aTableConfig.SetModified();}
sal_uInt16 GetTblVInsert() const {return aTableConfig.nTblVInsert;}
void SetTblVInsert( sal_uInt16 nSet ) { aTableConfig.nTblVInsert = nSet;
aTableConfig.SetModified();}
const AuthorCharAttr &GetInsertAuthorAttr() const { return aRevisionConfig.aInsertAttr; }
void SetInsertAuthorAttr( AuthorCharAttr &rAttr ) { aRevisionConfig.aInsertAttr = rAttr;
aRevisionConfig.SetModified();}
const AuthorCharAttr &GetDeletedAuthorAttr() const { return aRevisionConfig.aDeletedAttr; }
void SetDeletedAuthorAttr( AuthorCharAttr &rAttr ) { aRevisionConfig.aDeletedAttr = rAttr;
aRevisionConfig.SetModified();}
const AuthorCharAttr &GetFormatAuthorAttr() const { return aRevisionConfig.aFormatAttr; }
void SetFormatAuthorAttr( AuthorCharAttr &rAttr ) { aRevisionConfig.aFormatAttr = rAttr;
aRevisionConfig.SetModified();}
sal_uInt16 GetMarkAlignMode() const { return aRevisionConfig.nMarkAlign; }
void SetMarkAlignMode(sal_uInt16 nMode) { aRevisionConfig.nMarkAlign = nMode;
aRevisionConfig.SetModified();}
const Color& GetMarkAlignColor() const { return aRevisionConfig.aMarkColor; }
void SetMarkAlignColor(const Color &rColor) { aRevisionConfig.aMarkColor = rColor;
aRevisionConfig.SetModified();}
sal_Bool IsInsWithCaption(sal_Bool bHTML) const
{ return bHTML ? sal_False : aInsertConfig.bInsWithCaption; }
void SetInsWithCaption( sal_Bool bHTML, sal_Bool b )
{ if(!bHTML)
aInsertConfig.bInsWithCaption = b;
aInsertConfig.SetModified();}
sal_Bool IsCaptionOrderNumberingFirst() const { return aInsertConfig.bCaptionOrderNumberingFirst; }
void SetCaptionOrderNumberingFirst( sal_Bool bSet )
{
if(aInsertConfig.bCaptionOrderNumberingFirst != bSet)
{
aInsertConfig.bCaptionOrderNumberingFirst = bSet;
aInsertConfig.SetModified();
}
}
sal_Bool IsInsTblFormatNum(sal_Bool bHTML) const
{ return bHTML ? aWebTableConfig.bInsTblFormatNum : aTableConfig.bInsTblFormatNum; }
void SetInsTblFormatNum( sal_Bool bHTML, sal_Bool b )
{ bHTML ? (aWebTableConfig.bInsTblFormatNum = b) : (aTableConfig.bInsTblFormatNum = b);
bHTML ? aWebTableConfig.SetModified() : aTableConfig.SetModified();}
sal_Bool IsInsTblChangeNumFormat(sal_Bool bHTML) const
{ return bHTML ? aWebTableConfig.bInsTblChangeNumFormat : aTableConfig.bInsTblChangeNumFormat; }
void SetInsTblChangeNumFormat( sal_Bool bHTML, sal_Bool b )
{ bHTML ? (aWebTableConfig.bInsTblChangeNumFormat = b) : (aTableConfig.bInsTblChangeNumFormat = b);
bHTML ? aWebTableConfig.SetModified() : aTableConfig.SetModified();}
sal_Bool IsInsTblAlignNum(sal_Bool bHTML) const
{ return bHTML ? aWebTableConfig.bInsTblAlignNum : aTableConfig.bInsTblAlignNum; }
void SetInsTblAlignNum( sal_Bool bHTML, sal_Bool b )
{ bHTML ? (aWebTableConfig.bInsTblAlignNum = b) : (aTableConfig.bInsTblAlignNum = b);
bHTML ? aWebTableConfig.SetModified() : aTableConfig.SetModified();;}
SwInsertTableOptions GetInsTblFlags(sal_Bool bHTML) const
{ return bHTML ? aWebInsertConfig.aInsTblOpts : aInsertConfig.aInsTblOpts;}
void SetInsTblFlags( sal_Bool bHTML, const SwInsertTableOptions& rOpts ) {
bHTML ? (aWebInsertConfig.aInsTblOpts = rOpts) : (aInsertConfig.aInsTblOpts = rOpts);
bHTML ? aWebInsertConfig.SetModified() : aInsertConfig.SetModified();}
const InsCaptionOpt* GetCapOption(sal_Bool bHTML, const SwCapObjType eType, const SvGlobalName *pOleId);
sal_Bool SetCapOption(sal_Bool bHTML, const InsCaptionOpt* pOpt);
sal_Bool IsGrfToGalleryAsLnk() const { return aMiscConfig.bGrfToGalleryAsLnk; }
void SetGrfToGalleryAsLnk( sal_Bool b ) { aMiscConfig.bGrfToGalleryAsLnk = b;
aMiscConfig.SetModified();}
sal_Int16 GetMailingFormats() const { return aMiscConfig.nMailingFormats;}
void SetMailingFormats( sal_Int16 nSet ) { aMiscConfig.nMailingFormats = nSet;
aMiscConfig.SetModified();}
sal_Bool IsSinglePrintJob() const { return aMiscConfig.bSinglePrintJob; }
void SetSinglePrintJob( sal_Bool b ) { aMiscConfig.bSinglePrintJob = b;
aMiscConfig.SetModified();}
sal_Bool IsNumAlignSize() const { return aMiscConfig.bNumAlignSize; }
void SetNumAlignSize( sal_Bool b ) { aMiscConfig.bNumAlignSize = b;
aMiscConfig.SetModified();}
sal_Bool IsNameFromColumn() const { return aMiscConfig.bIsNameFromColumn; }
void SetIsNameFromColumn( sal_Bool bSet )
{
aMiscConfig.SetModified();
aMiscConfig.bIsNameFromColumn = bSet;
}
sal_Bool IsAskForMailMerge() const { return aMiscConfig.bAskForMailMergeInPrint;}
void SetAskForMailMerge(sal_Bool bSet)
{
aMiscConfig.SetModified();
aMiscConfig.bAskForMailMergeInPrint = bSet;
}
const String& GetNameFromColumn() const { return aMiscConfig.sNameFromColumn; }
void SetNameFromColumn( const String& rSet ) { aMiscConfig.sNameFromColumn = rSet;
aMiscConfig.SetModified();}
String GetMailingPath() const { return aMiscConfig.sMailingPath; }
void SetMailingPath(const String& sPath) { aMiscConfig.sMailingPath = sPath;
aMiscConfig.SetModified();}
String GetMailName() const { return aMiscConfig.sMailName; }
void SetMailName(const String& sName){ aMiscConfig.sMailName = sName;
aMiscConfig.SetModified();}
const String &GetWordDelimiter() const { return aMiscConfig.sWordDelimiter; }
void SetWordDelimiter(const String& sDelim) { aMiscConfig.sWordDelimiter = sDelim;
aMiscConfig.SetModified();}
//convert word delimiter from or to user interface
static String ConvertWordDelimiter(const String& rDelim, sal_Bool bFromUI);
sal_Bool IsShowIndexPreview() const {return aMiscConfig.bShowIndexPreview;}
void SetShowIndexPreview(sal_Bool bSet)
{aMiscConfig.bShowIndexPreview = bSet;
aMiscConfig.SetModified();}
sal_Bool IsDefaultFontInCurrDocOnly() const { return aMiscConfig.bDefaultFontsInCurrDocOnly;}
void SetDefaultFontInCurrDocOnly(sal_Bool bSet)
{
aMiscConfig.bDefaultFontsInCurrDocOnly = bSet;
aMiscConfig.SetModified();
}
sal_Bool IsHideFieldTips() const {return bHideFieldTips;}
void SetHideFieldTips(sal_Bool bSet) {bHideFieldTips = bSet;}
};
#endif