Pratt 1.5.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.exrc +61 -0
- data/.gitignore +4 -0
- data/History.txt +6 -0
- data/Manifest.txt +46 -0
- data/Pratt.gemspec +351 -0
- data/README.txt +66 -0
- data/Rakefile +85 -0
- data/TODO +54 -0
- data/VERSION +1 -0
- data/bin/pratt.rb +13 -0
- data/config.rb +34 -0
- data/lib/pratt.rb +527 -0
- data/lib/pratt/array.rb +11 -0
- data/lib/pratt/string.rb +18 -0
- data/models/app.rb +40 -0
- data/models/customer.rb +24 -0
- data/models/payment.rb +22 -0
- data/models/pratt.rb +19 -0
- data/models/project.rb +82 -0
- data/models/whence.rb +70 -0
- data/pkgs/tile-0.8.2.tar.gz +0 -0
- data/pkgs/tile-0.8.2/ANNOUNCE.txt +95 -0
- data/pkgs/tile-0.8.2/ChangeLog +4651 -0
- data/pkgs/tile-0.8.2/Makefile +250 -0
- data/pkgs/tile-0.8.2/Makefile.in +250 -0
- data/pkgs/tile-0.8.2/README.txt +86 -0
- data/pkgs/tile-0.8.2/aclocal.m4 +2 -0
- data/pkgs/tile-0.8.2/altTheme.o +0 -0
- data/pkgs/tile-0.8.2/blink.o +0 -0
- data/pkgs/tile-0.8.2/button.o +0 -0
- data/pkgs/tile-0.8.2/cache.o +0 -0
- data/pkgs/tile-0.8.2/clamTheme.o +0 -0
- data/pkgs/tile-0.8.2/classicTheme.o +0 -0
- data/pkgs/tile-0.8.2/config.log +1330 -0
- data/pkgs/tile-0.8.2/config.status +795 -0
- data/pkgs/tile-0.8.2/configure +15248 -0
- data/pkgs/tile-0.8.2/configure.in +89 -0
- data/pkgs/tile-0.8.2/demos/autocomplete.tcl +59 -0
- data/pkgs/tile-0.8.2/demos/demo.tcl +870 -0
- data/pkgs/tile-0.8.2/demos/dirbrowser.tcl +167 -0
- data/pkgs/tile-0.8.2/demos/dlgtest.tcl +97 -0
- data/pkgs/tile-0.8.2/demos/iconlib.tcl +110 -0
- data/pkgs/tile-0.8.2/demos/repeater.tcl +117 -0
- data/pkgs/tile-0.8.2/demos/toolbutton.tcl +101 -0
- data/pkgs/tile-0.8.2/doc/Geometry.3 +230 -0
- data/pkgs/tile-0.8.2/doc/INDEX.MAP +153 -0
- data/pkgs/tile-0.8.2/doc/Makefile +36 -0
- data/pkgs/tile-0.8.2/doc/TILE.XML +45 -0
- data/pkgs/tile-0.8.2/doc/Theme.3 +34 -0
- data/pkgs/tile-0.8.2/doc/button.n +75 -0
- data/pkgs/tile-0.8.2/doc/checkbutton.n +61 -0
- data/pkgs/tile-0.8.2/doc/combobox.n +98 -0
- data/pkgs/tile-0.8.2/doc/converting.txt +97 -0
- data/pkgs/tile-0.8.2/doc/dialog.n +122 -0
- data/pkgs/tile-0.8.2/doc/entry.n +438 -0
- data/pkgs/tile-0.8.2/doc/frame.n +43 -0
- data/pkgs/tile-0.8.2/doc/html/Geometry.html +304 -0
- data/pkgs/tile-0.8.2/doc/html/Theme.html +48 -0
- data/pkgs/tile-0.8.2/doc/html/button.html +120 -0
- data/pkgs/tile-0.8.2/doc/html/category-index.html +18 -0
- data/pkgs/tile-0.8.2/doc/html/checkbutton.html +94 -0
- data/pkgs/tile-0.8.2/doc/html/combobox.html +164 -0
- data/pkgs/tile-0.8.2/doc/html/converting.txt +97 -0
- data/pkgs/tile-0.8.2/doc/html/dialog.html +159 -0
- data/pkgs/tile-0.8.2/doc/html/entry.html +613 -0
- data/pkgs/tile-0.8.2/doc/html/frame.html +76 -0
- data/pkgs/tile-0.8.2/doc/html/image.html +100 -0
- data/pkgs/tile-0.8.2/doc/html/index.html +25 -0
- data/pkgs/tile-0.8.2/doc/html/keyword-index.html +228 -0
- data/pkgs/tile-0.8.2/doc/html/label.html +133 -0
- data/pkgs/tile-0.8.2/doc/html/labelframe.html +91 -0
- data/pkgs/tile-0.8.2/doc/html/manpage.css +212 -0
- data/pkgs/tile-0.8.2/doc/html/menubutton.html +63 -0
- data/pkgs/tile-0.8.2/doc/html/notebook.html +280 -0
- data/pkgs/tile-0.8.2/doc/html/paned.html +149 -0
- data/pkgs/tile-0.8.2/doc/html/progressbar.html +138 -0
- data/pkgs/tile-0.8.2/doc/html/radiobutton.html +89 -0
- data/pkgs/tile-0.8.2/doc/html/scrollbar.html +221 -0
- data/pkgs/tile-0.8.2/doc/html/separator.html +48 -0
- data/pkgs/tile-0.8.2/doc/html/sizegrip.html +62 -0
- data/pkgs/tile-0.8.2/doc/html/style.html +172 -0
- data/pkgs/tile-0.8.2/doc/html/tile-intro.html +164 -0
- data/pkgs/tile-0.8.2/doc/html/treeview.html +634 -0
- data/pkgs/tile-0.8.2/doc/html/widget.html +342 -0
- data/pkgs/tile-0.8.2/doc/image.n +81 -0
- data/pkgs/tile-0.8.2/doc/internals.txt +409 -0
- data/pkgs/tile-0.8.2/doc/label.n +75 -0
- data/pkgs/tile-0.8.2/doc/labelframe.n +64 -0
- data/pkgs/tile-0.8.2/doc/man.macros +239 -0
- data/pkgs/tile-0.8.2/doc/menubutton.n +41 -0
- data/pkgs/tile-0.8.2/doc/notebook.n +188 -0
- data/pkgs/tile-0.8.2/doc/paned.n +95 -0
- data/pkgs/tile-0.8.2/doc/progressbar.n +79 -0
- data/pkgs/tile-0.8.2/doc/radiobutton.n +57 -0
- data/pkgs/tile-0.8.2/doc/scrollbar.n +160 -0
- data/pkgs/tile-0.8.2/doc/separator.n +30 -0
- data/pkgs/tile-0.8.2/doc/sizegrip.n +53 -0
- data/pkgs/tile-0.8.2/doc/style.n +119 -0
- data/pkgs/tile-0.8.2/doc/tile-intro.n +165 -0
- data/pkgs/tile-0.8.2/doc/tmml.options +4 -0
- data/pkgs/tile-0.8.2/doc/treeview.n +415 -0
- data/pkgs/tile-0.8.2/doc/widget.n +227 -0
- data/pkgs/tile-0.8.2/doc/xml/Geometry.tmml +379 -0
- data/pkgs/tile-0.8.2/doc/xml/INDEX.MAP +153 -0
- data/pkgs/tile-0.8.2/doc/xml/Theme.tmml +63 -0
- data/pkgs/tile-0.8.2/doc/xml/button.tmml +134 -0
- data/pkgs/tile-0.8.2/doc/xml/checkbutton.tmml +119 -0
- data/pkgs/tile-0.8.2/doc/xml/combobox.tmml +184 -0
- data/pkgs/tile-0.8.2/doc/xml/dialog.tmml +195 -0
- data/pkgs/tile-0.8.2/doc/xml/entry.tmml +630 -0
- data/pkgs/tile-0.8.2/doc/xml/frame.tmml +98 -0
- data/pkgs/tile-0.8.2/doc/xml/image.tmml +101 -0
- data/pkgs/tile-0.8.2/doc/xml/label.tmml +154 -0
- data/pkgs/tile-0.8.2/doc/xml/labelframe.tmml +116 -0
- data/pkgs/tile-0.8.2/doc/xml/menubutton.tmml +80 -0
- data/pkgs/tile-0.8.2/doc/xml/notebook.tmml +306 -0
- data/pkgs/tile-0.8.2/doc/xml/paned.tmml +154 -0
- data/pkgs/tile-0.8.2/doc/xml/progressbar.tmml +151 -0
- data/pkgs/tile-0.8.2/doc/xml/radiobutton.tmml +109 -0
- data/pkgs/tile-0.8.2/doc/xml/scrollbar.tmml +233 -0
- data/pkgs/tile-0.8.2/doc/xml/separator.tmml +59 -0
- data/pkgs/tile-0.8.2/doc/xml/sizegrip.tmml +82 -0
- data/pkgs/tile-0.8.2/doc/xml/style.tmml +171 -0
- data/pkgs/tile-0.8.2/doc/xml/tile-intro.tmml +192 -0
- data/pkgs/tile-0.8.2/doc/xml/treeview.tmml +604 -0
- data/pkgs/tile-0.8.2/doc/xml/widget.tmml +372 -0
- data/pkgs/tile-0.8.2/entry.o +0 -0
- data/pkgs/tile-0.8.2/frame.o +0 -0
- data/pkgs/tile-0.8.2/generic/Makefile.in +221 -0
- data/pkgs/tile-0.8.2/generic/TODO +493 -0
- data/pkgs/tile-0.8.2/generic/altTheme.c +1172 -0
- data/pkgs/tile-0.8.2/generic/blink.c +168 -0
- data/pkgs/tile-0.8.2/generic/button.c +858 -0
- data/pkgs/tile-0.8.2/generic/cache.c +354 -0
- data/pkgs/tile-0.8.2/generic/clamTheme.c +974 -0
- data/pkgs/tile-0.8.2/generic/classicTheme.c +518 -0
- data/pkgs/tile-0.8.2/generic/configure +10334 -0
- data/pkgs/tile-0.8.2/generic/configure.in +100 -0
- data/pkgs/tile-0.8.2/generic/entry.c +1922 -0
- data/pkgs/tile-0.8.2/generic/frame.c +648 -0
- data/pkgs/tile-0.8.2/generic/gunk.h +44 -0
- data/pkgs/tile-0.8.2/generic/image.c +416 -0
- data/pkgs/tile-0.8.2/generic/label.c +663 -0
- data/pkgs/tile-0.8.2/generic/layout.c +1215 -0
- data/pkgs/tile-0.8.2/generic/manager.c +554 -0
- data/pkgs/tile-0.8.2/generic/manager.h +91 -0
- data/pkgs/tile-0.8.2/generic/notebook.c +1380 -0
- data/pkgs/tile-0.8.2/generic/paned.c +958 -0
- data/pkgs/tile-0.8.2/generic/pkgIndex.tcl.in +7 -0
- data/pkgs/tile-0.8.2/generic/progress.c +549 -0
- data/pkgs/tile-0.8.2/generic/scale.c +526 -0
- data/pkgs/tile-0.8.2/generic/scroll.c +253 -0
- data/pkgs/tile-0.8.2/generic/scrollbar.c +346 -0
- data/pkgs/tile-0.8.2/generic/separator.c +132 -0
- data/pkgs/tile-0.8.2/generic/square.c +306 -0
- data/pkgs/tile-0.8.2/generic/tagset.c +147 -0
- data/pkgs/tile-0.8.2/generic/tile.c +296 -0
- data/pkgs/tile-0.8.2/generic/tkElements.c +1280 -0
- data/pkgs/tile-0.8.2/generic/tkTheme.c +1708 -0
- data/pkgs/tile-0.8.2/generic/tkTheme.h +419 -0
- data/pkgs/tile-0.8.2/generic/tkThemeInt.h +45 -0
- data/pkgs/tile-0.8.2/generic/tkstate.c +268 -0
- data/pkgs/tile-0.8.2/generic/trace.c +145 -0
- data/pkgs/tile-0.8.2/generic/track.c +174 -0
- data/pkgs/tile-0.8.2/generic/treeview.c +3211 -0
- data/pkgs/tile-0.8.2/generic/ttk.decls +154 -0
- data/pkgs/tile-0.8.2/generic/ttkDecls.h +340 -0
- data/pkgs/tile-0.8.2/generic/ttkStubInit.c +61 -0
- data/pkgs/tile-0.8.2/generic/ttkStubLib.c +70 -0
- data/pkgs/tile-0.8.2/generic/widget.c +785 -0
- data/pkgs/tile-0.8.2/generic/widget.h +263 -0
- data/pkgs/tile-0.8.2/image.o +0 -0
- data/pkgs/tile-0.8.2/label.o +0 -0
- data/pkgs/tile-0.8.2/layout.o +0 -0
- data/pkgs/tile-0.8.2/library/altTheme.tcl +101 -0
- data/pkgs/tile-0.8.2/library/aquaTheme.tcl +62 -0
- data/pkgs/tile-0.8.2/library/button.tcl +85 -0
- data/pkgs/tile-0.8.2/library/clamTheme.tcl +139 -0
- data/pkgs/tile-0.8.2/library/classicTheme.tcl +108 -0
- data/pkgs/tile-0.8.2/library/combobox.tcl +439 -0
- data/pkgs/tile-0.8.2/library/cursors.tcl +36 -0
- data/pkgs/tile-0.8.2/library/defaults.tcl +118 -0
- data/pkgs/tile-0.8.2/library/dialog.tcl +274 -0
- data/pkgs/tile-0.8.2/library/entry.tcl +580 -0
- data/pkgs/tile-0.8.2/library/fonts.tcl +153 -0
- data/pkgs/tile-0.8.2/library/icons.tcl +105 -0
- data/pkgs/tile-0.8.2/library/keynav.tcl +192 -0
- data/pkgs/tile-0.8.2/library/menubutton.tcl +171 -0
- data/pkgs/tile-0.8.2/library/notebook.tcl +193 -0
- data/pkgs/tile-0.8.2/library/paned.tcl +87 -0
- data/pkgs/tile-0.8.2/library/progress.tcl +51 -0
- data/pkgs/tile-0.8.2/library/scale.tcl +54 -0
- data/pkgs/tile-0.8.2/library/scrollbar.tcl +125 -0
- data/pkgs/tile-0.8.2/library/sizegrip.tcl +77 -0
- data/pkgs/tile-0.8.2/library/tile.tcl +211 -0
- data/pkgs/tile-0.8.2/library/treeview.tcl +382 -0
- data/pkgs/tile-0.8.2/library/utils.tcl +254 -0
- data/pkgs/tile-0.8.2/library/winTheme.tcl +77 -0
- data/pkgs/tile-0.8.2/library/xpTheme.tcl +63 -0
- data/pkgs/tile-0.8.2/libtile0.8.2.so +0 -0
- data/pkgs/tile-0.8.2/libttkstub.a +0 -0
- data/pkgs/tile-0.8.2/license.terms +24 -0
- data/pkgs/tile-0.8.2/macosx/aquaTheme.c +1076 -0
- data/pkgs/tile-0.8.2/manager.o +0 -0
- data/pkgs/tile-0.8.2/notebook.o +0 -0
- data/pkgs/tile-0.8.2/paned.o +0 -0
- data/pkgs/tile-0.8.2/pkgIndex.tcl +3 -0
- data/pkgs/tile-0.8.2/progress.o +0 -0
- data/pkgs/tile-0.8.2/scale.o +0 -0
- data/pkgs/tile-0.8.2/scroll.o +0 -0
- data/pkgs/tile-0.8.2/scrollbar.o +0 -0
- data/pkgs/tile-0.8.2/separator.o +0 -0
- data/pkgs/tile-0.8.2/tagset.o +0 -0
- data/pkgs/tile-0.8.2/tclconfig/install-sh +119 -0
- data/pkgs/tile-0.8.2/tclconfig/tcl.m4 +4069 -0
- data/pkgs/tile-0.8.2/tclconfig/teax.m4 +109 -0
- data/pkgs/tile-0.8.2/tests/all.tcl +18 -0
- data/pkgs/tile-0.8.2/tests/bwidget.test +103 -0
- data/pkgs/tile-0.8.2/tests/cbtest.tcl +125 -0
- data/pkgs/tile-0.8.2/tests/combobox.test +51 -0
- data/pkgs/tile-0.8.2/tests/compound.tcl +92 -0
- data/pkgs/tile-0.8.2/tests/entry.test +285 -0
- data/pkgs/tile-0.8.2/tests/entrytest.tcl +78 -0
- data/pkgs/tile-0.8.2/tests/image.test +94 -0
- data/pkgs/tile-0.8.2/tests/labelframe.tcl +41 -0
- data/pkgs/tile-0.8.2/tests/labelframe.test +137 -0
- data/pkgs/tile-0.8.2/tests/layout.test +33 -0
- data/pkgs/tile-0.8.2/tests/misc.test +35 -0
- data/pkgs/tile-0.8.2/tests/nbtest.tcl +66 -0
- data/pkgs/tile-0.8.2/tests/notebook.test +500 -0
- data/pkgs/tile-0.8.2/tests/paned.test +298 -0
- data/pkgs/tile-0.8.2/tests/progress.test +92 -0
- data/pkgs/tile-0.8.2/tests/pwtest.tcl +90 -0
- data/pkgs/tile-0.8.2/tests/sbtest.tcl +79 -0
- data/pkgs/tile-0.8.2/tests/scrollbar.test +77 -0
- data/pkgs/tile-0.8.2/tests/sgtest.tcl +52 -0
- data/pkgs/tile-0.8.2/tests/testutils.tcl +20 -0
- data/pkgs/tile-0.8.2/tests/tile.test +674 -0
- data/pkgs/tile-0.8.2/tests/treetags.test +78 -0
- data/pkgs/tile-0.8.2/tests/treeview.test +563 -0
- data/pkgs/tile-0.8.2/tests/tvtest.tcl +332 -0
- data/pkgs/tile-0.8.2/tests/validate.test +278 -0
- data/pkgs/tile-0.8.2/tile.o +0 -0
- data/pkgs/tile-0.8.2/tkElements.o +0 -0
- data/pkgs/tile-0.8.2/tkTheme.o +0 -0
- data/pkgs/tile-0.8.2/tkstate.o +0 -0
- data/pkgs/tile-0.8.2/tools/genStubs.tcl +861 -0
- data/pkgs/tile-0.8.2/trace.o +0 -0
- data/pkgs/tile-0.8.2/track.o +0 -0
- data/pkgs/tile-0.8.2/treeview.o +0 -0
- data/pkgs/tile-0.8.2/ttkStubInit.o +0 -0
- data/pkgs/tile-0.8.2/ttkStubLib.o +0 -0
- data/pkgs/tile-0.8.2/widget.o +0 -0
- data/pkgs/tile-0.8.2/win/Tile.dsp +261 -0
- data/pkgs/tile-0.8.2/win/makefile.vc +527 -0
- data/pkgs/tile-0.8.2/win/monitor.c +164 -0
- data/pkgs/tile-0.8.2/win/nmakehlp.c +483 -0
- data/pkgs/tile-0.8.2/win/rules.vc +512 -0
- data/pkgs/tile-0.8.2/win/tile.rc +40 -0
- data/pkgs/tile-0.8.2/win/winTheme.c +734 -0
- data/pkgs/tile-0.8.2/win/xpTheme.c +1029 -0
- data/spec/app_spec.rb +48 -0
- data/spec/customer_spec.rb +31 -0
- data/spec/fixtures/graph.expectation +18 -0
- data/spec/payment_spec.rb +19 -0
- data/spec/pratt_spec.rb +148 -0
- data/spec/project_spec.rb +163 -0
- data/spec/rcov.opts +0 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +21 -0
- data/spec/whence_spec.rb +54 -0
- data/tasks/pratt.rb +84 -0
- data/templates/model.eruby +12 -0
- data/templates/spec.eruby +8 -0
- data/views/env.rb +22 -0
- data/views/graph.eruby +20 -0
- data/views/invoice.eruby +148 -0
- data/views/main.rb +92 -0
- data/views/pid.eruby +3 -0
- data/views/pop.rb +94 -0
- data/views/pop2.rb +75 -0
- data/views/raw.eruby +11 -0
- metadata +390 -0
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
<html>
|
|
2
|
+
<head>
|
|
3
|
+
<link rel="stylesheet" href="manpage.css"><title>Tile package reference: widget</title><meta name="xsl-processor" content="Jochen Loewer (loewerj@hotmail.com), Rolf Ade (rolf@pointsman.de) et. al."><meta name="generator" content="$RCSfile: tmml-html.xsl,v $ $Revision: 1.12 $">
|
|
4
|
+
</head><body>
|
|
5
|
+
<div class="header">
|
|
6
|
+
<div class="navbar" align="center">
|
|
7
|
+
<a href="#SECTid8206658">NAME</a> � <a href="#SECTid82066d0">DESCRIPTION</a> � <a href="#SECTid8206748">STANDARD OPTIONS</a> � <a href="#SECTid8206c48">SCROLLABLE WIDGET OPTIONS</a> � <a href="#SECTid8206fe0">LABEL OPTIONS</a> � <a href="#SECTid8207a30">COMPATIBILITY OPTIONS</a> � <a href="#SECTid8207c38">COMMANDS</a> � <a href="#SECTid8208458">WIDGET STATES</a> � <a href="#SECTid8208b60">EXAMPLES</a> � <a href="#SECTid8208bd8">SEE ALSO</a> � <a href="#SECTid8208c50">KEYWORDS</a>
|
|
8
|
+
</div><hr class="navsep">
|
|
9
|
+
</div><div class="body">
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
<h2><a name="SECTid8206658">NAME</a></h2><p class="namesection">
|
|
14
|
+
<b class="names">widget - </b><br>Standard options and commands supported by Tile widgets</p>
|
|
15
|
+
<h2><a name="SECTid82066d0">DESCRIPTION</a></h2><p>This manual describes common widget options and commands.
|
|
16
|
+
</p>
|
|
17
|
+
<h2><a name="SECTid8206748">STANDARD OPTIONS</a></h2><p>The following options are supported by all Tile widgets:
|
|
18
|
+
</p><div class="table"><table width="100%" rules="none" cellpadding="5%">
|
|
19
|
+
<thead><tr class="heading">
|
|
20
|
+
<th width="20%">Name</th><th width="40%">Database name</th><th width="40%">Database class</th>
|
|
21
|
+
</tr></thead><tr class="syntax">
|
|
22
|
+
<td width="20%" align="left"><a name="stdopt_-class">-class</a></td><td width="40%" align="left">(N/A)</td><td width="40%" align="left">(N/A)</td>
|
|
23
|
+
</tr><tr class="desc">
|
|
24
|
+
<td class="padding" width="20%">�</td><td class="argdesc" width="80%" align="left" colspan="2">Specifies the window class.
|
|
25
|
+
The class is used when querying the option database
|
|
26
|
+
for the window's other options, to determine the default
|
|
27
|
+
bindtags for the window, and to select the widget's default
|
|
28
|
+
layout and style.
|
|
29
|
+
This is a read-only option:
|
|
30
|
+
it may only be specified when the window is created,
|
|
31
|
+
and may not be changed with the <b>configure</b> widget command.
|
|
32
|
+
</td>
|
|
33
|
+
</tr><tr class="syntax">
|
|
34
|
+
<td width="20%" align="left"><a name="stdopt_-cursor">-cursor</a></td><td width="40%" align="left">cursor</td><td width="40%" align="left">Cursor</td>
|
|
35
|
+
</tr><tr class="desc">
|
|
36
|
+
<td class="padding" width="20%">�</td><td class="argdesc" width="80%" align="left" colspan="2">Specifies the mouse cursor to be used for the widget.
|
|
37
|
+
See <b class="fun">Tk_GetCursor</b> and <i>cursors(n)</i> in the Tk reference manual
|
|
38
|
+
for the legal values.
|
|
39
|
+
If set to the empty string (the default),
|
|
40
|
+
the cursor is inherited from the parent widget.
|
|
41
|
+
</td>
|
|
42
|
+
</tr><tr class="syntax">
|
|
43
|
+
<td width="20%" align="left"><a name="stdopt_-takefocus">-takefocus</a></td><td width="40%" align="left">takeFocus</td><td width="40%" align="left">TakeFocus</td>
|
|
44
|
+
</tr><tr class="desc">
|
|
45
|
+
<td class="padding" width="20%">�</td><td class="argdesc" width="80%" align="left" colspan="2">Determines whether the window accepts the focus during keyboard traversal.
|
|
46
|
+
Either <b>0</b>, <b>1</b>, a command prefix (to which the widget path
|
|
47
|
+
is appended, and which should return <b>0</b> or <b>1</b>),
|
|
48
|
+
or the empty string.
|
|
49
|
+
See <i>options(n)</i> in the Tk reference manual for the full description.
|
|
50
|
+
</td>
|
|
51
|
+
</tr><tr class="syntax">
|
|
52
|
+
<td width="20%" align="left"><a name="stdopt_-style">-style</a></td><td width="40%" align="left">style</td><td width="40%" align="left">Style</td>
|
|
53
|
+
</tr><tr class="desc">
|
|
54
|
+
<td class="padding" width="20%">�</td><td class="argdesc" width="80%" align="left" colspan="2">May be used to specify a custom widget style.
|
|
55
|
+
</td>
|
|
56
|
+
</tr>
|
|
57
|
+
</table></div>
|
|
58
|
+
<h2><a name="SECTid8206c48">SCROLLABLE WIDGET OPTIONS</a></h2><p>The following options are supported by widgets that
|
|
59
|
+
are controllable by a scrollbar.
|
|
60
|
+
See <i>scrollbar(n)</i> for more information
|
|
61
|
+
</p><div class="table"><table width="100%" rules="none" cellpadding="5%">
|
|
62
|
+
<thead><tr class="heading">
|
|
63
|
+
<th width="20%">Name</th><th width="40%">Database name</th><th width="40%">Database class</th>
|
|
64
|
+
</tr></thead><tr class="syntax">
|
|
65
|
+
<td width="20%" align="left"><a name="stdopt_-xscrollcommand">-xscrollcommand</a></td><td width="40%" align="left">xScrollCommand</td><td width="40%" align="left">ScrollCommand</td>
|
|
66
|
+
</tr><tr class="desc">
|
|
67
|
+
<td class="padding" width="20%">�</td><td class="argdesc" width="80%" align="left" colspan="2">A command prefix, used to communicate with horizontal scrollbars.
|
|
68
|
+
<p>When the view in the widget's window changes, the widget will
|
|
69
|
+
generate a Tcl command by concatenating the scroll command and
|
|
70
|
+
two numbers.
|
|
71
|
+
Each of the numbers is a fraction between 0 and 1 indicating
|
|
72
|
+
a position in the document; 0 indicates the beginning,
|
|
73
|
+
and 1 indicates the end.
|
|
74
|
+
The first fraction indicates the first information in the widget
|
|
75
|
+
that is visible in the window, and the second fraction indicates
|
|
76
|
+
the information just after the last portion that is visible.
|
|
77
|
+
</p><p>Typically the <b>xScrollCommand</b> option consists of the path name
|
|
78
|
+
of a <b>scrollbar</b> widget followed by ``set'', e.g. ``.x.scrollbar set''.
|
|
79
|
+
This will cause the scrollbar to be updated whenever the view in the
|
|
80
|
+
window changes.
|
|
81
|
+
</p><p>If this option is set to the empty string (the default),
|
|
82
|
+
then no command will be executed.
|
|
83
|
+
</p>
|
|
84
|
+
</td>
|
|
85
|
+
</tr><tr class="syntax">
|
|
86
|
+
<td width="20%" align="left"><a name="stdopt_-yscrollcommand">-yscrollcommand</a></td><td width="40%" align="left">yScrollCommand</td><td width="40%" align="left">ScrollCommand</td>
|
|
87
|
+
</tr><tr class="desc">
|
|
88
|
+
<td class="padding" width="20%">�</td><td class="argdesc" width="80%" align="left" colspan="2">A command prefix, used to communicate with vertical scrollbars.
|
|
89
|
+
See the description of <b>-xscrollcommand</b> above for details.
|
|
90
|
+
</td>
|
|
91
|
+
</tr>
|
|
92
|
+
</table></div>
|
|
93
|
+
<h2><a name="SECTid8206fe0">LABEL OPTIONS</a></h2><p>The following options are supported by labels, buttons,
|
|
94
|
+
and other button-like widgets:
|
|
95
|
+
</p><div class="table"><table width="100%" rules="none" cellpadding="5%">
|
|
96
|
+
<thead><tr class="heading">
|
|
97
|
+
<th width="20%">Name</th><th width="40%">Database name</th><th width="40%">Database class</th>
|
|
98
|
+
</tr></thead><tr class="syntax">
|
|
99
|
+
<td width="20%" align="left"><a name="stdopt_-text">-text</a></td><td width="40%" align="left">text</td><td width="40%" align="left">Text</td>
|
|
100
|
+
</tr><tr class="desc">
|
|
101
|
+
<td class="padding" width="20%">�</td><td class="argdesc" width="80%" align="left" colspan="2">Specifies a text string to be displayed inside the widget
|
|
102
|
+
(unless overridden by <b>-textvariable</b>).
|
|
103
|
+
</td>
|
|
104
|
+
</tr><tr class="syntax">
|
|
105
|
+
<td width="20%" align="left"><a name="stdopt_-textvariable">-textvariable</a></td><td width="40%" align="left">textVariable</td><td width="40%" align="left">Variable</td>
|
|
106
|
+
</tr><tr class="desc">
|
|
107
|
+
<td class="padding" width="20%">�</td><td class="argdesc" width="80%" align="left" colspan="2">Specifies the name of variable whose value will be used
|
|
108
|
+
in place of the <b>-text</b> resource.
|
|
109
|
+
</td>
|
|
110
|
+
</tr><tr class="syntax">
|
|
111
|
+
<td width="20%" align="left"><a name="stdopt_-underline">-underline</a></td><td width="40%" align="left">underline</td><td width="40%" align="left">Underline</td>
|
|
112
|
+
</tr><tr class="desc">
|
|
113
|
+
<td class="padding" width="20%">�</td><td class="argdesc" width="80%" align="left" colspan="2">If set, specifies the integer index (0-based) of a character to underline
|
|
114
|
+
in the text string.
|
|
115
|
+
The underlined character is used for mnemonic activation
|
|
116
|
+
(see <i>keynav(n)</i>).
|
|
117
|
+
</td>
|
|
118
|
+
</tr><tr class="syntax">
|
|
119
|
+
<td width="20%" align="left"><a name="stdopt_-image">-image</a></td><td width="40%" align="left">image</td><td width="40%" align="left">Image</td>
|
|
120
|
+
</tr><tr class="desc">
|
|
121
|
+
<td class="padding" width="20%">�</td><td class="argdesc" width="80%" align="left" colspan="2">Specifies an image to display.
|
|
122
|
+
This is a list of 1 or more elements.
|
|
123
|
+
The first element is the default image name.
|
|
124
|
+
The rest of the list is a sequence of <i>statespec / value</i> pairs
|
|
125
|
+
as per <b>style map</b>, specifying different images to use when
|
|
126
|
+
the widget is in a particular state or combination of states.
|
|
127
|
+
All images in the list should have the same size.
|
|
128
|
+
</td>
|
|
129
|
+
</tr><tr class="syntax">
|
|
130
|
+
<td width="20%" align="left"><a name="stdopt_-compound">-compound</a></td><td width="40%" align="left">compound</td><td width="40%" align="left">Compound</td>
|
|
131
|
+
</tr><tr class="desc">
|
|
132
|
+
<td class="padding" width="20%">�</td><td class="argdesc" width="80%" align="left" colspan="2">Specifies how to display the image relative to the text,
|
|
133
|
+
in the case both <b>-text</b> and <b>-image</b> are present.
|
|
134
|
+
Valid values are:
|
|
135
|
+
<dl>
|
|
136
|
+
|
|
137
|
+
<dt>text</dt>
|
|
138
|
+
<dd>Display text only.
|
|
139
|
+
</dd>
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
<dt>image</dt>
|
|
143
|
+
<dd>Display image only.
|
|
144
|
+
</dd>
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
<dt>center</dt>
|
|
148
|
+
<dd>Display text centered on top of image.
|
|
149
|
+
</dd>
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
<dt>top</dt>
|
|
153
|
+
<dd></dd>
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
<dt>bottom</dt>
|
|
157
|
+
<dd></dd>
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
<dt>left</dt>
|
|
161
|
+
<dd></dd>
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
<dt>right</dt>
|
|
165
|
+
<dd>Display image above, below, left of, or right of the text, respectively.
|
|
166
|
+
</dd>
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
<dt>none</dt>
|
|
170
|
+
<dd>The default; display the image if present, otherwise the text.
|
|
171
|
+
</dd>
|
|
172
|
+
|
|
173
|
+
</dl>
|
|
174
|
+
</td>
|
|
175
|
+
</tr><tr class="syntax">
|
|
176
|
+
<td width="20%" align="left"><a name="stdopt_-width">-width</a></td><td width="40%" align="left">width</td><td width="40%" align="left">Width</td>
|
|
177
|
+
</tr><tr class="desc">
|
|
178
|
+
<td class="padding" width="20%">�</td><td class="argdesc" width="80%" align="left" colspan="2">If greater than zero, specifies how much space, in character widths,
|
|
179
|
+
to allocate for the text label.
|
|
180
|
+
If less than zero, specifies a minimum width.
|
|
181
|
+
If zero or unspecified, the natural width of the text label is used.
|
|
182
|
+
|
|
183
|
+
</td>
|
|
184
|
+
</tr>
|
|
185
|
+
</table></div>
|
|
186
|
+
<h2><a name="SECTid8207a30">COMPATIBILITY OPTIONS</a></h2><div class="table"><table width="100%" rules="none" cellpadding="5%">
|
|
187
|
+
<thead><tr class="heading">
|
|
188
|
+
<th width="20%">Name</th><th width="40%">Database name</th><th width="40%">Database class</th>
|
|
189
|
+
</tr></thead><tr class="syntax">
|
|
190
|
+
<td width="20%" align="left"><a name="stdopt_-state">-state</a></td><td width="40%" align="left">state</td><td width="40%" align="left">State</td>
|
|
191
|
+
</tr><tr class="desc">
|
|
192
|
+
<td class="padding" width="20%">�</td><td class="argdesc" width="80%" align="left" colspan="2">May be set to <b>normal</b> or <b>disabled</b>
|
|
193
|
+
to control the <b>disabled</b> state bit.
|
|
194
|
+
This is a write-only option:
|
|
195
|
+
setting it changes the widget state,
|
|
196
|
+
but the <b>state</b> widget command
|
|
197
|
+
does not affect the <b>-state</b> option.
|
|
198
|
+
|
|
199
|
+
</td>
|
|
200
|
+
</tr>
|
|
201
|
+
</table></div>
|
|
202
|
+
<h2><a name="SECTid8207c38">COMMANDS</a></h2><dl>
|
|
203
|
+
|
|
204
|
+
<dt>
|
|
205
|
+
<i class="m">pathName</i> <b>cget</b> <i class="m">option</i>
|
|
206
|
+
</dt>
|
|
207
|
+
<dd>Returns the current value of the configuration option given
|
|
208
|
+
by <i>option</i>.
|
|
209
|
+
</dd>
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
<dt>
|
|
213
|
+
<i class="m">pathName</i> <b>configure</b> ?<i class="m">option</i>? ?<i class="m">value option value ...</i>?</dt>
|
|
214
|
+
<dd>Query or modify the configuration options of the widget.
|
|
215
|
+
If one or more <i>option-value</i> pairs are specified,
|
|
216
|
+
then the command modifies the given widget option(s)
|
|
217
|
+
to have the given value(s);
|
|
218
|
+
in this case the command returns an empty string.
|
|
219
|
+
If <i>option</i> is specified with no <i>value</i>,
|
|
220
|
+
then the command returns a list describing the named option:
|
|
221
|
+
the elements of the list are the
|
|
222
|
+
option name, database name, database class, default value,
|
|
223
|
+
and current value.
|
|
224
|
+
If no <i>option</i> is specified, returns a list describing all of
|
|
225
|
+
the available options for <i>pathName</i>.
|
|
226
|
+
</dd>
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
<dt>
|
|
230
|
+
<i class="m">pathName</i> <b>instate</b> <i class="m">statespec</i> ?<i class="m">script</i>?</dt>
|
|
231
|
+
<dd>Test the widget's state.
|
|
232
|
+
If <i>script</i> is not specified, returns 1 if
|
|
233
|
+
the widget state matches <i>statespec</i> and 0 otherwise.
|
|
234
|
+
If <i>script</i> is specified, equivalent to
|
|
235
|
+
<pre class="example">
|
|
236
|
+
if {[<i>pathName</i> instate <i>stateSpec</i>]} <i>script</i>
|
|
237
|
+
</pre>
|
|
238
|
+
</dd>
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
<dt>
|
|
242
|
+
<i class="m">pathName</i> <b>state</b> ?<i class="m">stateSpec</i>?</dt>
|
|
243
|
+
<dd>Modify or inquire widget state.
|
|
244
|
+
If <i>stateSpec</i> is present, sets the widget state:
|
|
245
|
+
for each flag in <i>stateSpec</i>, sets the corresponding flag
|
|
246
|
+
or clears it if prefixed by an exclamation point.
|
|
247
|
+
<p>Returns a new state spec indicating which flags were changed:
|
|
248
|
+
</p><pre class="example">
|
|
249
|
+
set changes [<i>pathName</i> state <i>spec</i>] ;
|
|
250
|
+
<i>pathName</i> state $changes
|
|
251
|
+
</pre><p>will restore <i>pathName</i> to the original state.
|
|
252
|
+
If <i>stateSpec</i> is not specified,
|
|
253
|
+
returns a list of the currently-enabled state flags.
|
|
254
|
+
</p>
|
|
255
|
+
</dd>
|
|
256
|
+
|
|
257
|
+
</dl>
|
|
258
|
+
<h2><a name="SECTid8208458">WIDGET STATES</a></h2><p>The widget state is a bitmap of independent state flags.
|
|
259
|
+
Widget state flags include:
|
|
260
|
+
</p><dl>
|
|
261
|
+
|
|
262
|
+
<dt><b>active</b></dt>
|
|
263
|
+
<dd>The mouse cursor is over the widget
|
|
264
|
+
and pressing a mouse button will cause some action to occur.
|
|
265
|
+
(aka "prelight" (Gnome), "hot" (Windows), "hover").
|
|
266
|
+
</dd>
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
<dt><b>disabled</b></dt>
|
|
270
|
+
<dd>Widget is disabled under program control
|
|
271
|
+
(aka "unavailable", "inactive")
|
|
272
|
+
</dd>
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
<dt><b>focus</b></dt>
|
|
276
|
+
<dd>Widget has keyboard focus
|
|
277
|
+
</dd>
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
<dt><b>pressed</b></dt>
|
|
281
|
+
<dd>Widget is being pressed (aka "armed" in Motif).
|
|
282
|
+
</dd>
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
<dt><b>selected</b></dt>
|
|
286
|
+
<dd>"On", "true", or "current" for things like checkbuttons and radiobuttons.
|
|
287
|
+
</dd>
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
<dt><b>background</b></dt>
|
|
291
|
+
<dd>Windows and the Mac have a notion of an "active" or foreground window.
|
|
292
|
+
The <b>background</b> state is set for widgets in a background window,
|
|
293
|
+
and cleared for those in the foreground window.
|
|
294
|
+
</dd>
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
<dt><b>readonly</b></dt>
|
|
298
|
+
<dd>Widget should not allow user modification.
|
|
299
|
+
</dd>
|
|
300
|
+
|
|
301
|
+
|
|
302
|
+
<dt><b>alternate</b></dt>
|
|
303
|
+
<dd>A widget-specific alternate display format.
|
|
304
|
+
For example, used for checkbuttons and radiobuttons
|
|
305
|
+
in the "tristate" or "mixed" state,
|
|
306
|
+
and for buttons with <b>-default active</b>.
|
|
307
|
+
</dd>
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
<dt><b>invalid</b></dt>
|
|
311
|
+
<dd>The widget's value is invalid.
|
|
312
|
+
(Potential uses: scale widget value out of bounds,
|
|
313
|
+
entry widget value failed validation.)
|
|
314
|
+
</dd>
|
|
315
|
+
|
|
316
|
+
</dl><p>A <i>state specification</i> or <i>stateSpec</i> is a list
|
|
317
|
+
of state names, optionally prefixed with an exclamation point (!)
|
|
318
|
+
indicating that the bit is off.
|
|
319
|
+
</p>
|
|
320
|
+
<h2><a name="SECTid8208b60">EXAMPLES</a></h2><pre class="example">
|
|
321
|
+
set b [ttk::button .b]
|
|
322
|
+
|
|
323
|
+
# Disable the widget:
|
|
324
|
+
$b state disabled
|
|
325
|
+
|
|
326
|
+
# Invoke the widget only if it is currently pressed and enabled:
|
|
327
|
+
$b instate {pressed !disabled} { .b invoke }
|
|
328
|
+
|
|
329
|
+
# Reenable widget:
|
|
330
|
+
$b state !disabled
|
|
331
|
+
</pre>
|
|
332
|
+
<h2><a name="SECTid8208bd8">SEE ALSO</a></h2><p class="seealso">
|
|
333
|
+
<a href="tile-intro.html">tile-intro(n)</a>, <a href="style.html">style(n)</a>
|
|
334
|
+
</p>
|
|
335
|
+
<h2><a name="SECTid8208c50">KEYWORDS</a></h2><p class="keywords">
|
|
336
|
+
<a class="keyword" href="keyword-index.html#KW-state">state</a>, <a class="keyword" href="keyword-index.html#KW-configure">configure</a>, <a class="keyword" href="keyword-index.html#KW-option">option</a>
|
|
337
|
+
</p>
|
|
338
|
+
</div><hr class="navsep"><div class="navbar" align="center">
|
|
339
|
+
<a class="navaid" href="index.html">Contents</a> � <a class="navaid" href="category-index.html">Index</a> � <a class="navaid" href="keyword-index.html">Keywords</a>
|
|
340
|
+
</div>
|
|
341
|
+
</body>
|
|
342
|
+
</html>
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
'\"
|
|
2
|
+
'\" Copyright (c) 2004 Joe English
|
|
3
|
+
'\" image.n,v 1.3 2006/12/09 20:53:50 jenglish Exp
|
|
4
|
+
'\"
|
|
5
|
+
.so man.macros
|
|
6
|
+
.TH image n 0.8 tile "Tile Widget Set"
|
|
7
|
+
.BS
|
|
8
|
+
.SH NAME
|
|
9
|
+
ttk_image \- Define an element based on an image
|
|
10
|
+
.SH SYNOPSIS
|
|
11
|
+
\fBstyle element create \fIname\fR \fBimage\fR \fIimageSpec\fR ?\fIoptions\fR?
|
|
12
|
+
.BE
|
|
13
|
+
.SH DESCRIPTION
|
|
14
|
+
The \fIimage\fR element factory creates a new element
|
|
15
|
+
in the current theme whose visual appearance is determined
|
|
16
|
+
by Tk images.
|
|
17
|
+
\fIimageSpec\fP is a list of one or more elements.
|
|
18
|
+
The first element is the default image name.
|
|
19
|
+
The rest of the list is a sequence of \fIstatespec / value\fR
|
|
20
|
+
pairs specifying other images to use when the element is
|
|
21
|
+
in a particular state or combination of states.
|
|
22
|
+
.SH OPTIONS
|
|
23
|
+
Valid \fIoptions\fR are:
|
|
24
|
+
.TP
|
|
25
|
+
\fB-border\fR \fIpadding\fR
|
|
26
|
+
\fIpadding\fR is a list of up to four integers, specifying
|
|
27
|
+
the left, top, right, and bottom borders, respectively.
|
|
28
|
+
See \fBIMAGE STRETCHING\fR, below.
|
|
29
|
+
.TP
|
|
30
|
+
\fB-height \fIheight\fR
|
|
31
|
+
Specifies a minimum height for the element.
|
|
32
|
+
If less than zero, the base image's height is used as a default.
|
|
33
|
+
.\" -map no longer needed, first argument is an imageSpec now.
|
|
34
|
+
.\" .TP
|
|
35
|
+
.\" \fB-map { \fIstatespec\fP \fIimage\fP.. }
|
|
36
|
+
.\" Specifies auxilliary images to use in different states.
|
|
37
|
+
.\" Each \fIstatespec\fP is a list of state names optionally
|
|
38
|
+
.\" prefixed by an exclamation point, as in \fBstyle map\fP.
|
|
39
|
+
.\" Each \fIimageName\fP is the name of a Tk image
|
|
40
|
+
.\" defined with \fBimage create ...\fP.
|
|
41
|
+
.\" When the element is displayed, each \fIstatespec\fP is
|
|
42
|
+
.\" tested in order, and the \fIimage\fP corresponding to
|
|
43
|
+
.\" the first matching \fIstatespec\fP is used.
|
|
44
|
+
.\" If none match, the base \fIimageName\fP is used.
|
|
45
|
+
.TP
|
|
46
|
+
\fB-padding\fR \fIpadding\fR
|
|
47
|
+
Specifies the element's interior padding. Defaults to
|
|
48
|
+
\fI-border\fR if not specified.
|
|
49
|
+
.TP
|
|
50
|
+
\fB-sticky\fR \fIspec\fR
|
|
51
|
+
Specifies how the image is placed within the final parcel.
|
|
52
|
+
\fIspec\fR contains zero or more characters "n", "s", "w", or "e".
|
|
53
|
+
.TP
|
|
54
|
+
\fB-width \fIwidth\fR
|
|
55
|
+
Specifies a minimum width for the element.
|
|
56
|
+
If less than zero, the base image's width is used as a default.
|
|
57
|
+
|
|
58
|
+
.SH "IMAGE STRETCHING"
|
|
59
|
+
If the element's allocated parcel is larger than the image,
|
|
60
|
+
the image will be placed in the parcel based on the \fB-sticky\fR option.
|
|
61
|
+
If the image needs to stretch horizontally (i.e., \fB-sticky ew\fR)
|
|
62
|
+
or vertically (\fB-sticky ns\fR),
|
|
63
|
+
subregions of the image are replicated to fill the parcel
|
|
64
|
+
based on the \fB-border\fR option.
|
|
65
|
+
The \fB-border\fR divides the image into 9 regions:
|
|
66
|
+
four fixed corners, top and left edges (which may be tiled horizontally),
|
|
67
|
+
left and right edges (which may be tiled vertically),
|
|
68
|
+
and the central area (which may be tiled in both directions).
|
|
69
|
+
.SH "EXAMPLE"
|
|
70
|
+
.CS
|
|
71
|
+
set img1 [image create photo -file button.png]
|
|
72
|
+
set img2 [image create photo -file button-pressed.png]
|
|
73
|
+
set img3 [image create photo -file button-active.png]
|
|
74
|
+
style element create Button.button image \e
|
|
75
|
+
[list $img1 pressed $img2 active $img3] \e
|
|
76
|
+
-border {2 4} -sticky we
|
|
77
|
+
.CE
|
|
78
|
+
.SH "SEE ALSO"
|
|
79
|
+
image(n), photo(n)
|
|
80
|
+
.SH KEYWORDS
|
|
81
|
+
pixmap theme, image
|
|
@@ -0,0 +1,409 @@
|
|
|
1
|
+
|
|
2
|
+
[10 Sep 2005]
|
|
3
|
+
|
|
4
|
+
A tour of the Tile internals.
|
|
5
|
+
|
|
6
|
+
There are roughly four major parts to the tile codebase:
|
|
7
|
+
the theme engine, the widget framework, widget implementations,
|
|
8
|
+
and theme implementations. What follows is a braindump
|
|
9
|
+
describing the current codebase and a few future directions.
|
|
10
|
+
|
|
11
|
+
See also http://tktable.sourceforge.net/tile/tile-tcl2004.pdf
|
|
12
|
+
for a high-level overview of the architecture.
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
THEME ENGINE
|
|
16
|
+
|
|
17
|
+
tkTheme.h --
|
|
18
|
+
Public header file. Start here.
|
|
19
|
+
|
|
20
|
+
tkThemeInt.h --
|
|
21
|
+
Private header file. Don't look at it :-)
|
|
22
|
+
|
|
23
|
+
tkstate.c --
|
|
24
|
+
Routines for manipulating state specifications, state maps,
|
|
25
|
+
state tables, and other things state-related.
|
|
26
|
+
|
|
27
|
+
Future directions: Looks like this could use some more comments.
|
|
28
|
+
Very old code; hasn't been revisited (or needed to be) for a
|
|
29
|
+
long time.
|
|
30
|
+
|
|
31
|
+
tkTheme.c --
|
|
32
|
+
The core of the theme engine. This started life as a modified
|
|
33
|
+
copy of the TIP#48 style support code, but has been revised
|
|
34
|
+
and expanded since then. The background and rationale from
|
|
35
|
+
TIP#48 still apply, but the details are quite different now.
|
|
36
|
+
|
|
37
|
+
The main new features relative to the original implementation
|
|
38
|
+
are: a style database that's used to compute element option
|
|
39
|
+
values (previously element implementations were responsible for
|
|
40
|
+
doing this themselves); a layout engine for computing the size
|
|
41
|
+
and position of a group of elements (see layout.c);
|
|
42
|
+
and script-level access to both of the above.
|
|
43
|
+
|
|
44
|
+
Future directions: It's been through three or four major
|
|
45
|
+
refactorings so far, and could probably use one more.
|
|
46
|
+
The data structures are still more complicated than they
|
|
47
|
+
need to be.
|
|
48
|
+
|
|
49
|
+
Things are currently neither optimized for space nor for
|
|
50
|
+
speed, but could be modified to go either way. To save space,
|
|
51
|
+
greater use of the Flyweight pattern is possible. Alternately,
|
|
52
|
+
to speed things up, it could cache more internal state.
|
|
53
|
+
Since the tile widgets don't seem to be too slow on the one hand
|
|
54
|
+
or too memory-hungry on the other, as long as no performance
|
|
55
|
+
problems arise this will probably stay as it is.
|
|
56
|
+
|
|
57
|
+
I really, really want to nuke the call to TkGetOptionSpec().
|
|
58
|
+
This one line of code has caused more headaches than anything
|
|
59
|
+
else (with the possible exception of Aqua support).
|
|
60
|
+
|
|
61
|
+
layout.c --
|
|
62
|
+
This contains the layout engine. The basic algorithm
|
|
63
|
+
is the same as the [pack] geometry manager.
|
|
64
|
+
|
|
65
|
+
Future directions: Needs to be split into two pieces,
|
|
66
|
+
one for the low-level Ttk_Box / Ttk_Padding routines,
|
|
67
|
+
and the other for the Ttk_Layout implementation proper.
|
|
68
|
+
|
|
69
|
+
As above, the data structures could probably use another
|
|
70
|
+
refactoring and reorganization.
|
|
71
|
+
|
|
72
|
+
The TTK_EXPAND flag should probably go away. The TTK_BORDER
|
|
73
|
+
flag is probably not needed either.
|
|
74
|
+
|
|
75
|
+
cache.c --
|
|
76
|
+
A resource cache for fonts, colors and other resources.
|
|
77
|
+
See comments at the top of the file for full details,
|
|
78
|
+
but the basic problem is: Tk frees fonts and colors
|
|
79
|
+
whenever the last reference to them goes away; but
|
|
80
|
+
the style engine accesses these resources on a just-in-time
|
|
81
|
+
basis and releases them immediately afterwards.
|
|
82
|
+
This is *very* expensive. The cache holds a semi-permanent
|
|
83
|
+
reference to resources accessed by the style engine to
|
|
84
|
+
prevent Tk from freeing them prematurely.
|
|
85
|
+
|
|
86
|
+
Future directions: Preferably, change Tk's (de)allocation
|
|
87
|
+
policies so that this workaround isn't necessary.
|
|
88
|
+
|
|
89
|
+
Possibly -- but only under great duress -- add support
|
|
90
|
+
for non-default visuals and colormaps. I really don't
|
|
91
|
+
want to do this, since it adds a ton of complexity for
|
|
92
|
+
a feature that nobody uses anymore.
|
|
93
|
+
|
|
94
|
+
image.c --
|
|
95
|
+
Implements the 'style element create image' command,
|
|
96
|
+
an element factory for defining "pixmap" themes.
|
|
97
|
+
|
|
98
|
+
tile.c --
|
|
99
|
+
Package initialization routine, plus sort of a dumping ground
|
|
100
|
+
for miscellaneous stuff that didn't fit anywhere else.
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
WIDGET FRAMEWORK
|
|
104
|
+
|
|
105
|
+
widget.h
|
|
106
|
+
widget.c --
|
|
107
|
+
This module (and the ones below) attempt to encapsulate
|
|
108
|
+
all of the boilerplate logic involved in a widget
|
|
109
|
+
implementation.
|
|
110
|
+
|
|
111
|
+
The central data structure is 'struct WidgetSpec_', which
|
|
112
|
+
consists mostly of a number of callback hooks (or "strategy
|
|
113
|
+
methods") called at various times during the widget lifecycle.
|
|
114
|
+
|
|
115
|
+
Future directions: This isn't namespace-clean; public
|
|
116
|
+
entry points, typedefs, and #defines need a Ttk prefix.
|
|
117
|
+
|
|
118
|
+
There are strict rules about when each hook is called
|
|
119
|
+
and what each hook must, may, and may not do. I need
|
|
120
|
+
to write these rules down somewhere.
|
|
121
|
+
|
|
122
|
+
scroll.c --
|
|
123
|
+
Attempts to encapsulates the control flow logic involved
|
|
124
|
+
in scrolling widgets.
|
|
125
|
+
|
|
126
|
+
Future directions: This is only half-baked. Needs more work.
|
|
127
|
+
|
|
128
|
+
manager.h
|
|
129
|
+
manager.c --
|
|
130
|
+
Utilities for writing geometry managers; used by the
|
|
131
|
+
ttk::notebook and ttk::paned widgets. Handles the
|
|
132
|
+
geometry propagation dance control flow logic and the
|
|
133
|
+
nasty details about slave removal.
|
|
134
|
+
|
|
135
|
+
Future directions: the Ttk_Manager and Ttk_Slave data
|
|
136
|
+
structures need to be made opaque. Some of the function
|
|
137
|
+
signatures are Not Quite Right.
|
|
138
|
+
|
|
139
|
+
The "SlaveConfigured" hook and Ttk_ConfigureSlave() function
|
|
140
|
+
probably don't belong here; configuration is better left
|
|
141
|
+
to the caller. Once these are gone, the SlaveAdded hook
|
|
142
|
+
can go away too, leaving a cleaner and simpler interface.
|
|
143
|
+
|
|
144
|
+
Long-term: write a TIP to push this interface (or one like it)
|
|
145
|
+
all the way into the core to replace the current Tk_GeomMgr API.
|
|
146
|
+
This API is a lot easier to use, and has the potential to
|
|
147
|
+
solve some longstanding problems (e.g., the "pack vs. grid"
|
|
148
|
+
conflict).
|
|
149
|
+
|
|
150
|
+
trace.c --
|
|
151
|
+
A thin wrapper/convenience layer around Tcl_TraceVar() and friends;
|
|
152
|
+
used by widgets that have linked -variable / -textvariable options.
|
|
153
|
+
|
|
154
|
+
Future directions: minor cleanups, namespace prefix
|
|
155
|
+
(may already be done by the time you read this, it's
|
|
156
|
+
near the top of my pile.)
|
|
157
|
+
|
|
158
|
+
track.c --
|
|
159
|
+
Routine TrackElementState(). Used by ttk::scrollbars and other
|
|
160
|
+
widgets where individual elements may be pressed / active instead
|
|
161
|
+
of the widget as a whole. See header comments for details.
|
|
162
|
+
|
|
163
|
+
blink.c --
|
|
164
|
+
Routine BlinkCursor -- registers an event handler / timer
|
|
165
|
+
callback to blink the cursor on and off when the widget
|
|
166
|
+
has focus. See header comments for details.
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
WIDGET IMPLEMENTATIONS
|
|
170
|
+
|
|
171
|
+
button.c / button.tcl --
|
|
172
|
+
Labels, buttons, checkbuttons, and radiobuttons.
|
|
173
|
+
Not much to say about these, except that it's worthwhile
|
|
174
|
+
comparing the Tile implementation with how the core
|
|
175
|
+
does things. Seriously. This is the best demonstration
|
|
176
|
+
I can think of for why I think the Tile approach is
|
|
177
|
+
on the right track.
|
|
178
|
+
|
|
179
|
+
frame.c --
|
|
180
|
+
Frames and labelframes. Not much to say here either.
|
|
181
|
+
|
|
182
|
+
Future directions: frame widget: None. This is a
|
|
183
|
+
simple widget, and shall remain simple.
|
|
184
|
+
|
|
185
|
+
Future directions: labelframe widget: Should use the
|
|
186
|
+
Ttk_Manager API to manage the -labelwidget.
|
|
187
|
+
|
|
188
|
+
There are several alternate display style possibilities that
|
|
189
|
+
ought to be, but are currently not, implementable with this
|
|
190
|
+
widget (see recent discussion on tktable-tile-dev for details).
|
|
191
|
+
|
|
192
|
+
entry.c --
|
|
193
|
+
Entry and combobox widgets.
|
|
194
|
+
|
|
195
|
+
The entry widget presented something of a challenge,
|
|
196
|
+
since the bulk of the display is handled by the widget
|
|
197
|
+
itself instead of by an element. The theme engine doesn't
|
|
198
|
+
support "owner-draw" widgets very well (yet).
|
|
199
|
+
|
|
200
|
+
Future directions: Reuse the "scroll.c" API to manage
|
|
201
|
+
the -xscrollcommand (once the former has been fixed).
|
|
202
|
+
|
|
203
|
+
Remove the backwards-compatibility methods 'scan mark',
|
|
204
|
+
'scan dragto', 'selection to', and 'selection adjust'.
|
|
205
|
+
These are unused (and actually a bad idea).
|
|
206
|
+
|
|
207
|
+
It ought to be possible to build a spinbox widget on top
|
|
208
|
+
of the [ttk::entry] entirely in Tcl code. And a
|
|
209
|
+
searchbox widget, and a URL bar, and a bunch of other
|
|
210
|
+
customized entry-like widgets. I don't think that's
|
|
211
|
+
possible right now, but it ought to be.
|
|
212
|
+
|
|
213
|
+
combobox: Add library routines to enable autocompletion
|
|
214
|
+
(must be flexible, as there are lots of different autocompletion
|
|
215
|
+
styles; a single -autocomplete true|false option will not
|
|
216
|
+
suffice.)
|
|
217
|
+
|
|
218
|
+
Fix the focus problems on OSX, Windows, and certain X11 WMs.
|
|
219
|
+
(This might require core patches; I haven't had any luck yet.)
|
|
220
|
+
|
|
221
|
+
notebook.c --
|
|
222
|
+
ttk::notebook widget.
|
|
223
|
+
|
|
224
|
+
Future directions: Right now the widget can't do Firefox-style
|
|
225
|
+
tabs (with a 'close' gizmo on the tab) or Mozilla-style notebooks
|
|
226
|
+
(with a 'close' gizmo in the upper corner). Both of these
|
|
227
|
+
should be possible, but currently aren't.
|
|
228
|
+
|
|
229
|
+
Features that will not be implemented: Multiple rows of tabs,
|
|
230
|
+
scrolling tabs. Both of these options were considered and rejected.
|
|
231
|
+
|
|
232
|
+
paned.c --
|
|
233
|
+
ttk::paned widget.
|
|
234
|
+
|
|
235
|
+
Future directions: Jeff wants to rename this to "ttk::panedwindow".
|
|
236
|
+
Support for "collapse buttons" and other sash controls.
|
|
237
|
+
|
|
238
|
+
progress.c --
|
|
239
|
+
ttk::progressbar widget.
|
|
240
|
+
|
|
241
|
+
Future directions: I want to rename this back to "ttk::progress".
|
|
242
|
+
|
|
243
|
+
There are a couple of alternate display styles (OSX-style chasing
|
|
244
|
+
arrows, throbbers, etc.) that ought to be supported cross-theme
|
|
245
|
+
with common custom styles.
|
|
246
|
+
|
|
247
|
+
scale.c --
|
|
248
|
+
ttk::scale widget. This one isn't finished yet.
|
|
249
|
+
|
|
250
|
+
Future directions: Finish the widget. (See recent
|
|
251
|
+
tktable-tile-dev discussions for API considerations).
|
|
252
|
+
|
|
253
|
+
scrollbar.c --
|
|
254
|
+
ttk::scrollbar widget.
|
|
255
|
+
|
|
256
|
+
Future directions: Native appearance on OSX. This is
|
|
257
|
+
turning out to be very difficult to do, because of an
|
|
258
|
+
impedance mismatch with the way Carbon wants to do things.
|
|
259
|
+
|
|
260
|
+
separator.c --
|
|
261
|
+
A separator. Use this instead of 0-width frames to get a
|
|
262
|
+
separator, the latter doesn't look right.
|
|
263
|
+
|
|
264
|
+
treeview.c --
|
|
265
|
+
A multi-column hierarchical display. This one isn't finished yet.
|
|
266
|
+
|
|
267
|
+
Future directions:
|
|
268
|
+
|
|
269
|
+
I want this widget to be something a bit more powerful than
|
|
270
|
+
the BWidget Tree, but still simpler than TkTreeCtrl. That's
|
|
271
|
+
a useful ecological niche that seems to be unoccupied.
|
|
272
|
+
The trick is to find the right set of primitive features --
|
|
273
|
+
there are a million things you can do with a Tree,
|
|
274
|
+
but I don't want to have a million options and subcommands.
|
|
275
|
+
|
|
276
|
+
Right now I'm looking at:
|
|
277
|
+
|
|
278
|
+
+ Add item tags (similar to text and canvas tags) to give
|
|
279
|
+
applications more control over appearance;
|
|
280
|
+
+ Add tag event bindings for more control over behavior; and
|
|
281
|
+
+ Fix custom style support (see #1168548).
|
|
282
|
+
|
|
283
|
+
I think that'll do it.
|
|
284
|
+
|
|
285
|
+
Then there's the stuff that's just plain misimplemented --
|
|
286
|
+
it should compute item and heading heights from the layout instead
|
|
287
|
+
of hardcoding them; need to replace the hairball [$tv identify $x $y]
|
|
288
|
+
command with something reasonable; horizontal scrolling doesn't
|
|
289
|
+
work; etc...
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
THEME IMPLEMENTATIONS
|
|
293
|
+
|
|
294
|
+
tkElements.c --
|
|
295
|
+
Default implementations for most elements, and layout
|
|
296
|
+
specifications for the "default" / fallback theme.
|
|
297
|
+
|
|
298
|
+
Future directions: This sort of evolved over time as
|
|
299
|
+
new widgets were added and different approaches to
|
|
300
|
+
building them were tried out; there's little evidence
|
|
301
|
+
of intelligent design. This could stand to be reviewed
|
|
302
|
+
and revised with an eye to consistency and orthogonalization.
|
|
303
|
+
|
|
304
|
+
Ought to remove dependencies on 'Tk_3DBorder's and related routines.
|
|
305
|
+
|
|
306
|
+
label.c --
|
|
307
|
+
Implementation of the "text", "image", and "label" elements.
|
|
308
|
+
This is complicated enough that it warranted being split
|
|
309
|
+
out into its own file.
|
|
310
|
+
|
|
311
|
+
Future directions: May remove auto-stippling of 'image' elements;
|
|
312
|
+
this is a lot of effort for a feature that probably shouldn't
|
|
313
|
+
be implemented in the first place. (Tile widgets provide
|
|
314
|
+
a more flexible way to specify state-dependent images.)
|
|
315
|
+
|
|
316
|
+
classicTheme.c --
|
|
317
|
+
Tk classic look and feel; 1990s-era Motif.
|
|
318
|
+
|
|
319
|
+
Future directions: I might eventually get around to fixing
|
|
320
|
+
the ttk::button default ring.
|
|
321
|
+
|
|
322
|
+
altTheme.c --
|
|
323
|
+
The "alt" / "revitalized" theme. Follows the Windows MSUE
|
|
324
|
+
guidelines (pre-XP); visually compatible with 1998-era GNOME
|
|
325
|
+
and KDE.
|
|
326
|
+
|
|
327
|
+
Future directions: Notebook tabs aren't right; there's
|
|
328
|
+
a performance issue with checkbutton and radiobutton indicators.
|
|
329
|
+
|
|
330
|
+
clamTheme.c --
|
|
331
|
+
The "clam" theme; inspired by the XFCE family of GTK+ themes.
|
|
332
|
+
|
|
333
|
+
Future directions: I was going to get rid of this entirely,
|
|
334
|
+
but due to popular demand it'll be retained.
|
|
335
|
+
|
|
336
|
+
Much of the implementation is rather ad-hoc; it could
|
|
337
|
+
be refined and streamlined.
|
|
338
|
+
|
|
339
|
+
aquaTheme.c --
|
|
340
|
+
Platform-specific theme for OSX.
|
|
341
|
+
|
|
342
|
+
Future directions: Lots of stuff still isn't right here.
|
|
343
|
+
Still uses the old style of notebook tabs (from OSX "Bobcat")
|
|
344
|
+
instead of the newer segmented control (from OSX "Ocelot").
|
|
345
|
+
Native scrollbars aren't implemented at all (tough to solve).
|
|
346
|
+
Only supports one style of window background (nested groupboxes,
|
|
347
|
+
"brushed metal" style, etc., aren't supported). Very tough
|
|
348
|
+
to solve.
|
|
349
|
+
|
|
350
|
+
winTheme.c --
|
|
351
|
+
Platform-specific theme for Windows (pre-XP).
|
|
352
|
+
|
|
353
|
+
Future directions: Spacing parameters might need a bit
|
|
354
|
+
of tweaking, other than that it seems to be in good shape.
|
|
355
|
+
|
|
356
|
+
xpTheme.c --
|
|
357
|
+
Platform-specific theme for Windows (post-XP).
|
|
358
|
+
|
|
359
|
+
Future directions: Same as above; spacing might be a little off,
|
|
360
|
+
other than that it looks OK.
|
|
361
|
+
|
|
362
|
+
stepTheme.c --
|
|
363
|
+
Modelled after the GNUStep/NextStep look and feel;
|
|
364
|
+
also an experimental playground for trying out new stuff.
|
|
365
|
+
|
|
366
|
+
Future directions: Unless anybody is using this in production,
|
|
367
|
+
it will probably be shuffled off into the "demos" directory
|
|
368
|
+
as an example of a dynamically-loadable theme.
|
|
369
|
+
|
|
370
|
+
MISCELLANEOUS:
|
|
371
|
+
|
|
372
|
+
ttkDecls.h
|
|
373
|
+
ttkStubInit.c
|
|
374
|
+
ttkStubLib.c --
|
|
375
|
+
The stub library; can be used to implement loadable themes
|
|
376
|
+
written in C.
|
|
377
|
+
|
|
378
|
+
* * * IMPORTANT NOTICE * * *
|
|
379
|
+
|
|
380
|
+
The tile stub table is generated with a modified version
|
|
381
|
+
of genstubs.tcl. There are a number of small but important
|
|
382
|
+
differences in the way the Ttk stubs table works, that
|
|
383
|
+
are intended to make future evolution easier.
|
|
384
|
+
|
|
385
|
+
compat.h --
|
|
386
|
+
A ghastly autogenerated mess of C preprocessor macros
|
|
387
|
+
used to implement the Tk 8.4 compatibility options.
|
|
388
|
+
This is so people could say "namespace import -force tile::*"
|
|
389
|
+
in existing applications without immediately breaking
|
|
390
|
+
everything. (Note: if anyone is still doing that, STOP!)
|
|
391
|
+
|
|
392
|
+
Future directions: Going away. May be gone by the time you
|
|
393
|
+
read this.
|
|
394
|
+
|
|
395
|
+
gunk.h --
|
|
396
|
+
Miscellaneous portability gunk that I had to add to get
|
|
397
|
+
stuff to compile on various platforms and against different
|
|
398
|
+
Tcl/Tk distributions.
|
|
399
|
+
|
|
400
|
+
Future directions: Needs to be killed.
|
|
401
|
+
|
|
402
|
+
win/monitor.c --
|
|
403
|
+
WIN32 voodoo. Used to detect when the user has switched
|
|
404
|
+
desktop themes or color schemes.
|
|
405
|
+
|
|
406
|
+
win/nmakehlp.c --
|
|
407
|
+
To be honest, I don't know what this is for :-)
|
|
408
|
+
Has something to do with the MSVC-based build system.
|
|
409
|
+
|