Esempio n. 1
0
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 );
    }
}
Esempio n. 2
0
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 );
}
Esempio n. 3
0
/*
 * 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 */
Esempio n. 4
0
/*
 * 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 */