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,228 @@
1
+ BODY {
2
+ background: white;
3
+ font: 10pt "Meiryo";
4
+ margin-left: 2%;
5
+ margin-right: 2%;
6
+ }
7
+
8
+ H1 {
9
+ max-width: 700;
10
+ font-size: 150%;
11
+ color: white;
12
+ background: #0086BF;
13
+ padding-left: 0.4em;
14
+ padding-right: 0.4em;
15
+ }
16
+
17
+ H2 {
18
+ max-width: 700;
19
+ font-size: 120%;
20
+ color: white;
21
+ background: #00A2E8;
22
+ padding-left: 0.4em;
23
+ padding-right: 0.4em;
24
+ }
25
+
26
+ H3 {
27
+ max-width: 700;
28
+ font-size: 120%;
29
+ background: #A4E3FF;
30
+ padding-left: 0.4em;
31
+ }
32
+
33
+ H4 {
34
+ max-width: 700;
35
+ font-size: 100%;
36
+ background: #D2F1FF;
37
+ padding-left: 0.4em;
38
+ }
39
+
40
+ SPAN.gohome{
41
+ float: right;
42
+ float: bottom;
43
+ font: 9pt "Meiryo";
44
+ }
45
+
46
+ SPAN.srclink {
47
+ font: 10pt "Meiryo";
48
+ font-weight: normal;
49
+ }
50
+
51
+ SPAN.ralign {
52
+ float: right;
53
+ color: #007F00;
54
+ }
55
+
56
+ P.fixedh {
57
+ height: 144px;
58
+ }
59
+
60
+ A {
61
+ font-weight: bold;
62
+ text-decoration: none;
63
+ }
64
+ A:link {
65
+ color: blue;
66
+ }
67
+ A:visited {
68
+ color: blue;
69
+ }
70
+
71
+ P {
72
+ max-width: 700;
73
+ padding-left: 1.0em;
74
+ }
75
+
76
+ DL {
77
+ margin-left: 1.0em;
78
+ }
79
+
80
+ DD{
81
+ color: #007F00;
82
+ margin-bottom: 0.5em;
83
+ max-width: 640;
84
+ }
85
+
86
+ UL {
87
+ margin-top: 0px;
88
+ margin-bottom: 8px;
89
+ padding-top: 0px;
90
+ padding-bottom: 0px;
91
+ }
92
+
93
+ LI {
94
+ margin-top: 0px;
95
+ margin-bottom: 8px;
96
+ padding-top: 0px;
97
+ padding-bottom: 0px;
98
+ }
99
+
100
+ CODE {
101
+ font-family: monospace;
102
+ }
103
+
104
+ TABLE {
105
+ font: 10pt "Meiryo";
106
+ table-layout: fixed;
107
+ max-width: 700;
108
+ padding-left: 1em;
109
+ padding-right: 1em;
110
+ }
111
+
112
+ TH {
113
+ width: 700;
114
+ background-color: #D2F1FF;
115
+ font-weight :normal;
116
+ padding: 0;
117
+ }
118
+
119
+ TD.sign {
120
+ background-color: #D2F1FF;
121
+ width: 20%;
122
+ padding-left: 0.5em;
123
+ padding-right: 0.5em;
124
+ }
125
+
126
+ TD.sign1 {
127
+ background: #D2F1FF;
128
+ width: 20%;
129
+ padding-left: 1.5em;
130
+ padding-right: 0.5em;
131
+ }
132
+ TD.sign12 {
133
+ color: White;
134
+ background-color: #00A2E8;
135
+ width: 20%;
136
+ padding-left: 1.5em;
137
+ padding-right: 0.5em;
138
+ }
139
+
140
+ TD.sign2 {
141
+ color: white;
142
+ background-color: #00A2E8;
143
+ width: 20%;
144
+ padding-left: 0.5em;
145
+ padding-right: 0.5em;
146
+ }
147
+
148
+ A.sign2 {
149
+ }
150
+ A.sign2:visited {
151
+ color: white;
152
+ }
153
+ A.sign2:link {
154
+ color: white;
155
+ }
156
+
157
+ TD.name {
158
+ background-color: #D2F1FF;
159
+ width: 15%;
160
+ padding-left: 0.5em;
161
+ padding-right: 0.5em;
162
+ font-weight: bold;
163
+ }
164
+
165
+ TD.name1 {
166
+ background-color: #D2F1FF;
167
+ width: 15%;
168
+ padding-left: 0.5em;
169
+ padding-right: 0.5em;
170
+ }
171
+
172
+ TD.type {
173
+ background-color: #F0FBFF;
174
+ width: 15%;
175
+ padding-left: 0.5em;
176
+ padding-right: 0.5em;
177
+ font: 9pt Meiryo
178
+ }
179
+
180
+ TD.desc {
181
+ width: 700pt;
182
+ background-color: #F0FBFF;
183
+ padding-left: 0.5em;
184
+ padding-right: 0.5em;
185
+ font: 9pt Meiryo
186
+ }
187
+
188
+ .imgright {
189
+ float: right;
190
+ margin-left: 0.5em;
191
+ border-left: 1em solid white;
192
+ }
193
+
194
+ PRE.cd {
195
+ font: 10pt Consolas;
196
+ margin: 1em;
197
+ padding-left: 0.5em;
198
+ padding-right: 0.5em;
199
+ border: 1pt solid black;
200
+ max-width: 660;
201
+ max-height: 240;
202
+ overflow: auto;
203
+ }
204
+
205
+ SPAN.kwd{
206
+ color: #0000FF;
207
+ }
208
+ SPAN.cmt{
209
+ color: #007F00;
210
+ }
211
+ SPAN.str{
212
+ color: #7F0000;
213
+ }
214
+ SPAN.sym{
215
+ color: #7f7f00;
216
+ }
217
+
218
+ SPAN.cm1{
219
+ font: 9pt Meiryo
220
+ }
221
+
222
+ SPAN.spl{
223
+ font-weight: normal
224
+ }
225
+
226
+ CODE{
227
+ font: 10pt Consolas;
228
+ }
@@ -0,0 +1,26 @@
1
+ # Global memory operarion
2
+
3
+ require 'wrb'
4
+
5
+ module WR
6
+ API.defun 'GlobalAlloc(UINT uFlags,SIZE_T dwBytes)'
7
+ API.defun 'GlobalReAlloc(HGLOBAL hMem,SIZE_T dwBytes,UINT uFlags)'
8
+ API.defun 'GlobalSize(HGLOBAL hMem)'
9
+ API.defun 'GlobalFlags(HGLOBAL hMem)'
10
+ API.defun 'GlobalLock(HGLOBAL hMem)'
11
+ API.defun 'GlobalHandle(LPCVOID pMem)'
12
+ API.defun 'GlobalUnlock(HGLOBAL hMem)'
13
+ API.defun 'GlobalFree(HGLOBAL hMem)'
14
+ API.defun 'GlobalCompact(DWORD dwMinFree)'
15
+ API.defun 'GlobalFix(HGLOBAL hMem)'
16
+ API.defun 'GlobalUnfix(HGLOBAL hMem)'
17
+ API.defun 'GlobalWire(HGLOBAL hMem)'
18
+ API.defun 'GlobalUnWire(HGLOBAL hMem)'
19
+ API.loadlib 'ntdll'
20
+ API.defun 'memcpy(dst, src, len)'
21
+ API.defun 'memset(dst, fill, len)'
22
+ API.defun 'memcmp(dst, src, len)'
23
+ module RWin::API
24
+
25
+ end
26
+ end
@@ -0,0 +1,59 @@
1
+ # Common module for IME
2
+
3
+ require 'wrb'
4
+ module WR
5
+
6
+ module ModIME
7
+ # IME control
8
+ RWin::API.loadlib 'imm32'
9
+ RWin::API.defun 'ImmSetOpenStatus','LL'
10
+ RWin::API.defun 'ImmGetContext','L'
11
+ RWin::API.defun 'ImmReleaseContext','LL'
12
+
13
+ # Sets state of the IME. Give a Integer or true/false for state.<br>
14
+ # If true or false given IME will turns on or off.
15
+ def IME=(state)
16
+ if state==true || state==:on || state==-1
17
+ @_immstate = -1
18
+ elsif state==false || state==:off || state==0
19
+ @_immstate = 0
20
+ elsif state==nil || state==:nocontrol
21
+ @_immstate = nil
22
+ else
23
+ raise ArgumentError, "#{state.inspect} is not allowed", caller(1)
24
+ end
25
+ end
26
+ alias ime= IME=
27
+
28
+ ImmStates = {
29
+ :imeon => -1,
30
+ :imeoff => 0
31
+ }
32
+
33
+ protected
34
+ def _apply_options(arg) #; dp "@%p, %p", self, arg
35
+ if st=ImmStates[arg]
36
+ @_immstate = st
37
+ return nil
38
+ end
39
+ super
40
+ end
41
+
42
+ private
43
+ def __gotfocus(ncode, id, hwnd)
44
+ return unless hwnd==self._hwnd
45
+ if @_immstate #; dp "@%p, %d", self, @_immstate
46
+ @_himc = RWin::API.ImmGetContext(self._hwnd)
47
+ RWin::API.ImmSetOpenStatus(@_himc, @_immstate)
48
+ else
49
+ RWin::API.ImmReleaseContext(self._hwnd, @_himc) if @_himc
50
+ end
51
+ end
52
+
53
+ def __lostfocus(ncode, id, hwnd)
54
+ return unless hwnd==self._hwnd
55
+ RWin::API.ImmReleaseContext(self._hwnd, @_himc) if @_himc
56
+ end
57
+
58
+ end
59
+ end
@@ -0,0 +1,185 @@
1
+ # Common module for ListBox and Combobox and Comboboxex
2
+
3
+ require 'wrb'
4
+
5
+ module WR
6
+ module ModListItems
7
+ include RC
8
+
9
+ class Item < String
10
+ attr_accessor :target, :index
11
+
12
+ def self.[](*args) self.new(*args); end
13
+
14
+ def initialize(target, idx, str)
15
+ @target = target
16
+ @index = idx
17
+ super(str.to_s)
18
+ end
19
+
20
+ def data=(arg)
21
+ @data = arg
22
+ if @target && @target.alive?
23
+ oid = @data.__id__
24
+ @target.send(:_setitemdata, @index, oid)
25
+ end
26
+ end
27
+ def data()
28
+ if @target && @target.alive?
29
+ dat = @target.send(:_getitemdata, @index, 0)
30
+ ObjectSpace._id2ref(dat)
31
+ else
32
+ @data
33
+ end
34
+ end
35
+
36
+ def text()
37
+ self.to_s
38
+ end
39
+
40
+ def text=(str)
41
+ @target[@index] = str.to_s
42
+ end
43
+
44
+ def delete()
45
+ @target.delete(@index)
46
+ end
47
+
48
+ def to_a() [self, self.data]; end
49
+ end # class Item
50
+
51
+ ###################### Main ####################
52
+
53
+ # Inserts a <i>text</i> and a <i>data</i> at the specified <i>index</i>.
54
+ def insert_item(index, text, data=nil)
55
+ if alive?
56
+ if text.is_a?(self.class::Item) #; dp "@%p, %p", itm, itm.data
57
+ _insertstring(index, text)
58
+ _setitemdata(index, text.data.__id__)
59
+ else
60
+ _insertstring(index, text.to_s)
61
+ lparam = data.__id__
62
+ @_ar_data << data if (lparam&1)==0 && lparam>NilID
63
+ _setitemdata(index, lparam)
64
+ end
65
+ else
66
+ @_items.insert(index, [text, data])
67
+ end
68
+ end
69
+
70
+ # insert(index, length=1, items)
71
+ # Inserts and replaces at the specified <i>index</i> and <i>length</i> by the <i>items</i>.
72
+ def insert(*args)
73
+ idx = args.shift
74
+ idx = self.count if idx == -1
75
+ case args.size
76
+ when 2
77
+ len = args.shift
78
+ args = args[0]
79
+ when 1
80
+ len = 1
81
+ args = [args]
82
+ else
83
+ raise ArgumentError, "Illegal num of args: #{args.size + 1}"
84
+ end
85
+ len.times{delete_item(idx)}
86
+ args.each_with_index{|val, i| insert_item(idx + i, *val)}
87
+ end
88
+ alias []= insert
89
+
90
+ # Deletes item of specified <i>index</i> from this control.
91
+ def delete_item(index)
92
+ if self.alive?
93
+ lparam = _getitemdata(index.to_i, 0)
94
+ if (lparam&1)==0 && lparam>NilID
95
+ data = ObjectSpace._id2ref(lparam) #; dp "@data=%p", data
96
+ if n = @_ar_data.index(data)
97
+ @_ar_data.delete_at(n)
98
+ end
99
+ end
100
+ _deletestring(index.to_i, 0)
101
+ else
102
+ @_items.delete_at(index)
103
+ end
104
+ end
105
+
106
+ # delete(index=nil, number=1)
107
+ # Deletes items at specified <i>index</i> and <i>number</i> from this control.<br>
108
+ # If no arguments given, deletes self.
109
+ def delete(index=nil, number=1)
110
+ return super() if index.nil?
111
+ number.times{delete_item(index)}
112
+ end
113
+
114
+ # Retreives index of given text.<br>
115
+ # Give a String or a Symbol as arg.
116
+ def index(arg)
117
+ alive? ? _findstring(0, arg.to_s) : @_items.index(arg.to_s)
118
+ end
119
+
120
+ # Retreives count of items.
121
+ def count()
122
+ alive? ? _getcount(0, 0) : @_items.size
123
+ end
124
+
125
+ # Adds the args at last of the items.<br>
126
+ # Give a String or a Array of [String, Object] as args.
127
+ def <<(args)
128
+ args = [args] unless args.is_a?(Array)
129
+ insert(count, 0, args)
130
+ end
131
+
132
+ # Retreives an item at the specified index.
133
+ def fetch(idx)
134
+ l = _gettextlen(idx, 0)
135
+ raise ArgumentError, "No such index(#{idx}) in the Listbox" if l<0
136
+ buff = TCHAR[l+1]
137
+ _gettext(idx, buff)
138
+ self.class::Item.new(self, idx, buff)
139
+ end
140
+
141
+ # Retreives the items at the specified index and length.
142
+ def slice(idx, len=1)
143
+ if self.alive?
144
+ ar = []
145
+ len.times{|i| ar << fetch(idx + i) }
146
+ ar.size == 1 ? ar[0] : ar
147
+ else
148
+ @_items[idx, len]
149
+ end
150
+ end
151
+ alias [] slice
152
+
153
+ # Retrieves the index of the currently selected item.
154
+ def cursel()
155
+ alive? ? _getcursel(0, 0) : @_cursel
156
+ end
157
+
158
+ # Changes the currently selected item to specified index.
159
+ def cursel=(idx)
160
+ alive? ? _setcursel(idx, 0) : @_cursel=(idx || -1)
161
+ end
162
+
163
+ # Retrieves the currently selected item as String.
164
+ def selection()
165
+ (i=cursel) >= 0 ? fetch(i) : nil
166
+ end
167
+
168
+ # each(){|item| ... }
169
+ # Performs the block for each item in this list as a block parameter.
170
+ def each()
171
+ count.times{|i| yield fetch(i) }
172
+ end
173
+
174
+ # Gets an any object as data of specified index of items.
175
+ def itemdata(idx)
176
+ _getitemdata(idx, 0)
177
+ end
178
+
179
+
180
+ # Sets an any object as data to specified index of items.
181
+ def itemdata=(idx, data)
182
+ _setitemdata(idx, data)
183
+ end
184
+ end
185
+ end