diff options
author | Ivan Timofeev <timofeev.i.s@gmail.com> | 2012-06-27 22:06:01 +0400 |
---|---|---|
committer | Ivan Timofeev <timofeev.i.s@gmail.com> | 2012-06-28 13:52:02 +0400 |
commit | b4fae0294601ac8e72f350ab9f7061532acd4210 (patch) | |
tree | 9308cb29220d2cdb70e4eb576a64688695058dec /vcl | |
parent | 044eae119281b9521e70e64aabd42f5142cb54d0 (diff) |
FloatingSizeMode is always FSMODE_AUTO, remove it
Change-Id: I0468ff6deaf701ed3d155db1ff3f0f0c204e1199
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/inc/vcl/toolbox.hxx | 5 | ||||
-rw-r--r-- | vcl/source/window/toolbox.cxx | 89 |
2 files changed, 43 insertions, 51 deletions
diff --git a/vcl/inc/vcl/toolbox.hxx b/vcl/inc/vcl/toolbox.hxx index 22901be7aa1a..fd410d9da7a9 100644 --- a/vcl/inc/vcl/toolbox.hxx +++ b/vcl/inc/vcl/toolbox.hxx @@ -155,9 +155,6 @@ enum ToolBoxItemType { TOOLBOXITEM_DONTKNOW, TOOLBOXITEM_BUTTON, // dontcare will let the toolbox decide about its size enum ToolBoxButtonSize { TOOLBOX_BUTTONSIZE_DONTCARE, TOOLBOX_BUTTONSIZE_SMALL, TOOLBOX_BUTTONSIZE_LARGE }; -// used for internal sizing calculations -enum FloatingSizeMode { FSMODE_AUTO, FSMODE_FAVOURWIDTH, FSMODE_FAVOURHEIGHT }; - // TBX_LAYOUT_NORMAL - traditional layout, items are centered in the toolbar // TBX_LAYOUT_LOCKVERT - special mode (currently used for calc input/formula // bar) where item's vertical position is locked, e.g. @@ -287,7 +284,7 @@ private: SAL_DLLPRIVATE sal_Bool ImplIsFloatingMode() const; SAL_DLLPRIVATE sal_Bool ImplIsInPopupMode() const; SAL_DLLPRIVATE const XubString& ImplGetHelpText( sal_uInt16 nItemId ) const; - SAL_DLLPRIVATE Size ImplGetOptimalFloatingSize( FloatingSizeMode eMode ); + SAL_DLLPRIVATE Size ImplGetOptimalFloatingSize(); SAL_DLLPRIVATE sal_Bool ImplHasExternalMenubutton(); SAL_DLLPRIVATE void ImplDrawFloatwinBorder( ImplToolItem* pItem ); diff --git a/vcl/source/window/toolbox.cxx b/vcl/source/window/toolbox.cxx index 8470d25ebd85..eaf0be71e765 100644 --- a/vcl/source/window/toolbox.cxx +++ b/vcl/source/window/toolbox.cxx @@ -2156,7 +2156,7 @@ sal_uInt16 ToolBox::ImplCalcBreaks( long nWidth, long* pMaxLineWidth, sal_Bool b // ----------------------------------------------------------------------- -Size ToolBox::ImplGetOptimalFloatingSize( FloatingSizeMode eMode ) +Size ToolBox::ImplGetOptimalFloatingSize() { if( !ImplIsFloatingMode() ) return Size(); @@ -2166,60 +2166,55 @@ Size ToolBox::ImplGetOptimalFloatingSize( FloatingSizeMode eMode ) Size aSize2( aCurrentSize ); // try to preserve current height - if( eMode == FSMODE_AUTO || eMode == FSMODE_FAVOURHEIGHT ) - { - // calc number of floating lines for current window height - sal_uInt16 nFloatLinesHeight = ImplCalcLines( this, mnDY ); - // calc window size according to this number - aSize1 = ImplCalcFloatSize( this, nFloatLinesHeight ); - if( eMode == FSMODE_FAVOURHEIGHT || aCurrentSize == aSize1 ) - return aSize1; - } + // calc number of floating lines for current window height + sal_uInt16 nFloatLinesHeight = ImplCalcLines( this, mnDY ); + // calc window size according to this number + aSize1 = ImplCalcFloatSize( this, nFloatLinesHeight ); - if( eMode == FSMODE_AUTO || eMode == FSMODE_FAVOURWIDTH ) - { - // try to preserve current width - long nLineHeight = ( mnWinHeight > mnMaxItemHeight ) ? mnWinHeight : mnMaxItemHeight; - int nBorderX = 2*TB_BORDER_OFFSET1 + mnLeftBorder + mnRightBorder; - int nBorderY = 2*TB_BORDER_OFFSET2 + mnTopBorder + mnBottomBorder; - Size aSz( aCurrentSize ); - long maxX; - sal_uInt16 nLines = ImplCalcBreaks( aSz.Width()-nBorderX, &maxX, mbHorz ); + if( aCurrentSize == aSize1 ) + return aSize1; - sal_uInt16 manyLines = 1000; - Size aMinimalFloatSize = ImplCalcFloatSize( this, manyLines ); + // try to preserve current width - aSz.Height() = nBorderY + nLineHeight * nLines; - // line space when more than one line - if ( mnWinStyle & WB_LINESPACING ) - aSz.Height() += (nLines-1)*TB_LINESPACING; + long nLineHeight = ( mnWinHeight > mnMaxItemHeight ) ? mnWinHeight : mnMaxItemHeight; + int nBorderX = 2*TB_BORDER_OFFSET1 + mnLeftBorder + mnRightBorder; + int nBorderY = 2*TB_BORDER_OFFSET2 + mnTopBorder + mnBottomBorder; + Size aSz( aCurrentSize ); + long maxX; + sal_uInt16 nLines = ImplCalcBreaks( aSz.Width()-nBorderX, &maxX, mbHorz ); - aSz.Width() = nBorderX + maxX; + sal_uInt16 manyLines = 1000; + Size aMinimalFloatSize = ImplCalcFloatSize( this, manyLines ); - // avoid clipping of any items - if( aSz.Width() < aMinimalFloatSize.Width() ) - aSize2 = ImplCalcFloatSize( this, nLines ); - else - aSize2 = aSz; + aSz.Height() = nBorderY + nLineHeight * nLines; + // line space when more than one line + if ( mnWinStyle & WB_LINESPACING ) + aSz.Height() += (nLines-1)*TB_LINESPACING; - if( eMode == FSMODE_FAVOURWIDTH || aCurrentSize == aSize2 ) - return aSize2; - else - { - // set the size with the smallest delta as the current size - long dx1 = abs( mnDX - aSize1.Width() ); - long dy1 = abs( mnDY - aSize1.Height() ); + aSz.Width() = nBorderX + maxX; - long dx2 = abs( mnDX - aSize2.Width() ); - long dy2 = abs( mnDY - aSize2.Height() ); + // avoid clipping of any items + if( aSz.Width() < aMinimalFloatSize.Width() ) + aSize2 = ImplCalcFloatSize( this, nLines ); + else + aSize2 = aSz; + + if( aCurrentSize == aSize2 ) + return aSize2; + + // set the size with the smallest delta as the current size + long dx1 = abs( mnDX - aSize1.Width() ); + long dy1 = abs( mnDY - aSize1.Height() ); + + long dx2 = abs( mnDX - aSize2.Width() ); + long dy2 = abs( mnDY - aSize2.Height() ); + + if( dx1*dy1 < dx2*dy2 ) + aCurrentSize = aSize1; + else + aCurrentSize = aSize2; - if( dx1*dy1 < dx2*dy2 ) - aCurrentSize = aSize1; - else - aCurrentSize = aSize2; - } - } return aCurrentSize; } @@ -2304,7 +2299,7 @@ void ToolBox::ImplFormat( sal_Bool bResize ) if ( bResize ) mnFloatLines = ImplCalcLines( this, mnDY ); else - SetOutputSizePixel( ImplGetOptimalFloatingSize( FSMODE_AUTO ) ); + SetOutputSizePixel( ImplGetOptimalFloatingSize() ); } // Horizontal |