qtbindings 4.8.6.1-x64-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (495) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.txt +48 -0
  3. data/COPYING.LIB.txt +510 -0
  4. data/COPYING.txt +286 -0
  5. data/KNOWN_ISSUES.txt +17 -0
  6. data/Rakefile +121 -0
  7. data/TODO.txt +2 -0
  8. data/bin/2.0/rbrcc.exe +0 -0
  9. data/bin/2.0/rbuic4.exe +0 -0
  10. data/bin/2.0/smokeapi.exe +0 -0
  11. data/bin/2.0/smokedeptool.exe +0 -0
  12. data/bin/2.1/rbrcc.exe +0 -0
  13. data/bin/2.1/rbuic4.exe +0 -0
  14. data/bin/2.1/smokeapi.exe +0 -0
  15. data/bin/2.1/smokedeptool.exe +0 -0
  16. data/bin/2.2/rbrcc.exe +0 -0
  17. data/bin/2.2/rbuic4.exe +0 -0
  18. data/bin/2.2/smokeapi.exe +0 -0
  19. data/bin/2.2/smokedeptool.exe +0 -0
  20. data/bin/rbqtapi +152 -0
  21. data/bin/rbrcc +14 -0
  22. data/bin/rbuic4 +14 -0
  23. data/bin/smokeapi +14 -0
  24. data/bin/smokedeptool +14 -0
  25. data/examples/designer/calculatorbuilder/calculatorbuilder.qrc +5 -0
  26. data/examples/designer/calculatorbuilder/calculatorform.rb +60 -0
  27. data/examples/designer/calculatorbuilder/calculatorform.ui +299 -0
  28. data/examples/designer/calculatorbuilder/main.rb +34 -0
  29. data/examples/designer/calculatorbuilder/makefile +2 -0
  30. data/examples/designer/calculatorform/calculatorform.rb +46 -0
  31. data/examples/designer/calculatorform/calculatorform.ui +277 -0
  32. data/examples/designer/calculatorform/main.rb +32 -0
  33. data/examples/designer/calculatorform/makefile +3 -0
  34. data/examples/desktop/screenshot/main.rb +32 -0
  35. data/examples/desktop/screenshot/screenshot.rb +157 -0
  36. data/examples/desktop/systray/images/bad.svg +64 -0
  37. data/examples/desktop/systray/images/heart.svg +55 -0
  38. data/examples/desktop/systray/images/trash.svg +58 -0
  39. data/examples/desktop/systray/main.rb +41 -0
  40. data/examples/desktop/systray/makefile +2 -0
  41. data/examples/desktop/systray/systray.qrc +7 -0
  42. data/examples/desktop/systray/window.rb +219 -0
  43. data/examples/dialogs/complexwizard/complexwizard.rb +140 -0
  44. data/examples/dialogs/complexwizard/licensewizard.rb +294 -0
  45. data/examples/dialogs/complexwizard/main.rb +31 -0
  46. data/examples/dialogs/configdialog/configdialog.rb +109 -0
  47. data/examples/dialogs/configdialog/images/config.png +0 -0
  48. data/examples/dialogs/configdialog/images/query.png +0 -0
  49. data/examples/dialogs/configdialog/images/update.png +0 -0
  50. data/examples/dialogs/configdialog/main.rb +31 -0
  51. data/examples/dialogs/configdialog/pages.rb +140 -0
  52. data/examples/dialogs/extension/finddialog.rb +89 -0
  53. data/examples/dialogs/extension/main.rb +31 -0
  54. data/examples/dialogs/findfiles/main.rb +32 -0
  55. data/examples/dialogs/findfiles/window.rb +177 -0
  56. data/examples/dialogs/simplewizard/classwizard.rb +374 -0
  57. data/examples/dialogs/simplewizard/main.rb +31 -0
  58. data/examples/dialogs/simplewizard/simplewizard.rb +110 -0
  59. data/examples/dialogs/standarddialogs/dialog.rb +340 -0
  60. data/examples/dialogs/standarddialogs/main.rb +31 -0
  61. data/examples/dialogs/tabdialog/main.rb +38 -0
  62. data/examples/dialogs/tabdialog/tabdialog.rb +178 -0
  63. data/examples/draganddrop/draggableicons/dragwidget.rb +125 -0
  64. data/examples/draganddrop/draggableicons/images/boat.png +0 -0
  65. data/examples/draganddrop/draggableicons/images/car.png +0 -0
  66. data/examples/draganddrop/draggableicons/images/house.png +0 -0
  67. data/examples/draganddrop/draggableicons/main.rb +41 -0
  68. data/examples/draganddrop/draggabletext/draglabel.rb +51 -0
  69. data/examples/draganddrop/draggabletext/dragwidget.rb +94 -0
  70. data/examples/draganddrop/draggabletext/main.rb +33 -0
  71. data/examples/draganddrop/draggabletext/words.txt +41 -0
  72. data/examples/draganddrop/dropsite/dropsitewidget.rb +99 -0
  73. data/examples/draganddrop/dropsite/dropsitewindow.rb +114 -0
  74. data/examples/draganddrop/dropsite/main.rb +33 -0
  75. data/examples/draganddrop/fridgemagnets/draglabel.rb +78 -0
  76. data/examples/draganddrop/fridgemagnets/dragwidget.rb +130 -0
  77. data/examples/draganddrop/fridgemagnets/main.rb +33 -0
  78. data/examples/draganddrop/fridgemagnets/words.txt +48 -0
  79. data/examples/draganddrop/puzzle/example.jpg +0 -0
  80. data/examples/draganddrop/puzzle/main.rb +33 -0
  81. data/examples/draganddrop/puzzle/mainwindow.rb +136 -0
  82. data/examples/draganddrop/puzzle/pieceslist.rb +95 -0
  83. data/examples/draganddrop/puzzle/puzzlewidget.rb +190 -0
  84. data/examples/graphicsview/collidingmice/images/cheese.jpg +0 -0
  85. data/examples/graphicsview/collidingmice/main.rb +53 -0
  86. data/examples/graphicsview/collidingmice/makefile +2 -0
  87. data/examples/graphicsview/collidingmice/mice.qrc +5 -0
  88. data/examples/graphicsview/collidingmice/mouse.rb +176 -0
  89. data/examples/graphicsview/dragdroprobot/coloritem.rb +86 -0
  90. data/examples/graphicsview/dragdroprobot/images/head.png +0 -0
  91. data/examples/graphicsview/dragdroprobot/main.rb +57 -0
  92. data/examples/graphicsview/dragdroprobot/makefile +2 -0
  93. data/examples/graphicsview/dragdroprobot/robot.qrc +5 -0
  94. data/examples/graphicsview/dragdroprobot/robot.rb +246 -0
  95. data/examples/itemviews/chart/chart.qrc +5 -0
  96. data/examples/itemviews/chart/main.rb +33 -0
  97. data/examples/itemviews/chart/mainwindow.rb +151 -0
  98. data/examples/itemviews/chart/makefile +2 -0
  99. data/examples/itemviews/chart/mydata.cht +8 -0
  100. data/examples/itemviews/chart/pieview.rb +516 -0
  101. data/examples/itemviews/chart/qtdata.cht +14 -0
  102. data/examples/itemviews/dirview/main.rb +39 -0
  103. data/examples/itemviews/pixelator/imagemodel.rb +51 -0
  104. data/examples/itemviews/pixelator/images.qrc +5 -0
  105. data/examples/itemviews/pixelator/images/qt.png +0 -0
  106. data/examples/itemviews/pixelator/main.rb +34 -0
  107. data/examples/itemviews/pixelator/mainwindow.rb +218 -0
  108. data/examples/itemviews/pixelator/makefile +3 -0
  109. data/examples/itemviews/pixelator/pixeldelegate.rb +67 -0
  110. data/examples/itemviews/puzzle/example.jpg +0 -0
  111. data/examples/itemviews/puzzle/main.rb +36 -0
  112. data/examples/itemviews/puzzle/mainwindow.rb +143 -0
  113. data/examples/itemviews/puzzle/piecesmodel.rb +174 -0
  114. data/examples/itemviews/puzzle/puzzlewidget.rb +192 -0
  115. data/examples/itemviews/simpledommodel/domitem.rb +62 -0
  116. data/examples/itemviews/simpledommodel/dommodel.rb +139 -0
  117. data/examples/itemviews/simpledommodel/main.rb +33 -0
  118. data/examples/itemviews/simpledommodel/mainwindow.rb +66 -0
  119. data/examples/itemviews/simpletreemodel/default.txt +40 -0
  120. data/examples/itemviews/simpletreemodel/main.rb +41 -0
  121. data/examples/itemviews/simpletreemodel/makefile +2 -0
  122. data/examples/itemviews/simpletreemodel/simpletreemodel.qrc +5 -0
  123. data/examples/itemviews/simpletreemodel/treeitem.rb +67 -0
  124. data/examples/itemviews/simpletreemodel/treemodel.rb +164 -0
  125. data/examples/itemviews/sortingmodel/default.txt +40 -0
  126. data/examples/itemviews/sortingmodel/main.rb +53 -0
  127. data/examples/itemviews/sortingmodel/treeitem.rb +73 -0
  128. data/examples/itemviews/sortingmodel/treemodel.rb +166 -0
  129. data/examples/itemviews/spinboxdelegate/main.rb +47 -0
  130. data/examples/itemviews/spinboxdelegate/spinboxdelegate.rb +62 -0
  131. data/examples/killerfilter/killerfilter.rb +55 -0
  132. data/examples/layouts/basiclayouts/dialog.rb +110 -0
  133. data/examples/layouts/basiclayouts/main.rb +31 -0
  134. data/examples/layouts/borderlayout/borderlayout.rb +190 -0
  135. data/examples/layouts/borderlayout/main.rb +32 -0
  136. data/examples/layouts/borderlayout/window.rb +52 -0
  137. data/examples/layouts/flowlayouts/flowlayout.rb +108 -0
  138. data/examples/layouts/flowlayouts/main.rb +32 -0
  139. data/examples/layouts/flowlayouts/window.rb +43 -0
  140. data/examples/mainwindows/application/images/copy.png +0 -0
  141. data/examples/mainwindows/application/images/cut.png +0 -0
  142. data/examples/mainwindows/application/images/new.png +0 -0
  143. data/examples/mainwindows/application/images/open.png +0 -0
  144. data/examples/mainwindows/application/images/paste.png +0 -0
  145. data/examples/mainwindows/application/images/save.png +0 -0
  146. data/examples/mainwindows/application/main.rb +32 -0
  147. data/examples/mainwindows/application/mainwindow.rb +285 -0
  148. data/examples/mainwindows/dockwidgets/images/new.png +0 -0
  149. data/examples/mainwindows/dockwidgets/images/print.png +0 -0
  150. data/examples/mainwindows/dockwidgets/images/save.png +0 -0
  151. data/examples/mainwindows/dockwidgets/images/undo.png +0 -0
  152. data/examples/mainwindows/dockwidgets/main.rb +32 -0
  153. data/examples/mainwindows/dockwidgets/mainwindow.rb +302 -0
  154. data/examples/mainwindows/mdi/images/copy.png +0 -0
  155. data/examples/mainwindows/mdi/images/cut.png +0 -0
  156. data/examples/mainwindows/mdi/images/new.png +0 -0
  157. data/examples/mainwindows/mdi/images/open.png +0 -0
  158. data/examples/mainwindows/mdi/images/paste.png +0 -0
  159. data/examples/mainwindows/mdi/images/save.png +0 -0
  160. data/examples/mainwindows/mdi/main.rb +32 -0
  161. data/examples/mainwindows/mdi/mainwindow.rb +363 -0
  162. data/examples/mainwindows/mdi/mdichild.rb +152 -0
  163. data/examples/mainwindows/menus/main.rb +32 -0
  164. data/examples/mainwindows/menus/mainwindow.rb +327 -0
  165. data/examples/mainwindows/recentfiles/main.rb +32 -0
  166. data/examples/mainwindows/recentfiles/mainwindow.rb +258 -0
  167. data/examples/mainwindows/sdi/images/copy.png +0 -0
  168. data/examples/mainwindows/sdi/images/cut.png +0 -0
  169. data/examples/mainwindows/sdi/images/new.png +0 -0
  170. data/examples/mainwindows/sdi/images/open.png +0 -0
  171. data/examples/mainwindows/sdi/images/paste.png +0 -0
  172. data/examples/mainwindows/sdi/images/save.png +0 -0
  173. data/examples/mainwindows/sdi/main.rb +32 -0
  174. data/examples/mainwindows/sdi/mainwindow.rb +335 -0
  175. data/examples/network/broadcastreceiver/main.rb +32 -0
  176. data/examples/network/broadcastreceiver/receiver.rb +64 -0
  177. data/examples/network/broadcastsender/main.rb +32 -0
  178. data/examples/network/broadcastsender/sender.rb +72 -0
  179. data/examples/network/fortuneclient/client.rb +149 -0
  180. data/examples/network/fortuneclient/main.rb +32 -0
  181. data/examples/network/fortuneserver/main.rb +32 -0
  182. data/examples/network/fortuneserver/server.rb +88 -0
  183. data/examples/network/ftp/ftpwindow.rb +259 -0
  184. data/examples/network/ftp/images/cdtoparent.png +0 -0
  185. data/examples/network/ftp/images/dir.png +0 -0
  186. data/examples/network/ftp/images/file.png +0 -0
  187. data/examples/network/ftp/main.rb +32 -0
  188. data/examples/network/http/httpwindow.rb +187 -0
  189. data/examples/network/http/main.rb +32 -0
  190. data/examples/network/loopback/dialog.rb +163 -0
  191. data/examples/network/loopback/main.rb +32 -0
  192. data/examples/opengl/grabber/glwidget.rb +265 -0
  193. data/examples/opengl/grabber/main.rb +32 -0
  194. data/examples/opengl/grabber/mainwindow.rb +189 -0
  195. data/examples/opengl/hellogl/glwidget.rb +226 -0
  196. data/examples/opengl/hellogl/main.rb +32 -0
  197. data/examples/opengl/hellogl/window.rb +66 -0
  198. data/examples/opengl/textures/glwidget.rb +151 -0
  199. data/examples/opengl/textures/images/side1.png +0 -0
  200. data/examples/opengl/textures/images/side2.png +0 -0
  201. data/examples/opengl/textures/images/side3.png +0 -0
  202. data/examples/opengl/textures/images/side4.png +0 -0
  203. data/examples/opengl/textures/images/side5.png +0 -0
  204. data/examples/opengl/textures/images/side6.png +0 -0
  205. data/examples/opengl/textures/main.rb +32 -0
  206. data/examples/opengl/textures/window.rb +77 -0
  207. data/examples/painting/basicdrawing/images/brick.png +0 -0
  208. data/examples/painting/basicdrawing/images/qt-logo.png +0 -0
  209. data/examples/painting/basicdrawing/main.rb +32 -0
  210. data/examples/painting/basicdrawing/renderarea.rb +166 -0
  211. data/examples/painting/basicdrawing/window.rb +215 -0
  212. data/examples/painting/concentriccircles/circlewidget.rb +88 -0
  213. data/examples/painting/concentriccircles/main.rb +32 -0
  214. data/examples/painting/concentriccircles/window.rb +72 -0
  215. data/examples/painting/fontsampler/main.rb +32 -0
  216. data/examples/painting/fontsampler/mainwindow.rb +369 -0
  217. data/examples/painting/fontsampler/mainwindowbase.ui +136 -0
  218. data/examples/painting/fontsampler/makefile +8 -0
  219. data/examples/painting/fontsampler/previewdialog.rb +257 -0
  220. data/examples/painting/fontsampler/previewdialogbase.ui +224 -0
  221. data/examples/painting/fontsampler/previewlabel.rb +43 -0
  222. data/examples/painting/imagecomposition/imagecomposer.rb +152 -0
  223. data/examples/painting/imagecomposition/imagecomposition.qrc +6 -0
  224. data/examples/painting/imagecomposition/images/background.png +0 -0
  225. data/examples/painting/imagecomposition/images/blackrectangle.png +0 -0
  226. data/examples/painting/imagecomposition/images/butterfly.png +0 -0
  227. data/examples/painting/imagecomposition/images/checker.png +0 -0
  228. data/examples/painting/imagecomposition/main.rb +33 -0
  229. data/examples/painting/imagecomposition/makefile +2 -0
  230. data/examples/painting/painterpaths/main.rb +32 -0
  231. data/examples/painting/painterpaths/renderarea.rb +97 -0
  232. data/examples/painting/painterpaths/window.rb +247 -0
  233. data/examples/painting/svgviewer/files/bubbles.svg +212 -0
  234. data/examples/painting/svgviewer/files/cubic.svg +77 -0
  235. data/examples/painting/svgviewer/files/spheres.svg +79 -0
  236. data/examples/painting/svgviewer/main.rb +38 -0
  237. data/examples/painting/svgviewer/mainwindow.rb +99 -0
  238. data/examples/painting/svgviewer/makefile +2 -0
  239. data/examples/painting/svgviewer/svgview.rb +156 -0
  240. data/examples/painting/svgviewer/svgviewer.qrc +6 -0
  241. data/examples/painting/svgviewer/svgwindow.rb +87 -0
  242. data/examples/painting/transformations/main.rb +32 -0
  243. data/examples/painting/transformations/renderarea.rb +127 -0
  244. data/examples/painting/transformations/window.rb +153 -0
  245. data/examples/passivepopup/passivepopup.rb +38 -0
  246. data/examples/qdbus/chat/chat.rb +146 -0
  247. data/examples/qdbus/chat/chat_adaptor.rb +12 -0
  248. data/examples/qdbus/chat/chat_interface.rb +13 -0
  249. data/examples/qdbus/chat/chatmainwindow.ui +184 -0
  250. data/examples/qdbus/chat/chatsetnickname.ui +145 -0
  251. data/examples/qdbus/chat/makefile +8 -0
  252. data/examples/qdbus/complexpingpong/complexping.rb +92 -0
  253. data/examples/qdbus/complexpingpong/complexpong.rb +83 -0
  254. data/examples/qdbus/complexpingpong/ping-common.rb +1 -0
  255. data/examples/qdbus/listnames/listnames.rb +69 -0
  256. data/examples/qdbus/pingpong/ping-common.rb +1 -0
  257. data/examples/qdbus/pingpong/ping.rb +52 -0
  258. data/examples/qdbus/pingpong/pong.rb +55 -0
  259. data/examples/qdbus/remotecontrolledcar/car/car.rb +151 -0
  260. data/examples/qdbus/remotecontrolledcar/car/main.rb +50 -0
  261. data/examples/qdbus/remotecontrolledcar/controller/controller.rb +66 -0
  262. data/examples/qdbus/remotecontrolledcar/controller/controller.ui +61 -0
  263. data/examples/qdbus/remotecontrolledcar/controller/main.rb +32 -0
  264. data/examples/qdbus/remotecontrolledcar/controller/makefile +2 -0
  265. data/examples/qtscribble/scribble.rb +270 -0
  266. data/examples/richtext/calendar/main.rb +33 -0
  267. data/examples/richtext/calendar/mainwindow.rb +173 -0
  268. data/examples/richtext/orderform/detailsdialog.rb +130 -0
  269. data/examples/richtext/orderform/main.rb +34 -0
  270. data/examples/richtext/orderform/mainwindow.rb +194 -0
  271. data/examples/richtext/syntaxhighlighter/examples/example +79 -0
  272. data/examples/richtext/syntaxhighlighter/highlighter.rb +90 -0
  273. data/examples/richtext/syntaxhighlighter/main.rb +34 -0
  274. data/examples/richtext/syntaxhighlighter/mainwindow.rb +105 -0
  275. data/examples/ruboids/LICENSE.txt +58 -0
  276. data/examples/ruboids/Manifest +26 -0
  277. data/examples/ruboids/README +53 -0
  278. data/examples/ruboids/TODO +29 -0
  279. data/examples/ruboids/boids.properties +33 -0
  280. data/examples/ruboids/generateManifest.rb +42 -0
  281. data/examples/ruboids/index.html +147 -0
  282. data/examples/ruboids/release.rb +152 -0
  283. data/examples/ruboids/ruboids/Boid.rb +141 -0
  284. data/examples/ruboids/ruboids/BoidView.rb +159 -0
  285. data/examples/ruboids/ruboids/Camera.rb +24 -0
  286. data/examples/ruboids/ruboids/CameraDialog.rb +218 -0
  287. data/examples/ruboids/ruboids/Canvas.rb +143 -0
  288. data/examples/ruboids/ruboids/Cloud.rb +61 -0
  289. data/examples/ruboids/ruboids/CloudView.rb +54 -0
  290. data/examples/ruboids/ruboids/Flock.rb +47 -0
  291. data/examples/ruboids/ruboids/Graphics.rb +278 -0
  292. data/examples/ruboids/ruboids/Params.rb +87 -0
  293. data/examples/ruboids/ruboids/Point.rb +153 -0
  294. data/examples/ruboids/ruboids/Thing.rb +34 -0
  295. data/examples/ruboids/ruboids/Triangle.rb +21 -0
  296. data/examples/ruboids/ruboids/View.rb +88 -0
  297. data/examples/ruboids/ruboids/World.rb +82 -0
  298. data/examples/ruboids/ruboids/WorldWindow.rb +52 -0
  299. data/examples/ruboids/ruboids/info.rb +12 -0
  300. data/examples/ruboids/ruboids/ruboids.rb +29 -0
  301. data/examples/run_all.rb +15 -0
  302. data/examples/threading/main_thread.rb +19 -0
  303. data/examples/tutorial/t1/t1.rb +10 -0
  304. data/examples/tutorial/t10/cannon.rb +72 -0
  305. data/examples/tutorial/t10/lcdrange.rb +45 -0
  306. data/examples/tutorial/t10/t10.rb +55 -0
  307. data/examples/tutorial/t11/cannon.rb +124 -0
  308. data/examples/tutorial/t11/lcdrange.rb +45 -0
  309. data/examples/tutorial/t11/t11.rb +65 -0
  310. data/examples/tutorial/t12/cannon.rb +158 -0
  311. data/examples/tutorial/t12/lcdrange.rb +59 -0
  312. data/examples/tutorial/t12/t12.rb +66 -0
  313. data/examples/tutorial/t13/cannon.rb +208 -0
  314. data/examples/tutorial/t13/gamebrd.rb +113 -0
  315. data/examples/tutorial/t13/lcdrange.rb +60 -0
  316. data/examples/tutorial/t13/t13.rb +11 -0
  317. data/examples/tutorial/t14/cannon.rb +263 -0
  318. data/examples/tutorial/t14/gamebrd.rb +123 -0
  319. data/examples/tutorial/t14/lcdrange.rb +63 -0
  320. data/examples/tutorial/t14/t14.rb +11 -0
  321. data/examples/tutorial/t2/t2.rb +16 -0
  322. data/examples/tutorial/t3/t3.rb +18 -0
  323. data/examples/tutorial/t4/t4.rb +25 -0
  324. data/examples/tutorial/t5/t5.rb +37 -0
  325. data/examples/tutorial/t6/t6.rb +52 -0
  326. data/examples/tutorial/t7/lcdrange.rb +32 -0
  327. data/examples/tutorial/t7/t7.rb +42 -0
  328. data/examples/tutorial/t8/cannon.rb +38 -0
  329. data/examples/tutorial/t8/lcdrange.rb +45 -0
  330. data/examples/tutorial/t8/t8.rb +43 -0
  331. data/examples/tutorial/t9/cannon.rb +45 -0
  332. data/examples/tutorial/t9/lcdrange.rb +46 -0
  333. data/examples/tutorial/t9/t9.rb +43 -0
  334. data/examples/widgets/analogclock/analogclock.rb +94 -0
  335. data/examples/widgets/analogclock/main.rb +9 -0
  336. data/examples/widgets/calculator/button.rb +45 -0
  337. data/examples/widgets/calculator/calculator.rb +382 -0
  338. data/examples/widgets/calculator/main.rb +32 -0
  339. data/examples/widgets/charactermap/characterwidget.rb +110 -0
  340. data/examples/widgets/charactermap/main.rb +32 -0
  341. data/examples/widgets/charactermap/mainwindow.rb +118 -0
  342. data/examples/widgets/digitalclock/digitalclock.rb +30 -0
  343. data/examples/widgets/digitalclock/main.rb +9 -0
  344. data/examples/widgets/groupbox/main.rb +32 -0
  345. data/examples/widgets/groupbox/window.rb +134 -0
  346. data/examples/widgets/icons/iconpreviewarea.rb +111 -0
  347. data/examples/widgets/icons/iconsizespinbox.rb +39 -0
  348. data/examples/widgets/icons/imagedelegate.rb +73 -0
  349. data/examples/widgets/icons/images/designer.png +0 -0
  350. data/examples/widgets/icons/images/find_disabled.png +0 -0
  351. data/examples/widgets/icons/images/find_normal.png +0 -0
  352. data/examples/widgets/icons/images/monkey_off_128x128.png +0 -0
  353. data/examples/widgets/icons/images/monkey_off_16x16.png +0 -0
  354. data/examples/widgets/icons/images/monkey_off_32x32.png +0 -0
  355. data/examples/widgets/icons/images/monkey_off_64x64.png +0 -0
  356. data/examples/widgets/icons/images/monkey_on_128x128.png +0 -0
  357. data/examples/widgets/icons/images/monkey_on_16x16.png +0 -0
  358. data/examples/widgets/icons/images/monkey_on_32x32.png +0 -0
  359. data/examples/widgets/icons/images/monkey_on_64x64.png +0 -0
  360. data/examples/widgets/icons/images/qtopia_16x16.png +0 -0
  361. data/examples/widgets/icons/images/qtopia_32x32.png +0 -0
  362. data/examples/widgets/icons/images/qtopia_48x48.png +0 -0
  363. data/examples/widgets/icons/main.rb +32 -0
  364. data/examples/widgets/icons/mainwindow.rb +351 -0
  365. data/examples/widgets/imageviewer/imageviewer.rb +219 -0
  366. data/examples/widgets/imageviewer/main.rb +32 -0
  367. data/examples/widgets/lineedits/main.rb +32 -0
  368. data/examples/widgets/lineedits/window.rb +199 -0
  369. data/examples/widgets/movie/images/open.png +0 -0
  370. data/examples/widgets/movie/images/pause.png +0 -0
  371. data/examples/widgets/movie/images/play.png +0 -0
  372. data/examples/widgets/movie/images/quit.png +0 -0
  373. data/examples/widgets/movie/images/stop.png +0 -0
  374. data/examples/widgets/movie/main.rb +32 -0
  375. data/examples/widgets/movie/movieplayer.rb +201 -0
  376. data/examples/widgets/movie/movies/fire.mng +0 -0
  377. data/examples/widgets/screenshot/main.rb +32 -0
  378. data/examples/widgets/screenshot/screenshot.rb +155 -0
  379. data/examples/widgets/scribble/main.rb +32 -0
  380. data/examples/widgets/scribble/mainwindow.rb +202 -0
  381. data/examples/widgets/scribble/scribblearea.rb +154 -0
  382. data/examples/widgets/sliders/main.rb +32 -0
  383. data/examples/widgets/sliders/slidersgroup.rb +97 -0
  384. data/examples/widgets/sliders/window.rb +124 -0
  385. data/examples/widgets/spinboxes/main.rb +32 -0
  386. data/examples/widgets/spinboxes/window.rb +213 -0
  387. data/examples/widgets/tetrix/main.rb +33 -0
  388. data/examples/widgets/tetrix/tetrixboard.rb +346 -0
  389. data/examples/widgets/tetrix/tetrixpiece.rb +135 -0
  390. data/examples/widgets/tetrix/tetrixwindow.rb +88 -0
  391. data/examples/widgets/tooltips/images/circle.png +0 -0
  392. data/examples/widgets/tooltips/images/square.png +0 -0
  393. data/examples/widgets/tooltips/images/triangle.png +0 -0
  394. data/examples/widgets/tooltips/main.rb +32 -0
  395. data/examples/widgets/tooltips/shapeitem.rb +31 -0
  396. data/examples/widgets/tooltips/sortingbox.rb +222 -0
  397. data/examples/widgets/wiggly/dialog.rb +48 -0
  398. data/examples/widgets/wiggly/main.rb +9 -0
  399. data/examples/widgets/wiggly/wigglywidget.rb +76 -0
  400. data/examples/widgets/windowflags/controllerwindow.rb +195 -0
  401. data/examples/widgets/windowflags/main.rb +32 -0
  402. data/examples/widgets/windowflags/previewwindow.rb +103 -0
  403. data/examples/xml/dombookmarks/frank.xbel +230 -0
  404. data/examples/xml/dombookmarks/jennifer.xbel +93 -0
  405. data/examples/xml/dombookmarks/main.rb +34 -0
  406. data/examples/xml/dombookmarks/mainwindow.rb +129 -0
  407. data/examples/xml/dombookmarks/xbeltree.rb +172 -0
  408. data/examples/xml/saxbookmarks/frank.xbel +230 -0
  409. data/examples/xml/saxbookmarks/jennifer.xbel +93 -0
  410. data/examples/xml/saxbookmarks/main.rb +34 -0
  411. data/examples/xml/saxbookmarks/mainwindow.rb +144 -0
  412. data/examples/xml/saxbookmarks/xbelgenerator.rb +95 -0
  413. data/examples/xml/saxbookmarks/xbelhandler.rb +122 -0
  414. data/extconf.rb +256 -0
  415. data/lib/2.0/libqtruby4shared.dll +0 -0
  416. data/lib/2.0/libsmokebase.dll +0 -0
  417. data/lib/2.0/libsmokeqtcore.dll +0 -0
  418. data/lib/2.0/libsmokeqtdeclarative.dll +0 -0
  419. data/lib/2.0/libsmokeqtgui.dll +0 -0
  420. data/lib/2.0/libsmokeqthelp.dll +0 -0
  421. data/lib/2.0/libsmokeqtmultimedia.dll +0 -0
  422. data/lib/2.0/libsmokeqtnetwork.dll +0 -0
  423. data/lib/2.0/libsmokeqtopengl.dll +0 -0
  424. data/lib/2.0/libsmokeqtscript.dll +0 -0
  425. data/lib/2.0/libsmokeqtsql.dll +0 -0
  426. data/lib/2.0/libsmokeqtsvg.dll +0 -0
  427. data/lib/2.0/libsmokeqttest.dll +0 -0
  428. data/lib/2.0/libsmokeqtuitools.dll +0 -0
  429. data/lib/2.0/libsmokeqtwebkit.dll +0 -0
  430. data/lib/2.0/libsmokeqtxml.dll +0 -0
  431. data/lib/2.0/libsmokeqtxmlpatterns.dll +0 -0
  432. data/lib/2.0/qtdeclarative.so +0 -0
  433. data/lib/2.0/qtruby4.so +0 -0
  434. data/lib/2.0/qtscript.so +0 -0
  435. data/lib/2.0/qttest.so +0 -0
  436. data/lib/2.0/qtuitools.so +0 -0
  437. data/lib/2.0/qtwebkit.so +0 -0
  438. data/lib/2.1/libqtruby4shared.dll +0 -0
  439. data/lib/2.1/libsmokebase.dll +0 -0
  440. data/lib/2.1/libsmokeqtcore.dll +0 -0
  441. data/lib/2.1/libsmokeqtdeclarative.dll +0 -0
  442. data/lib/2.1/libsmokeqtgui.dll +0 -0
  443. data/lib/2.1/libsmokeqthelp.dll +0 -0
  444. data/lib/2.1/libsmokeqtmultimedia.dll +0 -0
  445. data/lib/2.1/libsmokeqtnetwork.dll +0 -0
  446. data/lib/2.1/libsmokeqtopengl.dll +0 -0
  447. data/lib/2.1/libsmokeqtscript.dll +0 -0
  448. data/lib/2.1/libsmokeqtsql.dll +0 -0
  449. data/lib/2.1/libsmokeqtsvg.dll +0 -0
  450. data/lib/2.1/libsmokeqttest.dll +0 -0
  451. data/lib/2.1/libsmokeqtuitools.dll +0 -0
  452. data/lib/2.1/libsmokeqtwebkit.dll +0 -0
  453. data/lib/2.1/libsmokeqtxml.dll +0 -0
  454. data/lib/2.1/libsmokeqtxmlpatterns.dll +0 -0
  455. data/lib/2.1/qtdeclarative.so +0 -0
  456. data/lib/2.1/qtruby4.so +0 -0
  457. data/lib/2.1/qtscript.so +0 -0
  458. data/lib/2.1/qttest.so +0 -0
  459. data/lib/2.1/qtuitools.so +0 -0
  460. data/lib/2.1/qtwebkit.so +0 -0
  461. data/lib/2.2/libqtruby4shared.dll +0 -0
  462. data/lib/2.2/libsmokebase.dll +0 -0
  463. data/lib/2.2/libsmokeqtcore.dll +0 -0
  464. data/lib/2.2/libsmokeqtdeclarative.dll +0 -0
  465. data/lib/2.2/libsmokeqtgui.dll +0 -0
  466. data/lib/2.2/libsmokeqthelp.dll +0 -0
  467. data/lib/2.2/libsmokeqtmultimedia.dll +0 -0
  468. data/lib/2.2/libsmokeqtnetwork.dll +0 -0
  469. data/lib/2.2/libsmokeqtopengl.dll +0 -0
  470. data/lib/2.2/libsmokeqtscript.dll +0 -0
  471. data/lib/2.2/libsmokeqtsql.dll +0 -0
  472. data/lib/2.2/libsmokeqtsvg.dll +0 -0
  473. data/lib/2.2/libsmokeqttest.dll +0 -0
  474. data/lib/2.2/libsmokeqtuitools.dll +0 -0
  475. data/lib/2.2/libsmokeqtwebkit.dll +0 -0
  476. data/lib/2.2/libsmokeqtxml.dll +0 -0
  477. data/lib/2.2/libsmokeqtxmlpatterns.dll +0 -0
  478. data/lib/2.2/qtdeclarative.so +0 -0
  479. data/lib/2.2/qtruby4.so +0 -0
  480. data/lib/2.2/qtscript.so +0 -0
  481. data/lib/2.2/qttest.so +0 -0
  482. data/lib/2.2/qtuitools.so +0 -0
  483. data/lib/2.2/qtwebkit.so +0 -0
  484. data/lib/Qt.rb +1 -0
  485. data/lib/Qt/qtruby4.rb +3258 -0
  486. data/lib/Qt4.rb +111 -0
  487. data/lib/qtbindings_version.rb +2 -0
  488. data/lib/qtdeclarative/qtdeclarative.rb +17 -0
  489. data/lib/qtscript/qtscript.rb +40 -0
  490. data/lib/qttest/qttest.rb +166 -0
  491. data/lib/qtuitools/qtuitools.rb +17 -0
  492. data/lib/qtwebkit/qtwebkit.rb +17 -0
  493. data/qtbindings.gemspec +18 -0
  494. data/qtbindingsnative.gemspec +19 -0
  495. metadata +559 -0
