namespace sd
{ class ViewShell; class ViewShellBase;
/** The ViewShellManager has the responsibility to manage the view shells andsubshellsontheSFXshellstack.Theyformatwolevelhierarchy (theunderlyingViewShellBase,theonlytrueSfxViewShelldescendant, formsathirdlevel.)Onthefirstleveltherearetheviewshells (whatformerlywascalledviewshell,anyway;nowadaystheyarederived fromSfxShell)andshellsforpanes.Onthesecondleveltherearesub shells(alsoderivedfromSfxShell)thatusuallyaretoolbars.
/** Before the destructor is called the method Shutdown() has to have beencalled.
*/
~ViewShellManager();
/** Tell a ViewShellManager object to prepare to be deleted, i.e. to destroyallofitsresourcesandtoignoreallfollowingcalls. Usethiswhentheowneroftheviewshellmanagerisaboutbeing destroyedbuttheviewshellmanageritselfcannotyetbedeleted.
*/ void Shutdown();
/** Set the factory for sub shells of the specified view shell.
*/ void AddSubShellFactory(ViewShell const* pViewShell, const SharedShellFactory& rpFactory); void RemoveSubShellFactory(ViewShell const* pViewShell, const SharedShellFactory& rpFactory);
/** Activate the given view shell.
*/ void ActivateViewShell(ViewShell* pViewShell);
/** Activate the given shell, putting it at the bottom of the stack instead of thetop.
*/ void ActivateLowPriorityShell(SfxShell* pShell);
/** Deactivate the specified shell, i.e. take it and all of its objectbarsfromtheshellstack. @parampShell Theshelltodeactivate.
*/ void DeactivateViewShell(const ViewShell* pShell);
/** Deactivate the specified shell. The shell is not destroyed.
*/ void DeactivateShell(const SfxShell* pShell);
/** Associate the form shell with a view shell and their relative position.Thismethoddoesnotchangetheshellstack,itjust storesthegivenvaluesforthenextshellstackupdate. @parampParentShell Theviewshelloftheformshell. @parampFormShell Theformshell. @parambAbove When<TRUE/>thentheformshellwillbeplaceddirectlyabove pViewShellontheSFXshellstack.Otherwisetheformshellis placeddirectlybelowtheviewshell.
*/ void SetFormShell(const ViewShell* pParentShell, FmFormShell* pFormShell, bool bAbove);
/** Activate the specified shell as sub shell for the given view shell. Thesubshellfactoryassociatedwiththeviewshellisusedto createthesubshell. @paramrParentShell Thenewsubshellwillbeplacedabovethisviewshell. @paramnId Thisidisusedonlywiththefactoryregisteredfortheparent viewshell.
*/ void ActivateSubShell(const ViewShell& rParentShell, ShellId nId);
/** Deactivate the specified sub shell.
*/ void DeactivateSubShell(const ViewShell& rParentShell, ShellId nId);
/** Send all sub shells of the specified view shell an Invalidate() call.Thisdoesnotmodifytheshellstack.
*/ void InvalidateAllSubShells(ViewShell const* pViewShell);
/** Move the specified view shell to the top most position on the stack ofviewshellsinrelationtotheotherviewshells.Afterthisthe onlyshellsthatarehigheronthestackareitsobjectbars.
/** Return the first, i.e. top most, view shell that has been activated underthegivenid. @paramnId Theidoftheshellforwhichtoreturnapointer. @return WhenthespecifiedshelliscurrentlynotactivethenNULLis returned.
*/
SAL_RET_MAYBENULL SfxShell* GetShell(ShellId nId) const;
/** Return the top-most shell on the SFX shell stack regardless of whetherthatisaviewshellorasubshell.
*/
SAL_RET_MAYBENULL SfxShell* GetTopShell() const;
/** Return the top-most active view shell on the internal shell stack.
*/
SAL_RET_MAYBENULL SfxShell* GetTopViewShell() const;
/** Use this class to safely lock updates of the view shell stack.
*/ class UpdateLock
{ public:
UpdateLock(std::shared_ptr<ViewShellManager> pManager)
: mpManager(std::move(pManager))
{
mpManager->LockUpdate();
}
~UpdateLock() COVERITY_NOEXCEPT_FALSE { mpManager->UnlockUpdate(); }
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.