qtbindings 4.8.6.0-x86-mingw32 → 4.8.6.1-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (405) hide show
  1. checksums.yaml +4 -4
  2. data/COPYING.LIB.txt +510 -510
  3. data/COPYING.txt +286 -286
  4. data/KNOWN_ISSUES.txt +17 -17
  5. data/bin/2.2/rbrcc.exe +0 -0
  6. data/bin/2.2/rbuic4.exe +0 -0
  7. data/bin/2.2/smokeapi.exe +0 -0
  8. data/bin/2.2/smokedeptool.exe +0 -0
  9. data/bin/rbqtapi +152 -152
  10. data/examples/designer/calculatorbuilder/calculatorbuilder.qrc +5 -5
  11. data/examples/designer/calculatorbuilder/calculatorform.rb +60 -60
  12. data/examples/designer/calculatorbuilder/calculatorform.ui +299 -299
  13. data/examples/designer/calculatorbuilder/main.rb +34 -34
  14. data/examples/designer/calculatorbuilder/makefile +2 -2
  15. data/examples/designer/calculatorform/calculatorform.rb +46 -46
  16. data/examples/designer/calculatorform/calculatorform.ui +277 -277
  17. data/examples/designer/calculatorform/main.rb +32 -32
  18. data/examples/designer/calculatorform/makefile +3 -3
  19. data/examples/desktop/screenshot/main.rb +32 -32
  20. data/examples/desktop/screenshot/screenshot.rb +157 -157
  21. data/examples/desktop/systray/images/bad.svg +64 -64
  22. data/examples/desktop/systray/images/heart.svg +55 -55
  23. data/examples/desktop/systray/images/trash.svg +58 -58
  24. data/examples/desktop/systray/main.rb +41 -41
  25. data/examples/desktop/systray/makefile +2 -2
  26. data/examples/desktop/systray/systray.qrc +7 -7
  27. data/examples/desktop/systray/window.rb +219 -219
  28. data/examples/dialogs/complexwizard/complexwizard.rb +140 -140
  29. data/examples/dialogs/complexwizard/licensewizard.rb +294 -294
  30. data/examples/dialogs/complexwizard/main.rb +31 -31
  31. data/examples/dialogs/configdialog/configdialog.rb +109 -109
  32. data/examples/dialogs/configdialog/main.rb +31 -31
  33. data/examples/dialogs/configdialog/pages.rb +140 -140
  34. data/examples/dialogs/extension/finddialog.rb +89 -89
  35. data/examples/dialogs/extension/main.rb +31 -31
  36. data/examples/dialogs/findfiles/main.rb +32 -32
  37. data/examples/dialogs/findfiles/window.rb +177 -177
  38. data/examples/dialogs/simplewizard/classwizard.rb +374 -374
  39. data/examples/dialogs/simplewizard/main.rb +31 -31
  40. data/examples/dialogs/simplewizard/simplewizard.rb +110 -110
  41. data/examples/dialogs/standarddialogs/dialog.rb +340 -340
  42. data/examples/dialogs/standarddialogs/main.rb +31 -31
  43. data/examples/dialogs/tabdialog/main.rb +38 -38
  44. data/examples/dialogs/tabdialog/tabdialog.rb +178 -178
  45. data/examples/draganddrop/draggableicons/dragwidget.rb +125 -125
  46. data/examples/draganddrop/draggableicons/main.rb +41 -41
  47. data/examples/draganddrop/draggabletext/draglabel.rb +51 -51
  48. data/examples/draganddrop/draggabletext/dragwidget.rb +94 -94
  49. data/examples/draganddrop/draggabletext/main.rb +33 -33
  50. data/examples/draganddrop/draggabletext/words.txt +41 -41
  51. data/examples/draganddrop/dropsite/dropsitewidget.rb +99 -99
  52. data/examples/draganddrop/dropsite/dropsitewindow.rb +114 -114
  53. data/examples/draganddrop/dropsite/main.rb +33 -33
  54. data/examples/draganddrop/fridgemagnets/draglabel.rb +78 -78
  55. data/examples/draganddrop/fridgemagnets/dragwidget.rb +130 -130
  56. data/examples/draganddrop/fridgemagnets/main.rb +33 -33
  57. data/examples/draganddrop/fridgemagnets/words.txt +48 -48
  58. data/examples/draganddrop/puzzle/main.rb +33 -33
  59. data/examples/draganddrop/puzzle/mainwindow.rb +136 -136
  60. data/examples/draganddrop/puzzle/pieceslist.rb +95 -95
  61. data/examples/draganddrop/puzzle/puzzlewidget.rb +190 -190
  62. data/examples/graphicsview/collidingmice/main.rb +53 -53
  63. data/examples/graphicsview/collidingmice/makefile +2 -2
  64. data/examples/graphicsview/collidingmice/mice.qrc +5 -5
  65. data/examples/graphicsview/collidingmice/mouse.rb +176 -176
  66. data/examples/graphicsview/dragdroprobot/coloritem.rb +86 -86
  67. data/examples/graphicsview/dragdroprobot/main.rb +57 -57
  68. data/examples/graphicsview/dragdroprobot/makefile +2 -2
  69. data/examples/graphicsview/dragdroprobot/robot.qrc +5 -5
  70. data/examples/graphicsview/dragdroprobot/robot.rb +246 -246
  71. data/examples/itemviews/chart/chart.qrc +5 -5
  72. data/examples/itemviews/chart/main.rb +33 -33
  73. data/examples/itemviews/chart/mainwindow.rb +151 -151
  74. data/examples/itemviews/chart/makefile +2 -2
  75. data/examples/itemviews/chart/mydata.cht +8 -8
  76. data/examples/itemviews/chart/pieview.rb +516 -516
  77. data/examples/itemviews/chart/qtdata.cht +14 -14
  78. data/examples/itemviews/dirview/main.rb +39 -39
  79. data/examples/itemviews/pixelator/imagemodel.rb +51 -51
  80. data/examples/itemviews/pixelator/images.qrc +5 -5
  81. data/examples/itemviews/pixelator/main.rb +34 -34
  82. data/examples/itemviews/pixelator/mainwindow.rb +218 -218
  83. data/examples/itemviews/pixelator/makefile +3 -3
  84. data/examples/itemviews/pixelator/pixeldelegate.rb +67 -67
  85. data/examples/itemviews/puzzle/main.rb +36 -36
  86. data/examples/itemviews/puzzle/mainwindow.rb +143 -143
  87. data/examples/itemviews/puzzle/piecesmodel.rb +174 -174
  88. data/examples/itemviews/puzzle/puzzlewidget.rb +192 -192
  89. data/examples/itemviews/simpledommodel/domitem.rb +62 -62
  90. data/examples/itemviews/simpledommodel/dommodel.rb +139 -139
  91. data/examples/itemviews/simpledommodel/main.rb +33 -33
  92. data/examples/itemviews/simpledommodel/mainwindow.rb +66 -66
  93. data/examples/itemviews/simpletreemodel/default.txt +40 -40
  94. data/examples/itemviews/simpletreemodel/main.rb +41 -41
  95. data/examples/itemviews/simpletreemodel/makefile +2 -2
  96. data/examples/itemviews/simpletreemodel/simpletreemodel.qrc +5 -5
  97. data/examples/itemviews/simpletreemodel/treeitem.rb +67 -67
  98. data/examples/itemviews/simpletreemodel/treemodel.rb +164 -164
  99. data/examples/itemviews/sortingmodel/default.txt +40 -40
  100. data/examples/itemviews/sortingmodel/main.rb +53 -53
  101. data/examples/itemviews/sortingmodel/treeitem.rb +73 -73
  102. data/examples/itemviews/sortingmodel/treemodel.rb +166 -166
  103. data/examples/itemviews/spinboxdelegate/main.rb +47 -47
  104. data/examples/itemviews/spinboxdelegate/spinboxdelegate.rb +62 -62
  105. data/examples/killerfilter/killerfilter.rb +55 -55
  106. data/examples/layouts/basiclayouts/dialog.rb +110 -110
  107. data/examples/layouts/basiclayouts/main.rb +31 -31
  108. data/examples/layouts/borderlayout/borderlayout.rb +190 -190
  109. data/examples/layouts/borderlayout/main.rb +32 -32
  110. data/examples/layouts/borderlayout/window.rb +52 -52
  111. data/examples/layouts/flowlayouts/flowlayout.rb +108 -108
  112. data/examples/layouts/flowlayouts/main.rb +32 -32
  113. data/examples/layouts/flowlayouts/window.rb +43 -43
  114. data/examples/mainwindows/application/main.rb +32 -32
  115. data/examples/mainwindows/application/mainwindow.rb +285 -285
  116. data/examples/mainwindows/dockwidgets/main.rb +32 -32
  117. data/examples/mainwindows/dockwidgets/mainwindow.rb +302 -302
  118. data/examples/mainwindows/mdi/main.rb +32 -32
  119. data/examples/mainwindows/mdi/mainwindow.rb +363 -363
  120. data/examples/mainwindows/mdi/mdichild.rb +152 -152
  121. data/examples/mainwindows/menus/main.rb +32 -32
  122. data/examples/mainwindows/menus/mainwindow.rb +327 -327
  123. data/examples/mainwindows/recentfiles/main.rb +32 -32
  124. data/examples/mainwindows/recentfiles/mainwindow.rb +258 -258
  125. data/examples/mainwindows/sdi/main.rb +32 -32
  126. data/examples/mainwindows/sdi/mainwindow.rb +335 -335
  127. data/examples/network/broadcastreceiver/main.rb +32 -32
  128. data/examples/network/broadcastreceiver/receiver.rb +64 -64
  129. data/examples/network/broadcastsender/main.rb +32 -32
  130. data/examples/network/broadcastsender/sender.rb +72 -72
  131. data/examples/network/fortuneclient/client.rb +149 -149
  132. data/examples/network/fortuneclient/main.rb +32 -32
  133. data/examples/network/fortuneserver/main.rb +32 -32
  134. data/examples/network/fortuneserver/server.rb +88 -88
  135. data/examples/network/ftp/ftpwindow.rb +259 -259
  136. data/examples/network/ftp/main.rb +32 -32
  137. data/examples/network/http/httpwindow.rb +187 -187
  138. data/examples/network/http/main.rb +32 -32
  139. data/examples/network/loopback/dialog.rb +163 -163
  140. data/examples/network/loopback/main.rb +32 -32
  141. data/examples/opengl/grabber/glwidget.rb +265 -265
  142. data/examples/opengl/grabber/main.rb +32 -32
  143. data/examples/opengl/grabber/mainwindow.rb +189 -189
  144. data/examples/opengl/hellogl/glwidget.rb +226 -226
  145. data/examples/opengl/hellogl/main.rb +32 -32
  146. data/examples/opengl/hellogl/window.rb +66 -66
  147. data/examples/opengl/textures/glwidget.rb +151 -151
  148. data/examples/opengl/textures/main.rb +32 -32
  149. data/examples/opengl/textures/window.rb +77 -77
  150. data/examples/painting/basicdrawing/main.rb +32 -32
  151. data/examples/painting/basicdrawing/renderarea.rb +166 -166
  152. data/examples/painting/basicdrawing/window.rb +215 -215
  153. data/examples/painting/concentriccircles/circlewidget.rb +88 -88
  154. data/examples/painting/concentriccircles/main.rb +32 -32
  155. data/examples/painting/concentriccircles/window.rb +72 -72
  156. data/examples/painting/fontsampler/main.rb +32 -32
  157. data/examples/painting/fontsampler/mainwindow.rb +369 -369
  158. data/examples/painting/fontsampler/mainwindowbase.ui +136 -136
  159. data/examples/painting/fontsampler/makefile +8 -8
  160. data/examples/painting/fontsampler/previewdialog.rb +257 -257
  161. data/examples/painting/fontsampler/previewdialogbase.ui +224 -224
  162. data/examples/painting/fontsampler/previewlabel.rb +43 -43
  163. data/examples/painting/imagecomposition/imagecomposer.rb +152 -152
  164. data/examples/painting/imagecomposition/imagecomposition.qrc +6 -6
  165. data/examples/painting/imagecomposition/main.rb +33 -33
  166. data/examples/painting/imagecomposition/makefile +2 -2
  167. data/examples/painting/painterpaths/main.rb +32 -32
  168. data/examples/painting/painterpaths/renderarea.rb +97 -97
  169. data/examples/painting/painterpaths/window.rb +247 -247
  170. data/examples/painting/svgviewer/files/bubbles.svg +212 -212
  171. data/examples/painting/svgviewer/files/cubic.svg +77 -77
  172. data/examples/painting/svgviewer/files/spheres.svg +79 -79
  173. data/examples/painting/svgviewer/main.rb +38 -38
  174. data/examples/painting/svgviewer/mainwindow.rb +99 -99
  175. data/examples/painting/svgviewer/makefile +2 -2
  176. data/examples/painting/svgviewer/svgview.rb +156 -156
  177. data/examples/painting/svgviewer/svgviewer.qrc +6 -6
  178. data/examples/painting/svgviewer/svgwindow.rb +87 -87
  179. data/examples/painting/transformations/main.rb +32 -32
  180. data/examples/painting/transformations/renderarea.rb +127 -127
  181. data/examples/painting/transformations/window.rb +153 -153
  182. data/examples/passivepopup/passivepopup.rb +38 -38
  183. data/examples/qdbus/chat/chat.rb +146 -146
  184. data/examples/qdbus/chat/chat_adaptor.rb +12 -12
  185. data/examples/qdbus/chat/chat_interface.rb +13 -13
  186. data/examples/qdbus/chat/chatmainwindow.ui +184 -184
  187. data/examples/qdbus/chat/chatsetnickname.ui +145 -145
  188. data/examples/qdbus/chat/makefile +8 -8
  189. data/examples/qdbus/complexpingpong/complexping.rb +92 -92
  190. data/examples/qdbus/complexpingpong/complexpong.rb +83 -83
  191. data/examples/qdbus/complexpingpong/ping-common.rb +1 -1
  192. data/examples/qdbus/listnames/listnames.rb +69 -69
  193. data/examples/qdbus/pingpong/ping-common.rb +1 -1
  194. data/examples/qdbus/pingpong/ping.rb +52 -52
  195. data/examples/qdbus/pingpong/pong.rb +55 -55
  196. data/examples/qdbus/remotecontrolledcar/car/car.rb +151 -151
  197. data/examples/qdbus/remotecontrolledcar/car/main.rb +50 -50
  198. data/examples/qdbus/remotecontrolledcar/controller/controller.rb +66 -66
  199. data/examples/qdbus/remotecontrolledcar/controller/controller.ui +61 -61
  200. data/examples/qdbus/remotecontrolledcar/controller/main.rb +32 -32
  201. data/examples/qdbus/remotecontrolledcar/controller/makefile +2 -2
  202. data/examples/qtscribble/scribble.rb +270 -270
  203. data/examples/richtext/calendar/main.rb +33 -33
  204. data/examples/richtext/calendar/mainwindow.rb +173 -173
  205. data/examples/richtext/orderform/detailsdialog.rb +130 -130
  206. data/examples/richtext/orderform/main.rb +34 -34
  207. data/examples/richtext/orderform/mainwindow.rb +194 -194
  208. data/examples/richtext/syntaxhighlighter/examples/example +79 -79
  209. data/examples/richtext/syntaxhighlighter/highlighter.rb +90 -90
  210. data/examples/richtext/syntaxhighlighter/main.rb +34 -34
  211. data/examples/richtext/syntaxhighlighter/mainwindow.rb +105 -105
  212. data/examples/ruboids/LICENSE.txt +58 -58
  213. data/examples/ruboids/Manifest +26 -26
  214. data/examples/ruboids/README +53 -53
  215. data/examples/ruboids/TODO +29 -29
  216. data/examples/ruboids/boids.properties +33 -33
  217. data/examples/ruboids/generateManifest.rb +42 -42
  218. data/examples/ruboids/release.rb +152 -152
  219. data/examples/ruboids/ruboids/Boid.rb +141 -141
  220. data/examples/ruboids/ruboids/BoidView.rb +159 -159
  221. data/examples/ruboids/ruboids/Camera.rb +24 -24
  222. data/examples/ruboids/ruboids/CameraDialog.rb +218 -218
  223. data/examples/ruboids/ruboids/Canvas.rb +143 -143
  224. data/examples/ruboids/ruboids/Cloud.rb +61 -61
  225. data/examples/ruboids/ruboids/CloudView.rb +54 -54
  226. data/examples/ruboids/ruboids/Flock.rb +47 -47
  227. data/examples/ruboids/ruboids/Graphics.rb +278 -278
  228. data/examples/ruboids/ruboids/Params.rb +87 -87
  229. data/examples/ruboids/ruboids/Point.rb +153 -153
  230. data/examples/ruboids/ruboids/Thing.rb +34 -34
  231. data/examples/ruboids/ruboids/Triangle.rb +21 -21
  232. data/examples/ruboids/ruboids/View.rb +88 -88
  233. data/examples/ruboids/ruboids/World.rb +82 -82
  234. data/examples/ruboids/ruboids/WorldWindow.rb +52 -52
  235. data/examples/ruboids/ruboids/info.rb +12 -12
  236. data/examples/ruboids/ruboids/ruboids.rb +29 -29
  237. data/examples/threading/main_thread.rb +19 -19
  238. data/examples/tutorial/t1/t1.rb +10 -10
  239. data/examples/tutorial/t10/cannon.rb +72 -72
  240. data/examples/tutorial/t10/lcdrange.rb +45 -45
  241. data/examples/tutorial/t10/t10.rb +55 -55
  242. data/examples/tutorial/t11/cannon.rb +124 -124
  243. data/examples/tutorial/t11/lcdrange.rb +45 -45
  244. data/examples/tutorial/t11/t11.rb +65 -65
  245. data/examples/tutorial/t12/cannon.rb +158 -158
  246. data/examples/tutorial/t12/lcdrange.rb +59 -59
  247. data/examples/tutorial/t12/t12.rb +66 -66
  248. data/examples/tutorial/t13/cannon.rb +208 -208
  249. data/examples/tutorial/t13/gamebrd.rb +113 -113
  250. data/examples/tutorial/t13/lcdrange.rb +60 -60
  251. data/examples/tutorial/t13/t13.rb +11 -11
  252. data/examples/tutorial/t14/cannon.rb +263 -263
  253. data/examples/tutorial/t14/gamebrd.rb +123 -123
  254. data/examples/tutorial/t14/lcdrange.rb +63 -63
  255. data/examples/tutorial/t14/t14.rb +11 -11
  256. data/examples/tutorial/t2/t2.rb +16 -16
  257. data/examples/tutorial/t3/t3.rb +18 -18
  258. data/examples/tutorial/t4/t4.rb +25 -25
  259. data/examples/tutorial/t5/t5.rb +37 -37
  260. data/examples/tutorial/t6/t6.rb +52 -52
  261. data/examples/tutorial/t7/lcdrange.rb +32 -32
  262. data/examples/tutorial/t7/t7.rb +42 -42
  263. data/examples/tutorial/t8/cannon.rb +38 -38
  264. data/examples/tutorial/t8/lcdrange.rb +45 -45
  265. data/examples/tutorial/t8/t8.rb +43 -43
  266. data/examples/tutorial/t9/cannon.rb +45 -45
  267. data/examples/tutorial/t9/lcdrange.rb +46 -46
  268. data/examples/tutorial/t9/t9.rb +43 -43
  269. data/examples/widgets/analogclock/analogclock.rb +94 -94
  270. data/examples/widgets/analogclock/main.rb +9 -9
  271. data/examples/widgets/calculator/button.rb +45 -45
  272. data/examples/widgets/calculator/calculator.rb +382 -382
  273. data/examples/widgets/calculator/main.rb +32 -32
  274. data/examples/widgets/charactermap/characterwidget.rb +109 -109
  275. data/examples/widgets/charactermap/main.rb +32 -32
  276. data/examples/widgets/charactermap/mainwindow.rb +118 -118
  277. data/examples/widgets/digitalclock/digitalclock.rb +30 -30
  278. data/examples/widgets/digitalclock/main.rb +9 -9
  279. data/examples/widgets/groupbox/main.rb +32 -32
  280. data/examples/widgets/groupbox/window.rb +134 -134
  281. data/examples/widgets/icons/iconpreviewarea.rb +110 -110
  282. data/examples/widgets/icons/iconsizespinbox.rb +39 -39
  283. data/examples/widgets/icons/imagedelegate.rb +73 -73
  284. data/examples/widgets/icons/main.rb +32 -32
  285. data/examples/widgets/icons/mainwindow.rb +351 -351
  286. data/examples/widgets/imageviewer/imageviewer.rb +219 -219
  287. data/examples/widgets/imageviewer/main.rb +32 -32
  288. data/examples/widgets/lineedits/main.rb +32 -32
  289. data/examples/widgets/lineedits/window.rb +199 -199
  290. data/examples/widgets/movie/main.rb +32 -32
  291. data/examples/widgets/movie/movieplayer.rb +201 -201
  292. data/examples/widgets/screenshot/main.rb +32 -32
  293. data/examples/widgets/screenshot/screenshot.rb +154 -154
  294. data/examples/widgets/scribble/main.rb +32 -32
  295. data/examples/widgets/scribble/mainwindow.rb +202 -202
  296. data/examples/widgets/scribble/scribblearea.rb +154 -154
  297. data/examples/widgets/sliders/main.rb +32 -32
  298. data/examples/widgets/sliders/slidersgroup.rb +97 -97
  299. data/examples/widgets/sliders/window.rb +124 -124
  300. data/examples/widgets/spinboxes/main.rb +32 -32
  301. data/examples/widgets/spinboxes/window.rb +213 -213
  302. data/examples/widgets/tetrix/main.rb +33 -33
  303. data/examples/widgets/tetrix/tetrixboard.rb +346 -346
  304. data/examples/widgets/tetrix/tetrixpiece.rb +135 -135
  305. data/examples/widgets/tetrix/tetrixwindow.rb +88 -88
  306. data/examples/widgets/tooltips/main.rb +32 -32
  307. data/examples/widgets/tooltips/shapeitem.rb +31 -31
  308. data/examples/widgets/tooltips/sortingbox.rb +222 -222
  309. data/examples/widgets/wiggly/dialog.rb +48 -48
  310. data/examples/widgets/wiggly/main.rb +9 -9
  311. data/examples/widgets/wiggly/wigglywidget.rb +75 -75
  312. data/examples/widgets/windowflags/controllerwindow.rb +195 -195
  313. data/examples/widgets/windowflags/main.rb +32 -32
  314. data/examples/widgets/windowflags/previewwindow.rb +103 -103
  315. data/examples/xml/dombookmarks/frank.xbel +230 -230
  316. data/examples/xml/dombookmarks/jennifer.xbel +93 -93
  317. data/examples/xml/dombookmarks/main.rb +34 -34
  318. data/examples/xml/dombookmarks/mainwindow.rb +129 -129
  319. data/examples/xml/dombookmarks/xbeltree.rb +172 -172
  320. data/examples/xml/saxbookmarks/frank.xbel +230 -230
  321. data/examples/xml/saxbookmarks/jennifer.xbel +93 -93
  322. data/examples/xml/saxbookmarks/main.rb +34 -34
  323. data/examples/xml/saxbookmarks/mainwindow.rb +144 -144
  324. data/examples/xml/saxbookmarks/xbelgenerator.rb +95 -95
  325. data/examples/xml/saxbookmarks/xbelhandler.rb +122 -122
  326. data/extconf.rb +2 -2
  327. data/lib/2.0/libqtruby4shared.dll +0 -0
  328. data/lib/2.0/libsmokebase.dll +0 -0
  329. data/lib/2.0/libsmokeqtcore.dll +0 -0
  330. data/lib/2.0/libsmokeqtdeclarative.dll +0 -0
  331. data/lib/2.0/libsmokeqtgui.dll +0 -0
  332. data/lib/2.0/libsmokeqthelp.dll +0 -0
  333. data/lib/2.0/libsmokeqtmultimedia.dll +0 -0
  334. data/lib/2.0/libsmokeqtnetwork.dll +0 -0
  335. data/lib/2.0/libsmokeqtopengl.dll +0 -0
  336. data/lib/2.0/libsmokeqtsql.dll +0 -0
  337. data/lib/2.0/libsmokeqtsvg.dll +0 -0
  338. data/lib/2.0/libsmokeqttest.dll +0 -0
  339. data/lib/2.0/libsmokeqtuitools.dll +0 -0
  340. data/lib/2.0/libsmokeqtwebkit.dll +0 -0
  341. data/lib/2.0/libsmokeqtxml.dll +0 -0
  342. data/lib/2.0/libsmokeqtxmlpatterns.dll +0 -0
  343. data/lib/2.0/qtdeclarative.so +0 -0
  344. data/lib/2.0/qtruby4.so +0 -0
  345. data/lib/2.0/qtscript.so +0 -0
  346. data/lib/2.0/qttest.so +0 -0
  347. data/lib/2.0/qtuitools.so +0 -0
  348. data/lib/2.0/qtwebkit.so +0 -0
  349. data/lib/2.1/libqtruby4shared.dll +0 -0
  350. data/lib/2.1/libsmokebase.dll +0 -0
  351. data/lib/2.1/libsmokeqtcore.dll +0 -0
  352. data/lib/2.1/libsmokeqtdeclarative.dll +0 -0
  353. data/lib/2.1/libsmokeqtgui.dll +0 -0
  354. data/lib/2.1/libsmokeqthelp.dll +0 -0
  355. data/lib/2.1/libsmokeqtmultimedia.dll +0 -0
  356. data/lib/2.1/libsmokeqtnetwork.dll +0 -0
  357. data/lib/2.1/libsmokeqtopengl.dll +0 -0
  358. data/lib/2.1/libsmokeqtscript.dll +0 -0
  359. data/lib/2.1/libsmokeqtsql.dll +0 -0
  360. data/lib/2.1/libsmokeqtsvg.dll +0 -0
  361. data/lib/2.1/libsmokeqttest.dll +0 -0
  362. data/lib/2.1/libsmokeqtwebkit.dll +0 -0
  363. data/lib/2.1/libsmokeqtxml.dll +0 -0
  364. data/lib/2.1/libsmokeqtxmlpatterns.dll +0 -0
  365. data/lib/2.1/qtdeclarative.so +0 -0
  366. data/lib/2.1/qtruby4.so +0 -0
  367. data/lib/2.1/qtscript.so +0 -0
  368. data/lib/2.1/qttest.so +0 -0
  369. data/lib/2.1/qtuitools.so +0 -0
  370. data/lib/2.1/qtwebkit.so +0 -0
  371. data/lib/2.2/libqtruby4shared.dll +0 -0
  372. data/lib/2.2/libsmokebase.dll +0 -0
  373. data/lib/2.2/libsmokeqtcore.dll +0 -0
  374. data/lib/2.2/libsmokeqtdeclarative.dll +0 -0
  375. data/lib/2.2/libsmokeqtgui.dll +0 -0
  376. data/lib/2.2/libsmokeqthelp.dll +0 -0
  377. data/lib/2.2/libsmokeqtmultimedia.dll +0 -0
  378. data/lib/2.2/libsmokeqtnetwork.dll +0 -0
  379. data/lib/2.2/libsmokeqtopengl.dll +0 -0
  380. data/lib/2.2/libsmokeqtscript.dll +0 -0
  381. data/lib/2.2/libsmokeqtsql.dll +0 -0
  382. data/lib/2.2/libsmokeqtsvg.dll +0 -0
  383. data/lib/2.2/libsmokeqttest.dll +0 -0
  384. data/lib/2.2/libsmokeqtuitools.dll +0 -0
  385. data/lib/2.2/libsmokeqtwebkit.dll +0 -0
  386. data/lib/2.2/libsmokeqtxml.dll +0 -0
  387. data/lib/2.2/libsmokeqtxmlpatterns.dll +0 -0
  388. data/lib/2.2/qtdeclarative.so +0 -0
  389. data/lib/2.2/qtruby4.so +0 -0
  390. data/lib/2.2/qtscript.so +0 -0
  391. data/lib/2.2/qttest.so +0 -0
  392. data/lib/2.2/qtuitools.so +0 -0
  393. data/lib/2.2/qtwebkit.so +0 -0
  394. data/lib/Qt.rb +1 -1
  395. data/lib/Qt/qtruby4.rb +16 -0
  396. data/lib/Qt4.rb +111 -111
  397. data/lib/qtbindings_qt_version.rb +2 -0
  398. data/lib/qtbindings_version.rb +2 -2
  399. data/lib/qtdeclarative/qtdeclarative.rb +17 -17
  400. data/lib/qtscript/qtscript.rb +40 -40
  401. data/lib/qttest/qttest.rb +166 -166
  402. data/lib/qtuitools/qtuitools.rb +17 -17
  403. data/lib/qtwebkit/qtwebkit.rb +17 -17
  404. metadata +31 -4
  405. data/README.txt +0 -148
