arcadia 0.13.1 → 1.0.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.
- checksums.yaml +4 -4
- data/{README → README.md} +60 -53
- data/conf/LC/en-UK.LANG +10 -4
- data/conf/arcadia.conf +221 -83
- data/conf/arcadia.res.rb +165 -175
- data/conf/theme-dark.conf +1 -1
- data/conf/theme-dark.res.rb +0 -123
- data/ext/ae-breakpoints/ae-breakpoints.rb +4 -3
- data/ext/ae-dir-projects/ae-dir-projects.conf +27 -1
- data/ext/ae-dir-projects/ae-dir-projects.rb +120 -70
- data/ext/ae-editor/ae-editor.conf +2 -2
- data/ext/ae-editor/ae-editor.rb +610 -303
- data/ext/ae-file-history/ae-file-history.rb +60 -39
- data/ext/ae-output/ae-output.rb +52 -27
- data/ext/ae-ruby-debug/ae-ruby-debug.conf +3 -1
- data/ext/ae-ruby-debug/ae-ruby-debug.rb +18 -11
- data/ext/ae-search-in-files/ae-search-in-files.conf +2 -2
- data/ext/ae-search-in-files/ae-search-in-files.rb +124 -77
- data/ext/ae-shell/ae-shell.conf +1 -1
- data/ext/ae-shell/ae-shell.rb +18 -81
- data/ext/ae-subprocess-inspector/ae-subprocess-inspector.rb +78 -81
- data/ext/ae-term/ae-term.rb +9 -7
- data/lib/a-commons.rb +125 -17
- data/lib/a-contracts.rb +6 -2
- data/lib/a-core.rb +441 -405
- data/lib/a-tkcommons.rb +1237 -45
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/ArrowButton.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/BWidget.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/Button.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/ButtonBox.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/ComboBox.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/Dialog.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/DragSite.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/DropSite.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/DynamicHelp.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/Entry.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/Label.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/LabelEntry.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/LabelFrame.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/ListBox.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/MainFrame.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/MessageDlg.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/NoteBook.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/PagesManager.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/PanedWindow.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/PanelFrame.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/PasswdDlg.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/ProgressBar.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/ProgressDlg.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/ScrollView.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/ScrollableFrame.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/ScrolledWindow.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/SelectColor.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/SelectFont.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/Separator.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/SpinBox.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/StatusBar.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/TitleFrame.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/Tree.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/Widget.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/contents.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/index.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/navtree.html +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/BWman/options.htm +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/CHANGES.txt +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/ChangeLog +65 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/LICENSE.txt +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/README.txt +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/arrow.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/bitmap.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/button.tcl +0 -2
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/buttonbox.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/color.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/combobox.tcl +40 -16
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/demo/basic.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/demo/bwidget.xbm +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/demo/demo.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/demo/dnd.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/demo/manager.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/demo/select.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/demo/tmpldlg.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/demo/tree.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/demo/x1.xbm +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/dialog.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/dragsite.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/dropsite.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/dynhelp.tcl +3 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/entry.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/font.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/bold.gif +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/copy.gif +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/cut.gif +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/dragfile.gif +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/dragicon.gif +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/error.gif +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/file.gif +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/folder.gif +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/hourglass.gif +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/info.gif +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/italic.gif +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/minus.xbm +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/new.gif +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/opcopy.xbm +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/open.gif +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/openfold.gif +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/oplink.xbm +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/opmove.xbm +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/overstrike.gif +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/palette.gif +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/passwd.gif +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/paste.gif +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/plus.xbm +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/print.gif +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/question.gif +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/redo.gif +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/save.gif +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/target.xbm +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/underline.gif +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/undo.gif +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/images/warning.gif +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/init.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/label.tcl +0 -2
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/labelentry.tcl +0 -3
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/labelframe.tcl +0 -2
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/lang/da.rc +1 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/lang/de.rc +1 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/lang/en.rc +1 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/lang/es.rc +1 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/lang/fr.rc +1 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/lang/hu.rc +1 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/lang/nl.rc +1 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/lang/no.rc +59 -58
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/lang/pl.rc +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/listbox.tcl +17 -4
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/mainframe.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/messagedlg.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/notebook.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/pagesmgr.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/panedw.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/panelframe.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/passwddlg.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/pkgIndex.tcl +2 -2
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/progressbar.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/progressdlg.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/scrollframe.tcl +6 -6
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/scrollview.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/scrollw.tcl +1 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/separator.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/spinbox.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/statusbar.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/tests/entry.test +2 -2
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/titleframe.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/tree.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/utils.tcl +0 -0
- data/tcl/bwidget-1.9.8/widget-old.tcl +1651 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/widget.tcl +64 -36
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/wizard.tcl +0 -0
- data/tcl/{bwidget-1.9.7 → bwidget-1.9.8}/xpm2image.tcl +0 -0
- metadata +196 -195
@@ -51,10 +51,59 @@ class SubProcessInspector < ArcadiaExt
|
|
51
51
|
|
52
52
|
end
|
53
53
|
|
54
|
-
class SubProcessWidget < Tk::BWidget::Button
|
54
|
+
#class SubProcessWidget < Tk::BWidget::Button
|
55
|
+
# attr_reader :event
|
56
|
+
# def initialize(_parent=nil, _event=nil, *args)
|
57
|
+
# super(Arcadia['toolbar'].frame, Arcadia.style('button').update("compound"=>'left', "background"=>Arcadia.conf("background"),"activebackground"=>'black', 'relief'=>'groove'))
|
58
|
+
# @parent = _parent
|
59
|
+
# @event = _event
|
60
|
+
# b_command = proc{
|
61
|
+
# message = Arcadia.text('ext.spi.d.kill.msg', [_event.pid, _event.name])
|
62
|
+
# r=Arcadia.hinner_dialog(self,
|
63
|
+
# 'type'=>'yes_no',
|
64
|
+
# 'level'=>'warning',
|
65
|
+
# 'title'=> Arcadia.text('ext.spi.d.kill.title'),
|
66
|
+
# 'msg'=>message)
|
67
|
+
# if r=="yes"
|
68
|
+
# _event.abort_action.call
|
69
|
+
# end
|
70
|
+
# }
|
71
|
+
# command b_command
|
72
|
+
# begin
|
73
|
+
# text File.basename(_event.name)
|
74
|
+
# rescue
|
75
|
+
# text _event.name
|
76
|
+
# end
|
77
|
+
# helptext "#{_event.name} [pid #{_event.pid}]"
|
78
|
+
# pack('side' =>'left', :padx=>2, :pady=>0)
|
79
|
+
# Tk::Anigif.image(self, "#{Dir.pwd}/ext/ae-subprocess-inspector/process.res")
|
80
|
+
# start_check
|
81
|
+
# end
|
82
|
+
#
|
83
|
+
# def start_check
|
84
|
+
# if @event.timecheck
|
85
|
+
# timecheck = @event.timecheck
|
86
|
+
# else
|
87
|
+
# timecheck = 1000
|
88
|
+
# end
|
89
|
+
# @timer = TkAfter.new
|
90
|
+
# proc_check = proc{
|
91
|
+
# alive = @event.alive_check.call
|
92
|
+
# #p "ALIVE=#{alive}"
|
93
|
+
# if !alive
|
94
|
+
# @timer.stop
|
95
|
+
# @parent.do_delete_process(self)
|
96
|
+
# self.destroy
|
97
|
+
# end
|
98
|
+
# }
|
99
|
+
# @timer.set_procs(timecheck,-1,proc_check)
|
100
|
+
# @timer.start
|
101
|
+
# end
|
102
|
+
#end
|
103
|
+
|
104
|
+
class SubProcessWidget
|
55
105
|
attr_reader :event
|
56
106
|
def initialize(_parent=nil, _event=nil, *args)
|
57
|
-
super(Arcadia['toolbar'].frame, Arcadia.style('button').update("compound"=>'left', "background"=>'black',"activebackground"=>'black', 'relief'=>'groove'))
|
58
107
|
@parent = _parent
|
59
108
|
@event = _event
|
60
109
|
b_command = proc{
|
@@ -68,17 +117,37 @@ class SubProcessWidget < Tk::BWidget::Button
|
|
68
117
|
_event.abort_action.call
|
69
118
|
end
|
70
119
|
}
|
71
|
-
command b_command
|
120
|
+
#command b_command
|
72
121
|
begin
|
73
|
-
|
122
|
+
l_text = File.basename(_event.name)
|
74
123
|
rescue
|
75
|
-
|
124
|
+
l_text = _event.name
|
76
125
|
end
|
77
|
-
helptext "#{_event.name} [pid #{_event.pid}]"
|
78
|
-
|
79
|
-
|
126
|
+
helptext = "#{_event.name} [pid #{_event.pid}]"
|
127
|
+
|
128
|
+
|
129
|
+
@label = TkLabel.new(Arcadia['toolbar'].frame, Arcadia.style('label')){
|
130
|
+
compound 'left'
|
131
|
+
text l_text
|
132
|
+
pack('side' =>'left', :padx=>2, :pady=>0)
|
133
|
+
}
|
134
|
+
Tk::Anigif.image(@label, "#{Dir.pwd}/ext/ae-subprocess-inspector/process.res")
|
135
|
+
|
136
|
+
@button = Arcadia.wf.toolbutton(Arcadia['toolbar'].frame){
|
137
|
+
command b_command
|
138
|
+
image Arcadia.image_res(CLOSE_FRAME_GIF)
|
139
|
+
pack('side' =>'left', :padx=>2, :pady=>0)
|
140
|
+
}
|
141
|
+
@button.hint=helptext
|
142
|
+
|
80
143
|
start_check
|
81
144
|
end
|
145
|
+
|
146
|
+
def destroy
|
147
|
+
# @img.destroy
|
148
|
+
@label.destroy
|
149
|
+
@button.destroy
|
150
|
+
end
|
82
151
|
|
83
152
|
def start_check
|
84
153
|
if @event.timecheck
|
@@ -99,76 +168,4 @@ class SubProcessWidget < Tk::BWidget::Button
|
|
99
168
|
@timer.set_procs(timecheck,-1,proc_check)
|
100
169
|
@timer.start
|
101
170
|
end
|
102
|
-
end
|
103
|
-
|
104
|
-
|
105
|
-
#class SubProcessWidget < TkFrame
|
106
|
-
# attr_reader :event
|
107
|
-
# def initialize(_parent=nil, _event=nil, *args)
|
108
|
-
# super(_parent.frame.hinner_frame, Arcadia.style('panel'))
|
109
|
-
# @parent = _parent
|
110
|
-
# @event = _event
|
111
|
-
# @progress = TkVariable.new
|
112
|
-
# @pb = Tk::BWidget::ProgressBar.new(
|
113
|
-
# self, Arcadia.style('progress').update({
|
114
|
-
# :variable=>@progress,
|
115
|
-
# :type=>'infinite',
|
116
|
-
# :maximum=>500})).place('width'=>-30,'relwidth' => '1','x' => 0,'y' => 2,'height' => 18)
|
117
|
-
# #.pack('side' =>'left','fill'=>'x')
|
118
|
-
#
|
119
|
-
# icon_button = TkButton.new(@pb){
|
120
|
-
# background Arcadia.style('panel')['background']
|
121
|
-
# relief 'flat'
|
122
|
-
# image Arcadia.file_icon(_event.name)
|
123
|
-
# }.pack
|
124
|
-
#
|
125
|
-
# b_command = proc{
|
126
|
-
# message = "Really kill pid #{_event.pid} #{_event.name} ?"
|
127
|
-
# r=Arcadia.dialog(self,
|
128
|
-
# 'type'=>'yes_no',
|
129
|
-
# 'level'=>'warning',
|
130
|
-
# 'title'=> 'Confirm kill',
|
131
|
-
# 'msg'=>message)
|
132
|
-
# if r=="yes"
|
133
|
-
# _event.abort_action.call
|
134
|
-
# end
|
135
|
-
# }
|
136
|
-
#
|
137
|
-
#
|
138
|
-
# _b = Tk::BWidget::Button.new(self,
|
139
|
-
# #_b = TkButton.new(self,
|
140
|
-
# 'command'=>b_command,
|
141
|
-
# 'borderwidth'=>0,
|
142
|
-
# 'background'=>Arcadia.conf('background'),
|
143
|
-
# 'helptext'=>"#{_event.name} [pid #{_event.pid}]",
|
144
|
-
# 'image'=> TkPhotoImage.new('data' => PROCESS_KILL_GIF),
|
145
|
-
# 'relief'=>'flat').pack('side' =>'right','padx'=>0)
|
146
|
-
# #.pack('side' =>'left','padx'=>5)
|
147
|
-
# #.place('x' => 2, 'width'=>20)
|
148
|
-
# pack('side' =>'top','anchor'=>'nw','fill'=>'x','padx'=>5, 'pady'=>5)
|
149
|
-
# #place('relwidth' => '1')
|
150
|
-
# start_check
|
151
|
-
# end
|
152
|
-
#
|
153
|
-
# def start_check
|
154
|
-
# @progress.numeric=0
|
155
|
-
# if @event.timecheck
|
156
|
-
# timecheck = @event.timecheck
|
157
|
-
# else
|
158
|
-
# timecheck = 1000
|
159
|
-
# end
|
160
|
-
# @timer = TkAfter.new
|
161
|
-
# proc_check = proc{
|
162
|
-
# alive = @event.alive_check.call
|
163
|
-
# #p "ALIVE=#{alive}"
|
164
|
-
# if !alive
|
165
|
-
# @timer.stop
|
166
|
-
# @parent.do_delete_process(self)
|
167
|
-
# self.destroy
|
168
|
-
# end
|
169
|
-
# @progress.numeric += 1
|
170
|
-
# }
|
171
|
-
# @timer.set_procs(timecheck,-1,proc_check)
|
172
|
-
# @timer.start
|
173
|
-
# end
|
174
|
-
#end
|
171
|
+
end
|
data/ext/ae-term/ae-term.rb
CHANGED
@@ -10,8 +10,8 @@ class Term < ArcadiaExtPlus
|
|
10
10
|
def on_before_build(_event)
|
11
11
|
@has_xterm = !Arcadia.which("xterm").nil?
|
12
12
|
@has_xdotool = !Arcadia.which("xdotool").nil?
|
13
|
-
@can_run = @has_xterm ||
|
14
|
-
if !
|
13
|
+
@can_run = @has_xterm || OS.windows? || OS.mac?
|
14
|
+
if !(OS.windows? || OS.mac?)
|
15
15
|
if !@has_xterm
|
16
16
|
msg = Arcadia.text("ext.term.dependences_missing.xterm.msg")
|
17
17
|
ArcadiaProblemEvent.new(self, "type"=>ArcadiaProblemEvent::DEPENDENCE_MISSING_TYPE,"title"=>Arcadia.text("ext.term.dependences_missing.xterm.title"), "detail"=>msg).go!
|
@@ -32,7 +32,7 @@ class Term < ArcadiaExtPlus
|
|
32
32
|
|
33
33
|
def on_initialize(_event)
|
34
34
|
# called at startup
|
35
|
-
return if
|
35
|
+
return if OS.windows? || OS.mac?
|
36
36
|
@xterm_pid = -1
|
37
37
|
@finalizing = false
|
38
38
|
@bind_after_run = false
|
@@ -46,7 +46,7 @@ class Term < ArcadiaExtPlus
|
|
46
46
|
end
|
47
47
|
|
48
48
|
def on_finalize(_event)
|
49
|
-
return if
|
49
|
+
return if OS.windows? || OS.mac?
|
50
50
|
@finalizing = true
|
51
51
|
killall_xterm if @has_xterm && @has_xdotool
|
52
52
|
end
|
@@ -88,7 +88,7 @@ class Term < ArcadiaExtPlus
|
|
88
88
|
id_int = eval(frame.hinner_frame.winfo_id).to_i
|
89
89
|
|
90
90
|
#Arcadia.runtime_error_msg("CREO XTERM #{xterm_class} con id #{id_int}")
|
91
|
-
cmd = "cd #{_dir} ; xterm -into #{id_int} -bg '#{conf('color.bg')}' -fg #{conf('color.fg')} -fa '#{conf('font')}' -class #{xterm_class} +sb +hold"
|
91
|
+
cmd = "cd #{_dir} ; xterm -into #{id_int} -bg '#{conf('color.bg')}' -fg '#{conf('color.fg')}' -fa '#{conf('font')}' -class #{xterm_class} +sb +hold"
|
92
92
|
fi_pid=-1
|
93
93
|
Thread.new do
|
94
94
|
#open("|#{cmd}"){|f| @xterm_pid = f.read.strip if f }
|
@@ -138,15 +138,17 @@ class Term < ArcadiaExtPlus
|
|
138
138
|
end
|
139
139
|
|
140
140
|
def do_run_external_term(_dir)
|
141
|
-
if
|
141
|
+
if OS.windows?
|
142
142
|
system("cd #{_dir} & start cmd")
|
143
|
+
elsif OS.mac?
|
144
|
+
system("open -a Terminal '#{_dir}'")
|
143
145
|
else
|
144
146
|
system("cd #{_dir}; xterm &")
|
145
147
|
end
|
146
148
|
end
|
147
149
|
|
148
150
|
def on_term(_event)
|
149
|
-
if !@has_xdotool ||
|
151
|
+
if !@has_xdotool || OS.windows? || OS.mac?
|
150
152
|
do_run_external_term(_event.dir)
|
151
153
|
else
|
152
154
|
if xterm_running?
|
data/lib/a-commons.rb
CHANGED
@@ -121,7 +121,7 @@ class FixedFrameWrapper < AbstractFrameWrapper
|
|
121
121
|
end
|
122
122
|
|
123
123
|
def hide
|
124
|
-
|
124
|
+
|
125
125
|
end
|
126
126
|
|
127
127
|
def raised?
|
@@ -224,6 +224,7 @@ class ArcadiaExt
|
|
224
224
|
@float_frames = Array.new
|
225
225
|
@float_geometries = conf_array("float_frames")
|
226
226
|
@float_labels = conf_array("float_labels")
|
227
|
+
@hinner_dialogs = []
|
227
228
|
Arcadia.attach_listener(self, BuildEvent)
|
228
229
|
Arcadia.attach_listener(self, InitializeEvent)
|
229
230
|
Arcadia.attach_listener(self, ExitQueryEvent)
|
@@ -287,6 +288,10 @@ class ArcadiaExt
|
|
287
288
|
def frame_visible?(_n=0)
|
288
289
|
@frames != nil && @frames[_n] != nil && @frames[_n].hinner_frame && TkWinfo.mapped?(@frames[_n].hinner_frame)
|
289
290
|
end
|
291
|
+
|
292
|
+
def frame_raised?(_n=0)
|
293
|
+
@arcadia.layout.raised?(frame_domain(_n), @name)
|
294
|
+
end
|
290
295
|
|
291
296
|
def frame(_n=0,create_if_not_exist=true)
|
292
297
|
if @frames_points[_n].nil?
|
@@ -297,10 +302,34 @@ class ArcadiaExt
|
|
297
302
|
(@frames_labels[_n].nil?)? _label = @name : _label = @frames_labels[_n]
|
298
303
|
(@frames_names[_n].nil?)? _name = @name : _name = @frames_names[_n]
|
299
304
|
@frames[_n] = FixedFrameWrapper.new(self, @frames_points[_n], _name, _label, _n)
|
305
|
+
@frames[_n].hinner_frame.bind_append("Enter", proc{self.frame.root.shift_on if self.frame_visible?})
|
300
306
|
end
|
301
307
|
return @frames[_n]
|
302
308
|
end
|
303
309
|
|
310
|
+
def hinner_dialog(_n=0, side='top', args=nil)
|
311
|
+
if @hinner_dialogs[0].nil?
|
312
|
+
@hinner_dialogs[_n] = @arcadia.layout.add_hinner_dialog(side, args)
|
313
|
+
@hinner_dialogs[_n].pack('side' =>side,'padx'=>0, 'pady'=>0, 'fill'=>'x', 'expand'=>'1')
|
314
|
+
end
|
315
|
+
@hinner_dialogs[_n]
|
316
|
+
end
|
317
|
+
|
318
|
+
def hinner_splitted_dialog(_n=0, _side='top', _height=100, _args=nil)
|
319
|
+
if @hinner_dialogs[0].nil?
|
320
|
+
@hinner_dialogs[_n] = @arcadia.layout.add_hinner_splitted_dialog(_side, _height, _args)
|
321
|
+
end
|
322
|
+
@hinner_dialogs[_n]
|
323
|
+
end
|
324
|
+
|
325
|
+
def hinner_splitted_dialog_titled(_title=nil, _n=0, _side='top', _height=100, _args=nil)
|
326
|
+
if @hinner_dialogs[0].nil?
|
327
|
+
@hinner_dialogs[_n] = @arcadia.layout.add_hinner_splitted_dialog_titled(_title, _side, _height, _args)
|
328
|
+
end
|
329
|
+
@hinner_dialogs[_n]
|
330
|
+
end
|
331
|
+
|
332
|
+
|
304
333
|
def frame_domain(_n=0, _value=nil)
|
305
334
|
if conf('frames')
|
306
335
|
frs = conf('frames').split(',')
|
@@ -454,15 +483,15 @@ class ArcadiaExtPlus < ArcadiaExt
|
|
454
483
|
|
455
484
|
def activate(_obj=self, _raise_event=true)
|
456
485
|
return if @@active_instance[_obj.class] == _obj
|
457
|
-
if
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
486
|
+
@@active_instance[_obj.class] = _obj #if @arcadia.initialized?
|
487
|
+
# if _obj.frame_visible?
|
488
|
+
# @@active_instance[_obj.class] = nil
|
489
|
+
# else
|
490
|
+
# @@active_instance[_obj.class] = _obj
|
491
|
+
# end
|
463
492
|
_obj.frame.root.shift_on if _obj.frame_visible?
|
464
493
|
instances.each{|i|
|
465
|
-
i.frame.root.shift_off if i != _obj && i.frame != nil && i.frame.root != _obj.frame.root
|
494
|
+
i.frame.root.shift_off if i != _obj && i.frame != nil && i.frame.root != _obj.frame.root && i.frame_raised?
|
466
495
|
}
|
467
496
|
ActivateInstanceEvent.new(Arcadia.instance, 'name'=>_obj.name).go! if _raise_event
|
468
497
|
end
|
@@ -547,7 +576,10 @@ class ArcadiaExtPlus < ArcadiaExt
|
|
547
576
|
|
548
577
|
def clean_instance
|
549
578
|
if main_instance?
|
550
|
-
@frames.each_index{|i|
|
579
|
+
@frames.each_index{|i|
|
580
|
+
LayoutChangedDomainEvent.new(self, 'old_domain'=>self.frame_domain(i), 'new_domain'=>nil).go!
|
581
|
+
destroy_frame(i)
|
582
|
+
}
|
551
583
|
@frames.clear
|
552
584
|
instances.each{|i|
|
553
585
|
if i != self
|
@@ -661,43 +693,44 @@ module EventBus #(or SourceEvent)
|
|
661
693
|
def process_event(_event, _listeners=nil)
|
662
694
|
# _listener rapresent a filter on @@listeners if != nil
|
663
695
|
return _event if !defined?(@@listeners)
|
696
|
+
@@listeners_listeners = {} unless defined? @@listeners_listeners
|
664
697
|
event_classes = _event_class_stack(_event.class)
|
665
698
|
#before fase
|
666
699
|
event_classes.each do |_c|
|
667
700
|
if _listeners.nil?
|
668
|
-
_process_fase(_c, _event, @@listeners[_c], 'before')
|
701
|
+
_process_fase(_c, _event, @@listeners[_c], @@listeners_listeners[_c], 'before')
|
669
702
|
else
|
670
703
|
listeners_to_process = []
|
671
704
|
_listeners.each{|lis|
|
672
705
|
listeners_to_process << lis if @@listeners[_c] && @@listeners[_c].include?(lis)
|
673
706
|
}
|
674
|
-
_process_fase(_c, _event, listeners_to_process, 'before')
|
707
|
+
_process_fase(_c, _event, listeners_to_process, @@listeners_listeners[_c], 'before')
|
675
708
|
end
|
676
709
|
break if _event.is_breaked? # not responding to this means "you need to pass in an instance, not a class name
|
677
710
|
end unless _event.is_breaked?
|
678
711
|
# fase
|
679
712
|
event_classes.each do |_c|
|
680
713
|
if _listeners.nil?
|
681
|
-
_process_fase(_c, _event, @@listeners[_c])
|
714
|
+
_process_fase(_c, _event, @@listeners[_c], @@listeners_listeners[_c])
|
682
715
|
else
|
683
716
|
listeners_to_process = []
|
684
717
|
_listeners.each{|lis|
|
685
718
|
listeners_to_process << lis if @@listeners[_c] && @@listeners[_c].include?(lis)
|
686
719
|
}
|
687
|
-
_process_fase(_c, _event, listeners_to_process)
|
720
|
+
_process_fase(_c, _event, listeners_to_process, @@listeners_listeners[_c])
|
688
721
|
end
|
689
722
|
break if _event.is_breaked?
|
690
723
|
end unless _event.is_breaked?
|
691
724
|
#after fase
|
692
725
|
event_classes.each do |_c|
|
693
726
|
if _listeners.nil?
|
694
|
-
_process_fase(_c, _event, @@listeners[_c], 'after')
|
727
|
+
_process_fase(_c, _event, @@listeners[_c], @@listeners_listeners[_c], 'after')
|
695
728
|
else
|
696
729
|
listeners_to_process = []
|
697
730
|
_listeners.each{|lis|
|
698
731
|
listeners_to_process << lis if @@listeners[_c] && @@listeners[_c].include?(lis)
|
699
732
|
}
|
700
|
-
_process_fase(_c, _event, listeners_to_process, 'after')
|
733
|
+
_process_fase(_c, _event, listeners_to_process, @@listeners_listeners[_c], 'after')
|
701
734
|
end
|
702
735
|
break if _event.is_breaked?
|
703
736
|
end unless _event.is_breaked?
|
@@ -725,7 +758,7 @@ module EventBus #(or SourceEvent)
|
|
725
758
|
end
|
726
759
|
private :_event_class_stack
|
727
760
|
|
728
|
-
def _process_fase(_class, _event, _listeners=nil, _fase_name = nil)
|
761
|
+
def _process_fase(_class, _event, _listeners=nil, _listeners_listeners=nil, _fase_name = nil)
|
729
762
|
return if _listeners.nil?
|
730
763
|
_fase_name.nil?? suf = '':suf = _fase_name
|
731
764
|
method_name = _method_name(_class, suf)
|
@@ -738,12 +771,26 @@ module EventBus #(or SourceEvent)
|
|
738
771
|
elsif _listener.respond_to?(method_name)
|
739
772
|
_listener.send(method_name, _event)
|
740
773
|
end
|
774
|
+
if _listeners_listeners
|
775
|
+
_listeners_listeners.each do |ll|
|
776
|
+
if ll.respond_to?(sub_method_name)
|
777
|
+
ll.send(sub_method_name, _event, _listener)
|
778
|
+
elsif ll.respond_to?(method_name)
|
779
|
+
ll.send(method_name, _event, _listener)
|
780
|
+
end
|
781
|
+
end
|
782
|
+
end
|
741
783
|
break if _event.is_breaked?
|
742
784
|
end
|
743
785
|
else
|
744
786
|
_listeners.each do|_listener|
|
745
787
|
next if _listener.kind_of?(ArcadiaExtPlus) && !(_listener.active? || (_event.kind_of?(ArcadiaSysEvent)))
|
746
788
|
_listener.send(method_name, _event) if _listener.respond_to?(method_name)
|
789
|
+
if _listeners_listeners
|
790
|
+
_listeners_listeners.each do |ll|
|
791
|
+
ll.send(method_name, _event, _listener) if ll.respond_to?(method_name)
|
792
|
+
end
|
793
|
+
end
|
747
794
|
break if _event.is_breaked?
|
748
795
|
end
|
749
796
|
end
|
@@ -758,6 +805,7 @@ module EventBus #(or SourceEvent)
|
|
758
805
|
return 'on_'+(_suf+_pre+_in.gsub(/[A-Z]/){|s| '_'+s.to_s}).downcase.gsub('_event','')
|
759
806
|
end
|
760
807
|
private :_method_name
|
808
|
+
|
761
809
|
def _broadcast_fase(_class, _event)
|
762
810
|
return if @@listeners[_class].nil?
|
763
811
|
method_name = _method_name(_class)
|
@@ -799,6 +847,25 @@ module EventBus #(or SourceEvent)
|
|
799
847
|
@@listeners[_class_event] << _listener
|
800
848
|
end
|
801
849
|
|
850
|
+
def attach_listeners_listener(_listener, _class_event)
|
851
|
+
@@listeners_listeners = {} unless defined? @@listeners_listeners
|
852
|
+
@@listeners_listeners[_class_event] = [] unless @@listeners_listeners.has_key?(_class_event)
|
853
|
+
@@listeners_listeners[_class_event] << _listener
|
854
|
+
end
|
855
|
+
|
856
|
+
def detach_listeners_listener(_listener, _class_event=nil)
|
857
|
+
if _class_event != nil
|
858
|
+
if @@listeners_listeners[_class_event]
|
859
|
+
@@listeners_listeners[_class_event].delete(_listener)
|
860
|
+
end
|
861
|
+
else
|
862
|
+
#delete all the issues of listenere
|
863
|
+
@@listeners_listeners.each{|klass, header|
|
864
|
+
header.delete(_listener)
|
865
|
+
}
|
866
|
+
end
|
867
|
+
end
|
868
|
+
|
802
869
|
end
|
803
870
|
|
804
871
|
|
@@ -844,7 +911,21 @@ module Configurable
|
|
844
911
|
if (_strip_line.length > 0)&&(_strip_line[0,1]!='#')
|
845
912
|
var_plat = _line.split('::')
|
846
913
|
if var_plat.length > 1
|
847
|
-
|
914
|
+
case var_plat[0]
|
915
|
+
when 'WINDOWS'
|
916
|
+
plat_enabled = OS.windows?
|
917
|
+
when 'MAC'
|
918
|
+
plat_enabled = OS.mac?
|
919
|
+
when 'LINUX'
|
920
|
+
plat_enabled = OS.linux?
|
921
|
+
when 'FREEBSD'
|
922
|
+
plat_enabled = OS.freebsd?
|
923
|
+
when 'UNIX'
|
924
|
+
plat_enabled = OS.unix?
|
925
|
+
when 'ARM'
|
926
|
+
plat_enabled = OS.arm?
|
927
|
+
end
|
928
|
+
if plat_enabled
|
848
929
|
_line = var_plat[1]
|
849
930
|
var_plat[2..-1].collect{|x| _line=_line+'::'+x} if var_plat.length > 2
|
850
931
|
else
|
@@ -1289,4 +1370,31 @@ class Application
|
|
1289
1370
|
|
1290
1371
|
def run
|
1291
1372
|
end
|
1373
|
+
end
|
1374
|
+
|
1375
|
+
module OS
|
1376
|
+
def OS.windows?
|
1377
|
+
(/cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM) != nil
|
1378
|
+
end
|
1379
|
+
|
1380
|
+
def OS.mac?
|
1381
|
+
(/darwin/ =~ RUBY_PLATFORM) != nil
|
1382
|
+
end
|
1383
|
+
|
1384
|
+
def OS.unix?
|
1385
|
+
!OS.windows?
|
1386
|
+
end
|
1387
|
+
|
1388
|
+
def OS.linux?
|
1389
|
+
OS.unix? and not OS.mac?
|
1390
|
+
end
|
1391
|
+
|
1392
|
+
def OS.freebsd?
|
1393
|
+
(/freebsd/ =~ RUBY_PLATFORM) != nil
|
1394
|
+
end
|
1395
|
+
|
1396
|
+
def OS.arm?
|
1397
|
+
(/arm/ =~ RUBY_PLATFORM) != nil
|
1398
|
+
end
|
1399
|
+
|
1292
1400
|
end
|