ruby-iup 0.0.1

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 (323) hide show
  1. data/Rakefile +97 -0
  2. data/doc/README +10 -0
  3. data/doc/build_install.txt +77 -0
  4. data/examples/README +16 -0
  5. data/examples/ctrl/cbox.rb +221 -0
  6. data/examples/ctrl/checkboard.rb +33 -0
  7. data/examples/ctrl/degrade.rb +73 -0
  8. data/examples/ctrl/example1.rb +53 -0
  9. data/examples/ctrl/example2.rb +39 -0
  10. data/examples/ctrl/iupcolorbar.rb +95 -0
  11. data/examples/ctrl/iupcolorbrowser.rb +45 -0
  12. data/examples/ctrl/iupdial.rb +117 -0
  13. data/examples/ctrl/iupgauge.rb +242 -0
  14. data/examples/ctrl/iupgetcolor.rb +8 -0
  15. data/examples/ctrl/iupgetparam.rb +62 -0
  16. data/examples/ctrl/iupglcanvas.rb +172 -0
  17. data/examples/ctrl/iupmask.rb +15 -0
  18. data/examples/ctrl/iupmatrix.rb +39 -0
  19. data/examples/ctrl/iupplot2.rb +603 -0
  20. data/examples/ctrl/iuptabs.rb +22 -0
  21. data/examples/ctrl/iuptree.rb +190 -0
  22. data/examples/ctrl/iupval.rb +71 -0
  23. data/examples/ctrl/numbering.rb +46 -0
  24. data/examples/ctrl/sample.rb +166 -0
  25. data/examples/dlg/iupalarm.rb +14 -0
  26. data/examples/dlg/iupfiledlg.rb +19 -0
  27. data/examples/dlg/iupgetfile.rb +19 -0
  28. data/examples/dlg/iuplistdialog.rb +26 -0
  29. data/examples/dlg/iupmessage.rb +5 -0
  30. data/examples/dlg/iupscanf.rb +17 -0
  31. data/examples/elem/iupbutton.rb +197 -0
  32. data/examples/elem/iupcanvas.rb +27 -0
  33. data/examples/elem/iupcanvas2.rb +113 -0
  34. data/examples/elem/iupcanvas3.rb +62 -0
  35. data/examples/elem/iupdialog.rb +71 -0
  36. data/examples/elem/iupdialog2.rb +25 -0
  37. data/examples/elem/iupfill.rb +51 -0
  38. data/examples/elem/iupframe.rb +25 -0
  39. data/examples/elem/iuphbox.rb +68 -0
  40. data/examples/elem/iupimage.rb +113 -0
  41. data/examples/elem/iupitem.rb +60 -0
  42. data/examples/elem/iuplabel.rb +57 -0
  43. data/examples/elem/iuplist.rb +41 -0
  44. data/examples/elem/iuplist2.rb +125 -0
  45. data/examples/elem/iupmenu.rb +32 -0
  46. data/examples/elem/iupmultiline.rb +24 -0
  47. data/examples/elem/iupmultiline2.rb +156 -0
  48. data/examples/elem/iupradio.rb +32 -0
  49. data/examples/elem/iupseparator.rb +81 -0
  50. data/examples/elem/iupsubmenu.rb +85 -0
  51. data/examples/elem/iuptext.rb +61 -0
  52. data/examples/elem/iuptimer.rb +36 -0
  53. data/examples/elem/iuptoggle.rb +110 -0
  54. data/examples/elem/iupvbox.rb +87 -0
  55. data/examples/elem/iupzbox.rb +60 -0
  56. data/examples/elem/mdisample.rb +376 -0
  57. data/examples/elem/progressbar.rb +294 -0
  58. data/examples/elem/scrollbar.rb +66 -0
  59. data/examples/elem/tray.rb +90 -0
  60. data/examples/func/iupgetattribute.rb +32 -0
  61. data/examples/func/iupidle.rb +48 -0
  62. data/ext/extconf.rb +27 -0
  63. data/ext/iup-linux/include/cd.h +494 -0
  64. data/ext/iup-linux/include/cd_canvas.hpp +358 -0
  65. data/ext/iup-linux/include/cd_old.h +158 -0
  66. data/ext/iup-linux/include/cd_private.h +362 -0
  67. data/ext/iup-linux/include/cdcgm.h +34 -0
  68. data/ext/iup-linux/include/cdclipbd.h +22 -0
  69. data/ext/iup-linux/include/cddbuf.h +23 -0
  70. data/ext/iup-linux/include/cddebug.h +24 -0
  71. data/ext/iup-linux/include/cddgn.h +23 -0
  72. data/ext/iup-linux/include/cddxf.h +22 -0
  73. data/ext/iup-linux/include/cdemf.h +22 -0
  74. data/ext/iup-linux/include/cdgdiplus.h +29 -0
  75. data/ext/iup-linux/include/cdimage.h +23 -0
  76. data/ext/iup-linux/include/cdirgb.h +30 -0
  77. data/ext/iup-linux/include/cdiup.h +22 -0
  78. data/ext/iup-linux/include/cdlua.h +39 -0
  79. data/ext/iup-linux/include/cdlua3_private.h +120 -0
  80. data/ext/iup-linux/include/cdlua5_private.h +141 -0
  81. data/ext/iup-linux/include/cdluaim.h +24 -0
  82. data/ext/iup-linux/include/cdluaiup.h +27 -0
  83. data/ext/iup-linux/include/cdluapdf.h +27 -0
  84. data/ext/iup-linux/include/cdmf.h +24 -0
  85. data/ext/iup-linux/include/cdmf_private.h +32 -0
  86. data/ext/iup-linux/include/cdnative.h +26 -0
  87. data/ext/iup-linux/include/cdpdf.h +38 -0
  88. data/ext/iup-linux/include/cdpicture.h +22 -0
  89. data/ext/iup-linux/include/cdprint.h +23 -0
  90. data/ext/iup-linux/include/cdps.h +37 -0
  91. data/ext/iup-linux/include/cdwmf.h +22 -0
  92. data/ext/iup-linux/include/im.h +282 -0
  93. data/ext/iup-linux/include/im_attrib.h +116 -0
  94. data/ext/iup-linux/include/im_attrib_flat.h +39 -0
  95. data/ext/iup-linux/include/im_binfile.h +214 -0
  96. data/ext/iup-linux/include/im_capture.h +365 -0
  97. data/ext/iup-linux/include/im_color.h +465 -0
  98. data/ext/iup-linux/include/im_colorhsi.h +61 -0
  99. data/ext/iup-linux/include/im_complex.h +160 -0
  100. data/ext/iup-linux/include/im_convert.h +127 -0
  101. data/ext/iup-linux/include/im_counter.h +69 -0
  102. data/ext/iup-linux/include/im_dib.h +195 -0
  103. data/ext/iup-linux/include/im_file.h +111 -0
  104. data/ext/iup-linux/include/im_format.h +79 -0
  105. data/ext/iup-linux/include/im_format_all.h +576 -0
  106. data/ext/iup-linux/include/im_format_avi.h +87 -0
  107. data/ext/iup-linux/include/im_format_ecw.h +93 -0
  108. data/ext/iup-linux/include/im_format_jp2.h +78 -0
  109. data/ext/iup-linux/include/im_format_raw.h +64 -0
  110. data/ext/iup-linux/include/im_format_wmv.h +100 -0
  111. data/ext/iup-linux/include/im_image.h +403 -0
  112. data/ext/iup-linux/include/im_kernel.h +315 -0
  113. data/ext/iup-linux/include/im_lib.h +191 -0
  114. data/ext/iup-linux/include/im_math.h +368 -0
  115. data/ext/iup-linux/include/im_math_op.h +219 -0
  116. data/ext/iup-linux/include/im_palette.h +172 -0
  117. data/ext/iup-linux/include/im_plus.h +73 -0
  118. data/ext/iup-linux/include/im_process.h +35 -0
  119. data/ext/iup-linux/include/im_process_ana.h +221 -0
  120. data/ext/iup-linux/include/im_process_glo.h +170 -0
  121. data/ext/iup-linux/include/im_process_loc.h +577 -0
  122. data/ext/iup-linux/include/im_process_pon.h +712 -0
  123. data/ext/iup-linux/include/im_raw.h +34 -0
  124. data/ext/iup-linux/include/im_util.h +277 -0
  125. data/ext/iup-linux/include/imlua.h +83 -0
  126. data/ext/iup-linux/include/iup.h +255 -0
  127. data/ext/iup-linux/include/iup_pplot.h +40 -0
  128. data/ext/iup-linux/include/iupcb.h +25 -0
  129. data/ext/iup-linux/include/iupcbox.h +23 -0
  130. data/ext/iup-linux/include/iupcbs.h +42 -0
  131. data/ext/iup-linux/include/iupcells.h +130 -0
  132. data/ext/iup-linux/include/iupcolorbar.h +126 -0
  133. data/ext/iup-linux/include/iupcompat.h +62 -0
  134. data/ext/iup-linux/include/iupcontrols.h +40 -0
  135. data/ext/iup-linux/include/iupcpi.h +76 -0
  136. data/ext/iup-linux/include/iupdef.h +520 -0
  137. data/ext/iup-linux/include/iupdial.h +64 -0
  138. data/ext/iup-linux/include/iupgauge.h +57 -0
  139. data/ext/iup-linux/include/iupgc.h +20 -0
  140. data/ext/iup-linux/include/iupgetparam.h +27 -0
  141. data/ext/iup-linux/include/iupgl.h +101 -0
  142. data/ext/iup-linux/include/iupim.h +21 -0
  143. data/ext/iup-linux/include/iupkey.h +290 -0
  144. data/ext/iup-linux/include/iuplua.h +41 -0
  145. data/ext/iup-linux/include/iuplua_pplot.h +26 -0
  146. data/ext/iup-linux/include/iupluacontrols.h +27 -0
  147. data/ext/iup-linux/include/iupluagl.h +26 -0
  148. data/ext/iup-linux/include/iupluaim.h +26 -0
  149. data/ext/iup-linux/include/iupluaole.h +26 -0
  150. data/ext/iup-linux/include/iupmask.h +52 -0
  151. data/ext/iup-linux/include/iupmatrix.h +69 -0
  152. data/ext/iup-linux/include/iupole.h +24 -0
  153. data/ext/iup-linux/include/iupsbox.h +20 -0
  154. data/ext/iup-linux/include/iupspeech.h +23 -0
  155. data/ext/iup-linux/include/iupspin.h +21 -0
  156. data/ext/iup-linux/include/iuptabs.h +79 -0
  157. data/ext/iup-linux/include/iuptree.h +93 -0
  158. data/ext/iup-linux/include/iupval.h +46 -0
  159. data/ext/iup-linux/include/lauxlib.h +174 -0
  160. data/ext/iup-linux/include/lua.h +388 -0
  161. data/ext/iup-linux/include/lua.hpp +9 -0
  162. data/ext/iup-linux/include/luaconf.h +763 -0
  163. data/ext/iup-linux/include/lualib.h +53 -0
  164. data/ext/iup-linux/include/old_im.h +59 -0
  165. data/ext/iup-linux/include/wd.h +78 -0
  166. data/ext/iup-linux/include/wd_old.h +85 -0
  167. data/ext/iup-linux/libcd.so +0 -0
  168. data/ext/iup-linux/libcdcontextplus.so +0 -0
  169. data/ext/iup-linux/libcdluacontextplus51.so +0 -0
  170. data/ext/iup-linux/libcdpdf.so +0 -0
  171. data/ext/iup-linux/libfreetype.so +0 -0
  172. data/ext/iup-linux/libim.so +0 -0
  173. data/ext/iup-linux/libim_fftw.so +0 -0
  174. data/ext/iup-linux/libim_jp2.so +0 -0
  175. data/ext/iup-linux/libim_process.so +0 -0
  176. data/ext/iup-linux/libiup.so +0 -0
  177. data/ext/iup-linux/libiup_pplot.so +0 -0
  178. data/ext/iup-linux/libiupcd.so +0 -0
  179. data/ext/iup-linux/libiupcontrols.so +0 -0
  180. data/ext/iup-linux/libiupgl.so +0 -0
  181. data/ext/iup-linux/libiupim.so +0 -0
  182. data/ext/iup-linux/libiupimglib.so +0 -0
  183. data/ext/iup-linux/libpdflib.so +0 -0
  184. data/ext/iup-win32/cd.dll +0 -0
  185. data/ext/iup-win32/cd.lib +0 -0
  186. data/ext/iup-win32/cdcontextplus.dll +0 -0
  187. data/ext/iup-win32/cdcontextplus.lib +0 -0
  188. data/ext/iup-win32/cdlua51.lib +0 -0
  189. data/ext/iup-win32/cdluacontextplus51.lib +0 -0
  190. data/ext/iup-win32/cdluaim51.lib +0 -0
  191. data/ext/iup-win32/cdluapdf51.lib +0 -0
  192. data/ext/iup-win32/cdpdf.dll +0 -0
  193. data/ext/iup-win32/cdpdf.lib +0 -0
  194. data/ext/iup-win32/freetype6.dll +0 -0
  195. data/ext/iup-win32/freetype6.lib +0 -0
  196. data/ext/iup-win32/im.dll +0 -0
  197. data/ext/iup-win32/im_avi.dll +0 -0
  198. data/ext/iup-win32/im_capture.dll +0 -0
  199. data/ext/iup-win32/im_ecw.dll +0 -0
  200. data/ext/iup-win32/im_fftw.dll +0 -0
  201. data/ext/iup-win32/im_jp2.dll +0 -0
  202. data/ext/iup-win32/im_process.dll +0 -0
  203. data/ext/iup-win32/im_wmv.dll +0 -0
  204. data/ext/iup-win32/include/cd.h +494 -0
  205. data/ext/iup-win32/include/cd_canvas.hpp +358 -0
  206. data/ext/iup-win32/include/cd_old.h +158 -0
  207. data/ext/iup-win32/include/cd_private.h +362 -0
  208. data/ext/iup-win32/include/cdcgm.h +34 -0
  209. data/ext/iup-win32/include/cdclipbd.h +22 -0
  210. data/ext/iup-win32/include/cddbuf.h +23 -0
  211. data/ext/iup-win32/include/cddebug.h +24 -0
  212. data/ext/iup-win32/include/cddgn.h +23 -0
  213. data/ext/iup-win32/include/cddxf.h +22 -0
  214. data/ext/iup-win32/include/cdemf.h +22 -0
  215. data/ext/iup-win32/include/cdgdiplus.h +29 -0
  216. data/ext/iup-win32/include/cdimage.h +23 -0
  217. data/ext/iup-win32/include/cdirgb.h +30 -0
  218. data/ext/iup-win32/include/cdiup.h +22 -0
  219. data/ext/iup-win32/include/cdlua.h +39 -0
  220. data/ext/iup-win32/include/cdlua3_private.h +120 -0
  221. data/ext/iup-win32/include/cdlua5_private.h +141 -0
  222. data/ext/iup-win32/include/cdluaim.h +24 -0
  223. data/ext/iup-win32/include/cdluaiup.h +27 -0
  224. data/ext/iup-win32/include/cdluapdf.h +27 -0
  225. data/ext/iup-win32/include/cdmf.h +24 -0
  226. data/ext/iup-win32/include/cdmf_private.h +32 -0
  227. data/ext/iup-win32/include/cdnative.h +26 -0
  228. data/ext/iup-win32/include/cdpdf.h +38 -0
  229. data/ext/iup-win32/include/cdpicture.h +22 -0
  230. data/ext/iup-win32/include/cdprint.h +23 -0
  231. data/ext/iup-win32/include/cdps.h +37 -0
  232. data/ext/iup-win32/include/cdwmf.h +22 -0
  233. data/ext/iup-win32/include/iup.h +255 -0
  234. data/ext/iup-win32/include/iup_pplot.h +40 -0
  235. data/ext/iup-win32/include/iupcb.h +25 -0
  236. data/ext/iup-win32/include/iupcbox.h +23 -0
  237. data/ext/iup-win32/include/iupcbs.h +42 -0
  238. data/ext/iup-win32/include/iupcells.h +130 -0
  239. data/ext/iup-win32/include/iupcolorbar.h +126 -0
  240. data/ext/iup-win32/include/iupcompat.h +62 -0
  241. data/ext/iup-win32/include/iupcontrols.h +40 -0
  242. data/ext/iup-win32/include/iupcpi.h +76 -0
  243. data/ext/iup-win32/include/iupdef.h +520 -0
  244. data/ext/iup-win32/include/iupdial.h +64 -0
  245. data/ext/iup-win32/include/iupgauge.h +57 -0
  246. data/ext/iup-win32/include/iupgc.h +20 -0
  247. data/ext/iup-win32/include/iupgetparam.h +27 -0
  248. data/ext/iup-win32/include/iupgl.h +101 -0
  249. data/ext/iup-win32/include/iupim.h +21 -0
  250. data/ext/iup-win32/include/iupkey.h +290 -0
  251. data/ext/iup-win32/include/iuplua.h +41 -0
  252. data/ext/iup-win32/include/iuplua_pplot.h +26 -0
  253. data/ext/iup-win32/include/iupluacontrols.h +27 -0
  254. data/ext/iup-win32/include/iupluagl.h +26 -0
  255. data/ext/iup-win32/include/iupluaim.h +26 -0
  256. data/ext/iup-win32/include/iupluaole.h +26 -0
  257. data/ext/iup-win32/include/iupmask.h +52 -0
  258. data/ext/iup-win32/include/iupmatrix.h +69 -0
  259. data/ext/iup-win32/include/iupole.h +24 -0
  260. data/ext/iup-win32/include/iupsbox.h +20 -0
  261. data/ext/iup-win32/include/iupspeech.h +23 -0
  262. data/ext/iup-win32/include/iupspin.h +21 -0
  263. data/ext/iup-win32/include/iuptabs.h +79 -0
  264. data/ext/iup-win32/include/iuptree.h +93 -0
  265. data/ext/iup-win32/include/iupval.h +46 -0
  266. data/ext/iup-win32/include/wd.h +78 -0
  267. data/ext/iup-win32/include/wd_old.h +85 -0
  268. data/ext/iup-win32/iup.dll +0 -0
  269. data/ext/iup-win32/iup.lib +0 -0
  270. data/ext/iup-win32/iup_pplot.dll +0 -0
  271. data/ext/iup-win32/iup_pplot.lib +0 -0
  272. data/ext/iup-win32/iupcd.dll +0 -0
  273. data/ext/iup-win32/iupcd.lib +0 -0
  274. data/ext/iup-win32/iupcontrols.dll +0 -0
  275. data/ext/iup-win32/iupcontrols.lib +0 -0
  276. data/ext/iup-win32/iupgl.dll +0 -0
  277. data/ext/iup-win32/iupgl.lib +0 -0
  278. data/ext/iup-win32/iupim.dll +0 -0
  279. data/ext/iup-win32/iupim.lib +0 -0
  280. data/ext/iup-win32/iupimglib.dll +0 -0
  281. data/ext/iup-win32/iupimglib.lib +0 -0
  282. data/ext/iup-win32/iuplua51.lib +0 -0
  283. data/ext/iup-win32/iuplua_pplot51.lib +0 -0
  284. data/ext/iup-win32/iupluacd51.lib +0 -0
  285. data/ext/iup-win32/iupluacontrols51.lib +0 -0
  286. data/ext/iup-win32/iupluagl51.lib +0 -0
  287. data/ext/iup-win32/iupluaim51.lib +0 -0
  288. data/ext/iup-win32/iupluaimglib51.lib +0 -0
  289. data/ext/iup-win32/iupluaole51.lib +0 -0
  290. data/ext/iup-win32/iupole.dll +0 -0
  291. data/ext/iup-win32/iupole.lib +0 -0
  292. data/ext/iup-win32/iupstub.lib +0 -0
  293. data/ext/iup-win32/pdflib.dll +0 -0
  294. data/ext/iup-win32/pdflib.lib +0 -0
  295. data/ext/iup.c +1261 -0
  296. data/ext/mkrf_conf.rb +72 -0
  297. data/ext/rb_cd.h +1525 -0
  298. data/ext/rb_iup.h +2446 -0
  299. data/ext/rb_iup_pplot.h +129 -0
  300. data/ext/rb_iupcb.h +13 -0
  301. data/ext/rb_iupcbox.h +40 -0
  302. data/ext/rb_iupcells.h +15 -0
  303. data/ext/rb_iupcolorbar.h +17 -0
  304. data/ext/rb_iupcompat.h +237 -0
  305. data/ext/rb_iupcontrols.h +28 -0
  306. data/ext/rb_iupdef.h +3 -0
  307. data/ext/rb_iupdial.h +24 -0
  308. data/ext/rb_iupgauge.h +15 -0
  309. data/ext/rb_iupgc.h +18 -0
  310. data/ext/rb_iupgetparam.h +72 -0
  311. data/ext/rb_iupgl.h +58 -0
  312. data/ext/rb_iupim.h +25 -0
  313. data/ext/rb_iupmask.h +189 -0
  314. data/ext/rb_iupmatrix.h +80 -0
  315. data/ext/rb_iupole.h +24 -0
  316. data/ext/rb_iupsbox.h +23 -0
  317. data/ext/rb_iupspeech.h +25 -0
  318. data/ext/rb_iupspin.h +29 -0
  319. data/ext/rb_iuptabs.h +29 -0
  320. data/ext/rb_iuptree.h +94 -0
  321. data/ext/rb_iupval.h +24 -0
  322. data/lib/README +1 -0
  323. metadata +391 -0