@@ -1,113 +1,113 @@
1
- require 'Qt'
2
- require './lcdrange.rb'
3
- require './cannon.rb'
4
-
5
- class GameBoard < Qt::Widget
6
-
7
- slots 'fire()', 'hit()', 'missed()', 'newGame()'
8
-
9
- def initialize(parent = nil)
10
- super
11
- quit = Qt::PushButton.new('&Quit')
12
- quit.setFont(Qt::Font.new('Times', 18, Qt::Font::Bold))
13
-
14
- connect(quit, SIGNAL('clicked()'), $qApp, SLOT('quit()'))
15
-
16
- angle = LCDRange.new( 'ANGLE', self )
17
- angle.range = 5..70
18
-
19
- force = LCDRange.new( 'FORCE', self )
20
- force.range = 10..50
21
-
22
- @cannonField = CannonField.new( self )
23
-
24
- connect( angle, SIGNAL('valueChanged(int)'),
25
- @cannonField, SLOT('setAngle(int)') )
26
- connect( @cannonField, SIGNAL('angleChanged(int)'),
27
- angle, SLOT('setValue(int)') )
28
-
29
- connect( force, SIGNAL('valueChanged(int)'),
30
- @cannonField, SLOT('setForce(int)') )
31
- connect( @cannonField, SIGNAL('forceChanged(int)'),
32
- force, SLOT('setValue(int)') )
33
-
34
- connect( @cannonField, SIGNAL('hit()'),
35
- self, SLOT('hit()') )
36
- connect( @cannonField, SIGNAL('missed()'),
37
- self, SLOT('missed()') )
38
-
39
- shoot = Qt::PushButton.new( '&Shoot', self )
40
- shoot.setFont( Qt::Font.new( 'Times', 18, Qt::Font::Bold ) )
41
-
42
- connect( shoot, SIGNAL('clicked()'), SLOT('fire()') )
43
- connect( @cannonField, SIGNAL('canShoot(bool)'),
44
- shoot, SLOT('setEnabled(bool)') )
45
-
46
- restart = Qt::PushButton.new( '&New Game', self )
47
- restart.setFont( Qt::Font.new( 'Times', 18, Qt::Font::Bold ) )
48
-
49
- connect( restart, SIGNAL('clicked()'), self, SLOT('newGame()') )
50
-
51
- @hits = Qt::LCDNumber.new( 2, self )
52
- @shotsLeft = Qt::LCDNumber.new( 2, self )
53
- hitsLabel = Qt::Label.new( 'HITS', self )
54
- shotsLeftLabel = Qt::Label.new( 'SHOTS LEFT', self )
55
-
56
- topLayout = Qt::HBoxLayout.new
57
- topLayout.addWidget(shoot)
58
- topLayout.addWidget(@hits)
59
- topLayout.addWidget(hitsLabel)
60
- topLayout.addWidget(@shotsLeft)
61
- topLayout.addWidget(shotsLeftLabel)
62
- topLayout.addStretch(1)
63
- topLayout.addWidget(restart)
64
-
65
- leftLayout = Qt::VBoxLayout.new()
66
- leftLayout.addWidget( angle )
67
- leftLayout.addWidget( force )
68
-
69
- gridLayout = Qt::GridLayout.new
70
- gridLayout.addWidget( quit, 0, 0 )
71
- gridLayout.addLayout(topLayout, 0, 1)
72
- gridLayout.addLayout(leftLayout, 1, 0)
73
- gridLayout.addWidget( @cannonField, 1, 1, 2, 1 )
74
- gridLayout.setColumnStretch( 1, 10 )
75
- setLayout(gridLayout)
76
-
77
- angle.setValue( 60 )
78
- force.setValue( 25 )
79
- angle.setFocus()
80
-
81
- newGame()
82
- end
83
-
84
- def fire()
85
- if @cannonField.gameOver() || @cannonField.isShooting()
86
- return
87
- end
88
- @shotsLeft.display( @shotsLeft.intValue() - 1 )
89
- @cannonField.shoot()
90
- end
91
-
92
- def hit()
93
- @hits.display( @hits.intValue() + 1 )
94
- if @shotsLeft.intValue() == 0
95
- @cannonField.setGameOver()
96
- else
97
- @cannonField.newTarget()
98
- end
99
- end
100
-
101
- def missed()
102
- if @shotsLeft.intValue() == 0
103
- @cannonField.setGameOver()
104
- end
105
- end
106
-
107
- def newGame()
108
- @shotsLeft.display( 15.0 )
109
- @hits.display( 0 )
110
- @cannonField.restartGame()
111
- @cannonField.newTarget()
112
- end
113
- end
1
+ require 'Qt'
2
+ require './lcdrange.rb'
3
+ require './cannon.rb'
4
+
5
+ class GameBoard < Qt::Widget
6
+
7
+ slots 'fire()', 'hit()', 'missed()', 'newGame()'
8
+
9
+ def initialize(parent = nil)
10
+ super
11
+ quit = Qt::PushButton.new('&Quit')
12
+ quit.setFont(Qt::Font.new('Times', 18, Qt::Font::Bold))
13
+
14
+ connect(quit, SIGNAL('clicked()'), $qApp, SLOT('quit()'))
15
+
16
+ angle = LCDRange.new( 'ANGLE', self )
17
+ angle.range = 5..70
18
+
19
+ force = LCDRange.new( 'FORCE', self )
20
+ force.range = 10..50
21
+
22
+ @cannonField = CannonField.new( self )
23
+
24
+ connect( angle, SIGNAL('valueChanged(int)'),
25
+ @cannonField, SLOT('setAngle(int)') )
26
+ connect( @cannonField, SIGNAL('angleChanged(int)'),
27
+ angle, SLOT('setValue(int)') )
28
+
29
+ connect( force, SIGNAL('valueChanged(int)'),
30
+ @cannonField, SLOT('setForce(int)') )
31
+ connect( @cannonField, SIGNAL('forceChanged(int)'),
32
+ force, SLOT('setValue(int)') )
33
+
34
+ connect( @cannonField, SIGNAL('hit()'),
35
+ self, SLOT('hit()') )
36
+ connect( @cannonField, SIGNAL('missed()'),
37
+ self, SLOT('missed()') )
38
+
39
+ shoot = Qt::PushButton.new( '&Shoot', self )
40
+ shoot.setFont( Qt::Font.new( 'Times', 18, Qt::Font::Bold ) )
41
+
42
+ connect( shoot, SIGNAL('clicked()'), SLOT('fire()') )
43
+ connect( @cannonField, SIGNAL('canShoot(bool)'),
44
+ shoot, SLOT('setEnabled(bool)') )
45
+
46
+ restart = Qt::PushButton.new( '&New Game', self )
47
+ restart.setFont( Qt::Font.new( 'Times', 18, Qt::Font::Bold ) )
48
+
49
+ connect( restart, SIGNAL('clicked()'), self, SLOT('newGame()') )
50
+
51
+ @hits = Qt::LCDNumber.new( 2, self )
52
+ @shotsLeft = Qt::LCDNumber.new( 2, self )
53
+ hitsLabel = Qt::Label.new( 'HITS', self )
54
+ shotsLeftLabel = Qt::Label.new( 'SHOTS LEFT', self )
55
+
56
+ topLayout = Qt::HBoxLayout.new
57
+ topLayout.addWidget(shoot)
58
+ topLayout.addWidget(@hits)
59
+ topLayout.addWidget(hitsLabel)
60
+ topLayout.addWidget(@shotsLeft)
61
+ topLayout.addWidget(shotsLeftLabel)
62
+ topLayout.addStretch(1)
63
+ topLayout.addWidget(restart)
64
+
65
+ leftLayout = Qt::VBoxLayout.new()
66
+ leftLayout.addWidget( angle )
67
+ leftLayout.addWidget( force )
68
+
69
+ gridLayout = Qt::GridLayout.new
70
+ gridLayout.addWidget( quit, 0, 0 )
71
+ gridLayout.addLayout(topLayout, 0, 1)
72
+ gridLayout.addLayout(leftLayout, 1, 0)
73
+ gridLayout.addWidget( @cannonField, 1, 1, 2, 1 )
74
+ gridLayout.setColumnStretch( 1, 10 )
75
+ setLayout(gridLayout)
76
+
77
+ angle.setValue( 60 )
78
+ force.setValue( 25 )
79
+ angle.setFocus()
80
+
81
+ newGame()
82
+ end
83
+
84
+ def fire()
85
+ if @cannonField.gameOver() || @cannonField.isShooting()
86
+ return
87
+ end
88
+ @shotsLeft.display( @shotsLeft.intValue() - 1 )
89
+ @cannonField.shoot()
90
+ end
91
+
92
+ def hit()
93
+ @hits.display( @hits.intValue() + 1 )
94
+ if @shotsLeft.intValue() == 0
95
+ @cannonField.setGameOver()
96
+ else
97
+ @cannonField.newTarget()
98
+ end
99
+ end
100
+
101
+ def missed()
102
+ if @shotsLeft.intValue() == 0
103
+ @cannonField.setGameOver()
104
+ end
105
+ end
106
+
107
+ def newGame()
108
+ @shotsLeft.display( 15.0 )
109
+ @hits.display( 0 )
110
+ @cannonField.restartGame()
111
+ @cannonField.newTarget()
112
+ end
113
+ end
@@ -1,60 +1,60 @@
1
- require 'Qt'
2
-
3
- class LCDRange < Qt::Widget
4
- signals 'valueChanged(int)'
5
- slots 'setValue(int)', 'setRange(int, int)', 'setText(const char*)'
6
-
7
- def initialize(s, parent = nil)
8
- super(parent)
9
- init()
10
- setText(s)
11
- end
12
-
13
- def init()
14
- lcd = Qt::LCDNumber.new(2)
15
- @slider = Qt::Slider.new(Qt::Horizontal)
16
- @slider.range = 0..99
17
- @slider.value = 0
18
-
19
- @label = Qt::Label.new
20
- @label.setAlignment(Qt::AlignHCenter.to_i | Qt::AlignTop.to_i)
21
- @label.setSizePolicy(Qt::SizePolicy::Preferred, Qt::SizePolicy::Fixed)
22
-
23
- connect(@slider, SIGNAL('valueChanged(int)'), lcd, SLOT('display(int)'))
24
- connect(@slider, SIGNAL('valueChanged(int)'), SIGNAL('valueChanged(int)'))
25
-
26
- layout = Qt::VBoxLayout.new
27
- layout.addWidget(lcd)
28
- layout.addWidget(@slider)
29
- setLayout(layout)
30
-
31
- setFocusProxy(@slider)
32
- end
33
-
34
- def value()
35
- @slider.value()
36
- end
37
-
38
- def setValue( value )
39
- @slider.setValue( value )
40
- end
41
-
42
- def range=( r )
43
- setRange(r.begin, r.end)
44
- end
45
-
46
- def setRange( minVal, maxVal )
47
- if minVal < 0 || maxVal > 99 || minVal > maxVal
48
- qWarning( "LCDRange::setRange(#{minVal},#{maxVal})\n" +
49
- "\tRange must be 0..99\n" +
50
- "\tand minVal must not be greater than maxVal" )
51
- return
52
- end
53
- @slider.setRange( minVal, maxVal )
54
- end
55
-
56
- def setText( s )
57
- @label.setText( s )
58
- end
59
-
60
- end
1
+ require 'Qt'
2
+
3
+ class LCDRange < Qt::Widget
4
+ signals 'valueChanged(int)'
5
+ slots 'setValue(int)', 'setRange(int, int)', 'setText(const char*)'
6
+
7
+ def initialize(s, parent = nil)
8
+ super(parent)
9
+ init()
10
+ setText(s)
11
+ end
12
+
13
+ def init()
14
+ lcd = Qt::LCDNumber.new(2)
15
+ @slider = Qt::Slider.new(Qt::Horizontal)
16
+ @slider.range = 0..99
17
+ @slider.value = 0
18
+
19
+ @label = Qt::Label.new
20
+ @label.setAlignment(Qt::AlignHCenter.to_i | Qt::AlignTop.to_i)
21
+ @label.setSizePolicy(Qt::SizePolicy::Preferred, Qt::SizePolicy::Fixed)
22
+
23
+ connect(@slider, SIGNAL('valueChanged(int)'), lcd, SLOT('display(int)'))
24
+ connect(@slider, SIGNAL('valueChanged(int)'), SIGNAL('valueChanged(int)'))
25
+
26
+ layout = Qt::VBoxLayout.new
27
+ layout.addWidget(lcd)
28
+ layout.addWidget(@slider)
29
+ setLayout(layout)
30
+
31
+ setFocusProxy(@slider)
32
+ end
33
+
34
+ def value()
35
+ @slider.value()
36
+ end
37
+
38
+ def setValue( value )
39
+ @slider.setValue( value )
40
+ end
41
+
42
+ def range=( r )
43
+ setRange(r.begin, r.end)
44
+ end
45
+
46
+ def setRange( minVal, maxVal )
47
+ if minVal < 0 || maxVal > 99 || minVal > maxVal
48
+ qWarning( "LCDRange::setRange(#{minVal},#{maxVal})\n" +
49
+ "\tRange must be 0..99\n" +
50
+ "\tand minVal must not be greater than maxVal" )
51
+ return
52
+ end
53
+ @slider.setRange( minVal, maxVal )
54
+ end
55
+
56
+ def setText( s )
57
+ @label.setText( s )
58
+ end
59
+
60
+ end
@@ -1,11 +1,11 @@
1
- #!/usr/bin/env ruby
2
- $VERBOSE = true; $:.unshift File.dirname($0)
3
-
4
- require 'Qt'
5
- require './gamebrd.rb'
6
-
7
- app = Qt::Application.new(ARGV)
8
- gb = GameBoard.new
9
- gb.setGeometry( 100, 100, 500, 355 )
10
- gb.show
11
- app.exec
1
+ #!/usr/bin/env ruby
2
+ $VERBOSE = true; $:.unshift File.dirname($0)
3
+
4
+ require 'Qt'
5
+ require './gamebrd.rb'
6
+
7
+ app = Qt::Application.new(ARGV)
8
+ gb = GameBoard.new
9
+ gb.setGeometry( 100, 100, 500, 355 )
10
+ gb.show
11
+ app.exec
@@ -1,263 +1,263 @@
1
- include Math
2
-
3
- class CannonField < Qt::Widget
4
-
5
- signals 'hit()', 'missed()', 'angleChanged(int)', 'forceChanged(int)',
6
- 'canShoot(bool)'
7
-
8
- slots 'angle=(int)', 'force=(int)', 'shoot()', 'moveShot()',
9
- 'newTarget()', 'setGameOver()', 'restartGame()'
10
-
11
- def initialize(parent = nil)
12
- super
13
- @currentAngle = 45
14
- @currentForce = 0
15
- @timerCount = 0;
16
- @autoShootTimer = Qt::Timer.new( self )
17
- connect( @autoShootTimer, SIGNAL('timeout()'),
18
- self, SLOT('moveShot()') )
19
- @shootAngle = 0
20
- @shootForce = 0
21
- @target = Qt::Point.new(0, 0)
22
- @gameEnded = false
23
- @barrelPressed = false
24
- setPalette( Qt::Palette.new( Qt::Color.new( 250, 250, 200) ) )
25
- setAutoFillBackground(true)
26
- newTarget()
27
- @barrelRect = Qt::Rect.new(30, -5, 20, 10)
28
- end
29
-
30
- def angle()
31
- return @currentAngle
32
- end
33
-
34
- def force()
35
- return @currentForce
36
- end
37
-
38
- def gameOver()
39
- return @gameEnded
40
- end
41
-
42
- def angle=( degrees )
43
- if degrees < 5
44
- degrees = 5
45
- elsif degrees > 70
46
- degrees = 70
47
- end
48
- if @currentAngle == degrees
49
- return
50
- end
51
- @currentAngle = degrees
52
- update( cannonRect() )
53
- emit angleChanged( @currentAngle )
54
- end
55
-
56
- def force=( newton )
57
- if newton < 0
58
- newton = 0
59
- end
60
- if @currentForce == newton
61
- return
62
- end
63
- @currentForce = newton
64
- emit forceChanged( @currentForce )
65
- end
66
-
67
- def shoot()
68
- if shooting?
69
- return
70
- end
71
- @timerCount = 0
72
- @shootAngle = @currentAngle
73
- @shootForce = @currentForce
74
- @autoShootTimer.start( 25 )
75
- emit canShoot( false )
76
- end
77
-
78
- @@first_time = true
79
-
80
- def newTarget()
81
- if @@first_time
82
- @@first_time = false
83
- midnight = Qt::Time.new( 0, 0, 0 )
84
- srand( midnight.secsTo(Qt::Time.currentTime()) )
85
- end
86
- @target = Qt::Point.new( 200 + rand(190), 10 + rand(255) )
87
- update()
88
- end
89
-
90
- def setGameOver()
91
- if @gameEnded
92
- return
93
- end
94
- if shooting?
95
- @autoShootTimer.stop()
96
- end
97
- @gameEnded = true
98
- update()
99
- end
100
-
101
- def restartGame()
102
- if shooting?
103
- @autoShootTimer.stop()
104
- end
105
- @gameEnded = false
106
- update()
107
- emit canShoot( true )
108
- end
109
-
110
- def moveShot()
111
- r = Qt::Region.new( shotRect() )
112
- @timerCount += 1
113
-
114
- shotR = shotRect()
115
-
116
- if shotR.intersects( targetRect() )
117
- @autoShootTimer.stop()
118
- emit hit()
119
- emit canShoot(true)
120
- elsif shotR.x() > width() || shotR.y() > height() ||
121
- shotR.intersects(barrierRect())
122
- @autoShootTimer.stop()
123
- emit missed()
124
- emit canShoot(true)
125
- else
126
- r = r.unite( Qt::Region.new( shotR ) )
127
- end
128
-
129
- update( r )
130
- end
131
- private :moveShot
132
-
133
- def mousePressEvent( e )
134
- if e.button() != Qt::LeftButton
135
- return
136
- end
137
- if barrelHit( e.pos() )
138
- @barrelPressed = true
139
- end
140
- end
141
-
142
- def mouseMoveEvent( e )
143
- if !@barrelPressed
144
- return
145
- end
146
- pnt = e.pos();
147
- if pnt.x() <= 0
148
- pnt.setX( 1 )
149
- end
150
- if pnt.y() >= height()
151
- pnt.setY( height() - 1 )
152
- end
153
- rad = atan2((rect().bottom()-pnt.y()), pnt.x())
154
- self.angle = ( rad*180/3.14159265 ).round
155
- end
156
-
157
- def mouseReleaseEvent( e )
158
- if e.button() == Qt::LeftButton
159
- @barrelPressed = false
160
- end
161
- end
162
-
163
- def paintEvent( e )
164
- painter = Qt::Painter.new( self )
165
-
166
- if @gameEnded
167
- painter.pen = Qt::Color.new(Qt::black)
168
- painter.font = Qt::Font.new( 'Courier', 48, Qt::Font::Bold )
169
- painter.drawText( rect(), Qt::AlignCenter, 'Game Over' )
170
- end
171
- paintCannon( painter )
172
- paintBarrier( painter )
173
- if shooting?
174
- paintShot( painter )
175
- end
176
- if !@gameEnded
177
- paintTarget( painter )
178
- end
179
-
180
- painter.end
181
- end
182
-
183
- def paintShot( painter )
184
- painter.pen = Qt::NoPen
185
- painter.brush = Qt::Brush.new(Qt::black)
186
- painter.drawRect( shotRect() )
187
- end
188
-
189
- def paintTarget( painter )
190
- painter.brush = Qt::Brush.new(Qt::red)
191
- painter.pen = Qt::Color.new(Qt::black)
192
- painter.drawRect( targetRect() )
193
- end
194
-
195
- def paintBarrier( painter )
196
- painter.brush = Qt::Brush.new(Qt::yellow)
197
- painter.pen = Qt::Color.new(Qt::black)
198
- painter.drawRect( barrierRect() )
199
- end
200
-
201
- def paintCannon( painter )
202
- painter.pen = Qt::NoPen
203
- painter.brush = Qt::Brush.new(Qt::blue)
204
-
205
- painter.save
206
- painter.translate(0, height())
207
- painter.drawPie( Qt::Rect.new(-35, -35, 70, 70), 0, 90*16 )
208
- painter.rotate( - @currentAngle )
209
- painter.drawRect( @barrelRect )
210
- painter.restore
211
- end
212
-
213
- private :paintShot, :paintTarget, :paintBarrier, :paintCannon
214
-
215
- def cannonRect()
216
- r = Qt::Rect.new( 0, 0, 50, 50)
217
- r.moveBottomLeft( rect().bottomLeft() )
218
- return r
219
- end
220
-
221
- def shotRect()
222
- gravity = 4.0
223
-
224
- time = @timerCount / 4.0
225
- velocity = @shootForce
226
- radians = @shootAngle*3.14159265/180.0
227
-
228
- velx = velocity*cos( radians )
229
- vely = velocity*sin( radians )
230
- x0 = ( @barrelRect.right() + 5.0 )*cos(radians)
231
- y0 = ( @barrelRect.right() + 5.0 )*sin(radians)
232
- x = x0 + velx*time
233
- y = y0 + vely*time - 0.5*gravity*time*time
234
-
235
- r = Qt::Rect.new( 0, 0, 6, 6 );
236
- r.moveCenter( Qt::Point.new( x.round, height() - 1 - y.round ) )
237
- return r
238
- end
239
-
240
- def targetRect()
241
- r = Qt::Rect.new( 0, 0, 20, 10 )
242
- r.moveCenter( Qt::Point.new(@target.x(),height() - 1 - @target.y()) )
243
- return r
244
- end
245
-
246
- def barrierRect()
247
- return Qt::Rect.new( 145, height() - 100, 15, 99 )
248
- end
249
-
250
- def barrelHit( pos )
251
- matrix = Qt::Matrix.new
252
- matrix.translate( 0, height() )
253
- matrix.rotate( - @currentAngle )
254
- matrix = matrix.inverted()
255
- return @barrelRect.contains( matrix.map(pos) )
256
- end
257
-
258
- private :cannonRect, :shotRect, :targetRect, :barrierRect, :barrelHit
259
-
260
- def shooting?
261
- return @autoShootTimer.active?
262
- end
263
- end
1
+ include Math
2
+
3
+ class CannonField < Qt::Widget
4
+
5
+ signals 'hit()', 'missed()', 'angleChanged(int)', 'forceChanged(int)',
6
+ 'canShoot(bool)'
7
+
8
+ slots 'angle=(int)', 'force=(int)', 'shoot()', 'moveShot()',
9
+ 'newTarget()', 'setGameOver()', 'restartGame()'
10
+
11
+ def initialize(parent = nil)
12
+ super
13
+ @currentAngle = 45
14
+ @currentForce = 0
15
+ @timerCount = 0;
16
+ @autoShootTimer = Qt::Timer.new( self )
17
+ connect( @autoShootTimer, SIGNAL('timeout()'),
18
+ self, SLOT('moveShot()') )
19
+ @shootAngle = 0
20
+ @shootForce = 0
21
+ @target = Qt::Point.new(0, 0)
22
+ @gameEnded = false
23
+ @barrelPressed = false
24
+ setPalette( Qt::Palette.new( Qt::Color.new( 250, 250, 200) ) )
25
+ setAutoFillBackground(true)
26
+ newTarget()
27
+ @barrelRect = Qt::Rect.new(30, -5, 20, 10)
28
+ end
29
+
30
+ def angle()
31
+ return @currentAngle
32
+ end
33
+
34
+ def force()
35
+ return @currentForce
36
+ end
37
+
38
+ def gameOver()
39
+ return @gameEnded
40
+ end
41
+
42
+ def angle=( degrees )
43
+ if degrees < 5
44
+ degrees = 5
45
+ elsif degrees > 70
46
+ degrees = 70
47
+ end
48
+ if @currentAngle == degrees
49
+ return
50
+ end
51
+ @currentAngle = degrees
52
+ update( cannonRect() )
53
+ emit angleChanged( @currentAngle )
54
+ end
55
+
56
+ def force=( newton )
57
+ if newton < 0
58
+ newton = 0
59
+ end
60
+ if @currentForce == newton
61
+ return
62
+ end
63
+ @currentForce = newton
64
+ emit forceChanged( @currentForce )
65
+ end
66
+
67
+ def shoot()
68
+ if shooting?
69
+ return
70
+ end
71
+ @timerCount = 0
72
+ @shootAngle = @currentAngle
73
+ @shootForce = @currentForce
74
+ @autoShootTimer.start( 25 )
75
+ emit canShoot( false )
76
+ end
77
+
78
+ @@first_time = true
79
+
80
+ def newTarget()
81
+ if @@first_time
82
+ @@first_time = false
83
+ midnight = Qt::Time.new( 0, 0, 0 )
84
+ srand( midnight.secsTo(Qt::Time.currentTime()) )
85
+ end
86
+ @target = Qt::Point.new( 200 + rand(190), 10 + rand(255) )
87
+ update()
88
+ end
89
+
90
+ def setGameOver()
91
+ if @gameEnded
92
+ return
93
+ end
94
+ if shooting?
95
+ @autoShootTimer.stop()
96
+ end
97
+ @gameEnded = true
98
+ update()
99
+ end
100
+
101
+ def restartGame()
102
+ if shooting?
103
+ @autoShootTimer.stop()
104
+ end
105
+ @gameEnded = false
106
+ update()
107
+ emit canShoot( true )
108
+ end
109
+
110
+ def moveShot()
111
+ r = Qt::Region.new( shotRect() )
112
+ @timerCount += 1
113
+
114
+ shotR = shotRect()
115
+
116
+ if shotR.intersects( targetRect() )
117
+ @autoShootTimer.stop()
118
+ emit hit()
119
+ emit canShoot(true)
120
+ elsif shotR.x() > width() || shotR.y() > height() ||
121
+ shotR.intersects(barrierRect())
122
+ @autoShootTimer.stop()
123
+ emit missed()
124
+ emit canShoot(true)
125
+ else
126
+ r = r.unite( Qt::Region.new( shotR ) )
127
+ end
128
+
129
+ update( r )
130
+ end
131
+ private :moveShot
132
+
133
+ def mousePressEvent( e )
134
+ if e.button() != Qt::LeftButton
135
+ return
136
+ end
137
+ if barrelHit( e.pos() )
138
+ @barrelPressed = true
139
+ end
140
+ end
141
+
142
+ def mouseMoveEvent( e )
143
+ if !@barrelPressed
144
+ return
145
+ end
146
+ pnt = e.pos();
147
+ if pnt.x() <= 0
148
+ pnt.setX( 1 )
149
+ end
150
+ if pnt.y() >= height()
151
+ pnt.setY( height() - 1 )
152
+ end
153
+ rad = atan2((rect().bottom()-pnt.y()), pnt.x())
154
+ self.angle = ( rad*180/3.14159265 ).round
155
+ end
156
+
157
+ def mouseReleaseEvent( e )
158
+ if e.button() == Qt::LeftButton
159
+ @barrelPressed = false
160
+ end
161
+ end
162
+
163
+ def paintEvent( e )
164
+ painter = Qt::Painter.new( self )
165
+
166
+ if @gameEnded
167
+ painter.pen = Qt::Color.new(Qt::black)
168
+ painter.font = Qt::Font.new( 'Courier', 48, Qt::Font::Bold )
169
+ painter.drawText( rect(), Qt::AlignCenter, 'Game Over' )
170
+ end
171
+ paintCannon( painter )
172
+ paintBarrier( painter )
173
+ if shooting?
174
+ paintShot( painter )
175
+ end
176
+ if !@gameEnded
177
+ paintTarget( painter )
178
+ end
179
+
180
+ painter.end
181
+ end
182
+
183
+ def paintShot( painter )
184
+ painter.pen = Qt::NoPen
185
+ painter.brush = Qt::Brush.new(Qt::black)
186
+ painter.drawRect( shotRect() )
187
+ end
188
+
189
+ def paintTarget( painter )
190
+ painter.brush = Qt::Brush.new(Qt::red)
191
+ painter.pen = Qt::Color.new(Qt::black)
192
+ painter.drawRect( targetRect() )
193
+ end
194
+
195
+ def paintBarrier( painter )
196
+ painter.brush = Qt::Brush.new(Qt::yellow)
197
+ painter.pen = Qt::Color.new(Qt::black)
198
+ painter.drawRect( barrierRect() )
199
+ end
200
+
201
+ def paintCannon( painter )
202
+ painter.pen = Qt::NoPen
203
+ painter.brush = Qt::Brush.new(Qt::blue)
204
+
205
+ painter.save
206
+ painter.translate(0, height())
207
+ painter.drawPie( Qt::Rect.new(-35, -35, 70, 70), 0, 90*16 )
208
+ painter.rotate( - @currentAngle )
209
+ painter.drawRect( @barrelRect )
210
+ painter.restore
211
+ end
212
+
213
+ private :paintShot, :paintTarget, :paintBarrier, :paintCannon
214
+
215
+ def cannonRect()
216
+ r = Qt::Rect.new( 0, 0, 50, 50)
217
+ r.moveBottomLeft( rect().bottomLeft() )
218
+ return r
219
+ end
220
+
221
+ def shotRect()
222
+ gravity = 4.0
223
+
224
+ time = @timerCount / 4.0
225
+ velocity = @shootForce
226
+ radians = @shootAngle*3.14159265/180.0
227
+
228
+ velx = velocity*cos( radians )
229
+ vely = velocity*sin( radians )
230
+ x0 = ( @barrelRect.right() + 5.0 )*cos(radians)
231
+ y0 = ( @barrelRect.right() + 5.0 )*sin(radians)
232
+ x = x0 + velx*time
233
+ y = y0 + vely*time - 0.5*gravity*time*time
234
+
235
+ r = Qt::Rect.new( 0, 0, 6, 6 );
236
+ r.moveCenter( Qt::Point.new( x.round, height() - 1 - y.round ) )
237
+ return r
238
+ end
239
+
240
+ def targetRect()
241
+ r = Qt::Rect.new( 0, 0, 20, 10 )
242
+ r.moveCenter( Qt::Point.new(@target.x(),height() - 1 - @target.y()) )
243
+ return r
244
+ end
245
+
246
+ def barrierRect()
247
+ return Qt::Rect.new( 145, height() - 100, 15, 99 )
248
+ end
249
+
250
+ def barrelHit( pos )
251
+ matrix = Qt::Matrix.new
252
+ matrix.translate( 0, height() )
253
+ matrix.rotate( - @currentAngle )
254
+ matrix = matrix.inverted()
255
+ return @barrelRect.contains( matrix.map(pos) )
256
+ end
257
+
258
+ private :cannonRect, :shotRect, :targetRect, :barrierRect, :barrelHit
259
+
260
+ def shooting?
261
+ return @autoShootTimer.active?
262
+ end
263
+ end