arcadia 0.4.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README +8 -10
- data/bin/arcadia +13 -13
- data/bin/arcadia.bat +0 -0
- data/conf/arcadia.conf +35 -18
- data/conf/arcadia.init.rb +0 -0
- data/conf/arcadia.res.rb +10 -0
- data/ext/ae-breakpoints/ae-breakpoints.conf +0 -0
- data/ext/ae-breakpoints/ae-breakpoints.rb +368 -349
- data/ext/ae-editor/ae-editor.conf +2 -2
- data/ext/ae-editor/ae-editor.rb +1248 -445
- data/ext/ae-editor/langs/conf.lang +0 -0
- data/ext/ae-editor/langs/lang.lang.bind +0 -0
- data/ext/ae-editor/langs/rb.lang +0 -0
- data/ext/ae-editor/langs/rbw.lang.bind +0 -0
- data/ext/ae-file-history/ae-file-history.conf +1 -1
- data/ext/ae-file-history/ae-file-history.rb +23 -17
- data/ext/ae-output/ae-output.conf +0 -0
- data/ext/ae-output/ae-output.rb +262 -200
- data/ext/ae-rad/ae-rad-inspector.rb +34 -26
- data/ext/ae-rad/ae-rad-libs.rb +0 -0
- data/ext/ae-rad/ae-rad-palette.rb +0 -0
- data/ext/ae-rad/ae-rad.conf +0 -0
- data/ext/ae-rad/ae-rad.rb +0 -0
- data/ext/ae-rad/lib/tk/al-tk.rb +6 -2
- data/ext/ae-rad/lib/tk/al-tk.res.rb +0 -0
- data/ext/ae-rad/lib/tk/al-tkarcadia.rb +0 -0
- data/ext/ae-rad/lib/tk/al-tkcustom.rb +0 -0
- data/ext/ae-rad/lib/tkext/al-bwidget.rb +0 -0
- data/ext/ae-rad/lib/tkext/al-iwidgets.rb +0 -0
- data/ext/ae-rad/lib/tkext/al-tile.rb +0 -0
- data/ext/ae-rad/lib/tkext/al-tktable.rb +0 -0
- data/ext/ae-ruby-debug/ae-ruby-debug.conf +0 -0
- data/ext/ae-ruby-debug/ae-ruby-debug.rb +1 -0
- data/ext/ae-search-in-files/ae-search-in-files.conf +0 -0
- data/ext/ae-search-in-files/ae-search-in-files.rb +14 -10
- data/ext/ae-shell/ae-shell.conf +0 -0
- data/ext/ae-shell/ae-shell.rb +1 -1
- data/ext/ae-shell/sh.rb +0 -0
- data/lib/a-commons.rb +5 -1
- data/lib/a-contracts.rb +1 -0
- data/lib/a-core.rb +40 -9
- data/lib/a-tkcommons.rb +229 -1
- data/tcl/BWidget-1.8.0/BWman/ArrowButton.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/BWidget.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/Button.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/ButtonBox.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/ComboBox.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/Dialog.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/DragSite.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/DropSite.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/DynamicHelp.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/Entry.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/Label.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/LabelEntry.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/LabelFrame.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/ListBox.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/MainFrame.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/MessageDlg.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/NoteBook.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/PagesManager.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/PanedWindow.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/PanelFrame.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/PasswdDlg.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/ProgressBar.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/ProgressDlg.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/ScrollView.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/ScrollableFrame.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/ScrolledWindow.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/SelectColor.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/SelectFont.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/Separator.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/SpinBox.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/StatusBar.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/TitleFrame.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/Tree.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/Widget.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/contents.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/index.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/navtree.html +0 -0
- data/tcl/BWidget-1.8.0/BWman/options.htm +0 -0
- data/tcl/BWidget-1.8.0/CHANGES.txt +0 -0
- data/tcl/BWidget-1.8.0/ChangeLog +0 -0
- data/tcl/BWidget-1.8.0/LICENSE.txt +0 -0
- data/tcl/BWidget-1.8.0/README.txt +0 -0
- data/tcl/BWidget-1.8.0/arrow.tcl +0 -0
- data/tcl/BWidget-1.8.0/bitmap.tcl +0 -0
- data/tcl/BWidget-1.8.0/button.tcl +0 -0
- data/tcl/BWidget-1.8.0/buttonbox.tcl +0 -0
- data/tcl/BWidget-1.8.0/color.tcl +0 -0
- data/tcl/BWidget-1.8.0/combobox.tcl +0 -0
- data/tcl/BWidget-1.8.0/demo/basic.tcl +0 -0
- data/tcl/BWidget-1.8.0/demo/bwidget.xbm +0 -0
- data/tcl/BWidget-1.8.0/demo/demo.tcl +0 -0
- data/tcl/BWidget-1.8.0/demo/dnd.tcl +0 -0
- data/tcl/BWidget-1.8.0/demo/manager.tcl +0 -0
- data/tcl/BWidget-1.8.0/demo/select.tcl +0 -0
- data/tcl/BWidget-1.8.0/demo/tmpldlg.tcl +0 -0
- data/tcl/BWidget-1.8.0/demo/tree.tcl +0 -0
- data/tcl/BWidget-1.8.0/demo/x1.xbm +0 -0
- data/tcl/BWidget-1.8.0/dialog.tcl +0 -0
- data/tcl/BWidget-1.8.0/dragsite.tcl +0 -0
- data/tcl/BWidget-1.8.0/dropsite.tcl +0 -0
- data/tcl/BWidget-1.8.0/dynhelp.tcl +0 -0
- data/tcl/BWidget-1.8.0/entry.tcl +0 -0
- data/tcl/BWidget-1.8.0/font.tcl +0 -0
- data/tcl/BWidget-1.8.0/images/bold.gif +0 -0
- data/tcl/BWidget-1.8.0/images/copy.gif +0 -0
- data/tcl/BWidget-1.8.0/images/cut.gif +0 -0
- data/tcl/BWidget-1.8.0/images/dragfile.gif +0 -0
- data/tcl/BWidget-1.8.0/images/dragicon.gif +0 -0
- data/tcl/BWidget-1.8.0/images/error.gif +0 -0
- data/tcl/BWidget-1.8.0/images/file.gif +0 -0
- data/tcl/BWidget-1.8.0/images/folder.gif +0 -0
- data/tcl/BWidget-1.8.0/images/hourglass.gif +0 -0
- data/tcl/BWidget-1.8.0/images/info.gif +0 -0
- data/tcl/BWidget-1.8.0/images/italic.gif +0 -0
- data/tcl/BWidget-1.8.0/images/minus.xbm +0 -0
- data/tcl/BWidget-1.8.0/images/new.gif +0 -0
- data/tcl/BWidget-1.8.0/images/opcopy.xbm +0 -0
- data/tcl/BWidget-1.8.0/images/open.gif +0 -0
- data/tcl/BWidget-1.8.0/images/openfold.gif +0 -0
- data/tcl/BWidget-1.8.0/images/oplink.xbm +0 -0
- data/tcl/BWidget-1.8.0/images/opmove.xbm +0 -0
- data/tcl/BWidget-1.8.0/images/overstrike.gif +0 -0
- data/tcl/BWidget-1.8.0/images/palette.gif +0 -0
- data/tcl/BWidget-1.8.0/images/passwd.gif +0 -0
- data/tcl/BWidget-1.8.0/images/paste.gif +0 -0
- data/tcl/BWidget-1.8.0/images/plus.xbm +0 -0
- data/tcl/BWidget-1.8.0/images/print.gif +0 -0
- data/tcl/BWidget-1.8.0/images/question.gif +0 -0
- data/tcl/BWidget-1.8.0/images/redo.gif +0 -0
- data/tcl/BWidget-1.8.0/images/save.gif +0 -0
- data/tcl/BWidget-1.8.0/images/target.xbm +0 -0
- data/tcl/BWidget-1.8.0/images/underline.gif +0 -0
- data/tcl/BWidget-1.8.0/images/undo.gif +0 -0
- data/tcl/BWidget-1.8.0/images/warning.gif +0 -0
- data/tcl/BWidget-1.8.0/init.tcl +0 -0
- data/tcl/BWidget-1.8.0/label.tcl +0 -0
- data/tcl/BWidget-1.8.0/labelentry.tcl +0 -0
- data/tcl/BWidget-1.8.0/labelframe.tcl +0 -0
- data/tcl/BWidget-1.8.0/lang/da.rc +0 -0
- data/tcl/BWidget-1.8.0/lang/de.rc +0 -0
- data/tcl/BWidget-1.8.0/lang/en.rc +0 -0
- data/tcl/BWidget-1.8.0/lang/es.rc +0 -0
- data/tcl/BWidget-1.8.0/lang/fr.rc +0 -0
- data/tcl/BWidget-1.8.0/listbox.tcl +0 -0
- data/tcl/BWidget-1.8.0/mainframe.tcl +0 -0
- data/tcl/BWidget-1.8.0/messagedlg.tcl +0 -0
- data/tcl/BWidget-1.8.0/notebook.tcl +0 -0
- data/tcl/BWidget-1.8.0/pagesmgr.tcl +0 -0
- data/tcl/BWidget-1.8.0/panedw.tcl +0 -0
- data/tcl/BWidget-1.8.0/panelframe.tcl +0 -0
- data/tcl/BWidget-1.8.0/passwddlg.tcl +0 -0
- data/tcl/BWidget-1.8.0/pkgIndex.tcl +0 -0
- data/tcl/BWidget-1.8.0/progressbar.tcl +0 -0
- data/tcl/BWidget-1.8.0/progressdlg.tcl +0 -0
- data/tcl/BWidget-1.8.0/scrollframe.tcl +0 -0
- data/tcl/BWidget-1.8.0/scrollview.tcl +0 -0
- data/tcl/BWidget-1.8.0/scrollw.tcl +0 -0
- data/tcl/BWidget-1.8.0/separator.tcl +0 -0
- data/tcl/BWidget-1.8.0/spinbox.tcl +0 -0
- data/tcl/BWidget-1.8.0/statusbar.tcl +0 -0
- data/tcl/BWidget-1.8.0/tests/entry.test +0 -0
- data/tcl/BWidget-1.8.0/titleframe.tcl +0 -0
- data/tcl/BWidget-1.8.0/tree.tcl +0 -0
- data/tcl/BWidget-1.8.0/utils.tcl +0 -0
- data/tcl/BWidget-1.8.0/widget.tcl +0 -0
- data/tcl/BWidget-1.8.0/wizard.tcl +0 -0
- data/tcl/BWidget-1.8.0/xpm2image.tcl +0 -0
- metadata +2 -25
- data/ext/ae-complete-code/ae-complete-code.conf +0 -6
- data/ext/ae-complete-code/ae-complete-code.rb +0 -74
- data/ext/ae-doc-code/ae-doc-code.conf +0 -15
- data/ext/ae-doc-code/ae-doc-code.rb +0 -300
- data/ext/ae-event-log/ae-event-log.conf +0 -5
- data/ext/ae-event-log/ae-event-log.rb +0 -46
- data/ext/ae-flag/ae-flag.conf +0 -6
- data/ext/ae-flag/ae-flag.rb +0 -12
- data/ext/ae-output-event/ae-output-event.conf +0 -15
@@ -275,12 +275,13 @@ class ValueRap
|
|
275
275
|
'anchor' => 'w',
|
276
276
|
#'width'=>15,
|
277
277
|
#'font'=> $arcadia['conf']['inspectors.inspector.value.font'],
|
278
|
-
|
278
|
+
'borderwidth'=>'1',
|
279
|
+
'relief'=>'groove'
|
279
280
|
}))
|
280
281
|
|
281
282
|
TkTextWindow.new(@parent.right_text, 'end', 'window'=> @labelkey)
|
282
283
|
|
283
|
-
|
284
|
+
@labelkey.pack('fill'=>'x',:padx=>0, :pady=>0)
|
284
285
|
|
285
286
|
@parent.right_text.insert('end',"\n")
|
286
287
|
|
@@ -356,15 +357,14 @@ class PropLine
|
|
356
357
|
@propkey = TkLabel.new(@parent.left_text, Arcadia.style('label')){
|
357
358
|
text _name
|
358
359
|
justify 'right'
|
359
|
-
#font $arcadia['conf']['inspectors.inspector.key.font']
|
360
360
|
anchor 'w'
|
361
|
-
|
361
|
+
borderwidth '1'
|
362
|
+
relief 'groove'
|
362
363
|
}
|
363
364
|
|
364
|
-
TkTextWindow.new(@parent.left_text, 'end',
|
365
|
-
|
365
|
+
TkTextWindow.new(@parent.left_text, 'end', 'window'=> @propkey)
|
366
|
+
@propkey.pack('fill'=>'x',:padx=>0, :pady=>0)
|
366
367
|
@parent.left_text.insert('end',"\n")
|
367
|
-
|
368
368
|
if !defined? _prop['type']
|
369
369
|
_prop['type'] = 'StringType'
|
370
370
|
end
|
@@ -544,11 +544,16 @@ class InspectList
|
|
544
544
|
attr_writer :lasthandlervalue, :family
|
545
545
|
attr_reader :lasthandlervalue
|
546
546
|
attr_reader :left_text, :right_text
|
547
|
-
def initialize(_family, _host, _left_width = 85)
|
547
|
+
def initialize(_family, _host, _left_width = 85, show_scrollbar=true)
|
548
548
|
@lasthandlervalue = 0;
|
549
549
|
@family = _family
|
550
|
-
|
550
|
+
#@pwind = AGTkVSplittedFrames.new(_host,_left_width)
|
551
|
+
if show_scrollbar
|
552
|
+
# @pwind.place('width' => -15)
|
553
|
+
@bar = TkScrollbar.new(_host, Arcadia.style('scrollbar')).pack('side'=>'right', 'fill'=>'y')
|
554
|
+
end
|
551
555
|
@pwind = AGTkVSplittedFrames.new(_host,_left_width)
|
556
|
+
|
552
557
|
background = _host.cget('background')
|
553
558
|
common_properties = {'relief'=>'flat','state'=>'disabled', 'borderwidth'=>0, 'background'=>background}
|
554
559
|
@left_text = TkText.new(@pwind.left_frame, common_properties).pack('expand'=>'yes', 'fill'=>'both')
|
@@ -556,18 +561,19 @@ class InspectList
|
|
556
561
|
|
557
562
|
@left_text.configure('selectbackground'=>@left_text.cget('background'))
|
558
563
|
@right_text.configure('selectbackground'=>@right_text.cget('background'))
|
559
|
-
|
560
|
-
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
|
567
|
-
|
568
|
-
|
569
|
-
|
570
|
-
|
564
|
+
|
565
|
+
if show_scrollbar
|
566
|
+
@bar.command(proc { |*args|
|
567
|
+
@left_text.yview(*args)
|
568
|
+
@right_text.yview(*args)
|
569
|
+
})
|
570
|
+
@left_text.yscrollcommand(proc { |first, last|
|
571
|
+
@bar.set(first, last)
|
572
|
+
})
|
573
|
+
@right_text.yscrollcommand(proc { |first, last|
|
574
|
+
@bar.set(first, last)
|
575
|
+
})
|
576
|
+
end
|
571
577
|
@right_text.bind("Configure",
|
572
578
|
proc{
|
573
579
|
new_width = new_right_width
|
@@ -989,12 +995,14 @@ class TkMenuButtonObjBoard < ObjBoard
|
|
989
995
|
:underline=>0,
|
990
996
|
:direction=>:flush,
|
991
997
|
#:font=>$arcadia['conf']['inspectors.inspector.tree.font'],
|
992
|
-
|
998
|
+
:relief=>:groove,
|
999
|
+
:borderwidth=> '1',
|
1000
|
+
|
993
1001
|
#:background=> :white,
|
994
1002
|
:justify=> :left})){|mb|
|
995
1003
|
menu TkMenu.new(Arcadia.style('menu').update({
|
996
1004
|
:parent=>mb,
|
997
|
-
:tearoff=>
|
1005
|
+
:tearoff=>0
|
998
1006
|
#:font=>$arcadia['conf']['inspectors.inspector.tree.font'],
|
999
1007
|
#:background=> :white,:relief=>'flat'
|
1000
1008
|
}))
|
@@ -1021,7 +1029,7 @@ class TkMenuButtonObjBoard < ObjBoard
|
|
1021
1029
|
_space = _space + ' '
|
1022
1030
|
end
|
1023
1031
|
if _agobj.ag_parent != nil
|
1024
|
-
_result = _space + '
|
1032
|
+
_result = _space + '¦'+_result
|
1025
1033
|
end
|
1026
1034
|
return _result
|
1027
1035
|
end
|
@@ -1479,11 +1487,11 @@ class AGTkInspector < AGInspector
|
|
1479
1487
|
@top_panel = TkFrame.new(@ojts_layout, Arcadia.style('panel')){
|
1480
1488
|
place('x'=>0, 'y'=>0, 'relheight'=>1, 'relwidth'=>1)
|
1481
1489
|
}
|
1482
|
-
@tabs['LayoutType'] = InspectList.new('layout_man', @top_panel)
|
1490
|
+
@tabs['LayoutType'] = InspectList.new('layout_man', @top_panel,85,false)
|
1483
1491
|
@mid_panel = TkFrame.new(@ojts_layout, Arcadia.style('panel')){
|
1484
1492
|
place('x'=>0, 'y'=>20,'relheight'=>1, 'relwidth'=>1)
|
1485
1493
|
}
|
1486
|
-
@tabs['Layout'] = InspectList.new('...',@mid_panel)
|
1494
|
+
@tabs['Layout'] = InspectList.new('...',@mid_panel, 85)
|
1487
1495
|
|
1488
1496
|
@ojts_winfo = _host.insert('end','winfo','text'=>'Winfo')
|
1489
1497
|
@tabs['Winfo'] = InspectList.new('winfo', @ojts_winfo)
|
data/ext/ae-rad/ae-rad-libs.rb
CHANGED
File without changes
|
File without changes
|
data/ext/ae-rad/ae-rad.conf
CHANGED
File without changes
|
data/ext/ae-rad/ae-rad.rb
CHANGED
File without changes
|
data/ext/ae-rad/lib/tk/al-tk.rb
CHANGED
@@ -1176,6 +1176,7 @@ include WrapBind
|
|
1176
1176
|
class Revparsel
|
1177
1177
|
|
1178
1178
|
def initialize(_code, _filename=nil)
|
1179
|
+
#p "-------- revparsel ------------"
|
1179
1180
|
_code.gsub!('TkScrollbar','QTkScrollbar')
|
1180
1181
|
_code.gsub!('bind(','wbind(')
|
1181
1182
|
if $arcadia.objects('code')
|
@@ -1185,7 +1186,7 @@ class Revparsel
|
|
1185
1186
|
end
|
1186
1187
|
@filename = _filename
|
1187
1188
|
_re_string = ''
|
1188
|
-
['TkToplevel','TkRoot','TkToplevelLayer'].each{|top|
|
1189
|
+
['TkToplevel','Tk::Toplevel','TkRoot','TkToplevelLayer'].each{|top|
|
1189
1190
|
if _re_string.length > 0
|
1190
1191
|
_re_string = _re_string+'|'
|
1191
1192
|
end
|
@@ -1197,13 +1198,16 @@ class Revparsel
|
|
1197
1198
|
_obj_name = _class_name.sub(/^./) { $&.downcase}
|
1198
1199
|
cod = _code + "\n@"+ _obj_name + "="+ _class_name+".new('class'=>"+_class+")\n"
|
1199
1200
|
cod = cod +"Tk.update\n"
|
1201
|
+
#p cod
|
1200
1202
|
eval(cod)
|
1201
1203
|
cod = ''
|
1202
|
-
cod = cod + '@ag'+ _obj_name + "="+'AG'+ _class+".new(nil,@"+_obj_name+"){\n"
|
1204
|
+
cod = cod + '@ag'+ _obj_name + "="+'AG'+ _class.sub('::','')+".new(nil,@"+_obj_name+"){\n"
|
1203
1205
|
cod = cod + "|_self|\n"
|
1204
1206
|
cod = cod + " _self.i_name='"+_obj_name+"' \n"
|
1205
1207
|
cod = cod + " _self.i_ag='"+'ag'+_obj_name+"' \n"
|
1206
1208
|
cod = cod + '}'+"\n"
|
1209
|
+
#p "-------------------"
|
1210
|
+
#p cod
|
1207
1211
|
eval(cod)
|
1208
1212
|
end
|
1209
1213
|
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -1532,6 +1532,7 @@ class RubyDebug < ArcadiaExt
|
|
1532
1532
|
|
1533
1533
|
@rdc = RubyDebugClient.new(self, conf('server.host'), conf('server.port'), conf('server.timeout')) if @rdc.nil?
|
1534
1534
|
@rdv = RubyDebugView.new(self.frame.hinner_frame, self) if @rdv.nil?
|
1535
|
+
self.frame.show
|
1535
1536
|
@rdv.start_process(_filename)
|
1536
1537
|
if @rdc.start_session
|
1537
1538
|
@static_breakpoints.each{|_b|
|
File without changes
|
@@ -43,7 +43,7 @@ class SearchInFilesListener
|
|
43
43
|
Tk.callback_break
|
44
44
|
end
|
45
45
|
}
|
46
|
-
|
46
|
+
@find.title("Search in files")
|
47
47
|
end
|
48
48
|
private :create_find
|
49
49
|
|
@@ -251,23 +251,20 @@ class FindFrame < TkFloatTitledFrame
|
|
251
251
|
autocomplete 'true'
|
252
252
|
expand 'tab'
|
253
253
|
takefocus 'true'
|
254
|
-
#pack('side'=>'left','fill'=>'x')
|
255
254
|
pack('fill'=>'x')
|
255
|
+
#pack('fill'=>'x')
|
256
256
|
#place('relwidth' => 1, 'width'=>-16,'x' => 8,'y' => y0,'height' => 19)
|
257
257
|
}
|
258
258
|
@e_dir.text(Dir.pwd)
|
259
|
-
@b_dir = TkButton.new(
|
259
|
+
@b_dir = TkButton.new(@e_dir, Arcadia.style('button') ){
|
260
260
|
compound 'none'
|
261
261
|
default 'disabled'
|
262
262
|
text '...'
|
263
|
-
|
264
|
-
#
|
265
|
-
pack('side'=>'right','ipadx'=>5, 'padx'=>5)
|
263
|
+
pack('side'=>'right')
|
264
|
+
#pack('side'=>'right','ipadx'=>5, 'padx'=>5)
|
266
265
|
}.bind('1', proc{
|
267
|
-
|
268
|
-
|
269
|
-
@e_dir.text(_d)
|
270
|
-
end
|
266
|
+
change_dir
|
267
|
+
Tk.callback_break
|
271
268
|
})
|
272
269
|
|
273
270
|
y0 = y0 + d
|
@@ -284,6 +281,13 @@ class FindFrame < TkFloatTitledFrame
|
|
284
281
|
}
|
285
282
|
place('x'=>100,'y'=>100,'height'=> 220,'width'=> 300)
|
286
283
|
end
|
284
|
+
|
285
|
+
def change_dir
|
286
|
+
_d = Tk.chooseDirectory('initialdir'=>@e_dir.text,'mustexist'=>true)
|
287
|
+
if _d && _d.strip.length > 0
|
288
|
+
@e_dir.text(_d)
|
289
|
+
end
|
290
|
+
end
|
287
291
|
|
288
292
|
def show
|
289
293
|
super
|
data/ext/ae-shell/ae-shell.conf
CHANGED
File without changes
|
data/ext/ae-shell/ae-shell.rb
CHANGED
@@ -49,7 +49,7 @@ class Shell < ArcadiaExt
|
|
49
49
|
_filename = @arcadia['pers']['run.file.last'] if _filename == "*LAST"
|
50
50
|
if _filename && File.exists?(_filename)
|
51
51
|
begin
|
52
|
-
@arcadia['pers']['run.file.last']=_filename
|
52
|
+
@arcadia['pers']['run.file.last']=_filename if _event.persistent
|
53
53
|
_cmd_ = "|"+@arcadia['conf']['shell.ruby']+" "+_filename+" 2>&1"
|
54
54
|
open(_cmd_,"r"){|f|
|
55
55
|
_readed = f.read
|
data/ext/ae-shell/sh.rb
CHANGED
File without changes
|
data/lib/a-commons.rb
CHANGED
@@ -95,6 +95,10 @@ class FixedFrameWrapper < AbstractFrameWrapper
|
|
95
95
|
def hide
|
96
96
|
end
|
97
97
|
|
98
|
+
def raised?
|
99
|
+
@arcadia.layout.raised?(@point, @name)
|
100
|
+
end
|
101
|
+
|
98
102
|
def free
|
99
103
|
@arcadia.layout.unregister_panel(@point, @name)
|
100
104
|
@fixed_frame = nil
|
@@ -522,7 +526,7 @@ end
|
|
522
526
|
|
523
527
|
module Persistable
|
524
528
|
def override_persistent(_persist_file, _persistent_hash)
|
525
|
-
if FileTest::exist?(_persist_file)
|
529
|
+
if FileTest::exist?(_persist_file) && File.stat(_persist_file).writable?
|
526
530
|
f = File.new(_persist_file, "w")
|
527
531
|
begin
|
528
532
|
if f
|
data/lib/a-contracts.rb
CHANGED
data/lib/a-core.rb
CHANGED
@@ -2,12 +2,20 @@
|
|
2
2
|
# a-core.rb - Arcadia Ruby ide
|
3
3
|
# by Antonio Galeone <antonio-galeone@rubyforge.org>
|
4
4
|
#
|
5
|
+
# §require_dir_ref=..
|
6
|
+
# §require_omissis=conf/arcadia.init
|
7
|
+
# §require_omissis=tk
|
8
|
+
# §require_omissis=tk/label
|
9
|
+
# §require_omissis=tk/toplevel
|
10
|
+
|
11
|
+
|
5
12
|
|
6
13
|
require "conf/arcadia.res"
|
7
14
|
require 'tkextlib/bwidget'
|
8
15
|
require "lib/a-tkcommons"
|
9
16
|
require "lib/a-contracts"
|
10
17
|
require "observer"
|
18
|
+
|
11
19
|
class Arcadia < TkApplication
|
12
20
|
include Observable
|
13
21
|
attr_reader :layout
|
@@ -15,7 +23,7 @@ class Arcadia < TkApplication
|
|
15
23
|
super(
|
16
24
|
ApplicationParams.new(
|
17
25
|
'arcadia',
|
18
|
-
'0.
|
26
|
+
'0.5.0',
|
19
27
|
'conf/arcadia.conf',
|
20
28
|
'conf/arcadia.pers'
|
21
29
|
)
|
@@ -283,7 +291,12 @@ class Arcadia < TkApplication
|
|
283
291
|
publish('main.action.edit_copy',proc{$arcadia['editor'].raised.text.text_copy()})
|
284
292
|
publish('main.action.edit_paste',proc{$arcadia['editor'].raised.text.text_paste()})
|
285
293
|
@splash.next_step('... load actions') if @splash
|
286
|
-
|
294
|
+
#provvisorio
|
295
|
+
@keytest = KeyTest.new
|
296
|
+
@keytest.on_close=proc{@keytest.hide}
|
297
|
+
@keytest.hide
|
298
|
+
@keytest.title("Keys test")
|
299
|
+
publish('action.test.keys', proc{@keytest.show})
|
287
300
|
publish('action.get.font', proc{Tk::BWidget::SelectFont::Dialog.new.create})
|
288
301
|
@splash.next_step if @splash
|
289
302
|
publish('action.show_about', proc{ArcadiaAboutSplash.new.deiconify})
|
@@ -874,6 +887,12 @@ class ArcadiaAboutSplash < TkToplevel
|
|
874
887
|
geometry = _width.to_s+'x'+_height.to_s+'+'+_x.to_s+'+'+_y.to_s
|
875
888
|
Tk.tk_call('wm', 'geometry', self, geometry )
|
876
889
|
bind("Double-Button-1", proc{self.destroy})
|
890
|
+
info = "Ruby version = #{RUBY_VERSION} - TclTk version = #{Arcadia.instance.tcltk_info.level}"
|
891
|
+
set_sysinfo(info)
|
892
|
+
end
|
893
|
+
|
894
|
+
def set_sysinfo(_info)
|
895
|
+
@tkLabelStep.text(_info)
|
877
896
|
end
|
878
897
|
|
879
898
|
def set_progress(_max=10)
|
@@ -967,9 +986,9 @@ end
|
|
967
986
|
class ArcadiaLayout
|
968
987
|
include Observable
|
969
988
|
ArcadiaPanelInfo = Struct.new( "ArcadiaPanelInfo",
|
970
|
-
|
971
|
-
|
972
|
-
|
989
|
+
:name,
|
990
|
+
:title,
|
991
|
+
:frame
|
973
992
|
)
|
974
993
|
|
975
994
|
def initialize(_arcadia, _frame, _autotab=true)
|
@@ -997,7 +1016,21 @@ class ArcadiaLayout
|
|
997
1016
|
p = @panels[_domain]
|
998
1017
|
if p && p['notebook'] != nil
|
999
1018
|
p['notebook'].raise(_extension)
|
1019
|
+
p['notebook'].see(_extension)
|
1020
|
+
end
|
1021
|
+
end
|
1022
|
+
|
1023
|
+
# def raise_panel(_domain_name, _name)
|
1024
|
+
# @panels[_domain_name]['notebook'].raise(_name) if @panels[_domain_name] && @panels[_domain_name]['notebook']
|
1025
|
+
# end
|
1026
|
+
|
1027
|
+
def raised?(_domain, _extension)
|
1028
|
+
ret = false
|
1029
|
+
p = @panels[_domain]
|
1030
|
+
if p && p['notebook'] != nil
|
1031
|
+
ret=p['notebook'].raise == _extension
|
1000
1032
|
end
|
1033
|
+
ret
|
1001
1034
|
end
|
1002
1035
|
|
1003
1036
|
def _prepare_rows(_row,_col, _height, _perc=false, _top_name=nil, _bottom_name=nil)
|
@@ -1176,10 +1209,6 @@ class ArcadiaLayout
|
|
1176
1209
|
#p "unregister #{_name} ------> 5"
|
1177
1210
|
end
|
1178
1211
|
|
1179
|
-
def raise_panel(_domain_name, _name)
|
1180
|
-
@panels[_domain_name]['notebook'].raise(_name) if @panels[_domain_name] && @panels[_domain_name]['notebook']
|
1181
|
-
end
|
1182
|
-
|
1183
1212
|
def [](_row, _col)
|
1184
1213
|
@frames[_row][_col]
|
1185
1214
|
end
|
@@ -1206,3 +1235,5 @@ class ArcadiaLayout
|
|
1206
1235
|
return _frame
|
1207
1236
|
end
|
1208
1237
|
end
|
1238
|
+
|
1239
|
+
|
data/lib/a-tkcommons.rb
CHANGED
@@ -226,7 +226,7 @@ class AGTkVSplittedFrames < AGTkSplittedFrames
|
|
226
226
|
attr_reader :left_frame, :right_frame, :splitter_frame
|
227
227
|
def initialize(parent=nil, width=10, slen=5, perc=false, keys=nil)
|
228
228
|
super(parent, width, slen, keys)
|
229
|
-
|
229
|
+
#self.place('relheight'=>1, 'relwidth'=>1, 'bordermode'=>'outside' )
|
230
230
|
self.pack(:expand=>true, :fill=>:both)
|
231
231
|
@left_frame = TkFrame.new(self, Arcadia.style('panel')){
|
232
232
|
#relief 'flat'
|
@@ -816,6 +816,19 @@ class TkTitledScrollFrame < TkTitledFrame
|
|
816
816
|
|
817
817
|
end
|
818
818
|
|
819
|
+
class TkResizingTitledFrame < TkFrame
|
820
|
+
include TkResizable
|
821
|
+
def initialize(parent=nil, *args)
|
822
|
+
super(parent, *args)
|
823
|
+
@resizing_label=TkLabel.new(self, Arcadia.style('label')){
|
824
|
+
text '-'
|
825
|
+
image TkPhotoImage.new('dat'=>EXPAND_LIGHT_GIF)
|
826
|
+
}.pack('side'=> 'right','anchor'=> 's')
|
827
|
+
start_resizing(@resizing_label, self)
|
828
|
+
end
|
829
|
+
end
|
830
|
+
|
831
|
+
|
819
832
|
class TkFloatTitledFrame < TkBaseTitledFrame
|
820
833
|
include TkMovable
|
821
834
|
include TkResizable
|
@@ -965,3 +978,218 @@ class TclTkInfo
|
|
965
978
|
@level = TclTkIp.new._eval "info patchlevel"
|
966
979
|
end
|
967
980
|
end
|
981
|
+
|
982
|
+
|
983
|
+
class TkScrollText < TkText
|
984
|
+
def initialize(parent=nil, keys={})
|
985
|
+
super(parent, keys)
|
986
|
+
@scroll_width = 15
|
987
|
+
@v_scroll_on = false
|
988
|
+
@h_scroll_on = false
|
989
|
+
@v_scroll = TkScrollbar.new(parent,{
|
990
|
+
'orient'=>'vertical'}.update(Arcadia.style('scrollbar'))
|
991
|
+
)
|
992
|
+
@v_scroll.command(proc{|*args|
|
993
|
+
self.yview *args
|
994
|
+
})
|
995
|
+
self.yscrollcommand(proc{|first,last|
|
996
|
+
self.do_yscrollcommand(first,last)
|
997
|
+
})
|
998
|
+
|
999
|
+
@h_scroll = TkScrollbar.new(parent,{
|
1000
|
+
'orient'=>'horizontal'}.update(Arcadia.style('scrollbar'))
|
1001
|
+
)
|
1002
|
+
@h_scroll.command(proc{|*args|
|
1003
|
+
self.xview *args
|
1004
|
+
})
|
1005
|
+
self.xscrollcommand(proc{|first,last|
|
1006
|
+
self.do_xscrollcommand(first,last)
|
1007
|
+
})
|
1008
|
+
end
|
1009
|
+
def add_yscrollcommand(cmd=Proc.new)
|
1010
|
+
@v_scroll_command = cmd
|
1011
|
+
end
|
1012
|
+
def do_yscrollcommand(first,last)
|
1013
|
+
#p "do_yscrollcommand first=#{first} last=#{last}"
|
1014
|
+
@v_scroll.set(first,last)
|
1015
|
+
@v_scroll_command.call(first,last) if !@v_scroll_command.nil?
|
1016
|
+
end
|
1017
|
+
def add_xscrollcommand(cmd=Proc.new)
|
1018
|
+
@h_scroll_command = cmd
|
1019
|
+
end
|
1020
|
+
def do_xscrollcommand(first,last)
|
1021
|
+
#p "do_xscrollcommand first=#{first} last=#{last}"
|
1022
|
+
@h_scroll.set(first,last)
|
1023
|
+
@h_scroll_command.call(first,last) if !@h_scroll_command.nil?
|
1024
|
+
end
|
1025
|
+
|
1026
|
+
def show(_x=0,_y=0,_border_mode='outside')
|
1027
|
+
@x=_x
|
1028
|
+
@y=_y
|
1029
|
+
place(
|
1030
|
+
'x'=>@x,
|
1031
|
+
'y'=>@y,
|
1032
|
+
'width' => -@x,
|
1033
|
+
'height' => -@y,
|
1034
|
+
'relheight'=>1,
|
1035
|
+
'relwidth'=>1,
|
1036
|
+
'bordermode'=>_border_mode
|
1037
|
+
)
|
1038
|
+
if @v_scroll_on
|
1039
|
+
show_v_scroll
|
1040
|
+
end
|
1041
|
+
if @h_scroll_on
|
1042
|
+
show_h_scroll
|
1043
|
+
end
|
1044
|
+
end
|
1045
|
+
|
1046
|
+
def show_v_scroll
|
1047
|
+
self.place('width' => -@scroll_width-@x)
|
1048
|
+
@v_scroll.pack('side' => 'right', 'fill' => 'y')
|
1049
|
+
@v_scroll_on = true
|
1050
|
+
end
|
1051
|
+
|
1052
|
+
def show_h_scroll
|
1053
|
+
self.place('height' => -@scroll_width-@y)
|
1054
|
+
@h_scroll.pack('side' => 'bottom', 'fill' => 'x')
|
1055
|
+
@h_scroll_on = true
|
1056
|
+
end
|
1057
|
+
|
1058
|
+
def hide_v_scroll
|
1059
|
+
self.place('width' => 0)
|
1060
|
+
@v_scroll.unpack
|
1061
|
+
@v_scroll_on = false
|
1062
|
+
end
|
1063
|
+
|
1064
|
+
def hide_h_scroll
|
1065
|
+
self.place('height' => 0)
|
1066
|
+
@h_scroll.unpack
|
1067
|
+
@h_scroll_on = false
|
1068
|
+
end
|
1069
|
+
|
1070
|
+
end
|
1071
|
+
|
1072
|
+
class TkScrollWidget
|
1073
|
+
def initialize(widget)
|
1074
|
+
@widget = widget
|
1075
|
+
@parent = TkWinfo.parent(@widget)
|
1076
|
+
@scroll_width = 15
|
1077
|
+
@v_scroll_on = false
|
1078
|
+
@h_scroll_on = false
|
1079
|
+
@v_scroll = TkScrollbar.new(@parent,{
|
1080
|
+
'orient'=>'vertical'}.update(Arcadia.style('scrollbar'))
|
1081
|
+
)
|
1082
|
+
@v_scroll.command(proc{|*args|
|
1083
|
+
@widget.yview *args
|
1084
|
+
})
|
1085
|
+
@widget.yscrollcommand(proc{|first,last|
|
1086
|
+
do_yscrollcommand(first,last)
|
1087
|
+
})
|
1088
|
+
|
1089
|
+
@h_scroll = TkScrollbar.new(@parent,{
|
1090
|
+
'orient'=>'horizontal'}.update(Arcadia.style('scrollbar'))
|
1091
|
+
)
|
1092
|
+
@h_scroll.command(proc{|*args|
|
1093
|
+
@widget.xview *args
|
1094
|
+
})
|
1095
|
+
@widget.xscrollcommand(proc{|first,last|
|
1096
|
+
do_xscrollcommand(first,last)
|
1097
|
+
})
|
1098
|
+
end
|
1099
|
+
|
1100
|
+
def add_yscrollcommand(cmd=Proc.new)
|
1101
|
+
@v_scroll_command = cmd
|
1102
|
+
end
|
1103
|
+
|
1104
|
+
def do_yscrollcommand(first,last)
|
1105
|
+
@v_scroll.set(first,last)
|
1106
|
+
@v_scroll_command.call(first,last) if !@v_scroll_command.nil?
|
1107
|
+
end
|
1108
|
+
|
1109
|
+
def add_xscrollcommand(cmd=Proc.new)
|
1110
|
+
@h_scroll_command = cmd
|
1111
|
+
end
|
1112
|
+
|
1113
|
+
def do_xscrollcommand(first,last)
|
1114
|
+
@h_scroll.set(first,last)
|
1115
|
+
@h_scroll_command.call(first,last) if !@h_scroll_command.nil?
|
1116
|
+
end
|
1117
|
+
|
1118
|
+
def show(_x=0,_y=0,_border_mode='outside')
|
1119
|
+
@x=_x
|
1120
|
+
@y=_y
|
1121
|
+
@widget.place(
|
1122
|
+
'x'=>@x,
|
1123
|
+
'y'=>@y,
|
1124
|
+
'width' => -@x,
|
1125
|
+
'height' => -@y,
|
1126
|
+
'relheight'=>1,
|
1127
|
+
'relwidth'=>1,
|
1128
|
+
'bordermode'=>_border_mode
|
1129
|
+
)
|
1130
|
+
if @v_scroll_on
|
1131
|
+
show_v_scroll
|
1132
|
+
end
|
1133
|
+
if @h_scroll_on
|
1134
|
+
show_h_scroll
|
1135
|
+
end
|
1136
|
+
end
|
1137
|
+
|
1138
|
+
def hide
|
1139
|
+
@widget.unplace
|
1140
|
+
@v_scroll.unpack
|
1141
|
+
@h_scroll.unpack
|
1142
|
+
end
|
1143
|
+
|
1144
|
+
def show_v_scroll
|
1145
|
+
@widget.place('width' => -@scroll_width-@x)
|
1146
|
+
@v_scroll.pack('side' => 'right', 'fill' => 'y')
|
1147
|
+
@v_scroll_on = true
|
1148
|
+
end
|
1149
|
+
|
1150
|
+
def show_h_scroll
|
1151
|
+
@widget.place('height' => -@scroll_width-@y)
|
1152
|
+
@h_scroll.pack('side' => 'bottom', 'fill' => 'x')
|
1153
|
+
@h_scroll_on = true
|
1154
|
+
end
|
1155
|
+
|
1156
|
+
def hide_v_scroll
|
1157
|
+
@widget.place('width' => 0)
|
1158
|
+
@v_scroll.unpack
|
1159
|
+
@v_scroll_on = false
|
1160
|
+
end
|
1161
|
+
|
1162
|
+
def hide_h_scroll
|
1163
|
+
@widget.place('height' => 0)
|
1164
|
+
@h_scroll.unpack
|
1165
|
+
@h_scroll_on = false
|
1166
|
+
end
|
1167
|
+
|
1168
|
+
end
|
1169
|
+
|
1170
|
+
class KeyTest < TkFloatTitledFrame
|
1171
|
+
attr_reader :ttest
|
1172
|
+
def initialize(_parent=nil)
|
1173
|
+
_parent = Arcadia.instance.layout.root if _parent.nil?
|
1174
|
+
super(_parent)
|
1175
|
+
|
1176
|
+
#Tk.tk_call('wm', 'title', self, '...hello' )
|
1177
|
+
#Tk.tk_call('wm', 'geometry', self, '638x117+200+257' )
|
1178
|
+
|
1179
|
+
@ttest = TkText.new(self.frame){
|
1180
|
+
background '#FFF454'
|
1181
|
+
#place('relwidth' => '1','relx' => 0,'x' => '0','y' => '0','relheight' => '1','rely' => 0,'height' => '0','bordermode' => 'inside','width' => '0')
|
1182
|
+
}.bind("KeyPress"){|e|
|
1183
|
+
@ttest.insert('end'," "+e.keysym+" ")
|
1184
|
+
break
|
1185
|
+
}
|
1186
|
+
_wrapper = TkScrollWidget.new(@ttest)
|
1187
|
+
_wrapper.show
|
1188
|
+
_wrapper.show_v_scroll
|
1189
|
+
_wrapper.show_h_scroll
|
1190
|
+
place('x'=>100,'y'=>100,'height'=> 220,'width'=> 500)
|
1191
|
+
end
|
1192
|
+
end
|
1193
|
+
|
1194
|
+
|
1195
|
+
|