@@ -0,0 +1,362 @@
1
+ /** \file
2
+ * \brief Private CD declarations
3
+ *
4
+ * See Copyright Notice in cd.h
5
+ */
6
+
7
+ #ifndef __CD_PRIVATE_H
8
+ #define __CD_PRIVATE_H
9
+
10
+ #include <stdarg.h>
11
+
12
+ #ifdef __cplusplus
13
+ extern "C" {
14
+ #endif
15
+
16
+ /* All context canvas must have at least the base canvas pointer. */
17
+ typedef struct _cdCtxCanvasBase
18
+ {
19
+ cdCanvas* canvas;
20
+ } cdCtxCanvasBase;
21
+
22
+ typedef struct _cdCtxCanvas cdCtxCanvas;
23
+ typedef struct _cdCtxImage cdCtxImage;
24
+
25
+ typedef struct _cdVectorFont cdVectorFont;
26
+ typedef struct _cdSimulation cdSimulation;
27
+
28
+ typedef struct _cdPoint
29
+ {
30
+ int x, y;
31
+ } cdPoint;
32
+
33
+ typedef struct _cdfPoint
34
+ {
35
+ double x, y;
36
+ } cdfPoint;
37
+
38
+ typedef struct _cdRect
39
+ {
40
+ int xmin, xmax, ymin, ymax;
41
+ } cdRect;
42
+
43
+ typedef struct _cdfRect
44
+ {
45
+ double xmin, xmax, ymin, ymax;
46
+ } cdfRect;
47
+
48
+ typedef struct _cdAttribute
49
+ {
50
+ const char *name;
51
+
52
+ /* can be NULL one of them */
53
+ void (*set)(cdCtxCanvas* ctxcanvas, char* data);
54
+ char* (*get)(cdCtxCanvas* ctxcanvas);
55
+ } cdAttribute;
56
+
57
+ struct _cdImage
58
+ {
59
+ int w, h;
60
+ cdCtxImage* ctximage;
61
+
62
+ /* can NOT be NULL */
63
+ void (*cxGetImage)(cdCtxCanvas* ctxcanvas, cdCtxImage* ctximage, int x, int y);
64
+ void (*cxPutImageRect)(cdCtxCanvas* ctxcanvas, cdCtxImage* ctximage, int x, int y, int xmin, int xmax, int ymin, int ymax);
65
+ void (*cxKillImage)(cdCtxImage* ctximage);
66
+ };
67
+
68
+ struct _cdContext
69
+ {
70
+ unsigned long caps; /* canvas capabilities, combination of CD_CAP_* */
71
+ int plus; /* indicates if the canvas is context plus */
72
+
73
+ /* can NOT be NULL */
74
+ void (*cxCreateCanvas)(cdCanvas* canvas, void *data);
75
+ void (*cxInitTable)(cdCanvas* canvas);
76
+
77
+ /* can be NULL */
78
+ int (*cxPlay)(cdCanvas* canvas, int xmin, int xmax, int ymin, int ymax, void *data);
79
+ int (*cxRegisterCallback)(int cb, cdCallback func);
80
+ };
81
+
82
+ struct _cdCanvas
83
+ {
84
+ char signature[2]; /* must be "CD" */
85
+
86
+ /* can NOT be NULL */
87
+ void (*cxPixel)(cdCtxCanvas* ctxcanvas, int x, int y, long color);
88
+ void (*cxLine)(cdCtxCanvas* ctxcanvas, int x1, int y1, int x2, int y2);
89
+ void (*cxPoly)(cdCtxCanvas* ctxcanvas, int mode, cdPoint* points, int n);
90
+ void (*cxRect)(cdCtxCanvas* ctxcanvas, int xmin, int xmax, int ymin, int ymax);
91
+ void (*cxBox)(cdCtxCanvas* ctxcanvas, int xmin, int xmax, int ymin, int ymax);
92
+ void (*cxArc)(cdCtxCanvas* ctxcanvas, int xc, int yc, int w, int h, double angle1, double angle2);
93
+ void (*cxSector)(cdCtxCanvas* ctxcanvas, int xc, int yc, int w, int h, double angle1, double angle2);
94
+ void (*cxChord)(cdCtxCanvas* ctxcanvas, int xc, int yc, int w, int h, double angle1, double angle2);
95
+ void (*cxText)(cdCtxCanvas* ctxcanvas, int x, int y, const char *s);
96
+ void (*cxKillCanvas)(cdCtxCanvas* ctxcanvas);
97
+ int (*cxFont)(cdCtxCanvas* ctxcanvas, const char *type_face, int style, int size);
98
+ void (*cxPutImageRectMap)(cdCtxCanvas* ctxcanvas, int iw, int ih, const unsigned char *index, const long *colors, int x, int y, int w, int h, int xmin, int xmax, int ymin, int ymax);
99
+ void (*cxPutImageRectRGB)(cdCtxCanvas* ctxcanvas, int iw, int ih, const unsigned char *r, const unsigned char *g, const unsigned char *b, int x, int y, int w, int h, int xmin, int xmax, int ymin, int ymax);
100
+
101
+ /* default implementation uses the simulation driver */
102
+ void (*cxGetFontDim)(cdCtxCanvas* ctxcanvas, int *max_width, int *height, int *ascent, int *descent);
103
+ void (*cxGetTextSize)(cdCtxCanvas* ctxcanvas, const char *s, int *width, int *height);
104
+
105
+ /* all the following function pointers can be NULL */
106
+
107
+ void (*cxFlush)(cdCtxCanvas* ctxcanvas);
108
+ void (*cxClear)(cdCtxCanvas* ctxcanvas);
109
+
110
+ void (*cxFLine)(cdCtxCanvas* ctxcanvas, double x1, double y1, double x2, double y2);
111
+ void (*cxFPoly)(cdCtxCanvas* ctxcanvas, int mode, cdfPoint* points, int n);
112
+ void (*cxFRect)(cdCtxCanvas* ctxcanvas, double xmin, double xmax, double ymin, double ymax);
113
+ void (*cxFBox)(cdCtxCanvas* ctxcanvas, double xmin, double xmax, double ymin, double ymax);
114
+ void (*cxFArc)(cdCtxCanvas* ctxcanvas, double xc, double yc, double w, double h, double angle1, double angle2);
115
+ void (*cxFSector)(cdCtxCanvas* ctxcanvas, double xc, double yc, double w, double h, double angle1, double angle2);
116
+ void (*cxFChord)(cdCtxCanvas* ctxcanvas, double xc, double yc, double w, double h, double angle1, double angle2);
117
+ void (*cxFText)(cdCtxCanvas* ctxcanvas, double x, double y, const char *s);
118
+
119
+ int (*cxClip)(cdCtxCanvas* ctxcanvas, int mode);
120
+ void (*cxClipArea)(cdCtxCanvas* ctxcanvas, int xmin, int xmax, int ymin, int ymax);
121
+ void (*cxFClipArea)(cdCtxCanvas* ctxcanvas, double xmin, double xmax, double ymin, double ymax);
122
+ int (*cxBackOpacity)(cdCtxCanvas* ctxcanvas, int opacity);
123
+ int (*cxWriteMode)(cdCtxCanvas* ctxcanvas, int mode);
124
+ int (*cxLineStyle)(cdCtxCanvas* ctxcanvas, int style);
125
+ int (*cxLineWidth)(cdCtxCanvas* ctxcanvas, int width);
126
+ int (*cxLineJoin)(cdCtxCanvas* ctxcanvas, int join);
127
+ int (*cxLineCap)(cdCtxCanvas* ctxcanvas, int cap);
128
+ int (*cxInteriorStyle)(cdCtxCanvas* ctxcanvas, int style);
129
+ int (*cxHatch)(cdCtxCanvas* ctxcanvas, int style);
130
+ void (*cxStipple)(cdCtxCanvas* ctxcanvas, int w, int h, const unsigned char *stipple);
131
+ void (*cxPattern)(cdCtxCanvas* ctxcanvas, int w, int h, const long *pattern);
132
+ int (*cxNativeFont)(cdCtxCanvas* ctxcanvas, const char* font);
133
+ int (*cxTextAlignment)(cdCtxCanvas* ctxcanvas, int alignment);
134
+ double (*cxTextOrientation)(cdCtxCanvas* ctxcanvas, double angle);
135
+ void (*cxPalette)(cdCtxCanvas* ctxcanvas, int n, const long *palette, int mode);
136
+ long (*cxBackground)(cdCtxCanvas* ctxcanvas, long color);
137
+ long (*cxForeground)(cdCtxCanvas* ctxcanvas, long color);
138
+ void (*cxTransform)(cdCtxCanvas* ctxcanvas, const double* matrix);
139
+
140
+ void (*cxPutImageRectRGBA)(cdCtxCanvas* ctxcanvas, int iw, int ih, const unsigned char *r, const unsigned char *g, const unsigned char *b, const unsigned char *a, int x, int y, int w, int h, int xmin, int xmax, int ymin, int ymax);
141
+ void (*cxGetImageRGB)(cdCtxCanvas* ctxcanvas, unsigned char *r, unsigned char *g, unsigned char *b, int x, int y, int w, int h);
142
+ void (*cxScrollArea)(cdCtxCanvas* ctxcanvas, int xmin, int xmax, int ymin, int ymax, int dx, int dy);
143
+
144
+ cdCtxImage* (*cxCreateImage)(cdCtxCanvas* ctxcanvas, int w, int h);
145
+ void (*cxKillImage)(cdCtxImage* ctximage);
146
+ void (*cxGetImage)(cdCtxCanvas* ctxcanvas, cdCtxImage* ctximage, int x, int y);
147
+ void (*cxPutImageRect)(cdCtxCanvas* ctxcanvas, cdCtxImage* ctximage, int x, int y, int xmin, int xmax, int ymin, int ymax);
148
+
149
+ void (*cxNewRegion)(cdCtxCanvas* ctxcanvas);
150
+ int (*cxIsPointInRegion)(cdCtxCanvas* ctxcanvas, int x, int y);
151
+ void (*cxOffsetRegion)(cdCtxCanvas* ctxcanvas, int x, int y);
152
+ void (*cxGetRegionBox)(cdCtxCanvas* ctxcanvas, int *xmin, int *xmax, int *ymin, int *ymax);
153
+
154
+ int (*cxActivate)(cdCtxCanvas* ctxcanvas);
155
+ void (*cxDeactivate)(cdCtxCanvas* ctxcanvas);
156
+
157
+ /* the driver must update these, when the canvas is created and
158
+ whenever the canvas change its size or bpp. */
159
+ int w,h; /* size in pixels */ /**** pixel = mm * res ****/
160
+ double w_mm, h_mm; /* size in mm */ /**** mm = pixel / res ****/
161
+ double xres, yres; /* resolution in pixels/mm */ /**** res = pixel / mm ****/
162
+ int bpp; /* number of bits per pixel */
163
+ int invert_yaxis; /* the driver has the y axis from top to bottom */
164
+ double matrix[6];
165
+ int use_matrix;
166
+
167
+ /* clipping attributes */
168
+ int clip_mode;
169
+ cdRect clip_rect;
170
+ cdfRect clip_frect;
171
+ int clip_poly_n;
172
+ cdPoint* clip_poly; /* only defined if integer poligon created, if exist clip_fpoly is NULL, and ->Poly exists */
173
+ cdfPoint* clip_fpoly; /* only defined if real poligon created, if exist clip_poly is NULL, and ->fPoly exists */
174
+
175
+ /* clipping region attributes */
176
+ int new_region;
177
+ int combine_mode;
178
+
179
+ /* color attributes */
180
+ long foreground, background;
181
+ int back_opacity, write_mode;
182
+
183
+ /* primitive attributes */
184
+ int mark_type, mark_size;
185
+
186
+ int line_style, line_width;
187
+ int line_cap, line_join;
188
+ int* line_dashes;
189
+ int line_dashes_count;
190
+
191
+ int interior_style, hatch_style;
192
+ int fill_mode;
193
+
194
+ char font_type_face[1024];
195
+ int font_style, font_size;
196
+ int text_alignment;
197
+ double text_orientation;
198
+ char native_font[1024];
199
+
200
+ int pattern_w, pattern_h, pattern_size;
201
+ long* pattern;
202
+ int stipple_w, stipple_h, stipple_size;
203
+ unsigned char* stipple;
204
+
205
+ /* origin */
206
+ int use_origin;
207
+ cdPoint origin; /* both points contains the same coordinate always */
208
+ cdfPoint forigin;
209
+
210
+ /* last polygon */
211
+ int poly_mode,
212
+ poly_n, /* current number of vertices */
213
+ poly_size, fpoly_size; /* allocated number of vertices, only increases */
214
+ cdPoint* poly; /* used during an integer poligon creation, only if ->Poly exists */
215
+ cdfPoint* fpoly; /* used during an real poligon creation, only if ->fPoly exists */
216
+ int use_fpoly;
217
+
218
+ /* simulation flags */
219
+ int sim_mode;
220
+ int sim_poly;
221
+
222
+ /* WC */
223
+ double s, sx, tx, sy, ty; /* Transformacao Window -> Viewport (scale+translation)*/
224
+ cdfRect window; /* Window in WC */
225
+ cdRect viewport; /* Viewport in pixels */
226
+
227
+ cdAttribute* attrib_list[50];
228
+ int attrib_n;
229
+
230
+ cdVectorFont* vector_font;
231
+ cdSimulation* simulation;
232
+ cdCtxCanvas* ctxcanvas;
233
+ cdContext* context;
234
+ };
235
+
236
+
237
+ /***************/
238
+ /* attributes */
239
+ /***************/
240
+ void cdRegisterAttribute(cdCanvas* canvas, cdAttribute* attrib);
241
+
242
+ /***************/
243
+ /* vector font */
244
+ /***************/
245
+ cdVectorFont* cdCreateVectorFont(cdCanvas* canvas);
246
+ void cdKillVectorFont(cdVectorFont* vector_font_data);
247
+
248
+ /**********/
249
+ /* WC */
250
+ /**********/
251
+ void wdSetDefaults(cdCanvas* canvas);
252
+
253
+ /********************/
254
+ /* Context Plus */
255
+ /********************/
256
+ void cdInitContextPlusList(cdContext* ctx_list[]);
257
+ cdContext* cdGetContextPlus(int ctx);
258
+ enum{CD_CTX_NATIVEWINDOW, CD_CTX_IMAGE, CD_CTX_DBUFFER, CD_CTX_PRINTER, CD_CTX_EMF, CD_CTX_CLIPBOARD};
259
+ #define NUM_CONTEXTPLUS 6
260
+
261
+ /*************/
262
+ /* utilities */
263
+ /*************/
264
+ int cdRound(double x);
265
+ void cdCanvasGetEllipseBox(int xc, int yc, int w, int h, double a1, double a2, int *xmin, int *xmax, int *ymin, int *ymax);
266
+ int cdCheckBoxSize(int *xmin, int *xmax, int *ymin, int *ymax);
267
+ int cdfCheckBoxSize(double *xmin, double *xmax, double *ymin, double *ymax);
268
+ void cdNormalizeLimits(int w, int h, int *xmin, int *xmax, int *ymin, int *ymax);
269
+ int cdGetFileName(const char* strdata, char* filename);
270
+ int cdStrEqualNoCase(const char* str1, const char* str2);
271
+
272
+ #define _cdCheckCanvas(_canvas) (_canvas!=NULL && ((unsigned char*)_canvas)[0] == 'C' && ((unsigned char*)_canvas)[1] == 'D')
273
+ #define _cdInvertYAxis(_canvas, _y) (_canvas->h - (_y) - 1)
274
+ #define _cdSwapInt(_a,_b) {int _c=_a;_a=_b;_b=_c;}
275
+ #define _cdSwapDouble(_a,_b) {double _c=_a;_a=_b;_b=_c;}
276
+ #define _cdRound(_x) ((int)(_x < 0? (_x-0.5): (_x+0.5)))
277
+ #define _cdRotateHatch(_x) ((_x) = ((_x)<< 1) | ((_x)>>7))
278
+
279
+ /******************/
280
+ /* Transformation */
281
+ /******************/
282
+ void cdMatrixTransformPoint(double* matrix, int x, int y, int *rx, int *ry);
283
+ void cdfMatrixTransformPoint(double* matrix, double x, double y, double *rx, double *ry);
284
+ void cdMatrixMultiply(const double* matrix, double* mul_matrix);
285
+ void cdMatrixInverse(const double* matrix, double* inv_matrix);
286
+ void cdRotatePoint(cdCanvas* canvas, int x, int y, int cx, int cy, int *rx, int *ry, double sin_teta, double cos_teta);
287
+ void cdRotatePointY(cdCanvas* canvas, int x, int y, int cx, int cy, int *ry, double sin_theta, double cos_theta);
288
+ void cdTextTranslatePoint(cdCanvas* canvas, int x, int y, int w, int h, int baseline, int *rx, int *ry);
289
+
290
+ /*************/
291
+ /* Fonts */
292
+ /*************/
293
+ int cdParsePangoFont(const char *nativefont, char *type_face, int *style, int *size);
294
+ int cdParseIupWinFont(const char *nativefont, char *type_face, int *style, int *size);
295
+ int cdParseXWinFont(const char *nativefont, char *type_face, int *style, int *size);
296
+ int cdGetFontSizePixels(cdCanvas* canvas, int size);
297
+ int cdGetFontSizePoints(cdCanvas* canvas, int size);
298
+
299
+ /****************/
300
+ /* For Images */
301
+ /****************/
302
+ unsigned char cdZeroOrderInterpolation(int width, int height, const unsigned char *map, float xl, float yl);
303
+ unsigned char cdBilinearInterpolation(int width, int height, const unsigned char *map, float xl, float yl);
304
+ void cdImageRGBInitInverseTransform(int w, int h, int xmin, int xmax, int ymin, int ymax, float *xfactor, float *yfactor, const double* matrix, double* inv_matrix);
305
+ void cdImageRGBInverseTransform(int t_x, int t_y, float *i_x, float *i_y, float xfactor, float yfactor, int xmin, int ymin, int x, int y, double *inv_matrix);
306
+ void cdImageRGBCalcDstLimits(cdCanvas* canvas, int x, int y, int w, int h, int *xmin, int *xmax, int *ymin, int *ymax, int* rect);
307
+ void cdRGB2Gray(int width, int height, const unsigned char* red, const unsigned char* green, const unsigned char* blue, unsigned char* index, long *color);
308
+
309
+ #define CD_ALPHA_BLEND(_src,_dst,_alpha) (unsigned char)(((_src) * (_alpha) + (_dst) * (255 - (_alpha))) / 255)
310
+
311
+ int* cdGetZoomTable(int w, int rw, int xmin);
312
+ int cdCalcZoom(int canvas_size, int cnv_rect_pos, int cnv_rect_size,
313
+ int *new_cnv_rect_pos, int *new_cnv_rect_size,
314
+ int img_rect_pos, int img_rect_size,
315
+ int *new_img_rect_pos, int *new_img_rect_size, int is_horizontal);
316
+
317
+ /**************/
318
+ /* simulation */
319
+ /**************/
320
+ cdSimulation* cdCreateSimulation(cdCanvas* canvas);
321
+ void cdKillSimulation(cdSimulation* simulation);
322
+ void cdSimInitText(cdSimulation* simulation);
323
+
324
+ /* Replacements for cdCanvas function pointers */
325
+ void cdrectSIM(cdCtxCanvas* ctxcanvas, int xmin, int xmax, int ymin, int ymax);
326
+ void cdboxSIM(cdCtxCanvas* ctxcanvas, int xmin, int xmax, int ymin, int ymax);
327
+ void cdlineSIM(cdCtxCanvas* ctxcanvas, int x1, int y1, int x2, int y2);
328
+ void cdarcSIM(cdCtxCanvas* ctxcanvas, int xc, int yc, int width, int height, double angle1, double angle2);
329
+ void cdsectorSIM(cdCtxCanvas* ctxcanvas, int xc, int yc, int width, int height, double angle1, double angle2);
330
+ void cdchordSIM(cdCtxCanvas* ctxcanvas, int xc, int yc, int width, int height, double angle1, double angle2);
331
+ void cdpolySIM(cdCtxCanvas* ctxcanvas, int mode, cdPoint* points, int n);
332
+
333
+ /* Replacements for Text and Font using FreeType library */
334
+ void cdtextSIM(cdCtxCanvas* ctxcanvas, int x, int y, const char *s);
335
+ int cdfontSIM(cdCtxCanvas* ctxcanvas, const char *type_face, int style, int size);
336
+ void cdgetfontdimSIM(cdCtxCanvas* ctxcanvas, int *max_width, int *height, int *ascent, int *descent);
337
+ void cdgettextsizeSIM(cdCtxCanvas* ctxcanvas, const char *s, int *width, int *height);
338
+
339
+ /* Simulation functions that are independent of the simulation base driver */
340
+ void cdSimMark(cdCanvas* canvas, int x, int y);
341
+ void cdSimPolyBezier(cdCanvas* canvas, const cdPoint* points, int n);
342
+ void cdSimPutImageRectRGBA(cdCanvas* canvas, int iw, int ih, const unsigned char *r, const unsigned char *g, const unsigned char *b, const unsigned char *a, int x, int y, int w, int h, int xmin, int xmax, int ymin, int ymax);
343
+
344
+ /* Simulation functions that are independent of the simulation base driver,
345
+ and does not checks for axis and matrix.
346
+ All use the polygon method ->cxFPoly only. */
347
+ void cdfSimPolyBezier(cdCanvas* canvas, const cdfPoint* points, int n);
348
+ void cdfSimRect(cdCtxCanvas *ctxcanvas, double xmin, double xmax, double ymin, double ymax);
349
+ void cdfSimBox(cdCtxCanvas *ctxcanvas, double xmin, double xmax, double ymin, double ymax);
350
+ void cdfSimElipse(cdCtxCanvas* ctxcanvas, double xc, double yc, double width, double height, double angle1, double angle2, int sector);
351
+ void cdfSimArc(cdCtxCanvas *ctxcanvas, double xc, double yc, double width, double height, double angle1, double angle2);
352
+
353
+ /* Replacements for Font using estimation */
354
+ void cdgetfontdimEX(cdCtxCanvas* ctxcanvas, int *max_width, int *height, int *ascent, int *descent);
355
+ void cdgettextsizeEX(cdCtxCanvas* ctxcanvas, const char *s, int *width, int *height);
356
+
357
+
358
+ #ifdef __cplusplus
359
+ }
360
+ #endif
361
+
362
+ #endif
@@ -0,0 +1,34 @@
1
+ /** \file
2
+ * \brief CGM driver
3
+ *
4
+ * See Copyright Notice in cd.h
5
+ */
6
+
7
+ #ifndef __CD_CGM_H
8
+ #define __CD_CGM_H
9
+
10
+ #ifdef __cplusplus
11
+ extern "C" {
12
+ #endif
13
+
14
+ cdContext* cdContextCGM(void);
15
+ #define CD_CGM cdContextCGM()
16
+
17
+ #define CD_CGMCOUNTERCB 1
18
+ #define CD_CGMSCLMDECB 2
19
+ #define CD_CGMVDCEXTCB 3
20
+ #define CD_CGMBEGPICTCB 4
21
+ #define CD_CGMBEGPICTBCB 5
22
+ #define CD_CGMBEGMTFCB 6
23
+
24
+ /* OLD definitions, defined for backward compatibility */
25
+ #define CDPLAY_ABORT CD_ABORT
26
+ #define CDPLAY_GO CD_CONTINUE
27
+
28
+ #ifdef __cplusplus
29
+ }
30
+ #endif
31
+
32
+ #endif /* ifndef __CD_CGM_ */
33
+
34
+
@@ -0,0 +1,22 @@
1
+ /** \file
2
+ * \brief Clipboard driver
3
+ *
4
+ * See Copyright Notice in cd.h
5
+ */
6
+
7
+ #ifndef __CD_CLIPBOARD_H
8
+ #define __CD_CLIPBOARD_H
9
+
10
+ #ifdef __cplusplus
11
+ extern "C" {
12
+ #endif
13
+
14
+ cdContext* cdContextClipboard(void);
15
+
16
+ #define CD_CLIPBOARD cdContextClipboard()
17
+
18
+ #ifdef __cplusplus
19
+ }
20
+ #endif
21
+
22
+ #endif
@@ -0,0 +1,23 @@
1
+ /** \file
2
+ * \brief Double Buffer driver
3
+ *
4
+ * See Copyright Notice in cd.h
5
+ */
6
+
7
+ #ifndef __CD_DBUF_H
8
+ #define __CD_DBUF_H
9
+
10
+ #ifdef __cplusplus
11
+ extern "C" {
12
+ #endif
13
+
14
+ cdContext* cdContextDBuffer(void);
15
+
16
+ #define CD_DBUFFER cdContextDBuffer()
17
+
18
+ #ifdef __cplusplus
19
+ }
20
+ #endif
21
+
22
+ #endif /* ifndef __CD_DBUF_ */
23
+
@@ -0,0 +1,24 @@
1
+ /** \file
2
+ * \brief CD Debug driver
3
+ *
4
+ * See Copyright Notice in cd.h
5
+ */
6
+
7
+ #ifndef __CD_DEBUG_H
8
+ #define __CD_DEBUG_H
9
+
10
+ #ifdef __cplusplus
11
+ extern "C" {
12
+ #endif
13
+
14
+ cdContext* cdContextDebug(void);
15
+
16
+ #define CD_DEBUG cdContextDebug()
17
+
18
+ #ifdef __cplusplus
19
+ }
20
+ #endif
21
+
22
+ #endif /* ifndef __CD_DEBUG_H */
23
+
24
+