arcadia 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (179) hide show
  1. data/README +8 -10
  2. data/bin/arcadia +13 -13
  3. data/bin/arcadia.bat +0 -0
  4. data/conf/arcadia.conf +35 -18
  5. data/conf/arcadia.init.rb +0 -0
  6. data/conf/arcadia.res.rb +10 -0
  7. data/ext/ae-breakpoints/ae-breakpoints.conf +0 -0
  8. data/ext/ae-breakpoints/ae-breakpoints.rb +368 -349
  9. data/ext/ae-editor/ae-editor.conf +2 -2
  10. data/ext/ae-editor/ae-editor.rb +1248 -445
  11. data/ext/ae-editor/langs/conf.lang +0 -0
  12. data/ext/ae-editor/langs/lang.lang.bind +0 -0
  13. data/ext/ae-editor/langs/rb.lang +0 -0
  14. data/ext/ae-editor/langs/rbw.lang.bind +0 -0
  15. data/ext/ae-file-history/ae-file-history.conf +1 -1
  16. data/ext/ae-file-history/ae-file-history.rb +23 -17
  17. data/ext/ae-output/ae-output.conf +0 -0
  18. data/ext/ae-output/ae-output.rb +262 -200
  19. data/ext/ae-rad/ae-rad-inspector.rb +34 -26
  20. data/ext/ae-rad/ae-rad-libs.rb +0 -0
  21. data/ext/ae-rad/ae-rad-palette.rb +0 -0
  22. data/ext/ae-rad/ae-rad.conf +0 -0
  23. data/ext/ae-rad/ae-rad.rb +0 -0
  24. data/ext/ae-rad/lib/tk/al-tk.rb +6 -2
  25. data/ext/ae-rad/lib/tk/al-tk.res.rb +0 -0
  26. data/ext/ae-rad/lib/tk/al-tkarcadia.rb +0 -0
  27. data/ext/ae-rad/lib/tk/al-tkcustom.rb +0 -0
  28. data/ext/ae-rad/lib/tkext/al-bwidget.rb +0 -0
  29. data/ext/ae-rad/lib/tkext/al-iwidgets.rb +0 -0
  30. data/ext/ae-rad/lib/tkext/al-tile.rb +0 -0
  31. data/ext/ae-rad/lib/tkext/al-tktable.rb +0 -0
  32. data/ext/ae-ruby-debug/ae-ruby-debug.conf +0 -0
  33. data/ext/ae-ruby-debug/ae-ruby-debug.rb +1 -0
  34. data/ext/ae-search-in-files/ae-search-in-files.conf +0 -0
  35. data/ext/ae-search-in-files/ae-search-in-files.rb +14 -10
  36. data/ext/ae-shell/ae-shell.conf +0 -0
  37. data/ext/ae-shell/ae-shell.rb +1 -1
  38. data/ext/ae-shell/sh.rb +0 -0
  39. data/lib/a-commons.rb +5 -1
  40. data/lib/a-contracts.rb +1 -0
  41. data/lib/a-core.rb +40 -9
  42. data/lib/a-tkcommons.rb +229 -1
  43. data/tcl/BWidget-1.8.0/BWman/ArrowButton.html +0 -0
  44. data/tcl/BWidget-1.8.0/BWman/BWidget.html +0 -0
  45. data/tcl/BWidget-1.8.0/BWman/Button.html +0 -0
  46. data/tcl/BWidget-1.8.0/BWman/ButtonBox.html +0 -0
  47. data/tcl/BWidget-1.8.0/BWman/ComboBox.html +0 -0
  48. data/tcl/BWidget-1.8.0/BWman/Dialog.html +0 -0
  49. data/tcl/BWidget-1.8.0/BWman/DragSite.html +0 -0
  50. data/tcl/BWidget-1.8.0/BWman/DropSite.html +0 -0
  51. data/tcl/BWidget-1.8.0/BWman/DynamicHelp.html +0 -0
  52. data/tcl/BWidget-1.8.0/BWman/Entry.html +0 -0
  53. data/tcl/BWidget-1.8.0/BWman/Label.html +0 -0
  54. data/tcl/BWidget-1.8.0/BWman/LabelEntry.html +0 -0
  55. data/tcl/BWidget-1.8.0/BWman/LabelFrame.html +0 -0
  56. data/tcl/BWidget-1.8.0/BWman/ListBox.html +0 -0
  57. data/tcl/BWidget-1.8.0/BWman/MainFrame.html +0 -0
  58. data/tcl/BWidget-1.8.0/BWman/MessageDlg.html +0 -0
  59. data/tcl/BWidget-1.8.0/BWman/NoteBook.html +0 -0
  60. data/tcl/BWidget-1.8.0/BWman/PagesManager.html +0 -0
  61. data/tcl/BWidget-1.8.0/BWman/PanedWindow.html +0 -0
  62. data/tcl/BWidget-1.8.0/BWman/PanelFrame.html +0 -0
  63. data/tcl/BWidget-1.8.0/BWman/PasswdDlg.html +0 -0
  64. data/tcl/BWidget-1.8.0/BWman/ProgressBar.html +0 -0
  65. data/tcl/BWidget-1.8.0/BWman/ProgressDlg.html +0 -0
  66. data/tcl/BWidget-1.8.0/BWman/ScrollView.html +0 -0
  67. data/tcl/BWidget-1.8.0/BWman/ScrollableFrame.html +0 -0
  68. data/tcl/BWidget-1.8.0/BWman/ScrolledWindow.html +0 -0
  69. data/tcl/BWidget-1.8.0/BWman/SelectColor.html +0 -0
  70. data/tcl/BWidget-1.8.0/BWman/SelectFont.html +0 -0
  71. data/tcl/BWidget-1.8.0/BWman/Separator.html +0 -0
  72. data/tcl/BWidget-1.8.0/BWman/SpinBox.html +0 -0
  73. data/tcl/BWidget-1.8.0/BWman/StatusBar.html +0 -0
  74. data/tcl/BWidget-1.8.0/BWman/TitleFrame.html +0 -0
  75. data/tcl/BWidget-1.8.0/BWman/Tree.html +0 -0
  76. data/tcl/BWidget-1.8.0/BWman/Widget.html +0 -0
  77. data/tcl/BWidget-1.8.0/BWman/contents.html +0 -0
  78. data/tcl/BWidget-1.8.0/BWman/index.html +0 -0
  79. data/tcl/BWidget-1.8.0/BWman/navtree.html +0 -0
  80. data/tcl/BWidget-1.8.0/BWman/options.htm +0 -0
  81. data/tcl/BWidget-1.8.0/CHANGES.txt +0 -0
  82. data/tcl/BWidget-1.8.0/ChangeLog +0 -0
  83. data/tcl/BWidget-1.8.0/LICENSE.txt +0 -0
  84. data/tcl/BWidget-1.8.0/README.txt +0 -0
  85. data/tcl/BWidget-1.8.0/arrow.tcl +0 -0
  86. data/tcl/BWidget-1.8.0/bitmap.tcl +0 -0
  87. data/tcl/BWidget-1.8.0/button.tcl +0 -0
  88. data/tcl/BWidget-1.8.0/buttonbox.tcl +0 -0
  89. data/tcl/BWidget-1.8.0/color.tcl +0 -0
  90. data/tcl/BWidget-1.8.0/combobox.tcl +0 -0
  91. data/tcl/BWidget-1.8.0/demo/basic.tcl +0 -0
  92. data/tcl/BWidget-1.8.0/demo/bwidget.xbm +0 -0
  93. data/tcl/BWidget-1.8.0/demo/demo.tcl +0 -0
  94. data/tcl/BWidget-1.8.0/demo/dnd.tcl +0 -0
  95. data/tcl/BWidget-1.8.0/demo/manager.tcl +0 -0
  96. data/tcl/BWidget-1.8.0/demo/select.tcl +0 -0
  97. data/tcl/BWidget-1.8.0/demo/tmpldlg.tcl +0 -0
  98. data/tcl/BWidget-1.8.0/demo/tree.tcl +0 -0
  99. data/tcl/BWidget-1.8.0/demo/x1.xbm +0 -0
  100. data/tcl/BWidget-1.8.0/dialog.tcl +0 -0
  101. data/tcl/BWidget-1.8.0/dragsite.tcl +0 -0
  102. data/tcl/BWidget-1.8.0/dropsite.tcl +0 -0
  103. data/tcl/BWidget-1.8.0/dynhelp.tcl +0 -0
  104. data/tcl/BWidget-1.8.0/entry.tcl +0 -0
  105. data/tcl/BWidget-1.8.0/font.tcl +0 -0
  106. data/tcl/BWidget-1.8.0/images/bold.gif +0 -0
  107. data/tcl/BWidget-1.8.0/images/copy.gif +0 -0
  108. data/tcl/BWidget-1.8.0/images/cut.gif +0 -0
  109. data/tcl/BWidget-1.8.0/images/dragfile.gif +0 -0
  110. data/tcl/BWidget-1.8.0/images/dragicon.gif +0 -0
  111. data/tcl/BWidget-1.8.0/images/error.gif +0 -0
  112. data/tcl/BWidget-1.8.0/images/file.gif +0 -0
  113. data/tcl/BWidget-1.8.0/images/folder.gif +0 -0
  114. data/tcl/BWidget-1.8.0/images/hourglass.gif +0 -0
  115. data/tcl/BWidget-1.8.0/images/info.gif +0 -0
  116. data/tcl/BWidget-1.8.0/images/italic.gif +0 -0
  117. data/tcl/BWidget-1.8.0/images/minus.xbm +0 -0
  118. data/tcl/BWidget-1.8.0/images/new.gif +0 -0
  119. data/tcl/BWidget-1.8.0/images/opcopy.xbm +0 -0
  120. data/tcl/BWidget-1.8.0/images/open.gif +0 -0
  121. data/tcl/BWidget-1.8.0/images/openfold.gif +0 -0
  122. data/tcl/BWidget-1.8.0/images/oplink.xbm +0 -0
  123. data/tcl/BWidget-1.8.0/images/opmove.xbm +0 -0
  124. data/tcl/BWidget-1.8.0/images/overstrike.gif +0 -0
  125. data/tcl/BWidget-1.8.0/images/palette.gif +0 -0
  126. data/tcl/BWidget-1.8.0/images/passwd.gif +0 -0
  127. data/tcl/BWidget-1.8.0/images/paste.gif +0 -0
  128. data/tcl/BWidget-1.8.0/images/plus.xbm +0 -0
  129. data/tcl/BWidget-1.8.0/images/print.gif +0 -0
  130. data/tcl/BWidget-1.8.0/images/question.gif +0 -0
  131. data/tcl/BWidget-1.8.0/images/redo.gif +0 -0
  132. data/tcl/BWidget-1.8.0/images/save.gif +0 -0
  133. data/tcl/BWidget-1.8.0/images/target.xbm +0 -0
  134. data/tcl/BWidget-1.8.0/images/underline.gif +0 -0
  135. data/tcl/BWidget-1.8.0/images/undo.gif +0 -0
  136. data/tcl/BWidget-1.8.0/images/warning.gif +0 -0
  137. data/tcl/BWidget-1.8.0/init.tcl +0 -0
  138. data/tcl/BWidget-1.8.0/label.tcl +0 -0
  139. data/tcl/BWidget-1.8.0/labelentry.tcl +0 -0
  140. data/tcl/BWidget-1.8.0/labelframe.tcl +0 -0
  141. data/tcl/BWidget-1.8.0/lang/da.rc +0 -0
  142. data/tcl/BWidget-1.8.0/lang/de.rc +0 -0
  143. data/tcl/BWidget-1.8.0/lang/en.rc +0 -0
  144. data/tcl/BWidget-1.8.0/lang/es.rc +0 -0
  145. data/tcl/BWidget-1.8.0/lang/fr.rc +0 -0
  146. data/tcl/BWidget-1.8.0/listbox.tcl +0 -0
  147. data/tcl/BWidget-1.8.0/mainframe.tcl +0 -0
  148. data/tcl/BWidget-1.8.0/messagedlg.tcl +0 -0
  149. data/tcl/BWidget-1.8.0/notebook.tcl +0 -0
  150. data/tcl/BWidget-1.8.0/pagesmgr.tcl +0 -0
  151. data/tcl/BWidget-1.8.0/panedw.tcl +0 -0
  152. data/tcl/BWidget-1.8.0/panelframe.tcl +0 -0
  153. data/tcl/BWidget-1.8.0/passwddlg.tcl +0 -0
  154. data/tcl/BWidget-1.8.0/pkgIndex.tcl +0 -0
  155. data/tcl/BWidget-1.8.0/progressbar.tcl +0 -0
  156. data/tcl/BWidget-1.8.0/progressdlg.tcl +0 -0
  157. data/tcl/BWidget-1.8.0/scrollframe.tcl +0 -0
  158. data/tcl/BWidget-1.8.0/scrollview.tcl +0 -0
  159. data/tcl/BWidget-1.8.0/scrollw.tcl +0 -0
  160. data/tcl/BWidget-1.8.0/separator.tcl +0 -0
  161. data/tcl/BWidget-1.8.0/spinbox.tcl +0 -0
  162. data/tcl/BWidget-1.8.0/statusbar.tcl +0 -0
  163. data/tcl/BWidget-1.8.0/tests/entry.test +0 -0
  164. data/tcl/BWidget-1.8.0/titleframe.tcl +0 -0
  165. data/tcl/BWidget-1.8.0/tree.tcl +0 -0
  166. data/tcl/BWidget-1.8.0/utils.tcl +0 -0
  167. data/tcl/BWidget-1.8.0/widget.tcl +0 -0
  168. data/tcl/BWidget-1.8.0/wizard.tcl +0 -0
  169. data/tcl/BWidget-1.8.0/xpm2image.tcl +0 -0
  170. metadata +2 -25
  171. data/ext/ae-complete-code/ae-complete-code.conf +0 -6
  172. data/ext/ae-complete-code/ae-complete-code.rb +0 -74
  173. data/ext/ae-doc-code/ae-doc-code.conf +0 -15
  174. data/ext/ae-doc-code/ae-doc-code.rb +0 -300
  175. data/ext/ae-event-log/ae-event-log.conf +0 -5
  176. data/ext/ae-event-log/ae-event-log.rb +0 -46
  177. data/ext/ae-flag/ae-flag.conf +0 -6
  178. data/ext/ae-flag/ae-flag.rb +0 -12
  179. 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
