arcadia 0.1.1 → 0.1.2

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.
Files changed (167) hide show
  1. data/README +126 -123
  2. data/arcadia.rb +770 -756
  3. data/base/a-contracts.rb +130 -93
  4. data/base/a-ext.rb +280 -280
  5. data/base/a-libs.rb +5 -11
  6. data/base/a-utils.rb +235 -44
  7. data/conf/arcadia.conf +20 -16
  8. data/conf/arcadia.init.rb +0 -0
  9. data/conf/arcadia.res.rb +74 -0
  10. data/ext/ae-complete-code/ae-complete-code.conf +0 -0
  11. data/ext/ae-complete-code/ae-complete-code.rb +80 -79
  12. data/ext/ae-debug/ae-debug.conf +0 -0
  13. data/ext/ae-debug/ae-debug.rb +2 -6
  14. data/ext/ae-debug/debug1.57.rb +0 -0
  15. data/ext/ae-doc-code/ae-doc-code.conf +15 -0
  16. data/ext/ae-doc-code/ae-doc-code.rb +289 -0
  17. data/ext/ae-editor/ae-editor.conf +17 -8
  18. data/ext/ae-editor/ae-editor.rb +738 -396
  19. data/ext/ae-event-log/ae-event-log.conf +0 -0
  20. data/ext/ae-event-log/ae-event-log.rb +0 -0
  21. data/ext/ae-file-history/ae-file-history.conf +2 -2
  22. data/ext/ae-file-history/ae-file-history.rb +286 -290
  23. data/ext/ae-inspector/ae-inspector.conf +0 -0
  24. data/ext/ae-inspector/ae-inspector.rb +0 -0
  25. data/ext/ae-output-event/ae-output-event.conf +2 -2
  26. data/ext/ae-output/ae-output.conf +2 -2
  27. data/ext/ae-output/ae-output.rb +173 -178
  28. data/ext/ae-palette/ae-palette.conf +0 -0
  29. data/ext/ae-palette/ae-palette.rb +0 -0
  30. data/ext/ae-shell/ae-shell.conf +0 -0
  31. data/ext/ae-shell/ae-shell.rb +54 -54
  32. data/lib/tk/al-tk.rb +3076 -3082
  33. data/lib/tk/al-tk.res.rb +0 -0
  34. data/lib/tk/al-tkarcadia.rb +0 -0
  35. data/lib/tk/al-tkcustom.rb +0 -0
  36. data/lib/tkext/al-bwidget.rb +0 -0
  37. data/lib/tkext/al-iwidgets.rb +0 -0
  38. data/lib/tkext/al-tile.rb +0 -0
  39. data/lib/tkext/al-tktable.rb +0 -0
  40. data/tcl/BWidget-1.8.0/BWman/ArrowButton.html +276 -0
  41. data/tcl/BWidget-1.8.0/BWman/BWidget.html +228 -0
  42. data/tcl/BWidget-1.8.0/BWman/Button.html +273 -0
  43. data/tcl/BWidget-1.8.0/BWman/ButtonBox.html +264 -0
  44. data/tcl/BWidget-1.8.0/BWman/ComboBox.html +402 -0
  45. data/tcl/BWidget-1.8.0/BWman/Dialog.html +314 -0
  46. data/tcl/BWidget-1.8.0/BWman/DragSite.html +139 -0
  47. data/tcl/BWidget-1.8.0/BWman/DropSite.html +254 -0
  48. data/tcl/BWidget-1.8.0/BWman/DynamicHelp.html +248 -0
  49. data/tcl/BWidget-1.8.0/BWman/Entry.html +341 -0
  50. data/tcl/BWidget-1.8.0/BWman/Label.html +331 -0
  51. data/tcl/BWidget-1.8.0/BWman/LabelEntry.html +194 -0
  52. data/tcl/BWidget-1.8.0/BWman/LabelFrame.html +144 -0
  53. data/tcl/BWidget-1.8.0/BWman/ListBox.html +678 -0
  54. data/tcl/BWidget-1.8.0/BWman/MainFrame.html +283 -0
  55. data/tcl/BWidget-1.8.0/BWman/MessageDlg.html +218 -0
  56. data/tcl/BWidget-1.8.0/BWman/NoteBook.html +374 -0
  57. data/tcl/BWidget-1.8.0/BWman/PagesManager.html +180 -0
  58. data/tcl/BWidget-1.8.0/BWman/PanedWindow.html +142 -0
  59. data/tcl/BWidget-1.8.0/BWman/PanelFrame.html +153 -0
  60. data/tcl/BWidget-1.8.0/BWman/PasswdDlg.html +214 -0
  61. data/tcl/BWidget-1.8.0/BWman/ProgressBar.html +152 -0
  62. data/tcl/BWidget-1.8.0/BWman/ProgressDlg.html +145 -0
  63. data/tcl/BWidget-1.8.0/BWman/ScrollView.html +130 -0
  64. data/tcl/BWidget-1.8.0/BWman/ScrollableFrame.html +191 -0
  65. data/tcl/BWidget-1.8.0/BWman/ScrolledWindow.html +116 -0
  66. data/tcl/BWidget-1.8.0/BWman/SelectColor.html +164 -0
  67. data/tcl/BWidget-1.8.0/BWman/SelectFont.html +152 -0
  68. data/tcl/BWidget-1.8.0/BWman/Separator.html +77 -0
  69. data/tcl/BWidget-1.8.0/BWman/SpinBox.html +250 -0
  70. data/tcl/BWidget-1.8.0/BWman/StatusBar.html +147 -0
  71. data/tcl/BWidget-1.8.0/BWman/TitleFrame.html +107 -0
  72. data/tcl/BWidget-1.8.0/BWman/Tree.html +947 -0
  73. data/tcl/BWidget-1.8.0/BWman/Widget.html +502 -0
  74. data/tcl/BWidget-1.8.0/BWman/contents.html +84 -0
  75. data/tcl/BWidget-1.8.0/BWman/index.html +7 -0
  76. data/tcl/BWidget-1.8.0/BWman/navtree.html +41 -0
  77. data/tcl/BWidget-1.8.0/BWman/options.htm +458 -0
  78. data/tcl/BWidget-1.8.0/CHANGES.txt +266 -0
  79. data/tcl/BWidget-1.8.0/ChangeLog +1641 -0
  80. data/tcl/BWidget-1.8.0/LICENSE.txt +41 -0
  81. data/tcl/BWidget-1.8.0/README.txt +127 -0
  82. data/tcl/BWidget-1.8.0/arrow.tcl +551 -0
  83. data/tcl/BWidget-1.8.0/bitmap.tcl +94 -0
  84. data/tcl/BWidget-1.8.0/button.tcl +324 -0
  85. data/tcl/BWidget-1.8.0/buttonbox.tcl +403 -0
  86. data/tcl/BWidget-1.8.0/color.tcl +493 -0
  87. data/tcl/BWidget-1.8.0/combobox.tcl +809 -0
  88. data/tcl/BWidget-1.8.0/demo/basic.tcl +199 -0
  89. data/tcl/BWidget-1.8.0/demo/bwidget.xbm +46 -0
  90. data/tcl/BWidget-1.8.0/demo/demo.tcl +212 -0
  91. data/tcl/BWidget-1.8.0/demo/dnd.tcl +42 -0
  92. data/tcl/BWidget-1.8.0/demo/manager.tcl +141 -0
  93. data/tcl/BWidget-1.8.0/demo/select.tcl +59 -0
  94. data/tcl/BWidget-1.8.0/demo/tmpldlg.tcl +214 -0
  95. data/tcl/BWidget-1.8.0/demo/tree.tcl +260 -0
  96. data/tcl/BWidget-1.8.0/demo/x1.xbm +2258 -0
  97. data/tcl/BWidget-1.8.0/dialog.tcl +345 -0
  98. data/tcl/BWidget-1.8.0/dragsite.tcl +197 -0
  99. data/tcl/BWidget-1.8.0/dropsite.tcl +455 -0
  100. data/tcl/BWidget-1.8.0/dynhelp.tcl +625 -0
  101. data/tcl/BWidget-1.8.0/entry.tcl +469 -0
  102. data/tcl/BWidget-1.8.0/font.tcl +566 -0
  103. data/tcl/BWidget-1.8.0/images/bold.gif +0 -0
  104. data/tcl/BWidget-1.8.0/images/copy.gif +0 -0
  105. data/tcl/BWidget-1.8.0/images/cut.gif +0 -0
  106. data/tcl/BWidget-1.8.0/images/dragfile.gif +0 -0
  107. data/tcl/BWidget-1.8.0/images/dragicon.gif +0 -0
  108. data/tcl/BWidget-1.8.0/images/error.gif +0 -0
  109. data/tcl/BWidget-1.8.0/images/file.gif +0 -0
  110. data/tcl/BWidget-1.8.0/images/folder.gif +0 -0
  111. data/tcl/BWidget-1.8.0/images/hourglass.gif +0 -0
  112. data/tcl/BWidget-1.8.0/images/info.gif +0 -0
  113. data/tcl/BWidget-1.8.0/images/italic.gif +0 -0
  114. data/tcl/BWidget-1.8.0/images/minus.xbm +5 -0
  115. data/tcl/BWidget-1.8.0/images/new.gif +0 -0
  116. data/tcl/BWidget-1.8.0/images/opcopy.xbm +5 -0
  117. data/tcl/BWidget-1.8.0/images/open.gif +0 -0
  118. data/tcl/BWidget-1.8.0/images/openfold.gif +0 -0
  119. data/tcl/BWidget-1.8.0/images/oplink.xbm +5 -0
  120. data/tcl/BWidget-1.8.0/images/opmove.xbm +5 -0
  121. data/tcl/BWidget-1.8.0/images/overstrike.gif +0 -0
  122. data/tcl/BWidget-1.8.0/images/palette.gif +0 -0
  123. data/tcl/BWidget-1.8.0/images/passwd.gif +0 -0
  124. data/tcl/BWidget-1.8.0/images/paste.gif +0 -0
  125. data/tcl/BWidget-1.8.0/images/plus.xbm +5 -0
  126. data/tcl/BWidget-1.8.0/images/print.gif +0 -0
  127. data/tcl/BWidget-1.8.0/images/question.gif +0 -0
  128. data/tcl/BWidget-1.8.0/images/redo.gif +0 -0
  129. data/tcl/BWidget-1.8.0/images/save.gif +0 -0
  130. data/tcl/BWidget-1.8.0/images/target.xbm +9 -0
  131. data/tcl/BWidget-1.8.0/images/underline.gif +0 -0
  132. data/tcl/BWidget-1.8.0/images/undo.gif +0 -0
  133. data/tcl/BWidget-1.8.0/images/warning.gif +0 -0
  134. data/tcl/BWidget-1.8.0/init.tcl +40 -0
  135. data/tcl/BWidget-1.8.0/label.tcl +271 -0
  136. data/tcl/BWidget-1.8.0/labelentry.tcl +100 -0
  137. data/tcl/BWidget-1.8.0/labelframe.tcl +160 -0
  138. data/tcl/BWidget-1.8.0/lang/da.rc +52 -0
  139. data/tcl/BWidget-1.8.0/lang/de.rc +52 -0
  140. data/tcl/BWidget-1.8.0/lang/en.rc +52 -0
  141. data/tcl/BWidget-1.8.0/lang/es.rc +53 -0
  142. data/tcl/BWidget-1.8.0/lang/fr.rc +52 -0
  143. data/tcl/BWidget-1.8.0/listbox.tcl +1638 -0
  144. data/tcl/BWidget-1.8.0/mainframe.tcl +711 -0
  145. data/tcl/BWidget-1.8.0/messagedlg.tcl +128 -0
  146. data/tcl/BWidget-1.8.0/notebook.tcl +1164 -0
  147. data/tcl/BWidget-1.8.0/pagesmgr.tcl +294 -0
  148. data/tcl/BWidget-1.8.0/panedw.tcl +381 -0
  149. data/tcl/BWidget-1.8.0/panelframe.tcl +246 -0
  150. data/tcl/BWidget-1.8.0/passwddlg.tcl +178 -0
  151. data/tcl/BWidget-1.8.0/pkgIndex.tcl +47 -0
  152. data/tcl/BWidget-1.8.0/progressbar.tcl +208 -0
  153. data/tcl/BWidget-1.8.0/progressdlg.tcl +87 -0
  154. data/tcl/BWidget-1.8.0/scrollframe.tcl +226 -0
  155. data/tcl/BWidget-1.8.0/scrollview.tcl +254 -0
  156. data/tcl/BWidget-1.8.0/scrollw.tcl +280 -0
  157. data/tcl/BWidget-1.8.0/separator.tcl +75 -0
  158. data/tcl/BWidget-1.8.0/spinbox.tcl +331 -0
  159. data/tcl/BWidget-1.8.0/statusbar.tcl +422 -0
  160. data/tcl/BWidget-1.8.0/tests/entry.test +173 -0
  161. data/tcl/BWidget-1.8.0/titleframe.tcl +170 -0
  162. data/tcl/BWidget-1.8.0/tree.tcl +2228 -0
  163. data/tcl/BWidget-1.8.0/utils.tcl +645 -0
  164. data/tcl/BWidget-1.8.0/widget.tcl +1576 -0
  165. data/tcl/BWidget-1.8.0/wizard.tcl +1028 -0
  166. data/tcl/BWidget-1.8.0/xpm2image.tcl +115 -0
  167. metadata +141 -5
