Pratt 1.5.6
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
|