LibreOffice Module sd (master) 1
Classes | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
sd::ToolBarManager::Implementation Class Reference
Collaboration diagram for sd::ToolBarManager::Implementation:
[legend]

Classes

class  UpdateLockImplementation
 

Public Member Functions

 Implementation (ViewShellBase &rBase, std::shared_ptr< sd::tools::EventMultiplexer > pMultiplexer, const std::shared_ptr< ViewShellManager > &rpViewShellManager, const std::shared_ptr< ToolBarManager > &rpToolBarManager)
 This constructor takes three arguments even though the ToolBarManager could be taken from the ViewShellBase. More...
 
 ~Implementation ()
 The order of statements is important. More...
 
void SetValid (bool bValid)
 
void ResetToolBars (ToolBarGroup eGroup)
 
void ResetAllToolBars ()
 
void AddToolBar (ToolBarGroup eGroup, const OUString &rsToolBarName)
 
void AddToolBarShell (ToolBarGroup eGroup, ShellId nToolBarId)
 
void RemoveToolBar (ToolBarGroup eGroup, const OUString &rsToolBarName)
 
void ReleaseAllToolBarShells ()
 Release all tool bar shells and the associated framework tool bars. More...
 
void ToolBarsDestroyed ()
 
void RequestUpdate ()
 
void PreUpdate ()
 
void PostUpdate ()
 
void Update (::std::unique_ptr< LayouterLock > pLayouterLock)
 Tell the XLayoutManager about the tool bars that we would like to be shown. More...
 
void LockViewShellManager ()
 
void LockUpdate ()
 
void UnlockUpdate ()
 
ToolBarRules & GetToolBarRules ()
 

Private Member Functions

bool CheckPlugInMode (std::u16string_view rsName) const
 
 DECL_LINK (UpdateCallback, void *, void)
 
 DECL_LINK (EventMultiplexerCallback, sd::tools::EventMultiplexerEvent &, void)
 
 DECL_LINK (SetValidCallback, void *, void)
 

Static Private Member Functions

static OUString GetToolBarResourceName (std::u16string_view rsBaseName)
 

Private Attributes

mutable::osl::Mutex maMutex
 
ViewShellBasemrBase
 
std::shared_ptr< sd::tools::EventMultiplexermpEventMultiplexer
 
bool mbIsValid
 
ToolBarList maToolBarList
 
ToolBarShellList maToolBarShellList
 
Reference< frame::XLayoutManager > mxLayouter
 
sal_Int32 mnLockCount
 
bool mbPreUpdatePending
 
bool mbPostUpdatePending
 
::std::unique_ptr< LayouterLock > mpSynchronousLayouterLock
 The layouter locks manage the locking of the XLayoutManager. More...
 
::std::unique_ptr< LayouterLock > mpAsynchronousLayouterLock
 
::std::unique_ptr< ViewShellManager::UpdateLock, o3tl::default_delete< ViewShellManager::UpdateLock > > mpViewShellManagerLock
 
ImplSVEventmnPendingUpdateCall
 
ImplSVEventmnPendingSetValidCall
 
ToolBarRules maToolBarRules
 

Detailed Description

Definition at line 238 of file ToolBarManager.cxx.

Constructor & Destructor Documentation

◆ Implementation()

sd::ToolBarManager::Implementation::Implementation ( ViewShellBase rBase,
std::shared_ptr< sd::tools::EventMultiplexer pMultiplexer,
const std::shared_ptr< ViewShellManager > &  rpViewShellManager,
const std::shared_ptr< ToolBarManager > &  rpToolBarManager 
)

This constructor takes three arguments even though the ToolBarManager could be taken from the ViewShellBase.

This is so to state explicitly which information has to be present when this constructor is called. The ViewShellBase may not have been fully initialized at this point and must not be asked for this values.

Definition at line 498 of file ToolBarManager.cxx.

References LINK, mpEventMultiplexer, and mpEventMultiplexer.

◆ ~Implementation()

sd::ToolBarManager::Implementation::~Implementation ( )

The order of statements is important.

First unregister listeners, which may post user events. Then remove pending user events.

