#!/usr/bin/scriba IMPORT visio.bas REM ******************The sine wave drawing routine SUB draw_sinus amplitude = visio::spin_get(spin1) frequence = visio::spin_get(spin2) FOR x = 0 to (visio::canvas_width(canvas)/frequence) STEP (1/amplitude) y = SIN(x) visio::canvas_plot(canvas,x*frequence,visio::canvas_height(canvas)/2 - y*amplitude) NEXT x END SUB REM ****************The cosine wave drawing routine SUB draw_cosine amplitude = visio::spin_get(spin3) frequence = visio::spin_get(spin4) FOR x = 0 to (visio::canvas_width(canvas)/frequence) STEP (1/amplitude) y = COS(X) visio::canvas_plot(canvas,x*frequence,visio::canvas_height(canvas)/2 + y*amplitude) NEXT x END SUB REM ****************Initialize the Visio library visio::init() visio::version() REM ****************Define main window win = visio::window("Scriptbasic graphics", 400, 400, V_POS_CENTRE) grid = visio::grid (win, 50, 60) REM ****************Define dialogue window dialog = visio::window("About...",150,100,V_POS_MOUSE) grid2 = visio::grid(dialog, 7, 7) okbutton = visio::button(grid2, 2, 4, 3, 2, "OK") info = visio::label(grid2, 0, 0, 7, 4, "Demo program by PvE.") REM ****************Define regular buttons wipebutton = visio::button (grid, 39, 44, 10, 6, "Wipe") exitbutton = visio::button (grid, 39, 53, 10, 6, "Exit") REM ****************Define sinusbuttons sinusbutton = visio::button(grid, 1, 44, 15, 5, "Sinus") label1 = visio::label(grid, 1, 50, 8, 4, "Amplitude:") spin1 = visio::spin(grid, 11, 50, 5, 4) visio::spin_set(spin1,80,1,99,1) label2 = visio::label(grid, 1, 55, 9, 4, "Frequency:") spin2 = visio::spin(grid, 11, 55, 5, 4) visio::spin_set(spin2,20,1,99,1) REM ****************Define cosinebuttons cosinebutton = visio::button(grid, 20, 44, 15, 5, "Cosine") label3 = visio::label(grid, 20, 50, 8, 4, "Amplitude:") spin3 = visio::spin(grid, 30, 50, 5, 4) visio::spin_set(spin3,60,1,99,1) label4 = visio::label(grid, 20, 55, 9, 4, "Frequency:") spin4 = visio::spin(grid, 30, 55, 5, 4) visio::spin_set(spin4, 30, 1, 99, 1) REM ****************Define menu item1 = visio::menu_list (1,"About") item2 = visio::menu_list (1,"Quit") bar = visio::menu_bar (grid, 0,0,50,5) visio::menu_connect (bar,1,"Help",V_POS_LEFT) REM ****************Define canvas frame = visio::frame(grid,1, 6, 48, 37, V_SHADOW_ETCHED_IN) canvas = visio::canvas(grid, 2,7,46,35) REM ****************Main program visio::show(win) REPEAT visio::wait(V_FALSE) IF visio::button_clicked(sinusbutton) THEN draw_sinus IF visio::button_clicked(cosinebutton) THEN draw_cosine IF visio::button_clicked(wipebutton) THEN visio::canvas_clear(canvas) IF visio::menu_clicked(item1) THEN visio::show(dialog) IF visio::button_clicked(okbutton) THEN visio::hide(dialog) UNTIL visio::button_clicked(exitbutton) OR visio::menu_clicked(item2) visio::exit()