1 Index: vcl/inc/menu.hxx
2 ===================================================================
3 RCS file: /cvs/gsl/vcl/inc/menu.hxx,v
4 retrieving revision 1.26
5 diff -u -p -u -r1.26 menu.hxx
6 --- vcl/inc/menu.hxx 24 Apr 2003 16:29:29 -0000 1.26
7 +++ vcl/inc/menu.hxx 20 May 2003 11:37:16 -0000
8 @@ -139,9 +139,10 @@ typedef USHORT MenuItemBits;
9 #define MIB_HELP ((MenuItemBits)0x0010)
10 #define MIB_POPUPSELECT ((MenuItemBits)0x0020)
12 -#define MENU_FLAG_NOAUTOMNEMONICS 0x0001
13 -#define MENU_FLAG_HIDEDISABLEDENTRIES 0x0002
15 +#define MENU_FLAG_NOAUTOMNEMONICS 0x0001
16 +#define MENU_FLAG_HIDEDISABLEDENTRIES 0x0002
17 +#define MENU_FLAG_SHOWCHECKIMAGES 0x0004
22 Index: sfx2/source/toolbox/tbxchild.cxx
23 ===================================================================
24 RCS file: /cvs/framework/sfx2/source/toolbox/tbxchild.cxx,v
25 retrieving revision 1.33
26 diff -u -p -u -r1.33 tbxchild.cxx
27 --- sfx2/source/toolbox/tbxchild.cxx 4 Apr 2003 17:38:56 -0000 1.33
28 +++ sfx2/source/toolbox/tbxchild.cxx 20 May 2003 11:38:20 -0000
29 @@ -940,6 +940,9 @@ void SfxToolbox::Command ( const Command
30 SfxUInt16Item aConfigItem ( SID_CONFIGITEMID, pMgr->GetType() );
31 SfxUInt16Item *pItem = &aConfigItem;
33 + pItemMenu->SetMenuFlags (pItemMenu->GetMenuFlags () |
34 + MENU_FLAG_SHOWCHECKIMAGES);
36 Point aPoint( rCEvt.GetMousePosPixel() );
37 USHORT nId = aPop.Execute( aPoint, this, (const SfxPoolItem*)pItem, 0L );
39 Index: vcl/source/window/menu.cxx
40 ===================================================================
41 RCS file: /cvs/gsl/vcl/source/window/menu.cxx,v
42 retrieving revision 1.93
43 diff -u -p -u -r1.93 menu.cxx
44 --- vcl/source/window/menu.cxx 24 Apr 2003 16:32:17 -0000 1.93
45 +++ vcl/source/window/menu.cxx 20 May 2003 13:21:01 -0000
46 @@ -1863,8 +1863,7 @@ Size Menu::ImplCalcSize( Window* pWin )
50 - long nMaxTextWidth = 0;
51 - long nMaxAccWidth = 0;
53 long nMinMenuItemHeight = nFontHeight;
55 const StyleSettings& rSettings = pWin->GetSettings().GetStyleSettings();
56 @@ -1895,6 +1894,7 @@ Size Menu::ImplCalcSize( Window* pWin )
58 if ( ImplIsVisible( n ) )
63 if ( !bIsMenuBar && ( pData->eType == MENUITEM_SEPARATOR ) )
64 @@ -1919,8 +1919,6 @@ Size Menu::ImplCalcSize( Window* pWin )
65 if ( (pData->eType == MENUITEM_STRING) || (pData->eType == MENUITEM_STRINGIMAGE) )
67 long nTextWidth = pWin->GetCtrlTextWidth( pData->aText );
68 - if ( nTextWidth > nMaxTextWidth )
69 - nMaxTextWidth = nTextWidth;
70 long nTextHeight = pWin->GetTextHeight();
72 // if ( nTextHeight > pData->aSz.Height() )
73 @@ -1936,6 +1934,7 @@ Size Menu::ImplCalcSize( Window* pWin )
76 pData->aSz.Height() = std::max( std::max( nTextHeight, pData->aSz.Height() ), nMinMenuItemHeight );
77 + nWidth += nTextWidth;
81 @@ -1944,15 +1943,14 @@ Size Menu::ImplCalcSize( Window* pWin )
82 String aName = pData->aAccelKey.GetName();
83 long nAccWidth = pWin->GetTextWidth( aName );
85 - if ( nAccWidth > nMaxAccWidth )
86 - nMaxAccWidth = nAccWidth;
87 + nWidth += nAccWidth;
91 if ( !bIsMenuBar && pData->pSubMenu )
93 - if ( nFontHeight > nMaxAccWidth )
94 - nMaxAccWidth = nFontHeight;
95 + if ( nFontHeight > nWidth )
96 + nWidth += nFontHeight;
98 pData->aSz.Height() = std::max( std::max( nFontHeight, pData->aSz.Height() ), nMinMenuItemHeight );
100 @@ -1964,20 +1962,26 @@ Size Menu::ImplCalcSize( Window* pWin )
103 aSz.Height() += (long)pData->aSz.Height();
105 + if ( nWidth > nMaxWidth )
106 + nMaxWidth = nWidth;
112 - USHORT gfxExtra = (USHORT) std::max( nExtra, 7L ); // #107710# increase space between checkmarks/images/text
113 - nCheckPos = (USHORT)nExtra;
114 - nImagePos = (USHORT)(nCheckPos + nFontHeight/2 + gfxExtra );
115 - nTextPos = (USHORT)(nImagePos+aMaxImgSz.Width());
116 + int nCheckWidth = 0;
117 + if ((nMenuFlags & MENU_FLAG_SHOWCHECKIMAGES) || aMaxImgSz.Width() <= 0)
118 + nCheckWidth = nFontHeight/2 + nExtra;
119 + USHORT gfxExtra = std::max( nExtra, 7L ); // #107710# increase space between checkmarks/images/text
120 + nCheckPos = nExtra;
121 + nImagePos = nCheckPos + nCheckWidth;
122 + nTextPos = nImagePos + aMaxImgSz.Width();
123 if ( aMaxImgSz.Width() )
124 nTextPos += gfxExtra;
126 - aSz.Width() = nTextPos + nMaxTextWidth + nExtra + nMaxAccWidth;
127 - aSz.Width() += 10*nExtra; // etwas mehr...
128 + aSz.Width() = nTextPos + nMaxWidth + nExtra;
129 + aSz.Width() += 4*nExtra; // a _little_ more ...
133 @@ -2057,10 +2061,15 @@ void Menu::ImplPaint( Window* pWin, USHO
135 if ( !bLayout && !bIsMenuBar && ( ( pData->eType == MENUITEM_IMAGE ) || ( pData->eType == MENUITEM_STRINGIMAGE ) ) )
137 + // Don't render an image for a check thing
138 + if ((nMenuFlags & MENU_FLAG_SHOWCHECKIMAGES) ||
139 + (!(pData->nBits & (MIB_RADIOCHECK | MIB_CHECKABLE | MIB_AUTOCHECK)) && !pData->bChecked))
141 aTmpPos.Y() = aPos.Y();
142 aTmpPos.X() = aPos.X() + nImagePos;
143 aTmpPos.Y() += (pData->aSz.Height()-pData->aImage.GetSizePixel().Height())/2;
144 pWin->DrawImage( aTmpPos, pData->aImage, nImageStyle );
149 @@ -3973,6 +3982,7 @@ void MenuFloatingWindow::Paint( const Re
150 ImplDrawScroller( TRUE );
151 ImplDrawScroller( FALSE );
153 + SetFillColor (GetSettings ().GetStyleSettings ().GetMenuColor ());
154 pMenu->ImplPaint( this, nScrollerHeight, ImplGetStartY() );
155 if ( nHighlightedItem != ITEMPOS_INVALID )
156 HighlightItem( nHighlightedItem, TRUE );
157 @@ -4604,6 +4614,7 @@ BOOL MenuBarWindow::ImplHandleKeyEvent(
159 void MenuBarWindow::Paint( const Rectangle& rRect )
161 + SetFillColor (GetSettings ().GetStyleSettings ().GetMenuColor ());
162 pMenu->ImplPaint( this, 0 );
163 if ( nHighlightedItem != ITEMPOS_INVALID )
164 HighlightItem( nHighlightedItem, TRUE );