29#include <osl/diagnose.h>
37class FormShellManagerFactory
41 FormShellManagerFactory (ViewShell& rViewShell, FormShellManager& rManager);
43 virtual void ReleaseShell (
SfxShell* pShell)
override;
47 FormShellManager& mrFormShellManager;
55 mbFormShellAboveViewShell(false),
56 mbIsMainViewChangePending(false),
57 mpMainViewShellWindow(nullptr)
79 if (pShell !=
nullptr)
111 FormControlActivated));
115 if (pMainViewShell !=
nullptr)
134 if (pShell ==
nullptr)
152 WindowEventHandler));
170 WindowEventHandler));
179 if (pShell !=
nullptr)
193 ViewShell* pShell = mrBase.GetMainViewShell().get();
194 if (pShell!=
nullptr && !mbFormShellAboveViewShell)
196 mbFormShellAboveViewShell =
true;
199 mrBase.GetViewShellManager()->SetFormShell(pShell,mpFormShell,mbFormShellAboveViewShell);
205 switch (rEvent.meEventId)
208 UnregisterAtCenterPane();
212 mbIsMainViewChangePending =
true;
216 if (mbIsMainViewChangePending)
218 mbIsMainViewChangePending =
false;
219 RegisterAtCenterPane();
230 switch (rEvent.GetId())
232 case VclEventId::WindowGetFocus:
237 ViewShell* pShell = mrBase.GetMainViewShell().get();
238 if (pShell!=
nullptr && mbFormShellAboveViewShell)
240 mbFormShellAboveViewShell =
false;
242 mrBase.GetViewShellManager()->SetFormShell(
245 mbFormShellAboveViewShell);
250 case VclEventId::WindowLoseFocus:
258 case VclEventId::ObjectDying:
259 mpMainViewShellWindow =
nullptr;
268 if (rHint.
GetId()!=SfxHintId::Dying)
289FormShellManagerFactory::FormShellManagerFactory (
293 mrFormShellManager(rManager)
302 if (nId == ToolbarId::FormLayer_Toolbox)
305 mrFormShellManager.SetFormShell(pShell);
311void FormShellManagerFactory::ReleaseShell (
SfxShell* pShell)
313 if (pShell !=
nullptr)
315 mrFormShellManager.SetFormShell(
nullptr);
@ MainViewRemoved
The current MainViewShell (the ViewShell displayed in the center pane) has been removed.
@ MainViewAdded
A new ViewShell has been made the MainViewShell.
@ ConfigurationUpdated
A configuration update has been completed.
void StartListening(SfxBroadcaster &rBroadcaster, DuplicateHandling eDuplicateHanding=DuplicateHandling::Unexpected)
void EndListening(SfxBroadcaster &rBroadcaster, bool bRemoveAllDuplicates=false)
SfxViewShell descendant that the stacked Draw/Impress shells are based on.
std::shared_ptr< ViewShell > GetMainViewShell() const
Return the main view shell stacked on the called ViewShellBase object.
std::shared_ptr< tools::EventMultiplexer > const & GetEventMultiplexer() const
Return an event multiplexer.
std::shared_ptr< ViewShellManager > const & GetViewShellManager() const
Use this class to safely lock updates of the view shell stack.
Base class of the stacked shell hierarchy.
::sd::Window * GetActiveWindow() const
The active window is usually the mpContentWindow.
::sd::View * GetView() const
SD_DLLPUBLIC ShellType GetShellType() const
Return the type of the shell.
#define suppress_fun_call_w_exception(expr)
#define LINK(Instance, Class, Member)
IMPL_LINK_NOARG(MainSequence, onTimerHdl, Timer *, void)
IMPL_LINK(SdCharHeightPropertyBox, implMenuSelectHdl, const OUString &, rIdent, void)