void sample_dialog( void ) { ui_event ui_ev; a_dialog *ui_dlg_info; static ui_event events[] = { __rend__, EV_ENTER, EV_ESCAPE, EV_SCREWUP, __end__ }; ui_dlg_info = uibegdialog( "TEST", FieldDialog, 12, 74, 0, 0 ); uipushlist( events ); for( ;; ) { ui_ev = uidialog( ui_dlg_info ); if( ui_ev == EV_ESCAPE || ui_ev == EV_ENTER ) { break; } else if( ui_ev == EV_SCREWUP ) { list_box.data_handle = list_data; uiupdatelistbox( &list_box ); } } uipoplist( /* events */ ); uienddialog( ui_dlg_info ); }
void ShowMsgBox( char *caption, char *msg ) { a_dialog *msgbox; bool done; EVENT event; static EVENT events[] = { EV_NO_EVENT, EV_ENTER, EV_ESCAPE, EV_MOUSE_PRESS, EV_LIST_BOX_DCLICK, EV_NO_EVENT }; done = FALSE; uipushlist( NULL ); /* modal barrier */ uipushlist( events ); helpMsgBox[0].u.str = msg; msgbox = uibegdialog( caption, helpMsgBox, 5, 50, 0, 0 ); while( !done ) { event = uidialog( msgbox ); switch( event ) { case EV_ENTER: done = TRUE; break; } } uipoplist(); uipoplist(); uienddialog( msgbox ); }
void ShowMsgBox( char *caption, char *msg ) { a_dialog *msgbox; bool done; ui_event ui_ev; static ui_event events[] = { __rend__, EV_ENTER, EV_ESCAPE, EV_MOUSE_PRESS, EV_LIST_BOX_DCLICK, __end__ }; done = false; uipushlist( NULL ); /* modal barrier */ uipushlist( events ); helpMsgBox[0].u.str = msg; msgbox = uibegdialog( caption, helpMsgBox, 5, 50, 0, 0 ); while( !done ) { ui_ev = uidialog( msgbox ); switch( ui_ev ) { case EV_ENTER: done = true; break; } } uipoplist(); uipoplist(); uienddialog( msgbox ); }
bool GUIXCreateDialog( gui_create_info *dlg_info, gui_window *wnd, int num_controls, gui_control_info *controls_info, bool sys, long dlg_id ) { EVENT ev; int i; a_dialog *ui_dlg_info; VFIELD *fields; char *title; VFIELD *focus; int size; bool colours_set; bool ok; if( dlg_id != -1 ) { if( !GUICreateDialogFromRes( dlg_id, dlg_info->parent, dlg_info->call_back, dlg_info->extra ) ) { return( false ); } GUIMemFree( wnd ); return( true ); } sys = sys; RadioGroup = NULL; Group = false; fields = NULL; title = NULL; ui_dlg_info = NULL; colours_set = false; wnd->flags |= DIALOG; if( !GUISetupStruct( wnd, dlg_info, true ) ) { return( false ); } size = ( num_controls + 1 ) * sizeof( VFIELD ); fields = (VFIELD *)GUIMemAlloc( size ); if( fields == NULL ) { return( false ); } memset( fields, 0, size ); focus = NULL; for( i = 0; i < num_controls; i++ ) { uiyield(); if( !GUIDoAddControl( &controls_info[i], wnd, &fields[i] ) ) { GUIFreeDialog( ui_dlg_info, fields, title, colours_set, true ); return( false ); } else { if( ( focus == NULL ) && ( controls_info[i].style & GUI_FOCUS ) ) { focus = &fields[i]; } } } CleanUpRadioGroups(); fields[num_controls].typ = FLD_VOID; /* mark end of list */ title = GUIStrDup( dlg_info->title, &ok ); if( !ok ) { GUIFreeDialog( ui_dlg_info, fields, title, colours_set, true ); return( false ); } colours_set = GUISetDialColours(); ui_dlg_info = uibegdialog( title, fields, wnd->screen.area.height, wnd->screen.area.width, wnd->screen.area.row, wnd->screen.area.col ); if( ui_dlg_info == NULL ) { GUIFreeDialog( ui_dlg_info, fields, title, colours_set, true ); return( false ); } if( focus != NULL ) { uidialogsetcurr( ui_dlg_info, focus ); } if( !InsertDialog( wnd, ui_dlg_info, num_controls, title, colours_set ) ) { GUIFreeDialog( ui_dlg_info, fields, title, colours_set, true ); return( false ); } for( i = 0; i < num_controls; i++ ) { uiyield(); GUIInsertControl( wnd, &controls_info[i], i ); } GUIEVENTWND( wnd, GUI_INIT_DIALOG, NULL ); uipushlist( NULL ); uipushlist( GUIUserEvents ); GUIPushControlEvents(); uipushlist( DlgEvents ); while( ( GetDialog( ui_dlg_info ) != NULL ) ) { ev = uidialog( ui_dlg_info ); switch( ev ) { case EV_KILL_UI: uiforceevadd( EV_KILL_UI ); case EV_ESCAPE: GUIEVENTWND( wnd, GUI_DIALOG_ESCAPE, NULL ); GUICloseDialog( wnd ); break; default : GUIProcessControlNotify( ev, ui_dlg_info, wnd ); } } return( true ); }
char *HelpSearch( HelpHdl hdl ) { EVENT event; char done; char *ret; static EVENT events[] = { EV_NO_EVENT, EV_ENTER, EV_ESCAPE, EV_MOUSE_PRESS, EV_LIST_BOX_DCLICK, EV_NO_EVENT }; searchHdl = hdl; listData = hdl->header.topiccnt; curHelpDialog = uibegdialog( "Search", helpSearchDialog, 12, 60, 0, 0 ); if( editCtl.buffer == NULL ) { fillListBox( "" ); } else { fillListBox( editCtl.buffer ); } uipushlist( NULL ); /* modal barrier */ uipushlist( events ); done = 0; while( !done ) { event = uidialog( curHelpDialog ); switch( event ) { case EV_MOUSE_PRESS: if( curHelpDialog->curr != NULL ) { if( curHelpDialog->curr->ptr == &listBox ) { copyLBLinetoEditCtl( listBox.box->row ); } } break; case EV_KILL_UI: uiforceevadd( EV_KILL_UI ); /* fall through */ case EV_ESCAPE: ret = NULL; done = 1; break; case EV_ENTER: case EV_LIST_BOX_DCLICK: ret = HelpMemAlloc( MAX_EDIT_LINE_LEN ); GetLBItemLiteral( &listData, listBox.box->row, ret, MAX_EDIT_LINE_LEN ); if( ret[0] == '\0' ) { HelpMemFree( ret ); ret = NULL; } done = 1; break; } } uipoplist(); uipoplist(); uienddialog( curHelpDialog ); return( ret ); }