arcadia 0.7.0 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README +39 -38
- data/bin/arc +3 -0
- data/bin/arcadia +0 -1
- data/conf/arcadia.conf +54 -35
- data/conf/arcadia.init.rb +26 -3
- data/conf/arcadia.res.rb +56 -4
- data/ext/ae-breakpoints/ae-breakpoints.rb +1 -1
- data/ext/ae-dir-projects/ae-dir-projects.rb +113 -45
- data/ext/ae-editor/ae-editor.conf +6 -2
- data/ext/ae-editor/ae-editor.rb +1009 -616
- data/ext/ae-editor/langs/coderay.tokens +40 -0
- data/ext/ae-editor/langs/conf.lang +12 -10
- data/ext/ae-editor/langs/erb.lang.bind +1 -0
- data/ext/ae-editor/langs/java.lang +4 -0
- data/ext/ae-editor/langs/rb.lang +25 -55
- data/ext/ae-editor/langs/rhtml.lang +4 -0
- data/ext/ae-editor/langs/tokens.lang.bind +1 -0
- data/ext/ae-editor/langs/xml.lang +4 -0
- data/ext/ae-file-history/ae-file-history.rb +140 -32
- data/ext/ae-output/ae-output.rb +267 -262
- data/ext/ae-rad/ae-rad-inspector.rb +1 -1
- data/ext/ae-rad/ae-rad-libs.rb +15 -7
- data/ext/ae-rad/ae-rad.conf +4 -4
- data/ext/ae-rad/lib/tk/al-tk.rb +4 -3
- data/ext/ae-ruby-debug/ae-ruby-debug.conf +4 -2
- data/ext/ae-ruby-debug/ae-ruby-debug.rb +40 -15
- data/ext/ae-search-in-files/ae-search-in-files.rb +70 -14
- data/ext/ae-search-in-files/ext/ack-in-files/ack-in-files.conf +15 -0
- data/ext/ae-search-in-files/ext/ack-in-files/ack-in-files.rb +80 -0
- data/ext/ae-shell/ae-shell.conf +4 -1
- data/ext/ae-shell/ae-shell.rb +78 -43
- data/ext/test-shutdown-after-startup/test-shutdown-after-startup.conf +4 -0
- data/ext/test-shutdown-after-startup/test-shutdown-after-startup.rb +20 -0
- data/lib/a-commons.rb +118 -22
- data/lib/a-contracts.rb +46 -2
- data/lib/a-core.rb +970 -284
- data/lib/a-tkcommons.rb +16 -8
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/ArrowButton.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/BWidget.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/Button.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/ButtonBox.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/ComboBox.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/Dialog.html +20 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/DragSite.html +6 -4
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/DropSite.html +15 -3
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/DynamicHelp.html +8 -5
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/Entry.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/Label.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/LabelEntry.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/LabelFrame.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/ListBox.html +1 -1
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/MainFrame.html +8 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/MessageDlg.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/NoteBook.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/PagesManager.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/PanedWindow.html +21 -5
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/PanelFrame.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/PasswdDlg.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/ProgressBar.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/ProgressDlg.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/ScrollView.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/ScrollableFrame.html +5 -2
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/ScrolledWindow.html +36 -4
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/SelectColor.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/SelectFont.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/Separator.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/SpinBox.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/StatusBar.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/TitleFrame.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/Tree.html +21 -31
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/Widget.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/contents.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/index.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/navtree.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/options.htm +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/CHANGES.txt +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/ChangeLog +289 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/LICENSE.txt +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/README.txt +2 -2
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/arrow.tcl +1 -1
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/bitmap.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/button.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/buttonbox.tcl +23 -12
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/color.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/combobox.tcl +101 -25
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/demo/basic.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/demo/bwidget.xbm +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/demo/demo.tcl +1 -1
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/demo/dnd.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/demo/manager.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/demo/select.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/demo/tmpldlg.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/demo/tree.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/demo/x1.xbm +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/dialog.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/dragsite.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/dropsite.tcl +2 -1
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/dynhelp.tcl +194 -33
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/entry.tcl +8 -5
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/font.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/bold.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/copy.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/cut.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/dragfile.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/dragicon.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/error.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/file.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/folder.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/hourglass.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/info.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/italic.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/minus.xbm +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/new.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/opcopy.xbm +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/open.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/openfold.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/oplink.xbm +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/opmove.xbm +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/overstrike.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/palette.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/passwd.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/paste.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/plus.xbm +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/print.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/question.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/redo.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/save.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/target.xbm +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/underline.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/undo.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/warning.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/init.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/label.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/labelentry.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/labelframe.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/lang/da.rc +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/lang/de.rc +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/lang/en.rc +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/lang/es.rc +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/lang/fr.rc +0 -0
- data/tcl/BWidget-1.9.0/lang/hu.rc +52 -0
- data/tcl/BWidget-1.9.0/lang/nl.rc +52 -0
- data/tcl/BWidget-1.9.0/lang/no.rc +52 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/listbox.tcl +89 -34
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/mainframe.tcl +14 -13
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/messagedlg.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/notebook.tcl +3 -1
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/pagesmgr.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/panedw.tcl +22 -18
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/panelframe.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/passwddlg.tcl +7 -3
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/pkgIndex.tcl +2 -2
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/progressbar.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/progressdlg.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/scrollframe.tcl +60 -24
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/scrollview.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/scrollw.tcl +13 -11
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/separator.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/spinbox.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/statusbar.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/tests/entry.test +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/titleframe.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/tree.tcl +51 -41
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/utils.tcl +26 -11
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/widget.tcl +53 -19
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/wizard.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/xpm2image.tcl +0 -0
- metadata +170 -145
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# ------------------------------------------------------------------------------
|
2
2
|
# dropsite.tcl
|
3
3
|
# This file is part of Unifix BWidget Toolkit
|
4
|
-
# $Id: dropsite.tcl,v 1.
|
4
|
+
# $Id: dropsite.tcl,v 1.8 2009/06/30 16:17:37 oehhar Exp $
|
5
5
|
# ------------------------------------------------------------------------------
|
6
6
|
# Index of commands:
|
7
7
|
# - DropSite::include
|
@@ -150,6 +150,7 @@ proc DropSite::register { path args } {
|
|
150
150
|
set drop(overcmd) $overcmd
|
151
151
|
foreach {type ops} $types {
|
152
152
|
set drop($type,ops) {}
|
153
|
+
set masklist {}
|
153
154
|
foreach {descop lmod} $ops {
|
154
155
|
if { ![llength $descop] || [llength $descop] > 3 } {
|
155
156
|
return -code error "invalid operation description \"$descop\""
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# ----------------------------------------------------------------------------
|
2
2
|
# dynhelp.tcl
|
3
3
|
# This file is part of Unifix BWidget Toolkit
|
4
|
-
# $Id: dynhelp.tcl,v 1.
|
4
|
+
# $Id: dynhelp.tcl,v 1.20 2009/07/15 16:50:16 oehhar Exp $
|
5
5
|
# ----------------------------------------------------------------------------
|
6
6
|
# Index of commands:
|
7
7
|
# - DynamicHelp::configure
|
@@ -16,8 +16,6 @@
|
|
16
16
|
# - DynamicHelp::_init
|
17
17
|
# ----------------------------------------------------------------------------
|
18
18
|
|
19
|
-
# JDC: allow variable and ballon help at the same timees
|
20
|
-
|
21
19
|
namespace eval DynamicHelp {
|
22
20
|
Widget::define DynamicHelp dynhelp -classonly
|
23
21
|
|
@@ -42,6 +40,7 @@ namespace eval DynamicHelp {
|
|
42
40
|
|
43
41
|
variable _registered
|
44
42
|
variable _canvases
|
43
|
+
variable _texts
|
45
44
|
|
46
45
|
variable _top ".help_shell"
|
47
46
|
variable _id ""
|
@@ -59,7 +58,6 @@ namespace eval DynamicHelp {
|
|
59
58
|
bind BwHelpBalloon <Destroy> {DynamicHelp::_unset_help %W}
|
60
59
|
|
61
60
|
bind BwHelpVariable <Enter> {DynamicHelp::_motion_info %W}
|
62
|
-
bind BwHelpVariable <Motion> {DynamicHelp::_motion_info %W}
|
63
61
|
bind BwHelpVariable <Leave> {DynamicHelp::_leave_info %W}
|
64
62
|
bind BwHelpVariable <Destroy> {DynamicHelp::_unset_help %W}
|
65
63
|
|
@@ -92,6 +90,7 @@ proc DynamicHelp::include { class type } {
|
|
92
90
|
set helpoptions [list \
|
93
91
|
[list -helptext String "" 0] \
|
94
92
|
[list -helpvar String "" 0] \
|
93
|
+
[list -helpcmd String "" 0] \
|
95
94
|
[list -helptype Enum $type 0 [list balloon variable]] \
|
96
95
|
]
|
97
96
|
Widget::declare $class $helpoptions
|
@@ -133,8 +132,20 @@ proc DynamicHelp::register { path type args } {
|
|
133
132
|
variable _registered
|
134
133
|
|
135
134
|
set len [llength $args]
|
136
|
-
if {$type == "balloon" && $len > 1} {
|
137
|
-
|
135
|
+
if {$type == "balloon" && $len > 1} {
|
136
|
+
switch -exact -- [winfo class $path] {
|
137
|
+
"Canvas" { set type canvasBalloon }
|
138
|
+
"Text" -
|
139
|
+
"Ctext" { set type textBalloon }
|
140
|
+
}
|
141
|
+
}
|
142
|
+
if {$type == "variable" && $len > 2} {
|
143
|
+
switch -exact -- [winfo class $path] {
|
144
|
+
"Canvas" { set type canvasVariable }
|
145
|
+
"Text" -
|
146
|
+
"Ctext" { set type textVariable }
|
147
|
+
}
|
148
|
+
}
|
138
149
|
|
139
150
|
if { ![winfo exists $path] } {
|
140
151
|
_unset_help $path
|
@@ -167,6 +178,19 @@ proc DynamicHelp::register { path type args } {
|
|
167
178
|
_add_canvas_balloon $path $text $tagOrItem
|
168
179
|
}
|
169
180
|
|
181
|
+
textBalloon {
|
182
|
+
set tagOrItem [lindex $args 0]
|
183
|
+
set text [lindex $args 1]
|
184
|
+
if {$text == ""} {
|
185
|
+
if {[info exists _registered($path,$tagOrItem,balloon)]} {
|
186
|
+
unset _registered($path,$tagOrItem,balloon)
|
187
|
+
}
|
188
|
+
return 0
|
189
|
+
}
|
190
|
+
|
191
|
+
_add_text_balloon $path $text $tagOrItem
|
192
|
+
}
|
193
|
+
|
170
194
|
variable {
|
171
195
|
set var [lindex $args 0]
|
172
196
|
set text [lindex $args 1]
|
@@ -194,6 +218,20 @@ proc DynamicHelp::register { path type args } {
|
|
194
218
|
_add_canvas_variable $path $text $var $tagOrItem
|
195
219
|
}
|
196
220
|
|
221
|
+
textVariable {
|
222
|
+
set tagOrItem [lindex $args 0]
|
223
|
+
set var [lindex $args 1]
|
224
|
+
set text [lindex $args 2]
|
225
|
+
if {$text == "" || $var == ""} {
|
226
|
+
if {[info exists _registered($path,$tagOrItem,variable)]} {
|
227
|
+
unset _registered($path,$tagOrItem,variable)
|
228
|
+
}
|
229
|
+
return 0
|
230
|
+
}
|
231
|
+
|
232
|
+
_add_text_variable $path $text $var $tagOrItem
|
233
|
+
}
|
234
|
+
|
197
235
|
menu {
|
198
236
|
set var [lindex $args 0]
|
199
237
|
if {$var == ""} {
|
@@ -216,7 +254,7 @@ proc DynamicHelp::register { path type args } {
|
|
216
254
|
set text [lindex $args 1]
|
217
255
|
set index [lindex $args 0]
|
218
256
|
if {$text == "" || $index == ""} {
|
219
|
-
set idx [lsearch $
|
257
|
+
set idx [lsearch $_registered($path) [list $index *]]
|
220
258
|
set _registered($path) [lreplace $_registered($path) $idx $idx]
|
221
259
|
return 0
|
222
260
|
}
|
@@ -255,8 +293,20 @@ proc DynamicHelp::add { path args } {
|
|
255
293
|
switch -- $data(-type) {
|
256
294
|
"balloon" {
|
257
295
|
if {$data(-item) != ""} {
|
258
|
-
|
259
|
-
|
296
|
+
switch -exact -- [winfo class $path] {
|
297
|
+
"Canvas" {
|
298
|
+
_add_canvas_balloon $path $data(-text) $data(-item)
|
299
|
+
set item $path,$data(-item)
|
300
|
+
}
|
301
|
+
"Text" -
|
302
|
+
"Ctext" {
|
303
|
+
_add_text_balloon $path $data(-text) $data(-item)
|
304
|
+
set item $path,$data(-item)
|
305
|
+
}
|
306
|
+
default {
|
307
|
+
_add_balloon $path $data(-text)
|
308
|
+
}
|
309
|
+
}
|
260
310
|
} else {
|
261
311
|
_add_balloon $path $data(-text)
|
262
312
|
}
|
@@ -269,8 +319,20 @@ proc DynamicHelp::add { path args } {
|
|
269
319
|
"variable" {
|
270
320
|
set var $data(-variable)
|
271
321
|
if {$data(-item) != ""} {
|
272
|
-
|
273
|
-
|
322
|
+
switch -exact -- [winfo class $path] {
|
323
|
+
"Canvas" {
|
324
|
+
_add_canvas_variable $path $data(-text) $var $data(-item)
|
325
|
+
set item $path,$data(-item)
|
326
|
+
}
|
327
|
+
"Text" -
|
328
|
+
"Ctext" {
|
329
|
+
_add_text_variable $path $data(-text) $var $data(-item)
|
330
|
+
set item $path,$data(-item)
|
331
|
+
}
|
332
|
+
default {
|
333
|
+
_add_variable $path $data(-text) $var
|
334
|
+
}
|
335
|
+
}
|
274
336
|
} else {
|
275
337
|
_add_variable $path $data(-text) $var
|
276
338
|
}
|
@@ -346,6 +408,28 @@ proc DynamicHelp::_add_canvas_balloon { path text tagOrItem } {
|
|
346
408
|
$path addtag BwHelpBalloon withtag $tagOrItem
|
347
409
|
}
|
348
410
|
|
411
|
+
|
412
|
+
proc DynamicHelp::_add_text_balloon { path text tagOrItem } {
|
413
|
+
variable _texts
|
414
|
+
variable _registered
|
415
|
+
|
416
|
+
set _registered($path,$tagOrItem,balloon) $text
|
417
|
+
|
418
|
+
if { ![info exists _texts($path,$tagOrItem,balloon)] } {
|
419
|
+
$path tag bind $tagOrItem <Enter> \
|
420
|
+
[list DynamicHelp::_motion_balloon enter $path %X %Y 0 1]
|
421
|
+
$path tag bind $tagOrItem <Motion> \
|
422
|
+
[list DynamicHelp::_motion_balloon motion $path %X %Y 0 1]
|
423
|
+
$path tag bind $tagOrItem <Leave> \
|
424
|
+
[list DynamicHelp::_motion_balloon leave $path %X %Y 0 1]
|
425
|
+
$path tag bind $tagOrItem <Button> \
|
426
|
+
[list DynamicHelp::_motion_balloon button $path %X %Y 0 1]
|
427
|
+
|
428
|
+
set _texts($path,$tagOrItem,balloon) 1
|
429
|
+
}
|
430
|
+
}
|
431
|
+
|
432
|
+
|
349
433
|
proc DynamicHelp::_add_variable { path text varName } {
|
350
434
|
variable _registered
|
351
435
|
set _registered($path,variable) [list $varName $text]
|
@@ -378,6 +462,26 @@ proc DynamicHelp::_add_canvas_variable { path text varName tagOrItem } {
|
|
378
462
|
}
|
379
463
|
|
380
464
|
|
465
|
+
proc DynamicHelp::_add_text_variable { path text varName tagOrItem } {
|
466
|
+
variable _texts
|
467
|
+
variable _registered
|
468
|
+
|
469
|
+
set _registered($path,$tagOrItem,variable) [list $varName $text]
|
470
|
+
|
471
|
+
if {![info exists _texts($path,$tagOrItem,variable)]} {
|
472
|
+
|
473
|
+
$path tag bind $tagOrItem <Enter> \
|
474
|
+
[list DynamicHelp::_motion_info $path 0 1]
|
475
|
+
$path tag bind $tagOrItem <Motion> \
|
476
|
+
[list DynamicHelp::_motion_info $path 0 1]
|
477
|
+
$path tag bind $tagOrItem <Leave> \
|
478
|
+
[list DynamicHelp::_leave_info $path 0 1]
|
479
|
+
|
480
|
+
set _texts($path,$tagOrItem,variable) 1
|
481
|
+
}
|
482
|
+
}
|
483
|
+
|
484
|
+
|
381
485
|
proc DynamicHelp::_add_menu { path varName } {
|
382
486
|
variable _registered
|
383
487
|
|
@@ -406,14 +510,18 @@ proc DynamicHelp::_add_menuentry { path text index } {
|
|
406
510
|
# ----------------------------------------------------------------------------
|
407
511
|
# Command DynamicHelp::_motion_balloon
|
408
512
|
# ----------------------------------------------------------------------------
|
409
|
-
proc DynamicHelp::_motion_balloon { type path x y {isCanvasItem 0} } {
|
513
|
+
proc DynamicHelp::_motion_balloon { type path x y {isCanvasItem 0} {isTextItem 0} } {
|
410
514
|
variable _top
|
411
515
|
variable _id
|
412
516
|
variable _delay
|
413
517
|
variable _current_balloon
|
414
518
|
|
415
519
|
set w $path
|
416
|
-
if {$isCanvasItem} {
|
520
|
+
if {$isCanvasItem} {
|
521
|
+
set path [_get_canvas_path $path balloon]
|
522
|
+
} elseif {$isTextItem} {
|
523
|
+
set path [_get_text_path $path balloon]
|
524
|
+
}
|
417
525
|
|
418
526
|
if { $_current_balloon != $path && $type == "enter" } {
|
419
527
|
set _current_balloon $path
|
@@ -430,6 +538,8 @@ proc DynamicHelp::_motion_balloon { type path x y {isCanvasItem 0} } {
|
|
430
538
|
set cmd [list DynamicHelp::_show_help $path $w $x $y]
|
431
539
|
set _id [after $_delay $cmd]
|
432
540
|
}
|
541
|
+
# Bug 923942 proposes to destroy on motion to remove dynhelp on motion.
|
542
|
+
# this might be an optional behaviour in future versions
|
433
543
|
} else {
|
434
544
|
destroy $_top
|
435
545
|
set _current_balloon ""
|
@@ -441,12 +551,16 @@ proc DynamicHelp::_motion_balloon { type path x y {isCanvasItem 0} } {
|
|
441
551
|
# ----------------------------------------------------------------------------
|
442
552
|
# Command DynamicHelp::_motion_info
|
443
553
|
# ----------------------------------------------------------------------------
|
444
|
-
proc DynamicHelp::_motion_info { path {isCanvasItem 0} } {
|
554
|
+
proc DynamicHelp::_motion_info { path {isCanvasItem 0} {isTextItem 0} } {
|
445
555
|
variable _saved
|
446
556
|
variable _registered
|
447
557
|
variable _current_variable
|
448
558
|
|
449
|
-
if {$isCanvasItem} {
|
559
|
+
if {$isCanvasItem} {
|
560
|
+
set path [_get_canvas_path $path variable]
|
561
|
+
} elseif {$isTextItem} {
|
562
|
+
set path [_get_text_path $path variable]
|
563
|
+
}
|
450
564
|
|
451
565
|
if { $_current_variable != $path
|
452
566
|
&& [info exists _registered($path,variable)] } {
|
@@ -455,7 +569,7 @@ proc DynamicHelp::_motion_info { path {isCanvasItem 0} } {
|
|
455
569
|
if {![info exists _saved]} { set _saved [GlobalVar::getvar $varName] }
|
456
570
|
set string [lindex $_registered($path,variable) 1]
|
457
571
|
if {[info exists _registered($path,command)]} {
|
458
|
-
set string [
|
572
|
+
set string [uplevel #0 $_registered($path,command)]
|
459
573
|
}
|
460
574
|
GlobalVar::setvar $varName $string
|
461
575
|
set _current_variable $path
|
@@ -465,39 +579,47 @@ proc DynamicHelp::_motion_info { path {isCanvasItem 0} } {
|
|
465
579
|
|
466
580
|
# ----------------------------------------------------------------------------
|
467
581
|
# Command DynamicHelp::_leave_info
|
582
|
+
# Leave event may be called twice (in case of pointer grab)
|
468
583
|
# ----------------------------------------------------------------------------
|
469
|
-
proc DynamicHelp::_leave_info { path {isCanvasItem 0} } {
|
584
|
+
proc DynamicHelp::_leave_info { path {isCanvasItem 0} {isTextItem 0} } {
|
470
585
|
variable _saved
|
471
586
|
variable _registered
|
472
587
|
variable _current_variable
|
473
588
|
|
474
|
-
if {$isCanvasItem} {
|
589
|
+
if {$isCanvasItem} {
|
590
|
+
set path [_get_canvas_path $path variable]
|
591
|
+
} elseif {$isTextItem} {
|
592
|
+
set path [_get_text_path $path variable]
|
593
|
+
}
|
475
594
|
|
476
|
-
if { [
|
595
|
+
if { [string equal $_current_variable $path] \
|
596
|
+
&& [info exists _registered($path,variable)] } {
|
477
597
|
set varName [lindex $_registered($path,variable) 0]
|
478
598
|
GlobalVar::setvar $varName $_saved
|
599
|
+
unset _saved
|
600
|
+
set _current_variable ""
|
479
601
|
}
|
480
|
-
unset _saved
|
481
|
-
set _current_variable ""
|
482
602
|
}
|
483
603
|
|
484
604
|
|
485
605
|
# ----------------------------------------------------------------------------
|
486
606
|
# Command DynamicHelp::_menu_info
|
487
|
-
# Version of R1v1 restored, due to lack of [winfo ismapped] and <Unmap>
|
488
|
-
# under windows for menu.
|
489
607
|
# ----------------------------------------------------------------------------
|
608
|
+
# We have to check for unmap event on Unix. On Windows, unmap
|
609
|
+
# is not delivered, but <<MenuSelect>> is triggered appropriately when menu
|
610
|
+
# is unmapped.
|
490
611
|
proc DynamicHelp::_menu_info { event path } {
|
491
612
|
variable _registered
|
492
613
|
|
493
614
|
if { [info exists _registered($path)] } {
|
494
615
|
set index [$path index active]
|
495
616
|
set varName [lindex $_registered($path) 0]
|
496
|
-
if { ![string equal $
|
617
|
+
if { ![string equal $event "unmap"] &&
|
618
|
+
![string equal $index "none"] &&
|
497
619
|
[set idx [lsearch $_registered($path) [list $index *]]] != -1 } {
|
498
620
|
set string [lindex [lindex $_registered($path) $idx] 1]
|
499
621
|
if {[info exists _registered($path,$index,command)]} {
|
500
|
-
set string [
|
622
|
+
set string [uplevel #0 $_registered($path,$index,command)]
|
501
623
|
}
|
502
624
|
GlobalVar::setvar $varName $string
|
503
625
|
} else {
|
@@ -529,7 +651,7 @@ proc DynamicHelp::_show_help { path w x y } {
|
|
529
651
|
}
|
530
652
|
|
531
653
|
if {[info exists _registered($path,command)]} {
|
532
|
-
set string [
|
654
|
+
set string [uplevel #0 $_registered($path,command)]
|
533
655
|
}
|
534
656
|
|
535
657
|
if {$string == ""} { return }
|
@@ -568,14 +690,27 @@ proc DynamicHelp::_show_help { path w x y } {
|
|
568
690
|
set scrheight [winfo vrootheight .]
|
569
691
|
set width [winfo reqwidth $_top]
|
570
692
|
set height [winfo reqheight $_top]
|
571
|
-
incr y 12
|
572
|
-
incr x 8
|
573
693
|
|
574
|
-
|
575
|
-
|
694
|
+
# On windows multi screen configurations, coordinates may get outside
|
695
|
+
# the main screen. We suppose that all screens have the same size
|
696
|
+
# because it is not possible to query the size of the other screens.
|
697
|
+
|
698
|
+
set screenx [expr {$x % $scrwidth} ]
|
699
|
+
set screeny [expr {$y % $scrheight} ]
|
700
|
+
|
701
|
+
# Increment the required size by the deplacement from the passed point
|
702
|
+
incr width 8
|
703
|
+
incr height 12
|
704
|
+
|
705
|
+
if { $screenx+$width > $scrwidth } {
|
706
|
+
set x [expr {$x + ($scrwidth - $screenx) - ($width - 8)}]
|
707
|
+
} else {
|
708
|
+
incr x 8
|
576
709
|
}
|
577
|
-
if { $
|
578
|
-
set y [expr {$y -
|
710
|
+
if { $screeny+$height > $scrheight } {
|
711
|
+
set y [expr {$y - $height}]
|
712
|
+
} else {
|
713
|
+
incr y 12
|
579
714
|
}
|
580
715
|
|
581
716
|
wm geometry $_top "+$x+$y"
|
@@ -592,8 +727,10 @@ proc DynamicHelp::_show_help { path w x y } {
|
|
592
727
|
# ----------------------------------------------------------------------------
|
593
728
|
proc DynamicHelp::_unset_help { path } {
|
594
729
|
variable _canvases
|
730
|
+
variable _texts
|
595
731
|
variable _registered
|
596
732
|
variable _top
|
733
|
+
variable _current_balloon
|
597
734
|
|
598
735
|
if {[info exists _registered($path)]} { unset _registered($path) }
|
599
736
|
if {[winfo exists $path]} {
|
@@ -601,8 +738,9 @@ proc DynamicHelp::_unset_help { path } {
|
|
601
738
|
if {[info exists _registered($cpath)]} { unset _registered($cpath) }
|
602
739
|
}
|
603
740
|
array unset _canvases $path,*
|
741
|
+
array unset _texts $path,*
|
604
742
|
array unset _registered $path,*
|
605
|
-
destroy $_top
|
743
|
+
if {[string equal $path $_current_balloon]} {destroy $_top}
|
606
744
|
}
|
607
745
|
|
608
746
|
# ----------------------------------------------------------------------------
|
@@ -622,4 +760,27 @@ proc DynamicHelp::_get_canvas_path { path type {item ""} } {
|
|
622
760
|
if {![info exists _registered($check,$type)]} { continue }
|
623
761
|
return $check
|
624
762
|
}
|
763
|
+
|
764
|
+
return $path
|
765
|
+
}
|
766
|
+
|
767
|
+
# ----------------------------------------------------------------------------
|
768
|
+
# Command DynamicHelp::_get_text_path
|
769
|
+
# ----------------------------------------------------------------------------
|
770
|
+
proc DynamicHelp::_get_text_path { path type {item ""} } {
|
771
|
+
variable _registered
|
772
|
+
|
773
|
+
if {$item == ""} { set item [$path tag names current] }
|
774
|
+
|
775
|
+
## Check the tags related to this item for the one that
|
776
|
+
## represents our text. If we have text specific to this
|
777
|
+
## item or for 'all' items, they override any other tags.
|
778
|
+
eval [list lappend tags $item all] $item
|
779
|
+
foreach tag $tags {
|
780
|
+
set check $path,$tag
|
781
|
+
if {![info exists _registered($check,$type)]} { continue }
|
782
|
+
return $check
|
783
|
+
}
|
784
|
+
|
785
|
+
return $path
|
625
786
|
}
|