arcadia 0.13.0 → 0.13.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
}
|