Kaydet (Commit) ca7264d7 authored tarafından Andre Fischer's avatar Andre Fischer

122320: Show closer after docking sidebar. Prevent sidebar from being docked…

122320: Show closer after docking sidebar.  Prevent sidebar from being docked above or below edit view.
üst e785c512
...@@ -1022,11 +1022,13 @@ bool SidebarController::CanModifyChildWindowWidth (void) ...@@ -1022,11 +1022,13 @@ bool SidebarController::CanModifyChildWindowWidth (void)
sal_uInt16 nRow (0xffff); sal_uInt16 nRow (0xffff);
sal_uInt16 nColumn (0xffff); sal_uInt16 nColumn (0xffff);
pSplitWindow->GetWindowPos(mpParentWindow, nColumn, nRow); if (pSplitWindow->GetWindowPos(mpParentWindow, nColumn, nRow))
{
sal_uInt16 nRowCount (pSplitWindow->GetWindowCount(nColumn)); sal_uInt16 nRowCount (pSplitWindow->GetWindowCount(nColumn));
return nRowCount==1;
return nRowCount==1; }
else
return false;
} }
...@@ -1078,17 +1080,23 @@ void SidebarController::RestrictWidth (void) ...@@ -1078,17 +1080,23 @@ void SidebarController::RestrictWidth (void)
SfxSplitWindow* SidebarController::GetSplitWindow (void) SfxSplitWindow* SidebarController::GetSplitWindow (void)
{ {
if (mpSplitWindow == NULL) if (mpParentWindow != NULL)
{ {
if (mpParentWindow != NULL) SfxSplitWindow* pSplitWindow = dynamic_cast<SfxSplitWindow*>(mpParentWindow->GetParent());
if (pSplitWindow != mpSplitWindow)
{ {
mpSplitWindow = dynamic_cast<SfxSplitWindow*>(mpParentWindow->GetParent()); if (mpSplitWindow != NULL)
mpSplitWindow->RemoveEventListener(LINK(this, SidebarController, WindowEventHandler));
mpSplitWindow = pSplitWindow;
if (mpSplitWindow != NULL) if (mpSplitWindow != NULL)
mpSplitWindow->AddEventListener(LINK(this, SidebarController, WindowEventHandler)); mpSplitWindow->AddEventListener(LINK(this, SidebarController, WindowEventHandler));
} }
return mpSplitWindow;
} }
else
return mpSplitWindow; return NULL;
} }
......
...@@ -108,4 +108,34 @@ sal_Bool SidebarDockingWindow::Close (void) ...@@ -108,4 +108,34 @@ sal_Bool SidebarDockingWindow::Close (void)
} }
SfxChildAlignment SidebarDockingWindow::CheckAlignment (
SfxChildAlignment eCurrentAlignment,
SfxChildAlignment eRequestedAlignment)
{
switch (eRequestedAlignment)
{
case SFX_ALIGN_TOP:
case SFX_ALIGN_HIGHESTTOP:
case SFX_ALIGN_LOWESTTOP:
case SFX_ALIGN_BOTTOM:
case SFX_ALIGN_LOWESTBOTTOM:
case SFX_ALIGN_HIGHESTBOTTOM:
return eCurrentAlignment;
case SFX_ALIGN_LEFT:
case SFX_ALIGN_RIGHT:
case SFX_ALIGN_FIRSTLEFT:
case SFX_ALIGN_LASTLEFT:
case SFX_ALIGN_FIRSTRIGHT:
case SFX_ALIGN_LASTRIGHT:
return eRequestedAlignment;
default:
return eRequestedAlignment;
}
}
} } // end of namespace sfx2::sidebar } } // end of namespace sfx2::sidebar
...@@ -53,6 +53,10 @@ protected: ...@@ -53,6 +53,10 @@ protected:
// Window overridables // Window overridables
virtual void GetFocus (void); virtual void GetFocus (void);
virtual SfxChildAlignment CheckAlignment (
SfxChildAlignment eCurrentAlignment,
SfxChildAlignment eRequestedAlignment);
private: private:
::rtl::Reference<sfx2::sidebar::SidebarController> mpSidebarController; ::rtl::Reference<sfx2::sidebar::SidebarController> mpSidebarController;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment