home *** CD-ROM | disk | FTP | other *** search
- #
- # Paned
- # ----------------------------------------------------------------------
- # Implements a pane for a paned window widget. The pane is itself a
- # frame with a child site for other widgets. The pane class performs
- # basic option management.
- #
- # ----------------------------------------------------------------------
- # AUTHOR: Mark L. Ulferts EMAIL: mulferts@austin.dsccc.com
- #
- # @(#) $Id: pane.itk,v 1.3 2001/08/07 19:56:48 smithc Exp $
- # ----------------------------------------------------------------------
- # Copyright (c) 1995 DSC Technologies Corporation
- # ======================================================================
- # Permission to use, copy, modify, distribute and license this software
- # and its documentation for any purpose, and without fee or written
- # agreement with DSC, is hereby granted, provided that the above copyright
- # notice appears in all copies and that both the copyright notice and
- # warranty disclaimer below appear in supporting documentation, and that
- # the names of DSC Technologies Corporation or DSC Communications
- # Corporation not be used in advertising or publicity pertaining to the
- # software without specific, written prior permission.
- #
- # DSC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- # ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, AND NON-
- # INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND THE
- # AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE MAINTENANCE,
- # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. IN NO EVENT SHALL
- # DSC BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- # ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- # WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION,
- # ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- # SOFTWARE.
- # ======================================================================
-
- #
- # Usual options.
- #
- itk::usual Pane {
- keep -background -cursor
- }
-
- # ------------------------------------------------------------------
- # PANE
- # ------------------------------------------------------------------
- itcl::class iwidgets::Pane {
- inherit itk::Widget
-
- constructor {args} {}
-
- itk_option define -minimum minimum Minimum 10
- itk_option define -margin margin Margin 8
-
- public method childSite {} {}
- }
-
- #
- # Provide a lowercased access method for the Pane class.
- #
- proc ::iwidgets::pane {pathName args} {
- uplevel ::iwidgets::Pane $pathName $args
- }
-
- # ------------------------------------------------------------------
- # CONSTRUCTOR
- # ------------------------------------------------------------------
- itcl::body iwidgets::Pane::constructor {args} {
- #
- # Create the pane childsite.
- #
- itk_component add childsite {
- frame $itk_interior.childsite
- } {
- keep -background -cursor
- }
- pack $itk_component(childsite) -fill both -expand yes
-
- #
- # Set the itk_interior variable to be the childsite for derived
- # classes.
- #
- set itk_interior $itk_component(childsite)
-
- eval itk_initialize $args
- }
-
- # ------------------------------------------------------------------
- # OPTIONS
- # ------------------------------------------------------------------
-
- # ------------------------------------------------------------------
- # OPTION: -minimum
- #
- # Specifies the minimum size that the pane may reach.
- # ------------------------------------------------------------------
- itcl::configbody iwidgets::Pane::minimum {
- set pixels \
- [winfo pixels $itk_component(hull) $itk_option(-minimum)]
-
- set itk_option(-minimum) $pixels
- }
-
- # ------------------------------------------------------------------
- # OPTION: -margin
- #
- # Specifies the border distance between the pane and pane contents.
- # This is done by setting the borderwidth of the pane to the margin.
- # ------------------------------------------------------------------
- itcl::configbody iwidgets::Pane::margin {
- set pixels [winfo pixels $itk_component(hull) $itk_option(-margin)]
- set itk_option(-margin) $pixels
-
- $itk_component(childsite) configure \
- -borderwidth $itk_option(-margin)
- }
-
- # ------------------------------------------------------------------
- # METHODS
- # ------------------------------------------------------------------
-
- # ------------------------------------------------------------------
- # METHOD: childSite
- #
- # Return the pane child site path name.
- # ------------------------------------------------------------------
- itcl::body iwidgets::Pane::childSite {} {
- return $itk_component(childsite)
- }
-