Hello! 2012/1/13 Ivan Timofeev <timofeev....@gmail.com>
> Hello, > > 13.01.2012 18:15, Tomcsik Bence Tibor пишет: > >> Hi, >> >> Bug 33794 solved. >> > > IMHO it's better to pass some additional parameter to the layoutButton > function ( e.g. int i_nExtraWidth = 0 ) and change: > > nTextWidth += maButtonImageSize.Width() + 8; // add some fuzz to be on > the safe side > > to: > > nTextWidth += maButtonImageSize.Width() + 8 + i_nExtraWidth; > > ; then use i_nExtraWidth = 18 (as you suggested in the patch: 26 - 8 = 18) > for the "Open..." button. > > What do you think? > > Regards, > Ivan > You are absolutely right. Because of your idea, I checked the code again, and I realized that I calculated twice the widths.. There's no need to do the maximum search, because the layoutButton function does it and hereafter considers the extra width. Passing the int i_nExtraWidth parameter to the layoutButton function will fix the bug much easier. Thank you for the idea. I send the new patch.
From d0f61faddc9f4486931ac75f6eeac2503e686e96 Mon Sep 17 00:00:00 2001 From: Tomcsik Bence <tomcsikbe...@gmail.com> Date: Sat, 14 Jan 2012 00:14:45 +0100 Subject: [PATCH] I added a new parameter to the layoutButton function fdo#33794 By adding a int i_nExtraWidth parameter to the layoutButton function there will be enough space for the open button and its black triangle. --- framework/source/services/backingwindow.cxx | 20 ++++++++++---------- framework/source/services/backingwindow.hxx | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/framework/source/services/backingwindow.cxx b/framework/source/services/backingwindow.cxx index a28f80f..2db5879 100644 --- a/framework/source/services/backingwindow.cxx +++ b/framework/source/services/backingwindow.cxx @@ -572,33 +572,33 @@ void BackingWindow::initControls() } // layout the buttons - layoutButton( WRITER_URL, 0, aFileNewAppsAvailable, + layoutButton( WRITER_URL, 0, 0, aFileNewAppsAvailable, aModuleOptions, SvtModuleOptions::E_SWRITER, maWriterButton, aMnemns ); - layoutButton( DRAW_URL, 1, aFileNewAppsAvailable, + layoutButton( DRAW_URL, 1, 0, aFileNewAppsAvailable, aModuleOptions, SvtModuleOptions::E_SDRAW, maDrawButton, aMnemns ); nYPos += maButtonImageSize.Height() + 10; - layoutButton( CALC_URL, 0, aFileNewAppsAvailable, + layoutButton( CALC_URL, 0, 0, aFileNewAppsAvailable, aModuleOptions, SvtModuleOptions::E_SCALC, maCalcButton, aMnemns ); - layoutButton( BASE_URL, 1, aFileNewAppsAvailable, + layoutButton( BASE_URL, 1, 0, aFileNewAppsAvailable, aModuleOptions, SvtModuleOptions::E_SDATABASE, maDBButton, aMnemns ); nYPos += maButtonImageSize.Height() + 10; - layoutButton( IMPRESS_WIZARD_URL, 0, aFileNewAppsAvailable, + layoutButton( IMPRESS_WIZARD_URL, 0, 0, aFileNewAppsAvailable, aModuleOptions, SvtModuleOptions::E_SIMPRESS, maImpressButton, aMnemns ); - layoutButton( MATH_URL, 1, aFileNewAppsAvailable, + layoutButton( MATH_URL, 1, 0, aFileNewAppsAvailable, aModuleOptions, SvtModuleOptions::E_SMATH, maMathButton, aMnemns ); nYPos += 3*maButtonImageSize.Height() / 2; - layoutButton( NULL, 0, aFileNewAppsAvailable, + layoutButton( NULL, 0, 18, aFileNewAppsAvailable, aModuleOptions, SvtModuleOptions::E_SWRITER, maOpenButton, aMnemns, maOpenString ); - layoutButton( NULL, 1, aFileNewAppsAvailable, + layoutButton( NULL, 1, 0, aFileNewAppsAvailable, aModuleOptions, SvtModuleOptions::E_SWRITER, maTemplateButton, aMnemns, maTemplateString ); nYPos += 10; @@ -664,7 +664,7 @@ void BackingWindow::loadImage( const ResId& i_rId, PushButton& i_rButton ) } void BackingWindow::layoutButton( - const char* i_pURL, int nColumn, + const char* i_pURL, int nColumn, int i_nExtraWidth, const std::set<rtl::OUString>& i_rURLS, SvtModuleOptions& i_rOpt, SvtModuleOptions::EModule i_eMod, PushButton& i_rBtn, @@ -690,7 +690,7 @@ void BackingWindow::layoutButton( long nTextWidth = i_rBtn.GetTextWidth( i_rBtn.GetText() ); - nTextWidth += maButtonImageSize.Width() + 8; // add some fuzz to be on the safe side + nTextWidth += maButtonImageSize.Width() + 8 + i_nExtraWidth; // add some fuzz to be on the safe side if( nColumn >= 0 && nColumn < static_cast<int>(SAL_N_ELEMENTS(mnColumnWidth)) ) { if( nTextWidth > mnColumnWidth[nColumn] ) diff --git a/framework/source/services/backingwindow.hxx b/framework/source/services/backingwindow.hxx index 410862f..179a632 100644 --- a/framework/source/services/backingwindow.hxx +++ b/framework/source/services/backingwindow.hxx @@ -144,7 +144,7 @@ namespace framework void loadImage( const ResId& i_rId, PushButton& i_rButton ); - void layoutButton( const char* i_pURL, int nColumn, const std::set<rtl::OUString>& i_rURLS, + void layoutButton( const char* i_pURL, int nColumn, int i_nExtraWidth, const std::set<rtl::OUString>& i_rURLS, SvtModuleOptions& i_rOpt, SvtModuleOptions::EModule i_eMod, PushButton& i_rBtn, MnemonicGenerator& i_rMnemonicGen, -- 1.7.7
_______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice