arcadia 0.1.1 → 0.1.2

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.
Files changed (167) hide show
  1. data/README +126 -123
  2. data/arcadia.rb +770 -756
  3. data/base/a-contracts.rb +130 -93
  4. data/base/a-ext.rb +280 -280
  5. data/base/a-libs.rb +5 -11
  6. data/base/a-utils.rb +235 -44
  7. data/conf/arcadia.conf +20 -16
  8. data/conf/arcadia.init.rb +0 -0
  9. data/conf/arcadia.res.rb +74 -0
  10. data/ext/ae-complete-code/ae-complete-code.conf +0 -0
  11. data/ext/ae-complete-code/ae-complete-code.rb +80 -79
  12. data/ext/ae-debug/ae-debug.conf +0 -0
  13. data/ext/ae-debug/ae-debug.rb +2 -6
  14. data/ext/ae-debug/debug1.57.rb +0 -0
  15. data/ext/ae-doc-code/ae-doc-code.conf +15 -0
  16. data/ext/ae-doc-code/ae-doc-code.rb +289 -0
  17. data/ext/ae-editor/ae-editor.conf +17 -8
  18. data/ext/ae-editor/ae-editor.rb +738 -396
  19. data/ext/ae-event-log/ae-event-log.conf +0 -0
  20. data/ext/ae-event-log/ae-event-log.rb +0 -0
  21. data/ext/ae-file-history/ae-file-history.conf +2 -2
  22. data/ext/ae-file-history/ae-file-history.rb +286 -290
  23. data/ext/ae-inspector/ae-inspector.conf +0 -0
  24. data/ext/ae-inspector/ae-inspector.rb +0 -0
  25. data/ext/ae-output-event/ae-output-event.conf +2 -2
  26. data/ext/ae-output/ae-output.conf +2 -2
  27. data/ext/ae-output/ae-output.rb +173 -178
  28. data/ext/ae-palette/ae-palette.conf +0 -0
  29. data/ext/ae-palette/ae-palette.rb +0 -0
  30. data/ext/ae-shell/ae-shell.conf +0 -0
  31. data/ext/ae-shell/ae-shell.rb +54 -54
  32. data/lib/tk/al-tk.rb +3076 -3082
  33. data/lib/tk/al-tk.res.rb +0 -0
  34. data/lib/tk/al-tkarcadia.rb +0 -0
  35. data/lib/tk/al-tkcustom.rb +0 -0
  36. data/lib/tkext/al-bwidget.rb +0 -0
  37. data/lib/tkext/al-iwidgets.rb +0 -0
  38. data/lib/tkext/al-tile.rb +0 -0
  39. data/lib/tkext/al-tktable.rb +0 -0
  40. data/tcl/BWidget-1.8.0/BWman/ArrowButton.html +276 -0
  41. data/tcl/BWidget-1.8.0/BWman/BWidget.html +228 -0
  42. data/tcl/BWidget-1.8.0/BWman/Button.html +273 -0
  43. data/tcl/BWidget-1.8.0/BWman/ButtonBox.html +264 -0
  44. data/tcl/BWidget-1.8.0/BWman/ComboBox.html +402 -0
  45. data/tcl/BWidget-1.8.0/BWman/Dialog.html +314 -0
  46. data/tcl/BWidget-1.8.0/BWman/DragSite.html +139 -0
  47. data/tcl/BWidget-1.8.0/BWman/DropSite.html +254 -0
  48. data/tcl/BWidget-1.8.0/BWman/DynamicHelp.html +248 -0
  49. data/tcl/BWidget-1.8.0/BWman/Entry.html +341 -0
  50. data/tcl/BWidget-1.8.0/BWman/Label.html +331 -0
  51. data/tcl/BWidget-1.8.0/BWman/LabelEntry.html +194 -0
  52. data/tcl/BWidget-1.8.0/BWman/LabelFrame.html +144 -0
  53. data/tcl/BWidget-1.8.0/BWman/ListBox.html +678 -0
  54. data/tcl/BWidget-1.8.0/BWman/MainFrame.html +283 -0
  55. data/tcl/BWidget-1.8.0/BWman/MessageDlg.html +218 -0
  56. data/tcl/BWidget-1.8.0/BWman/NoteBook.html +374 -0
  57. data/tcl/BWidget-1.8.0/BWman/PagesManager.html +180 -0
  58. data/tcl/BWidget-1.8.0/BWman/PanedWindow.html +142 -0
  59. data/tcl/BWidget-1.8.0/BWman/PanelFrame.html +153 -0
  60. data/tcl/BWidget-1.8.0/BWman/PasswdDlg.html +214 -0
  61. data/tcl/BWidget-1.8.0/BWman/ProgressBar.html +152 -0
  62. data/tcl/BWidget-1.8.0/BWman/ProgressDlg.html +145 -0
  63. data/tcl/BWidget-1.8.0/BWman/ScrollView.html +130 -0
  64. data/tcl/BWidget-1.8.0/BWman/ScrollableFrame.html +191 -0
  65. data/tcl/BWidget-1.8.0/BWman/ScrolledWindow.html +116 -0
  66. data/tcl/BWidget-1.8.0/BWman/SelectColor.html +164 -0
  67. data/tcl/BWidget-1.8.0/BWman/SelectFont.html +152 -0
  68. data/tcl/BWidget-1.8.0/BWman/Separator.html +77 -0
  69. data/tcl/BWidget-1.8.0/BWman/SpinBox.html +250 -0
  70. data/tcl/BWidget-1.8.0/BWman/StatusBar.html +147 -0
  71. data/tcl/BWidget-1.8.0/BWman/TitleFrame.html +107 -0
  72. data/tcl/BWidget-1.8.0/BWman/Tree.html +947 -0
  73. data/tcl/BWidget-1.8.0/BWman/Widget.html +502 -0
  74. data/tcl/BWidget-1.8.0/BWman/contents.html +84 -0
  75. data/tcl/BWidget-1.8.0/BWman/index.html +7 -0
  76. data/tcl/BWidget-1.8.0/BWman/navtree.html +41 -0
  77. data/tcl/BWidget-1.8.0/BWman/options.htm +458 -0
  78. data/tcl/BWidget-1.8.0/CHANGES.txt +266 -0
  79. data/tcl/BWidget-1.8.0/ChangeLog +1641 -0
  80. data/tcl/BWidget-1.8.0/LICENSE.txt +41 -0
  81. data/tcl/BWidget-1.8.0/README.txt +127 -0
  82. data/tcl/BWidget-1.8.0/arrow.tcl +551 -0
  83. data/tcl/BWidget-1.8.0/bitmap.tcl +94 -0
  84. data/tcl/BWidget-1.8.0/button.tcl +324 -0
  85. data/tcl/BWidget-1.8.0/buttonbox.tcl +403 -0
  86. data/tcl/BWidget-1.8.0/color.tcl +493 -0
  87. data/tcl/BWidget-1.8.0/combobox.tcl +809 -0
  88. data/tcl/BWidget-1.8.0/demo/basic.tcl +199 -0
  89. data/tcl/BWidget-1.8.0/demo/bwidget.xbm +46 -0
  90. data/tcl/BWidget-1.8.0/demo/demo.tcl +212 -0
  91. data/tcl/BWidget-1.8.0/demo/dnd.tcl +42 -0
  92. data/tcl/BWidget-1.8.0/demo/manager.tcl +141 -0
  93. data/tcl/BWidget-1.8.0/demo/select.tcl +59 -0
  94. data/tcl/BWidget-1.8.0/demo/tmpldlg.tcl +214 -0
  95. data/tcl/BWidget-1.8.0/demo/tree.tcl +260 -0
  96. data/tcl/BWidget-1.8.0/demo/x1.xbm +2258 -0
  97. data/tcl/BWidget-1.8.0/dialog.tcl +345 -0
  98. data/tcl/BWidget-1.8.0/dragsite.tcl +197 -0
  99. data/tcl/BWidget-1.8.0/dropsite.tcl +455 -0
  100. data/tcl/BWidget-1.8.0/dynhelp.tcl +625 -0
  101. data/tcl/BWidget-1.8.0/entry.tcl +469 -0
  102. data/tcl/BWidget-1.8.0/font.tcl +566 -0
  103. data/tcl/BWidget-1.8.0/images/bold.gif +0 -0
  104. data/tcl/BWidget-1.8.0/images/copy.gif +0 -0
  105. data/tcl/BWidget-1.8.0/images/cut.gif +0 -0
  106. data/tcl/BWidget-1.8.0/images/dragfile.gif +0 -0
  107. data/tcl/BWidget-1.8.0/images/dragicon.gif +0 -0
  108. data/tcl/BWidget-1.8.0/images/error.gif +0 -0
  109. data/tcl/BWidget-1.8.0/images/file.gif +0 -0
  110. data/tcl/BWidget-1.8.0/images/folder.gif +0 -0
  111. data/tcl/BWidget-1.8.0/images/hourglass.gif +0 -0
  112. data/tcl/BWidget-1.8.0/images/info.gif +0 -0
  113. data/tcl/BWidget-1.8.0/images/italic.gif +0 -0
  114. data/tcl/BWidget-1.8.0/images/minus.xbm +5 -0
  115. data/tcl/BWidget-1.8.0/images/new.gif +0 -0
  116. data/tcl/BWidget-1.8.0/images/opcopy.xbm +5 -0
  117. data/tcl/BWidget-1.8.0/images/open.gif +0 -0
  118. data/tcl/BWidget-1.8.0/images/openfold.gif +0 -0
  119. data/tcl/BWidget-1.8.0/images/oplink.xbm +5 -0
  120. data/tcl/BWidget-1.8.0/images/opmove.xbm +5 -0
  121. data/tcl/BWidget-1.8.0/images/overstrike.gif +0 -0
  122. data/tcl/BWidget-1.8.0/images/palette.gif +0 -0
  123. data/tcl/BWidget-1.8.0/images/passwd.gif +0 -0
  124. data/tcl/BWidget-1.8.0/images/paste.gif +0 -0
  125. data/tcl/BWidget-1.8.0/images/plus.xbm +5 -0
  126. data/tcl/BWidget-1.8.0/images/print.gif +0 -0
  127. data/tcl/BWidget-1.8.0/images/question.gif +0 -0
  128. data/tcl/BWidget-1.8.0/images/redo.gif +0 -0
  129. data/tcl/BWidget-1.8.0/images/save.gif +0 -0
  130. data/tcl/BWidget-1.8.0/images/target.xbm +9 -0
  131. data/tcl/BWidget-1.8.0/images/underline.gif +0 -0
  132. data/tcl/BWidget-1.8.0/images/undo.gif +0 -0
  133. data/tcl/BWidget-1.8.0/images/warning.gif +0 -0
  134. data/tcl/BWidget-1.8.0/init.tcl +40 -0
  135. data/tcl/BWidget-1.8.0/label.tcl +271 -0
  136. data/tcl/BWidget-1.8.0/labelentry.tcl +100 -0
  137. data/tcl/BWidget-1.8.0/labelframe.tcl +160 -0
  138. data/tcl/BWidget-1.8.0/lang/da.rc +52 -0
  139. data/tcl/BWidget-1.8.0/lang/de.rc +52 -0
  140. data/tcl/BWidget-1.8.0/lang/en.rc +52 -0
  141. data/tcl/BWidget-1.8.0/lang/es.rc +53 -0
  142. data/tcl/BWidget-1.8.0/lang/fr.rc +52 -0
  143. data/tcl/BWidget-1.8.0/listbox.tcl +1638 -0
  144. data/tcl/BWidget-1.8.0/mainframe.tcl +711 -0
  145. data/tcl/BWidget-1.8.0/messagedlg.tcl +128 -0
  146. data/tcl/BWidget-1.8.0/notebook.tcl +1164 -0
  147. data/tcl/BWidget-1.8.0/pagesmgr.tcl +294 -0
  148. data/tcl/BWidget-1.8.0/panedw.tcl +381 -0
  149. data/tcl/BWidget-1.8.0/panelframe.tcl +246 -0
  150. data/tcl/BWidget-1.8.0/passwddlg.tcl +178 -0
  151. data/tcl/BWidget-1.8.0/pkgIndex.tcl +47 -0
  152. data/tcl/BWidget-1.8.0/progressbar.tcl +208 -0
  153. data/tcl/BWidget-1.8.0/progressdlg.tcl +87 -0
  154. data/tcl/BWidget-1.8.0/scrollframe.tcl +226 -0
  155. data/tcl/BWidget-1.8.0/scrollview.tcl +254 -0
  156. data/tcl/BWidget-1.8.0/scrollw.tcl +280 -0
  157. data/tcl/BWidget-1.8.0/separator.tcl +75 -0
  158. data/tcl/BWidget-1.8.0/spinbox.tcl +331 -0
  159. data/tcl/BWidget-1.8.0/statusbar.tcl +422 -0
  160. data/tcl/BWidget-1.8.0/tests/entry.test +173 -0
  161. data/tcl/BWidget-1.8.0/titleframe.tcl +170 -0
  162. data/tcl/BWidget-1.8.0/tree.tcl +2228 -0
  163. data/tcl/BWidget-1.8.0/utils.tcl +645 -0
  164. data/tcl/BWidget-1.8.0/widget.tcl +1576 -0
  165. data/tcl/BWidget-1.8.0/wizard.tcl +1028 -0
  166. data/tcl/BWidget-1.8.0/xpm2image.tcl +115 -0
  167. metadata +141 -5
