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,124 @@
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 './slidersgroup.rb'
27
+
28
+ class Window < Qt::Widget
29
+
30
+ def initialize()
31
+ super
32
+ @horizontalSliders = SlidersGroup.new(Qt::Horizontal, tr("Horizontal"))
33
+ @verticalSliders = SlidersGroup.new(Qt::Vertical, tr("Vertical"))
34
+
35
+ @stackedWidget = Qt::StackedWidget.new
36
+ @stackedWidget.addWidget(@horizontalSliders)
37
+ @stackedWidget.addWidget(@verticalSliders)
38
+
39
+ createControls(tr("Controls"))
40
+
41
+ connect(@horizontalSliders, SIGNAL('valueChanged(int)'),
42
+ @verticalSliders, SLOT('value=(int)'))
43
+ connect(@verticalSliders, SIGNAL('valueChanged(int)'),
44
+ @valueSpinBox, SLOT('setValue(int)'))
45
+ connect(@valueSpinBox, SIGNAL('valueChanged(int)'),
46
+ @horizontalSliders, SLOT('value=(int)'))
47
+
48
+ layout = Qt::HBoxLayout.new do |l|
49
+ l.addWidget(@controlsGroup)
50
+ l.addWidget(@stackedWidget)
51
+ end
52
+
53
+ setLayout(layout)
54
+
55
+ @minimumSpinBox.value = 0
56
+ @maximumSpinBox.value = 20
57
+ @valueSpinBox.value = 5
58
+
59
+ setWindowTitle(tr("Sliders"))
60
+ end
61
+
62
+ def createControls(title)
63
+ @controlsGroup = Qt::GroupBox.new(title)
64
+
65
+ @minimumLabel = Qt::Label.new(tr("Minimum value:"))
66
+ @maximumLabel = Qt::Label.new(tr("Maximum value:"))
67
+ @valueLabel = Qt::Label.new(tr("Current value:"))
68
+
69
+ @invertedAppearance = Qt::CheckBox.new(tr("Inverted appearance"))
70
+ @invertedKeyBindings = Qt::CheckBox.new(tr("Inverted key bindings"))
71
+
72
+ @minimumSpinBox = Qt::SpinBox.new do |s|
73
+ s.range = -100..100
74
+ s.singleStep = 1
75
+ end
76
+
77
+ @maximumSpinBox = Qt::SpinBox.new do |s|
78
+ s.range = -100..100
79
+ s.singleStep = 1
80
+ end
81
+
82
+ @valueSpinBox = Qt::SpinBox.new do |s|
83
+ s.range = -100..100
84
+ s.singleStep = 1
85
+ end
86
+
87
+ @orientationCombo = Qt::ComboBox.new
88
+ @orientationCombo.addItem(tr("Horizontal slider-like widgets"))
89
+ @orientationCombo.addItem(tr("Vertical slider-like widgets"))
90
+
91
+ connect(@orientationCombo, SIGNAL('activated(int)'),
92
+ @stackedWidget, SLOT('setCurrentIndex(int)'))
93
+ connect(@minimumSpinBox, SIGNAL('valueChanged(int)'),
94
+ @horizontalSliders, SLOT('setMinimum(int)'))
95
+ connect(@minimumSpinBox, SIGNAL('valueChanged(int)'),
96
+ @verticalSliders, SLOT('setMinimum(int)'))
97
+ connect(@maximumSpinBox, SIGNAL('valueChanged(int)'),
98
+ @horizontalSliders, SLOT('setMaximum(int)'))
99
+ connect(@maximumSpinBox, SIGNAL('valueChanged(int)'),
100
+ @verticalSliders, SLOT('setMaximum(int)'))
101
+ connect(@invertedAppearance, SIGNAL('toggled(bool)'),
102
+ @horizontalSliders, SLOT('invertAppearance(bool)'))
103
+ connect(@invertedAppearance, SIGNAL('toggled(bool)'),
104
+ @verticalSliders, SLOT('invertAppearance(bool)'))
105
+ connect(@invertedKeyBindings, SIGNAL('toggled(bool)'),
106
+ @horizontalSliders, SLOT('invertKeyBindings(bool)'))
107
+ connect(@invertedKeyBindings, SIGNAL('toggled(bool)'),
108
+ @verticalSliders, SLOT('invertKeyBindings(bool)'))
109
+
110
+ controlsLayout = Qt::GridLayout.new do |c|
111
+ c.addWidget(@minimumLabel, 0, 0)
112
+ c.addWidget(@maximumLabel, 1, 0)
113
+ c.addWidget(@valueLabel, 2, 0)
114
+ c.addWidget(@minimumSpinBox, 0, 1)
115
+ c.addWidget(@maximumSpinBox, 1, 1)
116
+ c.addWidget(@valueSpinBox, 2, 1)
117
+ c.addWidget(@invertedAppearance, 0, 2)
118
+ c.addWidget(@invertedKeyBindings, 1, 2)
119
+ c.addWidget(@orientationCombo, 3, 0, 1, 3)
120
+ end
121
+
122
+ @controlsGroup.layout = controlsLayout
123
+ end
124
+ 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 './window.rb'
28
+
29
+ app = Qt::Application.new(ARGV)
30
+ window = Window.new
31
+ window.show
32
+ app.exec
@@ -0,0 +1,213 @@
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
+ class Window < Qt::Widget
28
+
29
+ slots 'changePrecision(int)',
30
+ 'setFormatString(const QString&)'
31
+
32
+ def initialize(parent = nil)
33
+ super(parent)
34
+ createSpinBoxes()
35
+ createDateTimeEdits()
36
+ createDoubleSpinBoxes()
37
+
38
+ layout = Qt::HBoxLayout.new do |l|
39
+ l.addWidget(@spinBoxesGroup)
40
+ l.addWidget(@editsGroup)
41
+ l.addWidget(@doubleSpinBoxesGroup)
42
+ end
43
+
44
+ setLayout(layout)
45
+
46
+ setWindowTitle(tr("Spin Boxes"))
47
+ end
48
+
49
+ def createSpinBoxes()
50
+ @spinBoxesGroup = Qt::GroupBox.new(tr("Spinboxes"))
51
+
52
+ integerLabel = Qt::Label.new(tr("Enter a value between %d and %d:" % [-20, 20]))
53
+
54
+ integerSpinBox = Qt::SpinBox.new do |i|
55
+ i.range = -20..20
56
+ i.singleStep = 1
57
+ i.value = 0
58
+ end
59
+
60
+ zoomLabel = Qt::Label.new(tr("Enter a zoom value between %d and %d:" % [0, 1000]))
61
+
62
+ zoomSpinBox = Qt::SpinBox.new do |z|
63
+ z.range = 0..1000
64
+ z.singleStep = 10
65
+ z.suffix = "%"
66
+ z.specialValueText = tr("Automatic")
67
+ z.value = 100
68
+ end
69
+
70
+ priceLabel = Qt::Label.new(tr("Enter a price between %d and %d:" % [0, 999]))
71
+
72
+ @priceSpinBox = Qt::SpinBox.new do |s|
73
+ s.range = 0..999
74
+ s.singleStep = 1
75
+ s.prefix = "$"
76
+ s.value = 99
77
+ end
78
+
79
+ spinBoxLayout = Qt::VBoxLayout.new do |s|
80
+ s.addWidget(integerLabel)
81
+ s.addWidget(integerSpinBox)
82
+ s.addWidget(zoomLabel)
83
+ s.addWidget(zoomSpinBox)
84
+ s.addWidget(priceLabel)
85
+ s.addWidget(@priceSpinBox)
86
+ end
87
+
88
+ @spinBoxesGroup.layout = spinBoxLayout
89
+ end
90
+
91
+ def createDateTimeEdits()
92
+ @editsGroup = Qt::GroupBox.new(tr("Date and time spin boxes"))
93
+
94
+ dateLabel = Qt::Label.new
95
+ dateEdit = Qt::DateTimeEdit.new(Qt::Date.currentDate())
96
+ dateEdit.setDateRange(Qt::Date.new(2005, 1, 1), Qt::Date.new(2010, 12, 31))
97
+ dateLabel.text = tr("Appointment date (between %s and %s:" %
98
+ [dateEdit.minimumDate().toString(Qt::ISODate),
99
+ dateEdit.maximumDate().toString(Qt::ISODate) ] )
100
+
101
+ timeLabel = Qt::Label.new
102
+ timeEdit = Qt::DateTimeEdit.new(Qt::Time.currentTime())
103
+ timeEdit.setTimeRange(Qt::Time.new(9, 0, 0, 0), Qt::Time.new(16, 30, 0, 0))
104
+ timeLabel.text = tr("Appointment time (between %s and %s:" %
105
+ [timeEdit.minimumTime().toString(Qt::ISODate),
106
+ timeEdit.maximumTime().toString(Qt::ISODate) ] )
107
+
108
+ @meetingLabel = Qt::Label.new
109
+ @meetingEdit = Qt::DateTimeEdit.new(Qt::DateTime.currentDateTime())
110
+
111
+ formatLabel = Qt::Label.new(tr("Format string for the meeting date and time:"))
112
+ formatComboBox = Qt::ComboBox.new do |f|
113
+ f.addItem("yyyy-MM-dd hh:mm:ss (zzz ms)")
114
+ f.addItem("hh:mm:ss MM/dd/yyyy")
115
+ f.addItem("hh:mm:ss dd/MM/yyyy")
116
+ f.addItem("hh:mm:ss")
117
+ f.addItem("hh:mm ap")
118
+ end
119
+
120
+ connect(formatComboBox, SIGNAL('activated(const QString&)'),
121
+ self, SLOT('setFormatString(const QString&)'))
122
+
123
+ setFormatString(formatComboBox.currentText())
124
+
125
+ editsLayout = Qt::VBoxLayout.new do |l|
126
+ l.addWidget(dateLabel)
127
+ l.addWidget(dateEdit)
128
+ l.addWidget(timeLabel)
129
+ l.addWidget(timeEdit)
130
+ l.addWidget(@meetingLabel)
131
+ l.addWidget(@meetingEdit)
132
+ l.addWidget(formatLabel)
133
+ l.addWidget(formatComboBox)
134
+ end
135
+
136
+ @editsGroup.layout = editsLayout
137
+ end
138
+
139
+ def setFormatString(formatString)
140
+ @meetingEdit.displayFormat = formatString
141
+ if @meetingEdit.displayedSections() & Qt::DateTimeEdit::DateSections_Mask.to_i
142
+ @meetingEdit.setDateRange(Qt::Date.new(2004, 11, 1), Qt::Date.new(2005, 11, 30))
143
+ @meetingLabel.text = tr("Meeting date (between %s and %s:" %
144
+ [@meetingEdit.minimumDate().toString(Qt::ISODate),
145
+ @meetingEdit.maximumDate().toString(Qt::ISODate) ] )
146
+ else
147
+ @meetingEdit.setTimeRange(Qt::Time.new(0, 7, 20, 0), Qt::Time.new(21, 0, 0, 0))
148
+ @meetingLabel.text = tr("Meeting time (between %s and %s:" %
149
+ [@meetingEdit.minimumTime().toString(Qt::ISODate),
150
+ @meetingEdit.maximumTime().toString(Qt::ISODate) ] )
151
+ end
152
+ end
153
+
154
+ def createDoubleSpinBoxes()
155
+ @doubleSpinBoxesGroup = Qt::GroupBox.new(tr("Double precision spinboxes"))
156
+
157
+ precisionLabel = Qt::Label.new(tr("Number of decimal places to show:"))
158
+
159
+ precisionSpinBox = Qt::SpinBox.new do |s|
160
+ s.range = 0..14
161
+ s.value = 2
162
+ end
163
+
164
+ doubleLabel = Qt::Label.new(tr("Enter a value between %d and %d:" % [-20, 20]))
165
+
166
+ @doubleSpinBox = Qt::DoubleSpinBox.new do |s|
167
+ s.range = -20.0..20.0
168
+ s.singleStep = 1.0
169
+ s.value = 0.0
170
+ end
171
+
172
+ scaleLabel = Qt::Label.new(tr("Enter a scale factor between %2f and %2f:" % [0.0, 1000.0]))
173
+
174
+ @scaleSpinBox = Qt::DoubleSpinBox.new do |s|
175
+ s.range = 0.0..1000.0
176
+ s.singleStep = 10.0
177
+ s.suffix = "%"
178
+ s.specialValueText = tr("No scaling")
179
+ s.value = 100.0
180
+ end
181
+
182
+ priceLabel = Qt::Label.new(tr("Enter a price between %2f and %2f:" % [0.0, 1000.0]))
183
+
184
+ @priceSpinBox = Qt::DoubleSpinBox.new do |s|
185
+ s.range = 0.0..1000.0
186
+ s.singleStep = 1.0
187
+ s.prefix = "$"
188
+ s.value = 99.99
189
+ end
190
+
191
+ connect(precisionSpinBox, SIGNAL('valueChanged(int)'),
192
+ self, SLOT('changePrecision(int)'))
193
+
194
+ spinBoxLayout = Qt::VBoxLayout.new do |s|
195
+ s.addWidget(precisionLabel)
196
+ s.addWidget(precisionSpinBox)
197
+ s.addWidget(doubleLabel)
198
+ s.addWidget(@doubleSpinBox)
199
+ s.addWidget(scaleLabel)
200
+ s.addWidget(@scaleSpinBox)
201
+ s.addWidget(priceLabel)
202
+ s.addWidget(@priceSpinBox)
203
+ end
204
+
205
+ @doubleSpinBoxesGroup.layout = spinBoxLayout
206
+ end
207
+
208
+ def changePrecision(decimals)
209
+ @doubleSpinBox.decimals = decimals
210
+ @scaleSpinBox.decimals = decimals
211
+ @priceSpinBox.decimals = decimals
212
+ end
213
+ end
@@ -0,0 +1,33 @@
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 './tetrixwindow.rb'
28
+
29
+ app = Qt::Application.new(ARGV)
30
+ window = TetrixWindow.new
31
+ window.show
32
+ Kernel.srand
33
+ app.exec
@@ -0,0 +1,346 @@
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 './tetrixpiece.rb'
27
+
28
+ class TetrixBoard < Qt::Frame
29
+
30
+ slots 'start()', 'pause()'
31
+
32
+ signals 'scoreChanged(int)', 'levelChanged(int)', 'linesRemovedChanged(int)'
33
+
34
+ BoardWidth = 10
35
+ BoardHeight = 22
36
+
37
+ def initialize(parent = nil)
38
+ super(parent)
39
+ setFrameStyle(Qt::Frame::Panel | Qt::Frame::Sunken)
40
+ setFocusPolicy(Qt::StrongFocus)
41
+ @isStarting = false
42
+ @isPaused = false
43
+ @board = []
44
+ clearBoard()
45
+
46
+ @curPiece = TetrixPiece.new
47
+ @nextPiece = TetrixPiece.new
48
+ @nextPiece.setRandomShape()
49
+ @timer = Qt::BasicTimer.new
50
+ end
51
+
52
+ def shapeAt(x, y)
53
+ return @board[(y * BoardWidth) + x]
54
+ end
55
+
56
+ def setShapeAt(x, y, shape)
57
+ @board[(y * BoardWidth) + x] = shape
58
+ end
59
+
60
+ def timeoutTime() return 1000 / (1 + @level) end
61
+ def squareWidth() return contentsRect().width() / BoardWidth end
62
+ def squareHeight() return contentsRect().height() / BoardHeight end
63
+
64
+ def nextPieceLabel=(label)
65
+ @nextPieceLabel = label
66
+ end
67
+
68
+ def sizeHint()
69
+ return Qt::Size.new(BoardWidth * 15 + frameWidth() * 2,
70
+ 15 + frameWidth() * 2)
71
+ end
72
+
73
+ def minimumSizeHint()
74
+ return Qt::Size.new(BoardWidth * 5 + frameWidth() * 2,
75
+ 5 + frameWidth() * 2)
76
+ end
77
+
78
+ def start()
79
+ if @isPaused
80
+ return
81
+ end
82
+
83
+ @isStarting = true
84
+ @isWaitingAfterLine = false
85
+ @numLinesRemoved = 0
86
+ @numPiecesDropped = 0
87
+ @score = 0
88
+ @level = 1
89
+ clearBoard()
90
+
91
+ emit linesRemovedChanged(@numLinesRemoved)
92
+ emit scoreChanged(@score)
93
+ emit levelChanged(@level)
94
+
95
+ newPiece()
96
+ @timer.start(timeoutTime(), self)
97
+ end
98
+
99
+ def pause()
100
+ if !@isStarting
101
+ return
102
+ end
103
+
104
+ @isPaused = !@isPaused
105
+ if @isPaused
106
+ @timer.stop()
107
+ else
108
+ @timer.start(timeoutTime(), self)
109
+ end
110
+ update()
111
+ end
112
+
113
+ def paintEvent(e)
114
+ painter = Qt::Painter.new(self)
115
+ rect = contentsRect()
116
+
117
+ drawFrame(painter)
118
+
119
+ if @isPaused
120
+ painter.drawText(rect, Qt::AlignCenter, tr("Pause"))
121
+ painter.end
122
+ return
123
+ end
124
+
125
+ boardTop = rect.bottom() - BoardHeight*squareHeight()
126
+
127
+ (0...BoardHeight).each do |i|
128
+ (0...BoardWidth).each do |j|
129
+ shape = shapeAt(j, BoardHeight - i - 1)
130
+ if shape != TetrixPiece::NoShape
131
+ drawSquare(painter, rect.left() + j * squareWidth(),
132
+ boardTop + i * squareHeight(), shape)
133
+ end
134
+ end
135
+ end
136
+
137
+ if @curPiece.shape() != TetrixPiece::NoShape
138
+ (0...4).each do |i|
139
+ x = @curX + @curPiece.x(i)
140
+ y = @curY - @curPiece.y(i)
141
+ drawSquare(painter, rect.left() + x * squareWidth(),
142
+ boardTop + (BoardHeight - y - 1) * squareHeight(),
143
+ @curPiece.shape())
144
+ end
145
+ end
146
+ painter.end
147
+ end
148
+
149
+ def keyPressEvent(event)
150
+ if !@isStarting || @isPaused || @curPiece.shape == TetrixPiece::NoShape
151
+ super
152
+ return
153
+ end
154
+
155
+ case event.key
156
+ when Qt::Key_Left
157
+ tryMove(@curPiece, @curX - 1, @curY)
158
+ when Qt::Key_Right
159
+ tryMove(@curPiece, @curX + 1, @curY)
160
+ when Qt::Key_Down
161
+ tryMove(@curPiece.rotatedRight, @curX, @curY)
162
+ when Qt::Key_Up
163
+ tryMove(@curPiece.rotatedLeft, @curX, @curY)
164
+ when Qt::Key_Space
165
+ dropDown()
166
+ when Qt::Key_D
167
+ oneLineDown()
168
+ else
169
+ super(event)
170
+ end
171
+ end
172
+
173
+ def timerEvent(event)
174
+ if event.timerId == @timer.timerId
175
+ if @isWaitingAfterLine
176
+ @isWaitingAfterLine = false
177
+ newPiece()
178
+ @timer.start(timeoutTime(), self)
179
+ else
180
+ oneLineDown()
181
+ end
182
+ else
183
+ super(event)
184
+ end
185
+ end
186
+
187
+ def clearBoard()
188
+ (0...BoardWidth*BoardHeight).each do |i|
189
+ @board[i] = TetrixPiece::NoShape
190
+ end
191
+ end
192
+
193
+ def dropDown()
194
+ dropHeight = 0
195
+ newY = @curY
196
+ while newY > 0
197
+ if !tryMove(@curPiece, @curX, newY - 1)
198
+ break
199
+ end
200
+ newY -= 1
201
+ dropHeight += 1
202
+ end
203
+ pieceDropped(dropHeight)
204
+ end
205
+
206
+ def oneLineDown()
207
+ if !tryMove(@curPiece, @curX, @curY - 1)
208
+ pieceDropped(0)
209
+ end
210
+ end
211
+
212
+ def pieceDropped(dropHeight)
213
+ (0...4).each do |i|
214
+ x = @curX + @curPiece.x(i)
215
+ y = @curY - @curPiece.y(i)
216
+ setShapeAt(x, y, @curPiece.shape())
217
+ end
218
+
219
+ @numPiecesDropped += 1
220
+ if @numPiecesDropped % 25 == 0
221
+ @level += 1
222
+ @timer.start(timeoutTime(), self)
223
+ emit levelChanged(@level)
224
+ end
225
+
226
+ @score += dropHeight + 7
227
+ emit scoreChanged(@score)
228
+ removeFullLines()
229
+
230
+ if !@isWaitingAfterLine
231
+ newPiece()
232
+ end
233
+ end
234
+
235
+ def removeFullLines()
236
+ numFullLines = 0
237
+ (BoardHeight - 1).downto(0) do |i|
238
+ lineIsFull = true
239
+
240
+ (0...BoardWidth).each do |j|
241
+ if shapeAt(j, i) == TetrixPiece::NoShape
242
+ lineIsFull = false
243
+ break
244
+ end
245
+ end
246
+
247
+ if lineIsFull
248
+ numFullLines += 1
249
+ (i...BoardHeight).each do |k|
250
+ (0...BoardWidth).each do |j|
251
+ setShapeAt(j, k, shapeAt(j, k + 1))
252
+ end
253
+ end
254
+ (0...BoardWidth).each do |j|
255
+ setShapeAt(j, BoardHeight - 1, TetrixPiece::NoShape)
256
+ end
257
+ end
258
+ end
259
+
260
+ if numFullLines > 0
261
+ @numLinesRemoved += numFullLines
262
+ @score += 10 * numFullLines
263
+ emit linesRemovedChanged(@numLinesRemoved)
264
+ emit scoreChanged(@score)
265
+
266
+ @timer.start(500, self)
267
+ @isWaitingAfterLine = true
268
+ @curPiece.shape = TetrixPiece::NoShape
269
+ update()
270
+ end
271
+ end
272
+
273
+ def newPiece()
274
+ @curPiece = @nextPiece
275
+ @nextPiece.setRandomShape()
276
+ showNextPiece()
277
+ @curX = BoardWidth / 2 + 1
278
+ @curY = BoardHeight - 1 + @curPiece.minY()
279
+
280
+ if !tryMove(@curPiece, @curX, @curY)
281
+ @curPiece.shape = TetrixPiece::NoShape
282
+ @timer.stop()
283
+ @isStarting = false
284
+ end
285
+ end
286
+
287
+ def showNextPiece()
288
+ if @nextPieceLabel.nil?
289
+ return
290
+ end
291
+
292
+ dx = @nextPiece.maxX() - @nextPiece.minX() + 1
293
+ dy = @nextPiece.maxY() - @nextPiece.minY() + 1
294
+
295
+ pixmap = Qt::Pixmap.new(dx * squareWidth(), dy * squareHeight())
296
+ painter = Qt::Painter.new(pixmap)
297
+ painter.fillRect(pixmap.rect(), @nextPieceLabel.palette().background())
298
+
299
+ (0...4).each do |i|
300
+ x = @nextPiece.x(i) - @nextPiece.minX()
301
+ y = @nextPiece.y(i) - @nextPiece.minY()
302
+ drawSquare(painter, x * squareWidth(), y * squareHeight(),
303
+ @nextPiece.shape())
304
+ end
305
+ @nextPieceLabel.pixmap = pixmap
306
+ painter.end
307
+ end
308
+
309
+ def tryMove(newPiece, newX, newY)
310
+ (0...4).each do |i|
311
+ x = newX + newPiece.x(i)
312
+ y = newY - newPiece.y(i)
313
+ if x < 0 || x >= BoardWidth || y < 0 || y >= BoardHeight
314
+ return false
315
+ end
316
+ if shapeAt(x, y) != TetrixPiece::NoShape
317
+ return false
318
+ end
319
+ end
320
+
321
+ @curPiece = newPiece
322
+ @curX = newX
323
+ @curY = newY
324
+ update()
325
+ return true
326
+ end
327
+
328
+ def drawSquare(painter, x, y, shape)
329
+ colorTable = [ 0x000000, 0xCC6666, 0x66CC66, 0x6666CC,
330
+ 0xCCCC66, 0xCC66CC, 0x66CCCC, 0xDAAA00 ]
331
+
332
+ color = Qt::Color.fromRgb(colorTable[shape])
333
+ painter.fillRect(x + 1, y + 1, squareWidth() - 2, squareHeight() - 2,
334
+ Qt::Brush.new(color))
335
+
336
+ painter.pen = color.light
337
+ painter.drawLine(x, y + squareHeight() - 1, x, y)
338
+ painter.drawLine(x, y, x + squareWidth() - 1, y)
339
+
340
+ painter.pen = color.dark
341
+ painter.drawLine(x + 1, y + squareHeight() - 1,
342
+ x + squareWidth() - 1, y + squareHeight() - 1)
343
+ painter.drawLine(x + squareWidth() - 1, y + squareHeight() - 1,
344
+ x + squareWidth() - 1, y + 1)
345
+ end
346
+ end