oMenu acts differently in February build
Posted:
Sat Feb 11, 2006 6:05 am
by John
Antonio,
it seems the menu items move a little to the right when there is a submenu attached to it, is this intentionally?
Saludos,
John.
Posted:
Sat Feb 11, 2006 9:06 am
by Antonio Linares
John,
It is a side effect caused by a recent change.
Please search for this code in classes\menu.prg and change it as shown:
( /* .f. .and. */ IsWinNT() .and. ! lRoot .and. ! ::lSysMenu ),;
Posted:
Sat Feb 11, 2006 11:06 am
by Enrico Maria Giordano
This still is not a fix but seems to solve the problem:
- Code: Select all Expand view
METHOD Add( oMenuItem, lRoot ) CLASS TMenu
DEFAULT lRoot := .f.
AAdd( ::aItems, oMenuItem )
oMenuItem:oMenu = Self
if ValType( oMenuItem:bAction ) == "O" .and. ;
Upper( oMenuItem:bAction:ClassName() ) == "TMENU"
if oMenuItem:cPrompt != nil
AppendMenu( ::hMenu, nOr( MF_POPUP, MF_ENABLED,;
If( oMenuItem:hBitmap != 0 .or. ( .f. .and. IsWinNT() .and. ! lRoot .and. !::lSysmenu), MF_OWNERDRAW, 0 ),; //EMG
If( oMenuItem:lHelp, MF_HELP, 0 ),;
If( oMenuItem:lChecked, MF_CHECKED, 0 ),;
If( ! oMenuItem:lActive, MF_GRAYED, 0 ),;
If( oMenuItem:lBreak, MF_BREAK, 0 ) ),;
oMenuItem:bAction:hMenu,;
oMenuItem:cPrompt )
else
AppendMenu( ::hMenu, nOR( MF_POPUP, MF_BITMAP,;
If( oMenuItem:lChecked, MF_CHECKED, 0 ),;
If( ! oMenuItem:lActive, MF_GRAYED, 0 ),;
If( oMenuItem:lHelp, MF_HELP, 0 ),;
If( oMenuItem:lBreak, MF_BREAK, 0 ) ),;
oMenuItem:bAction:hMenu, oMenuItem:hBitmap )
endif
AAdd( aPopups, oMenuItem:bAction )
else
if oMenuItem:cPrompt != nil
AppendMenu( ::hMenu,;
nOR( If( oMenuItem:lActive,;
nOr( MF_ENABLED, If( oMenuItem:hBitmap != 0 .or. ;
( .f. .and. IsWinNT() .and. ! lRoot .and. ! ::lSysMenu ),; //EMG
MF_OWNERDRAW, 0 ) ),;
nOR( MF_DISABLED, MF_GRAYED ) ),;
If( oMenuItem:lChecked, MF_CHECKED, 0 ),;
If( oMenuItem:lHelp, MF_HELP, 0 ),;
If( oMenuItem:lBreak, MF_BREAK, 0 ) ),;
oMenuItem:nId, oMenuItem:cPrompt )
else
if oMenuItem:hBitmap != 0
#ifdef __XPP__
if oMenuItem:lBreak == nil
oMenuItem:lBreak = .f.
endif
#endif
AppendMenu( ::hMenu, nOr( MF_BITMAP,;
If( oMenuItem:lBreak, MF_BREAK, 0 ) ),;
oMenuItem:nId, oMenuItem:hBitmap )
else
AppendMenu( ::hMenu, MF_SEPARATOR, oMenuItem:nId, "" )
endif
endif
endif
return nil
EMG
Posted:
Sun Feb 12, 2006 6:13 am
by John
Ok, thanks! That solves the problem for now!