1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381
|
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* 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 .
*/
#ifndef INCLUDED_SW_INC_MODCFG_HXX
#define INCLUDED_SW_INC_MODCFG_HXX
#include <tools/wintypes.hxx>
#include <vcl/field.hxx>
#include <unotools/configitem.hxx>
#include "swdllapi.h"
#include "authratr.hxx"
#include <SwCapObjType.hxx>
#include "tblenum.hxx"
#include "itabenum.hxx"
#include <tools/globname.hxx>
#include <editeng/svxenum.hxx>
#include <o3tl/typed_flags_set.hxx>
#include <vector>
#include <memory>
class SwModuleOptions;
class InsCaptionOpt;
// text format for the sending of messages ------------------------------
enum class MailTextFormats
{
NONE = 0x00,
ASCII = 0x01,
HTML = 0x02,
RTF = 0x04,
OFFICE = 0x08
};
namespace o3tl
{
template<> struct typed_flags<MailTextFormats> : is_typed_flags<MailTextFormats, 0x0f> {};
}
class InsCaptionOptArr
{
private:
typedef std::vector<std::unique_ptr<InsCaptionOpt>> InsCapOptArr;
InsCapOptArr m_InsCapOptArr;
public:
InsCaptionOpt* Find(const SwCapObjType eType, const SvGlobalName *pOleId = nullptr);
void Insert(InsCaptionOpt* pObj);
};
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
static const css::uno::Sequence<OUString>& GetPropertyNames();
virtual void ImplCommit() override;
public:
SwRevisionConfig();
virtual ~SwRevisionConfig();
virtual void Notify( const css::uno::Sequence< OUString >& aPropertyNames ) override;
void Load();
void SetModified(){ConfigItem::SetModified();}
};
class SwCompareConfig : public utl::ConfigItem
{
friend class SwModuleOptions;
sal_uInt16 eCmpMode; //Compare/CompareDocuments;
bool bUseRsid; //Compare/Settings/Use RSID
/// Compare/Settings/Store RSID
bool m_bStoreRsid;
bool bIgnorePieces; //Compare/Settings/Ignore pieces of length
sal_uInt16 nPieceLen; //Compare/Settings/Ignore pieces of length
static const css::uno::Sequence<OUString>& GetPropertyNames();
virtual void ImplCommit() override;
public:
SwCompareConfig();
virtual ~SwCompareConfig();
virtual void Notify( const css::uno::Sequence< OUString >& ) override { };
void Load();
void SetModified() {ConfigItem::SetModified(); }
};
class SwInsertConfig : public utl::ConfigItem
{
friend class SwModuleOptions;
InsCaptionOptArr* pCapOptions;
InsCaptionOpt* pOLEMiscOpt;
SvGlobalName aGlobalNames[5];
bool bInsWithCaption; //Insert/Caption/Automatic
bool bCaptionOrderNumberingFirst; //#i61007# caption order starting with numbering
SwInsertTableOptions aInsTableOpts;
bool bIsWeb;
const css::uno::Sequence<OUString>& GetPropertyNames();
virtual void ImplCommit() override;
public:
SwInsertConfig(bool bWeb);
virtual ~SwInsertConfig();
virtual void Notify( const css::uno::Sequence< OUString >& aPropertyNames ) override;
void Load();
void SetModified(){ConfigItem::SetModified();}
};
class SwTableConfig : public utl::ConfigItem
{
friend class SwModuleOptions;
sal_uInt16 nTableHMove; //int Table/Shift/Row
sal_uInt16 nTableVMove; //int Table/Shift/Column
sal_uInt16 nTableHInsert; //int Table/Insert/Row
sal_uInt16 nTableVInsert; //int Table/Insert/Column
TableChgMode eTableChgMode; //int Table/Change/Effect
bool bInsTableFormatNum; // Table/Input/NumberRecognition // Automatic recognition of numbers.
bool bInsTableChangeNumFormat; // Table/Input/NumberFormatRecognition // Automatic recognition of number formats.
bool bInsTableAlignNum; // Table/Input/Alignment // Align numbers.
static const css::uno::Sequence<OUString>& GetPropertyNames();
virtual void ImplCommit() override;
public:
SwTableConfig(bool bWeb);
virtual ~SwTableConfig();
virtual void Notify( const css::uno::Sequence< OUString >& aPropertyNames ) override;
void Load();
void SetModified(){ConfigItem::SetModified();}
};
class SwMiscConfig : public utl::ConfigItem
{
friend class SwModuleOptions;
OUString sWordDelimiter; // Statistics/WordNumber/Delimiter
bool bDefaultFontsInCurrDocOnly; // DefaultFont/Document
bool bShowIndexPreview; // Index/ShowPreview
bool bGrfToGalleryAsLnk; // Misc/GraphicToGalleryAsLink
bool bNumAlignSize; // Numbering/Graphic/KeepRatio
bool bSinglePrintJob; // FormLetter/PrintOutput/SinglePrintJobs
bool bIsNameFromColumn; // FormLetter/FileOutput/FileName/Generation
bool bAskForMailMergeInPrint; // Ask if documents containing fields should be 'mailmerged'
MailTextFormats nMailingFormats; // FormLetter/MailingOutput/Formats
OUString sNameFromColumn; // FormLetter/FileOutput/FileName/FromDatabaseField (string!)
OUString sMailingPath; // FormLetter/FileOutput/Path
OUString sMailName; // FormLetter/FileOutput/FileName/FromManualSetting (string!)
static const css::uno::Sequence<OUString>& GetPropertyNames();
virtual void ImplCommit() override;
public:
SwMiscConfig();
virtual ~SwMiscConfig();
virtual void Notify( const css::uno::Sequence< OUString >& aPropertyNames ) override;
void Load();
void SetModified(){ConfigItem::SetModified();}
};
class SW_DLLPUBLIC SwModuleOptions
{
SwRevisionConfig aRevisionConfig;
SwInsertConfig aInsertConfig;
SwInsertConfig aWebInsertConfig;
SwTableConfig aTableConfig;
SwTableConfig aWebTableConfig;
SwMiscConfig aMiscConfig;
SwCompareConfig aCompareConfig;
//fiscus: don't show tips of text fields - it's not part of the configuration!
bool bHideFieldTips : 1;
public:
SwModuleOptions();
TableChgMode GetTableMode() const { return aTableConfig.eTableChgMode;}
void SetTableMode( TableChgMode eSet ) { aTableConfig.eTableChgMode = eSet;
aTableConfig.SetModified();}
sal_uInt16 GetTableHMove() const { return aTableConfig.nTableHMove;}
void SetTableHMove( sal_uInt16 nSet ) { aTableConfig.nTableHMove = nSet;
aTableConfig.SetModified();}
sal_uInt16 GetTableVMove() const { return aTableConfig.nTableVMove;}
void SetTableVMove( sal_uInt16 nSet ) { aTableConfig.nTableVMove = nSet;
aTableConfig.SetModified();}
sal_uInt16 GetTableHInsert() const {return aTableConfig.nTableHInsert;}
void SetTableHInsert( sal_uInt16 nSet ) { aTableConfig.nTableHInsert = nSet;
aTableConfig.SetModified();}
sal_uInt16 GetTableVInsert() const {return aTableConfig.nTableVInsert;}
void SetTableVInsert( sal_uInt16 nSet ) { aTableConfig.nTableVInsert = 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();}
bool IsInsWithCaption(bool bHTML) const
{ return !bHTML && aInsertConfig.bInsWithCaption; }
void SetInsWithCaption( bool bHTML, bool b )
{ if(!bHTML)
aInsertConfig.bInsWithCaption = b;
aInsertConfig.SetModified();}
bool IsCaptionOrderNumberingFirst() const { return aInsertConfig.bCaptionOrderNumberingFirst; }
void SetCaptionOrderNumberingFirst( bool bSet )
{
if(aInsertConfig.bCaptionOrderNumberingFirst != bSet)
{
aInsertConfig.bCaptionOrderNumberingFirst = bSet;
aInsertConfig.SetModified();
}
}
bool IsInsTableFormatNum(bool bHTML) const
{ return bHTML ? aWebTableConfig.bInsTableFormatNum : aTableConfig.bInsTableFormatNum; }
void SetInsTableFormatNum( bool bHTML, bool b )
{ bHTML ? (aWebTableConfig.bInsTableFormatNum = b) : (aTableConfig.bInsTableFormatNum = b);
bHTML ? aWebTableConfig.SetModified() : aTableConfig.SetModified();}
bool IsInsTableChangeNumFormat(bool bHTML) const
{ return bHTML ? aWebTableConfig.bInsTableChangeNumFormat : aTableConfig.bInsTableChangeNumFormat; }
void SetInsTableChangeNumFormat( bool bHTML, bool b )
{ bHTML ? (aWebTableConfig.bInsTableChangeNumFormat = b) : (aTableConfig.bInsTableChangeNumFormat = b);
bHTML ? aWebTableConfig.SetModified() : aTableConfig.SetModified();}
bool IsInsTableAlignNum(bool bHTML) const
{ return bHTML ? aWebTableConfig.bInsTableAlignNum : aTableConfig.bInsTableAlignNum; }
void SetInsTableAlignNum( bool bHTML, bool b )
{ bHTML ? (aWebTableConfig.bInsTableAlignNum = b) : (aTableConfig.bInsTableAlignNum = b);
bHTML ? aWebTableConfig.SetModified() : aTableConfig.SetModified();}
const SwInsertTableOptions& GetInsTableFlags(bool bHTML) const
{ return bHTML ? aWebInsertConfig.aInsTableOpts : aInsertConfig.aInsTableOpts;}
void SetInsTableFlags( bool bHTML, const SwInsertTableOptions& rOpts ) {
bHTML ? (aWebInsertConfig.aInsTableOpts = rOpts) : (aInsertConfig.aInsTableOpts = rOpts);
bHTML ? aWebInsertConfig.SetModified() : aInsertConfig.SetModified();}
const InsCaptionOpt* GetCapOption(bool bHTML, const SwCapObjType eType, const SvGlobalName *pOleId);
bool SetCapOption(bool bHTML, const InsCaptionOpt* pOpt);
bool IsGrfToGalleryAsLnk() const { return aMiscConfig.bGrfToGalleryAsLnk; }
void SetGrfToGalleryAsLnk( bool b ) { aMiscConfig.bGrfToGalleryAsLnk = b;
aMiscConfig.SetModified();}
MailTextFormats GetMailingFormats() const { return aMiscConfig.nMailingFormats;}
void SetMailingFormats( MailTextFormats nSet ) { aMiscConfig.nMailingFormats = nSet;
aMiscConfig.SetModified();}
void SetSinglePrintJob( bool b ) { aMiscConfig.bSinglePrintJob = b;
aMiscConfig.SetModified();}
bool IsNameFromColumn() const { return aMiscConfig.bIsNameFromColumn; }
void SetIsNameFromColumn( bool bSet )
{
aMiscConfig.SetModified();
aMiscConfig.bIsNameFromColumn = bSet;
}
bool IsAskForMailMerge() const { return aMiscConfig.bAskForMailMergeInPrint;}
const OUString& GetNameFromColumn() const { return aMiscConfig.sNameFromColumn; }
void SetNameFromColumn( const OUString& rSet ) { aMiscConfig.sNameFromColumn = rSet;
aMiscConfig.SetModified();}
const OUString& GetMailingPath() const { return aMiscConfig.sMailingPath; }
void SetMailingPath(const OUString& sPath) { aMiscConfig.sMailingPath = sPath;
aMiscConfig.SetModified();}
const OUString& GetWordDelimiter() const { return aMiscConfig.sWordDelimiter; }
void SetWordDelimiter(const OUString& sDelim) { aMiscConfig.sWordDelimiter = sDelim;
aMiscConfig.SetModified();}
//convert word delimiter from or to user interface
static OUString ConvertWordDelimiter(const OUString& rDelim, bool bFromUI);
bool IsShowIndexPreview() const {return aMiscConfig.bShowIndexPreview;}
void SetShowIndexPreview(bool bSet)
{aMiscConfig.bShowIndexPreview = bSet;
aMiscConfig.SetModified();}
void SetDefaultFontInCurrDocOnly(bool bSet)
{
aMiscConfig.bDefaultFontsInCurrDocOnly = bSet;
aMiscConfig.SetModified();
}
bool IsHideFieldTips() const {return bHideFieldTips;}
void SetHideFieldTips(bool bSet) {bHideFieldTips = bSet;}
SvxCompareMode GetCompareMode() const { return (SvxCompareMode)aCompareConfig.eCmpMode; }
void SetCompareMode( SvxCompareMode eMode ) { aCompareConfig.eCmpMode = eMode;
aCompareConfig.SetModified(); }
bool IsUseRsid() const { return aCompareConfig.bUseRsid; }
void SetUseRsid( bool b ) { aCompareConfig.bUseRsid = b;
aCompareConfig.SetModified(); }
bool IsIgnorePieces() const { return aCompareConfig.bIgnorePieces; }
void SetIgnorePieces( bool b ) { aCompareConfig.bIgnorePieces = b;
aCompareConfig.SetModified(); }
sal_uInt16 GetPieceLen() const { return aCompareConfig.nPieceLen; }
void SetPieceLen( sal_uInt16 nLen ) { aCompareConfig.nPieceLen = nLen;
aCompareConfig.SetModified(); }
bool IsStoreRsid() const
{
return aCompareConfig.m_bStoreRsid;
}
void SetStoreRsid(bool bStoreRsid)
{
aCompareConfig.m_bStoreRsid = bStoreRsid;
aCompareConfig.SetModified();
}
};
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|