diff options
Diffstat (limited to 'Master/tlpkg/tlperl/lib/Tk/overview.pod')
-rw-r--r-- | Master/tlpkg/tlperl/lib/Tk/overview.pod | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/Master/tlpkg/tlperl/lib/Tk/overview.pod b/Master/tlpkg/tlperl/lib/Tk/overview.pod deleted file mode 100644 index 0c9e183b68a..00000000000 --- a/Master/tlpkg/tlperl/lib/Tk/overview.pod +++ /dev/null @@ -1,138 +0,0 @@ - -=head1 NAME - -B<Tk> - An overview of an Object Oriented Tk8 extension for perl5 - -=for category Introduction - -=head1 SYNOPSIS - -C<< use Tk; >> - -C<< $main = MainWindow-E<gt>new(); >> - -C<< $widget = $main-E<gt>I<Widget>(...); >> - -C<< $widget-E<gt>pack(...); >> - -... - -C<< MainLoop; >> - -=head1 DESCRIPTION - -In writing the perl Tk extension, the goals were to provide a complete -interface to the latest production version of John Ousterhout's Tk, while providing -an Object Oriented interface to perl code. - -=head1 CONTENTS - -The package is composed of three loosely connected parts: - -=over 4 - -=item I<pTk> - Converted Tk source - -The I<pTk> sub-directory is a copy of the C code of Tk8.x, modified -to allow use by languages other than the original Tcl. -(The pTk can be read as 'perl' Tk or 'portable' Tk, depending on -your sensibilities.) - -=item B<Tk> to Perl 'Glue' - -The top level directory provides I<Tk.xs> and I<tkGlue.c> -which provide the perl-callable interfaces to pTk - -=item Perl code for 'Widget' Classes - -The I<Tk> sub-directory contains the various perl modules that comprise -the "Classes" that are visible to Tk applications. - -The "major" widgets such as B<Tk::Text> are actually in separate directories -at the top level (e.g. I<Text/*> for B<Tk::Text>) and are dynamically -loaded as needed on platforms which support perl5's B<DynaLoader>. - -=back - -=head1 CLASS HIERARCHY - -=over 4 - -=item B<package Tk;> - the 'base class' - -All the "command names" documented in Tcl/Tk are made to look like perl -sub's and reside in the Tk package. Their names are all lower case. -Typically there are very few commands at this level which are called -directly by applications. - -=item B<package Tk::Widget;> - the 'Widget class' - -There are no actual objects of the B<Tk::Widget> class; however all -the various Tk window "widgets" inherit from it, and it in turn -inherits all the core Tk functions from Tk. - -B<Tk::Widget> provides various functions and interfaces which are -common to all Widgets. - -A widget is represented to perl as a blessed reference to a hash. There are some -members of the hash which are private to Tk and its tkGlue code. Keys -starting with B<'.'> and of the form B</_[A-Z][A-Za-z_]+_/> -(i.e. starting and ending in _ and with first char after _ being upper case) should be -considered reserved to B<Tk>. - -=item B<Tk::Button>, B<Tk::Entry>, B<Tk::Text> ... - -There is one class for each of the "Tk" widget item types. -Some of them like B<Tk::Frame> do very little indeed, and really -only exist so that they can be derived from or so that focus or menu -traversal can discover the "kind" of window being processed. - -Other classes, B<Tk::Text> for example, provide a lot of methods -used with Tk's "bind" to provide a rich keyboard/mouse interface -to the widgets' data. - -These widget classes also include conversions of the Tcl code for -event bindings, keyboard focus traversal, menu bars, and menu keyboard -traversal. All the Tcl functions have been converted, but the names have -changed (systematically) and they have been split up between the various -classes in what I hope is an appropriate manner. -Name changes are normally: dropping initial tk_ as the Tk-ness is implicit -in the B<Tk::> prefix, and similarly dropping say Menu from the name if it -has been moved the Tk::Menu class. -Thus 'proc tkMenuNextEntry' becomes 'sub NextEntry' in the Tk::Menu package. - -=item B<Tk::Image> - -This does for Tk8.x's "images" what B<Tk::Widget> does for widgets. -Images are new to Tk8.x and the class structure is not mature either. - -There are three sub-classes B<Tk::Bitmap>, B<Tk::Pixmap> and B<Tk::Photo>. - -It is possible to create dynamic or auto-loaded image types inherited -from B<Tk::Image> for other image types or photo formats (e.g. support -for TIFF format). - -=item Composite Widgets - -A composite is some kind of 'frame' with subwidgets which give it useful behaviour. -B<Tk::Dialog> is an example of -a composite widget classes built from the basic B<Tk> ones. -It is intended that user code should not need to be aware that a particular -class is a composite, and create and configure such widgets in the same manner -as any other kind. The B<configure> mechanism and the methods of the -class manipulate the subwidgets as required. - -Composite widgets are implemented via B<Tk::Frame> and multiple inheritance. -The two 'frame' base classes B<Tk::Frame> and -B<Tk::Toplevel> include the additional class B<Tk::Derived> -in their inheritance. B<Tk::Derived> provides methods to allow additional -B<configure> options to be defined for a widget. - -A Composite widget is typically defined as derived -from B<Tk::Frame> or B<Tk::Toplevel> -(e.g. B<Tk::Dialog>). - -=back - -=cut - |