@@ -3,7 +3,7 @@
3
3
  # by Antonio Galeone <antonio-galeone@rubyforge.org>
4
4
  #
5
5
 
6
- # Catalog of all contracts used by exstension. This astraction guarantees
6
+ # Catalog of all contracts used by extensions. This astraction guarantees
7
7
  # the separation of ext
8
8
  # contract must extend AeContract
9
9
 
@@ -23,24 +23,25 @@ class MainContract < ArcadiaContract
23
23
  RAISE_EXTENSION = "RAISE_EXTENSION"
24
24
  EVENT_HANDLED = "EVENT_HANDLED"
25
25
 
26
- def event_handled(_tobj)
27
- raise_event(EVENT_HANDLED, _tobj)
26
+
27
+ def event_handled(_sender, *args)
28
+ raise_event(EVENT_HANDLED, TMainObj.new(_sender, *args))
28
29
  end
29
30
 
30
- def extension_before_build(_tobj)
31
- raise_event(EXTENSION_BEFORE_BUILD, _tobj)
31
+ def extension_before_build(_sender, *args)
32
+ raise_event(EXTENSION_BEFORE_BUILD, TMainObj.new(_sender, *args))
32
33
  end
33
34
 
34
- def extension_build(_tobj)
35
- raise_event(EXTENSION_BUILD, _tobj)
35
+ def extension_build(_sender, *args)
36
+ raise_event(EXTENSION_BUILD, TMainObj.new(_sender, *args))
36
37
  end
