arcadia 0.7.0 → 0.8.0
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.
- 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
|
}
|