- #'relief'=>'groove'
278
+ 'borderwidth'=>'1',
279
+ 'relief'=>'groove'
279
280
  }))
280
281
 
281
282
  TkTextWindow.new(@parent.right_text, 'end', 'window'=> @labelkey)
282
283
 
283
- #@labelkey.pack('fill'=>'x',:padx=>0, :pady=>0)
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
- # pack('fill'=>'x',:padx=>0, :pady=>0)
361
+ borderwidth '1'
362
+ relief 'groove'
362
363
  }
363
364
 
364
- TkTextWindow.new(@parent.left_text, 'end',
365
- 'window'=> @propkey)
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
- @bar = TkScrollbar.new(_host, Arcadia.style('scrollbar')).pack('side'=>'right', 'fill'=>'y')
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
- # @left_text = TkText.new(@pwind.left_frame, 'relief'=>'flat').pack('expand'=>'yes', 'fill'=>'both')
560
- # @right_text = TkText.new(@pwind.right_frame, 'relief'=>'flat').pack('expand'=>'yes', 'fill'=>'both')
561
- @bar.command(proc { |*args|
562
- @left_text.yview(*args)
563
- @right_text.yview(*args)
564
- })
565
- @left_text.yscrollcommand(proc { |first, last|
566
- @bar.set(first, last)
567
- })
568
- @right_text.yscrollcommand(proc { |first, last|
569
- @bar.set(first, last)
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
- #:relief=>:groove,
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=>1
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 + ''+_result
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)
File without changes
File without changes
File without changes
File without changes
@@ -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|
@@ -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(_h_frame, Arcadia.style('button') ){
259
+ @b_dir = TkButton.new(@e_dir, Arcadia.style('button') ){
260
260
  compound 'none'
261
261
  default 'disabled'
262
262
  text '...'
263
- #overrelief 'raised'
264
- #justify 'center'
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
- _d = Tk.chooseDirectory('initialdir'=>@e_dir.text,'mustexist'=>true)
268
- if _d && _d.strip.length > 0
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
File without changes
@@ -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
File without changes
@@ -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
@@ -164,6 +164,7 @@ class RunRubyFileEvent < ArcadiaEvent
164
164
  attr_accessor :output
165
165
  end
166
166
  attr_accessor :file
167
+ attr_accessor :persistent
167
168
  end
168
169
 
169
170
  class InputEvent < ArcadiaEvent
@@ -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.4.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
- publish('action.test.keys', proc{KetTest.new})
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
- :name,
971
- :title,
972
- :frame
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
+
@@ -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
+