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,20 @@
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 script part of WRB.
6
+
7
+ require 'rwin'
8
+
9
+ module WR
10
+ WR_VERSION = '2.0.0'
11
+ ALLOWED_RW_VERSION = '2.0.0'
12
+ WR_INSTALLED_DIR = File.dirname(__FILE__)
13
+ if RWin::RW_VERSION < ALLOWED_RW_VERSION
14
+ raise "RWin(version #{RWin::RW_VERSION}) is too old to run this version(#{WR_VERSION}) of wrb."
15
+ end
16
+
17
+ $:.unshift WR_INSTALLED_DIR + '/wrb/components'
18
+ require 'wrb/base'
19
+ end
20
+
@@ -0,0 +1,34 @@
1
+ require_relative '../fdmodules' if __FILE__ == $0
2
+ module WR
3
+ Button.extend ModFormDesigner
4
+ class Button
5
+ FDConfig[:default_size] = [80, 24]
6
+ FDConfig[:attributes] = ['caption', 's'], ['position', 'ii'], ['size', 'ii'], ['margin', 'iiii,t'], ['font', 'sis,t'], ['idcmd', 'i']
7
+ FDConfig[:styles] = [:text, :icon, :bitmap, :left, :right, :center, :top,
8
+ :bottom, :vcenter, :multiline, :notify, :flat, :ownerdraw]
9
+ FDConfig[:altanate_mask] = [RC::BS_TYPEMASK, RC::BS_CENTER, RC::BS_VCENTER]
10
+
11
+ FDConfig[:idcmd_get] = lambda{|ctl, val|
12
+ return nil unless ctl.parent.is_a?(Dialog)
13
+ case ctl.idcmd
14
+ when 1
15
+ "IDOK"
16
+ when 2
17
+ "IDCANCEL"
18
+ else
19
+ ""
20
+ end
21
+ }
22
+
23
+ FDConfig[:idcmd_set] = lambda{|ctl, ar|
24
+ case ar[0].to_s.downcase
25
+ when "idok", "ok", "1"
26
+ 1
27
+ when "idcancel", "cancel", "can", "2"
28
+ 2
29
+ else
30
+ 0
31
+ end
32
+ }
33
+ end
34
+ end
@@ -0,0 +1,10 @@
1
+ require_relative '../fdmodules' if __FILE__ == $0
2
+ module WR
3
+ Checkbox.extend ModFormDesigner
4
+ class Checkbox
5
+ FDConfig[:default_size] = [100, 24]
6
+ FDConfig[:attributes] = ['caption', 's'], ['position', 'ii'], ['size', 'ii'], ['margin', 'iiii,t'], ['font', 'sis,t']
7
+ FDConfig[:styles] = [:threestate, :auto3state, :lefttext, :notify]
8
+ FDConfig[:altanate_mask] = [RC::BS_TYPEMASK]
9
+ end
10
+ end
@@ -0,0 +1,88 @@
1
+ require_relative '../fdmodules' if __FILE__ == $0
2
+ module WR
3
+ Combobox.extend ModFormDesigner
4
+ class Combobox
5
+ FDConfig[:default_size] = [128, 128]
6
+ FDConfig[:attributes] = ['caption', 's'], ['position', 'ii'], ['size', 'ii'], ['margin', 'iiii,t'], ['font', 'sis,t'], ['droppedwidth', 'i'], ['droppedheight', 'i']
7
+ FDConfig[:altanate_mask] = [RC::CBS_DROPDOWNLIST]
8
+ FDConfig[:need_childhook] = true
9
+ FDConfig[:size_out] = lambda{|ctl, atr| atr[1] = ctl.droppedheight; atr}
10
+ FDConfig[:droppedheight_out] = lambda{|ctl, atr| nil}
11
+ FDConfig[:droppedwidth_out] = lambda{|ctl, atr| ctl.w==atr || atr<0 ? nil : atr}
12
+ FDConfig[:attr_tabs] = 'Attributes', 'Styles', 'Events', 'Items'
13
+
14
+ def __fd_recreate_this()
15
+ @_items = []
16
+ each{|i| @_items << i.to_s}
17
+ __fd_recreate()
18
+ end
19
+
20
+ def __fd_set_lvitem(lv, ilist)
21
+ lv.viewmode = :reportview
22
+ lv.imagelist = ilist
23
+ lv.columns = ['', 248]
24
+ end
25
+
26
+ def __fd_update_lv(lv)
27
+ lv.clear
28
+ each{|i| lv << i.to_s}
29
+ end
30
+
31
+ def __fd_edit_item(lv, idx, subitem, ed)
32
+ case subitem
33
+ when 0
34
+ self[idx] = ed.text unless ed.text.empty?
35
+ else
36
+ ed.hide
37
+ end
38
+ __fd_update_lv(lv)
39
+ end
40
+
41
+ def __fd_on_lv_rclick(lv, idx)
42
+ [:additem, "Add Item", :sep, :deleteitem, "Delete"]
43
+ end
44
+
45
+ def __fd_on_additem(lv, idx, mnu, id)
46
+ self << "item#{lv.count}"
47
+ __fd_update_lv(lv)
48
+ end
49
+
50
+ def __fd_on_deleteitem(lv, idx)
51
+ return if idx < 0
52
+ self.delete(idx)
53
+ __fd_update_lv(lv)
54
+ end
55
+
56
+ def __fd_on_delete_this()
57
+ return unless lns = @_toplevelwin.__fd_src[:lines]
58
+ # __fd_delete_items_src(self, lns)
59
+ __fd_delete_items_srcs(lns)
60
+ end
61
+
62
+ def __fd_output_items(lns, curln, indent)
63
+ if count == 0
64
+ __fd_delete_items_srcs(lns)
65
+ else
66
+ ps = __fd_get_parents_str2
67
+ ar = []
68
+ each{|i| ar << "#{ps} << \"#{i}\""}
69
+ curln = __fd_set_items_srcs(lns, curln, indent, ar)
70
+ end
71
+ curln
72
+ end
73
+ def __fd_item_loaded(item, asrc)
74
+ extend ModFDItemsSrcLine unless @__fd_items_srcs
75
+ @__fd_items_srcs << asrc
76
+ end
77
+
78
+ # def __fd_output_items__(lns, curln, indent)
79
+ # if count > 0
80
+ # a = []
81
+ # each{|i| a << "\"#{i}\""}
82
+ # s = __fd_get_parents_str2 + " << [#{a.join(', ')}]"
83
+ # __fd_set_items_src(self, lns, curln+=1, indent, s)
84
+ # end
85
+ # curln
86
+ # end
87
+ end
88
+ end
@@ -0,0 +1,97 @@
1
+ require_relative '../fdmodules' if __FILE__ == $0
2
+ module WR
3
+ ComboboxEx.extend ModFormDesigner
4
+ class ComboboxEx
5
+ FDConfig[:classify] = :commonctrl
6
+ FDConfig[:default_name] = "comboex"
7
+ FDConfig[:default_size] = [128, 128]
8
+ FDConfig[:attributes] = ['caption', 's'], ['position', 'ii'], ['size', 'ii'], ['margin', 'iiii,t'], ['font', 'sis,t'], ['droppedwidth', 'i'], ['droppedheight', 'i'], ['imagelist', 'n']
9
+ FDConfig[:altanate_mask] = [RC::CBS_DROPDOWNLIST]
10
+ FDConfig[:need_childhook] = true
11
+
12
+ FDConfig[:size_out] = lambda{|ctl, atr| atr[1] = ctl.droppedheight; atr}
13
+ FDConfig[:droppedheight_out] = lambda{|ctl, atr| nil}
14
+ FDConfig[:droppedwidth_out] = lambda{|ctl, atr| ctl.w==atr || atr<0 ? nil : atr}
15
+ FDConfig[:attr_tabs] = 'Attributes', 'Styles', 'Events', 'Items'
16
+
17
+ def __fd_recreate_this()
18
+ @_items = []
19
+ each{|i| @_items << [i.text, i.image, i.indent]}
20
+ __fd_recreate()
21
+ end
22
+
23
+ def __fd_set_lvitem(lv, ilist)
24
+ lv.viewmode = :reportview
25
+ lv.imagelist = ilist
26
+ lv.style &= ~LVS_NOCOLUMNHEADER
27
+ lv.columns = ['ItemText', 172], ['Img', 40], ['>>', 32]
28
+ end
29
+
30
+ def __fd_update_lv(lv)
31
+ lv.clear
32
+ each{|i| lv << "#{i.text}\t#{i.image}\t#{i.indent}"}
33
+ end
34
+
35
+ def __fd_edit_item(lv, idx, subitem, ed)
36
+ case subitem
37
+ when 0
38
+ self[idx].text = ed.text unless ed.text.empty?
39
+ when 1
40
+ self[idx].image = ed.text.to_i unless ed.text.empty?
41
+ when 2
42
+ self[idx].indent = ed.text.to_i unless ed.text.empty?
43
+ else
44
+ ed.hide
45
+ end
46
+ __fd_update_lv(lv)
47
+ end
48
+
49
+ def __fd_on_lv_rclick(lv, idx)
50
+ [:additem, "Add Item", :sep, :deleteitem, "Delete"]
51
+ end
52
+
53
+ def __fd_on_additem(lv, idx, mnu, id)
54
+ self << "item#{lv.count}"
55
+ __fd_update_lv(lv)
56
+ end
57
+
58
+ def __fd_on_deleteitem(lv, idx)
59
+ return if idx < 0
60
+ self.delete(idx)
61
+ __fd_update_lv(lv)
62
+ end
63
+
64
+ def __fd_on_delete_this()
65
+ return unless lns = @_toplevelwin.__fd_src[:lines]
66
+ __fd_delete_items_srcs(lns)
67
+ # __fd_delete_items_src(self, lns)
68
+ end
69
+
70
+ def __fd_output_items(lns, curln, indent)
71
+ if count == 0
72
+ __fd_delete_items_srcs(lns)
73
+ else
74
+ ps = __fd_get_parents_str2
75
+ ar = []
76
+ each{|i| ar << "#{ps} << [\"#{i.text}\", #{i.image}, #{i.indent}]"}
77
+ curln = __fd_set_items_srcs(lns, curln, indent, ar)
78
+ end
79
+ curln
80
+ end
81
+
82
+ def __fd_item_loaded(item, asrc)
83
+ extend ModFDItemsSrcLine unless @__fd_items_srcs
84
+ @__fd_items_srcs << asrc
85
+ end
86
+
87
+ # def __fd_output_items(lns, curln, indent)
88
+ # if count > 0
89
+ # a = []
90
+ # self.each{|i| a << [i.text, i.image, i.indent].inspect}
91
+ # s = __fd_get_parents_str2 + " << [#{a.join(', ')}]"
92
+ # __fd_set_items_src(self, lns, curln+=1, indent, s)
93
+ # end
94
+ # curln
95
+ # end
96
+ end
97
+ end
@@ -0,0 +1,11 @@
1
+ require_relative '../fdmodules' if __FILE__ == $0
2
+ module WR
3
+ include RC
4
+ DateTimePicker.extend ModFormDesigner
5
+ class DateTimePicker
6
+ FDConfig[:classify] = :commonctrl
7
+ FDConfig[:default_size] = [100, 24]
8
+ FDConfig[:attributes] = ['position', 'ii'], ['size', 'ii'], ['font', 'sis,t']
9
+ FDConfig[:need_recreate] = true
10
+ end
11
+ end
@@ -0,0 +1,8 @@
1
+ require_relative '../fdmodules' if __FILE__ == $0
2
+ module WR
3
+ Edit.extend ModFormDesigner
4
+ class Edit
5
+ FDConfig[:default_size] = [80, 24]
6
+ FDConfig[:attributes] = ['caption', 's'], ['position', 'ii'], ['size', 'ii'], ['margin', 'iiii,t'], ['font', 'sis,t']
7
+ end
8
+ end
@@ -0,0 +1,9 @@
1
+ require_relative '../fdmodules' if __FILE__ == $0
2
+ module WR
3
+ Groupbox.extend ModFormDesigner
4
+ class Groupbox
5
+ FDConfig[:default_size] = [128, 128]
6
+ FDConfig[:attributes] = ['caption', 's'], ['position', 'ii'], ['size', 'ii'], ['margin', 'iiii,t'], ['font', 'sis,t']
7
+ FDConfig[:styles] = [:notify]
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require_relative '../fdmodules' if __FILE__ == $0
2
+ module WR
3
+ Hotkeyctrl.extend ModFormDesigner
4
+ class Hotkeyctrl
5
+ FDConfig[:classify] = :commonctrl
6
+ FDConfig[:default_size] = [80, 24]
7
+ FDConfig[:attributes] = ['position', 'ii'], ['size', 'ii'], ['font', 'sis,t']
8
+ end
9
+ end
@@ -0,0 +1,115 @@
1
+ require_relative '../fdmodules' if __FILE__ == $0
2
+ module WR
3
+ Imagelist.extend ModFormDesigner
4
+ class Imagelist
5
+ FDConfig[:classify] = :resources
6
+ FDConfig[:attributes] = 'iconsize' ,'masked', ['downlevel', 'b'], 'bindedfile'
7
+ FDConfig[:attr_tabs] = 'Attributes', 'Items'
8
+ FDConfig[:bindedfile_get] = lambda{|ctl, val| ctl.__fd_bindedfile.to_s rescue ''}
9
+
10
+ def __fd_update_lv(lv)
11
+ lv.clear
12
+ count.times{|i| lv << [i.to_s, i]}
13
+ if __fd_bindedfile
14
+ path = File.expand_path(__fd_bindedfile,
15
+ File.dirname(__fd_toplevelwin.__fd_src[:filename]))
16
+ savefile(path, downlevel)
17
+ end
18
+ end
19
+
20
+ def __fd_set_lvitem(lv, ilist)
21
+ lv.viewmode = :listview
22
+ @__dup ||= self.dup
23
+ lv.imagelist = @__dup, @__dup
24
+ # lv.imagelist = self, self
25
+ __fd_update_lv(lv)
26
+ end
27
+
28
+ def __fd_on_lv_rclick(lv, idx)
29
+ [:additem, "Add", :deleteitem, "Delete"]
30
+ end
31
+
32
+ def __fd_on_additem(lv, idx, *)
33
+ return nil unless path = WR::OpenFileNameDlg.show(nil)
34
+ if open(path, 'rb'){|f| f.read(2)} == 'IL'
35
+ self << Imagelist.fromfile(path)
36
+ @__dup << Imagelist.fromfile(path)
37
+ else
38
+ self << Bitmap.fromfile(path)
39
+ @__dup << Bitmap.fromfile(path)
40
+ end
41
+ count.times{|i| lv << [i.to_s, i]}
42
+ __fd_update_lv(lv)
43
+ end
44
+
45
+ def __fd_on_deleteitem(lv, idx)
46
+ remove(idx)
47
+ @__dup.remove(idx)
48
+ __fd_update_lv(lv)
49
+ end
50
+
51
+ def __fd_edit_item(lv, idx, subitem, ed)
52
+ ed.isubitem = 0
53
+ src = idx; dst = lv[idx].text
54
+ return unless dst =~ /\s*\d+/
55
+ dst = dst.to_i
56
+ return if dst >= self.size || dst < 0
57
+ ico = self[src].icon
58
+ _ico = @__dup[src].icon
59
+ if src > dst
60
+ (dst..src).each{|i|
61
+ ico1 = self[i].icon
62
+ replaceicon(i, ico)
63
+ ico.dispose
64
+ ico = ico1
65
+ _ico1 = @__dup[i].icon
66
+ @__dup.replaceicon(i, _ico)
67
+ _ico.dispose
68
+ _ico = _ico1
69
+ }
70
+ elsif src < dst
71
+ (src..dst-1).each{|i|
72
+ ico1 = self[i+1].icon
73
+ replaceicon(i, ico1)
74
+ ico1.dispose
75
+ _ico1 = @__src[i+1].icon
76
+ @__dup.replaceicon(i, _ico1)
77
+ _ico1.dispose
78
+ }
79
+ replaceicon(dst, ico)
80
+ end
81
+ ico.dispose
82
+ _ico.dispose
83
+ __fd_update_lv(lv)
84
+ end
85
+
86
+ def __fd_on_delete_this()
87
+ return unless lns = __fd_toplevelwin.__fd_src[:lines]
88
+ return unless @__fd_src
89
+ lsrc, lcount = @__fd_src[2, 2]
90
+ if lcount
91
+ ll = lns.index(lsrc)
92
+ lns.slice!(ll, lcount)
93
+ else
94
+ lns.delete(lsrc)
95
+ end
96
+ end
97
+
98
+ def __fd_imagelist_to_str(lns, curln, indent)
99
+ s = if @__fd_bindedfile
100
+ "Imagelist.fromfile(:#{self.name}, \"#{@__fd_bindedfile}\")\n"
101
+ else
102
+ "Imagelist.loadb64(:#{self.name}, \"#{self.dumpb64(self.downlevel)}\")\n"
103
+ end
104
+ __fd_update_src(lns, curln, indent, s)
105
+ end
106
+
107
+ def __fd_to_str(lns, curln, indent)
108
+ __fd_imagelist_to_str(lns, curln, indent)
109
+ end
110
+
111
+ def __fd_modify_src(lns, curln, indent)
112
+ __fd_imagelist_to_str(lns, curln, indent)
113
+ end
114
+ end
115
+ end
@@ -0,0 +1,77 @@
1
+ require_relative '../fdmodules' if __FILE__ == $0
2
+ module WR
3
+ Listbox.extend ModFormDesigner
4
+ class Listbox
5
+ FDConfig[:default_size] = [128, 128]
6
+ FDConfig[:attributes] = ['caption', 's'], ['position', 'ii'], ['size', 'ii'], ['margin', 'iiii,t'], ['font', 'sis,t']
7
+ FDConfig[:default_caption] = ""
8
+ FDConfig[:attr_tabs] = 'Attributes', 'Styles', 'Events', 'Items'
9
+
10
+ def __fd_set_lvitem(lv, ilist)
11
+ lv.viewmode = :reportview
12
+ lv.imagelist = ilist
13
+ lv.columns = ['', 248]
14
+ end
15
+
16
+ def __fd_update_lv(lv)
17
+ lv.clear
18
+ each{|i| lv << i.to_s}
19
+ end
20
+
21
+ def __fd_edit_item(lv, idx, subitem, ed)
22
+ case subitem
23
+ when 0
24
+ self[idx] = ed.text unless ed.text.empty?
25
+ else
26
+ ed.hide
27
+ end
28
+ __fd_update_lv(lv)
29
+ end
30
+
31
+ def __fd_on_lv_rclick(lv, idx)
32
+ [:additem, "Add Item", :sep, :deleteitem, "Delete"]
33
+ end
34
+
35
+ def __fd_on_additem(lv, idx, mnu, id)
36
+ self << "item#{lv.count}"
37
+ __fd_update_lv(lv)
38
+ end
39
+
40
+ def __fd_on_deleteitem(lv, idx)
41
+ return if idx < 0
42
+ self.delete(idx)
43
+ __fd_update_lv(lv)
44
+ end
45
+
46
+ def __fd_on_delete_this()
47
+ return unless lns = @_toplevelwin.__fd_src[:lines]
48
+ __fd_delete_items_src(self, lns)
49
+ end
50
+
51
+ def __fd_output_items(lns, curln, indent)
52
+ if count == 0
53
+ __fd_delete_items_srcs(lns)
54
+ else
55
+ ps = __fd_get_parents_str2
56
+ ar = []
57
+ each{|i| ar << "#{ps} << \"#{i}\""}
58
+ curln = __fd_set_items_srcs(lns, curln, indent, ar)
59
+ end
60
+ curln
61
+ end
62
+
63
+ def __fd_item_loaded(item, asrc)
64
+ extend ModFDItemsSrcLine unless @__fd_items_srcs
65
+ @__fd_items_srcs << asrc
66
+ end
67
+ # def __fd_output_items(lns, curln, indent)
68
+ # if count > 0
69
+ # a = []
70
+ # each{|i| a << "\"#{i}\""}
71
+ # s = __fd_get_parents_str2 + " << [#{a.join(', ')}]"
72
+ # __fd_set_items_src(self, lns, curln+=1, indent, s)
73
+ # end
74
+ # curln
75
+ # end
76
+ end
77
+ end