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,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 './mainwindow.rb'
28
+
29
+ app = Qt::Application.new(ARGV)
30
+ mainWin = MainWindow.new
31
+ mainWin.show
32
+ app.exec
@@ -0,0 +1,302 @@
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
+
28
+
29
+ class MainWindow < Qt::MainWindow
30
+
31
+ slots 'newLetter()',
32
+ 'save()',
33
+ 'print()',
34
+ 'undo()',
35
+ 'about()',
36
+ 'insertCustomer(const QString&)',
37
+ 'addParagraph(const QString&)'
38
+
39
+ def initialize()
40
+ super
41
+ @textEdit = Qt::TextEdit.new
42
+ setCentralWidget(@textEdit)
43
+
44
+ createActions()
45
+ createMenus()
46
+ createToolBars()
47
+ createStatusBar()
48
+ createDockWindows()
49
+
50
+ setWindowTitle(tr("Dock Widgets"))
51
+
52
+ newLetter()
53
+ end
54
+
55
+ def newLetter()
56
+ @textEdit.clear()
57
+
58
+ cursor = Qt::TextCursor.new(@textEdit.textCursor())
59
+ cursor.movePosition(Qt::TextCursor::Start)
60
+ topFrame = cursor.currentFrame()
61
+ topFrameFormat = topFrame.frameFormat()
62
+ topFrameFormat.padding = 16
63
+ topFrame.frameFormat = topFrameFormat
64
+
65
+ textFormat = Qt::TextCharFormat.new
66
+ boldFormat = Qt::TextCharFormat.new
67
+ boldFormat.fontWeight = Qt::Font::Bold
68
+ italicFormat = Qt::TextCharFormat.new
69
+ italicFormat.fontItalic = true
70
+
71
+ tableFormat = Qt::TextTableFormat.new
72
+ tableFormat.border = 1
73
+ tableFormat.cellPadding = 16
74
+ tableFormat.alignment = Qt::AlignRight
75
+ cursor.insertTable(1, 1, tableFormat)
76
+ cursor.insertText("The Firm", boldFormat)
77
+ cursor.insertBlock()
78
+ cursor.insertText("321 City Street", textFormat)
79
+ cursor.insertBlock()
80
+ cursor.insertText("Industry Park")
81
+ cursor.insertBlock()
82
+ cursor.insertText("Some Country")
83
+ cursor.position = topFrame.lastPosition()
84
+ cursor.insertText(Qt::Date::currentDate().toString("d MMMM yyyy"), textFormat)
85
+ cursor.insertBlock()
86
+ cursor.insertBlock()
87
+ cursor.insertText("Dear ", textFormat)
88
+ cursor.insertText("NAME", italicFormat)
89
+ cursor.insertText(",", textFormat)
90
+ for i in 0...3
91
+ cursor.insertBlock()
92
+ end
93
+ cursor.insertText(tr("Yours sincerely,"), textFormat)
94
+ for i in 0...3
95
+ cursor.insertBlock()
96
+ end
97
+ cursor.insertText("The Boss", textFormat)
98
+ cursor.insertBlock()
99
+ cursor.insertText("ADDRESS", italicFormat)
100
+ end
101
+
102
+ def print()
103
+ document = @textEdit.document()
104
+ printer = Qt::Printer.new
105
+
106
+ dlg = Qt::PrintDialog.new(printer, self)
107
+ if dlg.exec() != Qt::Dialog::Accepted
108
+ return
109
+ end
110
+
111
+ document.print(printer)
112
+
113
+ statusBar().showMessage(tr("Ready"), 2000)
114
+ end
115
+
116
+ def save()
117
+ fileName = Qt::FileDialog.getSaveFileName(self,
118
+ tr("Choose a file name"), ".",
119
+ tr("HTML (*.html *.htm)"))
120
+ if not fileName or fileName.empty?
121
+ return
122
+ end
123
+ file = Qt::File.new(fileName)
124
+ if !file.open(Qt::File::WriteOnly | Qt::File::Text)
125
+ Qt::MessageBox.warning(self, tr("Dock Widgets"),
126
+ tr("Cannot write file %s:\n%s." % [fileName, errorString]))
127
+ return
128
+ end
129
+
130
+ out = Qt::TextStream.new(file)
131
+ Qt::Application.setOverrideCursor(Qt::WaitCursor)
132
+ out << @textEdit.toHtml()
133
+ Qt::Application.restoreOverrideCursor()
134
+
135
+ statusBar().showMessage(tr("Saved '%1'").arg(fileName), 2000)
136
+ end
137
+
138
+ def undo()
139
+ document = @textEdit.document()
140
+ document.undo()
141
+ end
142
+
143
+ def insertCustomer(customer)
144
+ if customer.empty?
145
+ return
146
+ end
147
+ @customerList = customer.split(", ")
148
+ document = @textEdit.document()
149
+ cursor = document.find("NAME")
150
+ if !cursor.nil?
151
+ cursor.beginEditBlock()
152
+ cursor.insertText(@customerList.at(0))
153
+ oldcursor = cursor
154
+ cursor = document.find("ADDRESS")
155
+ if !cursor.nil?
156
+ for i in 1...@customerList.size
157
+ cursor.insertBlock()
158
+ cursor.insertText(@customerList.at(i))
159
+ end
160
+ cursor.endEditBlock()
161
+ else
162
+ oldcursor.endEditBlock()
163
+ end
164
+ end
165
+ end
166
+
167
+ def addParagraph(paragraph)
168
+ if paragraph.empty?
169
+ return
170
+ end
171
+ document = @textEdit.document()
172
+ cursor = document.find(tr("Yours sincerely,"))
173
+ if cursor.nil?
174
+ return
175
+ end
176
+ cursor.beginEditBlock()
177
+ cursor.movePosition(Qt::TextCursor::PreviousBlock, Qt::TextCursor::MoveAnchor, 2)
178
+ cursor.insertBlock()
179
+ cursor.insertText(paragraph)
180
+ cursor.insertBlock()
181
+ cursor.endEditBlock()
182
+ end
183
+
184
+ def about()
185
+ Qt::MessageBox.about(self, tr("About Dock Widgets"),
186
+ tr("The <b>Dock Widgets</b> example demonstrates how to " \
187
+ "use Qt's dock widgets. You can enter your own text, " \
188
+ "click a customer to add a customer name and " \
189
+ "address, and click standard paragraphs to add them."))
190
+ end
191
+
192
+ def createActions()
193
+ @newLetterAct = Qt::Action.new(Qt::Icon.new("images/new.png"), tr("&New Letter"),
194
+ self)
195
+ @newLetterAct.shortcut = Qt::KeySequence.new(tr("Ctrl+N"))
196
+ @newLetterAct.statusTip = tr("Create a form.new letter")
197
+ connect(@newLetterAct, SIGNAL('triggered()'), self, SLOT('newLetter()'))
198
+
199
+ @saveAct = Qt::Action.new(Qt::Icon.new("images/save.png"), tr("&Save..."), self)
200
+ @saveAct.shortcut = Qt::KeySequence.new(tr("Ctrl+S"))
201
+ @saveAct.statusTip = tr("Save the current form letter")
202
+ connect(@saveAct, SIGNAL('triggered()'), self, SLOT('save()'))
203
+
204
+ @printAct = Qt::Action.new(Qt::Icon.new("images/print.png"), tr("&Print..."), self)
205
+ @printAct.shortcut = Qt::KeySequence.new( tr("Ctrl+P"))
206
+ @printAct.statusTip = tr("Print the current form letter")
207
+ connect(@printAct, SIGNAL('triggered()'), self, SLOT('print()'))
208
+
209
+ @undoAct = Qt::Action.new(Qt::Icon.new("images/undo.png"), tr("&Undo"), self)
210
+ @undoAct.shortcut = Qt::KeySequence.new( tr("Ctrl+Z"))
211
+ @undoAct.statusTip = tr("Undo the last editing action")
212
+ connect(@undoAct, SIGNAL('triggered()'), self, SLOT('undo()'))
213
+
214
+ @quitAct = Qt::Action.new(tr("&Quit"), self)
215
+ @quitAct.shortcut = Qt::KeySequence.new( tr("Ctrl+Q"))
216
+ @quitAct.statusTip = tr("Quit the application")
217
+ connect(@quitAct, SIGNAL('triggered()'), self, SLOT('close()'))
218
+
219
+ @aboutAct = Qt::Action.new(tr("&About"), self)
220
+ @aboutAct.statusTip = tr("Show the application's About box")
221
+ connect(@aboutAct, SIGNAL('triggered()'), self, SLOT('about()'))
222
+
223
+ @aboutQtAct = Qt::Action.new(tr("About &Qt"), self)
224
+ @aboutQtAct.statusTip = tr("Show the Qt library's About box")
225
+ connect(@aboutQtAct, SIGNAL('triggered()'), $qApp, SLOT('aboutQt()'))
226
+ end
227
+
228
+ def createMenus()
229
+ @fileMenu = menuBar().addMenu(tr("&File"))
230
+ @fileMenu.addAction(@newLetterAct)
231
+ @fileMenu.addAction(@saveAct)
232
+ @fileMenu.addAction(@printAct)
233
+ @fileMenu.addSeparator()
234
+ @fileMenu.addAction(@quitAct)
235
+
236
+ @editMenu = menuBar().addMenu(tr("&Edit"))
237
+ @editMenu.addAction(@undoAct)
238
+
239
+ menuBar().addSeparator()
240
+
241
+ @helpMenu = menuBar().addMenu(tr("&Help"))
242
+ @helpMenu.addAction(@aboutAct)
243
+ @helpMenu.addAction(@aboutQtAct)
244
+ end
245
+
246
+ def createToolBars()
247
+ @fileToolBar = addToolBar(tr("File"))
248
+ @fileToolBar.addAction(@newLetterAct)
249
+ @fileToolBar.addAction(@saveAct)
250
+ @fileToolBar.addAction(@printAct)
251
+
252
+ @editToolBar = addToolBar(tr("Edit"))
253
+ @editToolBar.addAction(@undoAct)
254
+ end
255
+
256
+ def createStatusBar()
257
+ statusBar().showMessage(tr("Ready"))
258
+ end
259
+
260
+ def createDockWindows()
261
+ dock = Qt::DockWidget.new(tr("Customers"), self)
262
+ dock.allowedAreas = Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea
263
+ @customerList = Qt::ListWidget.new(dock)
264
+ @customerList.addItems([] <<
265
+ "John Doe, Harmony Enterprises, 12 Lakeside, Ambleton" <<
266
+ "Jane Doe, Memorabilia, 23 Watersedge, Beaton" <<
267
+ "Tammy Shea, Tiblanka, 38 Sea Views, Carlton" <<
268
+ "Tim Sheen, Caraba Gifts, 48 Ocean Way, Deal" <<
269
+ "Sol Harvey, Chicos Coffee, 53 New Springs, Eccleston" <<
270
+ "Sally Hobart, Tiroli Tea, 67 Long River, Fedula")
271
+ dock.widget = @customerList
272
+ addDockWidget(Qt::RightDockWidgetArea, dock)
273
+
274
+ dock = Qt::DockWidget.new(tr("Paragraphs"), self)
275
+ @paragraphsList = Qt::ListWidget.new(dock)
276
+ @paragraphsList.addItems([] <<
277
+ "Thank you for your payment which we have received today." <<
278
+ "Your order has been dispatched and should be with you " \
279
+ "within 28 days." <<
280
+ "We have dispatched those items that were in stock. The " \
281
+ "rest of your order will be dispatched once all the " \
282
+ "remaining items have arrived at our warehouse. No " \
283
+ "additional shipping charges will be made." <<
284
+ "You made a small overpayment (less than $5) which we " \
285
+ "will keep on account for you, or return at your request." <<
286
+ "You made a small underpayment (less than $1), but we have " \
287
+ "sent your order anyway. We'll add self underpayment to " \
288
+ "your next bill." <<
289
+ "Unfortunately you did not send enough money. Please remit " \
290
+ "an additional $. Your order will be dispatched as soon as " \
291
+ "the complete amount has been received." <<
292
+ "You made an overpayment (more than $5). Do you wish to " \
293
+ "buy more items, or should we return the excess to you?")
294
+ dock.widget = @paragraphsList
295
+ addDockWidget(Qt::RightDockWidgetArea, dock)
296
+
297
+ connect(@customerList, SIGNAL('currentTextChanged(const QString&)'),
298
+ self, SLOT('insertCustomer(const QString&)'))
299
+ connect(@paragraphsList, SIGNAL('currentTextChanged(const QString&)'),
300
+ self, SLOT('addParagraph(const QString&)'))
301
+ end
302
+ 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 './mainwindow.rb'
28
+
29
+ app = Qt::Application.new(ARGV)
30
+ mainWin = MainWindow.new
31
+ mainWin.show
32
+ app.exec
@@ -0,0 +1,363 @@
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
+ require './mdichild.rb'
28
+
29
+ class MainWindow < Qt::MainWindow
30
+
31
+ slots 'newFile()',
32
+ 'open()',
33
+ 'save()',
34
+ 'saveAs()',
35
+ 'cut()',
36
+ 'copy()',
37
+ 'paste()',
38
+ 'about()',
39
+ 'updateMenus()',
40
+ 'updateWindowMenu()',
41
+ 'MdiChild *createMdiChild()',
42
+ 'switchLayoutDirection()',
43
+ 'setActiveSubWindow(QWidget*)'
44
+
45
+ def initialize()
46
+ super
47
+ @mdiArea = Qt::MdiArea.new
48
+ setCentralWidget(@mdiArea)
49
+ connect(@mdiArea, SIGNAL('subWindowActivated(QMdiSubWindow*)'),
50
+ self, SLOT('updateMenus()'))
51
+ @windowMapper = Qt::SignalMapper.new(self)
52
+ connect(@windowMapper, SIGNAL('mapped(QWidget*)'),
53
+ self, SLOT('setActiveSubWindow(QWidget*)'))
54
+
55
+ createActions()
56
+ createMenus()
57
+ createToolBars()
58
+ createStatusBar()
59
+ updateMenus()
60
+
61
+ readSettings()
62
+
63
+ setWindowTitle(tr("MDI"))
64
+ end
65
+
66
+ def closeEvent(event)
67
+ @mdiArea.closeAllSubWindows()
68
+ if activeMdiChild()
69
+ event.ignore()
70
+ else
71
+ writeSettings()
72
+ event.accept()
73
+ end
74
+ end
75
+
76
+ def newFile()
77
+ child = createMdiChild()
78
+ child.newFile()
79
+ child.show()
80
+ end
81
+
82
+ def open()
83
+ fileName = Qt::FileDialog.getOpenFileName(self)
84
+ if !fileName.nil?
85
+ existing = findMdiChild(fileName)
86
+ if !existing.nil?
87
+ @mdiArea.setActiveSubWindow(existing)
88
+ return
89
+ end
90
+
91
+ child = createMdiChild()
92
+ if child.loadFile(fileName)
93
+ statusBar().showMessage(tr("File loaded"), 2000)
94
+ child.show()
95
+ else
96
+ child.close()
97
+ end
98
+ end
99
+ end
100
+
101
+ def save()
102
+ if activeMdiChild() && activeMdiChild().save()
103
+ statusBar().showMessage(tr("File saved"), 2000)
104
+ end
105
+ end
106
+
107
+ def saveAs()
108
+ if activeMdiChild() && activeMdiChild().saveAs()
109
+ statusBar().showMessage(tr("File saved"), 2000)
110
+ end
111
+ end
112
+
113
+ def cut()
114
+ if activeMdiChild()
115
+ activeMdiChild().cut()
116
+ end
117
+ end
118
+
119
+ def copy()
120
+ if activeMdiChild()
121
+ activeMdiChild().copy()
122
+ end
123
+ end
124
+
125
+ def paste()
126
+ if activeMdiChild()
127
+ activeMdiChild().paste()
128
+ end
129
+ end
130
+
131
+ def about()
132
+ Qt::MessageBox::about(self, tr("About MDI"),
133
+ tr("The <b>MDI</b> example demonstrates how to write multiple " \
134
+ "document interface applications using Qt."))
135
+ end
136
+
137
+ def updateMenus()
138
+ hasMdiChild = (activeMdiChild() != nil)
139
+ @saveAct.enabled = hasMdiChild
140
+ @saveAsAct.enabled = hasMdiChild
141
+ @pasteAct.enabled = hasMdiChild
142
+ @closeAct.enabled = hasMdiChild
143
+ @closeAllAct.enabled = hasMdiChild
144
+ @tileAct.enabled = hasMdiChild
145
+ @cascadeAct.enabled = hasMdiChild
146
+ @nextAct.enabled = hasMdiChild
147
+ @previousAct.enabled = hasMdiChild
148
+ @separatorAct.visible = hasMdiChild
149
+
150
+ hasSelection = (activeMdiChild() &&
151
+ activeMdiChild().textCursor().hasSelection())
152
+ @cutAct.enabled = hasSelection
153
+ @copyAct.enabled = hasSelection
154
+ end
155
+
156
+ def updateWindowMenu()
157
+ @windowMenu.clear()
158
+ @windowMenu.addAction(@closeAct)
159
+ @windowMenu.addAction(@closeAllAct)
160
+ @windowMenu.addSeparator()
161
+ @windowMenu.addAction(@tileAct)
162
+ @windowMenu.addAction(@cascadeAct)
163
+ @windowMenu.addSeparator()
164
+ @windowMenu.addAction(@nextAct)
165
+ @windowMenu.addAction(@previousAct)
166
+ @windowMenu.addAction(@separatorAct)
167
+
168
+ windows = @mdiArea.subWindowList()
169
+ @separatorAct.visible = !windows.empty?
170
+ for i in 0...windows.size
171
+ child = windows[i].widget
172
+
173
+ if i < 9
174
+ text = tr("&%s %s" % [i + 1,
175
+ child.userFriendlyCurrentFile()])
176
+ else
177
+ text = tr("%s %s" % [i + 1,
178
+ child.userFriendlyCurrentFile()])
179
+ end
180
+ action = @windowMenu.addAction(text)
181
+ action.checkable = true
182
+ action .checked = child == activeMdiChild()
183
+ connect(action, SIGNAL('triggered()'), @windowMapper, SLOT('map()'))
184
+ @windowMapper.setMapping(action, child)
185
+ end
186
+ end
187
+
188
+ def createMdiChild()
189
+ child = MdiChild.new
190
+ @mdiArea.addSubWindow(child)
191
+
192
+ connect(child, SIGNAL('copyAvailable(bool)'),
193
+ @cutAct, SLOT('setEnabled(bool)'))
194
+ connect(child, SIGNAL('copyAvailable(bool)'),
195
+ @copyAct, SLOT('setEnabled(bool)'))
196
+
197
+ return child
198
+ end
199
+
200
+ def createActions()
201
+ @newAct = Qt::Action.new(Qt::Icon.new("images/new.png"), tr("&New"), self)
202
+ @newAct.shortcut = Qt::KeySequence.new( tr("Ctrl+N"))
203
+ @newAct.statusTip = tr("Create a file.new")
204
+ connect(@newAct, SIGNAL('triggered()'), self, SLOT('newFile()'))
205
+
206
+ @openAct = Qt::Action.new(Qt::Icon.new("images/open.png"), tr("&Open..."), self)
207
+ @openAct.shortcut = Qt::KeySequence.new( tr("Ctrl+O"))
208
+ @openAct.statusTip = tr("Open an existing file")
209
+ connect(@openAct, SIGNAL('triggered()'), self, SLOT('open()'))
210
+
211
+ @saveAct = Qt::Action.new(Qt::Icon.new("images/save.png"), tr("&Save"), self)
212
+ @saveAct.shortcut = Qt::KeySequence.new( tr("Ctrl+S"))
213
+ @saveAct.statusTip = tr("Save the document to disk")
214
+ connect(@saveAct, SIGNAL('triggered()'), self, SLOT('save()'))
215
+
216
+ @saveAsAct = Qt::Action.new(tr("Save &As..."), self)
217
+ @saveAsAct.statusTip = tr("Save the document under a name.new")
218
+ connect(@saveAsAct, SIGNAL('triggered()'), self, SLOT('saveAs()'))
219
+
220
+ @exitAct = Qt::Action.new(tr("E&xit"), self)
221
+ @exitAct.shortcut = Qt::KeySequence.new( tr("Ctrl+Q"))
222
+ @exitAct.statusTip = tr("Exit the application")
223
+ connect(@exitAct, SIGNAL('triggered()'), $qApp, SLOT('closeAllWindows()'))
224
+
225
+ @cutAct = Qt::Action.new(Qt::Icon.new("images/cut.png"), tr("Cu&t"), self)
226
+ @cutAct.shortcut = Qt::KeySequence.new( tr("Ctrl+X"))
227
+ @cutAct.setStatusTip(tr("Cut the current selection's contents to the " \
228
+ "clipboard"))
229
+ connect(@cutAct, SIGNAL('triggered()'), self, SLOT('cut()'))
230
+
231
+ @copyAct = Qt::Action.new(Qt::Icon.new("images/copy.png"), tr("&Copy"), self)
232
+ @copyAct.shortcut = Qt::KeySequence.new( tr("Ctrl+C"))
233
+ @copyAct.setStatusTip(tr("Copy the current selection's contents to the " \
234
+ "clipboard"))
235
+ connect(@copyAct, SIGNAL('triggered()'), self, SLOT('copy()'))
236
+
237
+ @pasteAct = Qt::Action.new(Qt::Icon.new("images/paste.png"), tr("&Paste"), self)
238
+ @pasteAct.shortcut = Qt::KeySequence.new( tr("Ctrl+V"))
239
+ @pasteAct.setStatusTip(tr("Paste the clipboard's contents into the current " \
240
+ "selection"))
241
+ connect(@pasteAct, SIGNAL('triggered()'), self, SLOT('paste()'))
242
+
243
+ @closeAct = Qt::Action.new(tr("Cl&ose"), self)
244
+ @closeAct.shortcut = Qt::KeySequence.new( tr("Ctrl+F4"))
245
+ @closeAct.statusTip = tr("Close the active window")
246
+ connect(@closeAct, SIGNAL('triggered()'),
247
+ @mdiArea, SLOT('closeActiveSubWindow()'))
248
+
249
+ @closeAllAct = Qt::Action.new(tr("Close &All"), self)
250
+ @closeAllAct.statusTip = tr("Close all the windows")
251
+ connect(@closeAllAct, SIGNAL('triggered()'),
252
+ @mdiArea, SLOT('closeAllSubWindows()'))
253
+
254
+ @tileAct = Qt::Action.new(tr("&Tile"), self)
255
+ @tileAct.statusTip = tr("Tile the windows")
256
+ connect(@tileAct, SIGNAL('triggered()'), @mdiArea, SLOT('tileSubWindows()'))
257
+
258
+ @cascadeAct = Qt::Action.new(tr("&Cascade"), self)
259
+ @cascadeAct.statusTip = tr("Cascade the windows")
260
+ connect(@cascadeAct, SIGNAL('triggered()'), @mdiArea, SLOT('cascadeSubWindows()'))
261
+
262
+ @nextAct = Qt::Action.new(tr("Ne&xt"), self)
263
+ @nextAct.shortcut = Qt::KeySequence.new( tr("Ctrl+F6"))
264
+ @nextAct.statusTip = tr("Move the focus to the next window")
265
+ connect(@nextAct, SIGNAL('triggered()'),
266
+ @mdiArea, SLOT('activateNextSubWindow()'))
267
+
268
+ @previousAct = Qt::Action.new(tr("Pre&vious"), self)
269
+ @previousAct.shortcut = Qt::KeySequence.new( tr("Ctrl+Shift+F6"))
270
+ @previousAct.setStatusTip(tr("Move the focus to the previous " \
271
+ "window"))
272
+ connect(@previousAct, SIGNAL('triggered()'),
273
+ @mdiArea, SLOT('activatePreviousSubWindow()'))
274
+
275
+ @separatorAct = Qt::Action.new(self)
276
+ @separatorAct.separator = true
277
+
278
+ @aboutAct = Qt::Action.new(tr("&About"), self)
279
+ @aboutAct.statusTip = tr("Show the application's About box")
280
+ connect(@aboutAct, SIGNAL('triggered()'), self, SLOT('about()'))
281
+
282
+ @aboutQtAct = Qt::Action.new(tr("About &Qt"), self)
283
+ @aboutQtAct.statusTip = tr("Show the Qt library's About box")
284
+ connect(@aboutQtAct, SIGNAL('triggered()'), $qApp, SLOT('aboutQt()'))
285
+ end
286
+
287
+ def createMenus()
288
+ @fileMenu = menuBar().addMenu(tr("&File"))
289
+ @fileMenu.addAction(@newAct)
290
+ @fileMenu.addAction(@openAct)
291
+ @fileMenu.addAction(@saveAct)
292
+ @fileMenu.addAction(@saveAsAct)
293
+ @fileMenu.addSeparator()
294
+ action = @fileMenu.addAction(tr("Switch layout direction"))
295
+ connect(action, SIGNAL('triggered()'), self, SLOT('switchLayoutDirection()'))
296
+ @fileMenu.addAction(@exitAct)
297
+
298
+ @editMenu = menuBar().addMenu(tr("&Edit"))
299
+ @editMenu.addAction(@cutAct)
300
+ @editMenu.addAction(@copyAct)
301
+ @editMenu.addAction(@pasteAct)
302
+
303
+ @windowMenu = menuBar().addMenu(tr("&Window"))
304
+ updateWindowMenu();
305
+ connect(@windowMenu, SIGNAL('aboutToShow()'), self, SLOT('updateWindowMenu()'))
306
+
307
+ menuBar().addSeparator()
308
+
309
+ @helpMenu = menuBar().addMenu(tr("&Help"))
310
+ @helpMenu.addAction(@aboutAct)
311
+ @helpMenu.addAction(@aboutQtAct)
312
+ end
313
+
314
+ def createToolBars()
315
+ @fileToolBar = addToolBar(tr("File"))
316
+ @fileToolBar.addAction(@newAct)
317
+ @fileToolBar.addAction(@openAct)
318
+ @fileToolBar.addAction(@saveAct)
319
+
320
+ @editToolBar = addToolBar(tr("Edit"))
321
+ @editToolBar.addAction(@cutAct)
322
+ @editToolBar.addAction(@copyAct)
323
+ @editToolBar.addAction(@pasteAct)
324
+ end
325
+
326
+ def createStatusBar()
327
+ statusBar().showMessage(tr("Ready"))
328
+ end
329
+
330
+ def readSettings()
331
+ settings = Qt::Settings.new("Trolltech", "MDI Example")
332
+ pos = settings.value("pos", Qt::Variant.new(Qt::Point.new(200, 200))).toPoint()
333
+ size = settings.value("size", Qt::Variant.new(Qt::Size.new(400, 400))).toSize()
334
+ move(pos)
335
+ resize(size)
336
+ end
337
+
338
+ def writeSettings()
339
+ settings = Qt::Settings.new("Trolltech", "MDI Example")
340
+ settings.setValue("pos", Qt::Variant.new(pos()))
341
+ settings.setValue("size", Qt::Variant.new(size()))
342
+ end
343
+
344
+ def activeMdiChild()
345
+ if @mdiArea.activeSubWindow
346
+ return @mdiArea.activeSubWindow.widget
347
+ else
348
+ return nil
349
+ end
350
+ end
351
+
352
+ def findMdiChild(fileName)
353
+ canonicalFilePath = Qt::FileInfo.new(fileName).canonicalFilePath()
354
+
355
+ @mdiArea.subWindowList().each do |window|
356
+ mdiChild = window.widget
357
+ if mdiChild.currentFile() == canonicalFilePath
358
+ return window
359
+ end
360
+ end
361
+ return nil
362
+ end
363
+ end