qtbindings 4.6.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1130) hide show
  1. data/CHANGELOG.txt +9 -0
  2. data/CMakeLists.txt +22 -0
  3. data/COPYING.LIB.txt +510 -0
  4. data/COPYING.txt +286 -0
  5. data/KNOWN_ISSUES.txt +20 -0
  6. data/README.txt +92 -0
  7. data/Rakefile +96 -0
  8. data/TODO.txt +2 -0
  9. data/bin/rbqtapi +152 -0
  10. data/bin/rbrcc +18 -0
  11. data/bin/rbuic4 +18 -0
  12. data/bin/smokeapi +18 -0
  13. data/bin/smokedeptool +18 -0
  14. data/examples/base/kicons.rb +54 -0
  15. data/examples/base/rui.rb +21 -0
  16. data/examples/designer/calculatorbuilder/calculatorbuilder.qrc +5 -0
  17. data/examples/designer/calculatorbuilder/calculatorform.rb +60 -0
  18. data/examples/designer/calculatorbuilder/calculatorform.ui +299 -0
  19. data/examples/designer/calculatorbuilder/main.rb +34 -0
  20. data/examples/designer/calculatorbuilder/makefile +2 -0
  21. data/examples/designer/calculatorform/calculatorform.rb +46 -0
  22. data/examples/designer/calculatorform/calculatorform.ui +277 -0
  23. data/examples/designer/calculatorform/main.rb +32 -0
  24. data/examples/designer/calculatorform/makefile +3 -0
  25. data/examples/desktop/screenshot/main.rb +32 -0
  26. data/examples/desktop/screenshot/screenshot.rb +156 -0
  27. data/examples/desktop/systray/images/bad.svg +64 -0
  28. data/examples/desktop/systray/images/heart.svg +55 -0
  29. data/examples/desktop/systray/images/trash.svg +58 -0
  30. data/examples/desktop/systray/main.rb +41 -0
  31. data/examples/desktop/systray/makefile +2 -0
  32. data/examples/desktop/systray/systray.qrc +7 -0
  33. data/examples/desktop/systray/window.rb +223 -0
  34. data/examples/dialogs/complexwizard/complexwizard.rb +140 -0
  35. data/examples/dialogs/complexwizard/licensewizard.rb +294 -0
  36. data/examples/dialogs/complexwizard/main.rb +31 -0
  37. data/examples/dialogs/configdialog/configdialog.rb +109 -0
  38. data/examples/dialogs/configdialog/images/config.png +0 -0
  39. data/examples/dialogs/configdialog/images/query.png +0 -0
  40. data/examples/dialogs/configdialog/images/update.png +0 -0
  41. data/examples/dialogs/configdialog/main.rb +31 -0
  42. data/examples/dialogs/configdialog/pages.rb +140 -0
  43. data/examples/dialogs/extension/finddialog.rb +89 -0
  44. data/examples/dialogs/extension/main.rb +31 -0
  45. data/examples/dialogs/findfiles/main.rb +32 -0
  46. data/examples/dialogs/findfiles/window.rb +177 -0
  47. data/examples/dialogs/simplewizard/classwizard.rb +374 -0
  48. data/examples/dialogs/simplewizard/main.rb +31 -0
  49. data/examples/dialogs/simplewizard/simplewizard.rb +110 -0
  50. data/examples/dialogs/standarddialogs/dialog.rb +340 -0
  51. data/examples/dialogs/standarddialogs/main.rb +31 -0
  52. data/examples/dialogs/tabdialog/main.rb +38 -0
  53. data/examples/dialogs/tabdialog/tabdialog.rb +178 -0
  54. data/examples/draganddrop/draggableicons/dragwidget.rb +125 -0
  55. data/examples/draganddrop/draggableicons/images/boat.png +0 -0
  56. data/examples/draganddrop/draggableicons/images/car.png +0 -0
  57. data/examples/draganddrop/draggableicons/images/house.png +0 -0
  58. data/examples/draganddrop/draggableicons/main.rb +41 -0
  59. data/examples/draganddrop/draggabletext/draglabel.rb +51 -0
  60. data/examples/draganddrop/draggabletext/dragwidget.rb +94 -0
  61. data/examples/draganddrop/draggabletext/main.rb +33 -0
  62. data/examples/draganddrop/draggabletext/words.txt +41 -0
  63. data/examples/draganddrop/dropsite/dropsitewidget.rb +98 -0
  64. data/examples/draganddrop/dropsite/dropsitewindow.rb +114 -0
  65. data/examples/draganddrop/dropsite/main.rb +33 -0
  66. data/examples/draganddrop/fridgemagnets/draglabel.rb +78 -0
  67. data/examples/draganddrop/fridgemagnets/dragwidget.rb +130 -0
  68. data/examples/draganddrop/fridgemagnets/main.rb +33 -0
  69. data/examples/draganddrop/fridgemagnets/words.txt +48 -0
  70. data/examples/draganddrop/puzzle/example.jpg +0 -0
  71. data/examples/draganddrop/puzzle/main.rb +33 -0
  72. data/examples/draganddrop/puzzle/mainwindow.rb +136 -0
  73. data/examples/draganddrop/puzzle/pieceslist.rb +95 -0
  74. data/examples/draganddrop/puzzle/puzzlewidget.rb +190 -0
  75. data/examples/graphicsview/collidingmice/images/cheese.jpg +0 -0
  76. data/examples/graphicsview/collidingmice/main.rb +53 -0
  77. data/examples/graphicsview/collidingmice/makefile +2 -0
  78. data/examples/graphicsview/collidingmice/mice.qrc +5 -0
  79. data/examples/graphicsview/collidingmice/mouse.rb +176 -0
  80. data/examples/graphicsview/dragdroprobot/coloritem.rb +86 -0
  81. data/examples/graphicsview/dragdroprobot/images/head.png +0 -0
  82. data/examples/graphicsview/dragdroprobot/main.rb +57 -0
  83. data/examples/graphicsview/dragdroprobot/makefile +2 -0
  84. data/examples/graphicsview/dragdroprobot/robot.qrc +5 -0
  85. data/examples/graphicsview/dragdroprobot/robot.rb +246 -0
  86. data/examples/itemviews/chart/chart.qrc +5 -0
  87. data/examples/itemviews/chart/main.rb +33 -0
  88. data/examples/itemviews/chart/mainwindow.rb +151 -0
  89. data/examples/itemviews/chart/makefile +2 -0
  90. data/examples/itemviews/chart/mydata.cht +8 -0
  91. data/examples/itemviews/chart/pieview.rb +516 -0
  92. data/examples/itemviews/chart/qtdata.cht +14 -0
  93. data/examples/itemviews/dirview/main.rb +39 -0
  94. data/examples/itemviews/pixelator/imagemodel.rb +51 -0
  95. data/examples/itemviews/pixelator/images.qrc +5 -0
  96. data/examples/itemviews/pixelator/images/qt.png +0 -0
  97. data/examples/itemviews/pixelator/main.rb +34 -0
  98. data/examples/itemviews/pixelator/mainwindow.rb +218 -0
  99. data/examples/itemviews/pixelator/makefile +3 -0
  100. data/examples/itemviews/pixelator/pixeldelegate.rb +67 -0
  101. data/examples/itemviews/puzzle/example.jpg +0 -0
  102. data/examples/itemviews/puzzle/main.rb +36 -0
  103. data/examples/itemviews/puzzle/mainwindow.rb +143 -0
  104. data/examples/itemviews/puzzle/piecesmodel.rb +174 -0
  105. data/examples/itemviews/puzzle/puzzlewidget.rb +192 -0
  106. data/examples/itemviews/simpledommodel/domitem.rb +62 -0
  107. data/examples/itemviews/simpledommodel/dommodel.rb +139 -0
  108. data/examples/itemviews/simpledommodel/main.rb +33 -0
  109. data/examples/itemviews/simpledommodel/mainwindow.rb +66 -0
  110. data/examples/itemviews/simpletreemodel/default.txt +40 -0
  111. data/examples/itemviews/simpletreemodel/main.rb +41 -0
  112. data/examples/itemviews/simpletreemodel/makefile +2 -0
  113. data/examples/itemviews/simpletreemodel/simpletreemodel.qrc +5 -0
  114. data/examples/itemviews/simpletreemodel/treeitem.rb +67 -0
  115. data/examples/itemviews/simpletreemodel/treemodel.rb +164 -0
  116. data/examples/itemviews/sortingmodel/default.txt +40 -0
  117. data/examples/itemviews/sortingmodel/main.rb +53 -0
  118. data/examples/itemviews/sortingmodel/treeitem.rb +73 -0
  119. data/examples/itemviews/sortingmodel/treemodel.rb +166 -0
  120. data/examples/itemviews/spinboxdelegate/main.rb +47 -0
  121. data/examples/itemviews/spinboxdelegate/spinboxdelegate.rb +62 -0
  122. data/examples/killerfilter/killerfilter.rb +55 -0
  123. data/examples/layouts/basiclayouts/dialog.rb +110 -0
  124. data/examples/layouts/basiclayouts/main.rb +31 -0
  125. data/examples/layouts/borderlayout/borderlayout.rb +190 -0
  126. data/examples/layouts/borderlayout/main.rb +32 -0
  127. data/examples/layouts/borderlayout/window.rb +52 -0
  128. data/examples/layouts/flowlayouts/flowlayout.rb +108 -0
  129. data/examples/layouts/flowlayouts/main.rb +32 -0
  130. data/examples/layouts/flowlayouts/window.rb +43 -0
  131. data/examples/mainwindows/application/images/copy.png +0 -0
  132. data/examples/mainwindows/application/images/cut.png +0 -0
  133. data/examples/mainwindows/application/images/new.png +0 -0
  134. data/examples/mainwindows/application/images/open.png +0 -0
  135. data/examples/mainwindows/application/images/paste.png +0 -0
  136. data/examples/mainwindows/application/images/save.png +0 -0
  137. data/examples/mainwindows/application/main.rb +32 -0
  138. data/examples/mainwindows/application/mainwindow.rb +285 -0
  139. data/examples/mainwindows/dockwidgets/images/new.png +0 -0
  140. data/examples/mainwindows/dockwidgets/images/print.png +0 -0
  141. data/examples/mainwindows/dockwidgets/images/save.png +0 -0
  142. data/examples/mainwindows/dockwidgets/images/undo.png +0 -0
  143. data/examples/mainwindows/dockwidgets/main.rb +32 -0
  144. data/examples/mainwindows/dockwidgets/mainwindow.rb +302 -0
  145. data/examples/mainwindows/mdi/images/copy.png +0 -0
  146. data/examples/mainwindows/mdi/images/cut.png +0 -0
  147. data/examples/mainwindows/mdi/images/new.png +0 -0
  148. data/examples/mainwindows/mdi/images/open.png +0 -0
  149. data/examples/mainwindows/mdi/images/paste.png +0 -0
  150. data/examples/mainwindows/mdi/images/save.png +0 -0
  151. data/examples/mainwindows/mdi/main.rb +32 -0
  152. data/examples/mainwindows/mdi/mainwindow.rb +363 -0
  153. data/examples/mainwindows/mdi/mdichild.rb +152 -0
  154. data/examples/mainwindows/menus/main.rb +32 -0
  155. data/examples/mainwindows/menus/mainwindow.rb +327 -0
  156. data/examples/mainwindows/recentfiles/main.rb +32 -0
  157. data/examples/mainwindows/recentfiles/mainwindow.rb +258 -0
  158. data/examples/mainwindows/sdi/images/copy.png +0 -0
  159. data/examples/mainwindows/sdi/images/cut.png +0 -0
  160. data/examples/mainwindows/sdi/images/new.png +0 -0
  161. data/examples/mainwindows/sdi/images/open.png +0 -0
  162. data/examples/mainwindows/sdi/images/paste.png +0 -0
  163. data/examples/mainwindows/sdi/images/save.png +0 -0
  164. data/examples/mainwindows/sdi/main.rb +32 -0
  165. data/examples/mainwindows/sdi/mainwindow.rb +335 -0
  166. data/examples/network/broadcastreceiver/main.rb +32 -0
  167. data/examples/network/broadcastreceiver/receiver.rb +64 -0
  168. data/examples/network/broadcastsender/main.rb +32 -0
  169. data/examples/network/broadcastsender/sender.rb +70 -0
  170. data/examples/network/fortuneclient/client.rb +150 -0
  171. data/examples/network/fortuneclient/main.rb +32 -0
  172. data/examples/network/fortuneserver/main.rb +32 -0
  173. data/examples/network/fortuneserver/server.rb +88 -0
  174. data/examples/network/ftp/ftpwindow.rb +254 -0
  175. data/examples/network/ftp/images/cdtoparent.png +0 -0
  176. data/examples/network/ftp/images/dir.png +0 -0
  177. data/examples/network/ftp/images/file.png +0 -0
  178. data/examples/network/ftp/main.rb +32 -0
  179. data/examples/network/http/httpwindow.rb +187 -0
  180. data/examples/network/http/main.rb +32 -0
  181. data/examples/network/loopback/dialog.rb +163 -0
  182. data/examples/network/loopback/main.rb +32 -0
  183. data/examples/opengl/grabber/glwidget.rb +265 -0
  184. data/examples/opengl/grabber/main.rb +32 -0
  185. data/examples/opengl/grabber/mainwindow.rb +189 -0
  186. data/examples/opengl/hellogl/glwidget.rb +226 -0
  187. data/examples/opengl/hellogl/main.rb +32 -0
  188. data/examples/opengl/hellogl/window.rb +66 -0
  189. data/examples/opengl/textures/glwidget.rb +151 -0
  190. data/examples/opengl/textures/images/side1.png +0 -0
  191. data/examples/opengl/textures/images/side2.png +0 -0
  192. data/examples/opengl/textures/images/side3.png +0 -0
  193. data/examples/opengl/textures/images/side4.png +0 -0
  194. data/examples/opengl/textures/images/side5.png +0 -0
  195. data/examples/opengl/textures/images/side6.png +0 -0
  196. data/examples/opengl/textures/main.rb +32 -0
  197. data/examples/opengl/textures/window.rb +77 -0
  198. data/examples/painting/basicdrawing/images/brick.png +0 -0
  199. data/examples/painting/basicdrawing/images/qt-logo.png +0 -0
  200. data/examples/painting/basicdrawing/main.rb +32 -0
  201. data/examples/painting/basicdrawing/renderarea.rb +166 -0
  202. data/examples/painting/basicdrawing/window.rb +215 -0
  203. data/examples/painting/concentriccircles/circlewidget.rb +88 -0
  204. data/examples/painting/concentriccircles/main.rb +32 -0
  205. data/examples/painting/concentriccircles/window.rb +72 -0
  206. data/examples/painting/fontsampler/main.rb +32 -0
  207. data/examples/painting/fontsampler/mainwindow.rb +368 -0
  208. data/examples/painting/fontsampler/mainwindowbase.ui +136 -0
  209. data/examples/painting/fontsampler/makefile +8 -0
  210. data/examples/painting/fontsampler/previewdialog.rb +256 -0
  211. data/examples/painting/fontsampler/previewdialogbase.ui +224 -0
  212. data/examples/painting/fontsampler/previewlabel.rb +43 -0
  213. data/examples/painting/imagecomposition/imagecomposer.rb +152 -0
  214. data/examples/painting/imagecomposition/imagecomposition.qrc +6 -0
  215. data/examples/painting/imagecomposition/images/background.png +0 -0
  216. data/examples/painting/imagecomposition/images/blackrectangle.png +0 -0
  217. data/examples/painting/imagecomposition/images/butterfly.png +0 -0
  218. data/examples/painting/imagecomposition/images/checker.png +0 -0
  219. data/examples/painting/imagecomposition/main.rb +33 -0
  220. data/examples/painting/imagecomposition/makefile +2 -0
  221. data/examples/painting/painterpaths/main.rb +32 -0
  222. data/examples/painting/painterpaths/renderarea.rb +97 -0
  223. data/examples/painting/painterpaths/window.rb +247 -0
  224. data/examples/painting/svgviewer/files/bubbles.svg +212 -0
  225. data/examples/painting/svgviewer/files/cubic.svg +77 -0
  226. data/examples/painting/svgviewer/files/spheres.svg +79 -0
  227. data/examples/painting/svgviewer/main.rb +38 -0
  228. data/examples/painting/svgviewer/mainwindow.rb +99 -0
  229. data/examples/painting/svgviewer/makefile +2 -0
  230. data/examples/painting/svgviewer/svgview.rb +156 -0
  231. data/examples/painting/svgviewer/svgviewer.qrc +6 -0
  232. data/examples/painting/svgviewer/svgwindow.rb +87 -0
  233. data/examples/painting/transformations/main.rb +32 -0
  234. data/examples/painting/transformations/renderarea.rb +127 -0
  235. data/examples/painting/transformations/window.rb +153 -0
  236. data/examples/passivepopup/passivepopup.rb +38 -0
  237. data/examples/qdbus/chat/chat.rb +146 -0
  238. data/examples/qdbus/chat/chat_adaptor.rb +12 -0
  239. data/examples/qdbus/chat/chat_interface.rb +13 -0
  240. data/examples/qdbus/chat/chatmainwindow.ui +184 -0
  241. data/examples/qdbus/chat/chatsetnickname.ui +145 -0
  242. data/examples/qdbus/chat/makefile +8 -0
  243. data/examples/qdbus/complexpingpong/complexping.rb +92 -0
  244. data/examples/qdbus/complexpingpong/complexpong.rb +83 -0
  245. data/examples/qdbus/complexpingpong/ping-common.rb +1 -0
  246. data/examples/qdbus/listnames/listnames.rb +69 -0
  247. data/examples/qdbus/pingpong/ping-common.rb +1 -0
  248. data/examples/qdbus/pingpong/ping.rb +52 -0
  249. data/examples/qdbus/pingpong/pong.rb +55 -0
  250. data/examples/qdbus/remotecontrolledcar/car/car.rb +151 -0
  251. data/examples/qdbus/remotecontrolledcar/car/main.rb +50 -0
  252. data/examples/qdbus/remotecontrolledcar/controller/controller.rb +66 -0
  253. data/examples/qdbus/remotecontrolledcar/controller/controller.ui +61 -0
  254. data/examples/qdbus/remotecontrolledcar/controller/main.rb +32 -0
  255. data/examples/qdbus/remotecontrolledcar/controller/makefile +2 -0
  256. data/examples/qtscribble/scribble.rb +270 -0
  257. data/examples/richtext/calendar/main.rb +33 -0
  258. data/examples/richtext/calendar/mainwindow.rb +173 -0
  259. data/examples/richtext/orderform/detailsdialog.rb +130 -0
  260. data/examples/richtext/orderform/main.rb +34 -0
  261. data/examples/richtext/orderform/mainwindow.rb +194 -0
  262. data/examples/richtext/syntaxhighlighter/examples/example +79 -0
  263. data/examples/richtext/syntaxhighlighter/highlighter.rb +90 -0
  264. data/examples/richtext/syntaxhighlighter/main.rb +34 -0
  265. data/examples/richtext/syntaxhighlighter/mainwindow.rb +105 -0
  266. data/examples/ruboids/Manifest +26 -0
  267. data/examples/ruboids/README +53 -0
  268. data/examples/ruboids/TODO +29 -0
  269. data/examples/ruboids/boids.properties +33 -0
  270. data/examples/ruboids/generateManifest.rb +42 -0
  271. data/examples/ruboids/index.html +147 -0
  272. data/examples/ruboids/release.rb +152 -0
  273. data/examples/ruboids/ruboids/Boid.rb +141 -0
  274. data/examples/ruboids/ruboids/BoidView.rb +159 -0
  275. data/examples/ruboids/ruboids/Camera.rb +24 -0
  276. data/examples/ruboids/ruboids/CameraDialog.rb +218 -0
  277. data/examples/ruboids/ruboids/Canvas.rb +143 -0
  278. data/examples/ruboids/ruboids/Cloud.rb +61 -0
  279. data/examples/ruboids/ruboids/CloudView.rb +54 -0
  280. data/examples/ruboids/ruboids/Flock.rb +47 -0
  281. data/examples/ruboids/ruboids/Graphics.rb +278 -0
  282. data/examples/ruboids/ruboids/Params.rb +87 -0
  283. data/examples/ruboids/ruboids/Point.rb +153 -0
  284. data/examples/ruboids/ruboids/Thing.rb +34 -0
  285. data/examples/ruboids/ruboids/Triangle.rb +21 -0
  286. data/examples/ruboids/ruboids/View.rb +88 -0
  287. data/examples/ruboids/ruboids/World.rb +82 -0
  288. data/examples/ruboids/ruboids/WorldWindow.rb +52 -0
  289. data/examples/ruboids/ruboids/info.rb +12 -0
  290. data/examples/ruboids/ruboids/ruboids.rb +29 -0
  291. data/examples/run_all.rb +14 -0
  292. data/examples/textedit/textedit.rb +150 -0
  293. data/examples/tutorial/t1/t1.rb +10 -0
  294. data/examples/tutorial/t10/cannon.rb +72 -0
  295. data/examples/tutorial/t10/lcdrange.rb +45 -0
  296. data/examples/tutorial/t10/t10.rb +55 -0
  297. data/examples/tutorial/t11/cannon.rb +124 -0
  298. data/examples/tutorial/t11/lcdrange.rb +45 -0
  299. data/examples/tutorial/t11/t11.rb +65 -0
  300. data/examples/tutorial/t12/cannon.rb +158 -0
  301. data/examples/tutorial/t12/lcdrange.rb +59 -0
  302. data/examples/tutorial/t12/t12.rb +66 -0
  303. data/examples/tutorial/t13/cannon.rb +208 -0
  304. data/examples/tutorial/t13/gamebrd.rb +113 -0
  305. data/examples/tutorial/t13/lcdrange.rb +60 -0
  306. data/examples/tutorial/t13/t13.rb +11 -0
  307. data/examples/tutorial/t14/cannon.rb +263 -0
  308. data/examples/tutorial/t14/gamebrd.rb +123 -0
  309. data/examples/tutorial/t14/lcdrange.rb +63 -0
  310. data/examples/tutorial/t14/t14.rb +11 -0
  311. data/examples/tutorial/t2/t2.rb +16 -0
  312. data/examples/tutorial/t3/t3.rb +18 -0
  313. data/examples/tutorial/t4/t4.rb +25 -0
  314. data/examples/tutorial/t5/t5.rb +37 -0
  315. data/examples/tutorial/t6/t6.rb +52 -0
  316. data/examples/tutorial/t7/lcdrange.rb +32 -0
  317. data/examples/tutorial/t7/t7.rb +42 -0
  318. data/examples/tutorial/t8/cannon.rb +38 -0
  319. data/examples/tutorial/t8/lcdrange.rb +45 -0
  320. data/examples/tutorial/t8/t8.rb +43 -0
  321. data/examples/tutorial/t9/cannon.rb +45 -0
  322. data/examples/tutorial/t9/lcdrange.rb +46 -0
  323. data/examples/tutorial/t9/t9.rb +43 -0
  324. data/examples/widgets/analogclock/analogclock.rb +94 -0
  325. data/examples/widgets/analogclock/main.rb +9 -0
  326. data/examples/widgets/calculator/button.rb +45 -0
  327. data/examples/widgets/calculator/calculator.rb +382 -0
  328. data/examples/widgets/calculator/main.rb +32 -0
  329. data/examples/widgets/charactermap/characterwidget.rb +110 -0
  330. data/examples/widgets/charactermap/main.rb +32 -0
  331. data/examples/widgets/charactermap/mainwindow.rb +118 -0
  332. data/examples/widgets/digitalclock/digitalclock.rb +30 -0
  333. data/examples/widgets/digitalclock/main.rb +9 -0
  334. data/examples/widgets/groupbox/main.rb +32 -0
  335. data/examples/widgets/groupbox/window.rb +134 -0
  336. data/examples/widgets/icons/iconpreviewarea.rb +111 -0
  337. data/examples/widgets/icons/iconsizespinbox.rb +39 -0
  338. data/examples/widgets/icons/imagedelegate.rb +73 -0
  339. data/examples/widgets/icons/images/designer.png +0 -0
  340. data/examples/widgets/icons/images/find_disabled.png +0 -0
  341. data/examples/widgets/icons/images/find_normal.png +0 -0
  342. data/examples/widgets/icons/images/monkey_off_128x128.png +0 -0
  343. data/examples/widgets/icons/images/monkey_off_16x16.png +0 -0
  344. data/examples/widgets/icons/images/monkey_off_32x32.png +0 -0
  345. data/examples/widgets/icons/images/monkey_off_64x64.png +0 -0
  346. data/examples/widgets/icons/images/monkey_on_128x128.png +0 -0
  347. data/examples/widgets/icons/images/monkey_on_16x16.png +0 -0
  348. data/examples/widgets/icons/images/monkey_on_32x32.png +0 -0
  349. data/examples/widgets/icons/images/monkey_on_64x64.png +0 -0
  350. data/examples/widgets/icons/images/qtopia_16x16.png +0 -0
  351. data/examples/widgets/icons/images/qtopia_32x32.png +0 -0
  352. data/examples/widgets/icons/images/qtopia_48x48.png +0 -0
  353. data/examples/widgets/icons/main.rb +32 -0
  354. data/examples/widgets/icons/mainwindow.rb +351 -0
  355. data/examples/widgets/imageviewer/imageviewer.rb +219 -0
  356. data/examples/widgets/imageviewer/main.rb +32 -0
  357. data/examples/widgets/lineedits/main.rb +32 -0
  358. data/examples/widgets/lineedits/window.rb +199 -0
  359. data/examples/widgets/movie/images/open.png +0 -0
  360. data/examples/widgets/movie/images/pause.png +0 -0
  361. data/examples/widgets/movie/images/play.png +0 -0
  362. data/examples/widgets/movie/images/quit.png +0 -0
  363. data/examples/widgets/movie/images/stop.png +0 -0
  364. data/examples/widgets/movie/main.rb +32 -0
  365. data/examples/widgets/movie/movieplayer.rb +201 -0
  366. data/examples/widgets/movie/movies/fire.mng +0 -0
  367. data/examples/widgets/screenshot/main.rb +32 -0
  368. data/examples/widgets/screenshot/screenshot.rb +155 -0
  369. data/examples/widgets/scribble/main.rb +32 -0
  370. data/examples/widgets/scribble/mainwindow.rb +202 -0
  371. data/examples/widgets/scribble/scribblearea.rb +154 -0
  372. data/examples/widgets/sliders/main.rb +32 -0
  373. data/examples/widgets/sliders/slidersgroup.rb +97 -0
  374. data/examples/widgets/sliders/window.rb +124 -0
  375. data/examples/widgets/spinboxes/main.rb +32 -0
  376. data/examples/widgets/spinboxes/window.rb +213 -0
  377. data/examples/widgets/tetrix/main.rb +33 -0
  378. data/examples/widgets/tetrix/tetrixboard.rb +346 -0
  379. data/examples/widgets/tetrix/tetrixpiece.rb +135 -0
  380. data/examples/widgets/tetrix/tetrixwindow.rb +88 -0
  381. data/examples/widgets/tooltips/images/circle.png +0 -0
  382. data/examples/widgets/tooltips/images/square.png +0 -0
  383. data/examples/widgets/tooltips/images/triangle.png +0 -0
  384. data/examples/widgets/tooltips/main.rb +32 -0
  385. data/examples/widgets/tooltips/shapeitem.rb +31 -0
  386. data/examples/widgets/tooltips/sortingbox.rb +222 -0
  387. data/examples/widgets/wiggly/dialog.rb +48 -0
  388. data/examples/widgets/wiggly/main.rb +9 -0
  389. data/examples/widgets/wiggly/wigglywidget.rb +76 -0
  390. data/examples/widgets/windowflags/controllerwindow.rb +195 -0
  391. data/examples/widgets/windowflags/main.rb +32 -0
  392. data/examples/widgets/windowflags/previewwindow.rb +103 -0
  393. data/examples/xml/dombookmarks/frank.xbel +230 -0
  394. data/examples/xml/dombookmarks/jennifer.xbel +93 -0
  395. data/examples/xml/dombookmarks/main.rb +34 -0
  396. data/examples/xml/dombookmarks/mainwindow.rb +129 -0
  397. data/examples/xml/dombookmarks/xbeltree.rb +172 -0
  398. data/examples/xml/saxbookmarks/frank.xbel +230 -0
  399. data/examples/xml/saxbookmarks/jennifer.xbel +93 -0
  400. data/examples/xml/saxbookmarks/main.rb +34 -0
  401. data/examples/xml/saxbookmarks/mainwindow.rb +144 -0
  402. data/examples/xml/saxbookmarks/xbelgenerator.rb +95 -0
  403. data/examples/xml/saxbookmarks/xbelhandler.rb +122 -0
  404. data/ext/CMakeLists.txt +22 -0
  405. data/ext/cmake/modules/CMakeCSharpCompiler.cmake.in +7 -0
  406. data/ext/cmake/modules/CMakeCSharpInformation.cmake +366 -0
  407. data/ext/cmake/modules/CMakeDetermineCSharpCompiler.cmake +85 -0
  408. data/ext/cmake/modules/CMakeTestCSharpCompiler.cmake +1 -0
  409. data/ext/cmake/modules/CheckCXXSourceCompiles.cmake +68 -0
  410. data/ext/cmake/modules/FindMono.cmake +36 -0
  411. data/ext/cmake/modules/FindPHP5.cmake +179 -0
  412. data/ext/cmake/modules/FindPerlMore.cmake +78 -0
  413. data/ext/cmake/modules/FindQScintilla.cmake +57 -0
  414. data/ext/cmake/modules/FindQt4.cmake +1271 -0
  415. data/ext/cmake/modules/FindQwt5.cmake +104 -0
  416. data/ext/cmake/modules/FindRuby.cmake +261 -0
  417. data/ext/cmake/modules/FindSmoke.cmake +78 -0
  418. data/ext/cmake/modules/HandleImportedTargetsInCMakeRequiredLibraries.cmake +85 -0
  419. data/ext/cmake/modules/MacroLogFeature.cmake +146 -0
  420. data/ext/cmake/modules/MacroOptionalAddBindings.cmake +47 -0
  421. data/ext/cmake/modules/MacroOptionalFindPackage.cmake +48 -0
  422. data/ext/cmake/modules/MacroPushRequiredVars.cmake +47 -0
  423. data/ext/cmake/modules/Qt4ConfigDependentSettings.cmake +384 -0
  424. data/ext/cmake/modules/Qt4Macros.cmake +414 -0
  425. data/ext/generator/CMakeLists.txt +38 -0
  426. data/ext/generator/generator_export.h +31 -0
  427. data/ext/generator/generatorenvironment.cpp +52 -0
  428. data/ext/generator/generatorenvironment.h +35 -0
  429. data/ext/generator/generatorpreprocessor.cpp +242 -0
  430. data/ext/generator/generatorpreprocessor.h +83 -0
  431. data/ext/generator/generators/CMakeLists.txt +4 -0
  432. data/ext/generator/generators/dump/CMakeLists.txt +10 -0
  433. data/ext/generator/generators/dump/generator_dump.cpp +36 -0
  434. data/ext/generator/generators/smoke/CMakeLists.txt +13 -0
  435. data/ext/generator/generators/smoke/generator_smoke.cpp +233 -0
  436. data/ext/generator/generators/smoke/globals.h +138 -0
  437. data/ext/generator/generators/smoke/helpers.cpp +773 -0
  438. data/ext/generator/generators/smoke/writeClasses.cpp +502 -0
  439. data/ext/generator/generators/smoke/writeSmokeDataFile.cpp +729 -0
  440. data/ext/generator/generatorvisitor.cpp +922 -0
  441. data/ext/generator/generatorvisitor.h +119 -0
  442. data/ext/generator/main.cpp +239 -0
  443. data/ext/generator/name_compiler.cpp +205 -0
  444. data/ext/generator/name_compiler.h +76 -0
  445. data/ext/generator/options.cpp +32 -0
  446. data/ext/generator/options.h +45 -0
  447. data/ext/generator/parser/CMakeLists.txt +41 -0
  448. data/ext/generator/parser/ast.cpp +21 -0
  449. data/ext/generator/parser/ast.h +923 -0
  450. data/ext/generator/parser/astutilities.h +65 -0
  451. data/ext/generator/parser/codegenerator.cpp +867 -0
  452. data/ext/generator/parser/codegenerator.h +180 -0
  453. data/ext/generator/parser/codemodel_fwd.h +76 -0
  454. data/ext/generator/parser/commentformatter.cpp +54 -0
  455. data/ext/generator/parser/commentformatter.h +45 -0
  456. data/ext/generator/parser/commentparser.cpp +109 -0
  457. data/ext/generator/parser/commentparser.h +84 -0
  458. data/ext/generator/parser/control.cpp +40 -0
  459. data/ext/generator/parser/control.h +51 -0
  460. data/ext/generator/parser/cppparser_export.h +33 -0
  461. data/ext/generator/parser/default_visitor.cpp +470 -0
  462. data/ext/generator/parser/default_visitor.h +116 -0
  463. data/ext/generator/parser/dumptree.cpp +146 -0
  464. data/ext/generator/parser/dumptree.h +50 -0
  465. data/ext/generator/parser/indexedstring.cpp +213 -0
  466. data/ext/generator/parser/indexedstring.h +147 -0
  467. data/ext/generator/parser/kdevelop-parser-rev +1 -0
  468. data/ext/generator/parser/kdevvarlengtharray.h +346 -0
  469. data/ext/generator/parser/lexer.cpp +963 -0
  470. data/ext/generator/parser/lexer.h +308 -0
  471. data/ext/generator/parser/listnode.cpp +20 -0
  472. data/ext/generator/parser/listnode.h +97 -0
  473. data/ext/generator/parser/memorypool.cpp +20 -0
  474. data/ext/generator/parser/memorypool.h +41 -0
  475. data/ext/generator/parser/name_compiler.cpp +190 -0
  476. data/ext/generator/parser/name_compiler.h +77 -0
  477. data/ext/generator/parser/parser.cpp +4706 -0
  478. data/ext/generator/parser/parser.h +300 -0
  479. data/ext/generator/parser/parsesession.cpp +105 -0
  480. data/ext/generator/parser/parsesession.h +87 -0
  481. data/ext/generator/parser/problem.h +21 -0
  482. data/ext/generator/parser/rpp/CMakeLists.txt +39 -0
  483. data/ext/generator/parser/rpp/Makefile.am +13 -0
  484. data/ext/generator/parser/rpp/anchor.h +51 -0
  485. data/ext/generator/parser/rpp/appendedlist.h +363 -0
  486. data/ext/generator/parser/rpp/chartools.cpp +126 -0
  487. data/ext/generator/parser/rpp/chartools.h +90 -0
  488. data/ext/generator/parser/rpp/macrorepository.cpp +44 -0
  489. data/ext/generator/parser/rpp/macrorepository.h +59 -0
  490. data/ext/generator/parser/rpp/pp-configuration +86 -0
  491. data/ext/generator/parser/rpp/pp-engine.cpp +1216 -0
  492. data/ext/generator/parser/rpp/pp-engine.h +267 -0
  493. data/ext/generator/parser/rpp/pp-environment.cpp +271 -0
  494. data/ext/generator/parser/rpp/pp-environment.h +119 -0
  495. data/ext/generator/parser/rpp/pp-internal.cpp +38 -0
  496. data/ext/generator/parser/rpp/pp-internal.h +37 -0
  497. data/ext/generator/parser/rpp/pp-location.cpp +191 -0
  498. data/ext/generator/parser/rpp/pp-location.h +89 -0
  499. data/ext/generator/parser/rpp/pp-macro-expander.cpp +568 -0
  500. data/ext/generator/parser/rpp/pp-macro-expander.cpp.orig +558 -0
  501. data/ext/generator/parser/rpp/pp-macro-expander.h +130 -0
  502. data/ext/generator/parser/rpp/pp-macro.cpp +153 -0
  503. data/ext/generator/parser/rpp/pp-macro.h +176 -0
  504. data/ext/generator/parser/rpp/pp-scanner.cpp +310 -0
  505. data/ext/generator/parser/rpp/pp-scanner.h +97 -0
  506. data/ext/generator/parser/rpp/pp-stream.cpp +425 -0
  507. data/ext/generator/parser/rpp/pp-stream.h +183 -0
  508. data/ext/generator/parser/rpp/preprocessor.cpp +65 -0
  509. data/ext/generator/parser/rpp/preprocessor.h +80 -0
  510. data/ext/generator/parser/rpp/rpp.pri +2 -0
  511. data/ext/generator/parser/rpp/test/t001.cpp +23 -0
  512. data/ext/generator/parser/rpp/test/t002.cpp +15 -0
  513. data/ext/generator/parser/rpp/test/t003.cpp +10 -0
  514. data/ext/generator/parser/rpp/test/t004.cpp +9 -0
  515. data/ext/generator/parser/rpp/test/t005.cpp +10 -0
  516. data/ext/generator/parser/rpp/test/t006.cpp +10 -0
  517. data/ext/generator/parser/rpp/test/t007.cpp +6 -0
  518. data/ext/generator/parser/rpp/test/t008.cpp +6 -0
  519. data/ext/generator/parser/rpp/test/t009.cpp +5 -0
  520. data/ext/generator/parser/rpp/test/t010.cpp +15 -0
  521. data/ext/generator/parser/rpp/test/t011.cpp +9 -0
  522. data/ext/generator/parser/rpp/tests/CMakeLists.txt +13 -0
  523. data/ext/generator/parser/rpp/tests/main.cpp +69 -0
  524. data/ext/generator/parser/rxx.pri +50 -0
  525. data/ext/generator/parser/rxx_allocator.h +128 -0
  526. data/ext/generator/parser/safetycounter.h +57 -0
  527. data/ext/generator/parser/simplecursor.h +74 -0
  528. data/ext/generator/parser/stringhelpers.cpp +577 -0
  529. data/ext/generator/parser/stringhelpers.h +118 -0
  530. data/ext/generator/parser/symbol.h +140 -0
  531. data/ext/generator/parser/tests/CMakeLists.txt +30 -0
  532. data/ext/generator/parser/tests/test_generator.cpp +259 -0
  533. data/ext/generator/parser/tests/test_parser.cpp +474 -0
  534. data/ext/generator/parser/tests/test_pool.cpp +109 -0
  535. data/ext/generator/parser/tests/test_pool.h +35 -0
  536. data/ext/generator/parser/tests/testconfig.h.cmake +4 -0
  537. data/ext/generator/parser/tokens.cpp +364 -0
  538. data/ext/generator/parser/tokens.h +147 -0
  539. data/ext/generator/parser/type_compiler.cpp +135 -0
  540. data/ext/generator/parser/type_compiler.h +68 -0
  541. data/ext/generator/parser/visitor.cpp +115 -0
  542. data/ext/generator/parser/visitor.h +138 -0
  543. data/ext/generator/type.cpp +195 -0
  544. data/ext/generator/type.h +497 -0
  545. data/ext/generator/type_compiler.cpp +275 -0
  546. data/ext/generator/type_compiler.h +80 -0
  547. data/ext/ruby/CMakeLists.txt +63 -0
  548. data/ext/ruby/qtruby/AUTHORS +54 -0
  549. data/ext/ruby/qtruby/CMakeLists.txt +4 -0
  550. data/ext/ruby/qtruby/COPYING +355 -0
  551. data/ext/ruby/qtruby/COPYING.LIB +510 -0
  552. data/ext/ruby/qtruby/ChangeLog +3732 -0
  553. data/ext/ruby/qtruby/INSTALL +79 -0
  554. data/ext/ruby/qtruby/README +264 -0
  555. data/ext/ruby/qtruby/TODO +8 -0
  556. data/ext/ruby/qtruby/bin/CMakeLists.txt +1 -0
  557. data/ext/ruby/qtruby/bin/rbqtapi +152 -0
  558. data/ext/ruby/qtruby/examples/base/kicons.rb +54 -0
  559. data/ext/ruby/qtruby/examples/base/rui.rb +21 -0
  560. data/ext/ruby/qtruby/examples/designer/calculatorbuilder/calculatorbuilder.qrc +5 -0
  561. data/ext/ruby/qtruby/examples/designer/calculatorbuilder/calculatorform.rb +60 -0
  562. data/ext/ruby/qtruby/examples/designer/calculatorbuilder/calculatorform.ui +299 -0
  563. data/ext/ruby/qtruby/examples/designer/calculatorbuilder/main.rb +33 -0
  564. data/ext/ruby/qtruby/examples/designer/calculatorbuilder/makefile +2 -0
  565. data/ext/ruby/qtruby/examples/designer/calculatorform/calculatorform.rb +46 -0
  566. data/ext/ruby/qtruby/examples/designer/calculatorform/calculatorform.ui +277 -0
  567. data/ext/ruby/qtruby/examples/designer/calculatorform/main.rb +32 -0
  568. data/ext/ruby/qtruby/examples/designer/calculatorform/makefile +3 -0
  569. data/ext/ruby/qtruby/examples/desktop/screenshot/main.rb +32 -0
  570. data/ext/ruby/qtruby/examples/desktop/screenshot/screenshot.rb +156 -0
  571. data/ext/ruby/qtruby/examples/desktop/systray/images/bad.svg +64 -0
  572. data/ext/ruby/qtruby/examples/desktop/systray/images/heart.svg +55 -0
  573. data/ext/ruby/qtruby/examples/desktop/systray/images/trash.svg +58 -0
  574. data/ext/ruby/qtruby/examples/desktop/systray/main.rb +41 -0
  575. data/ext/ruby/qtruby/examples/desktop/systray/makefile +2 -0
  576. data/ext/ruby/qtruby/examples/desktop/systray/systray.qrc +7 -0
  577. data/ext/ruby/qtruby/examples/desktop/systray/window.rb +223 -0
  578. data/ext/ruby/qtruby/examples/dialogs/complexwizard/complexwizard.rb +140 -0
  579. data/ext/ruby/qtruby/examples/dialogs/complexwizard/licensewizard.rb +294 -0
  580. data/ext/ruby/qtruby/examples/dialogs/complexwizard/main.rb +31 -0
  581. data/ext/ruby/qtruby/examples/dialogs/configdialog/configdialog.rb +109 -0
  582. data/ext/ruby/qtruby/examples/dialogs/configdialog/images/config.png +0 -0
  583. data/ext/ruby/qtruby/examples/dialogs/configdialog/images/query.png +0 -0
  584. data/ext/ruby/qtruby/examples/dialogs/configdialog/images/update.png +0 -0
  585. data/ext/ruby/qtruby/examples/dialogs/configdialog/main.rb +31 -0
  586. data/ext/ruby/qtruby/examples/dialogs/configdialog/pages.rb +140 -0
  587. data/ext/ruby/qtruby/examples/dialogs/extension/finddialog.rb +89 -0
  588. data/ext/ruby/qtruby/examples/dialogs/extension/main.rb +31 -0
  589. data/ext/ruby/qtruby/examples/dialogs/findfiles/main.rb +32 -0
  590. data/ext/ruby/qtruby/examples/dialogs/findfiles/window.rb +177 -0
  591. data/ext/ruby/qtruby/examples/dialogs/simplewizard/classwizard.rb +374 -0
  592. data/ext/ruby/qtruby/examples/dialogs/simplewizard/main.rb +31 -0
  593. data/ext/ruby/qtruby/examples/dialogs/simplewizard/simplewizard.rb +110 -0
  594. data/ext/ruby/qtruby/examples/dialogs/standarddialogs/dialog.rb +340 -0
  595. data/ext/ruby/qtruby/examples/dialogs/standarddialogs/main.rb +31 -0
  596. data/ext/ruby/qtruby/examples/dialogs/tabdialog/main.rb +38 -0
  597. data/ext/ruby/qtruby/examples/dialogs/tabdialog/tabdialog.rb +178 -0
  598. data/ext/ruby/qtruby/examples/draganddrop/draggableicons/dragwidget.rb +125 -0
  599. data/ext/ruby/qtruby/examples/draganddrop/draggableicons/images/boat.png +0 -0
  600. data/ext/ruby/qtruby/examples/draganddrop/draggableicons/images/car.png +0 -0
  601. data/ext/ruby/qtruby/examples/draganddrop/draggableicons/images/house.png +0 -0
  602. data/ext/ruby/qtruby/examples/draganddrop/draggableicons/main.rb +41 -0
  603. data/ext/ruby/qtruby/examples/draganddrop/draggabletext/draglabel.rb +51 -0
  604. data/ext/ruby/qtruby/examples/draganddrop/draggabletext/dragwidget.rb +94 -0
  605. data/ext/ruby/qtruby/examples/draganddrop/draggabletext/main.rb +33 -0
  606. data/ext/ruby/qtruby/examples/draganddrop/draggabletext/words.txt +41 -0
  607. data/ext/ruby/qtruby/examples/draganddrop/dropsite/dropsitewidget.rb +98 -0
  608. data/ext/ruby/qtruby/examples/draganddrop/dropsite/dropsitewindow.rb +114 -0
  609. data/ext/ruby/qtruby/examples/draganddrop/dropsite/main.rb +33 -0
  610. data/ext/ruby/qtruby/examples/draganddrop/fridgemagnets/draglabel.rb +78 -0
  611. data/ext/ruby/qtruby/examples/draganddrop/fridgemagnets/dragwidget.rb +130 -0
  612. data/ext/ruby/qtruby/examples/draganddrop/fridgemagnets/main.rb +33 -0
  613. data/ext/ruby/qtruby/examples/draganddrop/fridgemagnets/words.txt +48 -0
  614. data/ext/ruby/qtruby/examples/draganddrop/puzzle/example.jpg +0 -0
  615. data/ext/ruby/qtruby/examples/draganddrop/puzzle/main.rb +33 -0
  616. data/ext/ruby/qtruby/examples/draganddrop/puzzle/mainwindow.rb +136 -0
  617. data/ext/ruby/qtruby/examples/draganddrop/puzzle/pieceslist.rb +95 -0
  618. data/ext/ruby/qtruby/examples/draganddrop/puzzle/puzzlewidget.rb +190 -0
  619. data/ext/ruby/qtruby/examples/graphicsview/collidingmice/images/cheese.jpg +0 -0
  620. data/ext/ruby/qtruby/examples/graphicsview/collidingmice/main.rb +53 -0
  621. data/ext/ruby/qtruby/examples/graphicsview/collidingmice/makefile +2 -0
  622. data/ext/ruby/qtruby/examples/graphicsview/collidingmice/mice.qrc +5 -0
  623. data/ext/ruby/qtruby/examples/graphicsview/collidingmice/mouse.rb +176 -0
  624. data/ext/ruby/qtruby/examples/graphicsview/dragdroprobot/coloritem.rb +86 -0
  625. data/ext/ruby/qtruby/examples/graphicsview/dragdroprobot/images/head.png +0 -0
  626. data/ext/ruby/qtruby/examples/graphicsview/dragdroprobot/main.rb +57 -0
  627. data/ext/ruby/qtruby/examples/graphicsview/dragdroprobot/makefile +2 -0
  628. data/ext/ruby/qtruby/examples/graphicsview/dragdroprobot/robot.qrc +5 -0
  629. data/ext/ruby/qtruby/examples/graphicsview/dragdroprobot/robot.rb +246 -0
  630. data/ext/ruby/qtruby/examples/itemviews/chart/chart.qrc +5 -0
  631. data/ext/ruby/qtruby/examples/itemviews/chart/main.rb +33 -0
  632. data/ext/ruby/qtruby/examples/itemviews/chart/mainwindow.rb +151 -0
  633. data/ext/ruby/qtruby/examples/itemviews/chart/makefile +2 -0
  634. data/ext/ruby/qtruby/examples/itemviews/chart/mydata.cht +8 -0
  635. data/ext/ruby/qtruby/examples/itemviews/chart/pieview.rb +516 -0
  636. data/ext/ruby/qtruby/examples/itemviews/chart/qtdata.cht +14 -0
  637. data/ext/ruby/qtruby/examples/itemviews/dirview/main.rb +39 -0
  638. data/ext/ruby/qtruby/examples/itemviews/pixelator/imagemodel.rb +51 -0
  639. data/ext/ruby/qtruby/examples/itemviews/pixelator/images.qrc +5 -0
  640. data/ext/ruby/qtruby/examples/itemviews/pixelator/images/qt.png +0 -0
  641. data/ext/ruby/qtruby/examples/itemviews/pixelator/main.rb +34 -0
  642. data/ext/ruby/qtruby/examples/itemviews/pixelator/mainwindow.rb +218 -0
  643. data/ext/ruby/qtruby/examples/itemviews/pixelator/makefile +3 -0
  644. data/ext/ruby/qtruby/examples/itemviews/pixelator/pixeldelegate.rb +67 -0
  645. data/ext/ruby/qtruby/examples/itemviews/puzzle/example.jpg +0 -0
  646. data/ext/ruby/qtruby/examples/itemviews/puzzle/main.rb +36 -0
  647. data/ext/ruby/qtruby/examples/itemviews/puzzle/mainwindow.rb +143 -0
  648. data/ext/ruby/qtruby/examples/itemviews/puzzle/piecesmodel.rb +174 -0
  649. data/ext/ruby/qtruby/examples/itemviews/puzzle/puzzlewidget.rb +192 -0
  650. data/ext/ruby/qtruby/examples/itemviews/simpledommodel/domitem.rb +62 -0
  651. data/ext/ruby/qtruby/examples/itemviews/simpledommodel/dommodel.rb +139 -0
  652. data/ext/ruby/qtruby/examples/itemviews/simpledommodel/main.rb +33 -0
  653. data/ext/ruby/qtruby/examples/itemviews/simpledommodel/mainwindow.rb +66 -0
  654. data/ext/ruby/qtruby/examples/itemviews/simpletreemodel/default.txt +40 -0
  655. data/ext/ruby/qtruby/examples/itemviews/simpletreemodel/main.rb +41 -0
  656. data/ext/ruby/qtruby/examples/itemviews/simpletreemodel/makefile +2 -0
  657. data/ext/ruby/qtruby/examples/itemviews/simpletreemodel/simpletreemodel.qrc +5 -0
  658. data/ext/ruby/qtruby/examples/itemviews/simpletreemodel/treeitem.rb +67 -0
  659. data/ext/ruby/qtruby/examples/itemviews/simpletreemodel/treemodel.rb +164 -0
  660. data/ext/ruby/qtruby/examples/itemviews/sortingmodel/default.txt +40 -0
  661. data/ext/ruby/qtruby/examples/itemviews/sortingmodel/main.rb +53 -0
  662. data/ext/ruby/qtruby/examples/itemviews/sortingmodel/treeitem.rb +73 -0
  663. data/ext/ruby/qtruby/examples/itemviews/sortingmodel/treemodel.rb +166 -0
  664. data/ext/ruby/qtruby/examples/itemviews/spinboxdelegate/main.rb +47 -0
  665. data/ext/ruby/qtruby/examples/itemviews/spinboxdelegate/spinboxdelegate.rb +62 -0
  666. data/ext/ruby/qtruby/examples/killerfilter/killerfilter.rb +55 -0
  667. data/ext/ruby/qtruby/examples/layouts/basiclayouts/dialog.rb +110 -0
  668. data/ext/ruby/qtruby/examples/layouts/basiclayouts/main.rb +31 -0
  669. data/ext/ruby/qtruby/examples/layouts/borderlayout/borderlayout.rb +190 -0
  670. data/ext/ruby/qtruby/examples/layouts/borderlayout/main.rb +32 -0
  671. data/ext/ruby/qtruby/examples/layouts/borderlayout/window.rb +52 -0
  672. data/ext/ruby/qtruby/examples/layouts/flowlayouts/flowlayout.rb +108 -0
  673. data/ext/ruby/qtruby/examples/layouts/flowlayouts/main.rb +32 -0
  674. data/ext/ruby/qtruby/examples/layouts/flowlayouts/window.rb +43 -0
  675. data/ext/ruby/qtruby/examples/mainwindows/application/images/copy.png +0 -0
  676. data/ext/ruby/qtruby/examples/mainwindows/application/images/cut.png +0 -0
  677. data/ext/ruby/qtruby/examples/mainwindows/application/images/new.png +0 -0
  678. data/ext/ruby/qtruby/examples/mainwindows/application/images/open.png +0 -0
  679. data/ext/ruby/qtruby/examples/mainwindows/application/images/paste.png +0 -0
  680. data/ext/ruby/qtruby/examples/mainwindows/application/images/save.png +0 -0
  681. data/ext/ruby/qtruby/examples/mainwindows/application/main.rb +32 -0
  682. data/ext/ruby/qtruby/examples/mainwindows/application/mainwindow.rb +285 -0
  683. data/ext/ruby/qtruby/examples/mainwindows/dockwidgets/images/new.png +0 -0
  684. data/ext/ruby/qtruby/examples/mainwindows/dockwidgets/images/print.png +0 -0
  685. data/ext/ruby/qtruby/examples/mainwindows/dockwidgets/images/save.png +0 -0
  686. data/ext/ruby/qtruby/examples/mainwindows/dockwidgets/images/undo.png +0 -0
  687. data/ext/ruby/qtruby/examples/mainwindows/dockwidgets/main.rb +32 -0
  688. data/ext/ruby/qtruby/examples/mainwindows/dockwidgets/mainwindow.rb +302 -0
  689. data/ext/ruby/qtruby/examples/mainwindows/mdi/images/copy.png +0 -0
  690. data/ext/ruby/qtruby/examples/mainwindows/mdi/images/cut.png +0 -0
  691. data/ext/ruby/qtruby/examples/mainwindows/mdi/images/new.png +0 -0
  692. data/ext/ruby/qtruby/examples/mainwindows/mdi/images/open.png +0 -0
  693. data/ext/ruby/qtruby/examples/mainwindows/mdi/images/paste.png +0 -0
  694. data/ext/ruby/qtruby/examples/mainwindows/mdi/images/save.png +0 -0
  695. data/ext/ruby/qtruby/examples/mainwindows/mdi/main.rb +32 -0
  696. data/ext/ruby/qtruby/examples/mainwindows/mdi/mainwindow.rb +363 -0
  697. data/ext/ruby/qtruby/examples/mainwindows/mdi/mdichild.rb +152 -0
  698. data/ext/ruby/qtruby/examples/mainwindows/menus/main.rb +32 -0
  699. data/ext/ruby/qtruby/examples/mainwindows/menus/mainwindow.rb +327 -0
  700. data/ext/ruby/qtruby/examples/mainwindows/recentfiles/main.rb +32 -0
  701. data/ext/ruby/qtruby/examples/mainwindows/recentfiles/mainwindow.rb +258 -0
  702. data/ext/ruby/qtruby/examples/mainwindows/sdi/images/copy.png +0 -0
  703. data/ext/ruby/qtruby/examples/mainwindows/sdi/images/cut.png +0 -0
  704. data/ext/ruby/qtruby/examples/mainwindows/sdi/images/new.png +0 -0
  705. data/ext/ruby/qtruby/examples/mainwindows/sdi/images/open.png +0 -0
  706. data/ext/ruby/qtruby/examples/mainwindows/sdi/images/paste.png +0 -0
  707. data/ext/ruby/qtruby/examples/mainwindows/sdi/images/save.png +0 -0
  708. data/ext/ruby/qtruby/examples/mainwindows/sdi/main.rb +32 -0
  709. data/ext/ruby/qtruby/examples/mainwindows/sdi/mainwindow.rb +335 -0
  710. data/ext/ruby/qtruby/examples/network/broadcastreceiver/main.rb +32 -0
  711. data/ext/ruby/qtruby/examples/network/broadcastreceiver/receiver.rb +64 -0
  712. data/ext/ruby/qtruby/examples/network/broadcastsender/main.rb +32 -0
  713. data/ext/ruby/qtruby/examples/network/broadcastsender/sender.rb +70 -0
  714. data/ext/ruby/qtruby/examples/network/fortuneclient/client.rb +150 -0
  715. data/ext/ruby/qtruby/examples/network/fortuneclient/main.rb +32 -0
  716. data/ext/ruby/qtruby/examples/network/fortuneserver/main.rb +32 -0
  717. data/ext/ruby/qtruby/examples/network/fortuneserver/server.rb +88 -0
  718. data/ext/ruby/qtruby/examples/network/ftp/ftpwindow.rb +254 -0
  719. data/ext/ruby/qtruby/examples/network/ftp/images/cdtoparent.png +0 -0
  720. data/ext/ruby/qtruby/examples/network/ftp/images/dir.png +0 -0
  721. data/ext/ruby/qtruby/examples/network/ftp/images/file.png +0 -0
  722. data/ext/ruby/qtruby/examples/network/ftp/main.rb +32 -0
  723. data/ext/ruby/qtruby/examples/network/http/httpwindow.rb +187 -0
  724. data/ext/ruby/qtruby/examples/network/http/main.rb +32 -0
  725. data/ext/ruby/qtruby/examples/network/loopback/dialog.rb +163 -0
  726. data/ext/ruby/qtruby/examples/network/loopback/main.rb +32 -0
  727. data/ext/ruby/qtruby/examples/opengl/grabber/glwidget.rb +265 -0
  728. data/ext/ruby/qtruby/examples/opengl/grabber/main.rb +32 -0
  729. data/ext/ruby/qtruby/examples/opengl/grabber/mainwindow.rb +189 -0
  730. data/ext/ruby/qtruby/examples/opengl/hellogl/glwidget.rb +226 -0
  731. data/ext/ruby/qtruby/examples/opengl/hellogl/main.rb +32 -0
  732. data/ext/ruby/qtruby/examples/opengl/hellogl/window.rb +66 -0
  733. data/ext/ruby/qtruby/examples/opengl/textures/glwidget.rb +151 -0
  734. data/ext/ruby/qtruby/examples/opengl/textures/images/side1.png +0 -0
  735. data/ext/ruby/qtruby/examples/opengl/textures/images/side2.png +0 -0
  736. data/ext/ruby/qtruby/examples/opengl/textures/images/side3.png +0 -0
  737. data/ext/ruby/qtruby/examples/opengl/textures/images/side4.png +0 -0
  738. data/ext/ruby/qtruby/examples/opengl/textures/images/side5.png +0 -0
  739. data/ext/ruby/qtruby/examples/opengl/textures/images/side6.png +0 -0
  740. data/ext/ruby/qtruby/examples/opengl/textures/main.rb +32 -0
  741. data/ext/ruby/qtruby/examples/opengl/textures/window.rb +77 -0
  742. data/ext/ruby/qtruby/examples/painting/basicdrawing/images/brick.png +0 -0
  743. data/ext/ruby/qtruby/examples/painting/basicdrawing/images/qt-logo.png +0 -0
  744. data/ext/ruby/qtruby/examples/painting/basicdrawing/main.rb +32 -0
  745. data/ext/ruby/qtruby/examples/painting/basicdrawing/renderarea.rb +166 -0
  746. data/ext/ruby/qtruby/examples/painting/basicdrawing/window.rb +215 -0
  747. data/ext/ruby/qtruby/examples/painting/concentriccircles/circlewidget.rb +88 -0
  748. data/ext/ruby/qtruby/examples/painting/concentriccircles/main.rb +32 -0
  749. data/ext/ruby/qtruby/examples/painting/concentriccircles/window.rb +72 -0
  750. data/ext/ruby/qtruby/examples/painting/fontsampler/main.rb +32 -0
  751. data/ext/ruby/qtruby/examples/painting/fontsampler/mainwindow.rb +368 -0
  752. data/ext/ruby/qtruby/examples/painting/fontsampler/mainwindowbase.ui +136 -0
  753. data/ext/ruby/qtruby/examples/painting/fontsampler/makefile +8 -0
  754. data/ext/ruby/qtruby/examples/painting/fontsampler/previewdialog.rb +256 -0
  755. data/ext/ruby/qtruby/examples/painting/fontsampler/previewdialogbase.ui +224 -0
  756. data/ext/ruby/qtruby/examples/painting/fontsampler/previewlabel.rb +43 -0
  757. data/ext/ruby/qtruby/examples/painting/imagecomposition/imagecomposer.rb +152 -0
  758. data/ext/ruby/qtruby/examples/painting/imagecomposition/imagecomposition.qrc +6 -0
  759. data/ext/ruby/qtruby/examples/painting/imagecomposition/images/background.png +0 -0
  760. data/ext/ruby/qtruby/examples/painting/imagecomposition/images/blackrectangle.png +0 -0
  761. data/ext/ruby/qtruby/examples/painting/imagecomposition/images/butterfly.png +0 -0
  762. data/ext/ruby/qtruby/examples/painting/imagecomposition/images/checker.png +0 -0
  763. data/ext/ruby/qtruby/examples/painting/imagecomposition/main.rb +33 -0
  764. data/ext/ruby/qtruby/examples/painting/imagecomposition/makefile +2 -0
  765. data/ext/ruby/qtruby/examples/painting/painterpaths/main.rb +32 -0
  766. data/ext/ruby/qtruby/examples/painting/painterpaths/renderarea.rb +97 -0
  767. data/ext/ruby/qtruby/examples/painting/painterpaths/window.rb +247 -0
  768. data/ext/ruby/qtruby/examples/painting/svgviewer/files/bubbles.svg +212 -0
  769. data/ext/ruby/qtruby/examples/painting/svgviewer/files/cubic.svg +77 -0
  770. data/ext/ruby/qtruby/examples/painting/svgviewer/files/spheres.svg +79 -0
  771. data/ext/ruby/qtruby/examples/painting/svgviewer/main.rb +38 -0
  772. data/ext/ruby/qtruby/examples/painting/svgviewer/mainwindow.rb +99 -0
  773. data/ext/ruby/qtruby/examples/painting/svgviewer/makefile +2 -0
  774. data/ext/ruby/qtruby/examples/painting/svgviewer/svgview.rb +156 -0
  775. data/ext/ruby/qtruby/examples/painting/svgviewer/svgviewer.qrc +6 -0
  776. data/ext/ruby/qtruby/examples/painting/svgviewer/svgwindow.rb +87 -0
  777. data/ext/ruby/qtruby/examples/painting/transformations/main.rb +32 -0
  778. data/ext/ruby/qtruby/examples/painting/transformations/renderarea.rb +127 -0
  779. data/ext/ruby/qtruby/examples/painting/transformations/window.rb +153 -0
  780. data/ext/ruby/qtruby/examples/passivepopup/passivepopup.rb +38 -0
  781. data/ext/ruby/qtruby/examples/qdbus/chat/chat.rb +146 -0
  782. data/ext/ruby/qtruby/examples/qdbus/chat/chat_adaptor.rb +12 -0
  783. data/ext/ruby/qtruby/examples/qdbus/chat/chat_interface.rb +13 -0
  784. data/ext/ruby/qtruby/examples/qdbus/chat/chatmainwindow.ui +184 -0
  785. data/ext/ruby/qtruby/examples/qdbus/chat/chatsetnickname.ui +145 -0
  786. data/ext/ruby/qtruby/examples/qdbus/chat/makefile +8 -0
  787. data/ext/ruby/qtruby/examples/qdbus/complexpingpong/complexping.rb +92 -0
  788. data/ext/ruby/qtruby/examples/qdbus/complexpingpong/complexpong.rb +83 -0
  789. data/ext/ruby/qtruby/examples/qdbus/complexpingpong/ping-common.rb +1 -0
  790. data/ext/ruby/qtruby/examples/qdbus/listnames/listnames.rb +69 -0
  791. data/ext/ruby/qtruby/examples/qdbus/pingpong/ping-common.rb +1 -0
  792. data/ext/ruby/qtruby/examples/qdbus/pingpong/ping.rb +52 -0
  793. data/ext/ruby/qtruby/examples/qdbus/pingpong/pong.rb +55 -0
  794. data/ext/ruby/qtruby/examples/qdbus/remotecontrolledcar/car/car.rb +151 -0
  795. data/ext/ruby/qtruby/examples/qdbus/remotecontrolledcar/car/main.rb +50 -0
  796. data/ext/ruby/qtruby/examples/qdbus/remotecontrolledcar/controller/controller.rb +66 -0
  797. data/ext/ruby/qtruby/examples/qdbus/remotecontrolledcar/controller/controller.ui +61 -0
  798. data/ext/ruby/qtruby/examples/qdbus/remotecontrolledcar/controller/main.rb +32 -0
  799. data/ext/ruby/qtruby/examples/qdbus/remotecontrolledcar/controller/makefile +2 -0
  800. data/ext/ruby/qtruby/examples/qtscribble/scribble.rb +270 -0
  801. data/ext/ruby/qtruby/examples/richtext/calendar/main.rb +33 -0
  802. data/ext/ruby/qtruby/examples/richtext/calendar/mainwindow.rb +173 -0
  803. data/ext/ruby/qtruby/examples/richtext/orderform/detailsdialog.rb +130 -0
  804. data/ext/ruby/qtruby/examples/richtext/orderform/main.rb +34 -0
  805. data/ext/ruby/qtruby/examples/richtext/orderform/mainwindow.rb +194 -0
  806. data/ext/ruby/qtruby/examples/richtext/syntaxhighlighter/examples/example +79 -0
  807. data/ext/ruby/qtruby/examples/richtext/syntaxhighlighter/highlighter.rb +90 -0
  808. data/ext/ruby/qtruby/examples/richtext/syntaxhighlighter/main.rb +34 -0
  809. data/ext/ruby/qtruby/examples/richtext/syntaxhighlighter/mainwindow.rb +105 -0
  810. data/ext/ruby/qtruby/examples/ruboids/Manifest +26 -0
  811. data/ext/ruby/qtruby/examples/ruboids/README +53 -0
  812. data/ext/ruby/qtruby/examples/ruboids/TODO +29 -0
  813. data/ext/ruby/qtruby/examples/ruboids/boids.properties +33 -0
  814. data/ext/ruby/qtruby/examples/ruboids/generateManifest.rb +42 -0
  815. data/ext/ruby/qtruby/examples/ruboids/index.html +147 -0
  816. data/ext/ruby/qtruby/examples/ruboids/release.rb +152 -0
  817. data/ext/ruby/qtruby/examples/ruboids/ruboids/Boid.rb +141 -0
  818. data/ext/ruby/qtruby/examples/ruboids/ruboids/BoidView.rb +159 -0
  819. data/ext/ruby/qtruby/examples/ruboids/ruboids/Camera.rb +24 -0
  820. data/ext/ruby/qtruby/examples/ruboids/ruboids/CameraDialog.rb +218 -0
  821. data/ext/ruby/qtruby/examples/ruboids/ruboids/Canvas.rb +143 -0
  822. data/ext/ruby/qtruby/examples/ruboids/ruboids/Cloud.rb +61 -0
  823. data/ext/ruby/qtruby/examples/ruboids/ruboids/CloudView.rb +54 -0
  824. data/ext/ruby/qtruby/examples/ruboids/ruboids/Flock.rb +47 -0
  825. data/ext/ruby/qtruby/examples/ruboids/ruboids/Graphics.rb +278 -0
  826. data/ext/ruby/qtruby/examples/ruboids/ruboids/Params.rb +87 -0
  827. data/ext/ruby/qtruby/examples/ruboids/ruboids/Point.rb +153 -0
  828. data/ext/ruby/qtruby/examples/ruboids/ruboids/Thing.rb +34 -0
  829. data/ext/ruby/qtruby/examples/ruboids/ruboids/Triangle.rb +21 -0
  830. data/ext/ruby/qtruby/examples/ruboids/ruboids/View.rb +88 -0
  831. data/ext/ruby/qtruby/examples/ruboids/ruboids/World.rb +82 -0
  832. data/ext/ruby/qtruby/examples/ruboids/ruboids/WorldWindow.rb +52 -0
  833. data/ext/ruby/qtruby/examples/ruboids/ruboids/info.rb +12 -0
  834. data/ext/ruby/qtruby/examples/ruboids/ruboids/ruboids.rb +29 -0
  835. data/ext/ruby/qtruby/examples/textedit/textedit.rb +150 -0
  836. data/ext/ruby/qtruby/examples/tutorial/t1/t1.rb +10 -0
  837. data/ext/ruby/qtruby/examples/tutorial/t10/cannon.rb +72 -0
  838. data/ext/ruby/qtruby/examples/tutorial/t10/lcdrange.rb +45 -0
  839. data/ext/ruby/qtruby/examples/tutorial/t10/t10.rb +55 -0
  840. data/ext/ruby/qtruby/examples/tutorial/t11/cannon.rb +124 -0
  841. data/ext/ruby/qtruby/examples/tutorial/t11/lcdrange.rb +45 -0
  842. data/ext/ruby/qtruby/examples/tutorial/t11/t11.rb +65 -0
  843. data/ext/ruby/qtruby/examples/tutorial/t12/cannon.rb +158 -0
  844. data/ext/ruby/qtruby/examples/tutorial/t12/lcdrange.rb +59 -0
  845. data/ext/ruby/qtruby/examples/tutorial/t12/t12.rb +66 -0
  846. data/ext/ruby/qtruby/examples/tutorial/t13/cannon.rb +208 -0
  847. data/ext/ruby/qtruby/examples/tutorial/t13/gamebrd.rb +113 -0
  848. data/ext/ruby/qtruby/examples/tutorial/t13/lcdrange.rb +60 -0
  849. data/ext/ruby/qtruby/examples/tutorial/t13/t13.rb +11 -0
  850. data/ext/ruby/qtruby/examples/tutorial/t14/cannon.rb +263 -0
  851. data/ext/ruby/qtruby/examples/tutorial/t14/gamebrd.rb +123 -0
  852. data/ext/ruby/qtruby/examples/tutorial/t14/lcdrange.rb +63 -0
  853. data/ext/ruby/qtruby/examples/tutorial/t14/t14.rb +11 -0
  854. data/ext/ruby/qtruby/examples/tutorial/t2/t2.rb +16 -0
  855. data/ext/ruby/qtruby/examples/tutorial/t3/t3.rb +18 -0
  856. data/ext/ruby/qtruby/examples/tutorial/t4/t4.rb +25 -0
  857. data/ext/ruby/qtruby/examples/tutorial/t5/t5.rb +37 -0
  858. data/ext/ruby/qtruby/examples/tutorial/t6/t6.rb +52 -0
  859. data/ext/ruby/qtruby/examples/tutorial/t7/lcdrange.rb +32 -0
  860. data/ext/ruby/qtruby/examples/tutorial/t7/t7.rb +42 -0
  861. data/ext/ruby/qtruby/examples/tutorial/t8/cannon.rb +38 -0
  862. data/ext/ruby/qtruby/examples/tutorial/t8/lcdrange.rb +45 -0
  863. data/ext/ruby/qtruby/examples/tutorial/t8/t8.rb +43 -0
  864. data/ext/ruby/qtruby/examples/tutorial/t9/cannon.rb +45 -0
  865. data/ext/ruby/qtruby/examples/tutorial/t9/lcdrange.rb +46 -0
  866. data/ext/ruby/qtruby/examples/tutorial/t9/t9.rb +43 -0
  867. data/ext/ruby/qtruby/examples/widgets/analogclock/analogclock.rb +94 -0
  868. data/ext/ruby/qtruby/examples/widgets/analogclock/main.rb +9 -0
  869. data/ext/ruby/qtruby/examples/widgets/calculator/button.rb +45 -0
  870. data/ext/ruby/qtruby/examples/widgets/calculator/calculator.rb +382 -0
  871. data/ext/ruby/qtruby/examples/widgets/calculator/main.rb +32 -0
  872. data/ext/ruby/qtruby/examples/widgets/charactermap/characterwidget.rb +110 -0
  873. data/ext/ruby/qtruby/examples/widgets/charactermap/main.rb +32 -0
  874. data/ext/ruby/qtruby/examples/widgets/charactermap/mainwindow.rb +118 -0
  875. data/ext/ruby/qtruby/examples/widgets/digitalclock/digitalclock.rb +30 -0
  876. data/ext/ruby/qtruby/examples/widgets/digitalclock/main.rb +9 -0
  877. data/ext/ruby/qtruby/examples/widgets/groupbox/main.rb +32 -0
  878. data/ext/ruby/qtruby/examples/widgets/groupbox/window.rb +134 -0
  879. data/ext/ruby/qtruby/examples/widgets/icons/iconpreviewarea.rb +111 -0
  880. data/ext/ruby/qtruby/examples/widgets/icons/iconsizespinbox.rb +39 -0
  881. data/ext/ruby/qtruby/examples/widgets/icons/imagedelegate.rb +73 -0
  882. data/ext/ruby/qtruby/examples/widgets/icons/images/designer.png +0 -0
  883. data/ext/ruby/qtruby/examples/widgets/icons/images/find_disabled.png +0 -0
  884. data/ext/ruby/qtruby/examples/widgets/icons/images/find_normal.png +0 -0
  885. data/ext/ruby/qtruby/examples/widgets/icons/images/monkey_off_128x128.png +0 -0
  886. data/ext/ruby/qtruby/examples/widgets/icons/images/monkey_off_16x16.png +0 -0
  887. data/ext/ruby/qtruby/examples/widgets/icons/images/monkey_off_32x32.png +0 -0
  888. data/ext/ruby/qtruby/examples/widgets/icons/images/monkey_off_64x64.png +0 -0
  889. data/ext/ruby/qtruby/examples/widgets/icons/images/monkey_on_128x128.png +0 -0
  890. data/ext/ruby/qtruby/examples/widgets/icons/images/monkey_on_16x16.png +0 -0
  891. data/ext/ruby/qtruby/examples/widgets/icons/images/monkey_on_32x32.png +0 -0
  892. data/ext/ruby/qtruby/examples/widgets/icons/images/monkey_on_64x64.png +0 -0
  893. data/ext/ruby/qtruby/examples/widgets/icons/images/qtopia_16x16.png +0 -0
  894. data/ext/ruby/qtruby/examples/widgets/icons/images/qtopia_32x32.png +0 -0
  895. data/ext/ruby/qtruby/examples/widgets/icons/images/qtopia_48x48.png +0 -0
  896. data/ext/ruby/qtruby/examples/widgets/icons/main.rb +32 -0
  897. data/ext/ruby/qtruby/examples/widgets/icons/mainwindow.rb +351 -0
  898. data/ext/ruby/qtruby/examples/widgets/imageviewer/imageviewer.rb +219 -0
  899. data/ext/ruby/qtruby/examples/widgets/imageviewer/main.rb +32 -0
  900. data/ext/ruby/qtruby/examples/widgets/lineedits/main.rb +32 -0
  901. data/ext/ruby/qtruby/examples/widgets/lineedits/window.rb +199 -0
  902. data/ext/ruby/qtruby/examples/widgets/movie/images/open.png +0 -0
  903. data/ext/ruby/qtruby/examples/widgets/movie/images/pause.png +0 -0
  904. data/ext/ruby/qtruby/examples/widgets/movie/images/play.png +0 -0
  905. data/ext/ruby/qtruby/examples/widgets/movie/images/quit.png +0 -0
  906. data/ext/ruby/qtruby/examples/widgets/movie/images/stop.png +0 -0
  907. data/ext/ruby/qtruby/examples/widgets/movie/main.rb +32 -0
  908. data/ext/ruby/qtruby/examples/widgets/movie/movieplayer.rb +201 -0
  909. data/ext/ruby/qtruby/examples/widgets/movie/movies/fire.mng +0 -0
  910. data/ext/ruby/qtruby/examples/widgets/screenshot/main.rb +32 -0
  911. data/ext/ruby/qtruby/examples/widgets/screenshot/screenshot.rb +155 -0
  912. data/ext/ruby/qtruby/examples/widgets/scribble/main.rb +32 -0
  913. data/ext/ruby/qtruby/examples/widgets/scribble/mainwindow.rb +202 -0
  914. data/ext/ruby/qtruby/examples/widgets/scribble/scribblearea.rb +154 -0
  915. data/ext/ruby/qtruby/examples/widgets/sliders/main.rb +32 -0
  916. data/ext/ruby/qtruby/examples/widgets/sliders/slidersgroup.rb +97 -0
  917. data/ext/ruby/qtruby/examples/widgets/sliders/window.rb +124 -0
  918. data/ext/ruby/qtruby/examples/widgets/spinboxes/main.rb +32 -0
  919. data/ext/ruby/qtruby/examples/widgets/spinboxes/window.rb +213 -0
  920. data/ext/ruby/qtruby/examples/widgets/tetrix/main.rb +33 -0
  921. data/ext/ruby/qtruby/examples/widgets/tetrix/tetrixboard.rb +346 -0
  922. data/ext/ruby/qtruby/examples/widgets/tetrix/tetrixpiece.rb +135 -0
  923. data/ext/ruby/qtruby/examples/widgets/tetrix/tetrixwindow.rb +88 -0
  924. data/ext/ruby/qtruby/examples/widgets/tooltips/images/circle.png +0 -0
  925. data/ext/ruby/qtruby/examples/widgets/tooltips/images/square.png +0 -0
  926. data/ext/ruby/qtruby/examples/widgets/tooltips/images/triangle.png +0 -0
  927. data/ext/ruby/qtruby/examples/widgets/tooltips/main.rb +32 -0
  928. data/ext/ruby/qtruby/examples/widgets/tooltips/shapeitem.rb +31 -0
  929. data/ext/ruby/qtruby/examples/widgets/tooltips/sortingbox.rb +222 -0
  930. data/ext/ruby/qtruby/examples/widgets/wiggly/dialog.rb +48 -0
  931. data/ext/ruby/qtruby/examples/widgets/wiggly/main.rb +9 -0
  932. data/ext/ruby/qtruby/examples/widgets/wiggly/wigglywidget.rb +76 -0
  933. data/ext/ruby/qtruby/examples/widgets/windowflags/controllerwindow.rb +195 -0
  934. data/ext/ruby/qtruby/examples/widgets/windowflags/main.rb +32 -0
  935. data/ext/ruby/qtruby/examples/widgets/windowflags/previewwindow.rb +103 -0
  936. data/ext/ruby/qtruby/examples/xml/dombookmarks/frank.xbel +230 -0
  937. data/ext/ruby/qtruby/examples/xml/dombookmarks/jennifer.xbel +93 -0
  938. data/ext/ruby/qtruby/examples/xml/dombookmarks/main.rb +34 -0
  939. data/ext/ruby/qtruby/examples/xml/dombookmarks/mainwindow.rb +129 -0
  940. data/ext/ruby/qtruby/examples/xml/dombookmarks/xbeltree.rb +172 -0
  941. data/ext/ruby/qtruby/examples/xml/saxbookmarks/frank.xbel +230 -0
  942. data/ext/ruby/qtruby/examples/xml/saxbookmarks/jennifer.xbel +93 -0
  943. data/ext/ruby/qtruby/examples/xml/saxbookmarks/main.rb +34 -0
  944. data/ext/ruby/qtruby/examples/xml/saxbookmarks/mainwindow.rb +144 -0
  945. data/ext/ruby/qtruby/examples/xml/saxbookmarks/xbelgenerator.rb +95 -0
  946. data/ext/ruby/qtruby/examples/xml/saxbookmarks/xbelhandler.rb +122 -0
  947. data/ext/ruby/qtruby/rails_support/CMakeLists.txt +1 -0
  948. data/ext/ruby/qtruby/rails_support/active_item_model.rb +234 -0
  949. data/ext/ruby/qtruby/rails_support/active_table_model.rb +122 -0
  950. data/ext/ruby/qtruby/src/CMakeLists.txt +103 -0
  951. data/ext/ruby/qtruby/src/Qt.cpp +1279 -0
  952. data/ext/ruby/qtruby/src/extconf.rb +11 -0
  953. data/ext/ruby/qtruby/src/handlers.cpp +2622 -0
  954. data/ext/ruby/qtruby/src/lib/CMakeLists.txt +16 -0
  955. data/ext/ruby/qtruby/src/lib/Qt.rb +1 -0
  956. data/ext/ruby/qtruby/src/lib/Qt/CMakeLists.txt +9 -0
  957. data/ext/ruby/qtruby/src/lib/Qt/qtruby4.rb +3177 -0
  958. data/ext/ruby/qtruby/src/lib/Qt3.rb +6 -0
  959. data/ext/ruby/qtruby/src/lib/Qt4.rb +6 -0
  960. data/ext/ruby/qtruby/src/marshall.h +66 -0
  961. data/ext/ruby/qtruby/src/marshall_basetypes.h +208 -0
  962. data/ext/ruby/qtruby/src/marshall_complex.h +175 -0
  963. data/ext/ruby/qtruby/src/marshall_macros.h +647 -0
  964. data/ext/ruby/qtruby/src/marshall_primitives.h +290 -0
  965. data/ext/ruby/qtruby/src/marshall_types.cpp +815 -0
  966. data/ext/ruby/qtruby/src/marshall_types.h +240 -0
  967. data/ext/ruby/qtruby/src/qtruby.cpp +2483 -0
  968. data/ext/ruby/qtruby/src/qtruby.h +185 -0
  969. data/ext/ruby/qtruby/src/smokeruby.h +164 -0
  970. data/ext/ruby/qtruby/test/opoverloading.rb +46 -0
  971. data/ext/ruby/qtruby/test/unittests.rb +151 -0
  972. data/ext/ruby/qtruby/tools/CMakeLists.txt +2 -0
  973. data/ext/ruby/qtruby/tools/rbrcc/CMakeLists.txt +6 -0
  974. data/ext/ruby/qtruby/tools/rbrcc/Messages.sh +7 -0
  975. data/ext/ruby/qtruby/tools/rbrcc/main.cpp +173 -0
  976. data/ext/ruby/qtruby/tools/rbrcc/rbrcc.pro +14 -0
  977. data/ext/ruby/qtruby/tools/rbrcc/rcc.cpp +648 -0
  978. data/ext/ruby/qtruby/tools/rbrcc/rcc.h +165 -0
  979. data/ext/ruby/qtruby/tools/rbuic/CMakeLists.txt +35 -0
  980. data/ext/ruby/qtruby/tools/rbuic/LICENSE.GPL +280 -0
  981. data/ext/ruby/qtruby/tools/rbuic/Messages.sh +7 -0
  982. data/ext/ruby/qtruby/tools/rbuic/TODO +4 -0
  983. data/ext/ruby/qtruby/tools/rbuic/customwidgetsinfo.cpp +106 -0
  984. data/ext/ruby/qtruby/tools/rbuic/customwidgetsinfo.h +95 -0
  985. data/ext/ruby/qtruby/tools/rbuic/databaseinfo.cpp +102 -0
  986. data/ext/ruby/qtruby/tools/rbuic/databaseinfo.h +85 -0
  987. data/ext/ruby/qtruby/tools/rbuic/driver.cpp +384 -0
  988. data/ext/ruby/qtruby/tools/rbuic/driver.h +141 -0
  989. data/ext/ruby/qtruby/tools/rbuic/globaldefs.h +60 -0
  990. data/ext/ruby/qtruby/tools/rbuic/main.cpp +201 -0
  991. data/ext/ruby/qtruby/tools/rbuic/option.h +107 -0
  992. data/ext/ruby/qtruby/tools/rbuic/rbuic.pri +23 -0
  993. data/ext/ruby/qtruby/tools/rbuic/rbuic4.pro +43 -0
  994. data/ext/ruby/qtruby/tools/rbuic/ruby/rbextractimages.cpp +150 -0
  995. data/ext/ruby/qtruby/tools/rbuic/ruby/rbextractimages.h +83 -0
  996. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwritedeclaration.cpp +217 -0
  997. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwritedeclaration.h +85 -0
  998. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteicondata.cpp +185 -0
  999. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteicondata.h +86 -0
  1000. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteicondeclaration.cpp +88 -0
  1001. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteicondeclaration.h +83 -0
  1002. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteiconinitialization.cpp +126 -0
  1003. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteiconinitialization.h +87 -0
  1004. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteinitialization.cpp +2478 -0
  1005. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteinitialization.h +314 -0
  1006. data/ext/ruby/qtruby/tools/rbuic/ruby/ruby.pri +18 -0
  1007. data/ext/ruby/qtruby/tools/rbuic/treewalker.cpp +318 -0
  1008. data/ext/ruby/qtruby/tools/rbuic/treewalker.h +139 -0
  1009. data/ext/ruby/qtruby/tools/rbuic/ui4.cpp +7623 -0
  1010. data/ext/ruby/qtruby/tools/rbuic/ui4.h +3180 -0
  1011. data/ext/ruby/qtruby/tools/rbuic/uic.cpp +438 -0
  1012. data/ext/ruby/qtruby/tools/rbuic/uic.h +154 -0
  1013. data/ext/ruby/qtruby/tools/rbuic/utils.h +125 -0
  1014. data/ext/ruby/qtruby/tools/rbuic/validator.cpp +100 -0
  1015. data/ext/ruby/qtruby/tools/rbuic/validator.h +80 -0
  1016. data/ext/ruby/qtscript/CMakeLists.txt +19 -0
  1017. data/ext/ruby/qtscript/qtscript.cpp +82 -0
  1018. data/ext/ruby/qtscript/qtscript.rb +40 -0
  1019. data/ext/ruby/qtscript/qtscripthandlers.cpp +36 -0
  1020. data/ext/ruby/qtscript/smokedata.cpp +1403 -0
  1021. data/ext/ruby/qttest/CMakeLists.txt +18 -0
  1022. data/ext/ruby/qttest/ChangeLog +9 -0
  1023. data/ext/ruby/qttest/examples/myfirsttest.rb +30 -0
  1024. data/ext/ruby/qttest/qttest.cpp +82 -0
  1025. data/ext/ruby/qttest/qttest.rb +166 -0
  1026. data/ext/ruby/qttest/qttesthandlers.cpp +35 -0
  1027. data/ext/ruby/qtuitools/CMakeLists.txt +16 -0
  1028. data/ext/ruby/qtuitools/qtuitools.cpp +82 -0
  1029. data/ext/ruby/qtuitools/qtuitools.rb +17 -0
  1030. data/ext/ruby/qtuitools/qtuitoolshandlers.cpp +31 -0
  1031. data/ext/ruby/qtwebkit/CMakeLists.txt +17 -0
  1032. data/ext/ruby/qtwebkit/qtwebkit.cpp +66 -0
  1033. data/ext/ruby/qtwebkit/qtwebkit.rb +17 -0
  1034. data/ext/ruby/qtwebkit/qtwebkithandlers.cpp +39 -0
  1035. data/ext/smoke/CMakeLists.txt +35 -0
  1036. data/ext/smoke/deptool/CMakeLists.txt +7 -0
  1037. data/ext/smoke/deptool/main.cpp +128 -0
  1038. data/ext/smoke/qt_smoke.h +16 -0
  1039. data/ext/smoke/qtcore/CMakeLists.txt +88 -0
  1040. data/ext/smoke/qtcore/QtGuess.txt +181 -0
  1041. data/ext/smoke/qtcore/config.xml.cmake +10 -0
  1042. data/ext/smoke/qtcore/qt-config.xml.cmake +21 -0
  1043. data/ext/smoke/qtcore/qtcore_includes.h +1 -0
  1044. data/ext/smoke/qtcore/smokeconfig.xml +189 -0
  1045. data/ext/smoke/qtcore/tests/CMakeLists.txt +13 -0
  1046. data/ext/smoke/qtcore/tests/test.cpp +846 -0
  1047. data/ext/smoke/qtcore_smoke.h +16 -0
  1048. data/ext/smoke/qtdbus/CMakeLists.txt +38 -0
  1049. data/ext/smoke/qtdbus/config.xml.cmake +11 -0
  1050. data/ext/smoke/qtdbus/qtdbus_includes.h +2 -0
  1051. data/ext/smoke/qtdbus/smokeconfig.xml +63 -0
  1052. data/ext/smoke/qtdbus_smoke.h +16 -0
  1053. data/ext/smoke/qtgui/CMakeLists.txt +76 -0
  1054. data/ext/smoke/qtgui/config.xml.cmake +11 -0
  1055. data/ext/smoke/qtgui/qtgui_includes.h +7 -0
  1056. data/ext/smoke/qtgui/smokeconfig.xml +490 -0
  1057. data/ext/smoke/qtgui_smoke.h +16 -0
  1058. data/ext/smoke/qtmultimedia/CMakeLists.txt +42 -0
  1059. data/ext/smoke/qtmultimedia/config.xml.cmake +12 -0
  1060. data/ext/smoke/qtmultimedia/qtmultimedia_includes.h +3 -0
  1061. data/ext/smoke/qtmultimedia/smokeconfig.xml +50 -0
  1062. data/ext/smoke/qtmultimedia_smoke.h +16 -0
  1063. data/ext/smoke/qtnetwork/CMakeLists.txt +38 -0
  1064. data/ext/smoke/qtnetwork/config.xml.cmake +11 -0
  1065. data/ext/smoke/qtnetwork/qtnetwork_includes.h +2 -0
  1066. data/ext/smoke/qtnetwork/smokeconfig.xml +76 -0
  1067. data/ext/smoke/qtnetwork_smoke.h +16 -0
  1068. data/ext/smoke/qtopengl/CMakeLists.txt +43 -0
  1069. data/ext/smoke/qtopengl/config.xml.cmake +12 -0
  1070. data/ext/smoke/qtopengl/qtopengl_includes.h +3 -0
  1071. data/ext/smoke/qtopengl/smokeconfig.xml +56 -0
  1072. data/ext/smoke/qtopengl_smoke.h +16 -0
  1073. data/ext/smoke/qtscript/CMakeLists.txt +31 -0
  1074. data/ext/smoke/qtscript/config.xml.cmake +11 -0
  1075. data/ext/smoke/qtscript/qtscript_includes.h +14 -0
  1076. data/ext/smoke/qtscript/smokeconfig.xml +39 -0
  1077. data/ext/smoke/qtscript_smoke.h +16 -0
  1078. data/ext/smoke/qtsql/CMakeLists.txt +41 -0
  1079. data/ext/smoke/qtsql/config.xml.cmake +11 -0
  1080. data/ext/smoke/qtsql/qtsql_includes.h +2 -0
  1081. data/ext/smoke/qtsql/smokeconfig.xml +56 -0
  1082. data/ext/smoke/qtsql_smoke.h +16 -0
  1083. data/ext/smoke/qtsvg/CMakeLists.txt +43 -0
  1084. data/ext/smoke/qtsvg/config.xml.cmake +12 -0
  1085. data/ext/smoke/qtsvg/qtsvg_includes.h +3 -0
  1086. data/ext/smoke/qtsvg/smokeconfig.xml +45 -0
  1087. data/ext/smoke/qtsvg_smoke.h +16 -0
  1088. data/ext/smoke/qttest/CMakeLists.txt +35 -0
  1089. data/ext/smoke/qttest/config.xml.cmake +12 -0
  1090. data/ext/smoke/qttest/qttest_includes.h +14 -0
  1091. data/ext/smoke/qttest/smokeconfig.xml +36 -0
  1092. data/ext/smoke/qttest_smoke.h +16 -0
  1093. data/ext/smoke/qtuitools/CMakeLists.txt +30 -0
  1094. data/ext/smoke/qtuitools/config.xml.cmake +12 -0
  1095. data/ext/smoke/qtuitools/qtuitools_includes.h +1 -0
  1096. data/ext/smoke/qtuitools/smokeconfig.xml +20 -0
  1097. data/ext/smoke/qtuitools_smoke.h +16 -0
  1098. data/ext/smoke/qtwebkit/CMakeLists.txt +36 -0
  1099. data/ext/smoke/qtwebkit/config.xml.cmake +11 -0
  1100. data/ext/smoke/qtwebkit/qtwebkit_includes.h +1 -0
  1101. data/ext/smoke/qtwebkit/smokeconfig.xml +45 -0
  1102. data/ext/smoke/qtwebkit_smoke.h +16 -0
  1103. data/ext/smoke/qtxml/CMakeLists.txt +41 -0
  1104. data/ext/smoke/qtxml/config.xml.cmake +11 -0
  1105. data/ext/smoke/qtxml/qtxml_includes.h +2 -0
  1106. data/ext/smoke/qtxml/smokeconfig.xml +70 -0
  1107. data/ext/smoke/qtxml_smoke.h +16 -0
  1108. data/ext/smoke/qtxmlpatterns/CMakeLists.txt +42 -0
  1109. data/ext/smoke/qtxmlpatterns/config.xml.cmake +12 -0
  1110. data/ext/smoke/qtxmlpatterns/qtxmlpatterns_includes.h +3 -0
  1111. data/ext/smoke/qtxmlpatterns/smokeconfig.xml +80 -0
  1112. data/ext/smoke/qtxmlpatterns_smoke.h +16 -0
  1113. data/ext/smoke/smoke.h +557 -0
  1114. data/ext/smoke/smokeapi/CMakeLists.txt +9 -0
  1115. data/ext/smoke/smokeapi/main.cpp +309 -0
  1116. data/ext/smoke/smokebase/CMakeLists.txt +11 -0
  1117. data/ext/smoke/smokebase/smokebase.cpp +6 -0
  1118. data/ext/smoke/solid_smoke.h +16 -0
  1119. data/extconf.rb +231 -0
  1120. data/lib/Qt.rb +1 -0
  1121. data/lib/Qt/qtruby4.rb +3177 -0
  1122. data/lib/Qt4.rb +20 -0
  1123. data/lib/qtbindings_version.rb +2 -0
  1124. data/lib/qtscript/qtscript.rb +40 -0
  1125. data/lib/qttest/qttest.rb +166 -0
  1126. data/lib/qtuitools/qtuitools.rb +17 -0
  1127. data/lib/qtwebkit/qtwebkit.rb +17 -0
  1128. data/qtbindings.gemspec +18 -0
  1129. data/qtbindingsnative.gemspec +18 -0
  1130. metadata +1202 -0