Definition at line 521 of file ToolBarManager.cxx.

References LINK, mpEventMultiplexer, and Application::RemoveUserEvent().

Member Function Documentation

◆ AddToolBar()

void sd::ToolBarManager::Implementation::AddToolBar ( ToolBarGroup  eGroup,
const OUString &  rsToolBarName 
)

Definition at line 592 of file ToolBarManager.cxx.

References maMutex.

◆ AddToolBarShell()

void sd::ToolBarManager::Implementation::AddToolBarShell ( ToolBarGroup  eGroup,
ShellId  nToolBarId 
)

Definition at line 622 of file ToolBarManager.cxx.

◆ CheckPlugInMode()

bool sd::ToolBarManager::Implementation::CheckPlugInMode ( std::u16string_view  rsName) const
private

◆ DECL_LINK() [1/3]

sd::ToolBarManager::Implementation::DECL_LINK ( EventMultiplexerCallback  ,
sd::tools::EventMultiplexerEvent ,
void   
)
private

◆ DECL_LINK() [2/3]

sd::ToolBarManager::Implementation::DECL_LINK ( SetValidCallback  ,
void *  ,
void   
)
private

◆ DECL_LINK() [3/3]

sd::ToolBarManager::Implementation::DECL_LINK ( UpdateCallback  ,
void *  ,
void   
)
private

◆ GetToolBarResourceName()

OUString sd::ToolBarManager::Implementation::GetToolBarResourceName ( std::u16string_view  rsBaseName)
staticprivate

Definition at line 854 of file ToolBarManager.cxx.

◆ GetToolBarRules()

ToolBarRules & sd::ToolBarManager::Implementation::GetToolBarRules ( )
inline

Definition at line 299 of file ToolBarManager.cxx.

References maToolBarRules.

◆ LockUpdate()

void sd::ToolBarManager::Implementation::LockUpdate ( )

◆ LockViewShellManager()

void sd::ToolBarManager::Implementation::LockViewShellManager ( )

Definition at line 708 of file ToolBarManager.cxx.

◆ PostUpdate()

void sd::ToolBarManager::Implementation::PostUpdate ( )

Definition at line 679 of file ToolBarManager.cxx.

References maMutex, and SAL_INFO.

◆ PreUpdate()

void sd::ToolBarManager::Implementation::PreUpdate ( )

Definition at line 649 of file ToolBarManager.cxx.

References maMutex, and SAL_INFO.

◆ ReleaseAllToolBarShells()

void sd::ToolBarManager::Implementation::ReleaseAllToolBarShells ( )

Release all tool bar shells and the associated framework tool bars.

Typically called when the main view shell is being replaced by another, all tool bar shells are released. In that process the shells are destroyed anyway and without calling this method they would still be referenced.

Definition at line 634 of file ToolBarManager.cxx.

◆ RemoveToolBar()

void sd::ToolBarManager::Implementation::RemoveToolBar ( ToolBarGroup  eGroup,
const OUString &  rsToolBarName 
)

Definition at line 608 of file ToolBarManager.cxx.

References maMutex, and sd::ToolBarManager::PreUpdate().

◆ RequestUpdate()

void sd::ToolBarManager::Implementation::RequestUpdate ( )

Definition at line 640 of file ToolBarManager.cxx.

References LINK, and Application::PostUserEvent().

◆ ResetAllToolBars()

void sd::ToolBarManager::Implementation::ResetAllToolBars ( )

Definition at line 585 of file ToolBarManager.cxx.

References i, sd::ToolBarManager::ResetToolBars(), and SAL_INFO.

◆ ResetToolBars()

void sd::ToolBarManager::Implementation::ResetToolBars ( ToolBarGroup  eGroup)

Definition at line 575 of file ToolBarManager.cxx.

References maMutex.

◆ SetValid()

void sd::ToolBarManager::Implementation::SetValid ( bool  bValid)

Definition at line 539 of file ToolBarManager.cxx.

References Any, maMutex, sd::ToolBarManager::ResetAllToolBars(), and xFrame.

◆ ToolBarsDestroyed()

void sd::ToolBarManager::Implementation::ToolBarsDestroyed ( )

