# # itk::Archetype # ---------------------------------------------------------------------- # Base class for all widgets in the [incr Tk] Toolkit. Provides # facilities to merge widget options into a composite list of options # for the overall widget. Derived classes add widgets and methods to # specialize behavior. # # METHODS: # configure # configure -option # configure -option value ?-option value?... # Used to set/query configuration options # # component # component ? ...? # Invokes the given as a method on the component # called . # # itk_component add # Creates a component widget and merges its options into # the composite option list for the overall widget # # itk_component delete ?...? # Destroys a component widget and removes its options from # the composite option list # # itk_option add ?...? # Adds the option belonging to a class or component # widget into the option list. Options can be added even # if they were not originally kept when the component was # created. # # itk_option remove ?...? # Removes the option belonging to a class or component # widget from the option list. This allows a derived class # to turn off or redefine undesirable options inherited from # a base class. # # WIDGET ATTRIBUTES: # none # # ---------------------------------------------------------------------- # AUTHOR: Michael J. McLennan # Bell Labs Innovations for Lucent Technologies # mmclennan@lucent.com # http://www.tcltk.com/itcl # # RCS: $Id: Archetype.itk,v 1.1 1998/07/27 18:45:26 stanton Exp $ # ---------------------------------------------------------------------- # Copyright (c) 1993-1998 Lucent Technologies, Inc. # ====================================================================== # See the file "license.terms" for information on usage and # redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. itcl::class itk::Archetype { constructor {args} { _initOptionInfo eval itk_initialize $args } destructor { _deleteOptionInfo } method cget {option} @Archetype-cget method configure {{option ""} args} \ @Archetype-configure method config {{option ""} args} { eval configure $option $args } method component {{name ""} args} \ @Archetype-component protected method itk_component {option args} \ @Archetype-itk_component protected method itk_option {option args} \ @Archetype-itk_option protected method itk_initialize {args} \ @Archetype-itk_initialize protected variable itk_option protected variable itk_component protected variable itk_interior "" # ------------------------------------------------------------------ # Options common to all widgets # ------------------------------------------------------------------ itk_option define -clientdata clientData ClientData "" # ------------------------------------------------------------------ # Private methods needed for option management # ------------------------------------------------------------------ private method _initOptionInfo {} @Archetype-init private method _deleteOptionInfo {} @Archetype-delete }