arcadia 0.11.1.4 → 0.12.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README +20 -5
- data/conf/LC/en-UK.LANG +270 -0
- data/conf/arcadia.conf +25 -42
- data/conf/arcadia.init.rb +1 -1
- data/conf/arcadia.res.rb +40 -1
- data/ext/ae-breakpoints/ae-breakpoints.rb +4 -25
- data/ext/ae-dir-projects/ae-dir-projects.conf +1 -10
- data/ext/ae-dir-projects/ae-dir-projects.rb +113 -41
- data/ext/ae-editor/ae-editor.conf +8 -4
- data/ext/ae-editor/ae-editor.rb +425 -218
- data/ext/ae-editor/langs/conf.lang +1 -1
- data/ext/ae-file-history/ae-file-history.conf +1 -8
- data/ext/ae-file-history/ae-file-history.rb +156 -40
- data/ext/ae-output/ae-output.rb +79 -16
- data/ext/ae-ruby-debug/ae-ruby-debug.rb +43 -49
- data/ext/ae-search-in-files/ae-search-in-files.conf +0 -2
- data/ext/ae-search-in-files/ae-search-in-files.rb +8 -14
- data/ext/ae-search-in-files/ext/ack-in-files/ack-in-files.rb +6 -5
- data/ext/ae-shell/ae-shell.conf +1 -1
- data/ext/ae-shell/ae-shell.rb +112 -44
- data/ext/ae-subprocess-inspector/ae-subprocess-inspector.rb +5 -4
- data/ext/ae-subprocess-inspector/process.res +0 -0
- data/ext/ae-term/ae-term.conf +15 -0
- data/ext/ae-term/ae-term.rb +165 -0
- data/ext/test-shutdown-after-startup/test-shutdown-after-startup.conf +2 -2
- data/lib/a-commons.rb +128 -23
- data/lib/a-contracts.rb +10 -0
- data/lib/a-core.rb +1186 -1024
- data/lib/a-tkcommons.rb +44 -28
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/ArrowButton.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/BWidget.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/Button.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/ButtonBox.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/ComboBox.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/Dialog.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/DragSite.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/DropSite.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/DynamicHelp.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/Entry.html +25 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/Label.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/LabelEntry.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/LabelFrame.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/ListBox.html +2 -2
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/MainFrame.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/MessageDlg.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/NoteBook.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/PagesManager.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/PanedWindow.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/PanelFrame.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/PasswdDlg.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/ProgressBar.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/ProgressDlg.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/ScrollView.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/ScrollableFrame.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/ScrolledWindow.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/SelectColor.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/SelectFont.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/Separator.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/SpinBox.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/StatusBar.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/TitleFrame.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/Tree.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/Widget.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/contents.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/index.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/navtree.html +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/BWman/options.htm +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/CHANGES.txt +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/ChangeLog +34 -1
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/LICENSE.txt +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/README.txt +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/arrow.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/bitmap.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/button.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/buttonbox.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/color.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/combobox.tcl +16 -6
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/demo/basic.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/demo/bwidget.xbm +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/demo/demo.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/demo/dnd.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/demo/manager.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/demo/select.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/demo/tmpldlg.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/demo/tree.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/demo/x1.xbm +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/dialog.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/dragsite.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/dropsite.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/dynhelp.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/entry.tcl +57 -30
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/font.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/bold.gif +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/copy.gif +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/cut.gif +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/dragfile.gif +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/dragicon.gif +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/error.gif +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/file.gif +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/folder.gif +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/hourglass.gif +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/info.gif +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/italic.gif +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/minus.xbm +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/new.gif +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/opcopy.xbm +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/open.gif +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/openfold.gif +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/oplink.xbm +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/opmove.xbm +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/overstrike.gif +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/palette.gif +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/passwd.gif +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/paste.gif +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/plus.xbm +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/print.gif +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/question.gif +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/redo.gif +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/save.gif +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/target.xbm +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/underline.gif +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/undo.gif +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/images/warning.gif +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/init.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/label.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/labelentry.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/labelframe.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/lang/da.rc +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/lang/de.rc +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/lang/en.rc +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/lang/es.rc +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/lang/fr.rc +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/lang/hu.rc +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/lang/nl.rc +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/lang/no.rc +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/lang/pl.rc +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/listbox.tcl +6 -3
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/mainframe.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/messagedlg.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/notebook.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/pagesmgr.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/panedw.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/panelframe.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/passwddlg.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/pkgIndex.tcl +2 -2
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/progressbar.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/progressdlg.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/scrollframe.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/scrollview.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/scrollw.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/separator.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/spinbox.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/statusbar.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/tests/entry.test +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/titleframe.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/tree.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/utils.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/widget.tcl +2 -2
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/wizard.tcl +0 -0
- data/tcl/{bwidget-1.9.5 → bwidget-1.9.6}/xpm2image.tcl +0 -0
- data/tcl/fsdialog/fsdialog.tcl +59 -25
- metadata +201 -218
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
|
File without changes
|
File without changes
|
File without changes
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# ----------------------------------------------------------------------------
|
2
2
|
# listbox.tcl
|
3
3
|
# This file is part of Unifix BWidget Toolkit
|
4
|
-
# $Id: listbox.tcl,v 1.29.2.
|
4
|
+
# $Id: listbox.tcl,v 1.29.2.7 2012/04/12 12:46:47 oehhar Exp $
|
5
5
|
# ----------------------------------------------------------------------------
|
6
6
|
# Index of commands:
|
7
7
|
# - ListBox::create
|
@@ -568,6 +568,7 @@ proc ListBox::selection { path cmd args } {
|
|
568
568
|
variable $path
|
569
569
|
upvar 0 $path data
|
570
570
|
|
571
|
+
set oldsel $data(selitems);
|
571
572
|
switch -- $cmd {
|
572
573
|
set {
|
573
574
|
set data(selitems) {}
|
@@ -608,8 +609,10 @@ proc ListBox::selection { path cmd args } {
|
|
608
609
|
return
|
609
610
|
}
|
610
611
|
}
|
611
|
-
|
612
|
-
|
612
|
+
if {[string compare $oldsel $data(selitems)]} {
|
613
|
+
_redraw_idle $path 1
|
614
|
+
}
|
615
|
+
return;
|
613
616
|
}
|
614
617
|
|
615
618
|
|
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
|
if {[catch {package require Tcl}]} return
|
2
|
-
package ifneeded BWidget 1.9.
|
2
|
+
package ifneeded BWidget 1.9.6 "\
|
3
3
|
package require Tk 8.1.1;\
|
4
|
-
[list tclPkgSetup $dir BWidget 1.9.
|
4
|
+
[list tclPkgSetup $dir BWidget 1.9.6 {
|
5
5
|
{arrow.tcl source {ArrowButton ArrowButton::create ArrowButton::use}}
|
6
6
|
{labelframe.tcl source {LabelFrame LabelFrame::create LabelFrame::use}}
|
7
7
|
{labelentry.tcl source {LabelEntry LabelEntry::create LabelEntry::use}}
|
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
|
File without changes
|
File without changes
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# ----------------------------------------------------------------------------
|
2
2
|
# widget.tcl
|
3
3
|
# This file is part of Unifix BWidget Toolkit
|
4
|
-
# $Id: widget.tcl,v 1.35
|
4
|
+
# $Id: widget.tcl,v 1.35.2.1 2011/11/14 14:33:29 oehhar Exp $
|
5
5
|
# ----------------------------------------------------------------------------
|
6
6
|
# Index of commands:
|
7
7
|
# - Widget::tkinclude
|
@@ -1435,7 +1435,7 @@ proc Widget::focusOK { w } {
|
|
1435
1435
|
} elseif {$value == 1} {
|
1436
1436
|
return [winfo viewable $w]
|
1437
1437
|
} else {
|
1438
|
-
set value [uplevel \#0 $value $w]
|
1438
|
+
set value [uplevel \#0 [list $value $w]]
|
1439
1439
|
if {$value != ""} {
|
1440
1440
|
return $value
|
1441
1441
|
}
|
File without changes
|
File without changes
|
data/tcl/fsdialog/fsdialog.tcl
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# Copyright (C) Schelte Bron. Freely redistributable.
|
2
|
-
# Version 1.
|
2
|
+
# Version 1.15 - 19 Aug 2012
|
3
3
|
|
4
4
|
# File names containing <TAB> will mess up the layout. Tab char = \u2409
|
5
5
|
|
@@ -348,11 +348,13 @@ proc ::ttk::dialog::file::ChangeDir {w dir} {
|
|
348
348
|
|
349
349
|
set data(history) [lrange $data(history) 0 $data(histpos)]
|
350
350
|
set cwd [lindex $data(history) $data(histpos)]
|
351
|
-
set data(selectPath) [file normalize [
|
351
|
+
set data(selectPath) [file normalize [JoinFile $cwd $dir]]
|
352
352
|
lappend data(history) $data(selectPath)
|
353
353
|
if {[incr data(histpos)]} {
|
354
354
|
$data(prevBtn) state !disabled
|
355
|
-
|
355
|
+
if {$data(type) ne "save"} {
|
356
|
+
set data(selectFile) ""
|
357
|
+
}
|
356
358
|
}
|
357
359
|
$data(nextBtn) state disabled
|
358
360
|
|
@@ -440,7 +442,7 @@ proc ::ttk::dialog::file::Update {w} {
|
|
440
442
|
foreach f [eval [linsert $filter 0 glob -nocomplain -tails \
|
441
443
|
-directory $cwd -type {f l c b p}]] {
|
442
444
|
# Links can still be directories. Skip those.
|
443
|
-
if {[file isdirectory [
|
445
|
+
if {[file isdirectory [JoinFile $cwd $f]]} continue
|
444
446
|
lappend flist [list $f file]
|
445
447
|
}
|
446
448
|
|
@@ -520,7 +522,7 @@ proc ::ttk::dialog::file::FileList1 {w} {
|
|
520
522
|
foreach f $data(list) {
|
521
523
|
lassign $f name type size date mode uid gid
|
522
524
|
if {![info exists users($uid)] || ![info exists groups($gid)]} {
|
523
|
-
set fname [
|
525
|
+
set fname [JoinFile $cwd $name]
|
524
526
|
# May fail for dead links
|
525
527
|
if {![catch {array set attr [file attributes $fname]}]} {
|
526
528
|
if {[info exists attr(-owner)]} {
|
@@ -670,10 +672,10 @@ proc ::ttk::dialog::file::sort {w list} {
|
|
670
672
|
foreach f $list {
|
671
673
|
set file [lindex $f 0]
|
672
674
|
# Use lstat in case the destination doesn't exists
|
673
|
-
file lstat [
|
675
|
+
file lstat [JoinFile $cwd $file] stat
|
674
676
|
if {$stat(type) eq "link"} {
|
675
677
|
# This may fail if the link points to nothing
|
676
|
-
if {![catch {file stat [
|
678
|
+
if {![catch {file stat [JoinFile $cwd $file] dest}]} {
|
677
679
|
array set stat [array get dest]
|
678
680
|
if {$stat(type) eq "file"} {
|
679
681
|
set stat(type) link
|
@@ -809,6 +811,17 @@ proc ::ttk::dialog::file::maxfont {family max} {
|
|
809
811
|
return [list $family $size]
|
810
812
|
}
|
811
813
|
|
814
|
+
# Join a file name to a path name. The "file join" command will break
|
815
|
+
# if the filename begins with ~
|
816
|
+
#
|
817
|
+
proc ::ttk::dialog::file::JoinFile {path file} {
|
818
|
+
if {[string match {~*} $file] && [file exists $path/$file]} {
|
819
|
+
return [file join $path ./$file]
|
820
|
+
} else {
|
821
|
+
return [file join $path $file]
|
822
|
+
}
|
823
|
+
}
|
824
|
+
|
812
825
|
proc ::ttk::dialog::file::UpDirCmd {w} {
|
813
826
|
set dataName [winfo name $w]
|
814
827
|
upvar ::ttk::dialog::file::$dataName data
|
@@ -851,14 +864,18 @@ proc ::ttk::dialog::file::HomeDirCmd {w} {
|
|
851
864
|
proc ::ttk::dialog::file::NewDirCmd {win} {
|
852
865
|
set dataName [winfo name $win]
|
853
866
|
upvar ::ttk::dialog::file::$dataName data
|
854
|
-
|
855
|
-
|
856
|
-
|
867
|
+
|
868
|
+
if {[info exists data(history)]} {
|
869
|
+
set dir [lindex $data(history) $data(histpos)]
|
870
|
+
} else {
|
871
|
+
set dir $data(selectPath)
|
872
|
+
}
|
873
|
+
|
857
874
|
toplevel $win.new
|
858
875
|
wm title $win.new [mc "New Folder"]
|
859
876
|
set w [ttk::frame $win.new.f]
|
860
877
|
pack $w -expand 1 -fill both
|
861
|
-
|
878
|
+
|
862
879
|
ttk::label $w.prompt -anchor w -justify left \
|
863
880
|
-text [mc "Create new folder in"]:\n$dir
|
864
881
|
ttk::entry $w.box -width 36 -validate all \
|
@@ -900,15 +917,22 @@ proc ::ttk::dialog::file::NewDirVCmd {w str} {
|
|
900
917
|
|
901
918
|
proc ::ttk::dialog::file::NewDirExit {w {save 0}} {
|
902
919
|
upvar ::ttk::dialog::file::[winfo name $w] data
|
903
|
-
|
920
|
+
|
904
921
|
if {$save} {
|
905
|
-
|
922
|
+
if {[info exists data(history)]} {
|
923
|
+
set dir [lindex $data(history) $data(histpos)]
|
924
|
+
} else {
|
925
|
+
set dir $data(selectPath)
|
926
|
+
}
|
927
|
+
|
906
928
|
set newdir [file join $dir [$w.new.f.box get]]
|
907
929
|
if {[catch {file mkdir $newdir} err]} {
|
908
930
|
tk_messageBox -type ok -parent $w.new -icon error -message "$err"
|
909
931
|
return
|
910
|
-
}
|
932
|
+
} elseif {[winfo class $w] eq "TkFDialog"} {
|
911
933
|
ChangeDir $w $newdir
|
934
|
+
} else {
|
935
|
+
treeUpdate $w $newdir
|
912
936
|
}
|
913
937
|
}
|
914
938
|
destroy $w.new
|
@@ -936,10 +960,10 @@ proc ::ttk::dialog::file::Done {w} {
|
|
936
960
|
if {[file extension $file] eq ""} {
|
937
961
|
append file $data(-defaultextension)
|
938
962
|
}
|
939
|
-
lappend path [
|
963
|
+
lappend path [JoinFile $cwd $file]
|
940
964
|
}
|
941
965
|
} else {
|
942
|
-
set file [
|
966
|
+
set file [JoinFile $cwd $data(selectFile)]
|
943
967
|
if {[file extension $file] eq ""} {
|
944
968
|
append file $data(-defaultextension)
|
945
969
|
}
|
@@ -1257,7 +1281,10 @@ proc ::ttk::dialog::file::tkFDialog {type args} {
|
|
1257
1281
|
wm title $w $data(-title)
|
1258
1282
|
|
1259
1283
|
::tk::SetFocusGrab $w $data(location)
|
1260
|
-
|
1284
|
+
|
1285
|
+
# Make sure the application doesn't hang if the toplevel is destroyed
|
1286
|
+
bind $w <Destroy> {set ::ttk::dialog::file::selectFilePath -1}
|
1287
|
+
|
1261
1288
|
set data(active) $w
|
1262
1289
|
tkwait variable ::ttk::dialog::file::selectFilePath
|
1263
1290
|
unset data(active)
|
@@ -1329,7 +1356,7 @@ proc ::ttk::dialog::file::Config {dataName type argList} {
|
|
1329
1356
|
set dir [file normalize [file join [pwd] $data(-initialdir)]]
|
1330
1357
|
set path $dir
|
1331
1358
|
while {[file exists $path] && [file type $path] eq "link"} {
|
1332
|
-
set path [file normalize [
|
1359
|
+
set path [file normalize [JoinFile \
|
1333
1360
|
[file dirname $path] [file link $path]]]
|
1334
1361
|
}
|
1335
1362
|
if {[file isdirectory $path]} {
|
@@ -1403,12 +1430,14 @@ proc ::ttk::dialog::file::treeCreate {w} {
|
|
1403
1430
|
pack $f2.f -fill both -expand 1 -padx 8 -pady 4
|
1404
1431
|
|
1405
1432
|
set f3 [ttk::frame $w.f3]
|
1433
|
+
ttk::button $f3.new -text [mc "New Folder"]... \
|
1434
|
+
-command [list ::ttk::dialog::file::NewDirCmd $w]
|
1406
1435
|
ttk::button $f3.ok -text [mc OK] -default active \
|
1407
1436
|
-command [list ::ttk::dialog::file::TreeDone $w]
|
1408
1437
|
ttk::button $f3.cancel -text [mc Cancel] \
|
1409
1438
|
-command [list ::ttk::dialog::file::Cancel $w]
|
1410
|
-
grid x $f3.ok $f3.cancel -sticky ew -padx {4 8} -pady 8
|
1411
|
-
grid columnconfigure $f3 {
|
1439
|
+
grid x $f3.new $f3.ok $f3.cancel -sticky ew -padx {4 8} -pady 8
|
1440
|
+
# grid columnconfigure $f3 {2 3} -uniform buttons -minsize 80
|
1412
1441
|
grid columnconfigure $f3 0 -weight 1
|
1413
1442
|
|
1414
1443
|
pack $f1 -side top -fill x
|
@@ -1439,8 +1468,10 @@ proc ::ttk::dialog::file::treeUpdate {w dir} {
|
|
1439
1468
|
$txt mark set subdir end
|
1440
1469
|
|
1441
1470
|
foreach d $list {
|
1471
|
+
# File split may produce terms starting with "./", strip those
|
1472
|
+
if {[string match {./*} $d]} {set d [string range $d 2 end]}
|
1442
1473
|
treeOpen $w $parent subdir $d
|
1443
|
-
set parent [
|
1474
|
+
set parent [JoinFile $parent $d]
|
1444
1475
|
}
|
1445
1476
|
$txt yview subdir-5l
|
1446
1477
|
TreeSelect $w subdir
|
@@ -1492,7 +1523,7 @@ proc ::ttk::dialog::file::treeOpen {w path {index insert} {subdir .}} {
|
|
1492
1523
|
$txt insert insert "\n"
|
1493
1524
|
# Insert the line with the appropriate tags
|
1494
1525
|
$txt insert insert $tabs [list $path]
|
1495
|
-
file stat [
|
1526
|
+
file stat [JoinFile $path $d] stat
|
1496
1527
|
if {$stat(nlink) != 2} {
|
1497
1528
|
set img [$txt image create insert -name diropen \
|
1498
1529
|
-image ::ttk::dialog::image::diropen -padx 3]
|
@@ -1589,7 +1620,7 @@ proc ::ttk::dialog::file::TreeSelect {w index} {
|
|
1589
1620
|
$data(text) tag add sel $index1-1c $index2+1c
|
1590
1621
|
set path [lsearch -inline [$data(text) tag names $index1] /*]
|
1591
1622
|
set dir [$data(text) get $index1+1c $index2]
|
1592
|
-
set data(selectPath) [
|
1623
|
+
set data(selectPath) [JoinFile $path $dir]
|
1593
1624
|
}
|
1594
1625
|
}
|
1595
1626
|
|
@@ -1609,10 +1640,10 @@ proc ::ttk::dialog::file::TreeRelease1 {w} {
|
|
1609
1640
|
$txt mark set selmark sel.first
|
1610
1641
|
switch -glob $name {
|
1611
1642
|
*::diropen {
|
1612
|
-
treeOpen $w [
|
1643
|
+
treeOpen $w [JoinFile $path $dir] $index
|
1613
1644
|
}
|
1614
1645
|
*::dirclose {
|
1615
|
-
treeClose $w [
|
1646
|
+
treeClose $w [JoinFile $path $dir]
|
1616
1647
|
}
|
1617
1648
|
}
|
1618
1649
|
$txt tag remove sel 1.0 end
|
@@ -1672,6 +1703,9 @@ proc ttk::chooseDirectory {args} {
|
|
1672
1703
|
|
1673
1704
|
::ttk::dialog::file::treeUpdate $w $data(-initialdir)
|
1674
1705
|
|
1706
|
+
# Make sure the application doesn't hang if the toplevel is destroyed
|
1707
|
+
bind $w <Destroy> {set ::ttk::dialog::file::selectFilePath -1}
|
1708
|
+
|
1675
1709
|
tkwait variable ::ttk::dialog::file::selectFilePath
|
1676
1710
|
|
1677
1711
|
::tk::RestoreFocusGrab $w $data(text) withdraw
|