void GUIBringToFront( gui_window *wnd ) { bool parent_is_dlg; bool same_window; if( wnd == NULL ) { return; } same_window = ( GUICurrWnd == wnd ); parent_is_dlg = false; if( wnd->parent ) { if( wnd->parent->flags & IS_DIALOG ) { parent_is_dlg = true; } } if( !same_window || parent_is_dlg ) { if( !same_window && ( GUICurrWnd != NULL ) ) { if( _wpi_getparent( GUICurrWnd->hwnd_frame ) != HWND_DESKTOP ) { ActivateNC( GUICurrWnd, false ); } GUIEVENTWND( GUICurrWnd, GUI_NOT_ACTIVE, NULL ); } // if the application indicates that it has processed the message // then do not proceed to bring the window to top if( !GUIEVENTWND( wnd, GUI_NOW_ACTIVE, NULL ) ) { GUICurrWnd = wnd; GUIFrontOfList( wnd ); ActivateNC( wnd, true ); GUIMDIBroughtToFront( wnd ); _wpi_bringwindowtotop( wnd->hwnd_frame ); _wpi_setfocus( wnd->hwnd_frame ); } } if( same_window && !parent_is_dlg ) { ActivateNC( wnd, true ); } if( parent_is_dlg ) { ActivateNC( wnd->parent, true ); } }
bool SetFocusToParent( void ) { HWND curr_hwnd; // for a reason I do not yet comprehend, the MDI stuff should no longer // be a deterent to setting the focus to the top parent if( ( GUICurrWnd != NULL ) && !EditControlHasFocus /* && !GUIMDI */ && !( GUICurrWnd->style & GUI_POPUP ) ) { curr_hwnd = GUIGetTopParentHWND( GUICurrWnd->hwnd ); if( GUIGetCtrlWnd( curr_hwnd ) == NULL ) { if( _wpi_iswindow( GUIMainHInst, curr_hwnd ) ) { if( _wpi_getfocus() != curr_hwnd ) { _wpi_setfocus( curr_hwnd ); _wpi_setactivewindow( curr_hwnd ); return( TRUE ); } } } } return( FALSE ); }
/* * CheckPaletteItem - handle when the color palette menu item has been selected */ void CheckPaletteItem( HMENU hmenu ) { HWND frame_wnd; if( HColorPalette == NULL ) { _wpi_checkmenuitem( hmenu, IMGED_COLOR, MF_CHECKED, FALSE ); return; } frame_wnd = _wpi_getframe( HColorPalette ); if( _wpi_isitemchecked( hmenu, IMGED_COLOR ) ) { _wpi_checkmenuitem( hmenu, IMGED_COLOR, MF_UNCHECKED, FALSE ); ShowWindow( frame_wnd, SW_HIDE ); ImgedConfigInfo.show_state &= ~SET_SHOW_CLR; } else { _wpi_checkmenuitem( hmenu, IMGED_COLOR, MF_CHECKED, FALSE ); ShowWindow( frame_wnd, SW_SHOWNA ); _wpi_setfocus( HMainWindow ); ImgedConfigInfo.show_state |= SET_SHOW_CLR; } } /* CheckPaletteItem */
/* * SelColorDlgProc - select the color to represent the background */ WPI_DLGRESULT CALLBACK SelColorDlgProc( HWND hwnd, WPI_MSG msg, WPI_PARAM1 wparam, WPI_PARAM2 lparam ) { PAINTSTRUCT ps; WPI_POINT pt; WPI_PRES pres; bool ret; ret = false; if( _wpi_dlg_command( hwnd, &msg, &wparam, &lparam ) ) { switch( LOWORD( wparam ) ) { case IDOK: _wpi_enddialog( hwnd, IDOK ); break; case IDCANCEL: _wpi_enddialog( hwnd, IDCANCEL ); break; case IDB_HELP: IEHelpRoutine(); break; } } else { switch( msg ) { case WM_INITDIALOG: showColors( hwnd ); ret = true; break; #ifndef __OS2_PM__ case WM_SYSCOLORCHANGE: IECtl3dColorChange(); break; #endif case WM_LBUTTONDOWN: WPI_MAKEPOINT( wparam, lparam, pt ); selectColor( &pt, hwnd ); break; case WM_PAINT: pres = _wpi_beginpaint( hwnd, NULL, &ps ); #ifdef __OS2_PM__ WinFillRect( pres, &ps, CLR_PALEGRAY ); #endif displayColors( hwnd ); _wpi_endpaint( hwnd, pres, &ps ); _wpi_setfocus( hwnd ); break; case WM_CLOSE: _wpi_enddialog( hwnd, IDCANCEL ); break; default: return( _wpi_defdlgproc( hwnd, msg, wparam, lparam ) ); } } _wpi_dlgreturn( ret ); } /* SelColorDlgProc */