diff options
author | Christian Lippka <christian.lippka@sun.com> | 2010-03-23 13:56:35 +0100 |
---|---|---|
committer | Christian Lippka <christian.lippka@sun.com> | 2010-03-23 13:56:35 +0100 |
commit | e95181408ebf1a010c9286e0059cccfeb6425619 (patch) | |
tree | 103349b395737bb1941a0f638c1e4d924466788d /svtools/source | |
parent | c10f069c3385a7c55a9042315f7fe3a83fc56fd3 (diff) |
adjusted spacing of menu items
Diffstat (limited to 'svtools/source')
-rw-r--r-- | svtools/source/control/toolbarmenu.cxx | 95 | ||||
-rw-r--r-- | svtools/source/control/toolbarmenuimp.hxx | 4 |
2 files changed, 36 insertions, 63 deletions
diff --git a/svtools/source/control/toolbarmenu.cxx b/svtools/source/control/toolbarmenu.cxx index a16f60bc5822..47c95ecb0038 100644 --- a/svtools/source/control/toolbarmenu.cxx +++ b/svtools/source/control/toolbarmenu.cxx @@ -591,102 +591,73 @@ Size ToolbarMenu::implCalcSize() Size aSz; Size aMaxImgSz; long nMaxTextWidth = 0; - long nMinMenuItemHeight = nFontHeight; + long nMinMenuItemHeight = nFontHeight+2; sal_Bool bCheckable = sal_False; const int nEntryCount = mpImpl->maEntryVector.size(); int nEntry; const StyleSettings& rSettings = GetSettings().GetStyleSettings(); - if ( rSettings.GetUseImagesInMenus() ) - { - nMinMenuItemHeight = 16; + const bool bUseImages = rSettings.GetUseImagesInMenus(); + // get maximum image size + if( bUseImages ) + { for( nEntry = 0; nEntry < nEntryCount; nEntry++ ) { ToolbarMenuEntry* pEntry = mpImpl->maEntryVector[nEntry]; if( pEntry && pEntry->mbHasImage ) { - Size aImgSz = pEntry->maImage.GetSizePixel(); - if ( aImgSz.Height() > aMaxImgSz.Height() ) - aMaxImgSz.Height() = aImgSz.Height(); - if ( aImgSz.Height() > nMinMenuItemHeight ) - nMinMenuItemHeight = aImgSz.Height(); - break; - } - } - } - - for( nEntry = 0; nEntry < nEntryCount; nEntry++ ) - { - ToolbarMenuEntry* pEntry = mpImpl->maEntryVector[nEntry]; - - if( pEntry ) - { - pEntry->maSize.Height() = 0; - pEntry->maSize.Width() = 0; - - - if ( ( pEntry->mnBits ) & ( MIB_RADIOCHECK | MIB_CHECKABLE ) ) - bCheckable = sal_True; - - // Image: - if( pEntry->mbHasImage ) - { - Size aImgSz = pEntry->maImage.GetSizePixel(); - if ( (aImgSz.Width() + 4) > aMaxImgSz.Width() ) - aMaxImgSz.Width() = aImgSz.Width() + 4; - if ( (aImgSz.Height() + 4) > aMaxImgSz.Height() ) - aMaxImgSz.Height() = aImgSz.Height() + 4; - if ( (aImgSz.Height() + 4) > pEntry->maSize.Height() ) - pEntry->maSize.Height() = aImgSz.Height() + 4; + Size aImgSz( pEntry->maImage.GetSizePixel() ); + nMinMenuItemHeight = std::max( nMinMenuItemHeight, aImgSz.Height() + 6 ); + aMaxImgSz.Width() = std::max( aMaxImgSz.Width(), aImgSz.Width() ); } } } - int gfxExtra = Max( nExtra, 7L ); + mpImpl->mnCheckPos = nExtra; + mpImpl->mnImagePos = nExtra; + mpImpl->mnTextPos = mpImpl->mnImagePos + aMaxImgSz.Width(); if ( aMaxImgSz.Width() ) - mpImpl->mnTextPos += gfxExtra; + mpImpl->mnTextPos += std::max( nExtra, 7L ); if ( bCheckable ) mpImpl->mnTextPos += 16; - mpImpl->mnCheckPos = nExtra; - mpImpl->mnImagePos = nExtra; - mpImpl->mnTextPos = mpImpl->mnImagePos + aMaxImgSz.Width(); - + // set heights, calc maximum width for( nEntry = 0; nEntry < nEntryCount; nEntry++ ) { ToolbarMenuEntry* pEntry = mpImpl->maEntryVector[nEntry]; if( pEntry ) { + if ( ( pEntry->mnBits ) & ( MIB_RADIOCHECK | MIB_CHECKABLE ) ) + bCheckable = sal_True; + // Text: - if( pEntry->mbHasText ) + if( pEntry->mbHasText || pEntry->mbHasImage ) { - long nTextWidth = GetCtrlTextWidth( pEntry->maText ) + mpImpl->mnTextPos; - nMaxTextWidth = Max( nTextWidth, nMaxTextWidth ); + pEntry->maSize.Height() = nMinMenuItemHeight; - pEntry->maSize.Height() = Max( Max( GetTextHeight(), pEntry->maSize.Height() ), nMinMenuItemHeight ); + if( pEntry->mbHasText ) + { + long nTextWidth = GetCtrlTextWidth( pEntry->maText ) + mpImpl->mnTextPos + nExtra; + nMaxTextWidth = std::max( nTextWidth, nMaxTextWidth ); + } } // Control: else if( pEntry->mpControl ) { Size aControlSize( pEntry->mpControl->GetOutputSizePixel() ); - nMaxTextWidth = Max( aControlSize.Width(), nMaxTextWidth ); - pEntry->maSize.Height() = Max( aControlSize.Height(), pEntry->maSize.Height() ) + 1; + nMaxTextWidth = std::max( aControlSize.Width(), nMaxTextWidth ); + pEntry->maSize.Height() = aControlSize.Height() + 1; } - aSz.Height() += pEntry->maSize.Height(); - } - else - { - aSz.Height() += SEPARATOR_HEIGHT; + } } aSz.Width() = nMaxTextWidth + (BORDER_X<<1); - aSz.Height() += BORDER_Y<<1; // positionate controls int nY = BORDER_Y; @@ -696,12 +667,12 @@ Size ToolbarMenu::implCalcSize() if( pEntry ) { + pEntry->maSize.Width() = nMaxTextWidth; + if( pEntry->mpControl ) { Size aControlSize( pEntry->mpControl->GetOutputSizePixel() ); Point aControlPos( (aSz.Width() - aControlSize.Width())>>1, nY); - if( pEntry->mbHasText ) - aControlPos.X() += GetCtrlTextWidth( pEntry->maText ) + 4*gfxExtra; pEntry->mpControl->SetPosPixel( aControlPos ); @@ -720,6 +691,8 @@ Size ToolbarMenu::implCalcSize() } } + aSz.Height() += nY + BORDER_Y; + return aSz; } @@ -1415,10 +1388,10 @@ void ToolbarMenu::implPaint( ToolbarMenuEntry* pThisOnly, bool bHighlighted ) aTmpPos.Y() += (pEntry->maSize.Height()-pEntry->maImage.GetSizePixel().Height())/2; Rectangle aSelRect( aTmpPos, pEntry->maImage.GetSizePixel() ); - aSelRect.nLeft -= 2; - aSelRect.nTop -= 2; - aSelRect.nRight += 2; - aSelRect.nBottom += 2; + aSelRect.nLeft -= 1; + aSelRect.nTop -= 1; + aSelRect.nRight += 1; + aSelRect.nBottom += 1; DrawSelectionBackground( aSelRect, false, true, TRUE, TRUE ); } else diff --git a/svtools/source/control/toolbarmenuimp.hxx b/svtools/source/control/toolbarmenuimp.hxx index d1c574da4d33..9e30ac24666c 100644 --- a/svtools/source/control/toolbarmenuimp.hxx +++ b/svtools/source/control/toolbarmenuimp.hxx @@ -61,8 +61,8 @@ typedef std::vector< ToolbarMenuEntry * > ToolbarMenuEntryVector; const int EXTRAITEMHEIGHT = 0; // 4; const int SEPARATOR_HEIGHT = 4; const int TITLE_ID = -1; -const int BORDER_X = 0; -const int BORDER_Y = 0; +const int BORDER_X = 2; +const int BORDER_Y = 2; // -------------------- // - ToolbarMenuEntry - |