/* * SetSystemMenu -- make the system menu showing belong to the current window */ void SetSystemMenu( HWND hwnd ) { HMENU sys_menu; HMENU menu; sys_menu = NULLHANDLE; if( hwnd != NULLHANDLE ) { sys_menu = generateSystemMenu( hwnd ); } menu = _wpi_getmenu( mdiInfo.root ); getMenuBitmaps(); #ifndef __OS2_PM__ if( sys_menu != NULL ) { ModifyMenu( menu, 0, MF_POPUP | MF_BYPOSITION | MF_BITMAP, (UINT)sys_menu, (LPVOID)closeBitmap ); } else { ModifyMenu( menu, 0, MF_BYPOSITION | MF_BITMAP, -1, (LPVOID)closeBitmap ); } #else if( sys_menu != NULLHANDLE ) { _wpi_modifymenu( menu, 0, MF_POPUP | MF_STRING, 0, 0, sys_menu, "SYSMENU", TRUE ); } else { _wpi_modifymenu( menu, 0, MF_STRING, 0, 0, NULLHANDLE, "SYSMENU", TRUE ); } #endif _wpi_drawmenubar( mdiInfo.root ); } /* SetSystemMenu */
static HMENU ChangeMenuToPopup ( gui_window *wnd, HMENU hmenu, gui_ctl_id id, hint_type type ) { HMENU popup; char name[MAX_STR]; unsigned menu_flags; unsigned attr_flags; popup = _wpi_createpopupmenu(); if( popup != (HMENU)NULL ) { _wpi_getmenutext( hmenu, id, name, MAX_STR - 1, FALSE ); GetMenuFlags( hmenu, id, false, &menu_flags, &attr_flags ); _wpi_modifymenu( hmenu, id, menu_flags | MF_POPUP, attr_flags, id, popup, name, FALSE ); GUIDrawMenuBar( wnd ); InsertPopup( wnd, id, popup, type ); } return( popup ); }