37
38
 
38
- def extension_after_build(_tobj)
39
- raise_event(EXTENSION_AFTER_BUILD, _tobj)
39
+ def extension_after_build(_sender, *args)
40
+ raise_event(EXTENSION_AFTER_BUILD, TMainObj.new(_sender, *args))
40
41
  end
41
42
 
42
- def raise_extension(_tobj)
43
- raise_action(RAISE_EXTENSION, _tobj)
43
+ def raise_extension(_sender, *args)
44
+ raise_event(RAISE_EXTENSION, TMainObj.new(_sender, *args))
44
45
  end
45
46
 
46
47
  end
@@ -48,63 +49,111 @@ end
48
49
 
49
50
  class EditorContract < ArcadiaContract
50
51
  class TEditorObj < TObj
51
- attr_accessor :file, :line, :col, :title, :text, :candidates
52
+ attr_accessor :file, :line, :col, :title, :text, :candidates, :xdoc, :ydoc, :doc_entry,:doc
52
53
  end
53
54
  OPEN_FILE = "OPEN_FILE"
54
55
  CLOSE_FILE = "CLOSE_FILE"
56
+ SHOW_SEARCH_DIALOG = "SHOW_SEARCH_DIALOG"
57
+ SHOW_GOTO_LINE_DIALOG = "SHOW_GOTO_LINE_DIALOG"
58
+ SAVE_FILE = "SAVE_FILE"
59
+ SAVE_AS_FILE = "SAVE_AS_FILE"
60
+ SAVE_FILE_RAISED = "SAVE_FILE_RAISED"
61
+ SAVE_AS_FILE_RAISED = "SAVE_AS_FILE_RAISED"
55
62
  OPEN_TEXT = "OPEN_TEXT"
63
+ COMPLETE_CODE = "COMPLETE_CODE"
64
+ DOC_CODE = "DOC_CODE"
56
65
 
57
- AFTER_CREATE = "AFTER_CREATE"
66
+ #AFTER_CREATE = "AFTER_CREATE"
58
67
  BREAKPOINT_AFTER_CREATE = "BREAKPOINT_AFTER_CREATE"
59
68
  BREAKPOINT_AFTER_DELETE = "BREAKPOINT_AFTER_DELETE"
60
69
  BREAKPOINTS_AFTER_CREATE = "BREAKPOINTS_AFTER_CREATE"
61
70
  BREAKPOINTS_AFTER_DELETE = "BREAKPOINTS_AFTER_DELETE"
62
71
  FILE_AFTER_OPEN = "FILE_AFTER_OPEN"
63
72
  FILE_AFTER_CLOSE = "FILE_AFTER_CLOSE"
73
+ FILE_AFTER_SAVE = "FILE_AFTER_SAVE"
74
+ FILE_AFTER_CREATE = "FILE_AFTER_CREATE"
64
75
  BUFFER_AFTER_RAISE = "BUFFER_AFTER_RAISE"
