wrb 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (271) hide show
  1. checksums.yaml +7 -0
  2. data/README +28 -0
  3. data/Rakefile +66 -0
  4. data/bin/wrb +41 -0
  5. data/bin/wrb.bat +6 -0
  6. data/ext/rwin/aatree.c +192 -0
  7. data/ext/rwin/aatree.h +55 -0
  8. data/ext/rwin/extconf.rb +47 -0
  9. data/ext/rwin/rw_api.c +2058 -0
  10. data/ext/rwin/rw_devices.c +215 -0
  11. data/ext/rwin/rw_gdiplus.h +278 -0
  12. data/ext/rwin/rw_graphics.c +1583 -0
  13. data/ext/rwin/rw_resources.c +1988 -0
  14. data/ext/rwin/rw_ubfuncs.c +281 -0
  15. data/ext/rwin/rw_windows.c +1936 -0
  16. data/ext/rwin/rwin.c +451 -0
  17. data/ext/rwin/rwin.h +442 -0
  18. data/lib/rwin.rb +820 -0
  19. data/lib/wrb.rb +20 -0
  20. data/lib/wrb/applications/frmdesigner/angle.cur +0 -0
  21. data/lib/wrb/applications/frmdesigner/angle2.cur +0 -0
  22. data/lib/wrb/applications/frmdesigner/controls/Button.bmp +0 -0
  23. data/lib/wrb/applications/frmdesigner/controls/Button.rb +34 -0
  24. data/lib/wrb/applications/frmdesigner/controls/Checkbox.bmp +0 -0
  25. data/lib/wrb/applications/frmdesigner/controls/Checkbox.rb +10 -0
  26. data/lib/wrb/applications/frmdesigner/controls/Combobox.bmp +0 -0
  27. data/lib/wrb/applications/frmdesigner/controls/Combobox.rb +88 -0
  28. data/lib/wrb/applications/frmdesigner/controls/ComboboxEx.rb +97 -0
  29. data/lib/wrb/applications/frmdesigner/controls/Comboboxex.bmp +0 -0
  30. data/lib/wrb/applications/frmdesigner/controls/DateTimePicker.bmp +0 -0
  31. data/lib/wrb/applications/frmdesigner/controls/DateTimePicker.rb +11 -0
  32. data/lib/wrb/applications/frmdesigner/controls/Edit.bmp +0 -0
  33. data/lib/wrb/applications/frmdesigner/controls/Edit.rb +8 -0
  34. data/lib/wrb/applications/frmdesigner/controls/Groupbox.bmp +0 -0
  35. data/lib/wrb/applications/frmdesigner/controls/Groupbox.rb +9 -0
  36. data/lib/wrb/applications/frmdesigner/controls/Hotkeyctrl.bmp +0 -0
  37. data/lib/wrb/applications/frmdesigner/controls/Hotkeyctrl.rb +9 -0
  38. data/lib/wrb/applications/frmdesigner/controls/Imagelist.bmp +0 -0
  39. data/lib/wrb/applications/frmdesigner/controls/Imagelist.rb +115 -0
  40. data/lib/wrb/applications/frmdesigner/controls/Listbox.bmp +0 -0
  41. data/lib/wrb/applications/frmdesigner/controls/Listbox.rb +77 -0
  42. data/lib/wrb/applications/frmdesigner/controls/Listview.bmp +0 -0
  43. data/lib/wrb/applications/frmdesigner/controls/Listview.rb +157 -0
  44. data/lib/wrb/applications/frmdesigner/controls/Menu.bmp +0 -0
  45. data/lib/wrb/applications/frmdesigner/controls/Menu.rb +198 -0
  46. data/lib/wrb/applications/frmdesigner/controls/Menubar.bmp +0 -0
  47. data/lib/wrb/applications/frmdesigner/controls/Menubar.rb +9 -0
  48. data/lib/wrb/applications/frmdesigner/controls/MonthCalender.bmp +0 -0
  49. data/lib/wrb/applications/frmdesigner/controls/Monthcalender.rb +9 -0
  50. data/lib/wrb/applications/frmdesigner/controls/Panel.bmp +0 -0
  51. data/lib/wrb/applications/frmdesigner/controls/Panel.rb +30 -0
  52. data/lib/wrb/applications/frmdesigner/controls/Progressbar.rb +10 -0
  53. data/lib/wrb/applications/frmdesigner/controls/Radiobutton.bmp +0 -0
  54. data/lib/wrb/applications/frmdesigner/controls/Radiobutton.rb +13 -0
  55. data/lib/wrb/applications/frmdesigner/controls/Rebar.bmp +0 -0
  56. data/lib/wrb/applications/frmdesigner/controls/Rebar.rb +162 -0
  57. data/lib/wrb/applications/frmdesigner/controls/Splitter.bmp +0 -0
  58. data/lib/wrb/applications/frmdesigner/controls/Splitter.rb +66 -0
  59. data/lib/wrb/applications/frmdesigner/controls/Static.bmp +0 -0
  60. data/lib/wrb/applications/frmdesigner/controls/Static.rb +9 -0
  61. data/lib/wrb/applications/frmdesigner/controls/Statusbar.bmp +0 -0
  62. data/lib/wrb/applications/frmdesigner/controls/Statusbar.rb +103 -0
  63. data/lib/wrb/applications/frmdesigner/controls/Tabctrl.bmp +0 -0
  64. data/lib/wrb/applications/frmdesigner/controls/Tabctrl.rb +136 -0
  65. data/lib/wrb/applications/frmdesigner/controls/Timer.bmp +0 -0
  66. data/lib/wrb/applications/frmdesigner/controls/Timer.rb +36 -0
  67. data/lib/wrb/applications/frmdesigner/controls/Toolbar.bmp +0 -0
  68. data/lib/wrb/applications/frmdesigner/controls/Toolbar.rb +165 -0
  69. data/lib/wrb/applications/frmdesigner/controls/Trackbar.bmp +0 -0
  70. data/lib/wrb/applications/frmdesigner/controls/Trackbar.rb +34 -0
  71. data/lib/wrb/applications/frmdesigner/controls/Treeview.bmp +0 -0
  72. data/lib/wrb/applications/frmdesigner/controls/Treeview.rb +107 -0
  73. data/lib/wrb/applications/frmdesigner/controls/Updown.bmp +0 -0
  74. data/lib/wrb/applications/frmdesigner/controls/Updown.rb +31 -0
  75. data/lib/wrb/applications/frmdesigner/controls/default.bmp +0 -0
  76. data/lib/wrb/applications/frmdesigner/controls/progressbar.bmp +0 -0
  77. data/lib/wrb/applications/frmdesigner/controls/unselect.bmp +0 -0
  78. data/lib/wrb/applications/frmdesigner/fddialogs.rb +87 -0
  79. data/lib/wrb/applications/frmdesigner/fdesign.rb +1315 -0
  80. data/lib/wrb/applications/frmdesigner/fdmodules.rb +1394 -0
  81. data/lib/wrb/applications/frmdesigner/fdparseform.rb +197 -0
  82. data/lib/wrb/applications/frmdesigner/img13.bmp +0 -0
  83. data/lib/wrb/base.rb +1294 -0
  84. data/lib/wrb/combocommon.rb +77 -0
  85. data/lib/wrb/commctrlconst.rb +139 -0
  86. data/lib/wrb/commdlg.rb +77 -0
  87. data/lib/wrb/components/animate.rb +114 -0
  88. data/lib/wrb/components/bitmap.rb +116 -0
  89. data/lib/wrb/components/button.rb +134 -0
  90. data/lib/wrb/components/canvas.rb +266 -0
  91. data/lib/wrb/components/checkbox.rb +118 -0
  92. data/lib/wrb/components/choosecolordlg.rb +87 -0
  93. data/lib/wrb/components/choosefontdlg.rb +142 -0
  94. data/lib/wrb/components/clipboard.rb +174 -0
  95. data/lib/wrb/components/combobox.rb +282 -0
  96. data/lib/wrb/components/comboboxex.rb +574 -0
  97. data/lib/wrb/components/cursor.rb +91 -0
  98. data/lib/wrb/components/datetimepicker.rb +197 -0
  99. data/lib/wrb/components/ddeclient.rb +180 -0
  100. data/lib/wrb/components/ddeserver.rb +131 -0
  101. data/lib/wrb/components/dialog.rb +228 -0
  102. data/lib/wrb/components/edit.rb +412 -0
  103. data/lib/wrb/components/font.rb +35 -0
  104. data/lib/wrb/components/form.rb +65 -0
  105. data/lib/wrb/components/groupbox.rb +122 -0
  106. data/lib/wrb/components/header.rb +479 -0
  107. data/lib/wrb/components/hotkeyctrl.rb +72 -0
  108. data/lib/wrb/components/icon.rb +109 -0
  109. data/lib/wrb/components/imagelist.rb +396 -0
  110. data/lib/wrb/components/inifile.rb +97 -0
  111. data/lib/wrb/components/listbox.rb +149 -0
  112. data/lib/wrb/components/listview.rb +1467 -0
  113. data/lib/wrb/components/menu.rb +592 -0
  114. data/lib/wrb/components/menubar.rb +84 -0
  115. data/lib/wrb/components/monthcalender.rb +164 -0
  116. data/lib/wrb/components/openfilenamedlg.rb +147 -0
  117. data/lib/wrb/components/pager.rb +199 -0
  118. data/lib/wrb/components/panel.rb +103 -0
  119. data/lib/wrb/components/picture.rb +55 -0
  120. data/lib/wrb/components/printdlg.rb +148 -0
  121. data/lib/wrb/components/printdlgex.rb +117 -0
  122. data/lib/wrb/components/printer.rb +97 -0
  123. data/lib/wrb/components/progressbar.rb +140 -0
  124. data/lib/wrb/components/radiobutton.rb +49 -0
  125. data/lib/wrb/components/rebar.rb +830 -0
  126. data/lib/wrb/components/registry.rb +408 -0
  127. data/lib/wrb/components/richedit.rb +1181 -0
  128. data/lib/wrb/components/savefilenamedlg.rb +27 -0
  129. data/lib/wrb/components/scintilla.rb +1298 -0
  130. data/lib/wrb/components/scrollbar.rb +239 -0
  131. data/lib/wrb/components/splitter.rb +494 -0
  132. data/lib/wrb/components/static.rb +198 -0
  133. data/lib/wrb/components/statusbar.rb +490 -0
  134. data/lib/wrb/components/tabctrl.rb +686 -0
  135. data/lib/wrb/components/timer.rb +117 -0
  136. data/lib/wrb/components/toolbar.rb +1107 -0
  137. data/lib/wrb/components/tooltip.rb +651 -0
  138. data/lib/wrb/components/trackbar.rb +298 -0
  139. data/lib/wrb/components/treeview.rb +845 -0
  140. data/lib/wrb/components/updown.rb +198 -0
  141. data/lib/wrb/ddeml.rb +241 -0
  142. data/lib/wrb/documents/animate.html +46 -0
  143. data/lib/wrb/documents/bitmap.html +69 -0
  144. data/lib/wrb/documents/button.html +78 -0
  145. data/lib/wrb/documents/canvas.html +137 -0
  146. data/lib/wrb/documents/checkbox.html +77 -0
  147. data/lib/wrb/documents/choosecolordlg.html +29 -0
  148. data/lib/wrb/documents/choosefontdlg.html +31 -0
  149. data/lib/wrb/documents/clipboard.html +31 -0
  150. data/lib/wrb/documents/combobox.html +117 -0
  151. data/lib/wrb/documents/comboboxex.html +139 -0
  152. data/lib/wrb/documents/control.html +53 -0
  153. data/lib/wrb/documents/cursor.html +45 -0
  154. data/lib/wrb/documents/datetimepicker.html +70 -0
  155. data/lib/wrb/documents/ddeclient.html +33 -0
  156. data/lib/wrb/documents/ddeserver.html +26 -0
  157. data/lib/wrb/documents/dialog.html +78 -0
  158. data/lib/wrb/documents/edit.html +169 -0
  159. data/lib/wrb/documents/empty.html +11 -0
  160. data/lib/wrb/documents/favicon.png +0 -0
  161. data/lib/wrb/documents/font.html +38 -0
  162. data/lib/wrb/documents/form.html +63 -0
  163. data/lib/wrb/documents/groupbox.html +57 -0
  164. data/lib/wrb/documents/header.html +85 -0
  165. data/lib/wrb/documents/hotkeyctrl.html +42 -0
  166. data/lib/wrb/documents/icon.html +45 -0
  167. data/lib/wrb/documents/imagelist.html +101 -0
  168. data/lib/wrb/documents/images/button.png +0 -0
  169. data/lib/wrb/documents/images/checkbox.png +0 -0
  170. data/lib/wrb/documents/images/combobox.png +0 -0
  171. data/lib/wrb/documents/images/comboboxex.png +0 -0
  172. data/lib/wrb/documents/images/datetimepicker.png +0 -0
  173. data/lib/wrb/documents/images/edit.png +0 -0
  174. data/lib/wrb/documents/images/groupbox.png +0 -0
  175. data/lib/wrb/documents/images/hotkeyctrl.png +0 -0
  176. data/lib/wrb/documents/images/listbox.png +0 -0
  177. data/lib/wrb/documents/images/listview.png +0 -0
  178. data/lib/wrb/documents/images/menu.png +0 -0
  179. data/lib/wrb/documents/images/menubar.png +0 -0
  180. data/lib/wrb/documents/images/monthcalender.png +0 -0
  181. data/lib/wrb/documents/images/progressbar.png +0 -0
  182. data/lib/wrb/documents/images/radiobutton.png +0 -0
  183. data/lib/wrb/documents/images/rebar.png +0 -0
  184. data/lib/wrb/documents/images/richedit.png +0 -0
  185. data/lib/wrb/documents/images/splitter.png +0 -0
  186. data/lib/wrb/documents/images/static.png +0 -0
  187. data/lib/wrb/documents/images/statusbar.png +0 -0
  188. data/lib/wrb/documents/images/tabctrl.png +0 -0
  189. data/lib/wrb/documents/images/toolbar.png +0 -0
  190. data/lib/wrb/documents/images/tooltip.png +0 -0
  191. data/lib/wrb/documents/images/trackbar.png +0 -0
  192. data/lib/wrb/documents/images/treeview.png +0 -0
  193. data/lib/wrb/documents/images/updown.png +0 -0
  194. data/lib/wrb/documents/index.html +155 -0
  195. data/lib/wrb/documents/inifile.html +36 -0
  196. data/lib/wrb/documents/license.txt +22 -0
  197. data/lib/wrb/documents/listbox.html +96 -0
  198. data/lib/wrb/documents/listview.html +277 -0
  199. data/lib/wrb/documents/make_doc.rb +596 -0
  200. data/lib/wrb/documents/menu.html +144 -0
  201. data/lib/wrb/documents/menubar.html +54 -0
  202. data/lib/wrb/documents/monthcalender.html +48 -0
  203. data/lib/wrb/documents/openfilenamedlg.html +36 -0
  204. data/lib/wrb/documents/pager.html +63 -0
  205. data/lib/wrb/documents/panel.html +32 -0
  206. data/lib/wrb/documents/picture.html +48 -0
  207. data/lib/wrb/documents/printdlg.html +35 -0
  208. data/lib/wrb/documents/printdlgex.html +35 -0
  209. data/lib/wrb/documents/printer.html +40 -0
  210. data/lib/wrb/documents/progressbar.html +69 -0
  211. data/lib/wrb/documents/radiobutton.html +51 -0
  212. data/lib/wrb/documents/rebar.html +143 -0
  213. data/lib/wrb/documents/registry.html +36 -0
  214. data/lib/wrb/documents/richedit.html +232 -0
  215. data/lib/wrb/documents/samples/editimg.bmp +0 -0
  216. data/lib/wrb/documents/samples/editimg.iml +0 -0
  217. data/lib/wrb/documents/samples/fileimg.bmp +0 -0
  218. data/lib/wrb/documents/samples/fileimg.iml +0 -0
  219. data/lib/wrb/documents/samples/sample_button.rb +21 -0
  220. data/lib/wrb/documents/samples/sample_checkbox.rb +18 -0
  221. data/lib/wrb/documents/samples/sample_combobox.rb +18 -0
  222. data/lib/wrb/documents/samples/sample_comboboxex.rb +23 -0
  223. data/lib/wrb/documents/samples/sample_datetimepicker.rb +11 -0
  224. data/lib/wrb/documents/samples/sample_edit.rb +25 -0
  225. data/lib/wrb/documents/samples/sample_groupbox.rb +19 -0
  226. data/lib/wrb/documents/samples/sample_hotkeyctrl.rb +12 -0
  227. data/lib/wrb/documents/samples/sample_listbox.rb +12 -0
  228. data/lib/wrb/documents/samples/sample_listview.rb +32 -0
  229. data/lib/wrb/documents/samples/sample_menu.rb +21 -0
  230. data/lib/wrb/documents/samples/sample_menubar.rb +23 -0
  231. data/lib/wrb/documents/samples/sample_monthcalender.rb +11 -0
  232. data/lib/wrb/documents/samples/sample_progressbar.rb +14 -0
  233. data/lib/wrb/documents/samples/sample_radiobutton.rb +14 -0
  234. data/lib/wrb/documents/samples/sample_rebar.rb +25 -0
  235. data/lib/wrb/documents/samples/sample_richedit.rb +60 -0
  236. data/lib/wrb/documents/samples/sample_splitter.rb +33 -0
  237. data/lib/wrb/documents/samples/sample_static.rb +15 -0
  238. data/lib/wrb/documents/samples/sample_statusbar.rb +17 -0
  239. data/lib/wrb/documents/samples/sample_tabctrl.rb +19 -0
  240. data/lib/wrb/documents/samples/sample_toolbar.rb +29 -0
  241. data/lib/wrb/documents/samples/sample_tooltip.rb +50 -0
  242. data/lib/wrb/documents/samples/sample_trackbar.rb +30 -0
  243. data/lib/wrb/documents/samples/sample_treeview.rb +19 -0
  244. data/lib/wrb/documents/samples/sample_updown.rb +18 -0
  245. data/lib/wrb/documents/samples/sampleimg16.iml +0 -0
  246. data/lib/wrb/documents/samples/sampleimg32.iml +0 -0
  247. data/lib/wrb/documents/samples/samplemg16.png +0 -0
  248. data/lib/wrb/documents/samples/samplemg32.png +0 -0
  249. data/lib/wrb/documents/samples/wrb.ico +0 -0
  250. data/lib/wrb/documents/savefilenamedlg.html +19 -0
  251. data/lib/wrb/documents/scrollbar.html +60 -0
  252. data/lib/wrb/documents/splitter.html +96 -0
  253. data/lib/wrb/documents/static.html +84 -0
  254. data/lib/wrb/documents/statusbar.html +110 -0
  255. data/lib/wrb/documents/tabctrl.html +151 -0
  256. data/lib/wrb/documents/timer.html +43 -0
  257. data/lib/wrb/documents/toolbar.html +181 -0
  258. data/lib/wrb/documents/tooltip.html +131 -0
  259. data/lib/wrb/documents/trackbar.html +107 -0
  260. data/lib/wrb/documents/treeview.html +210 -0
  261. data/lib/wrb/documents/updown.html +85 -0
  262. data/lib/wrb/documents/wincontrol.html +258 -0
  263. data/lib/wrb/documents/window.html +499 -0
  264. data/lib/wrb/documents/wrb.css +228 -0
  265. data/lib/wrb/gmem.rb +26 -0
  266. data/lib/wrb/imecommon.rb +59 -0
  267. data/lib/wrb/listcommon.rb +185 -0
  268. data/lib/wrb/lzss.rb +126 -0
  269. data/lib/wrb/scrollinfo.rb +142 -0
  270. data/lib/wrb/toplevelcommon.rb +634 -0
  271. metadata +315 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: d24162aaa236c333d02af6790b81cc49918a02a92d64b68270aa4a0fbd75573e
