Kaydet (Commit) c5ecb299 authored tarafından Maxim Monastirsky's avatar Maxim Monastirsky

Move toolbars to the border window tearoff mechanism

and remove the one from ImplPopupFloatWin. Implemented using
the FloatWinTitleType::TearOff case, which was unused otherwise.

Change-Id: I82a86e5f5897ce1f2e76a2404bb382cbc007700c
Reviewed-on: https://gerrit.libreoffice.org/48095Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarMaxim Monastirsky <momonasmon@gmail.com>
üst 829b0564
......@@ -112,7 +112,7 @@ private:
DECL_LINK( PopupModeEnd, FloatingWindow*, void );
void ImplEnableStartDocking() { mbStartDockingEnabled = true; }
bool ImplStartDockingEnabled() const { return mbStartDockingEnabled; }
void ImplPreparePopupMode( FloatWinPopupFlags nFlags );
void ImplPreparePopupMode();
public:
ImplDockingWindowWrapper( const vcl::Window *pWindow );
......
......@@ -483,8 +483,6 @@ public:
void SetFloatTitleHeight( long nSize );
long GetFloatTitleHeight() const;
long GetTearOffTitleHeight() const;
void SetScrollBarSize( long nSize );
long GetScrollBarSize() const;
......
......@@ -156,7 +156,6 @@ struct ImplStyleData
long mnBorderSize;
long mnTitleHeight;
long mnFloatTitleHeight;
long mnTearOffTitleHeight;
long mnScrollBarSize;
long mnSplitSize;
long mnSpinSize;
......@@ -632,7 +631,6 @@ ImplStyleData::ImplStyleData( const ImplStyleData& rData ) :
mnBorderSize = rData.mnBorderSize;
mnTitleHeight = rData.mnTitleHeight;
mnFloatTitleHeight = rData.mnFloatTitleHeight;
mnTearOffTitleHeight = rData.mnTearOffTitleHeight;
mnScrollBarSize = rData.mnScrollBarSize;
mnMinThumbSize = rData.mnMinThumbSize;
mnSplitSize = rData.mnSplitSize;
......@@ -752,7 +750,6 @@ void ImplStyleData::SetStandardStyles()
mnBorderSize = 1;
mnTitleHeight = 18;
mnFloatTitleHeight = 13;
mnTearOffTitleHeight = 8;
mbHighContrast = false;
mbUseSystemUIFonts = true;
mnUseFlatBorders = false;
......@@ -1755,12 +1752,6 @@ StyleSettings::GetFloatTitleHeight() const
return mxData->mnFloatTitleHeight;
}
long
StyleSettings::GetTearOffTitleHeight() const
{
return mxData->mnTearOffTitleHeight;
}
void
StyleSettings::SetScrollBarSize( long nSize )
{
......@@ -2286,7 +2277,6 @@ bool StyleSettings::operator ==( const StyleSettings& rSet ) const
(mxData->mnBorderSize == rSet.mxData->mnBorderSize) &&
(mxData->mnTitleHeight == rSet.mxData->mnTitleHeight) &&
(mxData->mnFloatTitleHeight == rSet.mxData->mnFloatTitleHeight) &&
(mxData->mnTearOffTitleHeight == rSet.mxData->mnTearOffTitleHeight) &&
(mxData->mnScrollBarSize == rSet.mxData->mnScrollBarSize) &&
(mxData->mnMinThumbSize == rSet.mxData->mnMinThumbSize) &&
(mxData->mnSplitSize == rSet.mxData->mnSplitSize) &&
......
......@@ -36,6 +36,7 @@
#include <vcl/edit.hxx>
#include <vcl/metric.hxx>
#include <vcl/settings.hxx>
#include <vcl/toolbox.hxx>
using namespace ::com::sun::star::uno;
......@@ -153,7 +154,7 @@ void ImplBorderWindowView::ImplInitTitle(ImplBorderFrameData* pData)
{
const StyleSettings& rStyleSettings = pData->mpOutDev->GetSettings().GetStyleSettings();
if (pData->mnTitleType == BorderWindowTitleType::Tearoff)
pData->mnTitleHeight = rStyleSettings.GetTearOffTitleHeight();
pData->mnTitleHeight = ToolBox::ImplGetDragWidth(*pData->mpBorderWindow.get(), false) + 2;
else
{
if (pData->mnTitleType == BorderWindowTitleType::Small)
......@@ -279,6 +280,9 @@ bool ImplBorderWindowView::ImplMouseMove( ImplBorderFrameData* pData, const Mous
pData->mnCloseState |= DrawButtonFlags::Highlight;
else if ( nHitTest & BorderWindowHitTest::Menu )
pData->mnMenuState |= DrawButtonFlags::Highlight;
else if ( nHitTest & BorderWindowHitTest::Title &&
pData->mnTitleType == BorderWindowTitleType::Tearoff && !rMEvt.IsLeaveWindow() )
ePtrStyle = PointerStyle::Move;
pData->mpBorderWindow->SetPointer( Pointer( ePtrStyle ) );
if( pData->mnCloseState != oldCloseState )
......@@ -1310,7 +1314,8 @@ void ImplStdBorderWindowView::Init( OutputDevice* pDev, long nWidth, long nHeigh
if (pData->mnTitleHeight)
{
// to improve symbol display force a minimum title height
if( pData->mnTitleHeight < MIN_CAPTION_HEIGHT )
if (pData->mnTitleType != BorderWindowTitleType::Tearoff &&
pData->mnTitleHeight < MIN_CAPTION_HEIGHT)
pData->mnTitleHeight = MIN_CAPTION_HEIGHT;
// set a proper background for drawing
......@@ -1418,7 +1423,7 @@ void ImplStdBorderWindowView::DrawWindow(vcl::RenderContext& rRenderContext, con
vcl::Region oldClipRgn(rRenderContext.GetClipRegion());
// for popups, don't draw part of the frame
if (pData->mnTitleType >= BorderWindowTitleType::Popup)
if (pData->mnTitleType >= BorderWindowTitleType::Tearoff)
{
FloatingWindow* pWin = dynamic_cast<FloatingWindow*>(pData->mpBorderWindow->GetWindow(GetWindowType::Client));
if (pWin)
......@@ -1444,7 +1449,7 @@ void ImplStdBorderWindowView::DrawWindow(vcl::RenderContext& rRenderContext, con
--aInRect.Bottom();
// restore
if (pData->mnTitleType >= BorderWindowTitleType::Popup)
if (pData->mnTitleType >= BorderWindowTitleType::Tearoff)
rRenderContext.SetClipRegion(oldClipRgn);
// Draw Border
......@@ -1469,10 +1474,12 @@ void ImplStdBorderWindowView::DrawWindow(vcl::RenderContext& rRenderContext, con
aInRect = pData->maTitleRect;
// use no gradient anymore, just a static titlecolor
if (pData->mnTitleType != BorderWindowTitleType::Popup)
rRenderContext.SetFillColor(aFrameColor);
else
if (pData->mnTitleType == BorderWindowTitleType::Tearoff)
rRenderContext.SetFillColor(rStyleSettings.GetFaceGradientColor());
else if (pData->mnTitleType == BorderWindowTitleType::Popup)
rRenderContext.SetFillColor(aFaceColor);
else
rRenderContext.SetFillColor(aFrameColor);
rRenderContext.SetTextColor(rStyleSettings.GetButtonTextColor());
tools::Rectangle aTitleRect(pData->maTitleRect);
......@@ -1510,6 +1517,11 @@ void ImplStdBorderWindowView::DrawWindow(vcl::RenderContext& rRenderContext, con
rRenderContext.DrawText(aInRect, pBorderWindow->GetText(), nTextStyle);
}
else
{
ToolBox::ImplDrawGrip(rRenderContext, aTitleRect, ToolBox::ImplGetDragWidth(rRenderContext, false),
WindowAlign::Left, false);
}
}
if (!pData->maCloseRect.IsEmpty())
......
This diff is collapsed.
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