bool GUIDeleteMenuItem( gui_window *wnd, gui_ctl_id id, bool floating ) { HMENU hmenu, popup, parent; gui_ctl_idx position; hint_type type; if( floating ) { type = FLOAT_HINT; } else { type = MENU_HINT; } hmenu = GetOrMakeHMENU( wnd, floating, NULL ); if( hmenu == NULLHANDLE ) { return( false ); } popup = GetPopupHMENU( wnd, hmenu, id, &parent, &position, type ); if( popup != NULLHANDLE ) { _wpi_deletemenu( parent, position, TRUE ); } else { _wpi_deletemenu( hmenu, id, FALSE ); } GUIDeleteHintText( wnd, id ); DeletePopup( wnd, id ); GUIMDIDeleteMenuItem( id ); if( hmenu == parent ) { GUIDrawMenuBar( wnd ); } return( true ); }
/* * deleteMaximizedMenuConfig - delete the maximized menu configuration */ static void deleteMaximizedMenuConfig( void ) { HMENU root_menu; int count; if( !insertedItems ) { return; } insertedItems = FALSE; root_menu = _wpi_getmenu( mdiInfo.root ); _wpi_deletemenu( root_menu, 0, TRUE ); count = (int)_wpi_getmenuitemcount( root_menu ); _wpi_deletemenu( root_menu, count-1, TRUE ); _wpi_drawmenubar( mdiInfo.root ); } /* deleteMaximizedMenuConfig */
/* * ViewWindowProc - window procedure for the view window */ WPI_MRESULT CALLBACK ViewWindowProc( HWND hwnd, WPI_MSG msg, WPI_PARAM1 wparam, WPI_PARAM2 lparam ) { static HMENU sysmenu; static HWND hframe; HMENU hmenu; WPI_RECT rcview; WPI_RECTDIM left; WPI_RECTDIM top; WPI_RECTDIM right; WPI_RECTDIM bottom; switch ( msg ) { case WM_CREATE: hframe = _wpi_getframe( hwnd ); sysmenu = _wpi_getcurrentsysmenu( hframe ); _wpi_deletemenu( sysmenu, SC_RESTORE, FALSE ); _wpi_deletemenu( sysmenu, SC_SIZE, FALSE ); _wpi_deletemenu( sysmenu, SC_MINIMIZE, FALSE ); _wpi_deletemenu( sysmenu, SC_MAXIMIZE, FALSE ); _wpi_deletemenu( sysmenu, SC_TASKLIST, FALSE ); #ifdef __OS2_PM__ _wpi_deletemenu( sysmenu, SC_HIDE, FALSE ); #endif _wpi_deletesysmenupos( sysmenu, 1 ); _wpi_deletesysmenupos( sysmenu, 2 ); break; case WM_PAINT: redrawViewWnd( hwnd ); return( 0 ); case WM_MOVE: _wpi_getwindowrect( _wpi_getframe( hwnd ), &rcview ); _wpi_getrectvalues( rcview, &left, &top, &right, &bottom ); ImgedConfigInfo.view_xpos = (short)left; ImgedConfigInfo.view_ypos = (short)top; break; case WM_CLOSE: hmenu = GetMenu( _wpi_getframe( HMainWindow ) ); if( fOneViewWindow ) { CheckViewItem( hmenu ); } else { PrintHintTextByID( WIE_USEOPTIONSTOHIDEALL, NULL ); } break; case WM_DESTROY: hViewWindow = NULL; break; default: return( DefWindowProc( hwnd, msg, wparam, lparam ) ); } return( 0 ); } /* ViewWindowProc */
/* * modifyChildSystemMenu - adjust system menu to make it a child system menu */ static HMENU modifyChildSystemMenu( HMENU sys_menu ) { if( sys_menu == NULLHANDLE ) { return( NULLHANDLE ); } /* fix hotkey designation for close */ _wpi_setmenutext( sys_menu, SC_CLOSE, "&Close\tCtrl+F4", FALSE ); /* remove task switch option */ _wpi_deletemenu( sys_menu, SC_TASKLIST, FALSE ); /* add next window option */ _wpi_appendmenu( sys_menu, MF_STRING, 0, SC_NEXTWINDOW, NULLHANDLE, "Nex&t\tCtrl+F6" ); return( sys_menu ); } /* modifyChildSystemMenu */
/* * ColorPalWinProc - handle messages for the color palette */ WPI_MRESULT CALLBACK ColorPalWinProc( HWND hwnd, WPI_MSG msg, WPI_PARAM1 mp1, WPI_PARAM2 mp2 ) { HMENU sysmenu; WPI_RECT rcpal; WPI_RECTDIM left; WPI_RECTDIM right; WPI_RECTDIM top; WPI_RECTDIM bottom; static HMENU menu; static HWND hframe; switch( msg ) { case WM_CREATE: hframe = _wpi_getframe( hwnd ); sysmenu = _wpi_getcurrentsysmenu( hframe ); _wpi_deletemenu( sysmenu, SC_RESTORE, FALSE ); _wpi_deletemenu( sysmenu, SC_SIZE, FALSE ); _wpi_deletemenu( sysmenu, SC_MINIMIZE, FALSE ); _wpi_deletemenu( sysmenu, SC_MAXIMIZE, FALSE ); _wpi_deletemenu( sysmenu, SC_TASKLIST, FALSE ); #ifdef __OS2_PM__ _wpi_deletemenu( sysmenu, SC_HIDE, FALSE ); #endif _wpi_deletesysmenupos( sysmenu, 1 ); _wpi_deletesysmenupos( sysmenu, 2 ); hbrush = _wpi_createsolidbrush( LTGRAY ); menu = GetMenu( _wpi_getframe( HMainWindow ) ); break; case WM_PAINT: _wpi_deleteobject( hbrush ); SetBkColor( (HDC)mp1, GetSysColor( COLOR_BTNFACE ) ); SetTextColor( (HDC)mp1, GetSysColor( COLOR_BTNTEXT ) ); hbrush = _wpi_createsolidbrush( GetSysColor( COLOR_BTNFACE ) ); paintPalette( hwnd ); break; #ifndef __OS2_PM__ #ifdef __NT__ case WM_SYSCOLORCHANGE: case WM_CTLCOLORSTATIC: case WM_CTLCOLORBTN: _wpi_deleteobject( hbrush ); hbrush = _wpi_createsolidbrush( GetSysColor( COLOR_BTNFACE ) ); SetBkColor( (HDC)mp1, GetSysColor( COLOR_BTNFACE ) ); SetTextColor( (HDC)mp1, GetSysColor( COLOR_BTNTEXT ) ); return( (WPI_MRESULT)hbrush ); #else case WM_CTLCOLOR: if( HIWORD( mp2 ) == CTLCOLOR_STATIC || HIWORD( mp2 ) == CTLCOLOR_BTN ) { SetBkColor( (HDC)LOWORD( mp1 ), LTGRAY ); SetTextColor( (HDC)LOWORD( mp1 ), BLACK ); return( (WPI_MRESULT)hbrush ); } break; #endif #endif case WM_MOVE: _wpi_getwindowrect( _wpi_getframe( hwnd ), &rcpal ); _wpi_getrectvalues( rcpal, &left, &top, &right, &bottom ); ImgedConfigInfo.pal_xpos = (short)left; ImgedConfigInfo.pal_ypos = (short)top; break; case WM_CLOSE: CheckPaletteItem( menu ); break; case WM_DESTROY: _wpi_deleteobject( hbrush ); break; default: return( DefWindowProc( hwnd, msg, mp1, mp2 ) ); } return( 0 ); } /* ColorPalWinProc */