Artifact
c5bb41c7eeeb7d4f71eff2a7b662d7005b442766:
- File
assets/zint2.5.0/demo.tcl
— part of check-in
[3ba628a7f9]
at
2014-07-15 15:41:19
on branch trunk
— initial check-in
(user:
chw
size: 1588)
0000: 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 package require
0010: 7a 69 6e 74 0a 77 6d 20 61 74 74 72 69 62 75 74 zint.wm attribut
0020: 65 73 20 2e 20 2d 66 75 6c 6c 73 63 72 65 65 6e es . -fullscreen
0030: 20 31 0a 69 6d 61 67 65 20 63 72 65 61 74 65 20 1.image create
0040: 70 68 6f 74 6f 20 3a 3a 7a 69 6e 74 69 6d 67 0a photo ::zintimg.
0050: 70 61 63 6b 20 5b 3a 3a 74 74 6b 3a 3a 63 6f 6d pack [::ttk::com
0060: 62 6f 62 6f 78 20 2e 63 20 2d 76 61 6c 75 65 73 bobox .c -values
0070: 20 5b 6c 73 6f 72 74 20 5b 7a 69 6e 74 20 73 79 [lsort [zint sy
0080: 6d 62 6f 6c 6f 67 69 65 73 5d 5d 20 2d 73 74 61 mbologies]] -sta
0090: 74 65 20 72 65 61 64 6f 6e 6c 79 5d 20 5c 0a 20 te readonly] \.
00a0: 20 20 20 2d 73 69 64 65 20 74 6f 70 20 2d 66 69 -side top -fi
00b0: 6c 6c 20 78 20 2d 70 61 64 78 20 33 30 20 2d 70 ll x -padx 30 -p
00c0: 61 64 79 20 32 30 0a 2e 63 20 73 65 74 20 44 61 ady 20..c set Da
00d0: 74 61 6d 61 74 72 69 78 0a 70 61 63 6b 20 5b 3a tamatrix.pack [:
00e0: 3a 74 74 6b 3a 3a 65 6e 74 72 79 20 2e 65 5d 20 :ttk::entry .e]
00f0: 2d 73 69 64 65 20 74 6f 70 20 2d 66 69 6c 6c 20 -side top -fill
0100: 78 20 2d 70 61 64 78 20 33 30 20 2d 70 61 64 79 x -padx 30 -pady
0110: 20 32 30 0a 2e 65 20 69 6e 73 65 72 74 20 65 6e 20..e insert en
0120: 64 20 31 32 33 34 35 0a 62 69 6e 64 20 2e 65 20 d 12345.bind .e
0130: 3c 52 65 74 75 72 6e 3e 20 47 65 6e 65 72 61 74 <Return> Generat
0140: 65 0a 70 61 63 6b 20 5b 3a 3a 74 74 6b 3a 3a 62 e.pack [::ttk::b
0150: 75 74 74 6f 6e 20 2e 62 20 2d 74 65 78 74 20 47 utton .b -text G
0160: 65 6e 65 72 61 74 65 20 2d 63 6f 6d 6d 61 6e 64 enerate -command
0170: 20 47 65 6e 65 72 61 74 65 5d 20 2d 66 69 6c 6c Generate] -fill
0180: 20 78 20 2d 73 69 64 65 20 74 6f 70 20 5c 0a 20 x -side top \.
0190: 20 20 20 2d 70 61 64 78 20 33 30 20 2d 70 61 64 -padx 30 -pad
01a0: 79 20 32 30 0a 70 72 6f 63 20 47 65 6e 65 72 61 y 20.proc Genera
01b0: 74 65 20 7b 7d 20 7b 0a 20 20 20 20 3a 3a 7a 69 te {} {. ::zi
01c0: 6e 74 69 6d 67 20 62 6c 61 6e 6b 0a 20 20 20 20 ntimg blank.
01d0: 3a 3a 7a 69 6e 74 69 6d 67 20 63 6f 6e 66 69 67 ::zintimg config
01e0: 75 72 65 20 2d 77 69 64 74 68 20 31 20 2d 68 65 ure -width 1 -he
01f0: 69 67 68 74 20 31 0a 20 20 20 20 3a 3a 7a 69 6e ight 1. ::zin
0200: 74 69 6d 67 20 62 6c 61 6e 6b 0a 20 20 20 20 3a timg blank. :
0210: 3a 7a 69 6e 74 69 6d 67 20 63 6f 6e 66 69 67 75 :zintimg configu
0220: 72 65 20 2d 77 69 64 74 68 20 30 20 2d 68 65 69 re -width 0 -hei
0230: 67 68 74 20 30 0a 20 20 20 20 69 66 20 7b 5b 63 ght 0. if {[c
0240: 61 74 63 68 20 7b 7a 69 6e 74 20 65 6e 63 6f 64 atch {zint encod
0250: 65 20 5b 2e 65 20 67 65 74 5d 20 3a 3a 7a 69 6e e [.e get] ::zin
0260: 74 69 6d 67 20 2d 62 61 72 63 6f 64 65 20 5b 2e timg -barcode [.
0270: 63 20 67 65 74 5d 7d 20 65 5d 7d 20 7b 0a 20 20 c get]} e]} {.
0280: 20 20 20 20 20 20 74 6b 5f 6d 65 73 73 61 67 65 tk_message
0290: 42 6f 78 20 2d 6d 65 73 73 61 67 65 20 24 65 20 Box -message $e
02a0: 2d 74 69 74 6c 65 20 22 5a 69 6e 74 20 65 72 72 -title "Zint err
02b0: 6f 72 22 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b or". } else {
02c0: 0a 09 73 65 74 20 77 20 5b 69 6d 61 67 65 20 77 ..set w [image w
02d0: 69 64 74 68 20 3a 3a 7a 69 6e 74 69 6d 67 5d 0a idth ::zintimg].
02e0: 09 73 65 74 20 68 20 5b 69 6d 61 67 65 20 68 65 .set h [image he
02f0: 69 67 68 74 20 3a 3a 7a 69 6e 74 69 6d 67 5d 0a ight ::zintimg].
0300: 09 73 65 74 20 6c 77 20 5b 77 69 6e 66 6f 20 77 .set lw [winfo w
0310: 69 64 74 68 20 2e 6c 5d 0a 09 73 65 74 20 6c 68 idth .l]..set lh
0320: 20 5b 77 69 6e 66 6f 20 68 65 69 67 68 74 20 2e [winfo height .
0330: 6c 5d 0a 09 73 65 74 20 73 78 20 5b 65 78 70 72 l]..set sx [expr
0340: 20 7b 69 6e 74 28 31 2e 30 20 2a 20 24 6c 77 20 {int(1.0 * $lw
0350: 2f 20 24 77 29 7d 5d 0a 09 73 65 74 20 73 79 20 / $w)}]..set sy
0360: 5b 65 78 70 72 20 7b 69 6e 74 28 31 2e 30 20 2a [expr {int(1.0 *
0370: 20 24 6c 68 20 2f 20 24 68 29 7d 5d 0a 09 69 66 $lh / $h)}]..if
0380: 20 7b 24 73 79 20 3c 20 24 73 78 7d 20 7b 0a 09 {$sy < $sx} {..
0390: 20 20 20 20 73 65 74 20 73 78 20 24 73 79 0a 09 set sx $sy..
03a0: 7d 0a 09 69 66 20 7b 24 73 78 20 3c 3d 20 30 7d }..if {$sx <= 0}
03b0: 20 7b 0a 09 20 20 20 20 73 65 74 20 73 78 20 5b {.. set sx [
03c0: 65 78 70 72 20 7b 31 2e 31 20 2a 20 24 6c 77 20 expr {1.1 * $lw
03d0: 2f 20 24 77 7d 5d 0a 09 20 20 20 20 73 65 74 20 / $w}].. set
03e0: 73 79 20 5b 65 78 70 72 20 7b 31 2e 31 20 2a 20 sy [expr {1.1 *
03f0: 24 6c 68 20 2f 20 24 68 7d 5d 0a 09 20 20 20 20 $lh / $h}]..
0400: 69 66 20 7b 24 73 79 20 3c 20 24 73 78 7d 20 7b if {$sy < $sx} {
0410: 0a 09 09 73 65 74 20 73 78 20 24 73 79 0a 09 20 ...set sx $sy..
0420: 20 20 20 7d 0a 09 7d 0a 09 3a 3a 7a 69 6e 74 69 }..}..::zinti
0430: 6d 67 20 62 6c 61 6e 6b 0a 09 3a 3a 7a 69 6e 74 mg blank..::zint
0440: 69 6d 67 20 63 6f 6e 66 69 67 75 72 65 20 2d 77 img configure -w
0450: 69 64 74 68 20 31 20 2d 68 65 69 67 68 74 20 31 idth 1 -height 1
0460: 0a 09 3a 3a 7a 69 6e 74 69 6d 67 20 62 6c 61 6e ..::zintimg blan
0470: 6b 0a 09 3a 3a 7a 69 6e 74 69 6d 67 20 63 6f 6e k..::zintimg con
0480: 66 69 67 75 72 65 20 2d 77 69 64 74 68 20 30 20 figure -width 0
0490: 2d 68 65 69 67 68 74 20 30 0a 09 63 61 74 63 68 -height 0..catch
04a0: 20 7b 0a 09 20 20 20 20 7a 69 6e 74 20 65 6e 63 {.. zint enc
04b0: 6f 64 65 20 5b 2e 65 20 67 65 74 5d 20 3a 3a 7a ode [.e get] ::z
04c0: 69 6e 74 69 6d 67 20 2d 62 61 72 63 6f 64 65 20 intimg -barcode
04d0: 5b 2e 63 20 67 65 74 5d 20 2d 73 63 61 6c 65 20 [.c get] -scale
04e0: 24 73 78 0a 09 7d 0a 20 20 20 20 7d 0a 7d 0a 70 $sx..}. }.}.p
04f0: 61 63 6b 20 5b 6c 61 62 65 6c 20 2e 6c 20 2d 69 ack [label .l -i
0500: 6d 61 67 65 20 3a 3a 7a 69 6e 74 69 6d 67 20 2d mage ::zintimg -
0510: 62 67 20 77 68 69 74 65 5d 20 2d 73 69 64 65 20 bg white] -side
0520: 74 6f 70 20 2d 66 69 6c 6c 20 62 6f 74 68 20 2d top -fill both -
0530: 65 78 70 61 6e 64 20 31 20 5c 0a 20 20 20 20 2d expand 1 \. -
0540: 70 61 64 78 20 33 30 20 2d 70 61 64 79 20 32 30 padx 30 -pady 20
0550: 0a 62 69 6e 64 20 2e 65 20 3c 43 6f 6e 66 69 67 .bind .e <Config
0560: 75 72 65 3e 20 7b 0a 20 20 20 20 61 66 74 65 72 ure> {. after
0570: 20 63 61 6e 63 65 6c 20 47 65 6e 65 72 61 74 65 cancel Generate
0580: 0a 20 20 20 20 61 66 74 65 72 20 69 64 6c 65 20 . after idle
0590: 47 65 6e 65 72 61 74 65 0a 7d 0a 62 69 6e 64 20 Generate.}.bind
05a0: 2e 63 20 3c 3c 43 6f 6d 62 6f 62 6f 78 53 65 6c .c <<ComboboxSel
05b0: 65 63 74 65 64 3e 3e 20 7b 0a 20 20 20 20 61 66 ected>> {. af
05c0: 74 65 72 20 63 61 6e 63 65 6c 20 47 65 6e 65 72 ter cancel Gener
05d0: 61 74 65 0a 20 20 20 20 61 66 74 65 72 20 69 64 ate. after id
05e0: 6c 65 20 47 65 6e 65 72 61 74 65 0a 7d 0a 62 69 le Generate.}.bi
05f0: 6e 64 20 61 6c 6c 20 3c 42 72 65 61 6b 3e 20 65 nd all <Break> e
0600: 78 69 74 0a 62 69 6e 64 20 61 6c 6c 20 3c 43 6f xit.bind all <Co
0610: 6e 74 72 6f 6c 2d 71 3e 20 65 78 69 74 0a 62 69 ntrol-q> exit.bi
0620: 6e 64 20 61 6c 6c 20 3c 41 6c 74 2d 71 3e 20 65 nd all <Alt-q> e
0630: 78 69 74 0a xit.