@@ -0,0 +1,11 @@
1
+ require 'mkmf'
2
+ dir_config('smoke')
3
+ dir_config('qt')
4
+
5
+ # For Linux, BSD*, Mac OS X etc:
6
+ $LOCAL_LIBS += '-lsmokeqt -lQtCore -lQtGui -lQtNetwork -lQtOpenGL -lQtSql -lQtXml -lstdc++'
7
+
8
+ # For Windows the Qt library names end in '4':
9
+ # $LOCAL_LIBS += '-lsmokeqt -lQtCore4 -lQtGui4 -lQtNetwork4 -lQtOpenGL4 -lQtSql4 -lQtXml4 -lstdc++'
10
+
11
+ create_makefile("qtruby4")
@@ -0,0 +1,2622 @@
1
+ /***************************************************************************
2
+ * *
3
+ * This program is free software; you can redistribute it and/or modify *
4
+ * it under the terms of the GNU Lesser General Public License as *
5
+ * published by the Free Software Foundation; either version 2 of the *
6
+ * License, or (at your option) any later version. *
7
+ * *
8
+ ***************************************************************************/
9
+
10
+ #include <QtCore/qdir.h>
11
+ #include <QtCore/qhash.h>
12
+ #include <QtCore/qlinkedlist.h>
13
+ #include <QtCore/qmetaobject.h>
14
+ #include <QtCore/qobject.h>
15
+ #include <QtCore/qpair.h>
16
+ #include <QtCore/qprocess.h>
17
+ #include <QtCore/qregexp.h>
18
+ #include <QtCore/qstring.h>
19
+ #include <QtCore/qtextcodec.h>
20
+ #include <QtCore/qurl.h>
21
+ #include <QtGui/qabstractbutton.h>
22
+ #include <QtGui/qaction.h>
23
+ #include <QtGui/qapplication.h>
24
+ #include <QtGui/qdockwidget.h>
25
+ #include <QtGui/qevent.h>
26
+ #include <QtGui/qlayout.h>
27
+ #include <QtGui/qlistwidget.h>
28
+ #include <QtGui/qpainter.h>
29
+ #include <QtGui/qpalette.h>
30
+ #include <QtGui/qpixmap.h>
31
+ #include <QtGui/qpolygon.h>
32
+ #include <QtGui/qtabbar.h>
33
+ #include <QtGui/qtablewidget.h>
34
+ #include <QtGui/qtextedit.h>
35
+ #include <QtGui/qtextlayout.h>
36
+ #include <QtGui/qtextobject.h>
37
+ #include <QtGui/qtoolbar.h>
38
+ #include <QtGui/qtreewidget.h>
39
+ #include <QtGui/qwidget.h>
40
+ #include <QtNetwork/qhostaddress.h>
41
+ #include <QtNetwork/qnetworkinterface.h>
42
+ #include <QtNetwork/qurlinfo.h>
43
+
44
+
45
+ #if QT_VERSION >= 0x40200
46
+ #include <QtGui/qgraphicsitem.h>
47
+ #include <QtGui/qgraphicslayout.h>
48
+ #include <QtGui/qgraphicsscene.h>
49
+ #include <QtGui/qgraphicswidget.h>
50
+ #include <QtGui/qstandarditemmodel.h>
51
+ #include <QtGui/qundostack.h>
52
+ #endif
53
+
54
+ #if QT_VERSION >= 0x40300
55
+ #include <QtGui/qmdisubwindow.h>
56
+ #include <QtNetwork/qsslcertificate.h>
57
+ #include <QtNetwork/qsslcipher.h>
58
+ #include <QtNetwork/qsslerror.h>
59
+ #include <QtXml/qxmlstream.h>
60
+ #endif
61
+
62
+ #if QT_VERSION >= 0x040400
63
+ #include <QtGui/qprinterinfo.h>
64
+ #include <QtNetwork/qnetworkcookie.h>
65
+ #endif
66
+
67
+ #include <smoke/smoke.h>
68
+
69
+ #undef DEBUG
70
+ #ifndef _GNU_SOURCE
71
+ #define _GNU_SOURCE
72
+ #endif
73
+ #ifndef __USE_POSIX
74
+ #define __USE_POSIX
75
+ #endif
76
+ #ifndef __USE_XOPEN
77
+ #define __USE_XOPEN
78
+ #endif
79
+ #include <ruby.h>
80
+
81
+ #include "marshall.h"
82
+ #include "qtruby.h"
83
+ #include "smokeruby.h"
84
+ #include "marshall_basetypes.h"
85
+ #include "marshall_macros.h"
86
+
87
+ #ifndef HINT_BYTES
88
+ #define HINT_BYTES HINT_BYTE
89
+ #endif
90
+
91
+ extern "C" {
92
+ extern VALUE set_obj_info(const char * className, smokeruby_object * o);
93
+ extern VALUE qt_internal_module;
94
+ extern VALUE qvariant_class;
95
+ extern bool application_terminated;
96
+ }
97
+
98
+ extern void mapPointer(VALUE obj, smokeruby_object *o, Smoke::Index classId, void *lastptr);
99
+
100
+ void
101
+ mark_qobject_children(QObject * qobject)
102
+ {
103
+ VALUE obj;
104
+
105
+ const QList<QObject*> l = qobject->children();
106
+
107
+ if (l.count() == 0) {
108
+ return;
109
+ }
110
+
111
+ QObject *child;
112
+
113
+ for (int i=0; i < l.size(); ++i) {
114
+ child = l.at(i);
115
+ obj = getPointerObject(child);
116
+ if (obj != Qnil) {
117
+ if(do_debug & qtdb_gc) qWarning("Marking (%s*)%p -> %p", child->metaObject()->className(), child, (void*)obj);
118
+ rb_gc_mark(obj);
119
+ }
120
+
121
+ mark_qobject_children(child);
122
+ }
123
+ }
124
+
125
+ void
126
+ mark_qgraphicsitem_children(QGraphicsItem * item)
127
+ {
128
+ VALUE obj;
129
+
130
+ const QList<QGraphicsItem*> l = item->childItems();
131
+
132
+ if (l.count() == 0) {
133
+ return;
134
+ }
135
+
136
+ QGraphicsItem *child;
137
+
138
+ for (int i=0; i < l.size(); ++i) {
139
+ child = l.at(i);
140
+ obj = getPointerObject(child);
141
+ if (obj != Qnil) {
142
+ if(do_debug & qtdb_gc) qWarning("Marking (%s*)%p -> %p", "QGraphicsItem", child, (void*)obj);
143
+ rb_gc_mark(obj);
144
+ }
145
+
146
+ mark_qgraphicsitem_children(child);
147
+ }
148
+ }
149
+
150
+ void
151
+ mark_qtreewidgetitem_children(QTreeWidgetItem * item)
152
+ {
153
+ VALUE obj;
154
+ QTreeWidgetItem *child;
155
+
156
+ for (int i = 0; i < item->childCount(); i++) {
157
+ child = item->child(i);
158
+ obj = getPointerObject(child);
159
+ if (obj != Qnil) {
160
+ if(do_debug & qtdb_gc) qWarning("Marking (%s*)%p -> %p", "QTreeWidgetItem", child, (void*)obj);
161
+ rb_gc_mark(obj);
162
+ }
163
+
164
+ mark_qtreewidgetitem_children(child);
165
+ }
166
+ }
167
+
168
+ void
169
+ mark_qstandarditem_children(QStandardItem * item)
170
+ {
171
+ VALUE obj;
172
+
173
+ for (int row = 0; row < item->rowCount(); row++) {
174
+ for (int column = 0; column < item->columnCount(); column++) {
175
+ QStandardItem * child = item->child(row, column);
176
+ if (child != 0) {
177
+ if (child->hasChildren()) {
178
+ mark_qstandarditem_children(child);
179
+ }
180
+ obj = getPointerObject(child);
181
+ if (obj != Qnil) {
182
+ if (do_debug & qtdb_gc) qWarning("Marking (%s*)%p -> %p", "QStandardItem", item, (void*)obj);
183
+ rb_gc_mark(obj);
184
+ }
185
+ }
186
+ }
187
+ }
188
+ }
189
+
190
+ void
191
+ smokeruby_mark(void * p)
192
+ {
193
+ VALUE obj;
194
+ smokeruby_object * o = (smokeruby_object *) p;
195
+ const char *className = o->smoke->classes[o->classId].className;
196
+
197
+ if (do_debug & qtdb_gc) qWarning("Checking for mark (%s*)%p", className, o->ptr);
198
+
199
+ if (o->ptr && o->allocated) {
200
+ if (o->smoke->isDerivedFrom(className, "QObject")) {
201
+ QObject * qobject = (QObject *) o->smoke->cast(o->ptr, o->classId, o->smoke->idClass("QObject", true).index);
202
+ // Only mark the QObject tree if the current item doesn't have a parent or the parent isn't wrapped by the bindings.
203
+ // This avoids marking parts of a tree more than once.
204
+ if (qobject->parent() == 0 || getPointerObject(qobject->parent()) == Qnil) {
205
+ mark_qobject_children(qobject);
206
+ }
207
+ }
208
+
209
+ if (o->smoke->isDerivedFrom(className, "QWidget")) {
210
+ QWidget * widget = (QWidget *) o->smoke->cast(o->ptr, o->classId, o->smoke->idClass("QWidget", true).index);
211
+ QLayout * layout = widget->layout();
212
+ if (layout != 0) {
213
+ obj = getPointerObject(layout);
214
+ if (obj != Qnil) {
215
+ if (do_debug & qtdb_gc) qWarning("Marking (%s*)%p -> %p", "QLayout", layout, (void*)obj);
216
+ rb_gc_mark(obj);
217
+ }
218
+ }
219
+ }
220
+
221
+ if (o->smoke->isDerivedFrom(className, "QListWidget")) {
222
+ QListWidget * listwidget = (QListWidget *) o->smoke->cast(o->ptr, o->classId, o->smoke->idClass("QListWidget", true).index);
223
+
224
+ for (int i = 0; i < listwidget->count(); i++) {
225
+ QListWidgetItem * item = listwidget->item(i);
226
+ obj = getPointerObject(item);
227
+ if (obj != Qnil) {
228
+ if (do_debug & qtdb_gc) qWarning("Marking (%s*)%p -> %p", "QListWidgetItem", item, (void*)obj);
229
+ rb_gc_mark(obj);
230
+ }
231
+ }
232
+ return;
233
+ }
234
+
235
+ if (o->smoke->isDerivedFrom(className, "QTableWidget")) {
236
+ QTableWidget * table = (QTableWidget *) o->smoke->cast(o->ptr, o->classId, o->smoke->idClass("QTableWidget", true).index);
237
+ QTableWidgetItem *item;
238
+
239
+ for ( int row = 0; row < table->rowCount(); row++ ) {
240
+ for ( int col = 0; col < table->columnCount(); col++ ) {
241
+ item = table->item(row, col);
242
+ obj = getPointerObject(item);
243
+ if (obj != Qnil) {
244
+ if(do_debug & qtdb_gc) qWarning("Marking (%s*)%p -> %p", className, item, (void*)obj);
245
+ rb_gc_mark(obj);
246
+ }
247
+ }
248
+ }
249
+ return;
250
+ }
251
+
252
+ if (o->smoke->isDerivedFrom(className, "QTreeWidget")) {
253
+ QTreeWidget * qtreewidget = (QTreeWidget *) o->smoke->cast(o->ptr, o->classId, o->smoke->idClass("QTreeWidget", true).index);
254
+
255
+ for (int i = 0; i < qtreewidget->topLevelItemCount(); i++) {
256
+ QTreeWidgetItem * item = qtreewidget->topLevelItem(i);
257
+ obj = getPointerObject(item);
258
+ if (obj != Qnil) {
259
+ if (do_debug & qtdb_gc) qWarning("Marking (%s*)%p -> %p", "QTreeWidgetItem", item, (void*)obj);
260
+ rb_gc_mark(obj);
261
+ }
262
+ mark_qtreewidgetitem_children(item);
263
+ }
264
+ return;
265
+ }
266
+
267
+ if (o->smoke->isDerivedFrom(className, "QLayout")) {
268
+ QLayout * qlayout = (QLayout *) o->smoke->cast(o->ptr, o->classId, o->smoke->idClass("QLayout", true).index);
269
+ for (int i = 0; i < qlayout->count(); ++i) {
270
+ QLayoutItem * item = qlayout->itemAt(i);
271
+ if (item != 0) {
272
+ obj = getPointerObject(item);
273
+ if (obj != Qnil) {
274
+ if (do_debug & qtdb_gc) qWarning("Marking (%s*)%p -> %p", "QLayoutItem", item, (void*)obj);
275
+ rb_gc_mark(obj);
276
+ }
277
+ }
278
+ }
279
+ return;
280
+ }
281
+
282
+ if (o->smoke->isDerivedFrom(className, "QStandardItemModel")) {
283
+ QStandardItemModel * model = (QStandardItemModel *) o->smoke->cast(o->ptr, o->classId, o->smoke->idClass("QStandardItemModel", true).index);
284
+ for (int row = 0; row < model->rowCount(); row++) {
285
+ for (int column = 0; column < model->columnCount(); column++) {
286
+ QStandardItem * item = model->item(row, column);
287
+ if (item != 0) {
288
+ if (item->hasChildren()) {
289
+ mark_qstandarditem_children(item);
290
+ }
291
+ obj = getPointerObject(item);
292
+ if (obj != Qnil) {
293
+ if (do_debug & qtdb_gc) qWarning("Marking (%s*)%p -> %p", "QStandardItem", item, (void*)obj);
294
+ rb_gc_mark(obj);
295
+ }
296
+ }
297
+ }
298
+ }
299
+ return;
300
+ }
301
+
302
+ if (o->smoke->isDerivedFrom(className, "QGraphicsWidget")) {
303
+ QGraphicsWidget * widget = (QGraphicsWidget *) o->smoke->cast(o->ptr, o->classId, o->smoke->idClass("QGraphicsWidget", true).index);
304
+ QGraphicsLayout * layout = widget->layout();
305
+ if (layout != 0) {
306
+ obj = getPointerObject(layout);
307
+ if (obj != Qnil) {
308
+ if (do_debug & qtdb_gc) qWarning("Marking (%s*)%p -> %p", "QGraphicsLayout", layout, (void*)obj);
309
+ rb_gc_mark(obj);
310
+ }
311
+ }
312
+ }
313
+
314
+ if (o->smoke->isDerivedFrom(className, "QGraphicsLayout")) {
315
+ QGraphicsLayout * qlayout = (QGraphicsLayout *) o->smoke->cast(o->ptr, o->classId, o->smoke->idClass("QGraphicsLayout", true).index);
316
+ for (int i = 0; i < qlayout->count(); ++i) {
317
+ QGraphicsLayoutItem * item = qlayout->itemAt(i);
318
+ if (item != 0) {
319
+ obj = getPointerObject(item);
320
+ if (obj != Qnil) {
321
+ if (do_debug & qtdb_gc) qWarning("Marking (%s*)%p -> %p", "QGraphicsLayoutItem", item, (void*)obj);
322
+ rb_gc_mark(obj);
323
+ }
324
+ }
325
+ }
326
+ return;
327
+ }
328
+
329
+ if (o->smoke->isDerivedFrom(className, "QGraphicsItem")) {
330
+ QGraphicsItem * item = (QGraphicsItem *) o->smoke->cast(o->ptr, o->classId, o->smoke->idClass("QGraphicsItem", true).index);
331
+ // Only mark the QGraphicsItem tree if the current item doesn't have a parent.
332
+ // This avoids marking parts of a tree more than once.
333
+ if (item->parentItem() == 0) {
334
+ mark_qgraphicsitem_children(item);
335
+ }
336
+ if (QGraphicsEffect* effect = item->graphicsEffect()) {
337
+ obj = getPointerObject(effect);
338
+ if (obj != Qnil) {
339
+ if (do_debug & qtdb_gc)
340
+ qWarning("Marking (%s*)%p -> %p", "QGraphicsEffect", effect, (void*)obj);
341
+ rb_gc_mark(obj);
342
+ }
343
+ }
344
+ }
345
+
346
+ if (o->smoke->isDerivedFrom(className, "QGraphicsScene")) {
347
+ QGraphicsScene * scene = (QGraphicsScene *) o->smoke->cast(o->ptr, o->classId, o->smoke->idClass("QGraphicsScene", true).index);
348
+ QList<QGraphicsItem *> list = scene->items();
349
+ for (int i = 0; i < list.size(); i++) {
350
+ QGraphicsItem * item = list.at(i);
351
+ if (item != 0) {
352
+ obj = getPointerObject(item);
353
+ if (obj != Qnil) {
354
+ if (do_debug & qtdb_gc) qWarning("Marking (%s*)%p -> %p", "QGraphicsItem", item, (void*)obj);
355
+ rb_gc_mark(obj);
356
+ }
357
+ }
358
+ }
359
+ return;
360
+ }
361
+
362
+ if (qstrcmp(className, "QModelIndex") == 0) {
363
+ QModelIndex * qmodelindex = (QModelIndex *) o->ptr;
364
+ void * ptr = qmodelindex->internalPointer();
365
+ if (ptr != 0 && ptr != (void *) Qnil) {
366
+ rb_gc_mark((VALUE) ptr);
367
+ }
368
+
369
+ return;
370
+ }
371
+ }
372
+ }
373
+
374
+ void
375
+ smokeruby_free(void * p)
376
+ {
377
+ smokeruby_object *o = (smokeruby_object*)p;
378
+ const char *className = o->smoke->classes[o->classId].className;
379
+
380
+ if(do_debug & qtdb_gc) qWarning("Checking for delete (%s*)%p allocated: %s", className, o->ptr, o->allocated ? "true" : "false");
381
+
382
+ if(application_terminated || !o->allocated || o->ptr == 0) {
383
+ free_smokeruby_object(o);
384
+ return;
385
+ }
386
+
387
+ unmapPointer(o, o->classId, 0);
388
+ object_count --;
389
+
390
+ if (o->smoke->isDerivedFrom(className, "QGraphicsLayoutItem")) {
391
+ QGraphicsLayoutItem * item = (QGraphicsLayoutItem *) o->smoke->cast(o->ptr, o->classId, o->smoke->idClass("QGraphicsLayoutItem", true).index);
392
+ if (item->graphicsItem() != 0 || item->parentLayoutItem() != 0) {
393
+ free_smokeruby_object(o);
394
+ return;
395
+ }
396
+ } else if (o->smoke->isDerivedFrom(className, "QGraphicsItem")) {
397
+ QGraphicsItem * item = (QGraphicsItem *) o->smoke->cast(o->ptr, o->classId, o->smoke->idClass("QGraphicsItem", true).index);
398
+ if (item->parentItem() != 0 || item->parentObject() != 0 || item->parentWidget() != 0) {
399
+ free_smokeruby_object(o);
400
+ return;
401
+ }
402
+ } else if (o->smoke->isDerivedFrom(className, "QLayoutItem")) {
403
+ QLayoutItem * item = (QLayoutItem *) o->smoke->cast(o->ptr, o->classId, o->smoke->idClass("QLayoutItem", true).index);
404
+ if (item->layout() != 0 || item->widget() != 0 || item->spacerItem() != 0) {
405
+ free_smokeruby_object(o);
406
+ return;
407
+ }
408
+ } else if (o->smoke->isDerivedFrom(className, "QStandardItem")) {
409
+ QStandardItem * item = (QStandardItem *) o->smoke->cast(o->ptr, o->classId, o->smoke->idClass("QStandardItem", true).index);
410
+ if (item->model() != 0 || item->parent() != 0) {
411
+ free_smokeruby_object(o);
412
+ return;
413
+ }
414
+ } else if (qstrcmp(className, "QListWidgetItem") == 0) {
415
+ QListWidgetItem * item = (QListWidgetItem *) o->ptr;
416
+ if (item->listWidget() != 0) {
417
+ free_smokeruby_object(o);
418
+ return;
419
+ }
420
+ } else if (o->smoke->isDerivedFrom(className, "QTableWidgetItem")) {
421
+ QTableWidgetItem * item = (QTableWidgetItem *) o->smoke->cast(o->ptr, o->classId, o->smoke->idClass("QTableWidgetItem", true).index);
422
+ if (item->tableWidget() != 0) {
423
+ free_smokeruby_object(o);
424
+ return;
425
+ }
426
+ } else if (o->smoke->isDerivedFrom(className, "QWidget")) {
427
+ QWidget * qwidget = (QWidget *) o->smoke->cast(o->ptr, o->classId, o->smoke->idClass("QWidget", true).index);
428
+ if (qwidget->parentWidget() != 0 || QCoreApplication::closingDown()) {
429
+ free_smokeruby_object(o);
430
+ return;
431
+ }
432
+ } else if (o->smoke->isDerivedFrom(className, "QObject")) {
433
+ QObject * qobject = (QObject *) o->smoke->cast(o->ptr, o->classId, o->smoke->idClass("QObject", true).index);
434
+ if (qobject->parent() != 0) {
435
+ free_smokeruby_object(o);
436
+ return;
437
+ }
438
+ }
439
+
440
+ if(do_debug & qtdb_gc) qWarning("Deleting (%s*)%p", className, o->ptr);
441
+
442
+ char *methodName = new char[strlen(className) + 2];
443
+ methodName[0] = '~';
444
+ strcpy(methodName + 1, className);
445
+ Smoke::ModuleIndex nameId = o->smoke->findMethodName(className, methodName);
446
+ Smoke::ModuleIndex classIdx(o->smoke, o->classId);
447
+ Smoke::ModuleIndex meth = o->smoke->findMethod(classIdx, nameId);
448
+ if(meth.index > 0) {
449
+ Smoke::Method &m = meth.smoke->methods[meth.smoke->methodMaps[meth.index].method];
450
+ Smoke::ClassFn fn = meth.smoke->classes[m.classId].classFn;
451
+ Smoke::StackItem i[1];
452
+ (*fn)(m.method, o->ptr, i);
453
+ }
454
+ delete[] methodName;
455
+ free_smokeruby_object(o);
456
+
457
+ return;
458
+ }
459
+
460
+ /*
461
+ * Given an approximate classname and a qt instance, try to improve the resolution of the name
462
+ * by using the various Qt rtti mechanisms for QObjects, QEvents and so on
463
+ */
464
+ Q_DECL_EXPORT const char *
465
+ resolve_classname_qt(smokeruby_object * o)
466
+ {
467
+ #define SET_SMOKERUBY_OBJECT(className) \
468
+ { \
469
+ Smoke::ModuleIndex mi = Smoke::findClass(className); \
470
+ o->classId = mi.index; \
471
+ o->smoke = mi.smoke; \
472
+ }
473
+
474
+ if (o->smoke->isDerivedFrom(o->smoke->classes[o->classId].className, "QEvent")) {
475
+ QEvent * qevent = (QEvent *) o->smoke->cast(o->ptr, o->classId, o->smoke->idClass("QEvent", true).index);
476
+ switch (qevent->type()) {
477
+ case QEvent::Timer:
478
+ SET_SMOKERUBY_OBJECT("QTimerEvent")
479
+ break;
480
+ case QEvent::MouseButtonPress:
481
+ case QEvent::MouseButtonRelease:
482
+ case QEvent::MouseButtonDblClick:
483
+ case QEvent::MouseMove:
484
+ SET_SMOKERUBY_OBJECT("QMouseEvent")
485
+ break;
486
+ case QEvent::KeyPress:
487
+ case QEvent::KeyRelease:
488
+ case QEvent::ShortcutOverride:
489
+ SET_SMOKERUBY_OBJECT("QKeyEvent")
490
+ break;
491
+ case QEvent::FocusIn:
492
+ case QEvent::FocusOut:
493
+ SET_SMOKERUBY_OBJECT("QFocusEvent")
494
+ break;
495
+ case QEvent::Enter:
496
+ case QEvent::Leave:
497
+ SET_SMOKERUBY_OBJECT("QEvent")
498
+ break;
499
+ case QEvent::Paint:
500
+ SET_SMOKERUBY_OBJECT("QPaintEvent")
501
+ break;
502
+ case QEvent::Move:
503
+ SET_SMOKERUBY_OBJECT("QMoveEvent")
504
+ break;
505
+ case QEvent::Resize:
506
+ SET_SMOKERUBY_OBJECT("QResizeEvent")
507
+ break;
508
+ case QEvent::Create:
509
+ case QEvent::Destroy:
510
+ SET_SMOKERUBY_OBJECT("QEvent")
511
+ break;
512
+ case QEvent::Show:
513
+ SET_SMOKERUBY_OBJECT("QShowEvent")
514
+ break;
515
+ case QEvent::Hide:
516
+ SET_SMOKERUBY_OBJECT("QHideEvent")
517
+ case QEvent::Close:
518
+ SET_SMOKERUBY_OBJECT("QCloseEvent")
519
+ break;
520
+ case QEvent::Quit:
521
+ case QEvent::ParentChange:
522
+ case QEvent::ParentAboutToChange:
523
+ case QEvent::ThreadChange:
524
+ case QEvent::WindowActivate:
525
+ case QEvent::WindowDeactivate:
526
+ case QEvent::ShowToParent:
527
+ case QEvent::HideToParent:
528
+ SET_SMOKERUBY_OBJECT("QEvent")
529
+ break;
530
+ case QEvent::Wheel:
531
+ SET_SMOKERUBY_OBJECT("QWheelEvent")
532
+ break;
533
+ case QEvent::WindowTitleChange:
534
+ case QEvent::WindowIconChange:
535
+ case QEvent::ApplicationWindowIconChange:
536
+ case QEvent::ApplicationFontChange:
537
+ case QEvent::ApplicationLayoutDirectionChange:
538
+ case QEvent::ApplicationPaletteChange:
539
+ case QEvent::PaletteChange:
540
+ SET_SMOKERUBY_OBJECT("QEvent")
541
+ break;
542
+ case QEvent::Clipboard:
543
+ SET_SMOKERUBY_OBJECT("QClipboardEvent")
544
+ break;
545
+ case QEvent::Speech:
546
+ case QEvent::MetaCall:
547
+ case QEvent::SockAct:
548
+ case QEvent::WinEventAct:
549
+ case QEvent::DeferredDelete:
550
+ SET_SMOKERUBY_OBJECT("QEvent")
551
+ break;
552
+ case QEvent::DragEnter:
553
+ SET_SMOKERUBY_OBJECT("QDragEnterEvent")
554
+ break;
555
+ case QEvent::DragLeave:
556
+ SET_SMOKERUBY_OBJECT("QDragLeaveEvent")
557
+ break;
558
+ case QEvent::DragMove:
559
+ SET_SMOKERUBY_OBJECT("QDragMoveEvent")
560
+ case QEvent::Drop:
561
+ SET_SMOKERUBY_OBJECT("QDropEvent")
562
+ break;
563
+ case QEvent::DragResponse:
564
+ SET_SMOKERUBY_OBJECT("QDragResponseEvent")
565
+ break;
566
+ case QEvent::ChildAdded:
567
+ case QEvent::ChildRemoved:
568
+ case QEvent::ChildPolished:
569
+ SET_SMOKERUBY_OBJECT("QChildEvent")
570
+ break;
571
+ case QEvent::ShowWindowRequest:
572
+ case QEvent::PolishRequest:
573
+ case QEvent::Polish:
574
+ case QEvent::LayoutRequest:
575
+ case QEvent::UpdateRequest:
576
+ case QEvent::EmbeddingControl:
577
+ case QEvent::ActivateControl:
578
+ case QEvent::DeactivateControl:
579
+ SET_SMOKERUBY_OBJECT("QEvent")
580
+ break;
581
+ case QEvent::ContextMenu:
582
+ SET_SMOKERUBY_OBJECT("QContextMenuEvent")
583
+ break;
584
+ case QEvent::DynamicPropertyChange:
585
+ SET_SMOKERUBY_OBJECT("QDynamicPropertyChangeEvent")
586
+ break;
587
+ case QEvent::InputMethod:
588
+ SET_SMOKERUBY_OBJECT("QInputMethodEvent")
589
+ break;
590
+ case QEvent::AccessibilityPrepare:
591
+ SET_SMOKERUBY_OBJECT("QEvent")
592
+ break;
593
+ case QEvent::TabletMove:
594
+ case QEvent::TabletPress:
595
+ case QEvent::TabletRelease:
596
+ SET_SMOKERUBY_OBJECT("QTabletEvent")
597
+ break;
598
+ case QEvent::LocaleChange:
599
+ case QEvent::LanguageChange:
600
+ case QEvent::LayoutDirectionChange:
601
+ case QEvent::Style:
602
+ case QEvent::OkRequest:
603
+ case QEvent::HelpRequest:
604
+ SET_SMOKERUBY_OBJECT("QEvent")
605
+ break;
606
+ case QEvent::IconDrag:
607
+ SET_SMOKERUBY_OBJECT("QIconDragEvent")
608
+ break;
609
+ case QEvent::FontChange:
610
+ case QEvent::EnabledChange:
611
+ case QEvent::ActivationChange:
612
+ case QEvent::StyleChange:
613
+ case QEvent::IconTextChange:
614
+ case QEvent::ModifiedChange:
615
+ case QEvent::MouseTrackingChange:
616
+ SET_SMOKERUBY_OBJECT("QEvent")
617
+ break;
618
+ case QEvent::WindowBlocked:
619
+ case QEvent::WindowUnblocked:
620
+ case QEvent::WindowStateChange:
621
+ SET_SMOKERUBY_OBJECT("QWindowStateChangeEvent")
622
+ break;
623
+ case QEvent::ToolTip:
624
+ case QEvent::WhatsThis:
625
+ SET_SMOKERUBY_OBJECT("QHelpEvent")
626
+ break;
627
+ case QEvent::StatusTip:
628
+ SET_SMOKERUBY_OBJECT("QEvent")
629
+ break;
630
+ case QEvent::ActionChanged:
631
+ case QEvent::ActionAdded:
632
+ case QEvent::ActionRemoved:
633
+ SET_SMOKERUBY_OBJECT("QActionEvent")
634
+ break;
635
+ case QEvent::FileOpen:
636
+ SET_SMOKERUBY_OBJECT("QFileOpenEvent")
637
+ break;
638
+ case QEvent::Shortcut:
639
+ SET_SMOKERUBY_OBJECT("QShortcutEvent")
640
+ break;
641
+ case QEvent::WhatsThisClicked:
642
+ SET_SMOKERUBY_OBJECT("QWhatsThisClickedEvent")
643
+ break;
644
+ case QEvent::ToolBarChange:
645
+ SET_SMOKERUBY_OBJECT("QToolBarChangeEvent")
646
+ break;
647
+ case QEvent::ApplicationActivated:
648
+ case QEvent::ApplicationDeactivated:
649
+ case QEvent::QueryWhatsThis:
650
+ case QEvent::EnterWhatsThisMode:
651
+ case QEvent::LeaveWhatsThisMode:
652
+ case QEvent::ZOrderChange:
653
+ SET_SMOKERUBY_OBJECT("QEvent")
654
+ break;
655
+ case QEvent::HoverEnter:
656
+ case QEvent::HoverLeave:
657
+ case QEvent::HoverMove:
658
+ SET_SMOKERUBY_OBJECT("QHoverEvent")
659
+ break;
660
+ case QEvent::AccessibilityHelp:
661
+ case QEvent::AccessibilityDescription:
662
+ SET_SMOKERUBY_OBJECT("QEvent")
663
+ #if QT_VERSION >= 0x40200
664
+ case QEvent::GraphicsSceneMouseMove:
665
+ case QEvent::GraphicsSceneMousePress:
666
+ case QEvent::GraphicsSceneMouseRelease:
667
+ case QEvent::GraphicsSceneMouseDoubleClick:
668
+ SET_SMOKERUBY_OBJECT("QGraphicsSceneMouseEvent")
669
+ break;
670
+ case QEvent::GraphicsSceneContextMenu:
671
+ SET_SMOKERUBY_OBJECT("QGraphicsSceneContextMenuEvent")
672
+ break;
673
+ case QEvent::GraphicsSceneHoverEnter:
674
+ case QEvent::GraphicsSceneHoverMove:
675
+ case QEvent::GraphicsSceneHoverLeave:
676
+ SET_SMOKERUBY_OBJECT("QGraphicsSceneHoverEvent")
677
+ break;
678
+ case QEvent::GraphicsSceneHelp:
679
+ SET_SMOKERUBY_OBJECT("QGraphicsSceneHelpEvent")
680
+ break;
681
+ case QEvent::GraphicsSceneDragEnter:
682
+ case QEvent::GraphicsSceneDragMove:
683
+ case QEvent::GraphicsSceneDragLeave:
684
+ case QEvent::GraphicsSceneDrop:
685
+ SET_SMOKERUBY_OBJECT("QGraphicsSceneDragDropEvent")
686
+ break;
687
+ case QEvent::GraphicsSceneWheel:
688
+ SET_SMOKERUBY_OBJECT("QGraphicsSceneWheelEvent")
689
+ break;
690
+ case QEvent::KeyboardLayoutChange:
691
+ SET_SMOKERUBY_OBJECT("QEvent")
692
+ break;
693
+ #endif
694
+ default:
695
+ break;
696
+ }
697
+ } else if (o->smoke->isDerivedFrom(o->smoke->classes[o->classId].className, "QGraphicsItem")) {
698
+ QGraphicsItem * item = (QGraphicsItem *) o->smoke->cast(o->ptr, o->classId, o->smoke->idClass("QGraphicsItem", true).index);
699
+ switch (item->type()) {
700
+ case 1:
701
+ SET_SMOKERUBY_OBJECT("QGraphicsItem")
702
+ break;
703
+ case 2:
704
+ SET_SMOKERUBY_OBJECT("QGraphicsPathItem")
705
+ break;
706
+ case 3:
707
+ SET_SMOKERUBY_OBJECT("QGraphicsRectItem")
708
+ case 4:
709
+ SET_SMOKERUBY_OBJECT("QGraphicsEllipseItem")
710
+ break;
711
+ case 5:
712
+ SET_SMOKERUBY_OBJECT("QGraphicsPolygonItem")
713
+ break;
714
+ case 6:
715
+ SET_SMOKERUBY_OBJECT("QGraphicsLineItem")
716
+ break;
717
+ case 7:
718
+ SET_SMOKERUBY_OBJECT("QGraphicsItem")
719
+ break;
720
+ case 8:
721
+ SET_SMOKERUBY_OBJECT("QGraphicsTextItem")
722
+ break;
723
+ case 9:
724
+ SET_SMOKERUBY_OBJECT("QGraphicsSimpleTextItem")
725
+ break;
726
+ case 10:
727
+ SET_SMOKERUBY_OBJECT("QGraphicsItemGroup")
728
+ break;
729
+ }
730
+ } else if (o->smoke->isDerivedFrom(o->smoke->classes[o->classId].className, "QLayoutItem")) {
731
+ QLayoutItem * item = (QLayoutItem *) o->smoke->cast(o->ptr, o->classId, o->smoke->idClass("QLayoutItem", true).index);
732
+ if (item->widget() != 0) {
733
+ SET_SMOKERUBY_OBJECT("QWidgetItem")
734
+ } else if (item->spacerItem() != 0) {
735
+ SET_SMOKERUBY_OBJECT("QSpacerItem")
736
+ }
737
+ }
738
+
739
+ return qtruby_modules[o->smoke].binding->className(o->classId);
740
+
741
+ #undef SET_SMOKERUBY_OBJECT
742
+ }
743
+
744
+ bool
745
+ matches_arg(Smoke *smoke, Smoke::Index meth, Smoke::Index argidx, const char *argtype)
746
+ {
747
+ Smoke::Index *arg = smoke->argumentList + smoke->methods[meth].args + argidx;
748
+ SmokeType type = SmokeType(smoke, *arg);
749
+ if (type.name() && qstrcmp(type.name(), argtype) == 0) {
750
+ return true;
751
+ }
752
+ return false;
753
+ }
754
+
755
+ void *
756
+ construct_copy(smokeruby_object *o)
757
+ {
758
+ const char *className = o->smoke->className(o->classId);
759
+ int classNameLen = strlen(className);
760
+
761
+ // copy constructor signature
762
+ QByteArray ccSig(className);
763
+ int pos = ccSig.lastIndexOf("::");
764
+ if (pos != -1) {
765
+ ccSig = ccSig.mid(pos + strlen("::"));
766
+ }
767
+ ccSig.append("#");
768
+ Smoke::ModuleIndex ccId = o->smoke->findMethodName(className, ccSig);
769
+
770
+ char *ccArg = new char[classNameLen + 8];
771
+ sprintf(ccArg, "const %s&", className);
772
+
773
+ Smoke::ModuleIndex classIdx(o->smoke, o->classId);
774
+ Smoke::ModuleIndex ccMeth = o->smoke->findMethod(classIdx, ccId);
775
+
776
+ if (ccMeth.index == 0) {
777
+ qWarning("construct_copy() failed %s %p\n", resolve_classname(o), o->ptr);
778
+ delete[] ccArg;
779
+ return 0;
780
+ }
781
+ Smoke::Index method = ccMeth.smoke->methodMaps[ccMeth.index].method;
782
+ if (method > 0) {
783
+ // Make sure it's a copy constructor
784
+ if (!matches_arg(o->smoke, method, 0, ccArg)) {
785
+ qWarning("construct_copy() failed %s %p\n", resolve_classname(o), o->ptr);
786
+ delete[] ccArg;
787
+ return 0;
788
+ }
789
+ delete[] ccArg;
790
+ ccMeth.index = method;
791
+ } else {
792
+ // ambiguous method, pick the copy constructor
793
+ Smoke::Index i = -method;
794
+ while (ccMeth.smoke->ambiguousMethodList[i]) {
795
+ if (matches_arg(ccMeth.smoke, ccMeth.smoke->ambiguousMethodList[i], 0, ccArg)) {
796
+ break;
797
+ }
798
+ i++;
799
+ }
800
+ delete[] ccArg;
801
+ ccMeth.index = ccMeth.smoke->ambiguousMethodList[i];
802
+ if (ccMeth.index == 0) {
803
+ qWarning("construct_copy() failed %s %p\n", resolve_classname(o), o->ptr);
804
+ return 0;
805
+ }
806
+ }
807
+
808
+ // Okay, ccMeth is the copy constructor. Time to call it.
809
+ Smoke::StackItem args[2];
810
+ args[0].s_voidp = 0;
811
+ args[1].s_voidp = o->ptr;
812
+ Smoke::ClassFn fn = o->smoke->classes[o->classId].classFn;
813
+ (*fn)(o->smoke->methods[ccMeth.index].method, 0, args);
814
+
815
+ // Initialize the binding for the new instance
816
+ Smoke::StackItem s[2];
817
+ s[1].s_voidp = qtruby_modules[o->smoke].binding;
818
+ (*fn)(0, args[0].s_voidp, s);
819
+
820
+ return args[0].s_voidp;
821
+ }
822
+
823
+ template <class T>
824
+ static void marshall_it(Marshall *m)
825
+ {
826
+ switch(m->action()) {
827
+ case Marshall::FromVALUE:
828
+ marshall_from_ruby<T>(m);
829
+ break;
830
+
831
+ case Marshall::ToVALUE:
832
+ marshall_to_ruby<T>( m );
833
+ break;
834
+
835
+ default:
836
+ m->unsupported();
837
+ break;
838
+ }
839
+ }
840
+
841
+ void
842
+ marshall_basetype(Marshall *m)
843
+ {
844
+ switch(m->type().elem()) {
845
+
846
+ case Smoke::t_bool:
847
+ marshall_it<bool>(m);
848
+ break;
849
+
850
+ case Smoke::t_char:
851
+ marshall_it<signed char>(m);
852
+ break;
853
+
854
+ case Smoke::t_uchar:
855
+ marshall_it<unsigned char>(m);
856
+ break;
857
+
858
+ case Smoke::t_short:
859
+ marshall_it<short>(m);
860
+ break;
861
+
862
+ case Smoke::t_ushort:
863
+ marshall_it<unsigned short>(m);
864
+ break;
865
+
866
+ case Smoke::t_int:
867
+ marshall_it<int>(m);
868
+ break;
869
+
870
+ case Smoke::t_uint:
871
+ marshall_it<unsigned int>(m);
872
+ break;
873
+
874
+ case Smoke::t_long:
875
+ marshall_it<long>(m);
876
+ break;
877
+
878
+ case Smoke::t_ulong:
879
+ marshall_it<unsigned long>(m);
880
+ break;
881
+
882
+ case Smoke::t_float:
883
+ marshall_it<float>(m);
884
+ break;
885
+
886
+ case Smoke::t_double:
887
+ marshall_it<double>(m);
888
+ break;
889
+
890
+ case Smoke::t_enum:
891
+ marshall_it<SmokeEnumWrapper>(m);
892
+ break;
893
+
894
+ case Smoke::t_class:
895
+ marshall_it<SmokeClassWrapper>(m);
896
+ break;
897
+
898
+ default:
899
+ m->unsupported();
900
+ break;
901
+ }
902
+
903
+ }
904
+
905
+ static void marshall_void(Marshall * /*m*/) {}
906
+ static void marshall_unknown(Marshall *m) {
907
+ m->unsupported();
908
+ }
909
+
910
+ void marshall_ucharP(Marshall *m) {
911
+ marshall_it<unsigned char *>(m);
912
+ }
913
+
914
+ static void marshall_doubleR(Marshall *m) {
915
+ switch(m->action()) {
916
+ case Marshall::FromVALUE:
917
+ {
918
+ VALUE rv = *(m->var());
919
+ double * d = new double;
920
+ *d = NUM2DBL(rv);
921
+ m->item().s_voidp = d;
922
+ m->next();
923
+ if (m->cleanup() && m->type().isConst()) {
924
+ delete d;
925
+ } else {
926
+ m->item().s_voidp = new double((double)NUM2DBL(rv));
927
+ }
928
+ }
929
+ break;
930
+ case Marshall::ToVALUE:
931
+ {
932
+ double *dp = (double*)m->item().s_voidp;
933
+ VALUE rv = *(m->var());
934
+ if (dp == 0) {
935
+ rv = Qnil;
936
+ break;
937
+ }
938
+ *(m->var()) = rb_float_new(*dp);
939
+ m->next();
940
+ if (!m->type().isConst()) {
941
+ *dp = NUM2DBL(*(m->var()));
942
+ }
943
+ }
944
+ break;
945
+ default:
946
+ m->unsupported();
947
+ break;
948
+ }
949
+ }
950
+
951
+ static QTextCodec *codec = 0;
952
+
953
+ #if RUBY_VERSION < 0x10900
954
+ static const char * KCODE = 0;
955
+
956
+ static void
957
+ init_codec() {
958
+ VALUE temp = rb_gv_get("$KCODE");
959
+ KCODE = StringValuePtr(temp);
960
+ if (qstrcmp(KCODE, "EUC") == 0) {
961
+ codec = QTextCodec::codecForName("eucJP");
962
+ } else if (qstrcmp(KCODE, "SJIS") == 0) {
963
+ codec = QTextCodec::codecForName("Shift-JIS");
964
+ }
965
+ }
966
+
967
+ QString*
968
+ qstringFromRString(VALUE rstring) {
969
+ if (KCODE == 0) {
970
+ init_codec();
971
+ }
972
+
973
+ if (qstrcmp(KCODE, "UTF8") == 0)
974
+ return new QString(QString::fromUtf8(StringValuePtr(rstring), RSTRING_LEN(rstring)));
975
+ else if (qstrcmp(KCODE, "EUC") == 0)
976
+ return new QString(codec->toUnicode(StringValuePtr(rstring)));
977
+ else if (qstrcmp(KCODE, "SJIS") == 0)
978
+ return new QString(codec->toUnicode(StringValuePtr(rstring)));
979
+ else if(qstrcmp(KCODE, "NONE") == 0)
980
+ return new QString(QString::fromLatin1(StringValuePtr(rstring)));
981
+
982
+ return new QString(QString::fromLocal8Bit(StringValuePtr(rstring), RSTRING_LEN(rstring)));
983
+ }
984
+
985
+ VALUE
986
+ rstringFromQString(QString * s) {
987
+ if (KCODE == 0) {
988
+ init_codec();
989
+ }
990
+
991
+ if (qstrcmp(KCODE, "UTF8") == 0)
992
+ return rb_str_new2(s->toUtf8());
993
+ else if (qstrcmp(KCODE, "EUC") == 0)
994
+ return rb_str_new2(codec->fromUnicode(*s));
995
+ else if (qstrcmp(KCODE, "SJIS") == 0)
996
+ return rb_str_new2(codec->fromUnicode(*s));
997
+ else if (qstrcmp(KCODE, "NONE") == 0)
998
+ return rb_str_new2(s->toLatin1());
999
+ else
1000
+ return rb_str_new2(s->toLocal8Bit());
1001
+ }
1002
+
1003
+ #else
1004
+
1005
+ QString*
1006
+ qstringFromRString(VALUE rstring) {
1007
+ VALUE encoding = rb_funcall(rstring, rb_intern("encoding"), 0);
1008
+ encoding = rb_funcall(encoding, rb_intern("to_s"), 0);
1009
+ const char * enc_s = RSTRING_PTR(encoding);
1010
+
1011
+ if (qstrcmp(enc_s, "UTF8") == 0) {
1012
+ return new QString(QString::fromUtf8(StringValuePtr(rstring), RSTRING_LEN(rstring)));
1013
+ } else if (qstrcmp(enc_s, "EUC-JP") == 0) {
1014
+ codec = QTextCodec::codecForName("eucJP");
1015
+ return new QString(codec->toUnicode(StringValuePtr(rstring)));
1016
+ } else if (qstrcmp(enc_s, "Shift-JIS") == 0) {
1017
+ codec = QTextCodec::codecForName("Shift-JIS");
1018
+ return new QString(codec->toUnicode(StringValuePtr(rstring)));
1019
+ } else if(qstrcmp(enc_s, "ISO-8859-1") == 0 || qstrcmp(enc_s, "US-ASCII") == 0) {
1020
+ return new QString(QString::fromLatin1(StringValuePtr(rstring)));
1021
+ }
1022
+
1023
+ return new QString(QString::fromLocal8Bit(StringValuePtr(rstring), RSTRING_LEN(rstring)));
1024
+ }
1025
+
1026
+ VALUE
1027
+ rstringFromQString(QString * s) {
1028
+ return rb_str_new2(s->toUtf8());
1029
+ }
1030
+ #endif
1031
+
1032
+ QByteArray*
1033
+ qbytearrayFromRString(VALUE rstring) {
1034
+ return new QByteArray(StringValuePtr(rstring), RSTRING_LEN(rstring));
1035
+ }
1036
+
1037
+ VALUE
1038
+ rstringFromQByteArray(QByteArray * s) {
1039
+ return rb_str_new(s->data(), s->size());
1040
+ }
1041
+
1042
+ static void marshall_QString(Marshall *m) {
1043
+ switch(m->action()) {
1044
+ case Marshall::FromVALUE:
1045
+ {
1046
+ QString* s = 0;
1047
+ if( *(m->var()) != Qnil) {
1048
+ s = qstringFromRString(*(m->var()));
1049
+ } else {
1050
+ s = new QString();
1051
+ }
1052
+
1053
+ m->item().s_voidp = s;
1054
+ m->next();
1055
+
1056
+ if (!m->type().isConst() && *(m->var()) != Qnil && s != 0 && !s->isNull()) {
1057
+ rb_str_resize(*(m->var()), 0);
1058
+ VALUE temp = rstringFromQString(s);
1059
+ rb_str_cat2(*(m->var()), StringValuePtr(temp));
1060
+ }
1061
+
1062
+ if (s != 0 && m->cleanup()) {
1063
+ delete s;
1064
+ }
1065
+ }
1066
+ break;
1067
+
1068
+ case Marshall::ToVALUE:
1069
+ {
1070
+ QString *s = (QString*)m->item().s_voidp;
1071
+ if(s) {
1072
+ if (s->isNull()) {
1073
+ *(m->var()) = Qnil;
1074
+ } else {
1075
+ *(m->var()) = rstringFromQString(s);
1076
+ }
1077
+ if(m->cleanup() || m->type().isStack() ) {
1078
+ delete s;
1079
+ }
1080
+ } else {
1081
+ *(m->var()) = Qnil;
1082
+ }
1083
+ }
1084
+ break;
1085
+
1086
+ default:
1087
+ m->unsupported();
1088
+ break;
1089
+ }
1090
+ }
1091
+
1092
+ static void marshall_QByteArray(Marshall *m) {
1093
+ switch(m->action()) {
1094
+ case Marshall::FromVALUE:
1095
+ {
1096
+ QByteArray* s = 0;
1097
+ if( *(m->var()) != Qnil) {
1098
+ s = qbytearrayFromRString(*(m->var()));
1099
+ } else {
1100
+ s = new QByteArray();
1101
+ }
1102
+
1103
+ m->item().s_voidp = s;
1104
+ m->next();
1105
+
1106
+ if (!m->type().isConst() && *(m->var()) != Qnil && s != 0 && !s->isNull()) {
1107
+ rb_str_resize(*(m->var()), 0);
1108
+ VALUE temp = rstringFromQByteArray(s);
1109
+ rb_str_cat2(*(m->var()), StringValuePtr(temp));
1110
+ }
1111
+
1112
+ if (s != 0 && m->cleanup()) {
1113
+ delete s;
1114
+ }
1115
+ }
1116
+ break;
1117
+
1118
+ case Marshall::ToVALUE:
1119
+ {
1120
+ QByteArray *s = (QByteArray*)m->item().s_voidp;
1121
+ if(s) {
1122
+ if (s->isNull()) {
1123
+ *(m->var()) = Qnil;
1124
+ } else {
1125
+ *(m->var()) = rstringFromQByteArray(s);
1126
+ }
1127
+ if(m->cleanup() || m->type().isStack() ) {
1128
+ delete s;
1129
+ }
1130
+ } else {
1131
+ *(m->var()) = Qnil;
1132
+ }
1133
+ }
1134
+ break;
1135
+
1136
+ default:
1137
+ m->unsupported();
1138
+ break;
1139
+ }
1140
+ }
1141
+
1142
+ // The only way to convert a QChar to a QString is to
1143
+ // pass a QChar to a QString constructor. However,
1144
+ // QStrings aren't in the QtRuby api, so add this
1145
+ // convenience method 'Qt::Char.to_s' to get a ruby
1146
+ // string from a Qt::Char.
1147
+ VALUE
1148
+ qchar_to_s(VALUE self)
1149
+ {
1150
+ smokeruby_object *o = value_obj_info(self);
1151
+ if (o == 0 || o->ptr == 0) {
1152
+ return Qnil;
1153
+ }
1154
+
1155
+ QChar * qchar = (QChar*) o->ptr;
1156
+ QString s(*qchar);
1157
+ return rstringFromQString(&s);
1158
+ }
1159
+
1160
+ void marshall_QDBusVariant(Marshall *m) {
1161
+ switch(m->action()) {
1162
+ case Marshall::FromVALUE:
1163
+ {
1164
+ VALUE v = *(m->var());
1165
+ if (v == Qnil) {
1166
+ m->item().s_voidp = 0;
1167
+ break;
1168
+ }
1169
+
1170
+ smokeruby_object *o = value_obj_info(v);
1171
+ if (!o || !o->ptr) {
1172
+ if (m->type().isRef()) {
1173
+ m->unsupported();
1174
+ }
1175
+ m->item().s_class = 0;
1176
+ break;
1177
+ }
1178
+ m->item().s_class = o->ptr;
1179
+ break;
1180
+ }
1181
+
1182
+ case Marshall::ToVALUE:
1183
+ {
1184
+ if (m->item().s_voidp == 0) {
1185
+ *(m->var()) = Qnil;
1186
+ break;
1187
+ }
1188
+
1189
+ void *p = m->item().s_voidp;
1190
+ VALUE obj = getPointerObject(p);
1191
+ if(obj != Qnil) {
1192
+ *(m->var()) = obj;
1193
+ break;
1194
+ }
1195
+ smokeruby_object * o = alloc_smokeruby_object(false, m->smoke(), m->smoke()->findClass("QVariant").index, p);
1196
+
1197
+ obj = set_obj_info("Qt::DBusVariant", o);
1198
+ if (do_debug & qtdb_calls) {
1199
+ printf("allocating %s %p -> %p\n", "Qt::DBusVariant", o->ptr, (void*)obj);
1200
+ }
1201
+
1202
+ if (m->type().isStack()) {
1203
+ o->allocated = true;
1204
+ // Keep a mapping of the pointer so that it is only wrapped once
1205
+ mapPointer(obj, o, o->classId, 0);
1206
+ }
1207
+
1208
+ *(m->var()) = obj;
1209
+ break;
1210
+ }
1211
+
1212
+ default:
1213
+ m->unsupported();
1214
+ break;
1215
+ }
1216
+ }
1217
+
1218
+ static void marshall_charP_array(Marshall *m) {
1219
+ switch(m->action()) {
1220
+ case Marshall::FromVALUE:
1221
+ {
1222
+ VALUE arglist = *(m->var());
1223
+ if (arglist == Qnil
1224
+ || TYPE(arglist) != T_ARRAY
1225
+ || RARRAY_LEN(arglist) == 0 )
1226
+ {
1227
+ m->item().s_voidp = 0;
1228
+ break;
1229
+ }
1230
+
1231
+ char **argv = new char *[RARRAY_LEN(arglist) + 1];
1232
+ long i;
1233
+ for(i = 0; i < RARRAY_LEN(arglist); i++) {
1234
+ VALUE item = rb_ary_entry(arglist, i);
1235
+ char *s = StringValuePtr(item);
1236
+ argv[i] = new char[strlen(s) + 1];
1237
+ strcpy(argv[i], s);
1238
+ }
1239
+ argv[i] = 0;
1240
+ m->item().s_voidp = argv;
1241
+ m->next();
1242
+
1243
+ rb_ary_clear(arglist);
1244
+ for(i = 0; argv[i]; i++) {
1245
+ rb_ary_push(arglist, rb_str_new2(argv[i]));
1246
+ }
1247
+ }
1248
+ break;
1249
+ default:
1250
+ m->unsupported();
1251
+ break;
1252
+ }
1253
+ }
1254
+
1255
+ void marshall_QStringList(Marshall *m) {
1256
+ switch(m->action()) {
1257
+ case Marshall::FromVALUE:
1258
+ {
1259
+ VALUE list = *(m->var());
1260
+ if (TYPE(list) != T_ARRAY) {
1261
+ m->item().s_voidp = 0;
1262
+ break;
1263
+ }
1264
+
1265
+ int count = RARRAY_LEN(list);
1266
+ QStringList *stringlist = new QStringList;
1267
+
1268
+ for(long i = 0; i < count; i++) {
1269
+ VALUE item = rb_ary_entry(list, i);
1270
+ if(TYPE(item) != T_STRING) {
1271
+ stringlist->append(QString());
1272
+ continue;
1273
+ }
1274
+
1275
+ stringlist->append(*(qstringFromRString(item)));
1276
+ }
1277
+
1278
+ m->item().s_voidp = stringlist;
1279
+ m->next();
1280
+
1281
+ if (stringlist != 0 && !m->type().isConst()) {
1282
+ rb_ary_clear(list);
1283
+ for(QStringList::Iterator it = stringlist->begin(); it != stringlist->end(); ++it)
1284
+ rb_ary_push(list, rstringFromQString(&(*it)));
1285
+ }
1286
+
1287
+ if (m->cleanup()) {
1288
+ delete stringlist;
1289
+ }
1290
+
1291
+ break;
1292
+ }
1293
+
1294
+ case Marshall::ToVALUE:
1295
+ {
1296
+ QStringList *stringlist = static_cast<QStringList *>(m->item().s_voidp);
1297
+ if (!stringlist) {
1298
+ *(m->var()) = Qnil;
1299
+ break;
1300
+ }
1301
+
1302
+ VALUE av = rb_ary_new();
1303
+ for (QStringList::Iterator it = stringlist->begin(); it != stringlist->end(); ++it) {
1304
+ VALUE rv = rstringFromQString(&(*it));
1305
+ rb_ary_push(av, rv);
1306
+ }
1307
+
1308
+ *(m->var()) = av;
1309
+
1310
+ if (m->cleanup()) {
1311
+ delete stringlist;
1312
+ }
1313
+
1314
+ }
1315
+ break;
1316
+ default:
1317
+ m->unsupported();
1318
+ break;
1319
+ }
1320
+ }
1321
+
1322
+
1323
+ void marshall_QByteArrayList(Marshall *m) {
1324
+ switch(m->action()) {
1325
+ case Marshall::FromVALUE:
1326
+ {
1327
+ VALUE list = *(m->var());
1328
+ if (TYPE(list) != T_ARRAY) {
1329
+ m->item().s_voidp = 0;
1330
+ break;
1331
+ }
1332
+
1333
+ int count = RARRAY_LEN(list);
1334
+ QList<QByteArray> *stringlist = new QList<QByteArray>;
1335
+
1336
+ for(long i = 0; i < count; i++) {
1337
+ VALUE item = rb_ary_entry(list, i);
1338
+ if(TYPE(item) != T_STRING) {
1339
+ stringlist->append(QByteArray());
1340
+ continue;
1341
+ }
1342
+ stringlist->append(QByteArray(StringValuePtr(item), RSTRING_LEN(item)));
1343
+ }
1344
+
1345
+ m->item().s_voidp = stringlist;
1346
+ m->next();
1347
+
1348
+ if (!m->type().isConst()) {
1349
+ rb_ary_clear(list);
1350
+ for (int i = 0; i < stringlist->size(); i++) {
1351
+ rb_ary_push(list, rb_str_new2((const char *) stringlist->at(i)));
1352
+ }
1353
+ }
1354
+
1355
+ if(m->cleanup()) {
1356
+ delete stringlist;
1357
+ }
1358
+ break;
1359
+ }
1360
+ case Marshall::ToVALUE:
1361
+ {
1362
+ QList<QByteArray> *stringlist = static_cast<QList<QByteArray>*>(m->item().s_voidp);
1363
+ if(!stringlist) {
1364
+ *(m->var()) = Qnil;
1365
+ break;
1366
+ }
1367
+
1368
+ VALUE av = rb_ary_new();
1369
+ for (int i = 0; i < stringlist->size(); i++) {
1370
+ VALUE rv = rb_str_new2((const char *) stringlist->at(i));
1371
+ rb_ary_push(av, rv);
1372
+ }
1373
+
1374
+
1375
+ *(m->var()) = av;
1376
+
1377
+ if (m->cleanup()) {
1378
+ delete stringlist;
1379
+ }
1380
+ }
1381
+ break;
1382
+ default:
1383
+ m->unsupported();
1384
+ break;
1385
+ }
1386
+ }
1387
+
1388
+ void marshall_QListCharStar(Marshall *m) {
1389
+ switch(m->action()) {
1390
+ case Marshall::FromVALUE:
1391
+ {
1392
+ VALUE av = *(m->var());
1393
+ if (TYPE(av) != T_ARRAY) {
1394
+ m->item().s_voidp = 0;
1395
+ break;
1396
+ }
1397
+ int count = RARRAY_LEN(av);
1398
+ QList<const char*> *list = new QList<const char*>;
1399
+ long i;
1400
+ for(i = 0; i < count; i++) {
1401
+ VALUE item = rb_ary_entry(av, i);
1402
+ if (TYPE(item) != T_STRING) {
1403
+ list->append(0);
1404
+ continue;
1405
+ }
1406
+ list->append(StringValuePtr(item));
1407
+ }
1408
+
1409
+ m->item().s_voidp = list;
1410
+ }
1411
+ break;
1412
+ case Marshall::ToVALUE:
1413
+ {
1414
+ QList<const char*> *list = (QList<const char*>*)m->item().s_voidp;
1415
+ if (list == 0) {
1416
+ *(m->var()) = Qnil;
1417
+ break;
1418
+ }
1419
+
1420
+ VALUE av = rb_ary_new();
1421
+
1422
+ for ( QList<const char*>::iterator i = list->begin();
1423
+ i != list->end();
1424
+ ++i )
1425
+ {
1426
+ rb_ary_push(av, rb_str_new2((const char *)*i));
1427
+ }
1428
+
1429
+ *(m->var()) = av;
1430
+ m->next();
1431
+ }
1432
+ break;
1433
+ default:
1434
+ m->unsupported();
1435
+ break;
1436
+ }
1437
+ }
1438
+
1439
+ void marshall_QListInt(Marshall *m) {
1440
+ switch(m->action()) {
1441
+ case Marshall::FromVALUE:
1442
+ {
1443
+ VALUE list = *(m->var());
1444
+ if (TYPE(list) != T_ARRAY) {
1445
+ m->item().s_voidp = 0;
1446
+ break;
1447
+ }
1448
+ int count = RARRAY_LEN(list);
1449
+ QList<int> *valuelist = new QList<int>;
1450
+ long i;
1451
+ for(i = 0; i < count; i++) {
1452
+ VALUE item = rb_ary_entry(list, i);
1453
+ if(TYPE(item) != T_FIXNUM && TYPE(item) != T_BIGNUM) {
1454
+ valuelist->append(0);
1455
+ continue;
1456
+ }
1457
+ valuelist->append(NUM2INT(item));
1458
+ }
1459
+
1460
+ m->item().s_voidp = valuelist;
1461
+ m->next();
1462
+
1463
+ if (!m->type().isConst()) {
1464
+ rb_ary_clear(list);
1465
+
1466
+ for ( QList<int>::iterator i = valuelist->begin();
1467
+ i != valuelist->end();
1468
+ ++i )
1469
+ {
1470
+ rb_ary_push(list, INT2NUM((int)*i));
1471
+ }
1472
+ }
1473
+
1474
+ if (m->cleanup()) {
1475
+ delete valuelist;
1476
+ }
1477
+ }
1478
+ break;
1479
+ case Marshall::ToVALUE:
1480
+ {
1481
+ QList<int> *valuelist = (QList<int>*)m->item().s_voidp;
1482
+ if(!valuelist) {
1483
+ *(m->var()) = Qnil;
1484
+ break;
1485
+ }
1486
+
1487
+ VALUE av = rb_ary_new();
1488
+
1489
+ for ( QList<int>::iterator i = valuelist->begin();
1490
+ i != valuelist->end();
1491
+ ++i )
1492
+ {
1493
+ rb_ary_push(av, INT2NUM((int)*i));
1494
+ }
1495
+
1496
+ *(m->var()) = av;
1497
+ m->next();
1498
+
1499
+ if (m->cleanup()) {
1500
+ delete valuelist;
1501
+ }
1502
+ }
1503
+ break;
1504
+ default:
1505
+ m->unsupported();
1506
+ break;
1507
+ }
1508
+ }
1509
+
1510
+
1511
+ void marshall_QListUInt(Marshall *m) {
1512
+ switch(m->action()) {
1513
+ case Marshall::FromVALUE:
1514
+ {
1515
+ VALUE list = *(m->var());
1516
+ if (TYPE(list) != T_ARRAY) {
1517
+ m->item().s_voidp = 0;
1518
+ break;
1519
+ }
1520
+ int count = RARRAY_LEN(list);
1521
+ QList<uint> *valuelist = new QList<uint>;
1522
+ long i;
1523
+ for(i = 0; i < count; i++) {
1524
+ VALUE item = rb_ary_entry(list, i);
1525
+ if(TYPE(item) != T_FIXNUM && TYPE(item) != T_BIGNUM) {
1526
+ valuelist->append(0);
1527
+ continue;
1528
+ }
1529
+ valuelist->append(NUM2UINT(item));
1530
+ }
1531
+
1532
+ m->item().s_voidp = valuelist;
1533
+ m->next();
1534
+
1535
+ if (!m->type().isConst()) {
1536
+ rb_ary_clear(list);
1537
+
1538
+ for ( QList<uint>::iterator i = valuelist->begin();
1539
+ i != valuelist->end();
1540
+ ++i )
1541
+ {
1542
+ rb_ary_push(list, UINT2NUM((int)*i));
1543
+ }
1544
+ }
1545
+
1546
+ if (m->cleanup()) {
1547
+ delete valuelist;
1548
+ }
1549
+ }
1550
+ break;
1551
+ case Marshall::ToVALUE:
1552
+ {
1553
+ QList<uint> *valuelist = (QList<uint>*)m->item().s_voidp;
1554
+ if(!valuelist) {
1555
+ *(m->var()) = Qnil;
1556
+ break;
1557
+ }
1558
+
1559
+ VALUE av = rb_ary_new();
1560
+
1561
+ for ( QList<uint>::iterator i = valuelist->begin();
1562
+ i != valuelist->end();
1563
+ ++i )
1564
+ {
1565
+ rb_ary_push(av, UINT2NUM((int)*i));
1566
+ }
1567
+
1568
+ *(m->var()) = av;
1569
+ m->next();
1570
+
1571
+ if (m->cleanup()) {
1572
+ delete valuelist;
1573
+ }
1574
+ }
1575
+ break;
1576
+ default:
1577
+ m->unsupported();
1578
+ break;
1579
+ }
1580
+ }
1581
+
1582
+ void marshall_QListqreal(Marshall *m) {
1583
+ switch(m->action()) {
1584
+ case Marshall::FromVALUE:
1585
+ {
1586
+ VALUE list = *(m->var());
1587
+ if (TYPE(list) != T_ARRAY) {
1588
+ m->item().s_voidp = 0;
1589
+ break;
1590
+ }
1591
+ int count = RARRAY_LEN(list);
1592
+ QList<qreal> *valuelist = new QList<qreal>;
1593
+ long i;
1594
+ for(i = 0; i < count; i++) {
1595
+ VALUE item = rb_ary_entry(list, i);
1596
+ if(TYPE(item) != T_FLOAT) {
1597
+ valuelist->append(0.0);
1598
+ continue;
1599
+ }
1600
+ valuelist->append(NUM2DBL(item));
1601
+ }
1602
+
1603
+ m->item().s_voidp = valuelist;
1604
+ m->next();
1605
+
1606
+ if (!m->type().isConst()) {
1607
+ rb_ary_clear(list);
1608
+
1609
+ for ( QList<qreal>::iterator i = valuelist->begin();
1610
+ i != valuelist->end();
1611
+ ++i )
1612
+ {
1613
+ rb_ary_push(list, rb_float_new((qreal)*i));
1614
+ }
1615
+ }
1616
+
1617
+ if (m->cleanup()) {
1618
+ delete valuelist;
1619
+ }
1620
+ }
1621
+ break;
1622
+ case Marshall::ToVALUE:
1623
+ {
1624
+ QList<qreal> *valuelist = (QList<qreal>*)m->item().s_voidp;
1625
+ if(!valuelist) {
1626
+ *(m->var()) = Qnil;
1627
+ break;
1628
+ }
1629
+
1630
+ VALUE av = rb_ary_new();
1631
+
1632
+ for ( QList<qreal>::iterator i = valuelist->begin();
1633
+ i != valuelist->end();
1634
+ ++i )
1635
+ {
1636
+ rb_ary_push(av, rb_float_new((qreal)*i));
1637
+ }
1638
+
1639
+ *(m->var()) = av;
1640
+ m->next();
1641
+
1642
+ if (m->cleanup()) {
1643
+ delete valuelist;
1644
+ }
1645
+ }
1646
+ break;
1647
+ default:
1648
+ m->unsupported();
1649
+ break;
1650
+ }
1651
+ }
1652
+
1653
+ void marshall_QVectorqreal(Marshall *m) {
1654
+ switch(m->action()) {
1655
+ case Marshall::FromVALUE:
1656
+ {
1657
+ VALUE list = *(m->var());
1658
+
1659
+ list = rb_check_array_type(*(m->var()));
1660
+ if (NIL_P(list)) {
1661
+ m->item().s_voidp = 0;
1662
+ break;
1663
+ }
1664
+
1665
+ int count = RARRAY_LEN(list);
1666
+ QVector<qreal> *valuelist = new QVector<qreal>;
1667
+ long i;
1668
+ for (i = 0; i < count; i++) {
1669
+ valuelist->append(NUM2DBL(rb_ary_entry(list, i)));
1670
+ }
1671
+
1672
+ m->item().s_voidp = valuelist;
1673
+ m->next();
1674
+
1675
+ if (!m->type().isConst()) {
1676
+ rb_ary_clear(list);
1677
+
1678
+ for ( QVector<qreal>::iterator i = valuelist->begin();
1679
+ i != valuelist->end();
1680
+ ++i )
1681
+ {
1682
+ rb_ary_push(list, rb_float_new((qreal)*i));
1683
+ }
1684
+ }
1685
+
1686
+ if (m->cleanup()) {
1687
+ delete valuelist;
1688
+ }
1689
+ }
1690
+ break;
1691
+ case Marshall::ToVALUE:
1692
+ {
1693
+ QVector<qreal> *valuelist = (QVector<qreal>*)m->item().s_voidp;
1694
+ if(!valuelist) {
1695
+ *(m->var()) = Qnil;
1696
+ break;
1697
+ }
1698
+
1699
+ VALUE av = rb_ary_new();
1700
+
1701
+ for ( QVector<qreal>::iterator i = valuelist->begin();
1702
+ i != valuelist->end();
1703
+ ++i )
1704
+ {
1705
+ rb_ary_push(av, rb_float_new((qreal)*i));
1706
+ }
1707
+
1708
+ *(m->var()) = av;
1709
+ m->next();
1710
+
1711
+ if (m->cleanup()) {
1712
+ delete valuelist;
1713
+ }
1714
+ }
1715
+ break;
1716
+ default:
1717
+ m->unsupported();
1718
+ break;
1719
+ }
1720
+ }
1721
+
1722
+ void marshall_QVectorint(Marshall *m) {
1723
+ switch(m->action()) {
1724
+ case Marshall::FromVALUE:
1725
+ {
1726
+ VALUE list = *(m->var());
1727
+
1728
+ list = rb_check_array_type(*(m->var()));
1729
+ if (NIL_P(list)) {
1730
+ m->item().s_voidp = 0;
1731
+ break;
1732
+ }
1733
+
1734
+ int count = RARRAY_LEN(list);
1735
+ QVector<int> *valuelist = new QVector<int>;
1736
+ long i;
1737
+ for (i = 0; i < count; i++) {
1738
+ valuelist->append(NUM2INT(rb_ary_entry(list, i)));
1739
+ }
1740
+
1741
+ m->item().s_voidp = valuelist;
1742
+ m->next();
1743
+
1744
+ if (!m->type().isConst()) {
1745
+ rb_ary_clear(list);
1746
+
1747
+ for ( QVector<int>::iterator i = valuelist->begin();
1748
+ i != valuelist->end();
1749
+ ++i )
1750
+ {
1751
+ rb_ary_push(list, INT2NUM((int)*i));
1752
+ }
1753
+ }
1754
+
1755
+ if (m->cleanup()) {
1756
+ delete valuelist;
1757
+ }
1758
+ }
1759
+ break;
1760
+ case Marshall::ToVALUE:
1761
+ {
1762
+ QVector<int> *valuelist = (QVector<int>*)m->item().s_voidp;
1763
+ if(!valuelist) {
1764
+ *(m->var()) = Qnil;
1765
+ break;
1766
+ }
1767
+
1768
+ VALUE av = rb_ary_new();
1769
+
1770
+ for ( QVector<int>::iterator i = valuelist->begin();
1771
+ i != valuelist->end();
1772
+ ++i )
1773
+ {
1774
+ rb_ary_push(av, INT2NUM((int)*i));
1775
+ }
1776
+
1777
+ *(m->var()) = av;
1778
+ m->next();
1779
+
1780
+ if (m->cleanup()) {
1781
+ delete valuelist;
1782
+ }
1783
+ }
1784
+ break;
1785
+ default:
1786
+ m->unsupported();
1787
+ break;
1788
+ }
1789
+ }
1790
+
1791
+ void marshall_voidP(Marshall *m) {
1792
+ switch(m->action()) {
1793
+ case Marshall::FromVALUE:
1794
+ {
1795
+ VALUE rv = *(m->var());
1796
+ if (rv != Qnil)
1797
+ m->item().s_voidp = (void*)NUM2LONG(*(m->var()));
1798
+ else
1799
+ m->item().s_voidp = 0;
1800
+ }
1801
+ break;
1802
+ case Marshall::ToVALUE:
1803
+ {
1804
+ *(m->var()) = LONG2NUM((unsigned long) m->item().s_voidp);
1805
+ }
1806
+ break;
1807
+ default:
1808
+ m->unsupported();
1809
+ break;
1810
+ }
1811
+ }
1812
+
1813
+ void marshall_QMapQStringQString(Marshall *m) {
1814
+ switch(m->action()) {
1815
+ case Marshall::FromVALUE:
1816
+ {
1817
+ VALUE hash = *(m->var());
1818
+ if (TYPE(hash) != T_HASH) {
1819
+ m->item().s_voidp = 0;
1820
+ break;
1821
+ }
1822
+
1823
+ QMap<QString,QString> * map = new QMap<QString,QString>;
1824
+
1825
+ // Convert the ruby hash to an array of key/value arrays
1826
+ VALUE temp = rb_funcall(hash, rb_intern("to_a"), 0);
1827
+
1828
+ for (long i = 0; i < RARRAY_LEN(temp); i++) {
1829
+ VALUE key = rb_ary_entry(rb_ary_entry(temp, i), 0);
1830
+ VALUE value = rb_ary_entry(rb_ary_entry(temp, i), 1);
1831
+ (*map)[QString(StringValuePtr(key))] = QString(StringValuePtr(value));
1832
+ }
1833
+
1834
+ m->item().s_voidp = map;
1835
+ m->next();
1836
+
1837
+ if(m->cleanup())
1838
+ delete map;
1839
+ }
1840
+ break;
1841
+ case Marshall::ToVALUE:
1842
+ {
1843
+ QMap<QString,QString> *map = (QMap<QString,QString>*)m->item().s_voidp;
1844
+ if(!map) {
1845
+ *(m->var()) = Qnil;
1846
+ break;
1847
+ }
1848
+
1849
+ VALUE hv = rb_hash_new();
1850
+
1851
+ QMap<QString,QString>::Iterator it;
1852
+ for (it = map->begin(); it != map->end(); ++it) {
1853
+ rb_hash_aset(hv, rstringFromQString((QString*)&(it.key())), rstringFromQString((QString*) &(it.value())));
1854
+ }
1855
+
1856
+ *(m->var()) = hv;
1857
+ m->next();
1858
+
1859
+ if(m->cleanup())
1860
+ delete map;
1861
+ }
1862
+ break;
1863
+ default:
1864
+ m->unsupported();
1865
+ break;
1866
+ }
1867
+ }
1868
+
1869
+ void marshall_QMapQStringQVariant(Marshall *m) {
1870
+ switch(m->action()) {
1871
+ case Marshall::FromVALUE:
1872
+ {
1873
+ VALUE hash = *(m->var());
1874
+ if (TYPE(hash) != T_HASH) {
1875
+ m->item().s_voidp = 0;
1876
+ break;
1877
+ }
1878
+
1879
+ QMap<QString,QVariant> * map = new QMap<QString,QVariant>;
1880
+
1881
+ // Convert the ruby hash to an array of key/value arrays
1882
+ VALUE temp = rb_funcall(hash, rb_intern("to_a"), 0);
1883
+
1884
+ for (long i = 0; i < RARRAY_LEN(temp); i++) {
1885
+ VALUE key = rb_ary_entry(rb_ary_entry(temp, i), 0);
1886
+ VALUE value = rb_ary_entry(rb_ary_entry(temp, i), 1);
1887
+
1888
+ smokeruby_object *o = value_obj_info(value);
1889
+ if (!o || !o->ptr || o->classId != o->smoke->findClass("QVariant").index) {
1890
+ // If the value isn't a Qt::Variant, then try and construct
1891
+ // a Qt::Variant from it
1892
+ value = rb_funcall(qvariant_class, rb_intern("fromValue"), 1, value);
1893
+ if (value == Qnil) {
1894
+ continue;
1895
+ }
1896
+ o = value_obj_info(value);
1897
+ }
1898
+
1899
+ (*map)[QString(StringValuePtr(key))] = (QVariant)*(QVariant*)o->ptr;
1900
+ }
1901
+
1902
+ m->item().s_voidp = map;
1903
+ m->next();
1904
+
1905
+ if(m->cleanup())
1906
+ delete map;
1907
+ }
1908
+ break;
1909
+ case Marshall::ToVALUE:
1910
+ {
1911
+ QMap<QString,QVariant> *map = (QMap<QString,QVariant>*)m->item().s_voidp;
1912
+ if(!map) {
1913
+ *(m->var()) = Qnil;
1914
+ break;
1915
+ }
1916
+
1917
+ VALUE hv = rb_hash_new();
1918
+
1919
+ QMap<QString,QVariant>::Iterator it;
1920
+ for (it = map->begin(); it != map->end(); ++it) {
1921
+ void *p = new QVariant(it.value());
1922
+ VALUE obj = getPointerObject(p);
1923
+
1924
+ if (obj == Qnil) {
1925
+ smokeruby_object * o = alloc_smokeruby_object( true,
1926
+ m->smoke(),
1927
+ m->smoke()->idClass("QVariant").index,
1928
+ p );
1929
+ obj = set_obj_info("Qt::Variant", o);
1930
+ }
1931
+
1932
+ rb_hash_aset(hv, rstringFromQString((QString*)&(it.key())), obj);
1933
+ }
1934
+
1935
+ *(m->var()) = hv;
1936
+ m->next();
1937
+
1938
+ if(m->cleanup())
1939
+ delete map;
1940
+ }
1941
+ break;
1942
+ default:
1943
+ m->unsupported();
1944
+ break;
1945
+ }
1946
+ }
1947
+
1948
+ void marshall_QMapIntQVariant(Marshall *m) {
1949
+ switch(m->action()) {
1950
+ case Marshall::FromVALUE:
1951
+ {
1952
+ VALUE hash = *(m->var());
1953
+ if (TYPE(hash) != T_HASH) {
1954
+ m->item().s_voidp = 0;
1955
+ break;
1956
+ }
1957
+
1958
+ QMap<int,QVariant> * map = new QMap<int,QVariant>;
1959
+
1960
+ // Convert the ruby hash to an array of key/value arrays
1961
+ VALUE temp = rb_funcall(hash, rb_intern("to_a"), 0);
1962
+
1963
+ for (long i = 0; i < RARRAY_LEN(temp); i++) {
1964
+ VALUE key = rb_ary_entry(rb_ary_entry(temp, i), 0);
1965
+ VALUE value = rb_ary_entry(rb_ary_entry(temp, i), 1);
1966
+
1967
+ smokeruby_object *o = value_obj_info(value);
1968
+ if (!o || !o->ptr || o->classId != o->smoke->idClass("QVariant").index) {
1969
+ // If the value isn't a Qt::Variant, then try and construct
1970
+ // a Qt::Variant from it
1971
+ value = rb_funcall(qvariant_class, rb_intern("fromValue"), 1, value);
1972
+ if (value == Qnil) {
1973
+ continue;
1974
+ }
1975
+ o = value_obj_info(value);
1976
+ }
1977
+
1978
+ (*map)[NUM2INT(key)] = (QVariant)*(QVariant*)o->ptr;
1979
+ }
1980
+
1981
+ m->item().s_voidp = map;
1982
+ m->next();
1983
+
1984
+ if(m->cleanup())
1985
+ delete map;
1986
+ }
1987
+ break;
1988
+ case Marshall::ToVALUE:
1989
+ {
1990
+ QMap<int,QVariant> *map = (QMap<int,QVariant>*)m->item().s_voidp;
1991
+ if (!map) {
1992
+ *(m->var()) = Qnil;
1993
+ break;
1994
+ }
1995
+
1996
+ VALUE hv = rb_hash_new();
1997
+
1998
+ QMap<int,QVariant>::Iterator it;
1999
+ for (it = map->begin(); it != map->end(); ++it) {
2000
+ void *p = new QVariant(it.value());
2001
+ VALUE obj = getPointerObject(p);
2002
+
2003
+ if (obj == Qnil) {
2004
+ smokeruby_object * o = alloc_smokeruby_object( true,
2005
+ m->smoke(),
2006
+ m->smoke()->idClass("QVariant").index,
2007
+ p );
2008
+ obj = set_obj_info("Qt::Variant", o);
2009
+ }
2010
+
2011
+ rb_hash_aset(hv, INT2NUM(it.key()), obj);
2012
+ }
2013
+
2014
+ *(m->var()) = hv;
2015
+ m->next();
2016
+
2017
+ if(m->cleanup())
2018
+ delete map;
2019
+ }
2020
+ break;
2021
+ default:
2022
+ m->unsupported();
2023
+ break;
2024
+ }
2025
+ }
2026
+
2027
+ void marshall_QMapintQVariant(Marshall *m) {
2028
+ switch(m->action()) {
2029
+ case Marshall::FromVALUE:
2030
+ {
2031
+ VALUE hash = *(m->var());
2032
+ if (TYPE(hash) != T_HASH) {
2033
+ m->item().s_voidp = 0;
2034
+ break;
2035
+ }
2036
+
2037
+ QMap<int,QVariant> * map = new QMap<int,QVariant>;
2038
+
2039
+ // Convert the ruby hash to an array of key/value arrays
2040
+ VALUE temp = rb_funcall(hash, rb_intern("to_a"), 0);
2041
+
2042
+ for (long i = 0; i < RARRAY_LEN(temp); i++) {
2043
+ VALUE key = rb_ary_entry(rb_ary_entry(temp, i), 0);
2044
+ VALUE value = rb_ary_entry(rb_ary_entry(temp, i), 1);
2045
+
2046
+ smokeruby_object *o = value_obj_info(value);
2047
+ if( !o || !o->ptr)
2048
+ continue;
2049
+ void * ptr = o->ptr;
2050
+ ptr = o->smoke->cast(ptr, o->classId, o->smoke->idClass("QVariant").index);
2051
+
2052
+ (*map)[NUM2INT(key)] = (QVariant)*(QVariant*)ptr;
2053
+ }
2054
+
2055
+ m->item().s_voidp = map;
2056
+ m->next();
2057
+
2058
+ if(m->cleanup())
2059
+ delete map;
2060
+ }
2061
+ break;
2062
+ case Marshall::ToVALUE:
2063
+ {
2064
+ QMap<int,QVariant> *map = (QMap<int,QVariant>*)m->item().s_voidp;
2065
+ if(!map) {
2066
+ *(m->var()) = Qnil;
2067
+ break;
2068
+ }
2069
+
2070
+ VALUE hv = rb_hash_new();
2071
+
2072
+ QMap<int,QVariant>::Iterator it;
2073
+ for (it = map->begin(); it != map->end(); ++it) {
2074
+ void *p = new QVariant(it.value());
2075
+ VALUE obj = getPointerObject(p);
2076
+
2077
+ if (obj == Qnil) {
2078
+ smokeruby_object * o = alloc_smokeruby_object( true,
2079
+ m->smoke(),
2080
+ m->smoke()->idClass("QVariant").index,
2081
+ p );
2082
+ obj = set_obj_info("Qt::Variant", o);
2083
+ }
2084
+
2085
+ rb_hash_aset(hv, INT2NUM((int)(it.key())), obj);
2086
+ }
2087
+
2088
+ *(m->var()) = hv;
2089
+ m->next();
2090
+
2091
+ if(m->cleanup())
2092
+ delete map;
2093
+ }
2094
+ break;
2095
+ default:
2096
+ m->unsupported();
2097
+ break;
2098
+ }
2099
+ }
2100
+
2101
+ void marshall_voidP_array(Marshall *m) {
2102
+ switch(m->action()) {
2103
+ case Marshall::FromVALUE:
2104
+ {
2105
+ VALUE rv = *(m->var());
2106
+ if (rv != Qnil) {
2107
+ Data_Get_Struct(rv, void*, m->item().s_voidp);
2108
+ } else {
2109
+ m->item().s_voidp = 0;
2110
+ }
2111
+ }
2112
+ break;
2113
+ case Marshall::ToVALUE:
2114
+ {
2115
+ VALUE rv = Data_Wrap_Struct(rb_cObject, 0, 0, m->item().s_voidp);
2116
+ *(m->var()) = rv;
2117
+ }
2118
+ break;
2119
+ default:
2120
+ m->unsupported();
2121
+ break;
2122
+ }
2123
+ }
2124
+
2125
+ void marshall_QRgb_array(Marshall *m) {
2126
+ switch(m->action()) {
2127
+ case Marshall::FromVALUE:
2128
+ {
2129
+ VALUE list = *(m->var());
2130
+ if (TYPE(list) != T_ARRAY) {
2131
+ m->item().s_voidp = 0;
2132
+ break;
2133
+ }
2134
+ int count = RARRAY_LEN(list);
2135
+ QRgb *rgb = new QRgb[count + 2];
2136
+ long i;
2137
+ for(i = 0; i < count; i++) {
2138
+ VALUE item = rb_ary_entry(list, i);
2139
+ if(TYPE(item) != T_FIXNUM && TYPE(item) != T_BIGNUM) {
2140
+ rgb[i] = 0;
2141
+ continue;
2142
+ }
2143
+
2144
+ rgb[i] = NUM2UINT(item);
2145
+ }
2146
+ m->item().s_voidp = rgb;
2147
+ m->next();
2148
+ }
2149
+ break;
2150
+ case Marshall::ToVALUE:
2151
+ // Implement this with a tied array or something
2152
+ default:
2153
+ m->unsupported();
2154
+ break;
2155
+ }
2156
+ }
2157
+
2158
+ void marshall_QPairQStringQStringList(Marshall *m) {
2159
+ switch(m->action()) {
2160
+ case Marshall::FromVALUE:
2161
+ {
2162
+ VALUE list = *(m->var());
2163
+ if (TYPE(list) != T_ARRAY) {
2164
+ m->item().s_voidp = 0;
2165
+ break;
2166
+ }
2167
+
2168
+ QList<QPair<QString,QString> > * pairlist = new QList<QPair<QString,QString> >();
2169
+ int count = RARRAY_LEN(list);
2170
+
2171
+ for (long i = 0; i < count; i++) {
2172
+ VALUE item = rb_ary_entry(list, i);
2173
+ if (TYPE(item) != T_ARRAY || RARRAY_LEN(item) != 2) {
2174
+ continue;
2175
+ }
2176
+ VALUE s1 = rb_ary_entry(item, 0);
2177
+ VALUE s2 = rb_ary_entry(item, 1);
2178
+ QPair<QString,QString> * qpair = new QPair<QString,QString>(*(qstringFromRString(s1)),*(qstringFromRString(s2)));
2179
+ pairlist->append(*qpair);
2180
+ }
2181
+
2182
+ m->item().s_voidp = pairlist;
2183
+ m->next();
2184
+
2185
+ if (m->cleanup()) {
2186
+ delete pairlist;
2187
+ }
2188
+
2189
+ break;
2190
+ }
2191
+
2192
+ case Marshall::ToVALUE:
2193
+ {
2194
+ QList<QPair<QString,QString> > *pairlist = static_cast<QList<QPair<QString,QString> > * >(m->item().s_voidp);
2195
+ if (pairlist == 0) {
2196
+ *(m->var()) = Qnil;
2197
+ break;
2198
+ }
2199
+
2200
+ VALUE av = rb_ary_new();
2201
+ for (QList<QPair<QString,QString> >::Iterator it = pairlist->begin(); it != pairlist->end(); ++it) {
2202
+ QPair<QString,QString> * pair = &(*it);
2203
+ VALUE rv1 = rstringFromQString(&(pair->first));
2204
+ VALUE rv2 = rstringFromQString(&(pair->second));
2205
+ VALUE pv = rb_ary_new();
2206
+ rb_ary_push(pv, rv1);
2207
+ rb_ary_push(pv, rv2);
2208
+ rb_ary_push(av, pv);
2209
+ }
2210
+
2211
+ *(m->var()) = av;
2212
+
2213
+ if (m->cleanup()) {
2214
+ delete pairlist;
2215
+ }
2216
+
2217
+ }
2218
+ break;
2219
+ default:
2220
+ m->unsupported();
2221
+ break;
2222
+ }
2223
+ }
2224
+
2225
+ void marshall_QPairqrealQColor(Marshall *m) {
2226
+ switch(m->action()) {
2227
+ case Marshall::FromVALUE:
2228
+ {
2229
+ VALUE list = *(m->var());
2230
+ if (TYPE(list) != T_ARRAY || RARRAY_LEN(list) != 2) {
2231
+ m->item().s_voidp = 0;
2232
+ break;
2233
+ }
2234
+
2235
+ qreal real;
2236
+ VALUE item1 = rb_ary_entry(list, 0);
2237
+ if (TYPE(item1) != T_FLOAT) {
2238
+ real = 0;
2239
+ } else {
2240
+ real = NUM2DBL(item1);
2241
+ }
2242
+
2243
+ VALUE item2 = rb_ary_entry(list, 1);
2244
+
2245
+ smokeruby_object *o = value_obj_info(item2);
2246
+ if (o == 0 || o->ptr == 0) {
2247
+ m->item().s_voidp = 0;
2248
+ break;
2249
+ }
2250
+
2251
+ QPair<qreal,QColor> * qpair = new QPair<qreal,QColor>(real, *((QColor *) o->ptr));
2252
+ m->item().s_voidp = qpair;
2253
+ m->next();
2254
+
2255
+ if (m->cleanup()) {
2256
+ delete qpair;
2257
+ }
2258
+ }
2259
+ break;
2260
+ case Marshall::ToVALUE:
2261
+ {
2262
+ QPair<qreal,QColor> * qpair = static_cast<QPair<qreal,QColor> * >(m->item().s_voidp);
2263
+ if (qpair == 0) {
2264
+ *(m->var()) = Qnil;
2265
+ break;
2266
+ }
2267
+
2268
+ VALUE rv1 = rb_float_new(qpair->first);
2269
+
2270
+ void *p = (void *) &(qpair->second);
2271
+ VALUE rv2 = getPointerObject(p);
2272
+ if (rv2 == Qnil) {
2273
+ smokeruby_object * o = alloc_smokeruby_object( false,
2274
+ m->smoke(),
2275
+ m->smoke()->idClass("QColor").index,
2276
+ p );
2277
+ rv2 = set_obj_info("Qt::Color", o);
2278
+ }
2279
+
2280
+ VALUE av = rb_ary_new();
2281
+ rb_ary_push(av, rv1);
2282
+ rb_ary_push(av, rv2);
2283
+ *(m->var()) = av;
2284
+
2285
+ if (m->cleanup()) {
2286
+ // delete qpair;
2287
+ }
2288
+ }
2289
+ break;
2290
+ default:
2291
+ m->unsupported();
2292
+ break;
2293
+ }
2294
+ }
2295
+
2296
+ void marshall_QPairintint(Marshall *m) {
2297
+ switch(m->action()) {
2298
+ case Marshall::FromVALUE:
2299
+ {
2300
+ VALUE list = *(m->var());
2301
+ if (TYPE(list) != T_ARRAY || RARRAY_LEN(list) != 2) {
2302
+ m->item().s_voidp = 0;
2303
+ break;
2304
+ }
2305
+ int int0;
2306
+ int int1;
2307
+ VALUE item = rb_ary_entry(list, 0);
2308
+ if (TYPE(item) != T_FIXNUM && TYPE(item) != T_BIGNUM) {
2309
+ int0 = 0;
2310
+ } else {
2311
+ int0 = NUM2INT(item);
2312
+ }
2313
+
2314
+ item = rb_ary_entry(list, 1);
2315
+
2316
+ if (TYPE(item) != T_FIXNUM && TYPE(item) != T_BIGNUM) {
2317
+ int1 = 0;
2318
+ } else {
2319
+ int1 = NUM2INT(item);
2320
+ }
2321
+
2322
+ QPair<int,int> * qpair = new QPair<int,int>(int0,int1);
2323
+ m->item().s_voidp = qpair;
2324
+ m->next();
2325
+
2326
+ if (m->cleanup()) {
2327
+ delete qpair;
2328
+ }
2329
+ }
2330
+ break;
2331
+ case Marshall::ToVALUE:
2332
+ default:
2333
+ m->unsupported();
2334
+ break;
2335
+ }
2336
+ }
2337
+
2338
+ DEF_LIST_MARSHALLER( QAbstractButtonList, QList<QAbstractButton*>, QAbstractButton )
2339
+ DEF_LIST_MARSHALLER( QActionGroupList, QList<QActionGroup*>, QActionGroup )
2340
+ DEF_LIST_MARSHALLER( QActionList, QList<QAction*>, QAction )
2341
+ DEF_LIST_MARSHALLER( QListWidgetItemList, QList<QListWidgetItem*>, QListWidgetItem )
2342
+ DEF_LIST_MARSHALLER( QObjectList, QList<QObject*>, QObject )
2343
+ DEF_LIST_MARSHALLER( QTableWidgetList, QList<QTableWidget*>, QTableWidget )
2344
+ DEF_LIST_MARSHALLER( QTableWidgetItemList, QList<QTableWidgetItem*>, QTableWidgetItem )
2345
+ DEF_LIST_MARSHALLER( QTextFrameList, QList<QTextFrame*>, QTextFrame )
2346
+ DEF_LIST_MARSHALLER( QTreeWidgetItemList, QList<QTreeWidgetItem*>, QTreeWidgetItem )
2347
+ DEF_LIST_MARSHALLER( QTreeWidgetList, QList<QTreeWidget*>, QTreeWidget )
2348
+ DEF_LIST_MARSHALLER( QWidgetList, QList<QWidget*>, QWidget )
2349
+ DEF_LIST_MARSHALLER( QWidgetPtrList, QList<QWidget*>, QWidget )
2350
+
2351
+ #if QT_VERSION >= 0x40200
2352
+ DEF_LIST_MARSHALLER( QGraphicsItemList, QList<QGraphicsItem*>, QGraphicsItem )
2353
+ DEF_LIST_MARSHALLER( QStandardItemList, QList<QStandardItem*>, QStandardItem )
2354
+ DEF_LIST_MARSHALLER( QUndoStackList, QList<QUndoStack*>, QUndoStack )
2355
+ #endif
2356
+
2357
+ #if QT_VERSION >= 0x40300
2358
+ DEF_LIST_MARSHALLER( QMdiSubWindowList, QList<QMdiSubWindow*>, QMdiSubWindow )
2359
+ #endif
2360
+
2361
+ DEF_VALUELIST_MARSHALLER( QColorVector, QVector<QColor>, QColor )
2362
+ DEF_VALUELIST_MARSHALLER( QFileInfoList, QFileInfoList, QFileInfo )
2363
+ DEF_VALUELIST_MARSHALLER( QHostAddressList, QList<QHostAddress>, QHostAddress )
2364
+ DEF_VALUELIST_MARSHALLER( QImageTextKeyLangList, QList<QImageTextKeyLang>, QImageTextKeyLang )
2365
+ DEF_VALUELIST_MARSHALLER( QKeySequenceList, QList<QKeySequence>, QKeySequence )
2366
+ DEF_VALUELIST_MARSHALLER( QLineFVector, QVector<QLineF>, QLineF )
2367
+ DEF_VALUELIST_MARSHALLER( QLineVector, QVector<QLine>, QLine )
2368
+ DEF_VALUELIST_MARSHALLER( QModelIndexList, QList<QModelIndex>, QModelIndex )
2369
+ DEF_VALUELIST_MARSHALLER( QNetworkAddressEntryList, QList<QNetworkAddressEntry>, QNetworkAddressEntry )
2370
+ DEF_VALUELIST_MARSHALLER( QNetworkInterfaceList, QList<QNetworkInterface>, QNetworkInterface )
2371
+ DEF_VALUELIST_MARSHALLER( QPixmapList, QList<QPixmap>, QPixmap )
2372
+ DEF_VALUELIST_MARSHALLER( QPointFVector, QVector<QPointF>, QPointF )
2373
+ DEF_VALUELIST_MARSHALLER( QPointVector, QVector<QPoint>, QPoint )
2374
+ DEF_VALUELIST_MARSHALLER( QPolygonFList, QList<QPolygonF>, QPolygonF )
2375
+ DEF_VALUELIST_MARSHALLER( QRectFList, QList<QRectF>, QRectF )
2376
+ DEF_VALUELIST_MARSHALLER( QRectFVector, QVector<QRectF>, QRectF )
2377
+ DEF_VALUELIST_MARSHALLER( QRectVector, QVector<QRect>, QRect )
2378
+ DEF_VALUELIST_MARSHALLER( QRgbVector, QVector<QRgb>, QRgb )
2379
+ DEF_VALUELIST_MARSHALLER( QTableWidgetSelectionRangeList, QList<QTableWidgetSelectionRange>, QTableWidgetSelectionRange )
2380
+ DEF_VALUELIST_MARSHALLER( QTextBlockList, QList<QTextBlock>, QTextBlock )
2381
+ DEF_VALUELIST_MARSHALLER( QTextEditExtraSelectionsList, QList<QTextEdit::ExtraSelection>, QTextEdit::ExtraSelection )
2382
+ DEF_VALUELIST_MARSHALLER( QTextFormatVector, QVector<QTextFormat>, QTextFormat )
2383
+ DEF_VALUELIST_MARSHALLER( QTextLayoutFormatRangeList, QList<QTextLayout::FormatRange>, QTextLayout::FormatRange)
2384
+ DEF_VALUELIST_MARSHALLER( QTextLengthVector, QVector<QTextLength>, QTextLength )
2385
+ DEF_VALUELIST_MARSHALLER( QUrlList, QList<QUrl>, QUrl )
2386
+ DEF_VALUELIST_MARSHALLER( QVariantList, QList<QVariant>, QVariant )
2387
+ DEF_VALUELIST_MARSHALLER( QVariantVector, QVector<QVariant>, QVariant )
2388
+
2389
+ #if QT_VERSION >= 0x40300
2390
+ DEF_VALUELIST_MARSHALLER( QSslCertificateList, QList<QSslCertificate>, QSslCertificate )
2391
+ DEF_VALUELIST_MARSHALLER( QSslCipherList, QList<QSslCipher>, QSslCipher )
2392
+ DEF_VALUELIST_MARSHALLER( QSslErrorList, QList<QSslError>, QSslError )
2393
+ DEF_VALUELIST_MARSHALLER( QXmlStreamEntityDeclarations, QVector<QXmlStreamEntityDeclaration>, QXmlStreamEntityDeclaration )
2394
+ DEF_VALUELIST_MARSHALLER( QXmlStreamNamespaceDeclarations, QVector<QXmlStreamNamespaceDeclaration>, QXmlStreamNamespaceDeclaration )
2395
+ DEF_VALUELIST_MARSHALLER( QXmlStreamNotationDeclarations, QVector<QXmlStreamNotationDeclaration>, QXmlStreamNotationDeclaration )
2396
+ #endif
2397
+
2398
+ #if QT_VERSION >= 0x40400
2399
+ DEF_VALUELIST_MARSHALLER( QNetworkCookieList, QList<QNetworkCookie>, QNetworkCookie )
2400
+ DEF_VALUELIST_MARSHALLER( QPrinterInfoList, QList<QPrinterInfo>, QPrinterInfo )
2401
+ #endif
2402
+
2403
+ Q_DECL_EXPORT TypeHandler Qt_handlers[] = {
2404
+ { "bool*", marshall_it<bool *> },
2405
+ { "bool&", marshall_it<bool *> },
2406
+ { "char**", marshall_charP_array },
2407
+ { "char*",marshall_it<char *> },
2408
+ { "DOM::DOMTimeStamp", marshall_it<long long> },
2409
+ { "double*", marshall_doubleR },
2410
+ { "double&", marshall_doubleR },
2411
+ { "int*", marshall_it<int *> },
2412
+ { "int&", marshall_it<int *> },
2413
+ { "KIO::filesize_t", marshall_it<long long> },
2414
+ { "long long", marshall_it<long long> },
2415
+ { "long long int", marshall_it<long long> },
2416
+ { "long long int&", marshall_it<long long> },
2417
+ { "QDBusVariant", marshall_QDBusVariant },
2418
+ { "QDBusVariant&", marshall_QDBusVariant },
2419
+ { "QList<QFileInfo>", marshall_QFileInfoList },
2420
+ { "QFileInfoList", marshall_QFileInfoList },
2421
+ { "QGradiantStops", marshall_QPairqrealQColor },
2422
+ { "QGradiantStops&", marshall_QPairqrealQColor },
2423
+ { "unsigned int&", marshall_it<unsigned int *> },
2424
+ { "quint32&", marshall_it<unsigned int *> },
2425
+ { "uint&", marshall_it<unsigned int *> },
2426
+ { "qint32&", marshall_it<int *> },
2427
+ { "qint64", marshall_it<long long> },
2428
+ { "qint64&", marshall_it<long long> },
2429
+ { "QList<const char*>", marshall_QListCharStar },
2430
+ { "QList<int>", marshall_QListInt },
2431
+ { "QList<int>&", marshall_QListInt },
2432
+ { "QList<uint>", marshall_QListUInt },
2433
+ { "QList<uint>&", marshall_QListUInt },
2434
+ { "QList<QAbstractButton*>", marshall_QAbstractButtonList },
2435
+ { "QList<QActionGroup*>", marshall_QActionGroupList },
2436
+ { "QList<QAction*>", marshall_QActionList },
2437
+ { "QList<QAction*>&", marshall_QActionList },
2438
+ { "QList<QByteArray>", marshall_QByteArrayList },
2439
+ { "QList<QByteArray>*", marshall_QByteArrayList },
2440
+ { "QList<QByteArray>&", marshall_QByteArrayList },
2441
+ { "QList<QHostAddress>", marshall_QHostAddressList },
2442
+ { "QList<QHostAddress>&", marshall_QHostAddressList },
2443
+ { "QList<QImageTextKeyLang>", marshall_QImageTextKeyLangList },
2444
+ { "QList<QKeySequence>", marshall_QKeySequenceList },
2445
+ { "QList<QKeySequence>&", marshall_QKeySequenceList },
2446
+ { "QList<QListWidgetItem*>", marshall_QListWidgetItemList },
2447
+ { "QList<QListWidgetItem*>&", marshall_QListWidgetItemList },
2448
+ { "QList<QModelIndex>", marshall_QModelIndexList },
2449
+ { "QList<QModelIndex>&", marshall_QModelIndexList },
2450
+ { "QList<QNetworkAddressEntry>", marshall_QNetworkAddressEntryList },
2451
+ { "QList<QNetworkInterface>", marshall_QNetworkInterfaceList },
2452
+ { "QList<QPair<QString,QString> >", marshall_QPairQStringQStringList },
2453
+ { "QList<QPair<QString,QString> >&", marshall_QPairQStringQStringList },
2454
+ { "QList<QPixmap>", marshall_QPixmapList },
2455
+ { "QList<QPolygonF>", marshall_QPolygonFList },
2456
+ { "QList<QRectF>", marshall_QRectFList },
2457
+ { "QList<QRectF>&", marshall_QRectFList },
2458
+ { "QList<qreal>", marshall_QListqreal },
2459
+ { "QList<double>", marshall_QListqreal },
2460
+ { "QwtValueList", marshall_QListqreal },
2461
+ { "QwtValueList&", marshall_QListqreal },
2462
+ { "QList<double>&", marshall_QListqreal },
2463
+ { "QList<QObject*>", marshall_QObjectList },
2464
+ { "QList<QObject*>&", marshall_QObjectList },
2465
+ { "QList<QTableWidgetItem*>", marshall_QTableWidgetItemList },
2466
+ { "QList<QTableWidgetItem*>&", marshall_QTableWidgetItemList },
2467
+ { "QList<QTableWidgetSelectionRange>", marshall_QTableWidgetSelectionRangeList },
2468
+ { "QList<QTextBlock>", marshall_QTextBlockList },
2469
+ { "QList<QTextEdit::ExtraSelection>", marshall_QTextEditExtraSelectionsList },
2470
+ { "QList<QTextEdit::ExtraSelection>&", marshall_QTextEditExtraSelectionsList },
2471
+ { "QList<QTextFrame*>", marshall_QTextFrameList },
2472
+ { "QList<QTextLayout::FormatRange>", marshall_QTextLayoutFormatRangeList },
2473
+ { "QList<QTextLayout::FormatRange>&", marshall_QTextLayoutFormatRangeList },
2474
+ { "QList<QTreeWidgetItem*>", marshall_QTreeWidgetItemList },
2475
+ { "QList<QTreeWidgetItem*>&", marshall_QTreeWidgetItemList },
2476
+ { "QList<QUndoStack*>", marshall_QUndoStackList },
2477
+ { "QList<QUndoStack*>&", marshall_QUndoStackList },
2478
+ { "QList<QUrl>", marshall_QUrlList },
2479
+ { "QList<QUrl>&", marshall_QUrlList },
2480
+ { "QList<QVariant>", marshall_QVariantList },
2481
+ { "QList<QVariant>&", marshall_QVariantList },
2482
+ { "QList<QWidget*>", marshall_QWidgetPtrList },
2483
+ { "QList<QWidget*>&", marshall_QWidgetPtrList },
2484
+ { "qlonglong", marshall_it<long long> },
2485
+ { "qlonglong&", marshall_it<long long> },
2486
+ { "QMap<int,QVariant>", marshall_QMapintQVariant },
2487
+ { "QMap<int,QVariant>", marshall_QMapIntQVariant },
2488
+ { "QMap<int,QVariant>&", marshall_QMapIntQVariant },
2489
+ { "QMap<QString,QString>", marshall_QMapQStringQString },
2490
+ { "QMap<QString,QString>&", marshall_QMapQStringQString },
2491
+ { "QMap<QString,QVariant>", marshall_QMapQStringQVariant },
2492
+ { "QMap<QString,QVariant>&", marshall_QMapQStringQVariant },
2493
+ { "QVariantMap", marshall_QMapQStringQVariant },
2494
+ { "QVariantMap&", marshall_QMapQStringQVariant },
2495
+ { "QModelIndexList", marshall_QModelIndexList },
2496
+ { "QModelIndexList&", marshall_QModelIndexList },
2497
+ { "QObjectList", marshall_QObjectList },
2498
+ { "QObjectList&", marshall_QObjectList },
2499
+ { "QPair<int,int>&", marshall_QPairintint },
2500
+ { "Q_PID", marshall_it<Q_PID> },
2501
+ { "qreal*", marshall_doubleR },
2502
+ { "qreal&", marshall_doubleR },
2503
+ { "QRgb*", marshall_QRgb_array },
2504
+ { "QStringList", marshall_QStringList },
2505
+ { "QStringList*", marshall_QStringList },
2506
+ { "QStringList&", marshall_QStringList },
2507
+ { "QString", marshall_QString },
2508
+ { "QString*", marshall_QString },
2509
+ { "QString&", marshall_QString },
2510
+ { "QByteArray", marshall_QByteArray },
2511
+ { "QByteArray*", marshall_QByteArray },
2512
+ { "QByteArray&", marshall_QByteArray },
2513
+ { "quint64", marshall_it<unsigned long long> },
2514
+ { "quint64&", marshall_it<unsigned long long> },
2515
+ { "qulonglong", marshall_it<unsigned long long> },
2516
+ { "qulonglong&", marshall_it<unsigned long long> },
2517
+ { "QVariantList&", marshall_QVariantList },
2518
+ { "QVector<int>", marshall_QVectorint },
2519
+ { "QVector<int>&", marshall_QVectorint },
2520
+ { "QVector<QColor>", marshall_QColorVector },
2521
+ { "QVector<QColor>&", marshall_QColorVector },
2522
+ { "QVector<QLineF>", marshall_QLineFVector },
2523
+ { "QVector<QLineF>&", marshall_QLineFVector },
2524
+ { "QVector<QLine>", marshall_QLineVector },
2525
+ { "QVector<QLine>&", marshall_QLineVector },
2526
+ { "QVector<QPointF>", marshall_QPointFVector },
2527
+ { "QVector<QPointF>&", marshall_QPointFVector },
2528
+ { "QVector<QPoint>", marshall_QPointVector },
2529
+ { "QVector<QPoint>&", marshall_QPointVector },
2530
+ { "QVector<qreal>", marshall_QVectorqreal },
2531
+ { "QVector<qreal>&", marshall_QVectorqreal },
2532
+ { "QVector<double>", marshall_QVectorqreal },
2533
+ { "QVector<double>&", marshall_QVectorqreal },
2534
+ { "QVector<QRectF>", marshall_QRectFVector },
2535
+ { "QVector<QRectF>&", marshall_QRectFVector },
2536
+ { "QVector<QRect>", marshall_QRectVector },
2537
+ { "QVector<QRect>&", marshall_QRectVector },
2538
+ { "QVector<QRgb>", marshall_QRgbVector },
2539
+ { "QVector<QRgb>&", marshall_QRgbVector },
2540
+ { "QVector<QTextFormat>", marshall_QTextFormatVector },
2541
+ { "QVector<QTextFormat>&", marshall_QTextFormatVector },
2542
+ { "QVector<QTextLength>", marshall_QTextLengthVector },
2543
+ { "QVector<QTextLength>&", marshall_QTextLengthVector },
2544
+ { "QVector<QVariant>", marshall_QVariantVector },
2545
+ { "QVector<QVariant>&", marshall_QVariantVector },
2546
+ { "QWidgetList", marshall_QWidgetList },
2547
+ { "QWidgetList&", marshall_QWidgetList },
2548
+ { "QwtArray<double>", marshall_QVectorqreal },
2549
+ { "QwtArray<double>&", marshall_QVectorqreal },
2550
+ { "QwtArray<int>", marshall_QVectorint },
2551
+ { "QwtArray<int>&", marshall_QVectorint },
2552
+ { "signed int&", marshall_it<int *> },
2553
+ { "uchar*", marshall_ucharP },
2554
+ { "unsigned char*", marshall_ucharP },
2555
+ { "unsigned long long int", marshall_it<long long> },
2556
+ { "unsigned long long int&", marshall_it<long long> },
2557
+ { "void", marshall_void },
2558
+ { "void**", marshall_voidP_array },
2559
+ { "WId", marshall_it<WId> },
2560
+ { "HBITMAP__*", marshall_voidP },
2561
+ { "HDC__*", marshall_voidP },
2562
+ { "HFONT__*", marshall_voidP },
2563
+ { "HICON__*", marshall_voidP },
2564
+ { "HINSTANCE__*", marshall_voidP },
2565
+ { "HPALETTE__*", marshall_voidP },
2566
+ { "HRGN__*", marshall_voidP },
2567
+ { "HWND__*", marshall_voidP },
2568
+ #if QT_VERSION >= 0x40200
2569
+ { "QList<QGraphicsItem*>", marshall_QGraphicsItemList },
2570
+ { "QList<QGraphicsItem*>&", marshall_QGraphicsItemList },
2571
+ { "QList<QStandardItem*>", marshall_QStandardItemList },
2572
+ { "QList<QStandardItem*>&", marshall_QStandardItemList },
2573
+ { "QList<QUndoStack*>", marshall_QUndoStackList },
2574
+ { "QList<QUndoStack*>&", marshall_QUndoStackList },
2575
+ #endif
2576
+ #if QT_VERSION >= 0x40300
2577
+ { "QList<QMdiSubWindow*>", marshall_QMdiSubWindowList },
2578
+ { "QList<QSslCertificate>", marshall_QSslCertificateList },
2579
+ { "QList<QSslCertificate>&", marshall_QSslCertificateList },
2580
+ { "QList<QSslCipher>", marshall_QSslCipherList },
2581
+ { "QList<QSslCipher>&", marshall_QSslCipherList },
2582
+ { "QList<QSslError>", marshall_QSslErrorList },
2583
+ { "QList<QSslError>&", marshall_QSslErrorList },
2584
+ { "QXmlStreamEntityDeclarations", marshall_QXmlStreamEntityDeclarations },
2585
+ { "QXmlStreamNamespaceDeclarations", marshall_QXmlStreamNamespaceDeclarations },
2586
+ { "QXmlStreamNotationDeclarations", marshall_QXmlStreamNotationDeclarations },
2587
+ #endif
2588
+ #if QT_VERSION >= 0x040400
2589
+ { "QList<QNetworkCookie>", marshall_QNetworkCookieList },
2590
+ { "QList<QNetworkCookie>&", marshall_QNetworkCookieList },
2591
+ { "QList<QPrinterInfo>", marshall_QPrinterInfoList },
2592
+ #endif
2593
+ { 0, 0 }
2594
+ };
2595
+
2596
+ QHash<QByteArray, TypeHandler*> type_handlers;
2597
+
2598
+ void install_handlers(TypeHandler *h) {
2599
+ while(h->name) {
2600
+ type_handlers.insert(h->name, h);
2601
+ h++;
2602
+ }
2603
+ }
2604
+
2605
+ Marshall::HandlerFn getMarshallFn(const SmokeType &type) {
2606
+ if (type.elem())
2607
+ return marshall_basetype;
2608
+ if (!type.name())
2609
+ return marshall_void;
2610
+
2611
+ TypeHandler *h = type_handlers[type.name()];
2612
+
2613
+ if (h == 0 && type.isConst() && strlen(type.name()) > strlen("const ")) {
2614
+ h = type_handlers[type.name() + strlen("const ")];
2615
+ }
2616
+
2617
+ if (h != 0) {
2618
+ return h->fn;
2619
+ }
2620
+
2621
+ return marshall_unknown;
2622
+ }