@@ -0,0 +1,502 @@
1
+ <HTML>
2
+ <HEAD><TITLE>Widget</TITLE></HEAD>
3
+ <BODY BGCOLOR=white>
4
+ <IMG SRC="constr.gif" WIDTH="40" HEIGHT="40"> Under construction ...<BR>
5
+ <DL><DT><I><A HREF="#descr">NAME</A></I></DT>
6
+ <DD><B>Widget</B>
7
+ - The Widget base class
8
+ </DD></DL>
9
+ <DL>
10
+ <DT><I><A HREF="#wc">COMMAND</A></I></DT>
11
+ <DD>Widget::<A HREF="#addmap"><B>addmap</B></A>
12
+ <I>class</I>
13
+ <I>subclass</I>
14
+ <I>subpath</I>
15
+ <I>options</I>
16
+ </DD>
17
+ <DD>Widget::<A HREF="#bwinclude"><B>bwinclude</B></A>
18
+ <I>class</I>
19
+ <I>subclass</I>
20
+ <I>subpath</I>
21
+ ?<I>arg...</I>?
22
+ </DD>
23
+ <DD>Widget::<A HREF="#cget"><B>cget</B></A>
24
+ <I>path</I>
25
+ <I>option</I>
26
+ </DD>
27
+ <DD>Widget::<A HREF="#configure"><B>configure</B></A>
28
+ <I>path</I>
29
+ <I>options</I>
30
+ </DD>
31
+ <DD>Widget::<A HREF="#create"><B>create</B></A>
32
+ <I>class</I>
33
+ <I>path</I>
34
+ ?<I>rename</I>?
35
+ </DD>
36
+ <DD>Widget::<A HREF="#declare"><B>declare</B></A>
37
+ <I>class</I>
38
+ <I>optlist</I>
39
+ </DD>
40
+ <DD>Widget::<A HREF="#define"><B>define</B></A>
41
+ <I>class</I>
42
+ <I>filename</I>
43
+ ?<I>class ...</I>?
44
+ </DD>
45
+ <DD>Widget::<A HREF="#destroy"><B>destroy</B></A>
46
+ <I>path</I>
47
+ </DD>
48
+ <DD>Widget::<A HREF="#focusNext"><B>focusNext</B></A>
49
+ <I>w</I>
50
+ </DD>
51
+ <DD>Widget::<A HREF="#focusOK"><B>focusOK</B></A>
52
+ <I>w</I>
53
+ </DD>
54
+ <DD>Widget::<A HREF="#focusPrev"><B>focusPrev</B></A>
55
+ <I>w</I>
56
+ </DD>
57
+ <DD>Widget::<A HREF="#generate-doc"><B>generate-doc</B></A>
58
+ <I>dir</I>
59
+ <I>widgetlist</I>
60
+ </DD>
61
+ <DD>Widget::<A HREF="#generate-widget-doc"><B>generate-widget-doc</B></A>
62
+ <I>class</I>
63
+ <I>iscmd</I>
64
+ <I>file</I>
65
+ </DD>
66
+ <DD>Widget::<A HREF="#getoption"><B>getoption</B></A>
67
+ <I>path</I>
68
+ <I>option</I>
69
+ </DD>
70
+ <DD>Widget::<A HREF="#getVariable"><B>getVariable</B></A>
71
+ <I>path</I>
72
+ <I>varName</I>
73
+ <I>?myVarName?</I>
74
+ </DD>
75
+ <DD>Widget::<A HREF="#hasChanged"><B>hasChanged</B></A>
76
+ <I>path</I>
77
+ <I>option</I>
78
+ <I>pvalue</I>
79
+ </DD>
80
+ <DD>Widget::<A HREF="#init"><B>init</B></A>
81
+ <I>class</I>
82
+ <I>path</I>
83
+ <I>options</I>
84
+ </DD>
85
+ <DD>Widget::<A HREF="#setoption"><B>setoption</B></A>
86
+ <I>path</I>
87
+ <I>option</I>
88
+ <I>value</I>
89
+ </DD>
90
+ <DD>Widget::<A HREF="#subcget"><B>subcget</B></A>
91
+ <I>path</I>
92
+ <I>subwidget</I>
93
+ </DD>
94
+ <DD>Widget::<A HREF="#syncoptions"><B>syncoptions</B></A>
95
+ <I>class</I>
96
+ <I>subclass</I>
97
+ <I>subpath</I>
98
+ <I>options</I>
99
+ </DD>
100
+ <DD>Widget::<A HREF="#tkinclude"><B>tkinclude</B></A>
101
+ <I>class</I>
102
+ <I>tkwidget</I>
103
+ <I>subpath</I>
104
+ ?<I>arg...</I>?
105
+ </DD>
106
+ </DL>
107
+ <BR><HR WIDTH="100%"><BR>
108
+ <B><A NAME="descr"></A>DESCRIPTION</B><BR>
109
+ <P>
110
+
111
+ The <B>Widget</B> namespace handle data associated to all BWidget and provide commands
112
+ to easily define BWidget.
113
+ <BR>For commands can be used to define a BWidget:
114
+ <B>tkinclude</B>, <B>bwinclude</B>, <B>declare</B>, <B>addmap</B> and <B>syncoptions</B>.
115
+ Here is the definition of <A HREF="ComboBox.html">ComboBox</A> widget:
116
+ <BR><BR>
117
+ <CENTER>
118
+ <TABLE BORDER=2 CELSPACING=2 WIDTH=80%>
119
+ <TR><TD><PRE>
120
+ namespace eval ComboBox {
121
+ <FONT COLOR=red><I># We're using ArrowButton, Entry and LabelFrame</I></FONT>
122
+ ArrowButton::use
123
+ Entry::use
124
+ LabelFrame::use
125
+
126
+ <FONT COLOR=red><I># Include resources of LabelFrame</I></FONT>
127
+ Widget::bwinclude ComboBox LabelFrame .labf \
128
+ rename {-text -label} \
129
+ remove {-focus} \
130
+ prefix {label -justify -width -anchor -height -font} \
131
+ initialize {-relief sunken -borderwidth 2}
132
+
133
+ <FONT COLOR=red><I># Include resources of Entry</I></FONT>
134
+ Widget::bwinclude ComboBox Entry .e \
135
+ remove {-relief -bd -borderwidth -bg -fg} \
136
+ rename {-foreground -entryfg -background -entrybg}
137
+
138
+ <FONT COLOR=red><I># Declare new resources</I></FONT>
139
+ Widget::declare ComboBox {
140
+ {-height TkResource 0 0 listbox}
141
+ {-values String "" 0}
142
+ {-modifycmd String "" 0}
143
+ {-postcommand String "" 0}
144
+ }
145
+
146
+ <FONT COLOR=red><I># Map resources to subwidget</I></FONT>
147
+ Widget::addmap ComboBox "" :cmd {-background {}}
148
+ Widget::addmap ComboBox ArrowButton .a \
149
+ {-foreground {} -background {} -disabledforeground {} -state {}}
150
+
151
+ <FONT COLOR=red><I># Synchronize subwidget options</I></FONT>
152
+ Widget::syncoptions ComboBox Entry .e {-text {}}
153
+ Widget::syncoptions ComboBox LabelFrame .labf {-label -text -underline {}}
154
+
155
+ proc use {} {}
156
+ }</PRE>
157
+ </TD></TR>
158
+ </TABLE></CENTER>
159
+
160
+ </P>
161
+ <HR WIDTH="50%"><BR>
162
+ <B><A NAME="wc">COMMAND</A></B><BR>
163
+ <DL><DT><A NAME="addmap">Widget::<B>addmap</B></A>
164
+ <I>class</I>
165
+ <I>subclass</I>
166
+ <I>subpath</I>
167
+ <I>options</I>
168
+ </DT><DD>
169
+
170
+ This command map some resources to subwidget.
171
+ Mapped resources automatically configure subwidget when widget is configured.
172
+ <UL>
173
+ <LI><I>class</I> is the class of the new BWidget
174
+ <LI><I>subclass</I> is the class the subwidget (BWidget class, e.g Entry, or empty for Tk widget)
175
+ <LI><I>subpath</I> is the path of the subwidget
176
+ <LI><I>options</I> is the list <I>{option realres ...}</I> of options to map to subwidget
177
+ </UL>
178
+ </DD></DL>
179
+ <DL><DT><A NAME="bwinclude">Widget::<B>bwinclude</B></A>
180
+ <I>class</I>
181
+ <I>subclass</I>
182
+ <I>subpath</I>
183
+ ?<I>arg...</I>?
184
+ </DT><DD>
185
+
186
+ This command includes into a new BWidget the resources of another BWidget.
187
+ Arguments are:
188
+ <UL>
189
+ <LI><I>class</I> class of the new widget
190
+ <LI><I>subclass</I> class name of the BWidget to be included
191
+ <LI><I>subpath</I> path of the widget to configure when BWidget is configured
192
+ <LI><I>options</I> is:
193
+ <UL>
194
+ <LI><I><B>include</B> {option option ...}</I>
195
+ <BR>list of options to include (all if not defined)
196
+ <LI><I><B>remove</B> {option option ...}</I>
197
+ <BR> list of options to remove
198
+ <LI><I><B>rename</B> {option name option name ...}</I>
199
+ <BR>list of options to rename
200
+ <LI><I><B>prefix</B> {prefix option option ...}</I>
201
+ <BR>pefix all <I>option</I> by <I>prefix</I>
202
+ <LI><I><B>initialize</B> {option value option value ...}</I>
203
+ <BR>default value of options
204
+ <LI><I><B>readonly</B> {option value option value ...}</I>
205
+ <BR>new readonly flag
206
+ </UL></UL>
207
+ </DD></DL>
208
+ <DL><DT><A NAME="cget">Widget::<B>cget</B></A>
209
+ <I>path</I>
210
+ <I>option</I>
211
+ </DT><DD>
212
+
213
+ Returns the value of <I>option</I> of BWidget <I>path</I>. <B>cget</B> tests the option
214
+ existence and takes care of synchronization with subwidget.
215
+ Typically called by the BWidget <B>cget</B> command.
216
+
217
+ </DD></DL>
218
+ <DL><DT><A NAME="configure">Widget::<B>configure</B></A>
219
+ <I>path</I>
220
+ <I>options</I>
221
+ </DT><DD>
222
+ Description text
223
+ </DD></DL>
224
+
225
+ <DL><DT><A NAME="create">Widget::<B>create</B></A>
226
+ <I>class</I>
227
+ <I>path</I>
228
+ ?<I>rename</I>?
229
+ </DT><DD>
230
+ The standard method for creating a BWidget. The real widget path
231
+ is renamed to $path:cmd, and a new proc is created to replace the
232
+ path which points to the BWidget's commands.
233
+
234
+ <p>
235
+ If <i>rename</i> is false, the path will not be renamed, but the
236
+ proc will still be created. This is useful when inheriting another
237
+ BWidget who will already have renamed the widget.
238
+ </p>
239
+
240
+ <p>
241
+ The command returns the widget path. This command is usually the
242
+ last command executed in the ::create command for the widget.
243
+ </p>
244
+ </DD></DL>
245
+
246
+ <DL><DT><A NAME="declare">Widget::<B>declare</B></A>
247
+ <I>class</I>
248
+ <I>optlist</I>
249
+ </DT><DD>
250
+
251
+ This command declare new resources for a BWidget.
252
+ <UL>
253
+ <LI><I>class</I> is class of the new widget
254
+ <LI><I>options</I> is the list describing new options. Each new option is a list
255
+ <B>{option type value ro ?args?}</B> where:
256
+ <UL>
257
+ <LI><I>option</I> is the name of the option
258
+ <LI><I>type</I> is the type of the option
259
+ <LI><I>value</I> is the default value of the option
260
+ <LI><I>ro</I> is the readonly flag of the option
261
+ <LI><I>args</I> depends on type
262
+ </UL></UL>
263
+ <BR>
264
+ <I>type</I> can be:
265
+ <BR>
266
+ <DL>
267
+ <DT><B>TkResource</B></DT>
268
+ <DD>
269
+ <I>value</I> of <I>option</I> denotes a resource of a Tk widget. <I>args</I> must be <I>class</I> or
270
+ <I>{class realoption}</I>. <I>class</I> is the creation command of the Tk widget, e.g.
271
+ <B>entry</B>.
272
+ The second form must be used if <I>option</I> has not the same name in Tk widget,
273
+ but <I>realoption</I>.
274
+ <BR>If <I>value</I> is empty, it is initialized to the default value of the Tk widget.
275
+ </DD>
276
+
277
+ <DT><B>BwResource</B></DT>
278
+ <DD>
279
+ <I>value</I> of <I>option</I> denotes a resource of a BWidget. <I>args</I> must be <I>class</I> or
280
+ <I>{class realoption}</I>. <I>class</I> is the name of the namespace of the BWidget, e.g.
281
+ <B>LabelFrame</B>.
282
+ The second form must be used if <I>option</I> has not the same name in BWidget,
283
+ but <I>realoption</I>.
284
+ <BR>If <I>value</I> is empty, it is initialized to the default value of the BWidget.
285
+ </DD>
286
+
287
+ <DT><B>Int</B></DT>
288
+ <DD><I>value</I> of <I>option</I> is an integer.
289
+ <I>args</I> can be <I>{?min? ?max?}</I> to force it to be in a range. The test is
290
+ <I>[expr $option &gt; $min] && [expr $option &lt; $max]</I> so
291
+ if args is <I>{0 10}</I>, value must be beetween 0 and 10 exclude,
292
+ if <I>args</I> is <I>{=0 =10}</I> , value must be beetween 0 and 10 include.
293
+ </DD>
294
+
295
+ <DT><B>Boolean</B></DT>
296
+ <DD><I>value</I> of <I>option</I> is a boolean. True values can be <B>1</B>, <B>true</B> or <B>yes</B>.
297
+ False values can be <B>0</B>, <B>false</B> or <B>no</B>. <B>Widget::cget</B> always return
298
+ 0 or 1.
299
+ </DD>
300
+
301
+ <DT><B>Enum</B></DT>
302
+ <DD>
303
+ <I>value</I> of <I>option</I> is a element of a enumeration. <I>args</I> must be the list
304
+ of enumeration, e.g. <I>{top left bottom right}</I>.
305
+ </DD>
306
+
307
+ <DT><B>Flag</B></DT>
308
+ <DD>
309
+ <I>value</I> of <I>option</I> is a combination of a set of chars. <I>args</I> must be a
310
+ string defining the set.
311
+ </DD>
312
+
313
+ <DT><B>String</B></DT>
314
+ <DD>
315
+ <DD><I>value</I> of <I>option</I> is any uncontrolled string.
316
+ </DD>
317
+
318
+ <DT><B>Synonym</B></DT>
319
+ <DD>
320
+ <DD><I>option</I> is a synonym of option <I>args</I>. <I>value</I> has no effect here.
321
+ </DD>
322
+ </DL>
323
+ </DD></DL>
324
+
325
+ <DL><DT><A NAME="define">Widget::<B>define</B></A>
326
+ <I>class</I>
327
+ <I>filename</I>
328
+ ?<I>class ...</I>?
329
+ </DT><DD>
330
+
331
+ <p>
332
+ This command is used to define a new BWidget class. It is
333
+ usually the first command executed in a new widget definition.
334
+ </p>
335
+
336
+ <ul>
337
+ <li><i>class</i> is the name of the new widget class.</li>
338
+ <li><i>filename</i> is the name of the file (without extension) in the
339
+ BWidget distribution that defines this class.</li>
340
+ </ul>
341
+
342
+ <p>
343
+ Each class defined after the filename is a class that this widget
344
+ depends on. The ::use command will be called for each of these
345
+ classes after the new widget has been defined.
346
+ </p>
347
+
348
+ <p>
349
+ This command does several things to setup the new class. First, it
350
+ creates an alias in the global namespace for the name of the class
351
+ that points to the class's ::create subcommand. Second, it defines
352
+ a ::use subcommand for the class which other classes can use to load
353
+ this class on the fly. Lastly, it creates a default binding to the
354
+ &lt;Destroy&gt; event for the class that calls Widget::destroy on
355
+ the path. This is the default setup for almost all widgets in the
356
+ BWidget package.
357
+ </p>
358
+
359
+ </DD></DL>
360
+
361
+ <DL><DT><A NAME="destroy">Widget::<B>destroy</B></A>
362
+ <I>path</I>
363
+ </DT><DD>
364
+ Description text
365
+ </DD></DL>
366
+ <DL><DT><A NAME="focusNext">Widget::<B>focusNext</B></A>
367
+ <I>w</I>
368
+ </DT><DD>
369
+ Description text
370
+ </DD></DL>
371
+ <DL><DT><A NAME="focusOK">Widget::<B>focusOK</B></A>
372
+ <I>w</I>
373
+ </DT><DD>
374
+ Description text
375
+ </DD></DL>
376
+ <DL><DT><A NAME="focusPrev">Widget::<B>focusPrev</B></A>
377
+ <I>w</I>
378
+ </DT><DD>
379
+ Description text
380
+ </DD></DL>
381
+ <DL><DT><A NAME="generate-doc">Widget::<B>generate-doc</B></A>
382
+ <I>dir</I>
383
+ <I>widgetlist</I>
384
+ </DT><DD>
385
+ Description text
386
+ </DD></DL>
387
+ <DL><DT><A NAME="generate-widget-doc">Widget::<B>generate-widget-doc</B></A>
388
+ <I>class</I>
389
+ <I>iscmd</I>
390
+ <I>file</I>
391
+ </DT><DD>
392
+ Description text
393
+ </DD></DL>
394
+ <DL><DT><A NAME="getoption">Widget::<B>getoption</B></A>
395
+ <I>path</I>
396
+ <I>option</I>
397
+ </DT><DD>
398
+
399
+ Returns the value of <I>option</I> of BWidget <I>path</I>. This command does not test
400
+ option existence, does not handle synonym and does not take care of synchronization with
401
+ subwidget.
402
+
403
+ </DD></DL>
404
+ <DL><DT><A NAME="getVariable">Widget::<B>getVariable</B></A>
405
+ <I>path</I>
406
+ <I>varName</I>
407
+ <I>?myVarName?</I>
408
+ </DT><DD>
409
+
410
+ <p>
411
+ Make the variable <i>varName</i> relational to <i>path</i> accessible in
412
+ the current procedure. The variable will be created in the widget namespace
413
+ for <i>path</i> and can be used for storing widget-specific information.
414
+ When <i>path</i> is destroyed, any variable accessed in this manner will be
415
+ destroyed with it.
416
+ </p>
417
+
418
+ <p>
419
+ If <i>myVarName</i> is specified, the variable will be accessible in the
420
+ current procedure as that name.
421
+ </p>
422
+
423
+ </DD></DL>
424
+ <DL><DT><A NAME="hasChanged">Widget::<B>hasChanged</B></A>
425
+ <I>path</I>
426
+ <I>option</I>
427
+ <I>pvalue</I>
428
+ </DT><DD>
429
+ Description text
430
+ </DD></DL>
431
+ <DL><DT><A NAME="init">Widget::<B>init</B></A>
432
+ <I>class</I>
433
+ <I>path</I>
434
+ <I>options</I>
435
+ </DT><DD>
436
+ Description text
437
+ </DD></DL>
438
+ <DL><DT><A NAME="setoption">Widget::<B>setoption</B></A>
439
+ <I>path</I>
440
+ <I>option</I>
441
+ <I>value</I>
442
+ </DT><DD>
443
+
444
+ Set the value of <I>option</I> of BWidget <I>path</I> without option test, subwidget mapping,
445
+ synonym handling and does not set the modification flag.
446
+
447
+ </DD></DL>
448
+ <DL><DT><A NAME="subcget">Widget::<B>subcget</B></A>
449
+ <I>path</I>
450
+ <I>subwidget</I>
451
+ </DT><DD>
452
+
453
+ Returns the list of all option/value of BWidget <I>path</I> that are mapped to <I>subwidget</I>.
454
+
455
+ </DD></DL>
456
+ <DL><DT><A NAME="syncoptions">Widget::<B>syncoptions</B></A>
457
+ <I>class</I>
458
+ <I>subclass</I>
459
+ <I>subpath</I>
460
+ <I>options</I>
461
+ </DT><DD>
462
+
463
+ This command synchronize options value of a subwidget.
464
+ Used when an option of a subwidget is modified out of the BWidget <B>configure</B> command.
465
+ <UL>
466
+ <LI><I>class</I> is the class of the new BWidget
467
+ <LI><I>subclass</I> is the class the subwidget (BWidget class, e.g Entry, or empty for Tk widget)
468
+ <LI><I>subpath</I> is the path of the subwidget
469
+ <LI><I>options</I> is the list <I>{option realres ...}</I> of options to synchronize
470
+ with subwidget
471
+ </UL>
472
+ </DD></DL>
473
+ <DL><DT><A NAME="tkinclude">Widget::<B>tkinclude</B></A>
474
+ <I>class</I>
475
+ <I>tkwidget</I>
476
+ <I>subpath</I>
477
+ ?<I>arg...</I>?
478
+ </DT><DD>
479
+
480
+ This command includes into a new BWidget the resources of a Tk widget.
481
+ Arguments are:
482
+ <UL>
483
+ <LI><I>class</I> class of the new widget
484
+ <LI><I>tkwidger</I> command name of the Tk widget to be included
485
+ <LI><I>subpath</I> path of the widget to configure when BWidget is configured
486
+ <LI><I>options</I> is:
487
+ <UL>
488
+ <LI><I><B>include</B> {option option ...}</I>
489
+ <BR>list of options to include (all if not defined)
490
+ <LI><I><B>remove</B> {option option ...}</I>
491
+ <BR>list of options to remove
492
+ <LI><I><B>rename</B> {option name option name ...}</I>
493
+ <BR>list of options to rename
494
+ <LI><I><B>prefix</B> {prefix option option ...}</I>
495
+ <BR>pefix all <I>option</I> by <I>prefix</I>
496
+ <LI><I><B>initialize</B> {option value option value ...}</I>
497
+ <BR>default value of options
498
+ <LI><I><B>readonly</B> {option value option value ...}</I>
499
+ <BR>new readonly flag
500
+ </UL></UL>
501
+ </DD></DL>
502
+ </BODY></HTML>