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