Hex Artifact Content
Not logged in

Artifact c5bb41c7eeeb7d4f71eff2a7b662d7005b442766:


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.