arcadia 0.1.1 → 0.1.2

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