            file:   Tk::QuickTk-0.91/README

  QuickTk provides a quick and simple way to produce point-and-click
applications, using the perl-tk GUI toolkit.  It assumes a beginner's
level of familiarity with perl-tk, as documented in any of several
recent books (See, for instance, Nancy Walsh's "Learning Perl/Tk",
1999, ISBN: 1-56592-314-6, or "Mastering Perl/Tk", by Stephen Lidie
and Nancy Walsh, 2002, ISBN 978-1-56592-716-2 -- both published by
O'Reilly Media).

  The QuickTk format for specifying a GUI (graphical user interface)
is simple.  A complete application can be defined in a short, one
or two page document (see the examples included with this module).
You need Perl, the Perl Tk module (sometimes referred to as Perl/Tk
and packaged under the name perl-tk) and this module, in order to
support the script you write.  It's also helpful to use the author's
companion module, Text::TreeFile, to read a file containing a tree
(hierarchy) of "widgets" specifying your user interface.  The latter
module specifies a particular low-level format for such a file.

  The perl-tk widget library (Perl module Tk, for short) provides
"widgets" (things you see on the screen, like buttons) and "events"
(things that can happen to a widget, like a click, right-click or
double-click of the mouse on a button).  You need to know only about
the specific widgets and events of Tk you wish to use, and enough
Perl to say what should happen when your user makes an event happen
in one of your widgets.

  There are two big advantages for using QuickTk syntax, rather than
that of the plain Perl Tk module, alone, to specify the GUI of an
application:

  1.  Its declarative style is far simpler (and, arguably, more
    intuitive), for specifying the layout of the screen for an
    application, rather than giving procedural commands to create
    each widget, set its options and indicate actions for the events
    that can take place for the widget.  Any real application always
    requires a great many widgets to be assembled (and the order in
    which they're created doesn't really matter) -- so this makes a
    big difference in later readability as well as for initial
    specification.    -- and:

  2.  A great deal of (superfluous, i.e. adding no functionality)
    syntax is thereby eliminated, so that a smaller amount of
    (syntactically correct) typing is required and the result is
    easier to read and understand.

  The QuickTk syntax encourages several formats for specifying the
parts of an application that are best described procedurally, so
that nothing of this sort is forgone by using QuickTk.


DOCUMENTATION

  There are four man pages provided.  Tk::QuickTk(3pm) introduces
the functions and use of the module.  Tk::QuickTk::scripts(3pm)
which provides detailed information about the format for writing
GUI specification scripts for QuickTk.  Tk::QuickTk::details(3pm)
gives exhaustive specification of alternatives and features for
use.  And Tk::QuickTk::internals(3pm) documents the code itself.

  Another module: Text::TreeFile(3pm) is used by default.  Its
documentation describes low-level file format features useful
for this module.

AVAILABILITY

  Copyright (c) 2000,2011 John Kirk. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.

  The latest version of this module should always be available
at any CPAN (http://www.cpan.org) mirror, or from the author:
             http://perl.dystanhays.com/jnk

INSTALLATION

  I usually install modules using the CPANPLUS.pm module and its
associated command-line script, "cpanp", invoked as:

       cpanp

It can be run by an ordinary user, or the root user (to install
system-wide), and asks a few configuration questions the first time
it's run.  You can do a full install directly there, or just
download the requisite archive files and do the remaining steps
manually, as described next.

  The *.tar.gz file, after being uncompressed and unarchived, expects
to be installed (in Unix-like environments) with the following
commands:

       perl Build.PL
       ./Build
       ./Build test
       ./Build install

  This creates and installs man pages, generated from *.pm and *.pod
files, among other things, and requires the Perl Build module to be
present.  On older installations (that have MakeMaker, instead) the
following commands can be used:

       perl Makefile.PL
       make
       make test
       make install

SYNOPSIS

  use Tk::QuickTk;

  # if "scriptfile.qtk" is the name of a GUI script
  #   written in the QuickTk format documented here:
  my $app=Tk::QuickTk->new('scriptfile.qtk');

  MainLoop;

or (in Unix-like environments) you can make the script file directly
executable by giving it the following as its first line:

  exec /usr/bin/perl -M'Tk::QuickTk-app' -e app $0;exit

  See example scripts, provided with the module, to get the flavor
of what scripts look like.

CAVEAT

  QuickTk defines only a simpler, declarative, format for writing
the specification for a GUI-based application which uses the
perl-tk widget library.  Familiarity with, or reference to, that
library is required to use QuickTk.  The module, Text::TreeFile(3pm)
is used, by default, for interpreting the low-level file format in
which GUI specifications are written, so familiarity with, or
reference to, that module may be helpful in using QuickTk.

REQUIRES

  QuickTk uses modules:  Text::TreeFile(3pm) (recommended), Tk(3pm),
FileHandle(3pm), Carp(3pm), Exporter(3pm) and Autoloader(3pm).

CONTENTS

  This distribution provides the following:

QuickTk.pm  -- the code for the module, which your program will
  access with a "use Tk::QuickTk;" statement, typically.  Pod
  documentation is embedded in this file, from which the man page,
  Tk::QuickTk(3pm) is generated.

scripts.pod  -- plain old documentation exhaustively describing
  the syntax functionality of the GUI specification format
  supported by the QuickTk module, from which the man page,
  Tk::QuickTk::scripts(3pm) is generated.

details.pod  -- plain old documentation exhausively specifying
  the options for use of the module, from which the man page,
  Tk::QuickTk::details(3pm) is generated.

internals.pod  -- plain old documentation of the module code
  itself, from which the man page, Tk::QuickTk::internals(3pm)
  is generated.

test.pl  -- a small program which contains hand-coded copies of
  data structures that would result from using the Text::TreeFile(3pm)
  to read the "miniapp" example file, which displays a menu bar,
  a task bar and a text window, requests the user to carry out a
  brief procedure and reports results.  This is run as part of the
  normal installation procedure.