65
- COMPLETE_CODE = "COMPLETE_CODE"
66
-
67
- def open_file(_tobj)
68
- raise_action(OPEN_FILE, _tobj)
76
+
77
+ def open_file(_sender, *args)
78
+ raise_action(OPEN_FILE, TEditorObj.new(_sender, *args))
69
79
  end
70
-
71
- def close_file(_tobj)
72
- raise_action(CLOSE_FILE, _tobj)
80
+
81
+ def close_file(_sender, *args)
82
+ raise_action(CLOSE_FILE, TEditorObj.new(_sender, *args))
73
83
  end
74
-
75
- def open_text(_tobj)
76
- raise_action(OPEN_TEXT, _tobj)
84
+
85
+ def save_file(_sender, *args)
86
+ raise_action(SAVE_FILE, TEditorObj.new(_sender, *args))
87
+ end
88
+
89
+ def save_file_raised(_sender, *args)
90
+ raise_action(SAVE_FILE_RAISED, TEditorObj.new(_sender, *args))
91
+ end
92
+
93
+ def save_as_file(_sender, *args)
94
+ raise_action(SAVE_AS_FILE, TEditorObj.new(_sender, *args))
95
+ end
96
+
97
+ def save_as_file_raised(_sender, *args)
98
+ raise_action(SAVE_AS_FILE_RAISED, TEditorObj.new(_sender, *args))
99
+ end
100
+
101
+ def show_search_dialog(_sender, *args)
102
+ raise_action(SHOW_SEARCH_DIALOG, TEditorObj.new(_sender, *args))
103
+ end
104
+
105
+
106
+ def show_goto_line_dialog(_sender, *args)
107
+ raise_action(SHOW_GOTO_LINE_DIALOG, TEditorObj.new(_sender, *args))
108
+ end
109
+
110
+ def open_text(_sender, *args)
111
+ raise_action(OPEN_TEXT, TEditorObj.new(_sender, *args))
77
112
  end
78
113
 
79
- def complete_code(_tobj)
80
- raise_action(COMPLETE_CODE, _tobj)
114
+ def complete_code(_sender, *args)
115
+ raise_action(COMPLETE_CODE, TEditorObj.new(_sender, *args))
81
116
  end
82
117
 
83
- def file_opened(_tobj=nil)
84
- raise_event(FILE_AFTER_OPEN, _tobj)
118
+ def doc_code(_sender, *args)
119
+ raise_action(DOC_CODE, TEditorObj.new(_sender, *args))
120
+ end
121
+
122
+ def file_opened(_sender, *args)
123
+ raise_event(FILE_AFTER_OPEN, TEditorObj.new(_sender, *args))
85
124
  end
86
125
 
87
- def buffer_raised(_tobj=nil)
88
- raise_event(BUFFER_AFTER_RAISE, _tobj)
126
+ def file_saved(_sender, *args)
127
+ raise_event(FILE_AFTER_SAVE, TEditorObj.new(_sender, *args))
89
128
  end
90
129
 
91
- def file_closed(_tobj=nil)
92
- raise_event(FILE_AFTER_CLOSE, _tobj)
130
+ def file_created(_sender, *args)
131
+ raise_event(FILE_AFTER_CREATE, TEditorObj.new(_sender, *args))
93
132
  end
94
-
95
- def breakpoint_created(_tobj=nil)
96
- raise_event(BREAKPOINT_AFTER_CREATE, _tobj)
133
+
134
+ def buffer_raised(_sender, *args)
135
+ raise_event(BUFFER_AFTER_RAISE, TEditorObj.new(_sender, *args))
97
136
  end
98
-
99
- def breakpoint_deleted(_tobj=nil)
100
- raise_event(BREAKPOINT_AFTER_DELETE, _tobj)
137
+
138
+ def file_closed(_sender, *args)
139
+ raise_event(FILE_AFTER_CLOSE, TEditorObj.new(_sender, *args))
101
140
  end
102
- def breakpoints_created(_array_of_tobj=nil)
103
- raise_event(BREAKPOINTS_AFTER_CREATE, _array_of_tobj)
141
+
142
+ def breakpoint_created(_sender, *args)
143
+ raise_event(BREAKPOINT_AFTER_CREATE, TEditorObj.new(_sender, *args))
104
144
  end
105
- def breakpoints_deleted(_array_of_tobj=nil)
106
- raise_event(BREAKPOINTS_AFTER_DELETE, _array_of_tobj)
145
+
146
+ def breakpoint_deleted(_sender, *args)
147
+ raise_event(BREAKPOINT_AFTER_DELETE, TEditorObj.new(_sender, *args))
107
148
  end
149
+
150
+ # def breakpoints_created(_array_of_tobj=nil)
151
+ # raise_event(BREAKPOINTS_AFTER_CREATE, _array_of_tobj)
152
+ # end
153
+ # def breakpoints_deleted(_array_of_tobj=nil)
154
+ # raise_event(BREAKPOINTS_AFTER_DELETE, _array_of_tobj)
155
+ # end
156
+
108
157
  end
109
158
 
110
159
  class MsgContract < ArcadiaContract
@@ -118,29 +167,20 @@ class MsgContract < ArcadiaContract
118
167
  end
119
168
 
120
169
  EVENT_EXT_MSG_OUT = "EVENT_EXT_MSG_OUT"
121
- def out(_tobj)
122
- raise_event(EVENT_EXT_MSG_OUT, _tobj)
170
+ def out(_sender, *args)
171
+ raise_event(EVENT_EXT_MSG_OUT, TMsgObj.new(_sender, *args))
123
172
  end
124
173
 
125
174
  def out_simple(_sender, _msg, _channel=nil)
126
- _tobj = TMsgObj.new(_sender, 'channel'=>_channel)
127
- _tobj.type = TYPE_SIMPLE
128
- _tobj.text = _msg
129
- self.out(_tobj)
175
+ self.out(_sender, 'type'=>TYPE_SIMPLE, 'text'=>_msg, 'channel'=>_channel)
130
176
  end
131
177
 
