|
Post by fragadelic on Dec 2, 2010 19:58:25 GMT 1
I am planning on making a live cd installer using BaCon and I needed a progress bar routine so I came up with this.
It isn't the prettiest but it works. The FOR loop is just there to test the bar for now.
Anyway, just thought I'd share this since I suggested a progressbar be added to hug.
Consists of 2 SUB's called progwinsetup and progressbar
SETENVIRON "LANG", "C"
REM Include the GUI Stuff INCLUDE "hug.bac"
REM Setup Progressbar Window SUB progwinsetup(STRING progtitle$,STRING progtext$) REM Every gui needs a main window progwin = WINDOW(progtitle$, 400, 150) progress_text = MARK(progtext$,398, 50) ATTACH(progwin, progress_text, 1, 10) canvas = CANVAS(380,40) ATTACH(progwin,canvas,10,100) ENDSUB
REM Update Progress bar SUB progressbar(STRING bgcolor$,STRING fgcolor$,NUMBER prog) percent = 378*prog/100 REM proginfo$ = STR$(prog) SQUARE(bgcolor$,1,1,percent,38,TRUE) REM OUT(proginfo$,fgcolor$,bgcolor$,20,10) SQUARE(fgcolor$,0,0,380,40,FALSE) ENDSUB
REM Main Program Below
progwinsetup("Progress Bar Title","Progress Bar Main Text Info")
FOR i = 1 TO 100 progressbar("#2222FF","#000000",i) SYNC SLEEP 250 NEXT HIDE(progwin) END
REM Main Program Above
REM endless gtk loop... DISPLAY
|
|
|
Post by Pjot on Dec 3, 2010 8:36:49 GMT 1
In HUG 0.26 you will find a progressbar. Please download the latest HUG from here. Sample code: SETENVIRON "LANG", "C" INCLUDE "hug.bac"
DECLARE pb, x, offset
offset = 1
FUNCTION set_value
INCR x, offset IF x >= 100 OR x <= 0 THEN offset = -1*offset
PROGRESSBAR_SET(pb, x) PRINT PROGRESSBAR_GET(pb)
RETURN TRUE
END FUNCTION
win = WINDOW("Progressbar", 200, 30) pb = PROGRESSBAR("demo", 200, 30) ATTACH(win, pb, 0, 0)
TIMEOUT(100, set_value)
DISPLAY
Regards Peter
|
|
|
Post by fragadelic on Dec 3, 2010 15:16:18 GMT 1
Awesome. I'll try it out and report back.
|
|
|
Post by fragadelic on Dec 3, 2010 15:40:34 GMT 1
This works well.
|
|
|
Post by initrd on Dec 4, 2010 4:30:20 GMT 1
Nice progressbar
REM PRINT PROGRESSBAR_GET(pb)
TEXT( pb, CONCAT$(STR$(PROGRESSBAR_GET(pb)), "%"))
|
|