Definition at line 534 of file ToolBarManager.cxx.

◆ UnlockUpdate()

void sd::ToolBarManager::Implementation::UnlockUpdate ( )

◆ Update()

void sd::ToolBarManager::Implementation::Update ( ::std::unique_ptr< LayouterLock >  pLayouterLock)

Tell the XLayoutManager about the tool bars that we would like to be shown.

Parameters
rpLayouterLockThis typically is the mpSynchronousLayouterLock that is used in this method and that is either released at its end or assigned to mpAsynchronousLock in order to be unlocked later.

Definition at line 743 of file ToolBarManager.cxx.

References LINK, Application::PostUserEvent(), sd::ToolBarManager::PreUpdate(), and Application::RemoveUserEvent().

Member Data Documentation

◆ maMutex

mutable::osl::Mutex sd::ToolBarManager::Implementation::maMutex
private

Definition at line 302 of file ToolBarManager.cxx.

◆ maToolBarList

ToolBarList sd::ToolBarManager::Implementation::maToolBarList
private

Definition at line 306 of file ToolBarManager.cxx.

◆ maToolBarRules

ToolBarRules sd::ToolBarManager::Implementation::maToolBarRules
private

Definition at line 322 of file ToolBarManager.cxx.

Referenced by GetToolBarRules().

◆ maToolBarShellList

ToolBarShellList sd::ToolBarManager::Implementation::maToolBarShellList
private

Definition at line 307 of file ToolBarManager.cxx.

◆ mbIsValid

bool sd::ToolBarManager::Implementation::mbIsValid
private

Definition at line 305 of file ToolBarManager.cxx.

◆ mbPostUpdatePending

bool sd::ToolBarManager::Implementation::mbPostUpdatePending
private

Definition at line 311 of file ToolBarManager.cxx.

◆ mbPreUpdatePending

bool sd::ToolBarManager::Implementation::mbPreUpdatePending
private

Definition at line 310 of file ToolBarManager.cxx.

◆ mnLockCount

sal_Int32 sd::ToolBarManager::Implementation::mnLockCount
private

Definition at line 309 of file ToolBarManager.cxx.

◆ mnPendingSetValidCall

ImplSVEvent* sd::ToolBarManager::Implementation::mnPendingSetValidCall
private

Definition at line 321 of file ToolBarManager.cxx.

◆ mnPendingUpdateCall

ImplSVEvent* sd::ToolBarManager::Implementation::mnPendingUpdateCall
private

Definition at line 320 of file ToolBarManager.cxx.

◆ mpAsynchronousLayouterLock

::std::unique_ptr<LayouterLock> sd::ToolBarManager::Implementation::mpAsynchronousLayouterLock
private

Definition at line 318 of file ToolBarManager.cxx.

◆ mpEventMultiplexer

std::shared_ptr<sd::tools::EventMultiplexer> sd::ToolBarManager::Implementation::mpEventMultiplexer
private

Definition at line 304 of file ToolBarManager.cxx.

Referenced by Implementation().

◆ mpSynchronousLayouterLock

::std::unique_ptr<LayouterLock> sd::ToolBarManager::Implementation::mpSynchronousLayouterLock
private

The layouter locks manage the locking of the XLayoutManager.

The lock() and unlock() functions are not called directly because the (final) unlocking is usually done asynchronously after the list of requested toolbars is updated.

Definition at line 317 of file ToolBarManager.cxx.

◆ mpViewShellManagerLock

::std::unique_ptr<ViewShellManager::UpdateLock, o3tl::default_delete<ViewShellManager::UpdateLock> > sd::ToolBarManager::Implementation::mpViewShellManagerLock
private

Definition at line 319 of file ToolBarManager.cxx.

◆ mrBase

ViewShellBase& sd::ToolBarManager::Implementation::mrBase
private

Definition at line 303 of file ToolBarManager.cxx.

◆ mxLayouter

Reference<frame::XLayoutManager> sd::ToolBarManager::Implementation::mxLayouter
private

Definition at line 308 of file ToolBarManager.cxx.


The documentation for this class was generated from the following file: