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,246 @@
1
+ # ----------------------------------------------------------------------------
2
+ # panelframe.tcl
3
+ # Create PanelFrame widgets.
4
+ # A PanelFrame is a boxed frame that allows you to place items
5
+ # in the label area (liked combined frame+toolbar). It uses the
6
+ # highlight colors the default frame color.
7
+ # $Id: panelframe.tcl,v 1.1 2004/09/09 22:17:51 hobbs Exp $
8
+ # ----------------------------------------------------------------------------
9
+ # Index of commands:
10
+ # - PanelFrame::create
11
+ # - PanelFrame::configure
12
+ # - PanelFrame::cget
13
+ # - PanelFrame::getframe
14
+ # - PanelFrame::add
15
+ # - PanelFrame::remove
16
+ # - PanelFrame::items
17
+ # ----------------------------------------------------------------------------
18
+
19
+ namespace eval PanelFrame {
20
+ Widget::define PanelFrame panelframe
21
+
22
+ Widget::declare PanelFrame {
23
+ {-background TkResource "" 0 frame}
24
+ {-borderwidth TkResource 1 0 frame}
25
+ {-relief TkResource flat 0 frame}
26
+ {-panelbackground TkResource "" 0 {entry -selectbackground}}
27
+ {-panelforeground TkResource "" 0 {entry -selectforeground}}
28
+ {-width Int 0 0}
29
+ {-height Int 0 0}
30
+ {-font TkResource "" 0 label}
31
+ {-text String "" 0}
32
+ {-textvariable String "" 0}
33
+ {-ipad String 1 0}
34
+ {-bg Synonym -background}
35
+ {-bd Synonym -borderwidth}
36
+ }
37
+ # Should we have automatic state handling?
38
+ #{-state TkResource "" 0 label}
39
+
40
+ Widget::addmap PanelFrame "" :cmd {
41
+ -panelbackground -background
42
+ -width {} -height {} -borderwidth {} -relief {}
43
+ }
44
+ Widget::addmap PanelFrame "" .title {
45
+ -panelbackground -background
46
+ }
47
+ Widget::addmap PanelFrame "" .title.text {
48
+ -panelbackground -background
49
+ -panelforeground -foreground
50
+ -text {} -textvariable {} -font {}
51
+ }
52
+ Widget::addmap PanelFrame "" .frame {
53
+ -background {}
54
+ }
55
+
56
+ if {0} {
57
+ # This would be code to have an automated close button
58
+ #{-closebutton Boolean 0 0}
59
+ Widget::addmap PanelFrame "" .title.close {
60
+ -panelbackground -background
61
+ -panelforeground -foreground
62
+ }
63
+ variable HaveMarlett \
64
+ [expr {[lsearch -exact [font families] "Marlett"] != -1}]
65
+
66
+ variable imgdata {
67
+ #define close_width 16
68
+ #define close_height 16
69
+ static char close_bits[] = {
70
+ 0x00, 0x00, 0x00, 0x00,
71
+ 0x00, 0x00, 0x10, 0x08,
72
+ 0x38, 0x1c, 0x70, 0x0e,
73
+ 0xe0, 0x07, 0xc0, 0x03,
74
+ 0xc0, 0x03, 0xe0, 0x07,
75
+ 0x70, 0x0e, 0x38, 0x1c,
76
+ 0x10, 0x08, 0x00, 0x00,
77
+ 0x00, 0x00, 0x00, 0x00};
78
+ }
79
+ # We use the same -foreground as the default -panelbackground
80
+ image create bitmap ::PanelFrame::X -data $imgdata \
81
+ -foreground [lindex $Widget::PanelFrame::opt(-panelbackground) 1]
82
+ }
83
+
84
+ bind PanelFrame <Destroy> [list Widget::destroy %W]
85
+ }
86
+
87
+
88
+ # ----------------------------------------------------------------------------
89
+ # Command PanelFrame::create
90
+ # ----------------------------------------------------------------------------
91
+ proc PanelFrame::create { path args } {
92
+ variable HaveMarlett
93
+
94
+ Widget::init PanelFrame $path $args
95
+
96
+ set lblopts [list -bd 0 -highlightthickness 0]
97
+ set outer [eval [list frame $path -class PanelFrame] \
98
+ [Widget::subcget $path :cmd]]
99
+ set title [eval [list frame $path.title] \
100
+ [Widget::subcget $path .title]]
101
+ set tlbl [eval [list label $path.title.text] $lblopts -anchor w \
102
+ [Widget::subcget $path .title.text]]
103
+ set inner [eval [list frame $path.frame] \
104
+ [Widget::subcget $path .frame]]
105
+
106
+ foreach {ipadx ipady} [_padval [Widget::cget $path -ipad]] { break }
107
+
108
+ if {0} {
109
+ set btnopts [list -padx 0 -pady 0 -relief flat -overrelief raised \
110
+ -bd 1 -highlightthickness 0]
111
+ set clbl [eval [list button $path.title.close] $btnopts \
112
+ [Widget::subcget $path .title.close]]
113
+ set close [Widget::cget $path -closebutton]
114
+ if {$HaveMarlett} {
115
+ $clbl configure -font "Marlett -14" -text \u0072
116
+ } else {
117
+ $clbl configure -image ::PanelFrame::X
118
+ }
119
+ if {$close} {
120
+ pack $path.title.close -side right -padx $ipadx -pady $ipady
121
+ }
122
+ }
123
+
124
+ grid $path.title -row 0 -column 0 -sticky ew
125
+ grid $path.frame -row 1 -column 0 -sticky news
126
+ grid columnconfigure $path 0 -weight 1
127
+ grid rowconfigure $path 1 -weight 1
128
+
129
+ pack $path.title.text -side left -fill x -anchor w \
130
+ -padx $ipadx -pady $ipady
131
+
132
+ return [Widget::create PanelFrame $path]
133
+ }
134
+
135
+
136
+ # ----------------------------------------------------------------------------
137
+ # Command PanelFrame::configure
138
+ # ----------------------------------------------------------------------------
139
+ proc PanelFrame::configure { path args } {
140
+ set res [Widget::configure $path $args]
141
+
142
+ if {[Widget::hasChanged $path -ipad ipad]} {
143
+ }
144
+
145
+ return $res
146
+ }
147
+
148
+
149
+ # ----------------------------------------------------------------------------
150
+ # Command PanelFrame::cget
151
+ # ----------------------------------------------------------------------------
152
+ proc PanelFrame::cget { path option } {
153
+ return [Widget::cget $path $option]
154
+ }
155
+
156
+ # ----------------------------------------------------------------------------
157
+ # Command PanelFrame::getframe
158
+ # ----------------------------------------------------------------------------
159
+ proc PanelFrame::getframe { path } {
160
+ return $path.frame
161
+ }
162
+
163
+ # ------------------------------------------------------------------------
164
+ # Command PanelFrame::add
165
+ # ------------------------------------------------------------------------
166
+ proc PanelFrame::add {path w args} {
167
+ variable _widget
168
+
169
+ array set opts [list \
170
+ -side right \
171
+ -fill none \
172
+ -expand 0 \
173
+ -pad [Widget::cget $path -ipad] \
174
+ ]
175
+ foreach {key val} $args {
176
+ if {[info exists opts($key)]} {
177
+ set opts($key) $val
178
+ } else {
179
+ set msg "unknown option \"$key\", must be one of: "
180
+ append msg [join [lsort [array names opts]] {, }]
181
+ return -code error $msg
182
+ }
183
+ }
184
+ foreach {ipadx ipady} [_padval $opts(-pad)] { break }
185
+
186
+ set f $path.title
187
+
188
+ lappend _widget($path,items) $w
189
+ pack $w -in $f -padx $ipadx -pady $ipady -side $opts(-side) \
190
+ -fill $opts(-fill) -expand $opts(-expand)
191
+
192
+ return $w
193
+ }
194
+
195
+ # ------------------------------------------------------------------------
196
+ # Command PanelFrame::remove
197
+ # ------------------------------------------------------------------------
198
+ proc PanelFrame::remove {path args} {
199
+ variable _widget
200
+
201
+ set destroy [string equal [lindex $args 0] "-destroy"]
202
+ if {$destroy} {
203
+ set args [lrange $args 1 end]
204
+ }
205
+ foreach w $args {
206
+ set idx [lsearch -exact $_widget($path,items) $w]
207
+ if {$idx == -1} {
208
+ # ignore unknown
209
+ continue
210
+ }
211
+ if {$destroy} {
212
+ destroy $w
213
+ } elseif {[winfo exists $w]} {
214
+ pack forget $w
215
+ }
216
+ set _widget($path,items) [lreplace $_widget($path,items) $idx $idx]
217
+ }
218
+ }
219
+
220
+ # ------------------------------------------------------------------------
221
+ # Command PanelFrame::delete
222
+ # ------------------------------------------------------------------------
223
+ proc PanelFrame::delete {path args} {
224
+ return [PanelFrame::remove $path -destroy $args]
225
+ }
226
+
227
+ # ------------------------------------------------------------------------
228
+ # Command PanelFrame::items
229
+ # ------------------------------------------------------------------------
230
+ proc PanelFrame::items {path} {
231
+ variable _widget
232
+ return $_widget($path,items)
233
+ }
234
+
235
+ proc PanelFrame::_padval {padval} {
236
+ set len [llength $padval]
237
+ foreach {a b} $padval { break }
238
+ if {$len == 0 || $len > 2} {
239
+ return -code error \
240
+ "invalid pad value \"$padval\", must be 1 or 2 pixel values"
241
+ } elseif {$len == 1} {
242
+ return [list $a $a]
243
+ } elseif {$len == 2} {
244
+ return $padval
245
+ }
246
+ }
@@ -0,0 +1,178 @@
1
+ # -----------------------------------------------------------------------------
2
+ # passwddlg.tcl
3
+ # This file is part of Unifix BWidget Toolkit
4
+ # by Stephane Lavirotte (Stephane.Lavirotte@sophia.inria.fr)
5
+ # $Id: passwddlg.tcl,v 1.11 2006/09/28 22:31:28 dev_null42a Exp $
6
+ # -----------------------------------------------------------------------------
7
+ # Index of commands:
8
+ # - PasswdDlg::create
9
+ # - PasswdDlg::configure
10
+ # - PasswdDlg::cget
11
+ # - PasswdDlg::_verifonlogin
12
+ # - PasswdDlg::_verifonpasswd
13
+ # - PasswdDlg::_max
14
+ #------------------------------------------------------------------------------
15
+
16
+ namespace eval PasswdDlg {
17
+ Widget::define PasswdDlg passwddlg Dialog LabelEntry
18
+
19
+ Widget::bwinclude PasswdDlg Dialog :cmd \
20
+ remove {-image -bitmap -side -default -cancel -separator} \
21
+ initialize {-modal local -anchor e}
22
+
23
+ Widget::bwinclude PasswdDlg LabelEntry .frame.lablog \
24
+ remove [list -command -justify -name -show -side \
25
+ -state -takefocus -width -xscrollcommand -padx -pady \
26
+ -dragenabled -dragendcmd -dragevent -draginitcmd \
27
+ -dragtype -dropenabled -dropcmd -dropovercmd -droptypes \
28
+ ] \
29
+ prefix [list login -editable -helptext -helpvar -label \
30
+ -text -textvariable -underline \
31
+ ] \
32
+ initialize [list -relief sunken -borderwidth 2 \
33
+ -labelanchor w -width 15 -loginlabel "Login" \
34
+ ]
35
+
36
+ Widget::bwinclude PasswdDlg LabelEntry .frame.labpass \
37
+ remove [list -command -width -show -side -takefocus \
38
+ -xscrollcommand -dragenabled -dragendcmd -dragevent \
39
+ -draginitcmd -dragtype -dropenabled -dropcmd \
40
+ -dropovercmd -droptypes -justify -padx -pady -name \
41
+ ] \
42
+ prefix [list passwd -editable -helptext -helpvar -label \
43
+ -state -text -textvariable -underline \
44
+ ] \
45
+ initialize [list -relief sunken -borderwidth 2 \
46
+ -labelanchor w -width 15 -passwdlabel "Password" \
47
+ ]
48
+
49
+ Widget::declare PasswdDlg {
50
+ {-type Enum ok 0 {ok okcancel}}
51
+ {-labelwidth TkResource -1 0 {label -width}}
52
+ {-command String "" 0}
53
+ }
54
+ }
55
+
56
+
57
+ # -----------------------------------------------------------------------------
58
+ # Command PasswdDlg::create
59
+ # -----------------------------------------------------------------------------
60
+ proc PasswdDlg::create { path args } {
61
+
62
+ array set maps [list PasswdDlg {} :cmd {} .frame.lablog {} \
63
+ .frame.labpass {}]
64
+ array set maps [Widget::parseArgs PasswdDlg $args]
65
+
66
+ Widget::initFromODB PasswdDlg "$path#PasswdDlg" $maps(PasswdDlg)
67
+
68
+ # Extract the PasswdDlg megawidget options (those that don't map to a
69
+ # subwidget)
70
+ set type [Widget::cget "$path#PasswdDlg" -type]
71
+ set cmd [Widget::cget "$path#PasswdDlg" -command]
72
+
73
+ set defb -1
74
+ set canb -1
75
+ switch -- $type {
76
+ ok { set lbut {ok}; set defb 0 }
77
+ okcancel { set lbut {ok cancel} ; set defb 0; set canb 1 }
78
+ }
79
+
80
+ eval [list Dialog::create $path] $maps(:cmd) \
81
+ [list -class PasswdDlg -image [Bitmap::get passwd] \
82
+ -side bottom -default $defb -cancel $canb]
83
+ foreach but $lbut {
84
+ if { $but == "ok" && $cmd != "" } {
85
+ Dialog::add $path -text $but -name $but -command $cmd
86
+ } else {
87
+ Dialog::add $path -text $but -name $but
88
+ }
89
+ }
90
+
91
+ set frame [Dialog::getframe $path]
92
+ bind $path <Return> ""
93
+ bind $frame <Destroy> [list Widget::destroy $path\#PasswdDlg]
94
+
95
+ set lablog [eval [list LabelEntry::create $frame.lablog] \
96
+ $maps(.frame.lablog) \
97
+ [list -name login -dragenabled 0 -dropenabled 0 \
98
+ -command [list PasswdDlg::_verifonpasswd \
99
+ $path $frame.labpass]]]
100
+
101
+ set labpass [eval [list LabelEntry::create $frame.labpass] \
102
+ $maps(.frame.labpass) \
103
+ [list -name password -show "*" \
104
+ -dragenabled 0 -dropenabled 0 \
105
+ -command [list PasswdDlg::_verifonlogin \
106
+ $path $frame.lablog]]]
107
+
108
+ # compute label width
109
+ if {[$lablog cget -labelwidth] == 0} {
110
+ set loglabel [$lablog cget -label]
111
+ set passlabel [$labpass cget -label]
112
+ set labwidth [_max [string length $loglabel] [string length $passlabel]]
113
+ incr labwidth 1
114
+ $lablog configure -labelwidth $labwidth
115
+ $labpass configure -labelwidth $labwidth
116
+ }
117
+
118
+ Widget::create PasswdDlg $path 0
119
+
120
+ pack $frame.lablog $frame.labpass -fill x -expand 1
121
+
122
+ # added by bach@mwgdna.com
123
+ # give focus to loginlabel unless the state is disabled
124
+ if {[$lablog cget -editable]} {
125
+ focus $frame.lablog.e
126
+ } else {
127
+ focus $frame.labpass.e
128
+ }
129
+ set res [Dialog::draw $path]
130
+
131
+ if { $res == 0 } {
132
+ set res [list [$lablog.e cget -text] [$labpass.e cget -text]]
133
+ } else {
134
+ set res [list]
135
+ }
136
+ Widget::destroy "$path#PasswdDlg"
137
+ destroy $path
138
+
139
+ return $res
140
+ }
141
+
142
+ # -----------------------------------------------------------------------------
143
+ # Command PasswdDlg::configure
144
+ # -----------------------------------------------------------------------------
145
+
146
+ proc PasswdDlg::configure { path args } {
147
+ set res [Widget::configure "$path#PasswdDlg" $args]
148
+ }
149
+
150
+ # -----------------------------------------------------------------------------
151
+ # Command PasswdDlg::cget
152
+ # -----------------------------------------------------------------------------
153
+
154
+ proc PasswdDlg::cget { path option } {
155
+ return [Widget::cget "$path#PasswdDlg" $option]
156
+ }
157
+
158
+
159
+ # -----------------------------------------------------------------------------
160
+ # Command PasswdDlg::_verifonlogin
161
+ # -----------------------------------------------------------------------------
162
+ proc PasswdDlg::_verifonlogin { path labpass } {
163
+ Dialog::enddialog $path 0
164
+ }
165
+
166
+ # -----------------------------------------------------------------------------
167
+ # Command PasswdDlg::_verifonpasswd
168
+ # -----------------------------------------------------------------------------
169
+ proc PasswdDlg::_verifonpasswd { path lablog } {
170
+ focus $lablog
171
+ }
172
+
173
+ # -----------------------------------------------------------------------------
174
+ # Command PasswdDlg::_max
175
+ # -----------------------------------------------------------------------------
176
+ proc PasswdDlg::_max { val1 val2 } {
177
+ return [expr {($val1 > $val2) ? ($val1) : ($val2)}]
178
+ }
@@ -0,0 +1,47 @@
1
+ if {[catch {package require Tcl}]} return
2
+ package ifneeded BWidget 1.8 "\
3
+ package require Tk 8.1.1;\
4
+ [list tclPkgSetup $dir BWidget 1.8 {
5
+ {arrow.tcl source {ArrowButton ArrowButton::create ArrowButton::use}}
6
+ {labelframe.tcl source {LabelFrame LabelFrame::create LabelFrame::use}}
7
+ {labelentry.tcl source {LabelEntry LabelEntry::create LabelEntry::use}}
8
+ {bitmap.tcl source {Bitmap::get Bitmap::use}}
9
+ {button.tcl source {Button Button::create Button::use}}
10
+ {buttonbox.tcl source {ButtonBox ButtonBox::create ButtonBox::use}}
11
+ {combobox.tcl source {ComboBox ComboBox::create ComboBox::use}}
12
+ {label.tcl source {Label Label::create Label::use}}
13
+ {entry.tcl source {Entry Entry::create Entry::use}}
14
+ {pagesmgr.tcl source {PagesManager PagesManager::create PagesManager::use}}
15
+ {notebook.tcl source {NoteBook NoteBook::create NoteBook::use}}
16
+ {panedw.tcl source {PanedWindow PanedWindow::create PanedWindow::use}}
17
+ {scrollw.tcl source {ScrolledWindow ScrolledWindow::create ScrolledWindow::use}}
18
+ {scrollview.tcl source {ScrollView ScrollView::create ScrollView::use}}
19
+ {scrollframe.tcl source {ScrollableFrame ScrollableFrame::create ScrollableFrame::use}}
20
+ {panelframe.tcl source {PanelFrame PanelFrame::create PanelFrame::use}}
21
+ {progressbar.tcl source {ProgressBar ProgressBar::create ProgressBar::use}}
22
+ {progressdlg.tcl source {ProgressDlg ProgressDlg::create ProgressDlg::use}}
23
+ {passwddlg.tcl source {PasswdDlg PasswdDlg::create PasswdDlg::use}}
24
+ {dragsite.tcl source {DragSite::register DragSite::include DragSite::use}}
25
+ {dropsite.tcl source {DropSite::register DropSite::include DropSite::use}}
26
+ {separator.tcl source {Separator Separator::create Separator::use}}
27
+ {spinbox.tcl source {SpinBox SpinBox::create SpinBox::use}}
28
+ {statusbar.tcl source {StatusBar StatusBar::create StatusBar::use}}
29
+ {titleframe.tcl source {TitleFrame TitleFrame::create TitleFrame::use}}
30
+ {mainframe.tcl source {MainFrame MainFrame::create MainFrame::use}}
31
+ {listbox.tcl source {ListBox ListBox::create ListBox::use}}
32
+ {tree.tcl source {Tree Tree::create Tree::use}}
33
+ {color.tcl source {SelectColor SelectColor::menu SelectColor::dialog SelectColor::setcolor}}
34
+ {dynhelp.tcl source {DynamicHelp::configure DynamicHelp::use DynamicHelp::register DynamicHelp::include DynamicHelp::add DynamicHelp::delete}}
35
+ {dialog.tcl source {Dialog Dialog::create Dialog::use}}
36
+ {messagedlg.tcl source {MessageDlg MessageDlg::create MessageDlg::use}}
37
+ {font.tcl source {SelectFont SelectFont::create SelectFont::use SelectFont::loadfont}}
38
+ {widgetdoc.tcl source {Widget::generate-doc Widget::generate-widget-doc}}
39
+ {wizard.tcl source {Wizard Wizard::create Wizard::use SimpleWizard ClassicWizard}}
40
+ {xpm2image.tcl source {xpm-to-image}}
41
+ }]; \
42
+ [list namespace eval ::BWIDGET {}]; \
43
+ [list set ::BWIDGET::LIBRARY $dir]; \
44
+ [list source [file join $dir widget.tcl]]; \
45
+ [list source [file join $dir init.tcl]]; \
46
+ [list source [file join $dir utils.tcl]]; \
47
+ "