vcl/inc/toolbox.h | 3 +++ vcl/source/window/toolbox2.cxx | 26 ++++++++++++++++++++++++++ 2 files changed, 29 insertions(+)
New commits: commit 3e7879998bde20d5d6540ef989ecfd850be97b08 Author: Prashant Pandey <[email protected]> Date: Wed Aug 7 01:20:01 2013 +0530 Show hidden toolbar items when window size is decreased When the Window size is reduced, the '>>' symbol thus appearing must also show the items, that are provided by the toolbar but are not shown because they are unchecked in Tools->Customize. Change-Id: I062bee4447126bff4ae7ad6650be3b847acc0794 Reviewed-on: https://gerrit.libreoffice.org/5296 Reviewed-by: Tor Lillqvist <[email protected]> Tested-by: Tor Lillqvist <[email protected]> diff --git a/vcl/inc/toolbox.h b/vcl/inc/toolbox.h index 4a0f6d9..96e2c57 100644 --- a/vcl/inc/toolbox.h +++ b/vcl/inc/toolbox.h @@ -112,6 +112,9 @@ struct ImplToolItem // returns sal_True if the toolbar item is currently clipped, which can happen for docked toolbars sal_Bool IsClipped() const; + // returns sal_True if the toolbar item is currently hidden i.e. they are unchecked in the toolbar Customize menu + sal_Bool IsItemHidden() const; + private: void init(sal_uInt16 nItemId, ToolBoxItemBits nItemBits, sal_Bool bEmptyBtn); }; diff --git a/vcl/source/window/toolbox2.cxx b/vcl/source/window/toolbox2.cxx index d4c7c9f..62544c6 100644 --- a/vcl/source/window/toolbox2.cxx +++ b/vcl/source/window/toolbox2.cxx @@ -365,6 +365,13 @@ sal_Bool ImplToolItem::IsClipped() const } // ----------------------------------------------------------------------- + +sal_Bool ImplToolItem::IsItemHidden() const +{ + return ( meType == TOOLBOXITEM_BUTTON && !mbVisible ); +} + +// ----------------------------------------------------------------------- // ----------------------------------------------------------------------- const OUString ToolBox::ImplConvertMenuString( const OUString& rStr ) @@ -2097,6 +2104,8 @@ void ToolBox::UpdateCustomMenu() // add menu items, starting from the end and inserting at pos 0 if ( !mpData->m_aItems.empty() ) { + // nStartPos will hold the number of clipped items appended from first loop + sal_uInt16 nSepPos = 0; for ( std::vector< ImplToolItem >::reverse_iterator it(mpData->m_aItems.rbegin()); it != mpData->m_aItems.rend(); ++it) { @@ -2105,6 +2114,23 @@ void ToolBox::UpdateCustomMenu() sal_uInt16 id = it->mnId + TOOLBOX_MENUITEM_START; pMenu->InsertItem( id, it->maText, it->maImage, 0, OString(), 0 ); pMenu->EnableItem( id, it->mbEnabled ); + pMenu->CheckItem ( id, it->meState == STATE_CHECK ); + nSepPos++; + } + } + + // add a seperator below the inserted clipped-items + pMenu->InsertSeparator( OString(), nSepPos ); + + // now append the items that are explicitly disabled + for ( std::vector< ImplToolItem >::reverse_iterator it(mpData->m_aItems.rbegin()); + it != mpData->m_aItems.rend(); ++it) + { + if( it->IsItemHidden() ) + { + sal_uInt16 id = it->mnId + TOOLBOX_MENUITEM_START; + pMenu->InsertItem( id, it->maText, it->maImage, 0, OString(), nSepPos+1 ); + pMenu->EnableItem( id, it->mbEnabled ); pMenu->CheckItem( id, it->meState == STATE_CHECK ); } } _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
