arcadia 0.13.0 → 0.13.1
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.
- checksums.yaml +7 -0
- data/README +19 -15
- data/bin/arc +0 -0
- data/conf/LC/en-UK.LANG +1 -1
- data/conf/LC/ru-RU.LANG +272 -0
- data/conf/theme-dark.conf +3 -3
- data/ext/ae-dir-projects/ae-dir-projects.rb +5 -5
- data/ext/ae-editor/ae-editor.rb +302 -178
- data/ext/ae-subprocess-inspector/ae-subprocess-inspector.rb +2 -2
- data/ext/ae-term/ae-term.rb +11 -2
- data/lib/a-commons.rb +49 -19
- data/lib/a-contracts.rb +13 -0
- data/lib/a-core.rb +139 -36
- data/lib/a-tkcommons.rb +23 -8
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/ArrowButton.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/BWidget.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/Button.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/ButtonBox.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/ComboBox.html +8 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/Dialog.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/DragSite.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/DropSite.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/DynamicHelp.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/Entry.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/Label.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/LabelEntry.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/LabelFrame.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/ListBox.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/MainFrame.html +28 -23
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/MessageDlg.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/NoteBook.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/PagesManager.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/PanedWindow.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/PanelFrame.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/PasswdDlg.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/ProgressBar.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/ProgressDlg.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/ScrollView.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/ScrollableFrame.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/ScrolledWindow.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/SelectColor.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/SelectFont.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/Separator.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/SpinBox.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/StatusBar.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/TitleFrame.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/Tree.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/Widget.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/contents.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/index.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/navtree.html +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/BWman/options.htm +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/CHANGES.txt +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/ChangeLog +59 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/LICENSE.txt +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/README.txt +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/arrow.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/bitmap.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/button.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/buttonbox.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/color.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/combobox.tcl +8 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/demo/basic.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/demo/bwidget.xbm +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/demo/demo.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/demo/dnd.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/demo/manager.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/demo/select.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/demo/tmpldlg.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/demo/tree.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/demo/x1.xbm +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/dialog.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/dragsite.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/dropsite.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/dynhelp.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/entry.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/font.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/bold.gif +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/copy.gif +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/cut.gif +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/dragfile.gif +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/dragicon.gif +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/error.gif +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/file.gif +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/folder.gif +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/hourglass.gif +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/info.gif +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/italic.gif +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/minus.xbm +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/new.gif +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/opcopy.xbm +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/open.gif +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/openfold.gif +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/oplink.xbm +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/opmove.xbm +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/overstrike.gif +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/palette.gif +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/passwd.gif +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/paste.gif +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/plus.xbm +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/print.gif +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/question.gif +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/redo.gif +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/save.gif +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/target.xbm +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/underline.gif +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/undo.gif +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/images/warning.gif +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/init.tcl +9 -8
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/label.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/labelentry.tcl +4 -1
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/labelframe.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/lang/da.rc +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/lang/de.rc +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/lang/en.rc +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/lang/es.rc +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/lang/fr.rc +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/lang/hu.rc +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/lang/nl.rc +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/lang/no.rc +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/lang/pl.rc +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/listbox.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/mainframe.tcl +110 -22
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/messagedlg.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/notebook.tcl +13 -3
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/pagesmgr.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/panedw.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/panelframe.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/passwddlg.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/pkgIndex.tcl +2 -3
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/progressbar.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/progressdlg.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/scrollframe.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/scrollview.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/scrollw.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/separator.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/spinbox.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/statusbar.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/tests/entry.test +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/titleframe.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/tree.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/utils.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/widget.tcl +15 -2
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/wizard.tcl +0 -0
- data/tcl/{bwidget-1.9.6 → bwidget-1.9.7}/xpm2image.tcl +90 -28
- metadata +146 -196
- data/tcl/fsdialog/de.msg +0 -30
- data/tcl/fsdialog/en.msg +0 -31
- data/tcl/fsdialog/fsdialog.tcl +0 -1783
- data/tcl/fsdialog/fsdlg-gif.tcl +0 -259
- data/tcl/fsdialog/fsdlg-png.tcl +0 -265
- data/tcl/fsdialog/sv.msg +0 -32
- data/tcl/fsdialog/tclIndex +0 -6
- data/tcl/ptwidgets-1.1.0/COPYRIGHT +0 -10
- data/tcl/ptwidgets-1.1.0/ChangeLog +0 -194
- data/tcl/ptwidgets-1.1.0/README +0 -50
- data/tcl/ptwidgets-1.1.0/common/stacktrace.tcl +0 -29
- data/tcl/ptwidgets-1.1.0/common/tokenframe.tcl +0 -200
- data/tcl/ptwidgets-1.1.0/doc/img/toggleswitch_off.png +0 -0
- data/tcl/ptwidgets-1.1.0/doc/img/toggleswitch_on.png +0 -0
- data/tcl/ptwidgets-1.1.0/doc/img/tokenentry.png +0 -0
- data/tcl/ptwidgets-1.1.0/doc/img/tokensearch_popup_example.png +0 -0
- data/tcl/ptwidgets-1.1.0/doc/img/tokensearch_popup_example2.png +0 -0
- data/tcl/ptwidgets-1.1.0/doc/img/wmarkentry.png +0 -0
- data/tcl/ptwidgets-1.1.0/doc/toggleswitch.html +0 -402
- data/tcl/ptwidgets-1.1.0/doc/tokenentry.html +0 -1366
- data/tcl/ptwidgets-1.1.0/doc/tokensearch.html +0 -1549
- data/tcl/ptwidgets-1.1.0/doc/wmarkentry.html +0 -634
- data/tcl/ptwidgets-1.1.0/library/toggleswitch.tcl +0 -432
- data/tcl/ptwidgets-1.1.0/library/tokenentry.tcl +0 -2208
- data/tcl/ptwidgets-1.1.0/library/tokensearch.tcl +0 -2488
- data/tcl/ptwidgets-1.1.0/library/wmarkentry.tcl +0 -630
- data/tcl/ptwidgets-1.1.0/pkgIndex.tcl +0 -10
- data/tcl/ptwidgets-1.1.0/test/Makefile +0 -3
- data/tcl/ptwidgets-1.1.0/test/run.tcl +0 -3
- data/tcl/ptwidgets-1.1.0/test/test.tcl +0 -89
- data/tcl/ptwidgets-1.1.0/test/toggleswitch.test +0 -562
- data/tcl/ptwidgets-1.1.0/test/tokenentry.test +0 -1023
- data/tcl/ptwidgets-1.1.0/test/tokensearch.test +0 -1023
- data/tcl/ptwidgets-1.1.0/test/wmarkentry.test +0 -1325
- data/tcl/themes/altTheme.tcl +0 -101
- data/tcl/themes/aquaTheme.tcl +0 -59
- data/tcl/themes/clamTheme.tcl +0 -140
- data/tcl/themes/classicTheme.tcl +0 -108
- data/tcl/themes/pkgIndex.tcl +0 -3
- data/tcl/themes/ttk.tcl +0 -176
- data/tcl/themes/vistaTheme.tcl +0 -224
- data/tcl/themes/winTheme.tcl +0 -80
- data/tcl/themes/xpTheme.tcl +0 -65
- data/tcl/tkfbox/folder.gif +0 -0
- data/tcl/tkfbox/textfile.gif +0 -0
- data/tcl/tkfbox/tkfbox.tcl +0 -1
- data/tcl/tkfbox/tkfbox.tcl~ +0 -1
- data/tcl/tkfbox/updir.xbm +0 -1
|
@@ -22,7 +22,7 @@ class SubProcessInspector < ArcadiaExt
|
|
|
22
22
|
@processs.each{|pr|
|
|
23
23
|
if !pr.nil?
|
|
24
24
|
message = Arcadia.text("ext.spi.d.exit_query.msg")
|
|
25
|
-
r=Arcadia.
|
|
25
|
+
r=Arcadia.hinner_dialog(self,
|
|
26
26
|
'type'=>'yes_no',
|
|
27
27
|
'level'=>'warning',
|
|
28
28
|
'title'=> Arcadia.text("ext.spi.d.exit_query.title"),
|
|
@@ -59,7 +59,7 @@ class SubProcessWidget < Tk::BWidget::Button
|
|
|
59
59
|
@event = _event
|
|
60
60
|
b_command = proc{
|
|
61
61
|
message = Arcadia.text('ext.spi.d.kill.msg', [_event.pid, _event.name])
|
|
62
|
-
r=Arcadia.
|
|
62
|
+
r=Arcadia.hinner_dialog(self,
|
|
63
63
|
'type'=>'yes_no',
|
|
64
64
|
'level'=>'warning',
|
|
65
65
|
'title'=> Arcadia.text('ext.spi.d.kill.title'),
|
data/ext/ae-term/ae-term.rb
CHANGED
|
@@ -21,6 +21,7 @@ class Term < ArcadiaExtPlus
|
|
|
21
21
|
ArcadiaProblemEvent.new(self, "type"=>ArcadiaProblemEvent::DEPENDENCE_MISSING_TYPE,"title"=>Arcadia.text("ext.term.dependences_missing.xdotool.title"), "detail"=>msg).go!
|
|
22
22
|
end
|
|
23
23
|
end
|
|
24
|
+
@xterm_class_id = nil
|
|
24
25
|
end
|
|
25
26
|
|
|
26
27
|
def on_build(_event)
|
|
@@ -71,7 +72,10 @@ class Term < ArcadiaExtPlus
|
|
|
71
72
|
end
|
|
72
73
|
|
|
73
74
|
def xterm_class
|
|
74
|
-
|
|
75
|
+
if @xterm_class_id.nil?
|
|
76
|
+
@xterm_class_id = "xta#{Time.new.to_i}#{instance_index}"
|
|
77
|
+
end
|
|
78
|
+
@xterm_class_id
|
|
75
79
|
end
|
|
76
80
|
|
|
77
81
|
def do_run_xterm(_dir='~')
|
|
@@ -82,6 +86,7 @@ class Term < ArcadiaExtPlus
|
|
|
82
86
|
conf("create",'yes')
|
|
83
87
|
conf("dir",_dir)
|
|
84
88
|
id_int = eval(frame.hinner_frame.winfo_id).to_i
|
|
89
|
+
|
|
85
90
|
#Arcadia.runtime_error_msg("CREO XTERM #{xterm_class} con id #{id_int}")
|
|
86
91
|
cmd = "cd #{_dir} ; xterm -into #{id_int} -bg '#{conf('color.bg')}' -fg #{conf('color.fg')} -fa '#{conf('font')}' -class #{xterm_class} +sb +hold"
|
|
87
92
|
fi_pid=-1
|
|
@@ -110,9 +115,13 @@ class Term < ArcadiaExtPlus
|
|
|
110
115
|
end
|
|
111
116
|
|
|
112
117
|
def do_xterm_exit
|
|
118
|
+
@bind_after_run = false
|
|
119
|
+
frame.hinner_frame.bind_remove("Configure")
|
|
120
|
+
frame.hinner_frame.bind_remove("Map")
|
|
113
121
|
if main_instance?
|
|
114
122
|
conf("create",'no')
|
|
115
|
-
hide_frame
|
|
123
|
+
# hide_frame
|
|
124
|
+
clean_instance
|
|
116
125
|
else
|
|
117
126
|
clean_instance
|
|
118
127
|
end
|
data/lib/a-commons.rb
CHANGED
|
@@ -234,6 +234,10 @@ class ArcadiaExt
|
|
|
234
234
|
def hide_frame(_n=0)
|
|
235
235
|
Arcadia.layout.unregister_panel(frame(_n), false, true)
|
|
236
236
|
end
|
|
237
|
+
|
|
238
|
+
def destroy_frame(_n=0)
|
|
239
|
+
Arcadia.layout.unregister_panel(frame(_n), true, true)
|
|
240
|
+
end
|
|
237
241
|
|
|
238
242
|
def conf_array(_name)
|
|
239
243
|
# res = []
|
|
@@ -281,7 +285,7 @@ class ArcadiaExt
|
|
|
281
285
|
end
|
|
282
286
|
|
|
283
287
|
def frame_visible?(_n=0)
|
|
284
|
-
@frames[_n] != nil && @frames[_n].hinner_frame && TkWinfo.mapped?(@frames[_n].hinner_frame)
|
|
288
|
+
@frames != nil && @frames[_n] != nil && @frames[_n].hinner_frame && TkWinfo.mapped?(@frames[_n].hinner_frame)
|
|
285
289
|
end
|
|
286
290
|
|
|
287
291
|
def frame(_n=0,create_if_not_exist=true)
|
|
@@ -449,13 +453,18 @@ class ArcadiaExtPlus < ArcadiaExt
|
|
|
449
453
|
end
|
|
450
454
|
|
|
451
455
|
def activate(_obj=self, _raise_event=true)
|
|
452
|
-
return if @@active_instance[
|
|
453
|
-
|
|
454
|
-
|
|
456
|
+
return if @@active_instance[_obj.class] == _obj
|
|
457
|
+
if _obj.frame_visible?
|
|
458
|
+
@@active_instance[_obj.class] = nil
|
|
459
|
+
else
|
|
460
|
+
@@active_instance[_obj.class] = _obj
|
|
461
|
+
end
|
|
462
|
+
#@@active_instance[self.class].frame.root.shift_on if @@active_instance[self.class].frame != nil
|
|
463
|
+
_obj.frame.root.shift_on if _obj.frame_visible?
|
|
455
464
|
instances.each{|i|
|
|
456
|
-
i.frame.root.shift_off if i !=
|
|
465
|
+
i.frame.root.shift_off if i != _obj && i.frame != nil && i.frame.root != _obj.frame.root
|
|
457
466
|
}
|
|
458
|
-
ActivateInstanceEvent.new(Arcadia.instance, 'name'=>
|
|
467
|
+
ActivateInstanceEvent.new(Arcadia.instance, 'name'=>_obj.name).go! if _raise_event
|
|
459
468
|
end
|
|
460
469
|
|
|
461
470
|
def activate_main
|
|
@@ -525,7 +534,9 @@ class ArcadiaExtPlus < ArcadiaExt
|
|
|
525
534
|
def on_destroy_instance(_event)
|
|
526
535
|
Arcadia.detach_listener(self)
|
|
527
536
|
@arcadia.unregister(self)
|
|
528
|
-
@frames.each{|f| f.free }
|
|
537
|
+
# @frames.each{|f| f.free }
|
|
538
|
+
@frames.each_index{|i| destroy_frame(i)}
|
|
539
|
+
@frames.clear
|
|
529
540
|
end
|
|
530
541
|
|
|
531
542
|
# def on_before_layout_raising_frame(_event)
|
|
@@ -535,14 +546,24 @@ class ArcadiaExtPlus < ArcadiaExt
|
|
|
535
546
|
# end
|
|
536
547
|
|
|
537
548
|
def clean_instance
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
549
|
+
if main_instance?
|
|
550
|
+
@frames.each_index{|i| destroy_frame(i)}
|
|
551
|
+
@frames.clear
|
|
552
|
+
instances.each{|i|
|
|
553
|
+
if i != self
|
|
554
|
+
activate(i)
|
|
555
|
+
break
|
|
556
|
+
end
|
|
557
|
+
}
|
|
558
|
+
else
|
|
559
|
+
@@instances[self.class].delete(self) if @@instances[self.class]
|
|
560
|
+
Arcadia.del_conf_group(Arcadia['conf'],@name)
|
|
561
|
+
Arcadia.del_conf_group(Arcadia['pers'],@name)
|
|
562
|
+
main_instance.del_from_conf_property("clones", @name)
|
|
563
|
+
Arcadia.process_event(ClearCacheInstanceEvent.new(Arcadia.instance), [self])
|
|
564
|
+
Arcadia.process_event(DestroyInstanceEvent.new(Arcadia.instance), [self])
|
|
565
|
+
activate_main #if main_instance.frame_visible?
|
|
566
|
+
end
|
|
546
567
|
end
|
|
547
568
|
|
|
548
569
|
def deduplicate
|
|
@@ -1058,8 +1079,8 @@ class Application
|
|
|
1058
1079
|
@@instance
|
|
1059
1080
|
end
|
|
1060
1081
|
|
|
1061
|
-
def Application.conf(_property)
|
|
1062
|
-
@@instance
|
|
1082
|
+
def Application.conf(_property, _value=nil)
|
|
1083
|
+
@@instance.conf(_property, _value) if @@instance
|
|
1063
1084
|
end
|
|
1064
1085
|
|
|
1065
1086
|
def Application.version
|
|
@@ -1070,7 +1091,10 @@ class Application
|
|
|
1070
1091
|
@@instance.local_dir if @@instance
|
|
1071
1092
|
end
|
|
1072
1093
|
|
|
1073
|
-
def conf(_property)
|
|
1094
|
+
def conf(_property, _value=nil)
|
|
1095
|
+
if !_value.nil?
|
|
1096
|
+
self['conf'][_property] = _value
|
|
1097
|
+
end
|
|
1074
1098
|
self['conf'][_property]
|
|
1075
1099
|
end
|
|
1076
1100
|
|
|
@@ -1202,7 +1226,13 @@ class Application
|
|
|
1202
1226
|
def load_theme(_name=nil)
|
|
1203
1227
|
_theme_file = "conf/theme-#{_name}.conf" if !_name.nil?
|
|
1204
1228
|
if _theme_file && File.exist?(_theme_file)
|
|
1205
|
-
|
|
1229
|
+
thash = self.properties_file2hash(_theme_file)
|
|
1230
|
+
if thash.has_key?('parent')
|
|
1231
|
+
load_theme(thash['parent'])
|
|
1232
|
+
self['conf_theme'].update(thash)
|
|
1233
|
+
else
|
|
1234
|
+
self['conf_theme'] = thash
|
|
1235
|
+
end
|
|
1206
1236
|
self['conf'].update(self['conf_theme'])
|
|
1207
1237
|
self['conf_without_local'].update(self['conf_theme'])
|
|
1208
1238
|
_theme_res_file = "#{Dir.pwd}/conf/theme-#{_name}.res.rb"
|
data/lib/a-contracts.rb
CHANGED
|
@@ -98,6 +98,11 @@ end
|
|
|
98
98
|
class LayoutChangedFrameEvent < ArcadiaSysEvent
|
|
99
99
|
end
|
|
100
100
|
|
|
101
|
+
class LayoutChangedDomainEvent < ArcadiaSysEvent
|
|
102
|
+
attr_accessor :old_domain
|
|
103
|
+
attr_accessor :new_domain
|
|
104
|
+
end
|
|
105
|
+
|
|
101
106
|
# +---------------------------------------------+
|
|
102
107
|
# Buffer event
|
|
103
108
|
# +---------------------------------------------+
|
|
@@ -361,12 +366,20 @@ class LowerCaseTextEvent < FocusEvent; end
|
|
|
361
366
|
# default actions_pattern = 'OK'
|
|
362
367
|
class DialogEvent < ArcadiaEvent
|
|
363
368
|
TYPE_PATTERNS = ['ok', 'yes_no', 'ok_cancel', 'yes_no_cancel', 'abort_retry_ignore']
|
|
369
|
+
MSG_MAX_CHARS = 500
|
|
364
370
|
class Result < Result
|
|
365
371
|
attr_accessor :value
|
|
366
372
|
end
|
|
367
373
|
attr_accessor :title, :msg, :type, :level, :exception
|
|
368
374
|
end
|
|
369
375
|
|
|
376
|
+
class SystemDialogEvent < DialogEvent
|
|
377
|
+
end
|
|
378
|
+
|
|
379
|
+
class HinnerDialogEvent < DialogEvent
|
|
380
|
+
end
|
|
381
|
+
|
|
382
|
+
|
|
370
383
|
#class QuestionDialogEvent < DialogEvent
|
|
371
384
|
#end
|
|
372
385
|
#
|
data/lib/a-core.rb
CHANGED
|
@@ -24,7 +24,7 @@ class Arcadia < TkApplication
|
|
|
24
24
|
super(
|
|
25
25
|
ApplicationParams.new(
|
|
26
26
|
'arcadia',
|
|
27
|
-
'0.13.
|
|
27
|
+
'0.13.1',
|
|
28
28
|
'conf/arcadia.conf',
|
|
29
29
|
'conf/arcadia.pers'
|
|
30
30
|
)
|
|
@@ -561,6 +561,14 @@ class Arcadia < TkApplication
|
|
|
561
561
|
self.load_local_config(false)
|
|
562
562
|
# local config can contain loading conditions
|
|
563
563
|
self.load_exts_conf
|
|
564
|
+
if @first_run
|
|
565
|
+
myloc = nil
|
|
566
|
+
begin
|
|
567
|
+
myloc = ENV["LANG"].split('.')[0].sub('_','-') if ENV["LANG"]
|
|
568
|
+
rescue Exception => e
|
|
569
|
+
end
|
|
570
|
+
Arcadia.conf('locale', myloc) if myloc != nil
|
|
571
|
+
end
|
|
564
572
|
self.load_local_config
|
|
565
573
|
self.load_theme(self['conf']['theme'])
|
|
566
574
|
self.resolve_properties_link(self['conf'],self['conf'])
|
|
@@ -1024,7 +1032,12 @@ class Arcadia < TkApplication
|
|
|
1024
1032
|
|
|
1025
1033
|
|
|
1026
1034
|
def Arcadia.dialog(_sender, _args=Hash.new)
|
|
1027
|
-
_event = process_event(
|
|
1035
|
+
_event = process_event(SystemDialogEvent.new(_sender, _args))
|
|
1036
|
+
return _event.results[0].value if _event
|
|
1037
|
+
end
|
|
1038
|
+
|
|
1039
|
+
def Arcadia.hinner_dialog(_sender, _args=Hash.new)
|
|
1040
|
+
_event = process_event(HinnerDialogEvent.new(_sender, _args))
|
|
1028
1041
|
return _event.results[0].value if _event
|
|
1029
1042
|
end
|
|
1030
1043
|
|
|
@@ -1351,8 +1364,8 @@ class ArcadiaMainToolbar < ArcadiaUserControl
|
|
|
1351
1364
|
@item_obj = Tk::BWidget::Button.new(_args['frame'], Arcadia.style('toolbarbutton')){
|
|
1352
1365
|
image _image if _image
|
|
1353
1366
|
command _command if _command
|
|
1354
|
-
width
|
|
1355
|
-
height
|
|
1367
|
+
width 23
|
|
1368
|
+
height 23
|
|
1356
1369
|
helptext _hint if _hint
|
|
1357
1370
|
text _caption if _caption
|
|
1358
1371
|
}
|
|
@@ -1703,7 +1716,7 @@ class RunnerManager < TkFloatTitledFrame
|
|
|
1703
1716
|
'compound'=>:left,
|
|
1704
1717
|
'relief'=>'flat').pack('fill'=>'x','side' =>'left')
|
|
1705
1718
|
_close_command = proc{
|
|
1706
|
-
if (Arcadia.
|
|
1719
|
+
if (Arcadia.hinner_dialog(self, 'type'=>'yes_no',
|
|
1707
1720
|
'msg'=> Arcadia.text("main.d.confirm_delete_runner.msg", [_runner_hash[:name]]),
|
|
1708
1721
|
'title' => Arcadia.text("main.d.confirm_delete_runner.title"),
|
|
1709
1722
|
'level' => 'question')=='yes')
|
|
@@ -1967,7 +1980,17 @@ class ArcadiaProblemsShower
|
|
|
1967
1980
|
@initialized = true
|
|
1968
1981
|
if @problems.count > 0
|
|
1969
1982
|
show_problems
|
|
1970
|
-
|
|
1983
|
+
Thread.new do
|
|
1984
|
+
num_sleep = 0
|
|
1985
|
+
while TkWinfo.viewable(Arcadia.layout.root) == false && num_sleep < 20
|
|
1986
|
+
sleep(1)
|
|
1987
|
+
num_sleep += 1
|
|
1988
|
+
end
|
|
1989
|
+
@ff.show
|
|
1990
|
+
end
|
|
1991
|
+
# p TkWinfo.viewable(Arcadia.layout.root)
|
|
1992
|
+
# Tk.after(1000, proc{@ff.show; p TkWinfo.viewable(Arcadia.layout.root)})
|
|
1993
|
+
|
|
1971
1994
|
end
|
|
1972
1995
|
end
|
|
1973
1996
|
|
|
@@ -2390,38 +2413,59 @@ end
|
|
|
2390
2413
|
|
|
2391
2414
|
|
|
2392
2415
|
class ArcadiaDialogManager
|
|
2416
|
+
DialogParams = Struct.new("DialogParams",
|
|
2417
|
+
:type,
|
|
2418
|
+
:res_array,
|
|
2419
|
+
:level,
|
|
2420
|
+
:msg
|
|
2421
|
+
)
|
|
2422
|
+
|
|
2393
2423
|
def initialize(_arcadia)
|
|
2394
2424
|
@arcadia = _arcadia
|
|
2395
2425
|
Arcadia.attach_listener(self, DialogEvent)
|
|
2396
2426
|
end
|
|
2397
2427
|
|
|
2398
|
-
def
|
|
2399
|
-
|
|
2400
|
-
if
|
|
2401
|
-
type =
|
|
2402
|
-
|
|
2403
|
-
|
|
2404
|
-
|
|
2405
|
-
|
|
2406
|
-
|
|
2407
|
-
|
|
2428
|
+
def dialog_params(_event, check_type = true)
|
|
2429
|
+
ret = DialogParams.new
|
|
2430
|
+
if _event
|
|
2431
|
+
ret.type = _event.type
|
|
2432
|
+
if check_type && !_event.class::TYPE_PATTERNS.include?(_event.type)
|
|
2433
|
+
ret.type = 'ok'
|
|
2434
|
+
end
|
|
2435
|
+
ret.res_array = ret.type.split('_')
|
|
2436
|
+
if _event.level.nil? || _event.level.length == 0
|
|
2437
|
+
ret.level = 'info'
|
|
2438
|
+
else
|
|
2439
|
+
ret.level = _event.level
|
|
2440
|
+
end
|
|
2441
|
+
if _event.msg && _event.msg.length > _event.class::MSG_MAX_CHARS
|
|
2442
|
+
ret.msg = _event.msg[0.._event.class::MSG_MAX_CHARS]+' ...'
|
|
2443
|
+
else
|
|
2444
|
+
ret.msg = _event.msg
|
|
2445
|
+
end
|
|
2408
2446
|
end
|
|
2409
|
-
|
|
2447
|
+
ret
|
|
2448
|
+
end
|
|
2410
2449
|
|
|
2411
|
-
|
|
2412
|
-
|
|
2413
|
-
|
|
2414
|
-
|
|
2450
|
+
def on_dialog(_event)
|
|
2451
|
+
case _event
|
|
2452
|
+
when SystemDialogEvent
|
|
2453
|
+
do_system_dialog(_event)
|
|
2454
|
+
when HinnerDialogEvent
|
|
2455
|
+
do_hinner_dialog(_event)
|
|
2415
2456
|
end
|
|
2457
|
+
end
|
|
2416
2458
|
|
|
2459
|
+
def do_system_dialog(_event)
|
|
2460
|
+
par = dialog_params(_event)
|
|
2461
|
+
tktype = par.type.gsub('_','').downcase
|
|
2417
2462
|
tkdialog = Tk::BWidget::MessageDlg.new(
|
|
2418
|
-
|
|
2419
|
-
|
|
2420
|
-
|
|
2421
|
-
|
|
2422
|
-
|
|
2423
|
-
'message' => msg)
|
|
2424
|
-
|
|
2463
|
+
'icon' => par.level,
|
|
2464
|
+
'bg' => Arcadia.conf('background'),
|
|
2465
|
+
'fg' => Arcadia.conf('foreground'),
|
|
2466
|
+
'type' => tktype,
|
|
2467
|
+
'title' => _event.title,
|
|
2468
|
+
'message' => par.msg)
|
|
2425
2469
|
tkdialog.configure('font'=>'courier 6')
|
|
2426
2470
|
res = tkdialog.create
|
|
2427
2471
|
if _event.level == 'error'
|
|
@@ -2431,9 +2475,60 @@ class ArcadiaDialogManager
|
|
|
2431
2475
|
Arcadia.runtime_error_msg(_event.msg, _event.title)
|
|
2432
2476
|
end
|
|
2433
2477
|
end
|
|
2434
|
-
_event.add_result(self, 'value'=>res_array[res.to_i])
|
|
2478
|
+
_event.add_result(self, 'value'=>par.res_array[res.to_i])
|
|
2435
2479
|
end
|
|
2436
2480
|
|
|
2481
|
+
def do_hinner_dialog(_event)
|
|
2482
|
+
par = dialog_params(_event, false)
|
|
2483
|
+
dialog_frame = TkFrame.new(Arcadia.layout.base_frame, Arcadia.style('panel')){
|
|
2484
|
+
#relief 'solid'
|
|
2485
|
+
#borderwidth 3
|
|
2486
|
+
highlightbackground Arcadia.conf('hightlight.link.foreground')
|
|
2487
|
+
#highlightcolor 'red'
|
|
2488
|
+
highlightthickness 1
|
|
2489
|
+
}
|
|
2490
|
+
dialog_frame.pack('side' =>'top','after'=>Arcadia.layout.root, 'anchor'=>'nw','fill'=>'x', 'padx'=>0, 'pady'=>0)
|
|
2491
|
+
max_width = 0
|
|
2492
|
+
par.res_array.each{|v|
|
|
2493
|
+
l = v.length
|
|
2494
|
+
max_width = l if l > max_width
|
|
2495
|
+
}
|
|
2496
|
+
res = nil
|
|
2497
|
+
par.res_array.reverse_each{|value|
|
|
2498
|
+
Tk::BWidget::Button.new(dialog_frame, Arcadia.style('button')){
|
|
2499
|
+
command proc{res = value}
|
|
2500
|
+
text value.capitalize
|
|
2501
|
+
helptext value.capitalize
|
|
2502
|
+
width max_width*2
|
|
2503
|
+
}.pack('side' =>'right','padx'=>5, 'pady'=>5)
|
|
2504
|
+
}
|
|
2505
|
+
|
|
2506
|
+
Tk::BWidget::Label.new(dialog_frame,Arcadia.style('label')){
|
|
2507
|
+
text par.msg
|
|
2508
|
+
helptext _event.msg
|
|
2509
|
+
# }.pack('fill'=>'x','side' =>'left')
|
|
2510
|
+
}.pack('side' =>'right','padx'=>5, 'pady'=>5)
|
|
2511
|
+
|
|
2512
|
+
# Tk::BWidget::Label.new(dialog_frame,Arcadia.style('label')){
|
|
2513
|
+
# compound 'left'
|
|
2514
|
+
# Tk::Anigif.image(self, "#{Dir.pwd}/ext/ae-subprocess-inspector/process.res")
|
|
2515
|
+
# }.pack('side' =>'right','padx'=>10)
|
|
2516
|
+
|
|
2517
|
+
|
|
2518
|
+
Tk.update
|
|
2519
|
+
dialog_frame.grab("set")
|
|
2520
|
+
begin
|
|
2521
|
+
while res == nil do
|
|
2522
|
+
Tk.update
|
|
2523
|
+
sleep(0.1)
|
|
2524
|
+
end
|
|
2525
|
+
ensure
|
|
2526
|
+
dialog_frame.grab("release")
|
|
2527
|
+
end
|
|
2528
|
+
dialog_frame.destroy
|
|
2529
|
+
Tk.update
|
|
2530
|
+
_event.add_result(self, 'value'=>res)
|
|
2531
|
+
end
|
|
2437
2532
|
|
|
2438
2533
|
def on_dialog_old(_event)
|
|
2439
2534
|
type = _event.type
|
|
@@ -2454,6 +2549,7 @@ end
|
|
|
2454
2549
|
|
|
2455
2550
|
|
|
2456
2551
|
class ArcadiaLayout
|
|
2552
|
+
|
|
2457
2553
|
# include Observable
|
|
2458
2554
|
# ArcadiaPanelInfo = Struct.new( "ArcadiaPanelInfo",
|
|
2459
2555
|
# :name,
|
|
@@ -2461,18 +2557,25 @@ class ArcadiaLayout
|
|
|
2461
2557
|
# :frame,
|
|
2462
2558
|
# :ffw
|
|
2463
2559
|
# )
|
|
2560
|
+
attr_reader :base_frame
|
|
2464
2561
|
HIDDEN_DOMAIN = '-1.-1'
|
|
2465
2562
|
def initialize(_arcadia, _frame, _autotab=true)
|
|
2466
2563
|
@arcadia = _arcadia
|
|
2467
2564
|
@frames = Array.new
|
|
2468
2565
|
@frames[0] = Array.new
|
|
2469
|
-
@
|
|
2566
|
+
@base_frame = _frame
|
|
2567
|
+
@content_frame = TkFrame.new(_frame).pack('fill'=>'both', :padx=>0, :pady=>0, :expand => 'yes')
|
|
2568
|
+
# @dialog_frame = TkFrame.new(_frame)
|
|
2569
|
+
|
|
2570
|
+
@frames[0][0] = @content_frame
|
|
2470
2571
|
# @domains = Array.new
|
|
2471
2572
|
# @domains[0] = Array.new
|
|
2472
2573
|
# @domains[0][0] = '_domain_root_'
|
|
2574
|
+
|
|
2575
|
+
|
|
2473
2576
|
@panels = Hash.new
|
|
2474
2577
|
@panels['_domain_root_']= Hash.new
|
|
2475
|
-
@panels['_domain_root_']['root']=
|
|
2578
|
+
@panels['_domain_root_']['root']= @content_frame
|
|
2476
2579
|
@panels['_domain_root_']['sons'] = Hash.new
|
|
2477
2580
|
@panels['_domain_root_'][:raised_stack] = []
|
|
2478
2581
|
|
|
@@ -2484,7 +2587,7 @@ class ArcadiaLayout
|
|
|
2484
2587
|
@splitters=Array.new
|
|
2485
2588
|
@tabbed = Arcadia.conf('layout.tabbed')=='true'
|
|
2486
2589
|
end
|
|
2487
|
-
|
|
2590
|
+
|
|
2488
2591
|
def root
|
|
2489
2592
|
@panels['_domain_root_']['root']
|
|
2490
2593
|
end
|
|
@@ -2954,7 +3057,6 @@ class ArcadiaLayout
|
|
|
2954
3057
|
ret
|
|
2955
3058
|
end
|
|
2956
3059
|
|
|
2957
|
-
|
|
2958
3060
|
def domains_on_frame(_frame)
|
|
2959
3061
|
ret_doms = Array.new
|
|
2960
3062
|
frame_found = false
|
|
@@ -2991,7 +3093,6 @@ class ArcadiaLayout
|
|
|
2991
3093
|
ret_doms
|
|
2992
3094
|
end
|
|
2993
3095
|
|
|
2994
|
-
|
|
2995
3096
|
def find_splitted_frame(_start_frame)
|
|
2996
3097
|
splitted_frame = _start_frame
|
|
2997
3098
|
while splitted_frame != nil && !splitted_frame.kind_of?(AGTkSplittedFrames)
|
|
@@ -3252,6 +3353,8 @@ class ArcadiaLayout
|
|
|
3252
3353
|
end
|
|
3253
3354
|
# refresh -----
|
|
3254
3355
|
build_invert_menu
|
|
3356
|
+
Tk.update
|
|
3357
|
+
LayoutChangedDomainEvent.new(self, 'old_domain'=>source_domain, 'new_domain'=>_target_domain).go!
|
|
3255
3358
|
end
|
|
3256
3359
|
|
|
3257
3360
|
# def change_domain_old(_dom1, _dom2, _name2)
|
|
@@ -3722,7 +3825,7 @@ class ArcadiaLayout
|
|
|
3722
3825
|
dr,dc=d.split('.')
|
|
3723
3826
|
if dc.to_i >= _c && dr.to_i == _r
|
|
3724
3827
|
#shift_domain_column(_r,dc.to_i+1,_dom)
|
|
3725
|
-
p "== #{d} --> #{domain_name(_r,dc.to_i+1)}"
|
|
3828
|
+
#p "== #{d} --> #{domain_name(_r,dc.to_i+1)}"
|
|
3726
3829
|
_dom[k]= domain_name(_r,dc.to_i+1)
|
|
3727
3830
|
end
|
|
3728
3831
|
}
|
|
@@ -3733,7 +3836,7 @@ class ArcadiaLayout
|
|
|
3733
3836
|
dr,dc=d.split('.')
|
|
3734
3837
|
if dr.to_i >= _r && dc.to_i == _c
|
|
3735
3838
|
#shift_domain_row(dr.to_i+1,_c,_dom)
|
|
3736
|
-
p "shift_domain_row == #{d} --> #{domain_name(dr.to_i+1,_c)}"
|
|
3839
|
+
#p "shift_domain_row == #{d} --> #{domain_name(dr.to_i+1,_c)}"
|
|
3737
3840
|
_dom[k]=domain_name(dr.to_i+1,_c)
|
|
3738
3841
|
end
|
|
3739
3842
|
}
|