OSDN Git Service

Enable to track git://github.com/monaka/binutils.git
[pf3gnuchains/pf3gnuchains3x.git] / itcl / iwidgets / generic / canvasprintdialog.itk
diff --git a/itcl/iwidgets/generic/canvasprintdialog.itk b/itcl/iwidgets/generic/canvasprintdialog.itk
new file mode 100644 (file)
index 0000000..ddd14cf
--- /dev/null
@@ -0,0 +1,155 @@
+#
+# CanvasPrintDialog v1.5
+# ----------------------------------------------------------------------
+# Implements a print dialog for printing the contents of a canvas widget
+# to a printer or a file. It is possible to specify page orientation, the
+# number of pages to print the image on and if the output should be
+# stretched to fit the page. The CanvasPrintDialog is derived from the
+# Dialog class and is composed of a CanvasPrintBox with attributes set to
+# manipulate the dialog buttons.
+# 
+# ----------------------------------------------------------------------
+#  AUTHOR: Tako Schotanus              EMAIL: Tako.Schotanus@bouw.tno.nl
+# ----------------------------------------------------------------------
+#                                 Copyright (c) 1995  Tako Schotanus
+# ======================================================================
+# Permission is hereby granted, without written agreement and without
+# license or royalty fees, to use, copy, modify, and distribute this
+# software and its documentation for any purpose, provided that the
+# above copyright notice and the following two paragraphs appear in
+# all copies of this software.
+# 
+# IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+# DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES 
+# ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN 
+# IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 
+# DAMAGE.
+#
+# THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, 
+# BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
+# FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
+# ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+# PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+# ======================================================================
+
+#
+# Option database default resources:
+#
+option add *Canvasprintdialog.filename "canvas.ps" widgetDefault
+option add *Canvasprintdialog.hPageCnt 1 widgetDefault
+option add *Canvasprintdialog.orient landscape widgetDefault
+option add *Canvasprintdialog.output printer widgetDefault
+option add *Canvasprintdialog.pageSize A4 widgetDefault
+option add *Canvasprintdialog.posterize 0 widgetDefault
+option add *Canvasprintdialog.printCmd lpr widgetDefault
+option add *Canvasprintdialog.printRegion "" widgetDefault
+option add *Canvasprintdialog.vPageCnt 1 widgetDefault
+option add *Canvasprintdialog.title "Canvas Print Dialog" widgetDefault
+option add *Canvasprintdialog.master "." widgetDefault
+
+#
+# Usual options.
+#
+itk::usual Canvasprintdialog {
+       keep -background -cursor -foreground -modality 
+}
+
+# ------------------------------------------------------------------
+# CANVASPRINTDIALOG
+# ------------------------------------------------------------------
+itcl::class iwidgets::Canvasprintdialog {
+       inherit iwidgets::Dialog
+
+       constructor {args} {}   
+       destructor {}
+
+       method deactivate {args} {}
+       method getoutput {} {}
+       method setcanvas {canv} {}
+       method refresh {} {}
+       method print {} {}
+}
+
+#
+# Provide a lowercased access method for the Canvasprintdialog class.
+# 
+proc ::iwidgets::canvasprintdialog {args} {
+       uplevel ::iwidgets::Canvasprintdialog $args
+}
+
+# ------------------------------------------------------------------
+# CONSTRUCTOR 
+#
+# Create new file selection dialog.
+# ------------------------------------------------------------------
+itcl::body iwidgets::Canvasprintdialog::constructor {args} {
+       component hull configure -borderwidth 0
+
+       # 
+       # Instantiate a file selection box widget.
+       #
+       itk_component add cpb {
+               iwidgets::Canvasprintbox $itk_interior.cpb
+       } {
+               usual
+               keep -printregion -output -printcmd -filename -pagesize \
+                    -orient -stretch -posterize -hpagecnt -vpagecnt
+       }
+       pack $itk_component(cpb) -fill both -expand yes
+
+       #
+       # Hide the apply and help buttons.
+       #
+       buttonconfigure OK -text Print
+       buttonconfigure Apply -command [itcl::code $this refresh] -text Refresh
+       hide Help
+
+       eval itk_initialize $args
+}   
+
+# ------------------------------------------------------------------
+# METHOD: deactivate
+#
+# Redefines method of dialog shell class. Stops the drawing of the
+# thumbnail (when busy) upon deactivation of the dialog.
+# ------------------------------------------------------------------
+itcl::body iwidgets::Canvasprintdialog::deactivate {args} {
+       $itk_component(cpb) stop
+       return [eval Shell::deactivate $args]
+}
+
+# ------------------------------------------------------------------
+# METHOD: getoutput
+#
+# Thinwrapped method of canvas print box class.
+# ------------------------------------------------------------------
+itcl::body iwidgets::Canvasprintdialog::getoutput {} {
+       return [$itk_component(cpb) getoutput]
+}
+
+# ------------------------------------------------------------------
+# METHOD: setcanvas
+#
+# Thinwrapped method of canvas print box class.
+# ------------------------------------------------------------------
+itcl::body iwidgets::Canvasprintdialog::setcanvas {canv} {
+       return [$itk_component(cpb) setcanvas $canv]
+}
+
+# ------------------------------------------------------------------
+# METHOD: refresh
+#
+# Thinwrapped method of canvas print box class.
+# ------------------------------------------------------------------
+itcl::body iwidgets::Canvasprintdialog::refresh {} {
+       return [$itk_component(cpb) refresh]
+}
+
+# ------------------------------------------------------------------
+# METHOD: print
+#
+# Thinwrapped method of canvas print box class.
+# ------------------------------------------------------------------
+itcl::body iwidgets::Canvasprintdialog::print {} {
+       return [$itk_component(cpb) print]
+}