Changeset 25767 in project


Ignore:
Timestamp:
01/05/12 12:23:51 (9 years ago)
Author:
juergen
Message:

iup-tutor: gauge-led replaced by progressbar

File:
1 edited

Legend:

Unmodified
Added
Removed
  • wiki/iup-tutor

    r25758 r25767  
    7777
    7878<enscript highlight="c">
    79 
    8079#include <iup.h>
    8180#include <stdlib.h>
     
    8887  return 0;
    8988}
    90 
    9189</enscript>
    9290
     
    9492
    9593<enscript highlight="c">
    96 
    9794(use iup)
    9895(show (dialog (label "Hello, world!")))
    9996(main-loop)
    10097(exit 0)
    101 
    10298</enscript>
    10399
     
    116112
    117113<enscript highlight="c">
    118 
    119114#include <iup.h>
    120115#include <stdlib.h>
     
    159154  return EXIT_SUCCESS;
    160155}
    161 
    162156</enscript>
    163157
     
    167161
    168162<enscript highlight="scheme">
    169 
    170163(use iup)
    171164
     
    192185(destroy! dlg)
    193186(exit 0)
    194 
    195187</enscript>
    196188
     
    212204
    213205<enscript highlight="scheme">
    214 
    215206(use iup)
    216207
     
    232223(destroy! dlg)
    233224(exit 0)
    234 
    235225</enscript>
    236226
     
    249239
    250240<enscript highlight="c">
    251 
    252241widget=widget-type[attribute-name=attribute-value, ...](arg, ...)
    253 
    254242</enscript>
    255243
     
    262250
    263251<enscript highlight="c">
    264 
    265252btn = button[TIP = "Close window", EXPAND = Yes]("&Ok", 0)
    266253
     
    269256                label("Hello world!"),
    270257                btn))
    271 
    272258</enscript>
    273259
     
    275261
    276262<enscript highlight="scheme">
    277 
    278263(use iup)
    279264
     
    289274(destroy! dlg)
    290275(exit 0)
    291 
    292276</enscript>
    293277
     
    552536
    553537<enscript highlight="scheme">
    554 
    555538(use iup)
    556539
     
    609592(destroy! dlg)
    610593(exit 0)
    611 
    612594</enscript>
    613595
     
    617599
    618600<enscript highlight="scheme">
    619 
    620601(use iup)
    621602
     
    660641(main-loop)
    661642(destroy! dlg)
    662 
    663643</enscript>
    664644
     
    669649
    670650<enscript highlight="scheme">
    671 
    672651(use iup iup-dialogs)
    673652
     
    710689(main-loop)
    711690(exit 0)
    712 
    713691</enscript>
    714692
     
    726704
    727705<enscript highlight="scheme">
    728 
    729706(use iup)
    730707
     
    756733(destroy! dlg)
    757734(exit 0)
    758 
    759735</enscript>
    760736
     
    777753
    778754<enscript highlight="scheme">
    779 
    780755(use iup)
    781756
     
    883858prefixed keyword notation, 1: will not work, for example!
    884859
    885 ==== gauge-led.scm
    886 
    887 Now a dialog with a gauge and a timer, written with a led resource.
    888 
    889 Creates a gauge with 5 control buttons. The first button stops and
    890 starts the Gauge. The second one starts the Gauge. The third one
    891 reduces its speed. The fourth one increases its speed. The fifth one
    892 shows or hides the percentage inside the Gauge.
    893 
    894 We start with the resource:
    895 
    896 <enscript highlight="c">
    897 
    898 # play image (pause button)
    899 img-play = image[1="0 0 0",2="BGCOLOR"](22,22,
    900   2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    901  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    902  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    903  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    904  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    905  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    906  ,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    907  ,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2
    908  ,2,2,2,2,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2
    909  ,2,2,2,2,2,2,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2
    910  ,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2
    911  ,2,2,2,2,2,2,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2
    912  ,2,2,2,2,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2
    913  ,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2
    914  ,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    915  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    916  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    917  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    918  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    919  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    920  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    921  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 )
     860==== progressbar.scm
     861
     862Now a dialog with a progressbar and a timer as well as some pixmap
     863images for the control buttons. The latter are constructed with
     864image/palette, which accepts two dimension parameters and a blob with
     865the pixmap data. The color of each pixel is described by a number and
     866translated by that very number attribute to an rgb-string.
     867
     868<enscript highlight="scheme">
     869(use iup srfi-4)
     870
     871;; button images
     872
     873(define pause-img
     874  (image/palette 22 22
     875    (u8vector->blob
     876      (u8vector
     877        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     878        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     879        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     880        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     881        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     882        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     883        2 2 2 2 2 2 2 1 1 2 2 1 1 2 2 2 2 2 2 2 2 2
     884        2 2 2 2 2 2 2 1 1 2 2 1 1 2 2 2 2 2 2 2 2 2
     885        2 2 2 2 2 2 2 1 1 2 2 1 1 2 2 2 2 2 2 2 2 2
     886        2 2 2 2 2 2 2 1 1 2 2 1 1 2 2 2 2 2 2 2 2 2
     887        2 2 2 2 2 2 2 1 1 2 2 1 1 2 2 2 2 2 2 2 2 2
     888        2 2 2 2 2 2 2 1 1 2 2 1 1 2 2 2 2 2 2 2 2 2
     889        2 2 2 2 2 2 2 1 1 2 2 1 1 2 2 2 2 2 2 2 2 2
     890        2 2 2 2 2 2 2 1 1 2 2 1 1 2 2 2 2 2 2 2 2 2
     891        2 2 2 2 2 2 2 1 1 2 2 1 1 2 2 2 2 2 2 2 2 2
     892        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     893        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     894        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     895        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     896        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     897        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     898        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2))
     899    #:1 "0 0 0"
     900    #:2 "220 218 213"))
     901
     902(define play-img
     903  (image/palette 22 22
     904    (u8vector->blob
     905      (u8vector
     906        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     907        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     908        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     909        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     910        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     911        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     912        2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     913        2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2
     914        2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2
     915        2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2
     916        2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2
     917        2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2
     918        2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2
     919        2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2
     920        2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     921        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     922        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     923        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     924        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     925        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     926        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     927        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2))
     928    #:1 "0 0 0"
     929    #:2 "220 218 213"))
    922930 
    923 # start image (start button)
    924 img-start = image[1="0 0 0",2="BGCOLOR"](22,22,
    925   2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    926  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    927  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    928  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    929  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    930  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    931  ,2,2,2,2,1,1,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2
    932  ,2,2,2,2,1,1,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2
    933  ,2,2,2,2,1,1,2,2,2,2,1,1,1,1,1,1,2,2,2,2,2,2
    934  ,2,2,2,2,1,1,2,2,1,1,1,1,1,1,1,1,2,2,2,2,2,2
    935  ,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2
    936  ,2,2,2,2,1,1,2,2,1,1,1,1,1,1,1,1,2,2,2,2,2,2
    937  ,2,2,2,2,1,1,2,2,2,2,1,1,1,1,1,1,2,2,2,2,2,2
    938  ,2,2,2,2,1,1,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2
    939  ,2,2,2,2,1,1,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2
    940  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    941  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    942  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    943  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    944  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    945  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    946  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 )
    947 
    948 # rewind image (decelerate button)
    949 img-rewind = image[1="0 0 0",2="BGCOLOR"](22,22,
    950   2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    951  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    952  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    953  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    954  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    955  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    956  ,2,2,2,2,2,2,2,2,2,1,2,2,2,2,1,2,2,2,2,2,2,2
    957  ,2,2,2,2,2,2,2,2,1,1,2,2,2,1,1,2,2,2,2,2,2,2
    958  ,2,2,2,2,2,2,2,1,1,1,2,2,1,1,1,2,2,2,2,2,2,2
    959  ,2,2,2,2,2,2,1,1,1,1,2,1,1,1,1,2,2,2,2,2,2,2
    960  ,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2
    961  ,2,2,2,2,2,2,1,1,1,1,2,1,1,1,1,2,2,2,2,2,2,2
    962  ,2,2,2,2,2,2,2,1,1,1,2,2,1,1,1,2,2,2,2,2,2,2
    963  ,2,2,2,2,2,2,2,2,1,1,2,2,2,1,1,2,2,2,2,2,2,2
    964  ,2,2,2,2,2,2,2,2,2,1,2,2,2,2,1,2,2,2,2,2,2,2
    965  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    966  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    967  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    968  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    969  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    970  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    971  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 )
    972 
    973 # forward image (accelerate button)
    974 img-forward = image[1="0 0 0",2="BGCOLOR"](22,22,
    975   2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    976  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    977  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    978  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    979  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    980  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    981  ,2,2,2,2,2,2,2,1,2,2,2,2,1,2,2,2,2,2,2,2,2,2
    982  ,2,2,2,2,2,2,2,1,1,2,2,2,1,1,2,2,2,2,2,2,2,2
    983  ,2,2,2,2,2,2,2,1,1,1,2,2,1,1,1,2,2,2,2,2,2,2
    984  ,2,2,2,2,2,2,2,1,1,1,1,2,1,1,1,1,2,2,2,2,2,2
    985  ,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2
    986  ,2,2,2,2,2,2,2,1,1,1,1,2,1,1,1,1,2,2,2,2,2,2
    987  ,2,2,2,2,2,2,2,1,1,1,2,2,1,1,1,2,2,2,2,2,2,2
    988  ,2,2,2,2,2,2,2,1,1,2,2,2,1,1,2,2,2,2,2,2,2,2
    989  ,2,2,2,2,2,2,2,1,2,2,2,2,1,2,2,2,2,2,2,2,2,2
    990  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    991  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    992  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    993  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    994  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    995  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    996  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 )
    997 
    998 # show image (show button)
    999 img-show = image[1="0 0 0",2="BGCOLOR"](22,22,
    1000   2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    1001  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    1002  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    1003  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    1004  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    1005  ,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2
    1006  ,2,2,2,2,2,2,2,1,1,2,2,2,2,1,1,2,2,2,2,2,2,2
    1007  ,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2
    1008  ,2,2,2,2,2,1,2,2,2,1,1,1,2,2,2,2,1,2,2,2,2,2
    1009  ,2,2,2,2,1,2,2,2,1,1,2,2,1,2,2,2,2,1,2,2,2,2
    1010  ,2,2,2,1,2,2,2,2,1,1,1,2,1,2,2,2,2,2,1,2,2,2
    1011  ,2,2,2,2,1,2,2,2,1,1,1,1,1,2,2,2,2,1,2,2,2,2
    1012  ,2,2,2,2,2,1,2,2,2,1,1,1,2,2,2,2,1,2,2,2,2,2
    1013  ,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2
    1014  ,2,2,2,2,2,2,2,1,1,2,2,2,2,1,1,2,2,2,2,2,2,2
    1015  ,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2
    1016  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    1017  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    1018  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    1019  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    1020  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
    1021  ,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 )
    1022  
    1023 start-btn = button[TIP="Reset", IMAGE=img-start]("start", 0)
    1024 pause-btn = button[TIP="Pause", IMAGE=img-play]("pause",0)
    1025 accelerate-btn = button[TIP="Accelerate", IMAGE=img-forward]( "accelerate", 0)
    1026 decelerate-btn = button[TIP="Rewind", IMAGE=img-rewind]( "decelerate", 0)
    1027 show-btn = button[TIP="Show", IMAGE=img-show]( "show", 0)
    1028 
    1029 gauge-name=gauge[VALUE="0.84", EXPAND=YES]()
    1030 #gauge-name=GAUGE[VALUE="0.34", SIZE="QUARTERxEIGHTH"]()
    1031 command-box=hbox
    1032 (
    1033   fill(),
    1034   pause-btn,
    1035   start-btn,
    1036   decelerate-btn,
    1037   accelerate-btn,
    1038   show-btn,
    1039   fill())
    1040 
    1041 ok-btn =  button[TIP = "Close window", EXPAND = YES] ("&Ok", 0)
    1042 
    1043 #end-box = HBOX(ok-btn)
    1044 end-box = HBOX(fill(), ok-btn, fill())
    1045 
    1046 box=VBOX
    1047 (
    1048   gauge-name,
    1049   command-box,
    1050   fill(),
    1051   end-box
    1052 )
    1053 
    1054 dlg = DIALOG[TITLE="Gauge", RESIZE=NO]
    1055 (
    1056   box
    1057 )
    1058 
    1059 </enscript>
    1060 
    1061 And now the Scheme implementation
    1062 
    1063 <enscript highlight="scheme">
    1064 
    1065 (use iup)
    1066 
    1067 (define speed 0.00001)
    1068 
    1069 ;; callbacks
     931(define reset-img
     932  (image/palette 22 22
     933    (u8vector->blob
     934      (u8vector
     935        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     936        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     937        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     938        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     939        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     940        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     941        2 2 2 2 1 1 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2
     942        2 2 2 2 1 1 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2
     943        2 2 2 2 1 1 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2
     944        2 2 2 2 1 1 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2
     945        2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2
     946        2 2 2 2 1 1 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2
     947        2 2 2 2 1 1 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2
     948        2 2 2 2 1 1 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2
     949        2 2 2 2 1 1 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2
     950        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     951        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     952        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     953        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     954        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     955        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     956        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2))
     957    #:1 "0 0 0"
     958    #:2 "220 218 213"))
     959
     960(define decelerate-img
     961  (image/palette 22 22
     962    (u8vector->blob
     963      (u8vector
     964        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     965        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     966        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     967        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     968        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     969        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     970        2 2 2 2 2 2 2 2 2 1 2 2 2 2 1 2 2 2 2 2 2 2
     971        2 2 2 2 2 2 2 2 1 1 2 2 2 1 1 2 2 2 2 2 2 2
     972        2 2 2 2 2 2 2 1 1 1 2 2 1 1 1 2 2 2 2 2 2 2
     973        2 2 2 2 2 2 1 1 1 1 2 1 1 1 1 2 2 2 2 2 2 2
     974        2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2
     975        2 2 2 2 2 2 1 1 1 1 2 1 1 1 1 2 2 2 2 2 2 2
     976        2 2 2 2 2 2 2 1 1 1 2 2 1 1 1 2 2 2 2 2 2 2
     977        2 2 2 2 2 2 2 2 1 1 2 2 2 1 1 2 2 2 2 2 2 2
     978        2 2 2 2 2 2 2 2 2 1 2 2 2 2 1 2 2 2 2 2 2 2
     979        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     980        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     981        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     982        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     983        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     984        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     985        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2))
     986    #:1 "0 0 0"
     987    #:2 "220 218 213"))
     988
     989(define forward-img
     990  (image/palette 22 22
     991    (u8vector->blob
     992      (u8vector
     993        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     994        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     995        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     996        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     997        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     998        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     999        2 2 2 2 2 2 2 1 2 2 2 2 1 2 2 2 2 2 2 2 2 2
     1000        2 2 2 2 2 2 2 1 1 2 2 2 1 1 2 2 2 2 2 2 2 2
     1001        2 2 2 2 2 2 2 1 1 1 2 2 1 1 1 2 2 2 2 2 2 2
     1002        2 2 2 2 2 2 2 1 1 1 1 2 1 1 1 1 2 2 2 2 2 2
     1003        2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2
     1004        2 2 2 2 2 2 2 1 1 1 1 2 1 1 1 1 2 2 2 2 2 2
     1005        2 2 2 2 2 2 2 1 1 1 2 2 1 1 1 2 2 2 2 2 2 2
     1006        2 2 2 2 2 2 2 1 1 2 2 2 1 1 2 2 2 2 2 2 2 2
     1007        2 2 2 2 2 2 2 1 2 2 2 2 1 2 2 2 2 2 2 2 2 2
     1008        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     1009        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     1010        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     1011        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     1012        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     1013        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     1014        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2))
     1015    #:1 "0 0 0"
     1016    #:2 "220 218 213"))
     1017
     1018(define speed 0.01)
     1019
     1020;; button callbacks
    10701021
    10711022(define (ok-cb self) 'close)
    10721023
    10731024(define (idle-cb self)
    1074   (let (
    1075     (value (string->number (attribute gauge-name value:)))
    1076     (min (string->number (attribute gauge-name min:)))
    1077     (max (string->number (attribute gauge-name max:)))
    1078     )
    1079     (set! (attribute gauge-name value:)
    1080           (number->string (+ value speed)))
    1081     (if (>= (string->number (attribute gauge-name value:)) max)
    1082       (set! (attribute gauge-name value:) min))
    1083     'default))
     1025  (set! (attribute progressbar value:)
     1026        (+ (string->number (attribute progressbar value:)) speed))
     1027        ; will internally be transformed to a string
     1028  (if (>= (string->number (attribute progressbar value:)) 1)
     1029    (set! (attribute progressbar value:) 0))
     1030  'default)
    10841031
    10851032(define (pause-cb self)
    1086   (if (not (attribute #f idle-action:))
    1087     (set! (callback gauge-name idle-action:) (lambda (self) (idle-cb)))
    1088     (set! (callback gauge-name idle-action:) #f))
    1089   'default)
    1090 
    1091 (define (start-cb self)
    1092   (set! (attribute gauge-name value:)
    1093         (attribute gauge-name min:))
     1033  (if (string= (attribute tmr run:) "YES")
     1034    (begin
     1035      (attribute-set! tmr run: 'no) ; internally transformed to "NO"
     1036      (attribute-set! pause-btn image: pause-img))
     1037    (begin
     1038      (attribute-set! tmr run: 'yes) ; internally transformed to "YES"
     1039      (attribute-set! pause-btn image: play-img)))
     1040  'default)
     1041
     1042(define (reset-cb self)
     1043  (attribute-set! progressbar value: 0)
    10941044  'default)
    10951045
     
    11031053  'default)
    11041054
    1105 (define (show-cb self)
    1106   (if (attribute gauge-name show-text:)
    1107     (begin
    1108       (attribute-set! gauge-name show-text: 'No)
    1109       (attribute-set! gauge-name dashed: 'Yes))
    1110     (begin
    1111       (attribute-set! gauge-name show-text: 'Yes)
    1112       (attribute-set! gauge-name dashed: 'No))))
    1113 
    1114 ;; load resources
    1115 (load/led "gauge.led")
    1116 
    1117 (define dlg (handle-ref "dlg"))
    1118 (define gauge-name (handle-ref "gauge-name"))
    1119 
    1120 ;; set callbacks
    1121 (callback-set! (handle-ref "pause-btn") action: pause-cb)
    1122 (callback-set! (handle-ref "start-btn") action: start-cb)
    1123 (callback-set! (handle-ref "accelerate-btn") action: accelerate-cb)
    1124 (callback-set! (handle-ref "decelerate-btn") action: decelerate-cb)
    1125 (callback-set! (handle-ref "show-btn") action: show-cb)
    1126 (callback-set! (handle-ref "ok-btn") action: ok-cb)
    1127 
    1128 (define tim (timer #:time 100 #:action-cb idle-cb))
    1129 (attribute-set! tim run: 'Yes) ; doesn't work in constructor
     1055;; buttons
     1056
     1057(define reset-btn
     1058  (button "&Reset"
     1059          action: reset-cb
     1060          tip: "Reset timer"
     1061          image: reset-img))
     1062
     1063(define pause-btn
     1064  (button "&Pause"
     1065          action: pause-cb
     1066          tip: "Pause timer"
     1067          image: play-img))
     1068
     1069(define accelerate-btn
     1070  (button "&Accelerate"
     1071          action: accelerate-cb
     1072          tip: "Accelerate timer"
     1073          image: forward-img))
     1074
     1075(define decelerate-btn
     1076  (button "&Decelerate"
     1077          action: decelerate-cb
     1078          tip: "Decelerate timer"
     1079          image: decelerate-img))
     1080
     1081(define ok-btn
     1082  (button "&OK"
     1083          action: ok-cb
     1084          tip: "Close window"
     1085          expand: 'yes))
     1086
     1087;; timer
     1088
     1089(define tmr (timer time: 100 action-cb: idle-cb))
     1090(attribute-set! tmr run: 'yes) ; doesn't work in constructor
     1091; 'yes or any of the values 1, 'true, "TRUE", #t ... will internally
     1092; be transformed to "YES"
     1093
     1094;; progressbar
     1095
     1096(define progressbar
     1097  (progress-bar value: "0.34"
     1098                ;dashed: 'yes ; doesn't work
     1099                expand: 'yes))
     1100
     1101;; dialog
     1102
     1103(define dlg
     1104  (dialog
     1105    (vbox progressbar
     1106          (hbox
     1107            (fill)
     1108            pause-btn
     1109            reset-btn
     1110            decelerate-btn
     1111            accelerate-btn
     1112            (fill))
     1113          (fill)
     1114          (hbox
     1115            (fill)
     1116            ok-btn
     1117            (fill)))
     1118    title: 'Progressbar
     1119    resize: 'no))
     1120
     1121;; run
    11301122
    11311123(show dlg)
     
    11331125(destroy! dlg)
    11341126(exit 0)
    1135 
    11361127</enscript>
    11371128
     
    11451136
    11461137<enscript highlight="scheme">
    1147 
    11481138(use iup iup-web data-structures)
    11491139
     
    13161306(destroy! dlg)
    13171307(exit 0)
    1318 
    13191308</enscript>
    13201309
     
    13331322== Last updated
    13341323
    1335 Jan 02, 2012
     1324Jan 05, 2012
Note: See TracChangeset for help on using the changeset viewer.