132
178
  def out_debug(_sender, _msg, _channel=nil)
133
- _tobj = TMsgObj.new(_sender, 'channel'=>_channel)
134
- _tobj.type = TYPE_DEBUG
135
- _tobj.text = _msg
136
- self.out(_tobj)
179
+ self.out(_sender, 'type'=>TYPE_DEBUG, 'text'=>_msg, 'channel'=>_channel)
137
180
  end
138
181
 
139
182
  def out_error(_sender, _msg, _channel=nil)
140
- _tobj = TMsgObj.new(_sender, 'channel'=>_channel)
141
- _tobj.type = TYPE_ERROR
142
- _tobj.text = _msg
143
- self.out(_tobj)
183
+ self.out(_sender, 'type'=>TYPE_ERROR, 'text'=>_msg, 'channel'=>_channel)
144
184
  end
145
185
  end
146
186
 
@@ -151,10 +191,11 @@ class ShellContract < ArcadiaContract
151
191
  attr_accessor :file
152
192
  end
153
193
 
154
- def run(_tobj)
155
- end
156
- def debug(_tobj)
157
- end
194
+ def run(_sender, *args)
195
+ end
196
+
197
+ def debug(_sender, *args)
198
+ end
158
199
  end
159
200
 
160
201
 
@@ -169,14 +210,14 @@ class DebugContract < ArcadiaContract
169
210
  DEBUG_END="DEBUG_END"
170
211
  DEBUG_STEP="DEBUG_STEP"
171
212
 
172
- def debug_begin(_tobj=nil)
173
- raise_event(DEBUG_BEGIN, _tobj)
213
+ def debug_begin(_sender, *args)
214
+ raise_event(DEBUG_BEGIN, TDebugObj.new(_sender, *args))
174
215
  end
175
- def debug_end(_tobj=nil)
176
- raise_event(DEBUG_END, _tobj)
216
+ def debug_end(_sender, *args)
217
+ raise_event(DEBUG_END, TDebugObj.new(_sender, *args))
177
218
  end
178
- def debug_step(_tobj=nil)
179
- raise_event(DEBUG_STEP, _tobj)
219
+ def debug_step(_sender, *args)
220
+ raise_event(DEBUG_STEP, TDebugObj.new(_sender, *args))
180
221
  end
181
222
  end
182
223
 
@@ -197,36 +238,32 @@ class InspectorContract < ArcadiaContract
197
238
  RAISE_LAST_WIDGET = "RAISE_LAST_WIDGET"
198
239
  RAISE_ACTIVE_TOPLEVEL = "RAISE_ACTIVE_TOPLEVEL"
199
240
 
200
- def delete_wrapper(_tobj=nil)
201
- raise_action(DELETE_WRAPPER, _tobj)
241
+ def delete_wrapper(_sender, *args)
242
+ raise_action(DELETE_WRAPPER, TInspectorObj.new(_sender, *args))
202
243
  end
203
244
 
204
- def raise_last_widget(_tobj=nil)
205
- raise_action(RAISE_LAST_WIDGET, _tobj)
245
+ def raise_last_widget(_sender, *args)
246
+ raise_action(RAISE_LAST_WIDGET, TInspectorObj.new(_sender, *args))
206
247
  end
207
248
 
208
- def raise_active_toplevel(_tobj=nil)
209
- raise_action(RAISE_ACTIVE_TOPLEVEL, _tobj)
249
+ def raise_active_toplevel(_sender, *args)
250
+ raise_action(RAISE_ACTIVE_TOPLEVEL, TInspectorObj.new(_sender, *args))
210
251
  end
211
252
 
212
- def select(_tobj=nil)
213
- raise_action(SELECT_WRAPPER, _tobj)
253
+ def select(_sender, *args)
254
+ raise_action(SELECT_WRAPPER, TInspectorObj.new(_sender, *args))
214
255
  end
215
256
 
216
- def add_require(_tobj=nil)
217
- raise_action(ADD_REQUIRE, _tobj)
257
+ def add_require(_sender, *args)
258
+ raise_action(ADD_REQUIRE, TInspectorObj.new(_sender, *args))
218
259
  end
219
260
 
220
- def register(_tobj=nil)
221
- raise_action(REGISTER_WRAPPER, _tobj)
261
+ def register(_sender, *args)
262
+ raise_action(REGISTER_WRAPPER, TInspectorObj.new(_sender, *args))
222
263
  end
223
264
 
224
- # def update_property(_tobj=nil)
225
- # raise_action(UPDATE_PROPERTY, _tobj)
226
- # end
227
-
228
- def delete_inspector(_tobj=nil)
229
- raise_action(DELETE_INSPECTOR, _tobj)
265
+ def delete_inspector(_sender, *args)
266
+ raise_action(DELETE_INSPECTOR, TInspectorObj.new(_sender, *args))
230
267
  end
231
268
 
232
269
  publish_action :raise_active_object
@@ -234,8 +271,8 @@ end
234
271
 
235
272
  class PublishContract < ArcadiaContract
236
273
  ADD_COMAND_ACTOR = "ADD_COMAND_ACTOR"
237
- def add_command_actor(_tobj)
238
- raise_action(ADD_COMAND_ACTOR, _tobj)
274
+ def add_command_actor(_sender, *args)
275
+ raise_action(ADD_COMAND_ACTOR, TObj.new(_sender, *args))
239
276
  end
240
277
  end
241
278
 
@@ -248,14 +285,14 @@ class WrapperContract < ArcadiaContract
248
285
  WRAPPER_AFTER_CREATE="WRAPPER_AFTER_CREATE"
249
286
  PROPERTY_AFTER_UPDATE="PROPERTY_AFTER_UPDATE"
250
287
  UPDATE_PROPERTY="UPDATE_PROPERTY"
251
- def update_property(_tobj)
252
- raise_action(UPDATE_PROPERTY, _tobj)
288
+ def update_property(_sender, *args)
289
+ raise_action(UPDATE_PROPERTY, TWrapperObj.new(_sender, *args))
253
290
  end