@@ -0,0 +1,2 @@
1
+ qrc_mice.rb: mice.qrc
2
+ rbrcc -name mice mice.qrc -o qrc_mice.rb
@@ -0,0 +1,5 @@
1
+ <RCC>
2
+ <qresource prefix="/" >
3
+ <file>images/cheese.jpg</file>
4
+ </qresource>
5
+ </RCC>
@@ -0,0 +1,176 @@
1
+ =begin
2
+ **
3
+ ** Copyright (C) 2004-2005 Trolltech AS. All rights reserved.
4
+ **
5
+ ** This file is part of the example classes of the Qt Toolkit.
6
+ **
7
+ ** This file may be used under the terms of the GNU General Public
8
+ ** License version 2.0 as published by the Free Software Foundation
9
+ ** and appearing in the file LICENSE.GPL included in the packaging of
10
+ ** this file. Please review the following information to ensure GNU
11
+ ** General Public Licensing requirements will be met:
12
+ ** http://www.trolltech.com/products/qt/opensource.html
13
+ **
14
+ ** If you are unsure which license is appropriate for your use, please
15
+ ** review the following information:
16
+ ** http://www.trolltech.com/products/qt/licensing.html or contact the
17
+ ** sales department at sales@trolltech.com.
18
+ **
19
+ ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
20
+ ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
21
+ **
22
+
23
+ ** Translated to QtRuby by Richard Dale
24
+ =end
25
+
26
+
27
+ # In the original C++ example the Mouse class inherited from both
28
+ # QObject and QGraphicsItem. As that isn't possible in Ruby, use
29
+ # a helper class 'MouseTimer' to periodically invoke the
30
+ # Mouse.timerEvent() method.
31
+ class MouseTimer < Qt::Object
32
+ def initialize(mouse)
33
+ super(nil)
34
+ @mouse = mouse
35
+ end
36
+
37
+ def timerEvent(event)
38
+ @mouse.timerEvent(event)
39
+ end
40
+ end
41
+
42
+ class Mouse < Qt::GraphicsItem
43
+ TwoPi = 2.0 * Math::PI
44
+
45
+ def self.normalizeAngle(angle)
46
+ while angle < 0 do
47
+ angle += TwoPi
48
+ end
49
+ while angle > TwoPi do
50
+ angle -= TwoPi
51
+ end
52
+ return angle
53
+ end
54
+
55
+ def initialize()
56
+ super(nil)
57
+ @angle = 0.0
58
+ @speed = 0.0
59
+ @mouseEyeDirection = 0.0
60
+ @color = Qt::Color.new(rand(256), rand(256), rand(256))
61
+ rotate(rand(360 * 16))
62
+ adjust = 0.5
63
+ @boundingRect = Qt::RectF.new(-20 - adjust, -22 - adjust,
64
+ 40 + adjust, 83 + adjust)
65
+ @timer = MouseTimer.new(self)
66
+ @timer.startTimer(1000 / 33)
67
+ end
68
+
69
+ def boundingRect
70
+ return @boundingRect
71
+ end
72
+
73
+ def shape
74
+ path = Qt::PainterPath.new
75
+ path.addRect(-10, -20, 20, 40)
76
+ return path
77
+ end
78
+
79
+ def paint(painter, arg, widget)
80
+ # Body
81
+ painter.brush = Qt::Brush.new(@color)
82
+ painter.drawEllipse(-10, -20, 20, 40)
83
+
84
+ # Eyes
85
+ painter.brush = Qt::Brush.new(Qt::white)
86
+ painter.drawEllipse(-10, -17, 8, 8)
87
+ painter.drawEllipse(2, -17, 8, 8)
88
+
89
+ # Nose
90
+ painter.brush = Qt::Brush.new(Qt::black)
91
+ painter.drawEllipse(Qt::RectF.new(-2, -22, 4, 4))
92
+
93
+ # Pupils
94
+ painter.drawEllipse(Qt::RectF.new(-8.0 + @mouseEyeDirection, -17, 4, 4))
95
+ painter.drawEllipse(Qt::RectF.new(4.0 + @mouseEyeDirection, -17, 4, 4))
96
+
97
+ # Ears
98
+ painter.brush = Qt::Brush.new(scene.collidingItems(self).empty? ? Qt::darkYellow : Qt::red)
99
+ painter.drawEllipse(-17, -12, 16, 16)
100
+ painter.drawEllipse(1, -12, 16, 16)
101
+
102
+ # Tail
103
+ path = Qt::PainterPath.new(Qt::PointF.new(0, 20))
104
+ path.cubicTo(-5, 22, -5, 22, 0, 25)
105
+ path.cubicTo(5, 27, 5, 32, 0, 30)
106
+ path.cubicTo(-5, 32, -5, 42, 0, 35)
107
+ painter.brush = Qt::NoBrush
108
+ painter.drawPath(path)
109
+ end
110
+
111
+ def timerEvent(event)
112
+ # Don't move too far away
113
+ lineToCenter = Qt::LineF.new(Qt::PointF.new(0, 0), mapFromScene(0, 0))
114
+ if lineToCenter.length() > 150
115
+ angleToCenter = Math.acos(lineToCenter.dx / lineToCenter.length)
116
+ if lineToCenter.dy < 0
117
+ angleToCenter = TwoPi - angleToCenter
118
+ end
119
+ angleToCenter = Mouse.normalizeAngle((Math::PI - angleToCenter) + Math::PI / 2)
120
+
121
+ if angleToCenter < Math::PI && angleToCenter > Math::PI / 4
122
+ # Rotate left
123
+ @angle += (@angle < -Math::PI / 2) ? 0.25 : -0.25
124
+ elsif angleToCenter >= Math::PI && angleToCenter < (Math::PI + Math::PI / 2 + Math::PI / 4)
125
+ # Rotate right
126
+ @angle += (@angle < Math::PI / 2) ? 0.25 : -0.25
127
+ end
128
+ elsif Math.sin(@angle) < 0
129
+ @angle += 0.25
130
+ elsif Math.sin(@angle) > 0
131
+ @angle -= 0.25
132
+ end
133
+
134
+ # Try not to crash with any other mice
135
+ dangerMice = scene.items(Qt::PolygonF.new([mapToScene(0, 0),
136
+ mapToScene(-30, -50),
137
+ mapToScene(30, -50)]))
138
+ dangerMice.each do |item|
139
+ if item == self
140
+ next
141
+ end
142
+
143
+ lineToMouse = Qt::LineF.new(Qt::PointF.new(0, 0), mapFromItem(item, 0, 0))
144
+ angleToMouse = Math.acos(lineToMouse.dx / lineToMouse.length)
145
+ if lineToMouse.dy < 0
146
+ angleToMouse = TwoPi - angleToMouse
147
+ end
148
+ angleToMouse = Mouse.normalizeAngle((Math::PI - angleToMouse) + Math::PI / 2)
149
+
150
+ if angleToMouse >= 0 && angleToMouse < Math::PI / 2
151
+ # Rotate right
152
+ @angle += 0.5
153
+ elsif angleToMouse <= TwoPi && angleToMouse > (TwoPi - Math::PI / 2)
154
+ # Rotate left
155
+ @angle -= 0.5
156
+ end
157
+ end
158
+
159
+ # Add some random movement
160
+ if dangerMice.size > 1 && rand(10) == 0
161
+ if rand(1) == 1
162
+ @angle += rand(100) / 500.0
163
+ else
164
+ @angle -= rand(100) / 500.0
165
+ end
166
+ end
167
+
168
+ @speed += (-50 + rand(100)) / 100.0
169
+
170
+ dx = Math.sin(@angle) * 10
171
+ @mouseEyeDirection = ((dx / 5).abs < 1) ? 0 : dx / 5
172
+
173
+ rotate(dx)
174
+ setPos(mapToParent(0, -(3 + Math.sin(@speed) * 3)))
175
+ end
176
+ end
@@ -0,0 +1,86 @@
1
+ =begin
2
+ **
3
+ ** Copyright (C) 2004-2005 Trolltech AS. All rights reserved.
4
+ **
5
+ ** This file is part of the example classes of the Qt Toolkit.
6
+ **
7
+ ** This file may be used under the terms of the GNU General Public
8
+ ** License version 2.0 as published by the Free Software Foundation
9
+ ** and appearing in the file LICENSE.GPL included in the packaging of
10
+ ** this file. Please review the following information to ensure GNU
11
+ ** General Public Licensing requirements will be met:
12
+ ** http://www.trolltech.com/products/qt/opensource.html
13
+ **
14
+ ** If you are unsure which license is appropriate for your use, please
15
+ ** review the following information:
16
+ ** http://www.trolltech.com/products/qt/licensing.html or contact the
17
+ ** sales department at sales@trolltech.com.
18
+ **
19
+ ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
20
+ ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
21
+ **
22
+
23
+ ** Translated to QtRuby by Richard Dale
24
+ =end
25
+
26
+ class ColorItem < Qt::GraphicsItem
27
+ @@n = 0
28
+
29
+ def initialize
30
+ super
31
+ @color = Qt::Color.new(rand(256), rand(256), rand(256))
32
+ setToolTip("Qt::Color(%d, %d, %d)\n%s" %
33
+ [@color.red, @color.green, @color.blue,
34
+ "Click and drag this color onto the robot!"])
35
+ setCursor(Qt::Cursor.new(Qt::OpenHandCursor))
36
+ end
37
+
38
+ def boundingRect
39
+ return Qt::RectF.new(-15.5, -15.5, 34, 34)
40
+ end
41
+
42
+ def paint(painter, option, widget)
43
+ painter.pen = Qt::NoPen
44
+ painter.brush = Qt::Brush.new(Qt::darkGray)
45
+ painter.drawEllipse(-12, -12, 30, 30)
46
+ painter.pen = Qt::Pen.new(Qt::Brush.new(Qt::black), 1)
47
+ painter.brush = Qt::Brush.new(@color)
48
+ painter.drawEllipse(-15, -15, 30, 30)
49
+ end
50
+
51
+ def mousePressEvent(event)
52
+ if event.button != Qt::LeftButton
53
+ event.ignore
54
+ return
55
+ end
56
+
57
+ drag = Qt::Drag.new(event.widget)
58
+ mime = Qt::MimeData.new
59
+ drag.mimeData = mime
60
+
61
+ @@n += 1
62
+ if @@n > 2 && rand(3) == 0
63
+ image = Qt::Image.new(":/images/head.png")
64
+ mime.imageData = qVariantFromValue(image)
65
+
66
+ drag.pixmap = Qt::Pixmap.fromImage(image.scaled(30, 40))
67
+ drag.setHotSpot(Qt::Point.new(30, 40))
68
+ else
69
+ mime.colorData = qVariantFromValue(@color)
70
+ mime.text = "#%2.2x%2.2x%2.2x" % [@color.red, @color.green, @color.blue]
71
+
72
+ pixmap = Qt::Pixmap.new(34, 34)
73
+ pixmap.fill(Qt::Color.new(Qt::transparent))
74
+ painter = Qt::Painter.new(pixmap)
75
+ painter.translate(15, 15)
76
+ painter.renderHint = Qt::Painter::Antialiasing
77
+ paint(painter, 0, 0)
78
+ painter.end
79
+
80
+ drag.pixmap = pixmap
81
+ drag.hotSpot = Qt::Point.new(15, 20)
82
+ end
83
+ drag.start
84
+ end
85
+
86
+ end
@@ -0,0 +1,57 @@
1
+ =begin
2
+ **
3
+ ** Copyright (C) 2004-2005 Trolltech AS. All rights reserved.
4
+ **
5
+ ** This file is part of the example classes of the Qt Toolkit.
6
+ **
7
+ ** This file may be used under the terms of the GNU General Public
8
+ ** License version 2.0 as published by the Free Software Foundation
9
+ ** and appearing in the file LICENSE.GPL included in the packaging of
10
+ ** this file. Please review the following information to ensure GNU
11
+ ** General Public Licensing requirements will be met:
12
+ ** http://www.trolltech.com/products/qt/opensource.html
13
+ **
14
+ ** If you are unsure which license is appropriate for your use, please
15
+ ** review the following information:
16
+ ** http://www.trolltech.com/products/qt/licensing.html or contact the
17
+ ** sales department at sales@trolltech.com.
18
+ **
19
+ ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
20
+ ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
21
+ **
22
+
23
+ ** Translated to QtRuby by Richard Dale
24
+ =end
25
+
26
+ require 'Qt'
27
+ require './qrc_robot.rb'
28
+ require './coloritem.rb'
29
+ require './robot.rb'
30
+
31
+ app = Qt::Application.new(ARGV)
32
+
33
+ scene = Qt::GraphicsScene.new(-200, -200, 400, 400)
34
+
35
+ for i in 0...10 do
36
+ item = ColorItem.new
37
+ item.setPos(Math.sin((i * 6.28) / 10.0) * 150,
38
+ Math.cos((i * 6.28) / 10.0) * 150)
39
+
40
+ scene.addItem(item)
41
+ end
42
+
43
+ view = Qt::GraphicsView.new(scene)
44
+
45
+ # Pass the view to the Robot and make it the parent of the
46
+ # Qt::GraphicsItemAnimations, to prevent them being GC'd
47
+ robot = Robot.new(view)
48
+ robot.scale(1.2, 1.2)
49
+ robot.setPos(0, -20)
50
+ scene.addItem(robot)
51
+
52
+ view.renderHint = Qt::Painter::Antialiasing
53
+ view.backgroundBrush = Qt::Brush.new(Qt::Color.new(230, 200, 167))
54
+ view.windowTitle = "Drag and Drop Robot"
55
+ view.show
56
+
57
+ app.exec
@@ -0,0 +1,2 @@
1
+ qrc_robot.rb: robot.qrc
2
+ rbrcc -name robot robot.qrc -o qrc_robot.rb
@@ -0,0 +1,5 @@
1
+ <RCC>
2
+ <qresource prefix="/" >
3
+ <file>images/head.png</file>
4
+ </qresource>
5
+ </RCC>
@@ -0,0 +1,246 @@
1
+ =begin
2
+ **
3
+ ** Copyright (C) 2004-2005 Trolltech AS. All rights reserved.
4
+ **
5
+ ** This file is part of the example classes of the Qt Toolkit.
6
+ **
7
+ ** This file may be used under the terms of the GNU General Public
8
+ ** License version 2.0 as published by the Free Software Foundation
9
+ ** and appearing in the file LICENSE.GPL included in the packaging of
10
+ ** this file. Please review the following information to ensure GNU
11
+ ** General Public Licensing requirements will be met:
12
+ ** http://www.trolltech.com/products/qt/opensource.html
13
+ **
14
+ ** If you are unsure which license is appropriate for your use, please
15
+ ** review the following information:
16
+ ** http://www.trolltech.com/products/qt/licensing.html or contact the
17
+ ** sales department at sales@trolltech.com.
18
+ **
19
+ ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
20
+ ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
21
+ **
22
+
23
+ ** Translated to QtRuby by Richard Dale
24
+ =end
25
+
26
+ class RobotPart < Qt::GraphicsItem
27
+
28
+ def initialize(parent)
29
+ super(parent)
30
+ @color = Qt::Color.new(Qt::lightGray)
31
+ @pixmap = Qt::Pixmap.new
32
+ @dragOver = false
33
+ setAcceptDrops(true)
34
+ end
35
+
36
+ def dragEnterEvent(event)
37
+ if event.mimeData.hasColor ||
38
+ self.kind_of?(RobotHead) && event.mimeData.hasImage
39
+ event.accepted = true
40
+ @dragOver = true
41
+ update()
42
+ else
43
+ event.accepted = false
44
+ end
45
+ end
46
+
47
+ def dragLeaveEvent(event)
48
+ @dragOver = false
49
+ update()
50
+ end
51
+
52
+ def dropEvent(event)
53
+ @dragOver = false
54
+ if event.mimeData.hasColor
55
+ @color = qVariantValue(Qt::Color, event.mimeData.colorData)
56
+ elsif event.mimeData.hasImage
57
+ @pixmap = qVariantValue(Qt::Pixmap, event.mimeData.imageData)
58
+ end
59
+ update()
60
+ end
61
+ end
62
+
63
+ class RobotHead < RobotPart
64
+ Type = Qt::GraphicsItem::UserType + 1
65
+
66
+ def initialize(parent)
67
+ super(parent)
68
+ end
69
+
70
+ def boundingRect
71
+ return Qt::RectF.new(-15, -50, 30, 50)
72
+ end
73
+
74
+ def paint(painter, option, widget)
75
+ if @pixmap.null?
76
+ painter.brush = Qt::Brush.new(@dragOver ? @color.light(130) : @color)
77
+ painter.drawRoundRect(-10, -30, 20, 30)
78
+ painter.brush = Qt::Brush.new(Qt::white)
79
+ painter.drawEllipse(-7, -3 - 20, 7, 7)
80
+ painter.drawEllipse(0, -3 - 20, 7, 7)
81
+ painter.brush = Qt::Brush.new(Qt::black)
82
+ painter.drawEllipse(-5, -1 - 20, 2, 2)
83
+ painter.drawEllipse(2, -1 - 20, 2, 2)
84
+ painter.pen = Qt::Pen.new(Qt::Brush.new(Qt::black), 2)
85
+ painter.brush = Qt::NoBrush
86
+ painter.drawArc(-6, -2 - 20, 12, 15, 190 * 16, 160 * 16)
87
+ else
88
+ painter.scale(0.2272, 0.2824)
89
+ painter.drawPixmap(Qt::PointF.new(-15 * 4.4, -50 * 3.54), @pixmap)
90
+ end
91
+ end
92
+
93
+ def type()
94
+ return Type
95
+ end
96
+ end
97
+
98
+ class RobotTorso < RobotPart
99
+
100
+ def initialize(parent)
101
+ super(parent)
102
+ end
103
+
104
+ def boundingRect
105
+ return Qt::RectF.new(-30, -20, 60, 60)
106
+ end
107
+
108
+ def paint(painter, option, widget)
109
+ painter.brush = Qt::Brush.new(@dragOver ? @color.light(130) : @color)
110
+ painter.drawRoundRect(-20, -20, 40, 60)
111
+ painter.drawEllipse(-25, -20, 20, 20)
112
+ painter.drawEllipse(5, -20, 20, 20)
113
+ painter.drawEllipse(-20, 22, 20, 20)
114
+ painter.drawEllipse(0, 22, 20, 20)
115
+ end
116
+ end
117
+
118
+ class RobotLimb < RobotPart
119
+
120
+ def initialize(parent)
121
+ super(parent)
122
+ end
123
+
124
+ def boundingRect
125
+ return Qt::RectF.new(-5, -5, 40, 10)
126
+ end
127
+
128
+ def paint(painter, option, widget)
129
+ painter.brush = Qt::Brush.new(@dragOver ? @color.light(130) : @color)
130
+ painter.drawRoundRect(boundingRect(), 50, 50)
131
+ painter.drawEllipse(-5, -5, 10, 10)
132
+ end
133
+ end
134
+
135
+ class Robot < RobotPart
136
+
137
+ def initialize(view)
138
+ super(nil)
139
+ torsoItem = RobotTorso.new(self)
140
+ headItem = RobotHead.new(torsoItem)
141
+ upperLeftArmItem = RobotLimb.new(torsoItem)
142
+ lowerLeftArmItem = RobotLimb.new(upperLeftArmItem)
143
+ upperRightArmItem = RobotLimb.new(torsoItem)
144
+ lowerRightArmItem = RobotLimb.new(upperRightArmItem)
145
+ upperRightLegItem = RobotLimb.new(torsoItem)
146
+ lowerRightLegItem = RobotLimb.new(upperRightLegItem)
147
+ upperLeftLegItem = RobotLimb.new(torsoItem)
148
+ lowerLeftLegItem = RobotLimb.new(upperLeftLegItem)
149
+
150
+ headItem.setPos(0, -18)
151
+ upperLeftArmItem.setPos(-15, -10)
152
+ lowerLeftArmItem.setPos(30, 0)
153
+ upperRightArmItem.setPos(15, -10)
154
+ lowerRightArmItem.setPos(30, 0)
155
+ upperRightLegItem.setPos(10, 32)
156
+ lowerRightLegItem.setPos(30, 0)
157
+ upperLeftLegItem.setPos(-10, 32)
158
+ lowerLeftLegItem.setPos(30, 0)
159
+
160
+ @timeLine = Qt::TimeLine.new
161
+
162
+ headAnimation = Qt::GraphicsItemAnimation.new(view) do |a|
163
+ a.item = headItem
164
+ a.timeLine = @timeLine
165
+ a.setRotationAt(0, 20)
166
+ a.setRotationAt(1, -20)
167
+ a.setScaleAt(1, 1.1, 1.1)
168
+ end
169
+
170
+ upperLeftArmAnimation = Qt::GraphicsItemAnimation.new(view) do |a|
171
+ a.item = upperLeftArmItem
172
+ a.timeLine = @timeLine
173
+ a.setRotationAt(0, 190)
174
+ a.setRotationAt(1, 180)
175
+ end
176
+
177
+ lowerLeftArmAnimation = Qt::GraphicsItemAnimation.new(view) do |a|
178
+ a.item = lowerLeftArmItem
179
+ a.timeLine = @timeLine
180
+ a.setRotationAt(0, 50)
181
+ a.setRotationAt(1, 10)
182
+ end
183
+
184
+ upperRightArmAnimation = Qt::GraphicsItemAnimation.new(view) do |a|
185
+ a.item = upperRightArmItem
186
+ a.timeLine = @timeLine
187
+ a.setRotationAt(0, 300)
188
+ a.setRotationAt(1, 310)
189
+ end
190
+
191
+ lowerRightArmAnimation = Qt::GraphicsItemAnimation.new(view) do |a|
192
+ a.item = lowerRightArmItem
193
+ a.timeLine = @timeLine
194
+ a.setRotationAt(0, 0)
195
+ a.setRotationAt(1, -70)
196
+ end
197
+
198
+ upperLeftLegAnimation = Qt::GraphicsItemAnimation.new(view) do |a|
199
+ a.item = upperLeftLegItem
200
+ a.timeLine = @timeLine
201
+ a.setRotationAt(0, 150)
202
+ a.setRotationAt(1, 80)
203
+ end
204
+
205
+ lowerLeftLegAnimation = Qt::GraphicsItemAnimation.new(view) do |a|
206
+ a.item = lowerLeftLegItem
207
+ a.timeLine = @timeLine
208
+ a.setRotationAt(0, 70)
209
+ a.setRotationAt(1, 10)
210
+ end
211
+
212
+ upperRightLegAnimation = Qt::GraphicsItemAnimation.new(view) do |a|
213
+ a.item = upperRightLegItem
214
+ a.timeLine = @timeLine
215
+ a.setRotationAt(0, 40)
216
+ a.setRotationAt(1, 120)
217
+ end
218
+
219
+ lowerRightLegAnimation = Qt::GraphicsItemAnimation.new(view) do |a|
220
+ a.item = lowerRightLegItem
221
+ a.timeLine = @timeLine
222
+ a.setRotationAt(0, 10)
223
+ a.setRotationAt(1, 50)
224
+ end
225
+
226
+ torsoAnimation = Qt::GraphicsItemAnimation.new(view) do |a|
227
+ a.item = torsoItem
228
+ a.timeLine = @timeLine
229
+ a.setRotationAt(0, 5)
230
+ a.setRotationAt(1, -20)
231
+ end
232
+
233
+ @timeLine.updateInterval = 1000 / 25
234
+ @timeLine.curveShape = Qt::TimeLine::SineCurve
235
+ @timeLine.loopCount = 0
236
+ @timeLine.duration = 2000
237
+ @timeLine.start
238
+ end
239
+
240
+ def boundingRect
241
+ return Qt::RectF.new()
242
+ end
243
+
244
+ def paint(painter, option, widget)
245
+ end
246
+ end