19 May 2022 12:59:54 UTC
- Distribution: Tcl-pTk
- Module version: 1.09
- Source (raw)
- Browse (raw)
- How to Contribute
- Testers (63 / 0 / 0)
- KwaliteeBus factor: 1
- % Coverage
- License: perl_5
- Perl: v5.8.0
- Activity24 month
- Download (539.66KB)
- MetaCPAN Explorer
- Subscribe to distribution
- This version
- Latest version
Tcl::pTk::Facelift - Update the look of older Tk scripts using the new tile widgets
# Run a existing tcl/tk script 'tcltkscript.pl' with an updated look perl -MTcl::pTk::Facelift tcltkscript.pl # Alternatively, you can just put 'use Tcl::pTk::Facelift' at the # top of the 'tcltkscript.pl' file and just run it like normal # You can also do this in combination with Tcl::pTk::TkHijack to run # an existing perl/tk script using Tcl::pTk and with an updated look # perl -MTcl::pTk::TkHijack -MTcl::pTk::Facelift tkscript.pl
Tcl::pTk::Facelift is an experimental module that gives existing tcl/tk scripts an updated look by substituting some the widgets (button, entry, label, etc) with their new "Tile" widget equivalents.
Note that this replacement/substitution is not complete. The new "Tile" widgets aren't 100% compatible with the older widgets. To take full advantage of the new Tcl/Tk "Tile" widgets, you should re-code your application to specifically take advantage of them.
This package only replaces some of the basic widgets (e.g. button, label, entry, etc) with their tile-widget equivalents.
New widgets are created that override the creation-methods for the old widgets. These new methods create the new "Tile" widgets, instead of the old widgets.
For Example, this code snippet would create a top-level window, and a Label and Button widget
use Tcl::pTk; my $mw = MainWindow->new(); my $label = $mw->Label(); my $button = $mw->Button();
Now, with the addition of the
use Tcl::pTk::Faceliftpackage, the Label and <Button> creation-methods get over-ridden to build "Tile" widgets.
use Tcl::pTk; use Tcl::pTk::Facelift; my $mw = MainWindow->new(); my $label = $mw->Label(); my $button = $mw->Button();
Note: The new widgets created in this package have the same options as the old widget, but where there is no equivalent option in the new "Tile" widget, the option is ignored.
For example, most appearance-related options that are present in the old widgets don't exist in the new "Tile" widgets, because Tile-widgets appearances are controlled using "Themes". So the -bg (background color) option that exists for an old "button" widget doesn't exist in the new "ttkButton" widget. For better compatibility with existing scripts, the Tile-substitution widgets (e.g. the Button, Entry, etc widgets) created in this package will have a appearance options (e.g. -bg, -fg, etc) option, but they will be ignored.
There are some examples of using Facelift (along with TkHijack) with a simple perl/tk script, and a perl/tk mega-widget. See
t/Facelift_mega.tin the source distribution.
Substitutes for all the old widgets aren't provided
Options in the old widgets that aren't present the new Tile widgets are simply ignored.