254
- def property_updated(_tobj)
255
- raise_event(PROPERTY_AFTER_UPDATE, _tobj)
291
+ def property_updated(_sender, *args)
292
+ raise_event(PROPERTY_AFTER_UPDATE, TWrapperObj.new(_sender, *args))
256
293
  end
257
- def wrapper_created(_tobj)
258
- raise_event(WRAPPER_AFTER_CREATE, _tobj)
294
+ def wrapper_created(_sender, *args)
295
+ raise_event(WRAPPER_AFTER_CREATE, TWrapperObj.new(_sender, *args))
259
296
  end
260
297
  end
261
298
 
@@ -264,7 +301,7 @@ class PaletteContract < ArcadiaContract
264
301
  attr_accessor :parent, :x, :y
265
302
  end
266
303
  MAKE_SELECTED_WRAPPER = "MAKE_SELECTED_WRAPPER"
267
- def make_selected(_tobj)
268
- raise_action(MAKE_SELECTED_WRAPPER, _tobj)
304
+ def make_selected(_sender, *args)
305
+ raise_action(MAKE_SELECTED_WRAPPER, TPaletteObj.new(_sender, *args))
269
306
  end
270
307
  end
@@ -1,280 +1,280 @@
1
- #
2
- # a-ext.rb - Arcadia Ruby ide
3
- # by Antonio Galeone <antonio-galeone@rubyforge.org>
4
- #
5
-
6
- require "observer"
7
- require 'singleton'
8
-
9
- class ArcadiaExt
10
- attr_reader :arcadia
11
-
12
- def initialize(_arcadia, _name=nil)
13
- @arcadia = _arcadia
14
- @name = _name
15
- unless self.respond_to? :build
16
- raise NoMethodError, "ArcadiaExt needs to respond to `:build'"
17
- end
18
- unless self.respond_to? :before_build
19
- raise NoMethodError, "ArcadiaExt needs to respond to `:before_build'"
20
- end
21
- unless self.respond_to? :after_build
22
- raise NoMethodError, "ArcadiaExt needs to respond to `:after_build'"
23
- end
24
- if self.respond_to? :arcadia_update
25
- ObserverCallback.new(@arcadia.main_contract, self, :arcadia_update)
26
- end
27
- ObjectSpace.define_finalizer(self, self.method(:finalize).to_proc)
28
- end
29
-
30
- def before_build
31
- #must be implemented in child
32
- end
33
-
34
- def build
35
- #must be implemented in child
36
- end
37
-
38
- def after_build
39
- #must be implemented in child
40
- end
41
-
42
- def frame
43
- if @frame == nil
44
- @frame = @arcadia.layout.register_panel(@arcadia['conf'][@name+'.frame'],@name, @arcadia['conf'][@name+'.label'])
45
- end
46
- return @frame
47
- end
48
-
49
- def frame_free
50
- @arcadia.layout.unregister_panel(@arcadia['conf'][@name+'.frame'],@name)
51
- @frame = nil
52
- end
53
-
54
- def conf(_property)
55
- @arcadia['conf'][@name+'.'+_property]
56
- end
57
- # def arcadia_update(_sender, _event)
58
- #must be implemented to activate
59
- # end
60
-
61
- def can_exit_query
62
- return true
63
- end
64
-
65
- def finalize
66
- #may be extendeded in child
67
- end
68
-
69
- def verbose
70
- '??????'
71
- end
72
-
73
- end
74
-
75
-
76
- class ObserverCallback
77
- def initialize(_publisher, _subscriber, _method_update_to_call=:update)
78
- @publisher = _publisher
79
- @subscriber = _subscriber
80
- @method=_method_update_to_call
81
- @publisher.add_observer(self)
82
- end
83
- def update(*args)
84
- @subscriber.send(@method,*args)
85
- end
86
- end
87
-
88
- class ObserverCallbackContract < ObserverCallback
89
- def initialize(_publisher, _subscriber, _method_update_to_call=:update, _channel=nil)
90
- super(_publisher, _subscriber, _method_update_to_call)
91
- @channel = _channel
92
- @channel_conf = @subscriber.conf(@publisher.class.to_s+'.channel') if @subscriber.respond_to?(:conf)
93
- end
94
-
95
- def filter(_event)
96
- @channel_conf != nil && @channel_conf != _event.channel
97
- end
98
-
99
- def update(_event, *args)
100
- super(_event, *args) if !filter(_event)
101
- end
102
- end
103
-
104
-
105
- class ObserverCallbackContractThread < ObserverCallbackContract
106
- def update(*args)
107
- Thread.new do
108
- super(*args)
109
- end
110
- end
111
-
112
- end
113
-
114
-
115
- # The contract define the interface beetwhen extension
116
- # in particulare define method than raise event to observers client
117
- # and a way to retreive state from client
118
-
119
- class ArcadiaContract
120
- include Observable
121
- include Singleton
122
- class ContractEvent
123
- attr_reader :contract
124
- attr_reader :signature
125
- attr_reader :context
126
- attr_reader :channel
127
- attr_reader :time
128
- attr_writer :action
129
-
130
- SIGNATURE = "NOT_DEFINED"
131
- def initialize(_contract, _signature=SIGNATURE, _context=nil)
132
- @contract = _contract
133
- @signature = _signature
134
- @context = _context
135
- _context.channel != nil ?@channel=_context.channel: @channel='0'
136
- @time = Time.new
137
- @action = false
138
- end
139
-
140
- def handled(_from)
141
- MainContract.instance.event_handled(MainContract::TMainObj.new(_from,'caused_by'=>self))
142
- end
143
-
144
- def is_action?
145
- @action
146
- end
147
- end
148
-
149
- class TObj
150
- attr_reader :sender
151
- attr_accessor :caused_by
152
- attr_accessor :channel
153
- DEFAULT_CHANNEL='0'
154
- def initialize(_sender, _args=nil)
155
- @sender=_sender
156
- @channel = DEFAULT_CHANNEL
157
- if _args
158
- _args.each do |key, value|
159
- self.send(key+'=', value)
160
- end
161
- end
162
-
163
- end
164
-
165
- # properties.each do |prop|
166
- # define_method(prop) {
167
- # instance_variable_get("@#{prop}")
168
- # }
169
- # define_method("#{prop}=") do |value|
170
- # instance_variable_set("@#{prop}", value)
171
- # end
172
- # end
173
-
174
- # define_method(prop)
175
- # attr_reader prop.to_sym # prop by itself also worked for me
176
- # # code snip ? setter method
177
- # end
178
-
179
-
180
- # def TObj.property(*properties)
181
- # properties.each { |property|
182
- # class_eval(%Q[
183
- # def #{property}
184
- # @#{property}
185
- # end
186
- #
187
- # def #{property}=(value)
188
- # @#{property} = value
189
- # end
190
- # ])
191
- # }
192
- # end
193
- end
194
-
195
- class EventInfo
196
- attr_reader :method
197
- attr_reader :label
198
- attr_reader :icon
199
- def initialize(_method)
200
- @method = @method
201
- end
202
- end
203
-
204
- SObj = Struct.new("GenericState",
205
- :caller
206
- )
207
-
208
- def _event_forge(_event_signature, _tobj)
209
- ContractEvent.new(self, _event_signature, _tobj)
210
- end
211
- private :_event_forge
212
-
213
-
214
- def raise_event(_event_signature, _tobj, *args)
215
- _raise_event(_event_forge(_event_signature, _tobj),*args)
216
- end
217
-
218
- def _raise_event(_event, *args)
219
- changed
220
- notify_observers(_event, *args)
221
- if self.class != ArcadiaContract
222
- self.class.superclass.instance._raise_event(_event, *args)
223
- end
224
- end
225
- #protected :_raise_event
226
-
227
- def raise_action(_event_signature, _tobj, *args)
228
- _raise_action(_event_forge(_event_signature, _tobj),*args)
229
- end
230
-
231
- def _raise_action(_event, *args)
232
- _event.action = true
233
- _raise_event(_event, *args)
234
- end
235
- private :_raise_action
236
-
237
- def ArcadiaContract.publish_action(_method)
238
- _info = EventInfo.new(_method)
239
- @@actions = Array.new if !defined?(@@actions)
240
- @@actions << _info
241
- end
242
-
243
- end
244
-
245
- class ArcadiaContractListener
246
- def initialize(_subscriber, _class, _method, _channel=nil)
247
- @subscriber = _subscriber
248
- @class = _class
249
- @method = _method
250
- @channel = _channel
251
- create_callback(_class.instance)
252
- end
253
-
254
- def create_callback(_contract)
255
- ObserverCallbackContract.new(_contract, @subscriber, @method, @channel)
256
- end
257
-
258
- end
259
-
260
- class ArcadiaContractListenerThread < ArcadiaContractListener
261
-
262
- def create_callback(_contract)
263
- #Thread.new do super(_contract, _subscriber, _method) end
264
- ObserverCallbackContractThread.new(_contract, @subscriber, @method, @channel)
265
- end
266
-
267
- end
268
-
269
-
270
-
271
-
272
- #class AeContractListener
273
- # def initialize(_arcadia)
274
- #
275
- # end
276
- # def listen_on(_aeclip_name, _method_update_to_call=:update)
277
- # end
278
- # def update(_tobj)
279
- # end
280
- #end
1
+ #
2
+ # a-ext.rb - Arcadia Ruby ide
3
+ # by Antonio Galeone <antonio-galeone@rubyforge.org>
4
+ #
5
+
6
+ require "observer"
7
+ require 'singleton'
8
+
9
+ class ArcadiaExt
10
+ attr_reader :arcadia
11
+
12
+ def initialize(_arcadia, _name=nil)
13
+ @arcadia = _arcadia
14
+ @name = _name
15
+ unless self.respond_to? :build
16
+ raise NoMethodError, "ArcadiaExt needs to respond to `:build'"
17
+ end
18
+ unless self.respond_to? :before_build
19
+ raise NoMethodError, "ArcadiaExt needs to respond to `:before_build'"
20
+ end
21
+ unless self.respond_to? :after_build
22
+ raise NoMethodError, "ArcadiaExt needs to respond to `:after_build'"
23
+ end
24
+ if self.respond_to? :arcadia_update
25
+ ObserverCallback.new(@arcadia.main_contract, self, :arcadia_update)
26
+ end
27
+ ObjectSpace.define_finalizer(self, self.method(:finalize).to_proc)
28
+ end
29
+
30
+ def before_build
31
+ #must be implemented in child
32
+ end
33
+
34
+ def build
35
+ #must be implemented in child
36
+ end
37
+
38
+ def after_build
39
+ #must be implemented in child
40
+ end
41
+
42
+ def frame
43
+ if @frame == nil
44
+ @frame = @arcadia.layout.register_panel(@arcadia['conf'][@name+'.frame'],@name, @arcadia['conf'][@name+'.label'])
45
+ end
46
+ return @frame
47
+ end
48
+
49
+ def frame_free
50
+ @arcadia.layout.unregister_panel(@arcadia['conf'][@name+'.frame'],@name)
51
+ @frame = nil
52
+ end
53
+
54
+ def conf(_property)
55
+ @arcadia['conf'][@name+'.'+_property]
56
+ end
57
+ # def arcadia_update(_sender, _event)
58
+ #must be implemented to activate
59
+ # end
60
+
61
+ def can_exit_query
62
+ return true
63
+ end
64
+
65
+ def finalize
66
+ #may be extendeded in child
67
+ end
68
+
69
+ def verbose
70
+ '??????'
71
+ end
72
+
73
+ end
74
+
75
+
76
+ class ObserverCallback
77
+ def initialize(_publisher, _subscriber, _method_update_to_call=:update)
78
+ @publisher = _publisher
79
+ @subscriber = _subscriber
80
+ @method=_method_update_to_call
81
+ @publisher.add_observer(self)
82
+ end
83
+ def update(*args)
84
+ @subscriber.send(@method,*args)
85
+ end
86
+ end
87
+
88
+ class ObserverCallbackContract < ObserverCallback
89
+ def initialize(_publisher, _subscriber, _method_update_to_call=:update, _channel=nil)
90
+ super(_publisher, _subscriber, _method_update_to_call)
91
+ @channel = _channel
92
+ @channel_conf = @subscriber.conf(@publisher.class.to_s+'.channel') if @subscriber.respond_to?(:conf)
93
+ end
94
+
95
+ def filter(_event)
96
+ @channel_conf != nil && @channel_conf != _event.channel
97
+ end
98
+
99
+ def update(_event, *args)
100
+ super(_event, *args) if !filter(_event)
101
+ end
102
+ end
103
+
104
+
105
+ class ObserverCallbackContractThread < ObserverCallbackContract
106
+ def update(*args)
107
+ Thread.new do
108
+ super(*args)
109
+ end
110
+ end
111
+
112
+ end
113
+
114
+
115
+ # The contract define the interface beetwhen extension
116
+ # in particulare define method than raise event to observers client
117
+ # and a way to retreive state from client
118
+
119
+ class ArcadiaContract
120
+ include Observable
121
+ include Singleton
122
+ class ContractEvent
123
+ attr_reader :contract
124
+ attr_reader :signature
125
+ attr_reader :context
126
+ attr_reader :channel
127
+ attr_reader :time
128
+ attr_writer :action
129
+
130
+ SIGNATURE = "NOT_DEFINED"
131
+ def initialize(_contract, _signature=SIGNATURE, _context=nil)
132
+ @contract = _contract
133
+ @signature = _signature
134
+ @context = _context
135
+ _context.channel != nil ?@channel=_context.channel: @channel='0'
136
+ @time = Time.new
137
+ @action = false
138
+ end
139
+
140
+ def handled(_from)
141
+ MainContract.instance.event_handled(_from,'caused_by'=>self)
142
+ end
143
+
144
+ def is_action?
145
+ @action
146
+ end
147
+ end
148
+
149
+ class TObj
150
+ attr_reader :sender
151
+ attr_accessor :caused_by
152
+ attr_accessor :channel
153
+ DEFAULT_CHANNEL='0'
154
+ def initialize(_sender, _args=nil)
155
+ @sender=_sender
156
+ @channel = DEFAULT_CHANNEL
157
+ if _args
158
+ _args.each do |key, value|
159
+ self.send(key+'=', value)
160
+ end
161
+ end
162
+
163
+ end
164
+
165
+ # properties.each do |prop|
166
+ # define_method(prop) {
167
+ # instance_variable_get("@#{prop}")
168
+ # }
169
+ # define_method("#{prop}=") do |value|
170
+ # instance_variable_set("@#{prop}", value)
171
+ # end
172
+ # end
173
+
174
+ # define_method(prop)
175
+ # attr_reader prop.to_sym # prop by itself also worked for me
176
+ # # code snip ? setter method
177
+ # end
178
+
179
+
180
+ # def TObj.property(*properties)
181
+ # properties.each { |property|
182
+ # class_eval(%Q[
183
+ # def #{property}
184
+ # @#{property}
185
+ # end
186
+ #
187
+ # def #{property}=(value)
188
+ # @#{property} = value
189
+ # end
190
+ # ])
191
+ # }
192
+ # end
193
+ end
194
+
195
+ class EventInfo
196
+ attr_reader :method
197
+ attr_reader :label
198
+ attr_reader :icon
199
+ def initialize(_method)
200
+ @method = @method
201
+ end
202
+ end
203
+
204
+ SObj = Struct.new("GenericState",
205
+ :caller
206
+ )
207
+
208
+ def _event_forge(_event_signature, _tobj)
209
+ ContractEvent.new(self, _event_signature, _tobj)
210
+ end
211
+ private :_event_forge
212
+
213
+
214
+ def raise_event(_event_signature, _tobj, *args)
215
+ _raise_event(_event_forge(_event_signature, _tobj),*args)
216
+ end
217
+
218
+ def _raise_event(_event, *args)
219
+ changed
220
+ notify_observers(_event, *args)
221
+ if self.class != ArcadiaContract
222
+ self.class.superclass.instance._raise_event(_event, *args)
223
+ end
224
+ end
225
+ #protected :_raise_event
226
+
227
+ def raise_action(_event_signature, _tobj, *args)
228
+ _raise_action(_event_forge(_event_signature, _tobj),*args)
229
+ end
230
+
231
+ def _raise_action(_event, *args)
232
+ _event.action = true
233
+ _raise_event(_event, *args)
234
+ end
235
+ private :_raise_action
236
+
237
+ def ArcadiaContract.publish_action(_method)
238
+ _info = EventInfo.new(_method)
239
+ @@actions = Array.new if !defined?(@@actions)
240
+ @@actions << _info
241
+ end
242
+
243
+ end
244
+
245
+ class ArcadiaContractListener
246
+ def initialize(_subscriber, _class, _method, _channel=nil)
247
+ @subscriber = _subscriber
248
+ @class = _class
249
+ @method = _method
250
+ @channel = _channel
251
+ create_callback(_class.instance)
252
+ end
253
+
254
+ def create_callback(_contract)
255
+ ObserverCallbackContract.new(_contract, @subscriber, @method, @channel)
256
+ end
257
+
258
+ end
259
+
260
+ class ArcadiaContractListenerThread < ArcadiaContractListener
261
+
262
+ def create_callback(_contract)
263
+ #Thread.new do super(_contract, _subscriber, _method) end
264
+ ObserverCallbackContractThread.new(_contract, @subscriber, @method, @channel)
265
+ end
266
+
267
+ end
268
+
269
+
270
+
271
+
272
+ #class AeContractListener
273
+ # def initialize(_arcadia)
274
+ #
275
+ # end
276
+ # def listen_on(_aeclip_name, _method_update_to_call=:update)
277
+ # end
278
+ # def update(_tobj)
279
+ # end
280
+ #end