4
+ data.tar.gz: 113784bdc5058b80603e495f9664b8527758a29e5f0e48ddf4b23a7ce50a64f6
5
+ SHA512:
6
+ metadata.gz: 9b0d7cb894e55b3cf8607fe04a6f620ec8d5e696e6024e700a935e773b6fe4ecbfae82e9e4ad8782c94a2393ba45aa31e7048c9e96f30b30ab69417e982d5eac
7
+ data.tar.gz: d11d2053ab3f6a48f6264f16e4e78ccc1b73f8061ad5a156ef07f27bf13bc1942ffe2ebe94ee15b52aa7cce8feddf0526ea621cedb0d5f8a8a80df78e07fd3bf
data/README ADDED
@@ -0,0 +1,28 @@
1
+ Project WRB was forked from Project VisualuRuby(temp-name).
2
+ Author of this project: BANJO Koyu <banjokoyu at gmail.com>
3
+ Copyright 2018-2018 "BANJO Koyu" and WRB development team.
4
+ The URL of this project is https://bitbucket.org/wrb/ .
5
+
6
+ Note: The URL of Project VisualuRuby(temp-name) is
7
+ �@http://www.osk.3web.ne.jp/~nyasu/vruby/vrproject-e.html .
8
+
9
+ To install this library, follow the instructions below.
10
+
11
+ Step1:
12
+ Make sure that you can install the extension library,
13
+ that is, C compiler, Make tool etc works.
14
+
15
+ Step2:
16
+ Type below in your command line.
17
+ $ gem install wrb
18
+
19
+ Step 3:
20
+ Wait a few minutes, and make sure following message.
21
+ Done installing documentation for wrb ...
22
+ 1 gem installed
23
+
24
+ Step 4:
25
+ Type "wrb" to see the documents and samples.
26
+ Type "wrb -f" to run the FormDesigner.
27
+
28
+ Enjoy!!
@@ -0,0 +1,66 @@
1
+ require 'rubygems/package_task'
2
+ begin
3
+ require 'rake/extensiontask' # This line needs 'rake-compiler' of gems.
4
+ rescue
5
+ raise "Install `rake-compiler'."
6
+ end
7
+
8
+ PKG_FILES = FileList[
9
+ 'ext/rwin/*.c',
10
+ 'ext/rwin/*.h',
11
+ 'ext/rwin/*.rb',
12
+ 'lib/*.rb',
13
+ 'lib/wrb/*.rb',
14
+ 'lib/wrb/components/*.rb',
15
+ 'lib/wrb/applications/frmdesigner/*.rb',
16
+ 'lib/wrb/applications/frmdesigner/*.bmp',
17
+ 'lib/wrb/applications/frmdesigner/*.cur',
18
+ 'lib/wrb/applications/frmdesigner/controls/*.rb',
19
+ 'lib/wrb/applications/frmdesigner/controls/*.bmp',
20
+ 'lib/wrb/documents/*.html',
21
+ 'lib/wrb/documents/*.css',
22
+ 'lib/wrb/documents/*.txt',
23
+ 'lib/wrb/documents/*.png',
24
+ 'lib/wrb/documents/*.rb',
25
+ 'lib/wrb/documents/samples/*.rb',
26
+ 'lib/wrb/documents/samples/*.png',
27
+ 'lib/wrb/documents/samples/*.bmp',
28
+ 'lib/wrb/documents/samples/*.iml',
29
+ 'lib/wrb/documents/samples/*.ico',
30
+ 'lib/wrb/documents/images/*.png',
31
+ 'bin/wrb',
32
+ 'bin/wrb.bat',
33
+ 'Rakefile',
34
+ 'README'
35
+ ]
36
+
37
+ desc "Default Task"
38
+ task :default => [:package]
39
+
40
+ extension = Rake::ExtensionTask.new("rwin") do|ext|
41
+ ext.lib_dir = "lib/wrb"
42
+ end
43
+
44
+ require 'wrb'
45
+ spec = Gem::Specification.new do |s|
46
+ s.required_ruby_version = '>= 2.3.0'
47
+ s.name = 'wrb'
48
+ s.version = WR::WR_VERSION
49
+ s.author = 'Banjo Koyu'
50
+ s.email = 'banjokoyu@gmail.com'
51
+ s.homepage = 'https://bitbucket.org/wrb'
52
+ s.platform = Gem::Platform::RUBY
53
+ s.license = 'BSD-2-Clause'
54
+ s.summary = 'A Windows GUI framework for Ruby.'
55
+ s.files = PKG_FILES.to_a
56
+ s.executables = ['wrb']
57
+ s.require_paths = ['lib', 'bin']
58
+ s.has_rdoc = false
59
+ #s.extra_rdoc_files = ['README']
60
+ s.description = "A Windows GUI framework for Ruby running on Ruby 2.X."
61
+ s.extensions = ["ext/rwin/extconf.rb"]
62
+ end
63
+
64
+ Gem::PackageTask.new(spec) do |pkg|
65
+ pkg.gem_spec = spec
66
+ end
data/bin/wrb ADDED
@@ -0,0 +1,41 @@
1
+ #!/usr/bin/env ruby
2
+ require 'wrb'
3
+ module WR
4
+ def self.wrb_show_doc()
5
+ pid = Registry.open(RC::HKCU,
6
+ 'Software\Microsoft\Windows\Shell\Associations\UrlAssociations\HTTP\UserChoice'){|r|
7
+ r.read('Progid')
8
+ }
9
+ path = Registry.open(RC::HKCR, pid+'\shell\open\command'){|r| r.read}.match(/^\".+?\"/)[0]
10
+ doc = WR_INSTALLED_DIR + '/wrb/documents/index.html'
11
+ if RbConfig::CONFIG['arch'] =~ /cygwin/
12
+ s = `cygpath -a #{path}`
13
+ s.gsub!(/[ ()]/){'\\' + $&}
14
+ d = `cygpath -aw #{doc}`
15
+ exec s.chomp + ' "' + d.chomp + '"' + " &"
16
+ else
17
+ exec "start " + path + ' "' + doc.tr('/', '\\') + '"'
18
+ end
19
+ end
20
+ end
21
+
22
+ if ARGV.size>0 && ARGV[0] =~ /-\w+/
23
+ case ARGV.shift
24
+ when '-x'
25
+ require 'wrb/applications/exebuilder/xbuild.rb'
26
+ WR::MainForm.start_as_dialog
27
+ when '-f'
28
+ require 'wrb/applications/frmdesigner/fdesign.rb'
29
+ WR::FDMain.start
30
+ when '-r'
31
+ require 'wrb/applications/rsccreator/rcreate.rb'
32
+ WR::MainForm.start
33
+ when '-e'
34
+ require 'wrb/applications/scieditor/sciedit.rb'
35
+ WR::MainForm.start
36
+ else
37
+ WR.wrb_show_doc
38
+ end
39
+ else
40
+ WR.wrb_show_doc
41
+ end
@@ -0,0 +1,6 @@
1
+ @ECHO OFF
2
+ IF NOT "%~f0" == "~f0" GOTO :WinNT
3
+ ECHO.This version of Ruby has not been built with support for Windows 95/98/Me.
4
+ GOTO :EOF
5
+ :WinNT
6
+ @"%~dp0rubyw.exe" "%~dpn0" %*
@@ -0,0 +1,192 @@
1
+ /*
2
+ # AA tree (Arne Anderson's balancing tree)
3
+ # Programmed by BANJO Koyu <banjokoyu at gmail.com>.
4
+ # Referred to:
5
+ # https://gist.github.com/siritori/2760460
6
+ # http://www.geocities.jp/m_hiroi/light/pyalgo53.html
7
+ # Thanks!
8
+ */
9
+
10
+ #include <stdio.h>
11
+ #include <stdlib.h>
12
+ #include "aatree.h"
13
+
14
+ static AAnode*
15
+ newAAnode(const ULONG_PTR key, void *val, AAnode *nullnode) {
16
+ AAnode *node = (AAnode*)malloc(sizeof(AAnode));
17
+ if(node){
18
+ node->key = key;
19
+ node->val = val;
20
+ node->level = 1;
21
+ node->left = node->right = NULL;
22
+ }
23
+ return node;
24
+ }
25
+
26
+ AAtree*
27
+ newAAtree(void(*valfree_func)(void*)) {
28
+ AAtree *tree = (AAtree*)malloc(sizeof(AAtree));
29
+ if(tree){
30
+ tree->root = NULL;
31
+ tree->num_entries = 0;
32
+ tree->valfree_func = valfree_func;
33
+ }
34
+ return tree;
35
+ }
36
+
37
+ static void
38
+ free_aatree_(AAtree *tree, AAnode *node) {
39
+ if(node){
40
+ if(node->left) free_aatree_(tree, node->left);
41
+ if(node->right) free_aatree_(tree, node->right);
42
+ if(node->val && tree->valfree_func) (tree->valfree_func)(node->val);
43
+ free(node);
44
+ }
45
+ }
46
+ void
47
+ freeAAtree(AAtree *tree) {
48
+ free_aatree_(tree, tree->root);
49
+ free(tree);
50
+ }
51
+
52
+ static AAnode*
53
+ aa_skew(AAnode *node) {
54
+ if(!node || !node->left) return node;
55
+ if(node->level == node->left->level){
56
+ AAnode *left = node->left;
57
+ node->left = left->right;
58
+ left->right = node;
59
+ return left;
60
+ }
61
+ return node;
62
+ }
63
+
64
+ static AAnode*
65
+ aa_split(AAnode *node) {
66
+ if(!node || !node->right || !node->right->right) return node;
67
+ if(node->right->right->level == node->level){
68
+ AAnode *right = node->right;
69
+ node->right = right->left;
70
+ right->left = node;
71
+ right->level++;
72
+ return right;
73
+ }
74
+ return node;
75
+ }
76
+
77
+ static AAnode*
78
+ aa_search_(AAnode *node, const ULONG_PTR key) {
79
+ if(node && node->key != key){ /* faster than non-recuresive! */
80
+ return aa_search_((node->key > key) ? node->left : node->right, key);
81
+ }
82
+ return node;
83
+ }
84
+ AAnode*
85
+ aaSearch(const AAtree *tree, const ULONG_PTR key) {
86
+ return aa_search_(tree->root, key);
87
+ }
88
+
89
+ void*
90
+ aaGetval(const AAtree *tree, const ULONG_PTR key) {
91
+ AAnode *nd = aa_search_(tree->root, key);
92
+ return nd ? nd->val : 0;
93
+ }
94
+
95
+ static AAnode*
96
+ aa_insert_(AAtree *tree, AAnode *node, const ULONG_PTR key, void *val) {
97
+ if(!node) {
98
+ node = newAAnode(key, val, NULL);
99
+ tree->num_entries++;
100
+ return node;
101
+ }
102
+ if(key < node->key) {
103
+ node->left = aa_insert_(tree, node->left, key, val);
104
+ } else if(key > node->key) {
105
+ node->right = aa_insert_(tree, node->right, key, val);
106
+ } else return node;
107
+ node = aa_skew(node);
108
+ node = aa_split(node);
109
+ return node;
110
+ }
111
+
112
+ AAtree*
113
+ aaInsert(AAtree *tree, const ULONG_PTR key, void *val) {
114
+ tree->root = aa_insert_(tree, tree->root, key, val);
115
+ return tree;
116
+ }
117
+
118
+ static AAnode*
119
+ search_min(AAnode *node){
120
+ AAnode *nd = node;
121
+ while(nd->left){ nd = nd->left; }
122
+ return nd;
123
+ }
124
+
125
+ static AAnode*
126
+ aa_delete_(AAtree *tree, AAnode *node, const ULONG_PTR key, void(*free_func)(void*)) {
127
+ if (!node) return node;
128
+ if (key > node->key){
129
+ node->right = aa_delete_(tree, node->right, key, free_func);
130
+ } else if (key < node->key){
131
+ node->left = aa_delete_(tree, node->left, key, free_func);
132
+ } else { /* key == node->key */
133
+ AAnode *nd;
134
+ if(!node->left){
135
+ AAnode *ndel = node;
136
+ if (ndel->val && free_func) (free_func)(ndel->val);/* callback */
137
+ tree->num_entries--;
138
+ node = node->right;
139
+ free(ndel);
140
+ return node;
141
+ } else if (!node->right){
142
+ AAnode *ndel = node;
143
+ tree->num_entries--;
144
+ if (ndel->val && free_func) (free_func)(ndel->val);/* callback */
145
+ node = node->left;
146
+ free(ndel);
147
+ return node;
148
+ }
149
+ nd = search_min(node->right);
150
+ node->key = nd->key;
151
+ node->val = nd->val;
152
+ node->right = aa_delete_(tree, node->right, node->key, NULL);
153
+
154
+ /* re-balancing */
155
+ if (node->left && node->right &&
156
+ (node->left->level < node->level-1 || node->right->level < node->level-1)){
157
+ node->level--;
158
+ if(node->right->level > node->level) node->right->level = node->level;
159
+ node = aa_skew(node);
160
+ node->right = aa_skew(node->right);
161
+ if(node->right->right) node->right->right = aa_skew(node->right->right);
162
+ node = aa_split(node);
163
+ node->right = aa_split(node->right);
164
+ }
165
+ }
166
+ return node;
167
+ }
168
+
169
+ AAtree*
170
+ aaDelete(AAtree *tree, const ULONG_PTR key) {
171
+ unsigned n = tree->num_entries;
172
+ tree->root = aa_delete_(tree, tree->root, key, tree->valfree_func);
173
+ return (n == tree->num_entries) ? 0 : tree;
174
+ }
175
+
176
+ unsigned
177
+ aaCount(const AAtree *tree) {
178
+ return tree->num_entries;
179
+ }
180
+
181
+ static void
182
+ aa_foreach_(const AAnode *node, AAForeach cb, void *arg) {
183
+ if(!node) return;
184
+ aa_foreach_(node->left, cb, arg);
185
+ (*cb)(node, arg);
186
+ aa_foreach_(node->right, cb, arg);
187
+ }
188
+
189
+ void
190
+ aaForeach(const AAtree *tree, AAForeach callback, void *arg) {
191
+ aa_foreach_(tree->root, callback, arg);
192
+ }
@@ -0,0 +1,55 @@
1
+ /*
2
+ # AA tree (Arne Anderson's balancing tree)
3
+ # Programmed by BANJO Koyu <banjokoyu at gmail.com>.
4
+ # Referred to:
5
+ # https://gist.github.com/siritori/2760460
6
+ # http://www.geocities.jp/m_hiroi/light/pyalgo53.html
7
+ # Thanks!
8
+ */
9
+
10
+ #ifndef AA_TREE_H__
11
+ #define AA_TREE_H__
12
+ #include <ctype.h>
13
+ #include <windows.h>
14
+ typedef struct AAnode_ {
15
+ ULONG_PTR key;
16
+ union{
17
+ INT_PTR num;
18
+ void *val;
19
+ };
20
+ int level;
21
+ struct AAnode_ *left, *right;
22
+ } AAnode;
23
+
24
+ typedef struct {
25
+ AAnode *root;
26
+ void(*valfree_func)(void*);
27
+ unsigned int num_entries;
28
+ } AAtree;
29
+
30
+ /* creates new empty tree. valfree_func can be set NULL. */
31
+ AAtree* newAAtree(void(*valfree_func)(void*));
32
+
33
+ /* must be called at last */
34
+ void freeAAtree(AAtree *tree);
35
+
36
+ AAnode* aaSearch(const AAtree *tree, const ULONG_PTR key);
37
+
38
+ /* this function causes error when key does not exist */
39
+ void* aaGetval(const AAtree *tree, const ULONG_PTR key);
40
+
41
+ AAtree* aaInsert(AAtree *tree, const ULONG_PTR key, void *val);
42
+
43
+ AAtree* aaDelete(AAtree *tree, const ULONG_PTR key);
44
+
45
+ unsigned aaCount(const AAtree *tree);
46
+
47
+ /* foreach statement */
48
+ typedef void (*AAForeach)(const AAnode *, void *args);
49
+ void aaForeach(const AAtree *tree, AAForeach callback, void *arg);
50
+
51
+ /* map statement(old value is released automatically) */
52
+ typedef void*(*AAmap)(const AAnode *);
53
+ AAtree* aaMap(AAtree *tree, AAmap callback);
54
+
55
+ #endif
@@ -0,0 +1,47 @@
1
+ # Project WRB was forked from Project VisualuRuby(temp-name).
2
+ # Author of this project: BANJO Koyu <banjokoyu at gmail.com>
3
+ # The URL of this project: https://bitbucket.org/wrb/
4
+ #
5
+ # This is a ext-library part of WRB.
6
+
7
+ require "mkmf"
8
+
9
+ if RUBY_VERSION < "2.2.0"
10
+ STDERR.puts "ABORT: This version supports only Ruby 2.2 or later."
11
+ end
12
+ cflags = [" -DUNICODE", " -DRWIN_USEMULTITHREAD"]
13
+ ARGV.each{|i|
14
+ case i
15
+ when '--nounicode'
16
+ cflags.delete(" -DUNICODE")
17
+ when '--nomultithread'
18
+ cflags.delete(" -DRWIN_USEMULTITHREAD")
19
+ else
20
+ STDERR.puts "ABORT: unrecognised option: #{i}"
21
+ exit
22
+ end
23
+ }
24
+
25
+ $CFLAGS += cflags.join('')
26
+ #$CFLAGS += " -DUNICODE -DRWIN_USEMULTITHREAD"
27
+ $LDFLAGS += " -s" if CONFIG["GCC"] == "yes"
28
+
29
+ SYSTEM_LIBRARIES = [
30
+ # "uuid",
31
+ "ole32",
32
+ "winspool",
33
+ "comctl32",
34
+ # "comdlg32",
35
+ "gdi32",
36
+ "user32",
37
+ "kernel32",
38
+ "gdiplus"
39
+ ]
40
+
41
+ lacking = SYSTEM_LIBRARIES.inject([]){|ar, lib| ar<< lib unless have_library(lib)}
42
+
43
+ if lacking
44
+ STDERR.puts "ABORT: missing libraries: "<< lacking.join(",")
45
+ else
46
+ create_makefile("rwin")
47
+ end