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,135 @@
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 TetrixPiece
27
+
28
+ NoShape = 0
29
+ ZShape = 1
30
+ SShape = 2
31
+ LineShape = 3
32
+ TShape = 4
33
+ SquareShape = 5
34
+ LShape = 6
35
+ MirroredLShape = 7
36
+
37
+ def initialize()
38
+ @coordsTable = [
39
+ [ [ 0, 0 ], [ 0, 0 ], [ 0, 0 ], [ 0, 0 ] ],
40
+ [ [ 0, -1 ], [ 0, 0 ], [ -1, 0 ], [ -1, 1 ] ],
41
+ [ [ 0, -1 ], [ 0, 0 ], [ 1, 0 ], [ 1, 1 ] ],
42
+ [ [ 0, -1 ], [ 0, 0 ], [ 0, 1 ], [ 0, 2 ] ],
43
+ [ [ -1, 0 ], [ 0, 0 ], [ 1, 0 ], [ 0, 1 ] ],
44
+ [ [ 0, 0 ], [ 1, 0 ], [ 0, 1 ], [ 1, 1 ] ],
45
+ [ [ -1, -1 ], [ 0, -1 ], [ 0, 0 ], [ 0, 1 ] ],
46
+ [ [ 1, -1 ], [ 0, -1 ], [ 0, 0 ], [ 0, 1 ] ] ]
47
+ @coords = [[0, 0], [0, 0], [0, 0], [0, 0]]
48
+
49
+ self.shape = NoShape
50
+ end
51
+
52
+ def shape() return @pieceShape end
53
+ def x(index) return @coords[index][0] end
54
+ def y(index) return @coords[index][1] end
55
+
56
+ def setX(index, x) @coords[index][0] = x end
57
+ def setY(index, y) @coords[index][1] = y end
58
+
59
+ def setRandomShape()
60
+ self.shape = Kernel.rand(7) + 1
61
+ end
62
+
63
+ def shape=(shape)
64
+ (0...4).each do |i|
65
+ (0...2).each do |j|
66
+ @coords[i][j] = @coordsTable[shape][i][j]
67
+ end
68
+ end
69
+ @pieceShape = shape
70
+ end
71
+
72
+ def pieceShape=(shape)
73
+ @pieceShape = shape
74
+ end
75
+
76
+ def minX()
77
+ min = @coords[0][0]
78
+ (1...4).each do |i|
79
+ min = [min, @coords[i][0]].min
80
+ end
81
+ return min
82
+ end
83
+
84
+ def maxX()
85
+ max = @coords[0][0]
86
+ (1...4).each do |i|
87
+ max = [max, @coords[i][0]].max
88
+ end
89
+ return max
90
+ end
91
+
92
+ def minY()
93
+ min = @coords[0][1]
94
+ (1...4).each do |i|
95
+ min = [min, @coords[i][1]].min
96
+ end
97
+ return min
98
+ end
99
+
100
+ def maxY()
101
+ max = @coords[0][1]
102
+ (1...4).each do |i|
103
+ max = [max, @coords[i][1]].max
104
+ end
105
+ return max
106
+ end
107
+
108
+ def rotatedLeft()
109
+ if @pieceShape == SquareShape
110
+ return self
111
+ end
112
+
113
+ result = TetrixPiece.new
114
+ result.pieceShape = @pieceShape
115
+ (0...4).each do |i|
116
+ result.setX(i, y(i))
117
+ result.setY(i, -x(i))
118
+ end
119
+ return result
120
+ end
121
+
122
+ def rotatedRight()
123
+ if @pieceShape == SquareShape
124
+ return self
125
+ end
126
+
127
+ result = TetrixPiece.new
128
+ result.pieceShape = @pieceShape
129
+ (0...4).each do |i|
130
+ result.setX(i, -y(i))
131
+ result.setY(i, x(i))
132
+ end
133
+ return result
134
+ end
135
+ end
@@ -0,0 +1,88 @@
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 './tetrixboard.rb'
27
+
28
+ class TetrixWindow < Qt::Widget
29
+
30
+ def initialize(parent = nil)
31
+ super(parent)
32
+ @board = TetrixBoard.new(self)
33
+
34
+ @nextPieceLabel = Qt::Label.new
35
+ @nextPieceLabel.frameStyle = Qt::Frame::Box | Qt::Frame::Raised
36
+ @nextPieceLabel.alignment = Qt::AlignCenter.to_i
37
+ @board.nextPieceLabel = @nextPieceLabel
38
+
39
+ @scoreLcd = Qt::LCDNumber.new(5)
40
+ @scoreLcd.segmentStyle = Qt::LCDNumber::Filled
41
+ @levelLcd = Qt::LCDNumber.new(2)
42
+ @levelLcd.segmentStyle = Qt::LCDNumber::Filled
43
+ @linesLcd = Qt::LCDNumber.new(5)
44
+ @linesLcd.segmentStyle = Qt::LCDNumber::Filled
45
+
46
+ @startButton = Qt::PushButton.new(tr("&Start"))
47
+ @startButton.focusPolicy = Qt::NoFocus
48
+ @quitButton = Qt::PushButton.new(tr("&Quit"))
49
+ @quitButton.focusPolicy = Qt::NoFocus
50
+ @pauseButton = Qt::PushButton.new(tr("&Pause"))
51
+ @pauseButton.focusPolicy = Qt::NoFocus
52
+
53
+ connect(@startButton, SIGNAL('clicked()'), @board, SLOT('start()'))
54
+ connect(@quitButton , SIGNAL('clicked()'), $qApp, SLOT('quit()'))
55
+ connect(@pauseButton, SIGNAL('clicked()'), @board, SLOT('pause()'))
56
+ connect(@board, SIGNAL('scoreChanged(int)'), @scoreLcd, SLOT('display(int)'))
57
+ connect(@board, SIGNAL('levelChanged(int)'), @levelLcd, SLOT('display(int)'))
58
+ connect(@board, SIGNAL('linesRemovedChanged(int)'),
59
+ @linesLcd, SLOT('display(int)'))
60
+
61
+ layout = Qt::GridLayout.new do |l|
62
+ l.addWidget(createLabel(tr("NEXT")), 0, 0)
63
+ l.addWidget(@nextPieceLabel, 1, 0)
64
+ l.addWidget(createLabel(tr("LEVEL")), 2, 0)
65
+ l.addWidget(@levelLcd, 3, 0)
66
+ l.addWidget(@startButton, 4, 0)
67
+ l.addWidget(@board, 0, 1, 6, 1)
68
+ l.addWidget(createLabel(tr("SCORE")), 0, 2)
69
+ l.addWidget(@scoreLcd, 1, 2)
70
+ l.addWidget(createLabel(tr("LINES REMOVED")), 2, 2)
71
+ l.addWidget(@linesLcd, 3, 2)
72
+ l.addWidget(@quitButton, 4, 2)
73
+ l.addWidget(@pauseButton, 5, 2)
74
+ end
75
+
76
+ setLayout(layout)
77
+
78
+ setWindowTitle(tr("Tetrix"))
79
+ resize(550, 370)
80
+ end
81
+
82
+ def createLabel(text)
83
+ lbl = Qt::Label.new(text)
84
+ lbl.alignment = Qt::AlignHCenter | Qt::AlignBottom
85
+ return lbl
86
+ end
87
+
88
+ end
@@ -0,0 +1,32 @@
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 './sortingbox.rb'
28
+
29
+ app = Qt::Application.new(ARGV)
30
+ sortingBox = SortingBox.new
31
+ sortingBox.show
32
+ app.exec
@@ -0,0 +1,31 @@
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 ShapeItem
27
+ attr_accessor :path
28
+ attr_accessor :position
29
+ attr_accessor :color
30
+ attr_accessor :toolTip
31
+ end
@@ -0,0 +1,222 @@
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 './shapeitem.rb'
27
+
28
+ class SortingBox < Qt::Widget
29
+
30
+ slots :createNewCircle,
31
+ :createNewSquare,
32
+ :createNewTriangle
33
+
34
+ RAND_MAX = 2147483647
35
+
36
+ def initialize(parent = nil)
37
+ super(parent)
38
+ setAttribute(Qt::WA_StaticContents)
39
+ setMouseTracking(true)
40
+ setBackgroundRole(Qt::Palette::Base)
41
+
42
+ @itemInMotion = nil
43
+ @shapeItems = []
44
+ @circlePath = Qt::PainterPath.new
45
+ @squarePath = Qt::PainterPath.new
46
+ @trianglePath = Qt::PainterPath.new
47
+
48
+ @newCircleButton = createToolButton(tr("New Circle"),
49
+ Qt::Icon.new("images/circle.png"),
50
+ SLOT(:createNewCircle))
51
+
52
+ @newSquareButton = createToolButton(tr("New Square"),
53
+ Qt::Icon.new("images/square.png"),
54
+ SLOT(:createNewSquare))
55
+
56
+ @newTriangleButton = createToolButton(tr("New Triangle"),
57
+ Qt::Icon.new("images/triangle.png"),
58
+ SLOT(:createNewTriangle))
59
+
60
+ @circlePath.addEllipse(Qt::RectF.new(0.0, 0.0, 100.0, 100.0))
61
+ @squarePath.addRect(Qt::RectF.new(0.0, 0.0, 100.0, 100.0))
62
+
63
+ x = @trianglePath.currentPosition().x()
64
+ y = @trianglePath.currentPosition().y()
65
+ @trianglePath.moveTo(x + 120 / 2, y)
66
+ @trianglePath.lineTo(0, 100)
67
+ @trianglePath.lineTo(120, 100)
68
+ @trianglePath.lineTo(x + 120 / 2, y)
69
+
70
+ setWindowTitle(tr("Tooltips"))
71
+ resize(500, 300)
72
+
73
+ createShapeItem(@circlePath, tr("Circle"), initialItemPosition(@circlePath),
74
+ initialItemColor())
75
+ createShapeItem(@squarePath, tr("Square"), initialItemPosition(@squarePath),
76
+ initialItemColor())
77
+ createShapeItem(@trianglePath, tr("Triangle"),
78
+ initialItemPosition(@trianglePath), initialItemColor())
79
+ end
80
+
81
+ def event(event)
82
+ if event.type == Qt::Event::ToolTip
83
+ index = itemAt(event.pos())
84
+ if index != -1
85
+ Qt::ToolTip.showText(event.globalPos(), @shapeItems[index].toolTip())
86
+ else
87
+ Qt::ToolTip.showText(event.globalPos(), "")
88
+ end
89
+ end
90
+ super(event)
91
+ end
92
+
93
+ def resizeEvent(event)
94
+ margin = style().pixelMetric(Qt::Style::PM_DefaultTopLevelMargin)
95
+ x = width() - margin
96
+ y = height() - margin
97
+
98
+ y = updateButtonGeometry(@newCircleButton, x, y)
99
+ y = updateButtonGeometry(@newSquareButton, x, y)
100
+ updateButtonGeometry(@newTriangleButton, x, y)
101
+ end
102
+
103
+ def paintEvent(event)
104
+ painter = Qt::Painter.new(self)
105
+ @shapeItems.each do |shapeItem|
106
+ painter.translate(shapeItem.position())
107
+ painter.brush = Qt::Brush.new(shapeItem.color)
108
+ painter.drawPath(shapeItem.path())
109
+ painter.translate(-shapeItem.position())
110
+ end
111
+ painter.end
112
+ end
113
+
114
+ def mousePressEvent(event)
115
+ if event.button == Qt::LeftButton
116
+ index = itemAt(event.pos)
117
+ if index != -1
118
+ @itemInMotion = @shapeItems[index]
119
+ @previousPosition = event.pos
120
+ @shapeItems.push @shapeItems.delete_at(index)
121
+ update()
122
+ end
123
+ end
124
+ end
125
+
126
+ def mouseMoveEvent(event)
127
+ if (event.buttons & Qt::LeftButton.to_i) && !@itemInMotion.nil?
128
+ moveItemTo(event.pos)
129
+ end
130
+ end
131
+
132
+ def mouseReleaseEvent(event)
133
+ if event.button == Qt::LeftButton && !@itemInMotion.nil?
134
+ moveItemTo(event.pos)
135
+ @itemInMotion = nil
136
+ end
137
+ end
138
+
139
+ def createNewCircle()
140
+ createShapeItem(@circlePath, tr("Circle"), randomItemPosition(),
141
+ randomItemColor())
142
+ end
143
+
144
+ def createNewSquare()
145
+ createShapeItem(@squarePath, tr("Square"), randomItemPosition(),
146
+ randomItemColor())
147
+ end
148
+
149
+ def createNewTriangle()
150
+ createShapeItem(@trianglePath, tr("Triangle"), randomItemPosition(),
151
+ randomItemColor())
152
+ end
153
+
154
+ def itemAt(pos)
155
+ (@shapeItems.length - 1).downto(0) do |i|
156
+ item = @shapeItems[i]
157
+ if item.path.contains(Qt::PointF.new(pos - item.position))
158
+ return i
159
+ end
160
+ end
161
+ return -1
162
+ end
163
+
164
+ def moveItemTo(pos)
165
+ offset = pos - @previousPosition
166
+ @itemInMotion.position = @itemInMotion.position + offset
167
+ @previousPosition = pos
168
+ update()
169
+ end
170
+
171
+ def updateButtonGeometry(button, x, y)
172
+ size = button.sizeHint()
173
+ button.setGeometry(x - size.rwidth, y - size.rheight,
174
+ size.rwidth, size.rheight)
175
+
176
+ return y - size.rheight -
177
+ style().pixelMetric(Qt::Style::PM_DefaultLayoutSpacing)
178
+ end
179
+
180
+ def createShapeItem(path, toolTip, pos, color)
181
+ shapeItem = ShapeItem.new
182
+ shapeItem.path = path
183
+ shapeItem.toolTip = toolTip
184
+ shapeItem.position = pos
185
+ shapeItem.color = color
186
+ @shapeItems.push(shapeItem)
187
+ update()
188
+ end
189
+
190
+ def createToolButton(toolTip, icon, member)
191
+ button = Qt::ToolButton.new(self)
192
+ button.toolTip = toolTip
193
+ button.icon = icon
194
+ button.setIconSize(Qt::Size.new(32, 32))
195
+ connect(button, SIGNAL(:clicked), self, member)
196
+
197
+ return button
198
+ end
199
+
200
+ def initialItemPosition(path)
201
+ y = (height() - path.controlPointRect().height()) / 2
202
+ if @shapeItems.length == 0
203
+ x = ((3 * width()) / 2 - path.controlPointRect.width) / 2
204
+ else
205
+ x = (width() / @shapeItems.size -
206
+ path.controlPointRect.width) / 2
207
+ end
208
+ return Qt::Point.new(x, y)
209
+ end
210
+
211
+ def randomItemPosition()
212
+ return Qt::Point.new(rand(RAND_MAX) % (width() - 120), rand(RAND_MAX) % (height() - 120))
213
+ end
214
+
215
+ def initialItemColor()
216
+ return Qt::Color::fromHsv(((@shapeItems.size() + 1) * 85) % 256, 255, 190)
217
+ end
218
+
219
+ def randomItemColor()
220
+ return Qt::Color::fromHsv(rand(RAND_MAX) % 256, 255, 190)
221
+ end
222
+ end