예제 #1
0
bool DlgBackInTime( bool lost_mem_state )
{
    if( lost_mem_state ) {
        return( DoStackOrHistory( GUI_MAKEINTRESOURCE( DIALOG_HISTORY ) ) );
    } else {
        return( WndDisplayMessage( LIT_DUI( WARN_Losing_Redo ), LIT_ENG( Empty ), GUI_YES_NO ) == GUI_RET_YES );
    }
}
예제 #2
0
void DlgList( const char *title, void (*clear)(void), void (*add)(const char *,unsigned),
                           char_ring *(*next)(char_ring *), char *(*name)(char_ring *) )
{
    dlg_list dlg;
    dlg.clear = clear;
    dlg.add = add;
    dlg.next = next;
    dlg.name = name;
    dlg.title = DupStr( title );
    ResDlgOpen( &SourceEvent, &dlg, GUI_MAKEINTRESOURCE( DIALOG_LIST ) );
}
예제 #3
0
extern bool SrchEvent( gui_window * gui, gui_event event, void * param )
{
    gui_ctl_id  id;
    dlg_search  *dlg;

    dlg = GUIGetExtra( gui );
    switch( event ) {
    case GUI_INIT_DIALOG:
        SetDlgStatus( gui, dlg );
        GUISetFocus( gui, CTL_SRCH_EDIT );
        break;
    case GUI_KEY_CONTROL:
        return( DlgHistoryKey( gui, param, CTL_SRCH_EDIT, CTL_SRCH_LIST ) );
    case GUI_CONTROL_DCLICKED:
    case GUI_CONTROL_CLICKED:
        GUI_GETID( param, id );
        switch( id ) {
        case CTL_SRCH_LIST:
            DlgClickHistory( gui, CTL_SRCH_EDIT, CTL_SRCH_LIST );
            if( event == GUI_CONTROL_CLICKED ) return( true );
            /* fall through */
        case CTL_SRCH_NEXT:
            dlg->direction = 1;
            GetDlgStatus( gui, dlg );
            GUICloseDialog( gui );
            break;
        case CTL_SRCH_EDIT_RX:
            ResDlgOpen( &RXEvent, NULL, GUI_MAKEINTRESOURCE( DIALOG_RX ) );
            break;
        case CTL_SRCH_PREV:
            dlg->direction = -1;
            GetDlgStatus( gui, dlg );
            GUICloseDialog( gui );
            break;
        case CTL_SRCH_CANCEL:
            dlg->direction = 0;
            GUICloseDialog( gui );
            break;
        default :
            break;
        }
        return( true );
    default :
        break;
    }
    return( false );
}
예제 #4
0
static bool DoStackOrHistory( res_name_or_id dlg_id )
{
    gui_ctl_id  resp;

    resp = CTL_STK_CANCEL;
    ResDlgOpen( &StkOrHistoryEvent, &resp, dlg_id );
    switch( resp ) {
    case CTL_STK_CANCEL:
        _SwitchOn( SW_EXECUTE_ABORTED );
        return( false );
    case CTL_STK_YES:
        if( dlg_id == GUI_MAKEINTRESOURCE( DIALOG_STACK ) ) {
            LastStackPos();
        } else {
            LastMachState();
        }
        break;
    }
    return( true );
}
예제 #5
0
static int DoDlgSearch( a_window *wnd, void *history, bool want_prev )
{
    dlg_search  *dlg;
    int direction;

    dlg = WndMustAlloc( sizeof( *dlg ) );
    dlg->wnd = wnd;
    dlg->direction = 0;
    dlg->case_ignore = SrchIgnoreCase;
    dlg->use_rx = SrchRX;
    dlg->history = history;
    ResDlgOpen( &SrchEvent, dlg, GUI_MAKEINTRESOURCE( want_prev ? DIALOG_SEARCH : DIALOG_SEARCH_ALL ) );
    direction = dlg->direction;
    SrchRX = dlg->use_rx;
    SrchIgnoreCase = dlg->case_ignore;
    if( dlg->use_rx ) {
        WndSetMagicStr( SrchMagicChars );
    } else {
        WndSetMagicStr( "" );
    }
    WndFree( dlg );
    return( direction );
}
예제 #6
0
extern unsigned DlgAsyncRun( void )
{
    ResDlgOpen( &AsyncEvent, 0, GUI_MAKEINTRESOURCE( DIALOG_ASYNC_RUN ) );
    return( dlg.cond ); 
}
예제 #7
0
WEXPORT WStatDialog::WStatDialog( WWindow * prt, WResourceId dialog_id )
    : WDialog( prt ), _dialog_id( GUI_MAKEINTRESOURCE( dialog_id ) ) {
    /*********************************************/

}