canvPsGrph.tcl
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:3k
源码类别:

通讯编程

开发平台:

Visual C++

  1. # This file creates a screen to exercise Postscript generation
  2. # for some of the graphical objects in canvases.  It is part of the Tk
  3. # visual test suite, which is invoked via the "visual" script.
  4. #
  5. # RCS: @(#) $Id: canvPsGrph.tcl,v 1.3 1999/04/16 01:51:35 stanton Exp $
  6. catch {destroy .t}
  7. toplevel .t
  8. wm title .t "Postscript Tests for Canvases"
  9. wm iconname .t "Postscript"
  10. wm geom .t +0+0
  11. wm minsize .t 1 1
  12. set c .t.mid.c
  13. message .t.m -text {This screen exercises the Postscript-generation abilities of Tk canvas widgets.  Select what you want to display with the buttons below, then click on "Print" to print it to your default printer.  You can click on items in the canvas to delete them.} -width 4i
  14. pack .t.m -side top -fill both
  15. frame .t.top
  16. pack .t.top -side top -fill both
  17. set what rect
  18. radiobutton .t.top.rect -text Rectangles -variable what -value rect 
  19. -command "mkObjs $c" -relief flat
  20. radiobutton .t.top.oval -text Ovals -variable what -value oval 
  21. -command "mkObjs $c" -relief flat
  22. radiobutton .t.top.poly -text Polygons -variable what -value poly 
  23. -command "mkObjs $c" -relief flat
  24. radiobutton .t.top.line -text Lines -variable what -value line 
  25. -command "mkObjs $c" -relief flat
  26. pack .t.top.rect .t.top.oval .t.top.poly .t.top.line 
  27. -side left -pady 2m -ipadx 2m -ipady 1m -expand 1
  28. frame .t.bot
  29. pack .t.bot -side bottom -fill both
  30. button .t.bot.quit -text Quit -command {destroy .t}
  31. button .t.bot.print -text Print -command "lpr $c"
  32. pack .t.bot.print .t.bot.quit -side left -pady 1m -expand 1
  33. frame .t.mid -relief sunken -bd 2
  34. pack .t.mid -side top -expand yes -fill both -padx 2m -pady 2m
  35. canvas $c -width 400 -height 350 -bd 0 -relief sunken
  36. pack $c -expand yes -fill both -padx 1 -pady 1
  37. proc mkObjs c {
  38.     global what
  39.     $c delete all
  40.     if {$what == "rect"} {
  41. $c create rect 0 0 400 350 -outline black
  42. $c create rect 2 2 100 50 -fill black -stipple gray25
  43. $c create rect -20 180 80 320 -fill black -stipple gray50 -width .5c
  44. $c create rect 200 -20 240 20 -fill black
  45. $c create rect 380 200 420 240 -fill black
  46. $c create rect 200 330 240 370 -fill black
  47.     }
  48.     
  49.     if {$what == "oval"} {
  50. $c create oval 50 10 150 80 -fill black -stipple gray25 -outline {}
  51. $c create oval 100 100 200 150 -outline {} -fill black -stipple gray50
  52. $c create oval 250 100 400 300 -width .5c
  53.     }
  54.     
  55.     if {$what == "poly"} {
  56. $c create poly 100 200 200 50 300 200 -smooth yes -stipple gray25 
  57. -outline black -width 4
  58. $c create poly 100 300 100 250 350 250 350 300 350 300 100 300 100 300 
  59. -fill red -smooth yes
  60. $c create poly 20 10 40 10 40 60 80 60 80 25 30 25 30 
  61. 35 50 35 50 45 20 45
  62. $c create poly 300 20 300 120 380 80 320 100 -fill blue -outline black
  63. $c create poly 20 200 100 220 90 100 40 250 
  64. -fill {} -outline brown -width 3
  65.     }
  66.     
  67.     if {$what == "line"} {
  68. $c create line 20 20 120 20 -arrow both -width 5
  69. $c create line 20 80 150 80 20 200 150 200 -smooth yes
  70. $c create line 150 20 150 150 250 150 -width .5c -smooth yes 
  71. -arrow both -arrowshape {.75c 1.0c .5c} -stipple gray25
  72. $c create line 50 340 100 250 150 340 -join round -cap round -width 10
  73. $c create line 200 340 250 250 300 340 -join bevel -cap project 
  74. -width 10
  75. $c create line 300 20 380 20 300 150 380 150 -join miter -cap butt 
  76. -width 10 -stipple gray25
  77.     }
  78. }
  79. mkObjs $c