ON ERROR IF ERR=17 CHAIN @lib$+"../examples/tools/touchide" ELSE MODE 3 : PRINT REPORT$ : END REM Program to demonstrate the capabilities of the DLGLIB library REM By Richard Russell, http://www.rtrussell.co.uk/ 19-Jul-2019 INSTALL @lib$ + "dlglib" REM!WC Windows Constants: ES_NUMBER = 8192 SS_CENTER = 1 WS_GROUP = &20000 REM Set colour palette: PROC_setdialogpalette REM Set font according to platform: IF INKEY(-256) = &57 THEN *FONT Segoe UI,10 ELSE OSCLI "FONT """ + @lib$ + "DejaVuSans"",12" ENDIF REM Adjust caret shape and size according to font: VDU 23,0,10,0,0;0;0; : REM Set start line VDU 23,0,11,@vdu%!220,0;0;0; : REM Set end line VDU 23,0,18,2,0;0;0; : REM Set caret width REM Create the dialogue box 'template': dlg% = FN_newdialog("Dialogue box", 160, 140) PROC_groupbox(dlg%, "Group box", 0, 4, 4, 152, 96, WS_GROUP) PROC_textbox(dlg%, "Text box", 101, 12, 18, 64, 12, 0) PROC_textbox(dlg%, "123456", 102, 82, 18, 64, 12, ES_NUMBER) DIM ComboBox$(6) ComboBox$() = "", "Combo item 1", "Combo item 2", "Combo item 3", \ \ "Combo item 4", "Combo item 5", "Combo item 6" PROC_combobox(dlg%, "Combobox", 103, 12, 38, 64, 57, WS_VSCROLL) PROC_setcomboboxarray(dlg%, 103, ComboBox$(), DIM(ComboBox$(),1)) DIM ListBox$(6) ListBox$() = "", "Listbox item 1", "Listbox item 2", "Listbox item 3", \ \ "Listbox item 4", "Listbox item 5", "Listbox item 6" PROC_listbox(dlg%, "", 104, 82, 38, 64, 36, 0) PROC_setlistboxarray(dlg%, 104, ListBox$(), DIM(ListBox$(),1)) IDchange% = FN_setproc(PROCchange()) PROC_button(dlg%, "Change", IDchange%, 12, 56, 64, 12, 0) PROC_radiobutton(dlg%, "Radiobutton 1", 105, 12, 73, 64, 10, 1) PROC_radiobutton(dlg%, "Radiobutton 2", 106, 12, 85, 64, 10, WS_DISABLED) PROC_checkbox(dlg%, "Checkbox", 107, 82, 84, 64, 10, 0) PROC_button(dlg%, "OK", 1, 12, 108, 56, 14, WS_GROUP) PROC_button(dlg%, "Cancel", 2, 92, 108, 56, 14, 0) PROC_static(dlg%, "Enter has the same effect as clicking OK", \ \ 100, 4, 128, 152, 12, SS_CENTER) PROC_registerdlgcallback(dlg%, FNmycb()) result% = FN_showdialog(dlg%, &80000000, &80000000) IF result% = 1 THEN tb$ = FN_getdlgitemtext(dlg%, 101) nb% = VAL(FN_getdlgitemtext(dlg%, 102)) ComboBox$ = FN_getdlgitemtext(dlg%, 103) ListBox$ = FN_getdlgitemtext(dlg%, 104) rb% = FN_isdlgitemchecked(dlg%, 105) cb% = FN_isdlgitemchecked(dlg%, 107) ENDIF PROC_closedialog(dlg%) VDU 4, 30 IF result%=1 THEN PRINT "OK pressed, settings were:"' PRINT "Text box contained """ tb$ """" PRINT "Number box contained "; nb% PRINT "Combobox selection was """ ComboBox$ """" PRINT "Listbox selection was """ ListBox$ """" IF rb% THEN PRINT "Radiobutton 1 was checked" ELSE PRINT "Radiobutton 2 was checked" ENDIF IF cb% THEN PRINT "Checkbox was checked" ELSE PRINT "Checkbox was not checked" ENDIF ELSE PRINT "Cancel pressed" ENDIF REPEAT WAIT 1 : UNTIL FALSE END DEF FNmycb(D%,K%) : LOCAL R% R% = FN_getdlgfocus(D%) : IF R% > 9 R% = 1 IF K% = 13 THEN = R% = 0 DEF PROCchange(D%, I%) PROC_setdlgitemtext(D%, 101, "New text") PROC_setdlgitemtext(D%, 102, "7890") ListBox$() = "", "Updated item 1", "Updated item 2", "Updated item 3", \ \ "Updated item 4", "Updated item 5", "Updated item 6" PROC_setlistboxarray(D%, 104, ListBox$(), DIM(ListBox$(),1)) PROC_setlistboxselect(D%, 104, DIM(ListBox$(),1)) ComboBox$() = "", "New item 1", "New item 2", "New item 3", \ \ "New item 4", "New item 5", "New item 6" PROC_setcomboboxarray(D%, 103, ComboBox$(), DIM(ComboBox$(),1)) PROC_setcomboboxselect(D%, 103, 3) IF FN_isdlgitemchecked(D%, 105) THEN PROC_checkdlgitem(D%, 105, FALSE) PROC_checkdlgitem(D%, 106, TRUE) ELSE PROC_checkdlgitem(D%, 105, TRUE) PROC_checkdlgitem(D%, 106, FALSE) ENDIF IF FN_isdlgitemchecked(D%, 107) THEN PROC_checkdlgitem(D%, 107, FALSE) ELSE PROC_checkdlgitem(D%, 107, TRUE) ENDIF PROC_enabledlgitem(D%, IDchange%, FALSE) PROC_enabledlgitem(D%, 106, TRUE) PROC_refreshdialog(D%) ENDPROC