diff options
Diffstat (limited to 'itcl/iwidgets/demos/scrolledcanvas')
-rw-r--r-- | itcl/iwidgets/demos/scrolledcanvas | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/itcl/iwidgets/demos/scrolledcanvas b/itcl/iwidgets/demos/scrolledcanvas new file mode 100644 index 00000000000..2caf6a4c5a5 --- /dev/null +++ b/itcl/iwidgets/demos/scrolledcanvas @@ -0,0 +1,45 @@ +# ---------------------------------------------------------------------- +# DEMO: scrolledcanvas in [incr Widgets] +# ---------------------------------------------------------------------- +package require Iwidgets 4.0 + +option add *textBackground seashell +. configure -background white + +iwidgets::scrolledcanvas .canv -labeltext "Scrolledcanvas" \ + -vscrollmode dynamic -hscrollmode dynamic -autoresize yes + +pack .canv -expand yes -fill both -padx 4 -pady 4 +.canv xview moveto 0 +.canv yview moveto 0 + + +button .zoomin -text "Zoom In" -command { + .canv scale all 0 0 2 2 + .canv configure -scrollregion [.canv bbox all] +} +pack .zoomin -side left -expand yes -padx 4 -pady 4 + +button .zoomout -text "Zoom Out" -command { + .canv scale all 0 0 0.5 0.5 + .canv xview moveto 0 + .canv yview moveto 0 + .canv configure -scrollregion [.canv bbox all] +} +pack .zoomout -side left -expand yes -padx 4 -pady 4 + + +bind [.canv component canvas] <ButtonPress-1> {add_rectangle %W %x %y} +bind [.canv component canvas] <B1-Motion> {add_rectangle %W %x %y} + +proc add_rectangle {win x y} { + set x [$win canvasx $x] + set y [$win canvasy $y] + + $win create rectangle \ + [expr $x-4] [expr $y-4] \ + [expr $x+4] [expr $y+4] \ + -outline "" -fill red + + $win configure -scrollregion [$win bbox all] +} |