/* -*- 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 .
*/
// This is used as a flags enum in sw/, but only there, // so I don't pull in o3tl::typed_flags here enumclass SfxStyleFamily {
None = 0x00, Char = 0x01,
Para = 0x02,
Frame = 0x04,
Page = 0x08,
Pseudo = 0x10,
Table = 0x20,
Cell = 0x40,
All = 0x7fff
};
Auto = 0x0000, ///< automatic: flags from application
Hidden = 0x0200, ///< hidden styles (search mask)
ReadOnly = 0x2000, ///< readonly styles (search mask)
Used = 0x4000, ///< used styles (search mask)
UserDefined = 0x8000, ///< user defined styles (search mask)
AllVisible = 0xe07f, ///< all visible styles
All = 0xe27f, ///< all styles
}; namespace o3tl { template<> struct typed_flags<SfxStyleSearchBits> : is_typed_flags<SfxStyleSearchBits, 0xe27f> {};
}
class SfxItemSet; class SfxItemPool; class SfxStyleSheetBasePool;
namespace svl { class IndexedStyleSheets; } /* Everyone changing instances of SfxStyleSheetBasePool or SfxStyleSheetBase must broadcast this using <SfxStyleSheetBasePool::GetBroadcaster()> broadcasts. The class <SfxStyleSheetHint> is used for this, it contains an Action-Id and a pointer to the <SfxStyleSheetBase>. The actions are:
#define SfxHintId::StyleSheetCreated // style is created #define SfxHintId::StyleSheetModified // style is modified #define SfxHintId::StyleSheetChanged // style is replaced #define SfxHintId::StyleSheetErased // style is deleted
// returns the internal name of this style const OUString& GetName() const;
// sets the internal name of this style. // // If the name of a style is changed, then the styles container needs to be // reindexed (see IndexedStyleSheets). If you set bReindexNow to false to // defer that indexing, then you must call the Reindex manually on the // SfxStyleSheetBasePool parent. virtualbool SetName(const OUString& rNewName, bool bReindexNow = true);
// Spotlight Id, @return -1 for style not in use virtual sal_Int32 GetSpotlightId();
virtual SfxItemSet& GetItemSet(); /// Due to writer's usual lack of sanity this is a separate function for /// preview only; it shall not create the style in case it does not exist. /// If the style has parents, it is _not_ required that the returned item /// set has parents (i.e. use it for display purposes only). virtual std::optional<SfxItemSet> GetItemSetForPreview();
/* Class to iterate and search on a SfxStyleSheetBasePool */ class SVL_DLLPUBLIC SfxStyleSheetIterator
{ public: /** Constructor. * The iterator will only iterate over style sheets which have the family \p eFam
*/
SfxStyleSheetIterator(const SfxStyleSheetBasePool *pBase,
SfxStyleFamily eFam, SfxStyleSearchBits n=SfxStyleSearchBits::All );
SfxStyleSearchBits GetSearchMask() const;
SfxStyleFamily GetSearchFamily() const; virtual sal_Int32 Count(); virtual SfxStyleSheetBase *operator[](sal_Int32 nIdx); virtual SfxStyleSheetBase* First(); virtual SfxStyleSheetBase* Next(); virtual SfxStyleSheetBase* Find(const OUString& rStr); virtual ~SfxStyleSheetIterator();
class SVL_DLLPUBLIC SfxStyleSheetBasePool: public SfxBroadcaster, public cppu::WeakImplHelper<>
{ friendclass SfxStyleSheetIterator; friendclass SfxStyleSheetBase;
void Reindex(); void ReindexOnNameChange(const SfxStyleSheetBase& style, const OUString& rOldName, const OUString& rNewName); /** Add a style sheet. * Not an actual public function. Do not call it from non-subclasses.
*/ void Add( const SfxStyleSheetBase& );
};
class SVL_DLLPUBLIC SfxStyleSheet: public SfxStyleSheetBase, public SfxListener, public SfxBroadcaster, public svl::StyleSheetUser
{ public:
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.