qtbindings 4.6.3.0-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1225) hide show
  1. data/CHANGELOG.txt +9 -0
  2. data/CMakeLists.txt +22 -0
  3. data/COPYING.LIB.txt +510 -0
  4. data/COPYING.txt +286 -0
  5. data/KNOWN_ISSUES.txt +20 -0
  6. data/README.txt +92 -0
  7. data/Rakefile +96 -0
  8. data/TODO.txt +2 -0
  9. data/bin/1.8/rbrcc.exe +0 -0
  10. data/bin/1.8/rbuic4.exe +0 -0
  11. data/bin/1.8/smokeapi.exe +0 -0
  12. data/bin/1.8/smokedeptool.exe +0 -0
  13. data/bin/1.9/rbrcc.exe +0 -0
  14. data/bin/1.9/rbuic4.exe +0 -0
  15. data/bin/1.9/smokeapi.exe +0 -0
  16. data/bin/1.9/smokedeptool.exe +0 -0
  17. data/bin/Qt3Support4.dll +0 -0
  18. data/bin/QtAssistantClient4.dll +0 -0
  19. data/bin/QtCLucene4.dll +0 -0
  20. data/bin/QtCore4.dll +0 -0
  21. data/bin/QtDesigner4.dll +0 -0
  22. data/bin/QtDesignerComponents4.dll +0 -0
  23. data/bin/QtGui4.dll +0 -0
  24. data/bin/QtHelp4.dll +0 -0
  25. data/bin/QtMultimedia4.dll +0 -0
  26. data/bin/QtNetwork4.dll +0 -0
  27. data/bin/QtOpenGL4.dll +0 -0
  28. data/bin/QtScript4.dll +0 -0
  29. data/bin/QtScriptTools4.dll +0 -0
  30. data/bin/QtSql4.dll +0 -0
  31. data/bin/QtSvg4.dll +0 -0
  32. data/bin/QtTest4.dll +0 -0
  33. data/bin/QtWebKit4.dll +0 -0
  34. data/bin/QtXml4.dll +0 -0
  35. data/bin/QtXmlPatterns4.dll +0 -0
  36. data/bin/libgcc_s_dw2-1.dll +0 -0
  37. data/bin/mingwm10.dll +0 -0
  38. data/bin/phonon4.dll +0 -0
  39. data/bin/plugins/arthurplugin.dll +0 -0
  40. data/bin/plugins/containerextension.dll +0 -0
  41. data/bin/plugins/customwidgetplugin.dll +0 -0
  42. data/bin/plugins/phononwidgets.dll +0 -0
  43. data/bin/plugins/qcncodecs4.dll +0 -0
  44. data/bin/plugins/qgif4.dll +0 -0
  45. data/bin/plugins/qglgraphicssystem4.dll +0 -0
  46. data/bin/plugins/qico4.dll +0 -0
  47. data/bin/plugins/qjpcodecs4.dll +0 -0
  48. data/bin/plugins/qjpeg4.dll +0 -0
  49. data/bin/plugins/qkrcodecs4.dll +0 -0
  50. data/bin/plugins/qmng4.dll +0 -0
  51. data/bin/plugins/qsqlite4.dll +0 -0
  52. data/bin/plugins/qsqlodbc4.dll +0 -0
  53. data/bin/plugins/qsvg4.dll +0 -0
  54. data/bin/plugins/qsvgicon4.dll +0 -0
  55. data/bin/plugins/qt3supportwidgets.dll +0 -0
  56. data/bin/plugins/qtaccessiblecompatwidgets4.dll +0 -0
  57. data/bin/plugins/qtaccessiblewidgets4.dll +0 -0
  58. data/bin/plugins/qtiff4.dll +0 -0
  59. data/bin/plugins/qtracegraphicssystem4.dll +0 -0
  60. data/bin/plugins/qtwcodecs4.dll +0 -0
  61. data/bin/plugins/qwebview.dll +0 -0
  62. data/bin/plugins/taskmenuextension.dll +0 -0
  63. data/bin/plugins/worldtimeclockplugin.dll +0 -0
  64. data/bin/rbqtapi +152 -0
  65. data/bin/rbrcc +18 -0
  66. data/bin/rbuic4 +18 -0
  67. data/bin/smokeapi +18 -0
  68. data/bin/smokedeptool +18 -0
  69. data/examples/base/kicons.rb +54 -0
  70. data/examples/base/rui.rb +21 -0
  71. data/examples/designer/calculatorbuilder/calculatorbuilder.qrc +5 -0
  72. data/examples/designer/calculatorbuilder/calculatorform.rb +60 -0
  73. data/examples/designer/calculatorbuilder/calculatorform.ui +299 -0
  74. data/examples/designer/calculatorbuilder/main.rb +34 -0
  75. data/examples/designer/calculatorbuilder/makefile +2 -0
  76. data/examples/designer/calculatorform/calculatorform.rb +46 -0
  77. data/examples/designer/calculatorform/calculatorform.ui +277 -0
  78. data/examples/designer/calculatorform/main.rb +32 -0
  79. data/examples/designer/calculatorform/makefile +3 -0
  80. data/examples/desktop/screenshot/main.rb +32 -0
  81. data/examples/desktop/screenshot/screenshot.rb +156 -0
  82. data/examples/desktop/systray/images/bad.svg +64 -0
  83. data/examples/desktop/systray/images/heart.svg +55 -0
  84. data/examples/desktop/systray/images/trash.svg +58 -0
  85. data/examples/desktop/systray/main.rb +41 -0
  86. data/examples/desktop/systray/makefile +2 -0
  87. data/examples/desktop/systray/systray.qrc +7 -0
  88. data/examples/desktop/systray/window.rb +223 -0
  89. data/examples/dialogs/complexwizard/complexwizard.rb +140 -0
  90. data/examples/dialogs/complexwizard/licensewizard.rb +294 -0
  91. data/examples/dialogs/complexwizard/main.rb +31 -0
  92. data/examples/dialogs/configdialog/configdialog.rb +109 -0
  93. data/examples/dialogs/configdialog/images/config.png +0 -0
  94. data/examples/dialogs/configdialog/images/query.png +0 -0
  95. data/examples/dialogs/configdialog/images/update.png +0 -0
  96. data/examples/dialogs/configdialog/main.rb +31 -0
  97. data/examples/dialogs/configdialog/pages.rb +140 -0
  98. data/examples/dialogs/extension/finddialog.rb +89 -0
  99. data/examples/dialogs/extension/main.rb +31 -0
  100. data/examples/dialogs/findfiles/main.rb +32 -0
  101. data/examples/dialogs/findfiles/window.rb +177 -0
  102. data/examples/dialogs/simplewizard/classwizard.rb +374 -0
  103. data/examples/dialogs/simplewizard/main.rb +31 -0
  104. data/examples/dialogs/simplewizard/simplewizard.rb +110 -0
  105. data/examples/dialogs/standarddialogs/dialog.rb +340 -0
  106. data/examples/dialogs/standarddialogs/main.rb +31 -0
  107. data/examples/dialogs/tabdialog/main.rb +38 -0
  108. data/examples/dialogs/tabdialog/tabdialog.rb +178 -0
  109. data/examples/draganddrop/draggableicons/dragwidget.rb +125 -0
  110. data/examples/draganddrop/draggableicons/images/boat.png +0 -0
  111. data/examples/draganddrop/draggableicons/images/car.png +0 -0
  112. data/examples/draganddrop/draggableicons/images/house.png +0 -0
  113. data/examples/draganddrop/draggableicons/main.rb +41 -0
  114. data/examples/draganddrop/draggabletext/draglabel.rb +51 -0
  115. data/examples/draganddrop/draggabletext/dragwidget.rb +94 -0
  116. data/examples/draganddrop/draggabletext/main.rb +33 -0
  117. data/examples/draganddrop/draggabletext/words.txt +41 -0
  118. data/examples/draganddrop/dropsite/dropsitewidget.rb +98 -0
  119. data/examples/draganddrop/dropsite/dropsitewindow.rb +114 -0
  120. data/examples/draganddrop/dropsite/main.rb +33 -0
  121. data/examples/draganddrop/fridgemagnets/draglabel.rb +78 -0
  122. data/examples/draganddrop/fridgemagnets/dragwidget.rb +130 -0
  123. data/examples/draganddrop/fridgemagnets/main.rb +33 -0
  124. data/examples/draganddrop/fridgemagnets/words.txt +48 -0
  125. data/examples/draganddrop/puzzle/example.jpg +0 -0
  126. data/examples/draganddrop/puzzle/main.rb +33 -0
  127. data/examples/draganddrop/puzzle/mainwindow.rb +136 -0
  128. data/examples/draganddrop/puzzle/pieceslist.rb +95 -0
  129. data/examples/draganddrop/puzzle/puzzlewidget.rb +190 -0
  130. data/examples/graphicsview/collidingmice/images/cheese.jpg +0 -0
  131. data/examples/graphicsview/collidingmice/main.rb +53 -0
  132. data/examples/graphicsview/collidingmice/makefile +2 -0
  133. data/examples/graphicsview/collidingmice/mice.qrc +5 -0
  134. data/examples/graphicsview/collidingmice/mouse.rb +176 -0
  135. data/examples/graphicsview/dragdroprobot/coloritem.rb +86 -0
  136. data/examples/graphicsview/dragdroprobot/images/head.png +0 -0
  137. data/examples/graphicsview/dragdroprobot/main.rb +57 -0
  138. data/examples/graphicsview/dragdroprobot/makefile +2 -0
  139. data/examples/graphicsview/dragdroprobot/robot.qrc +5 -0
  140. data/examples/graphicsview/dragdroprobot/robot.rb +246 -0
  141. data/examples/itemviews/chart/chart.qrc +5 -0
  142. data/examples/itemviews/chart/main.rb +33 -0
  143. data/examples/itemviews/chart/mainwindow.rb +151 -0
  144. data/examples/itemviews/chart/makefile +2 -0
  145. data/examples/itemviews/chart/mydata.cht +8 -0
  146. data/examples/itemviews/chart/pieview.rb +516 -0
  147. data/examples/itemviews/chart/qtdata.cht +14 -0
  148. data/examples/itemviews/dirview/main.rb +39 -0
  149. data/examples/itemviews/pixelator/imagemodel.rb +51 -0
  150. data/examples/itemviews/pixelator/images.qrc +5 -0
  151. data/examples/itemviews/pixelator/images/qt.png +0 -0
  152. data/examples/itemviews/pixelator/main.rb +34 -0
  153. data/examples/itemviews/pixelator/mainwindow.rb +218 -0
  154. data/examples/itemviews/pixelator/makefile +3 -0
  155. data/examples/itemviews/pixelator/pixeldelegate.rb +67 -0
  156. data/examples/itemviews/puzzle/example.jpg +0 -0
  157. data/examples/itemviews/puzzle/main.rb +36 -0
  158. data/examples/itemviews/puzzle/mainwindow.rb +143 -0
  159. data/examples/itemviews/puzzle/piecesmodel.rb +174 -0
  160. data/examples/itemviews/puzzle/puzzlewidget.rb +192 -0
  161. data/examples/itemviews/simpledommodel/domitem.rb +62 -0
  162. data/examples/itemviews/simpledommodel/dommodel.rb +139 -0
  163. data/examples/itemviews/simpledommodel/main.rb +33 -0
  164. data/examples/itemviews/simpledommodel/mainwindow.rb +66 -0
  165. data/examples/itemviews/simpletreemodel/default.txt +40 -0
  166. data/examples/itemviews/simpletreemodel/main.rb +41 -0
  167. data/examples/itemviews/simpletreemodel/makefile +2 -0
  168. data/examples/itemviews/simpletreemodel/simpletreemodel.qrc +5 -0
  169. data/examples/itemviews/simpletreemodel/treeitem.rb +67 -0
  170. data/examples/itemviews/simpletreemodel/treemodel.rb +164 -0
  171. data/examples/itemviews/sortingmodel/default.txt +40 -0
  172. data/examples/itemviews/sortingmodel/main.rb +53 -0
  173. data/examples/itemviews/sortingmodel/treeitem.rb +73 -0
  174. data/examples/itemviews/sortingmodel/treemodel.rb +166 -0
  175. data/examples/itemviews/spinboxdelegate/main.rb +47 -0
  176. data/examples/itemviews/spinboxdelegate/spinboxdelegate.rb +62 -0
  177. data/examples/killerfilter/killerfilter.rb +55 -0
  178. data/examples/layouts/basiclayouts/dialog.rb +110 -0
  179. data/examples/layouts/basiclayouts/main.rb +31 -0
  180. data/examples/layouts/borderlayout/borderlayout.rb +190 -0
  181. data/examples/layouts/borderlayout/main.rb +32 -0
  182. data/examples/layouts/borderlayout/window.rb +52 -0
  183. data/examples/layouts/flowlayouts/flowlayout.rb +108 -0
  184. data/examples/layouts/flowlayouts/main.rb +32 -0
  185. data/examples/layouts/flowlayouts/window.rb +43 -0
  186. data/examples/mainwindows/application/images/copy.png +0 -0
  187. data/examples/mainwindows/application/images/cut.png +0 -0
  188. data/examples/mainwindows/application/images/new.png +0 -0
  189. data/examples/mainwindows/application/images/open.png +0 -0
  190. data/examples/mainwindows/application/images/paste.png +0 -0
  191. data/examples/mainwindows/application/images/save.png +0 -0
  192. data/examples/mainwindows/application/main.rb +32 -0
  193. data/examples/mainwindows/application/mainwindow.rb +285 -0
  194. data/examples/mainwindows/dockwidgets/images/new.png +0 -0
  195. data/examples/mainwindows/dockwidgets/images/print.png +0 -0
  196. data/examples/mainwindows/dockwidgets/images/save.png +0 -0
  197. data/examples/mainwindows/dockwidgets/images/undo.png +0 -0
  198. data/examples/mainwindows/dockwidgets/main.rb +32 -0
  199. data/examples/mainwindows/dockwidgets/mainwindow.rb +302 -0
  200. data/examples/mainwindows/mdi/images/copy.png +0 -0
  201. data/examples/mainwindows/mdi/images/cut.png +0 -0
  202. data/examples/mainwindows/mdi/images/new.png +0 -0
  203. data/examples/mainwindows/mdi/images/open.png +0 -0
  204. data/examples/mainwindows/mdi/images/paste.png +0 -0
  205. data/examples/mainwindows/mdi/images/save.png +0 -0
  206. data/examples/mainwindows/mdi/main.rb +32 -0
  207. data/examples/mainwindows/mdi/mainwindow.rb +363 -0
  208. data/examples/mainwindows/mdi/mdichild.rb +152 -0
  209. data/examples/mainwindows/menus/main.rb +32 -0
  210. data/examples/mainwindows/menus/mainwindow.rb +327 -0
  211. data/examples/mainwindows/recentfiles/main.rb +32 -0
  212. data/examples/mainwindows/recentfiles/mainwindow.rb +258 -0
  213. data/examples/mainwindows/sdi/images/copy.png +0 -0
  214. data/examples/mainwindows/sdi/images/cut.png +0 -0
  215. data/examples/mainwindows/sdi/images/new.png +0 -0
  216. data/examples/mainwindows/sdi/images/open.png +0 -0
  217. data/examples/mainwindows/sdi/images/paste.png +0 -0
  218. data/examples/mainwindows/sdi/images/save.png +0 -0
  219. data/examples/mainwindows/sdi/main.rb +32 -0
  220. data/examples/mainwindows/sdi/mainwindow.rb +335 -0
  221. data/examples/network/broadcastreceiver/main.rb +32 -0
  222. data/examples/network/broadcastreceiver/receiver.rb +64 -0
  223. data/examples/network/broadcastsender/main.rb +32 -0
  224. data/examples/network/broadcastsender/sender.rb +70 -0
  225. data/examples/network/fortuneclient/client.rb +150 -0
  226. data/examples/network/fortuneclient/main.rb +32 -0
  227. data/examples/network/fortuneserver/main.rb +32 -0
  228. data/examples/network/fortuneserver/server.rb +88 -0
  229. data/examples/network/ftp/ftpwindow.rb +254 -0
  230. data/examples/network/ftp/images/cdtoparent.png +0 -0
  231. data/examples/network/ftp/images/dir.png +0 -0
  232. data/examples/network/ftp/images/file.png +0 -0
  233. data/examples/network/ftp/main.rb +32 -0
  234. data/examples/network/http/httpwindow.rb +187 -0
  235. data/examples/network/http/main.rb +32 -0
  236. data/examples/network/loopback/dialog.rb +163 -0
  237. data/examples/network/loopback/main.rb +32 -0
  238. data/examples/opengl/grabber/glwidget.rb +265 -0
  239. data/examples/opengl/grabber/main.rb +32 -0
  240. data/examples/opengl/grabber/mainwindow.rb +189 -0
  241. data/examples/opengl/hellogl/glwidget.rb +226 -0
  242. data/examples/opengl/hellogl/main.rb +32 -0
  243. data/examples/opengl/hellogl/window.rb +66 -0
  244. data/examples/opengl/textures/glwidget.rb +151 -0
  245. data/examples/opengl/textures/images/side1.png +0 -0
  246. data/examples/opengl/textures/images/side2.png +0 -0
  247. data/examples/opengl/textures/images/side3.png +0 -0
  248. data/examples/opengl/textures/images/side4.png +0 -0
  249. data/examples/opengl/textures/images/side5.png +0 -0
  250. data/examples/opengl/textures/images/side6.png +0 -0
  251. data/examples/opengl/textures/main.rb +32 -0
  252. data/examples/opengl/textures/window.rb +77 -0
  253. data/examples/painting/basicdrawing/images/brick.png +0 -0
  254. data/examples/painting/basicdrawing/images/qt-logo.png +0 -0
  255. data/examples/painting/basicdrawing/main.rb +32 -0
  256. data/examples/painting/basicdrawing/renderarea.rb +166 -0
  257. data/examples/painting/basicdrawing/window.rb +215 -0
  258. data/examples/painting/concentriccircles/circlewidget.rb +88 -0
  259. data/examples/painting/concentriccircles/main.rb +32 -0
  260. data/examples/painting/concentriccircles/window.rb +72 -0
  261. data/examples/painting/fontsampler/main.rb +32 -0
  262. data/examples/painting/fontsampler/mainwindow.rb +368 -0
  263. data/examples/painting/fontsampler/mainwindowbase.ui +136 -0
  264. data/examples/painting/fontsampler/makefile +8 -0
  265. data/examples/painting/fontsampler/previewdialog.rb +256 -0
  266. data/examples/painting/fontsampler/previewdialogbase.ui +224 -0
  267. data/examples/painting/fontsampler/previewlabel.rb +43 -0
  268. data/examples/painting/imagecomposition/imagecomposer.rb +152 -0
  269. data/examples/painting/imagecomposition/imagecomposition.qrc +6 -0
  270. data/examples/painting/imagecomposition/images/background.png +0 -0
  271. data/examples/painting/imagecomposition/images/blackrectangle.png +0 -0
  272. data/examples/painting/imagecomposition/images/butterfly.png +0 -0
  273. data/examples/painting/imagecomposition/images/checker.png +0 -0
  274. data/examples/painting/imagecomposition/main.rb +33 -0
  275. data/examples/painting/imagecomposition/makefile +2 -0
  276. data/examples/painting/painterpaths/main.rb +32 -0
  277. data/examples/painting/painterpaths/renderarea.rb +97 -0
  278. data/examples/painting/painterpaths/window.rb +247 -0
  279. data/examples/painting/svgviewer/files/bubbles.svg +212 -0
  280. data/examples/painting/svgviewer/files/cubic.svg +77 -0
  281. data/examples/painting/svgviewer/files/spheres.svg +79 -0
  282. data/examples/painting/svgviewer/main.rb +38 -0
  283. data/examples/painting/svgviewer/mainwindow.rb +99 -0
  284. data/examples/painting/svgviewer/makefile +2 -0
  285. data/examples/painting/svgviewer/svgview.rb +156 -0
  286. data/examples/painting/svgviewer/svgviewer.qrc +6 -0
  287. data/examples/painting/svgviewer/svgwindow.rb +87 -0
  288. data/examples/painting/transformations/main.rb +32 -0
  289. data/examples/painting/transformations/renderarea.rb +127 -0
  290. data/examples/painting/transformations/window.rb +153 -0
  291. data/examples/passivepopup/passivepopup.rb +38 -0
  292. data/examples/qdbus/chat/chat.rb +146 -0
  293. data/examples/qdbus/chat/chat_adaptor.rb +12 -0
  294. data/examples/qdbus/chat/chat_interface.rb +13 -0
  295. data/examples/qdbus/chat/chatmainwindow.ui +184 -0
  296. data/examples/qdbus/chat/chatsetnickname.ui +145 -0
  297. data/examples/qdbus/chat/makefile +8 -0
  298. data/examples/qdbus/complexpingpong/complexping.rb +92 -0
  299. data/examples/qdbus/complexpingpong/complexpong.rb +83 -0
  300. data/examples/qdbus/complexpingpong/ping-common.rb +1 -0
  301. data/examples/qdbus/listnames/listnames.rb +69 -0
  302. data/examples/qdbus/pingpong/ping-common.rb +1 -0
  303. data/examples/qdbus/pingpong/ping.rb +52 -0
  304. data/examples/qdbus/pingpong/pong.rb +55 -0
  305. data/examples/qdbus/remotecontrolledcar/car/car.rb +151 -0
  306. data/examples/qdbus/remotecontrolledcar/car/main.rb +50 -0
  307. data/examples/qdbus/remotecontrolledcar/controller/controller.rb +66 -0
  308. data/examples/qdbus/remotecontrolledcar/controller/controller.ui +61 -0
  309. data/examples/qdbus/remotecontrolledcar/controller/main.rb +32 -0
  310. data/examples/qdbus/remotecontrolledcar/controller/makefile +2 -0
  311. data/examples/qtscribble/scribble.rb +270 -0
  312. data/examples/richtext/calendar/main.rb +33 -0
  313. data/examples/richtext/calendar/mainwindow.rb +173 -0
  314. data/examples/richtext/orderform/detailsdialog.rb +130 -0
  315. data/examples/richtext/orderform/main.rb +34 -0
  316. data/examples/richtext/orderform/mainwindow.rb +194 -0
  317. data/examples/richtext/syntaxhighlighter/examples/example +79 -0
  318. data/examples/richtext/syntaxhighlighter/highlighter.rb +90 -0
  319. data/examples/richtext/syntaxhighlighter/main.rb +34 -0
  320. data/examples/richtext/syntaxhighlighter/mainwindow.rb +105 -0
  321. data/examples/ruboids/Manifest +26 -0
  322. data/examples/ruboids/README +53 -0
  323. data/examples/ruboids/TODO +29 -0
  324. data/examples/ruboids/boids.properties +33 -0
  325. data/examples/ruboids/generateManifest.rb +42 -0
  326. data/examples/ruboids/index.html +147 -0
  327. data/examples/ruboids/release.rb +152 -0
  328. data/examples/ruboids/ruboids/Boid.rb +141 -0
  329. data/examples/ruboids/ruboids/BoidView.rb +159 -0
  330. data/examples/ruboids/ruboids/Camera.rb +24 -0
  331. data/examples/ruboids/ruboids/CameraDialog.rb +218 -0
  332. data/examples/ruboids/ruboids/Canvas.rb +143 -0
  333. data/examples/ruboids/ruboids/Cloud.rb +61 -0
  334. data/examples/ruboids/ruboids/CloudView.rb +54 -0
  335. data/examples/ruboids/ruboids/Flock.rb +47 -0
  336. data/examples/ruboids/ruboids/Graphics.rb +278 -0
  337. data/examples/ruboids/ruboids/Params.rb +87 -0
  338. data/examples/ruboids/ruboids/Point.rb +153 -0
  339. data/examples/ruboids/ruboids/Thing.rb +34 -0
  340. data/examples/ruboids/ruboids/Triangle.rb +21 -0
  341. data/examples/ruboids/ruboids/View.rb +88 -0
  342. data/examples/ruboids/ruboids/World.rb +82 -0
  343. data/examples/ruboids/ruboids/WorldWindow.rb +52 -0
  344. data/examples/ruboids/ruboids/info.rb +12 -0
  345. data/examples/ruboids/ruboids/ruboids.rb +29 -0
  346. data/examples/run_all.rb +14 -0
  347. data/examples/textedit/textedit.rb +150 -0
  348. data/examples/tutorial/t1/t1.rb +10 -0
  349. data/examples/tutorial/t10/cannon.rb +72 -0
  350. data/examples/tutorial/t10/lcdrange.rb +45 -0
  351. data/examples/tutorial/t10/t10.rb +55 -0
  352. data/examples/tutorial/t11/cannon.rb +124 -0
  353. data/examples/tutorial/t11/lcdrange.rb +45 -0
  354. data/examples/tutorial/t11/t11.rb +65 -0
  355. data/examples/tutorial/t12/cannon.rb +158 -0
  356. data/examples/tutorial/t12/lcdrange.rb +59 -0
  357. data/examples/tutorial/t12/t12.rb +66 -0
  358. data/examples/tutorial/t13/cannon.rb +208 -0
  359. data/examples/tutorial/t13/gamebrd.rb +113 -0
  360. data/examples/tutorial/t13/lcdrange.rb +60 -0
  361. data/examples/tutorial/t13/t13.rb +11 -0
  362. data/examples/tutorial/t14/cannon.rb +263 -0
  363. data/examples/tutorial/t14/gamebrd.rb +123 -0
  364. data/examples/tutorial/t14/lcdrange.rb +63 -0
  365. data/examples/tutorial/t14/t14.rb +11 -0
  366. data/examples/tutorial/t2/t2.rb +16 -0
  367. data/examples/tutorial/t3/t3.rb +18 -0
  368. data/examples/tutorial/t4/t4.rb +25 -0
  369. data/examples/tutorial/t5/t5.rb +37 -0
  370. data/examples/tutorial/t6/t6.rb +52 -0
  371. data/examples/tutorial/t7/lcdrange.rb +32 -0
  372. data/examples/tutorial/t7/t7.rb +42 -0
  373. data/examples/tutorial/t8/cannon.rb +38 -0
  374. data/examples/tutorial/t8/lcdrange.rb +45 -0
  375. data/examples/tutorial/t8/t8.rb +43 -0
  376. data/examples/tutorial/t9/cannon.rb +45 -0
  377. data/examples/tutorial/t9/lcdrange.rb +46 -0
  378. data/examples/tutorial/t9/t9.rb +43 -0
  379. data/examples/widgets/analogclock/analogclock.rb +94 -0
  380. data/examples/widgets/analogclock/main.rb +9 -0
  381. data/examples/widgets/calculator/button.rb +45 -0
  382. data/examples/widgets/calculator/calculator.rb +382 -0
  383. data/examples/widgets/calculator/main.rb +32 -0
  384. data/examples/widgets/charactermap/characterwidget.rb +110 -0
  385. data/examples/widgets/charactermap/main.rb +32 -0
  386. data/examples/widgets/charactermap/mainwindow.rb +118 -0
  387. data/examples/widgets/digitalclock/digitalclock.rb +30 -0
  388. data/examples/widgets/digitalclock/main.rb +9 -0
  389. data/examples/widgets/groupbox/main.rb +32 -0
  390. data/examples/widgets/groupbox/window.rb +134 -0
  391. data/examples/widgets/icons/iconpreviewarea.rb +111 -0
  392. data/examples/widgets/icons/iconsizespinbox.rb +39 -0
  393. data/examples/widgets/icons/imagedelegate.rb +73 -0
  394. data/examples/widgets/icons/images/designer.png +0 -0
  395. data/examples/widgets/icons/images/find_disabled.png +0 -0
  396. data/examples/widgets/icons/images/find_normal.png +0 -0
  397. data/examples/widgets/icons/images/monkey_off_128x128.png +0 -0
  398. data/examples/widgets/icons/images/monkey_off_16x16.png +0 -0
  399. data/examples/widgets/icons/images/monkey_off_32x32.png +0 -0
  400. data/examples/widgets/icons/images/monkey_off_64x64.png +0 -0
  401. data/examples/widgets/icons/images/monkey_on_128x128.png +0 -0
  402. data/examples/widgets/icons/images/monkey_on_16x16.png +0 -0
  403. data/examples/widgets/icons/images/monkey_on_32x32.png +0 -0
  404. data/examples/widgets/icons/images/monkey_on_64x64.png +0 -0
  405. data/examples/widgets/icons/images/qtopia_16x16.png +0 -0
  406. data/examples/widgets/icons/images/qtopia_32x32.png +0 -0
  407. data/examples/widgets/icons/images/qtopia_48x48.png +0 -0
  408. data/examples/widgets/icons/main.rb +32 -0
  409. data/examples/widgets/icons/mainwindow.rb +351 -0
  410. data/examples/widgets/imageviewer/imageviewer.rb +219 -0
  411. data/examples/widgets/imageviewer/main.rb +32 -0
  412. data/examples/widgets/lineedits/main.rb +32 -0
  413. data/examples/widgets/lineedits/window.rb +199 -0
  414. data/examples/widgets/movie/images/open.png +0 -0
  415. data/examples/widgets/movie/images/pause.png +0 -0
  416. data/examples/widgets/movie/images/play.png +0 -0
  417. data/examples/widgets/movie/images/quit.png +0 -0
  418. data/examples/widgets/movie/images/stop.png +0 -0
  419. data/examples/widgets/movie/main.rb +32 -0
  420. data/examples/widgets/movie/movieplayer.rb +201 -0
  421. data/examples/widgets/movie/movies/fire.mng +0 -0
  422. data/examples/widgets/screenshot/main.rb +32 -0
  423. data/examples/widgets/screenshot/screenshot.rb +155 -0
  424. data/examples/widgets/scribble/main.rb +32 -0
  425. data/examples/widgets/scribble/mainwindow.rb +202 -0
  426. data/examples/widgets/scribble/scribblearea.rb +154 -0
  427. data/examples/widgets/sliders/main.rb +32 -0
  428. data/examples/widgets/sliders/slidersgroup.rb +97 -0
  429. data/examples/widgets/sliders/window.rb +124 -0
  430. data/examples/widgets/spinboxes/main.rb +32 -0
  431. data/examples/widgets/spinboxes/window.rb +213 -0
  432. data/examples/widgets/tetrix/main.rb +33 -0
  433. data/examples/widgets/tetrix/tetrixboard.rb +346 -0
  434. data/examples/widgets/tetrix/tetrixpiece.rb +135 -0
  435. data/examples/widgets/tetrix/tetrixwindow.rb +88 -0
  436. data/examples/widgets/tooltips/images/circle.png +0 -0
  437. data/examples/widgets/tooltips/images/square.png +0 -0
  438. data/examples/widgets/tooltips/images/triangle.png +0 -0
  439. data/examples/widgets/tooltips/main.rb +32 -0
  440. data/examples/widgets/tooltips/shapeitem.rb +31 -0
  441. data/examples/widgets/tooltips/sortingbox.rb +222 -0
  442. data/examples/widgets/wiggly/dialog.rb +48 -0
  443. data/examples/widgets/wiggly/main.rb +9 -0
  444. data/examples/widgets/wiggly/wigglywidget.rb +76 -0
  445. data/examples/widgets/windowflags/controllerwindow.rb +195 -0
  446. data/examples/widgets/windowflags/main.rb +32 -0
  447. data/examples/widgets/windowflags/previewwindow.rb +103 -0
  448. data/examples/xml/dombookmarks/frank.xbel +230 -0
  449. data/examples/xml/dombookmarks/jennifer.xbel +93 -0
  450. data/examples/xml/dombookmarks/main.rb +34 -0
  451. data/examples/xml/dombookmarks/mainwindow.rb +129 -0
  452. data/examples/xml/dombookmarks/xbeltree.rb +172 -0
  453. data/examples/xml/saxbookmarks/frank.xbel +230 -0
  454. data/examples/xml/saxbookmarks/jennifer.xbel +93 -0
  455. data/examples/xml/saxbookmarks/main.rb +34 -0
  456. data/examples/xml/saxbookmarks/mainwindow.rb +144 -0
  457. data/examples/xml/saxbookmarks/xbelgenerator.rb +95 -0
  458. data/examples/xml/saxbookmarks/xbelhandler.rb +122 -0
  459. data/ext/CMakeLists.txt +22 -0
  460. data/ext/cmake/modules/CMakeCSharpCompiler.cmake.in +7 -0
  461. data/ext/cmake/modules/CMakeCSharpInformation.cmake +366 -0
  462. data/ext/cmake/modules/CMakeDetermineCSharpCompiler.cmake +85 -0
  463. data/ext/cmake/modules/CMakeTestCSharpCompiler.cmake +1 -0
  464. data/ext/cmake/modules/CheckCXXSourceCompiles.cmake +68 -0
  465. data/ext/cmake/modules/FindMono.cmake +36 -0
  466. data/ext/cmake/modules/FindPHP5.cmake +179 -0
  467. data/ext/cmake/modules/FindPerlMore.cmake +78 -0
  468. data/ext/cmake/modules/FindQScintilla.cmake +57 -0
  469. data/ext/cmake/modules/FindQt4.cmake +1271 -0
  470. data/ext/cmake/modules/FindQwt5.cmake +104 -0
  471. data/ext/cmake/modules/FindRuby.cmake +261 -0
  472. data/ext/cmake/modules/FindSmoke.cmake +78 -0
  473. data/ext/cmake/modules/HandleImportedTargetsInCMakeRequiredLibraries.cmake +85 -0
  474. data/ext/cmake/modules/MacroLogFeature.cmake +146 -0
  475. data/ext/cmake/modules/MacroOptionalAddBindings.cmake +47 -0
  476. data/ext/cmake/modules/MacroOptionalFindPackage.cmake +48 -0
  477. data/ext/cmake/modules/MacroPushRequiredVars.cmake +47 -0
  478. data/ext/cmake/modules/Qt4ConfigDependentSettings.cmake +384 -0
  479. data/ext/cmake/modules/Qt4Macros.cmake +414 -0
  480. data/ext/generator/CMakeLists.txt +38 -0
  481. data/ext/generator/generator_export.h +31 -0
  482. data/ext/generator/generatorenvironment.cpp +52 -0
  483. data/ext/generator/generatorenvironment.h +35 -0
  484. data/ext/generator/generatorpreprocessor.cpp +242 -0
  485. data/ext/generator/generatorpreprocessor.h +83 -0
  486. data/ext/generator/generators/CMakeLists.txt +4 -0
  487. data/ext/generator/generators/dump/CMakeLists.txt +10 -0
  488. data/ext/generator/generators/dump/generator_dump.cpp +36 -0
  489. data/ext/generator/generators/smoke/CMakeLists.txt +13 -0
  490. data/ext/generator/generators/smoke/generator_smoke.cpp +233 -0
  491. data/ext/generator/generators/smoke/globals.h +138 -0
  492. data/ext/generator/generators/smoke/helpers.cpp +773 -0
  493. data/ext/generator/generators/smoke/writeClasses.cpp +502 -0
  494. data/ext/generator/generators/smoke/writeSmokeDataFile.cpp +729 -0
  495. data/ext/generator/generatorvisitor.cpp +922 -0
  496. data/ext/generator/generatorvisitor.h +119 -0
  497. data/ext/generator/main.cpp +239 -0
  498. data/ext/generator/name_compiler.cpp +205 -0
  499. data/ext/generator/name_compiler.h +76 -0
  500. data/ext/generator/options.cpp +32 -0
  501. data/ext/generator/options.h +45 -0
  502. data/ext/generator/parser/CMakeLists.txt +41 -0
  503. data/ext/generator/parser/ast.cpp +21 -0
  504. data/ext/generator/parser/ast.h +923 -0
  505. data/ext/generator/parser/astutilities.h +65 -0
  506. data/ext/generator/parser/codegenerator.cpp +867 -0
  507. data/ext/generator/parser/codegenerator.h +180 -0
  508. data/ext/generator/parser/codemodel_fwd.h +76 -0
  509. data/ext/generator/parser/commentformatter.cpp +54 -0
  510. data/ext/generator/parser/commentformatter.h +45 -0
  511. data/ext/generator/parser/commentparser.cpp +109 -0
  512. data/ext/generator/parser/commentparser.h +84 -0
  513. data/ext/generator/parser/control.cpp +40 -0
  514. data/ext/generator/parser/control.h +51 -0
  515. data/ext/generator/parser/cppparser_export.h +33 -0
  516. data/ext/generator/parser/default_visitor.cpp +470 -0
  517. data/ext/generator/parser/default_visitor.h +116 -0
  518. data/ext/generator/parser/dumptree.cpp +146 -0
  519. data/ext/generator/parser/dumptree.h +50 -0
  520. data/ext/generator/parser/indexedstring.cpp +213 -0
  521. data/ext/generator/parser/indexedstring.h +147 -0
  522. data/ext/generator/parser/kdevelop-parser-rev +1 -0
  523. data/ext/generator/parser/kdevvarlengtharray.h +346 -0
  524. data/ext/generator/parser/lexer.cpp +963 -0
  525. data/ext/generator/parser/lexer.h +308 -0
  526. data/ext/generator/parser/listnode.cpp +20 -0
  527. data/ext/generator/parser/listnode.h +97 -0
  528. data/ext/generator/parser/memorypool.cpp +20 -0
  529. data/ext/generator/parser/memorypool.h +41 -0
  530. data/ext/generator/parser/name_compiler.cpp +190 -0
  531. data/ext/generator/parser/name_compiler.h +77 -0
  532. data/ext/generator/parser/parser.cpp +4706 -0
  533. data/ext/generator/parser/parser.h +300 -0
  534. data/ext/generator/parser/parsesession.cpp +105 -0
  535. data/ext/generator/parser/parsesession.h +87 -0
  536. data/ext/generator/parser/problem.h +21 -0
  537. data/ext/generator/parser/rpp/CMakeLists.txt +39 -0
  538. data/ext/generator/parser/rpp/Makefile.am +13 -0
  539. data/ext/generator/parser/rpp/anchor.h +51 -0
  540. data/ext/generator/parser/rpp/appendedlist.h +363 -0
  541. data/ext/generator/parser/rpp/chartools.cpp +126 -0
  542. data/ext/generator/parser/rpp/chartools.h +90 -0
  543. data/ext/generator/parser/rpp/macrorepository.cpp +44 -0
  544. data/ext/generator/parser/rpp/macrorepository.h +59 -0
  545. data/ext/generator/parser/rpp/pp-configuration +86 -0
  546. data/ext/generator/parser/rpp/pp-engine.cpp +1216 -0
  547. data/ext/generator/parser/rpp/pp-engine.h +267 -0
  548. data/ext/generator/parser/rpp/pp-environment.cpp +271 -0
  549. data/ext/generator/parser/rpp/pp-environment.h +119 -0
  550. data/ext/generator/parser/rpp/pp-internal.cpp +38 -0
  551. data/ext/generator/parser/rpp/pp-internal.h +37 -0
  552. data/ext/generator/parser/rpp/pp-location.cpp +191 -0
  553. data/ext/generator/parser/rpp/pp-location.h +89 -0
  554. data/ext/generator/parser/rpp/pp-macro-expander.cpp +568 -0
  555. data/ext/generator/parser/rpp/pp-macro-expander.cpp.orig +558 -0
  556. data/ext/generator/parser/rpp/pp-macro-expander.h +130 -0
  557. data/ext/generator/parser/rpp/pp-macro.cpp +153 -0
  558. data/ext/generator/parser/rpp/pp-macro.h +176 -0
  559. data/ext/generator/parser/rpp/pp-scanner.cpp +310 -0
  560. data/ext/generator/parser/rpp/pp-scanner.h +97 -0
  561. data/ext/generator/parser/rpp/pp-stream.cpp +425 -0
  562. data/ext/generator/parser/rpp/pp-stream.h +183 -0
  563. data/ext/generator/parser/rpp/preprocessor.cpp +65 -0
  564. data/ext/generator/parser/rpp/preprocessor.h +80 -0
  565. data/ext/generator/parser/rpp/rpp.pri +2 -0
  566. data/ext/generator/parser/rpp/test/t001.cpp +23 -0
  567. data/ext/generator/parser/rpp/test/t002.cpp +15 -0
  568. data/ext/generator/parser/rpp/test/t003.cpp +10 -0
  569. data/ext/generator/parser/rpp/test/t004.cpp +9 -0
  570. data/ext/generator/parser/rpp/test/t005.cpp +10 -0
  571. data/ext/generator/parser/rpp/test/t006.cpp +10 -0
  572. data/ext/generator/parser/rpp/test/t007.cpp +6 -0
  573. data/ext/generator/parser/rpp/test/t008.cpp +6 -0
  574. data/ext/generator/parser/rpp/test/t009.cpp +5 -0
  575. data/ext/generator/parser/rpp/test/t010.cpp +15 -0
  576. data/ext/generator/parser/rpp/test/t011.cpp +9 -0
  577. data/ext/generator/parser/rpp/tests/CMakeLists.txt +13 -0
  578. data/ext/generator/parser/rpp/tests/main.cpp +69 -0
  579. data/ext/generator/parser/rxx.pri +50 -0
  580. data/ext/generator/parser/rxx_allocator.h +128 -0
  581. data/ext/generator/parser/safetycounter.h +57 -0
  582. data/ext/generator/parser/simplecursor.h +74 -0
  583. data/ext/generator/parser/stringhelpers.cpp +577 -0
  584. data/ext/generator/parser/stringhelpers.h +118 -0
  585. data/ext/generator/parser/symbol.h +140 -0
  586. data/ext/generator/parser/tests/CMakeLists.txt +30 -0
  587. data/ext/generator/parser/tests/test_generator.cpp +259 -0
  588. data/ext/generator/parser/tests/test_parser.cpp +474 -0
  589. data/ext/generator/parser/tests/test_pool.cpp +109 -0
  590. data/ext/generator/parser/tests/test_pool.h +35 -0
  591. data/ext/generator/parser/tests/testconfig.h.cmake +4 -0
  592. data/ext/generator/parser/tokens.cpp +364 -0
  593. data/ext/generator/parser/tokens.h +147 -0
  594. data/ext/generator/parser/type_compiler.cpp +135 -0
  595. data/ext/generator/parser/type_compiler.h +68 -0
  596. data/ext/generator/parser/visitor.cpp +115 -0
  597. data/ext/generator/parser/visitor.h +138 -0
  598. data/ext/generator/type.cpp +195 -0
  599. data/ext/generator/type.h +497 -0
  600. data/ext/generator/type_compiler.cpp +275 -0
  601. data/ext/generator/type_compiler.h +80 -0
  602. data/ext/ruby/CMakeLists.txt +63 -0
  603. data/ext/ruby/qtruby/AUTHORS +54 -0
  604. data/ext/ruby/qtruby/CMakeLists.txt +4 -0
  605. data/ext/ruby/qtruby/COPYING +355 -0
  606. data/ext/ruby/qtruby/COPYING.LIB +510 -0
  607. data/ext/ruby/qtruby/ChangeLog +3732 -0
  608. data/ext/ruby/qtruby/INSTALL +79 -0
  609. data/ext/ruby/qtruby/README +264 -0
  610. data/ext/ruby/qtruby/TODO +8 -0
  611. data/ext/ruby/qtruby/bin/CMakeLists.txt +1 -0
  612. data/ext/ruby/qtruby/bin/rbqtapi +152 -0
  613. data/ext/ruby/qtruby/examples/base/kicons.rb +54 -0
  614. data/ext/ruby/qtruby/examples/base/rui.rb +21 -0
  615. data/ext/ruby/qtruby/examples/designer/calculatorbuilder/calculatorbuilder.qrc +5 -0
  616. data/ext/ruby/qtruby/examples/designer/calculatorbuilder/calculatorform.rb +60 -0
  617. data/ext/ruby/qtruby/examples/designer/calculatorbuilder/calculatorform.ui +299 -0
  618. data/ext/ruby/qtruby/examples/designer/calculatorbuilder/main.rb +33 -0
  619. data/ext/ruby/qtruby/examples/designer/calculatorbuilder/makefile +2 -0
  620. data/ext/ruby/qtruby/examples/designer/calculatorform/calculatorform.rb +46 -0
  621. data/ext/ruby/qtruby/examples/designer/calculatorform/calculatorform.ui +277 -0
  622. data/ext/ruby/qtruby/examples/designer/calculatorform/main.rb +32 -0
  623. data/ext/ruby/qtruby/examples/designer/calculatorform/makefile +3 -0
  624. data/ext/ruby/qtruby/examples/desktop/screenshot/main.rb +32 -0
  625. data/ext/ruby/qtruby/examples/desktop/screenshot/screenshot.rb +156 -0
  626. data/ext/ruby/qtruby/examples/desktop/systray/images/bad.svg +64 -0
  627. data/ext/ruby/qtruby/examples/desktop/systray/images/heart.svg +55 -0
  628. data/ext/ruby/qtruby/examples/desktop/systray/images/trash.svg +58 -0
  629. data/ext/ruby/qtruby/examples/desktop/systray/main.rb +41 -0
  630. data/ext/ruby/qtruby/examples/desktop/systray/makefile +2 -0
  631. data/ext/ruby/qtruby/examples/desktop/systray/systray.qrc +7 -0
  632. data/ext/ruby/qtruby/examples/desktop/systray/window.rb +223 -0
  633. data/ext/ruby/qtruby/examples/dialogs/complexwizard/complexwizard.rb +140 -0
  634. data/ext/ruby/qtruby/examples/dialogs/complexwizard/licensewizard.rb +294 -0
  635. data/ext/ruby/qtruby/examples/dialogs/complexwizard/main.rb +31 -0
  636. data/ext/ruby/qtruby/examples/dialogs/configdialog/configdialog.rb +109 -0
  637. data/ext/ruby/qtruby/examples/dialogs/configdialog/images/config.png +0 -0
  638. data/ext/ruby/qtruby/examples/dialogs/configdialog/images/query.png +0 -0
  639. data/ext/ruby/qtruby/examples/dialogs/configdialog/images/update.png +0 -0
  640. data/ext/ruby/qtruby/examples/dialogs/configdialog/main.rb +31 -0
  641. data/ext/ruby/qtruby/examples/dialogs/configdialog/pages.rb +140 -0
  642. data/ext/ruby/qtruby/examples/dialogs/extension/finddialog.rb +89 -0
  643. data/ext/ruby/qtruby/examples/dialogs/extension/main.rb +31 -0
  644. data/ext/ruby/qtruby/examples/dialogs/findfiles/main.rb +32 -0
  645. data/ext/ruby/qtruby/examples/dialogs/findfiles/window.rb +177 -0
  646. data/ext/ruby/qtruby/examples/dialogs/simplewizard/classwizard.rb +374 -0
  647. data/ext/ruby/qtruby/examples/dialogs/simplewizard/main.rb +31 -0
  648. data/ext/ruby/qtruby/examples/dialogs/simplewizard/simplewizard.rb +110 -0
  649. data/ext/ruby/qtruby/examples/dialogs/standarddialogs/dialog.rb +340 -0
  650. data/ext/ruby/qtruby/examples/dialogs/standarddialogs/main.rb +31 -0
  651. data/ext/ruby/qtruby/examples/dialogs/tabdialog/main.rb +38 -0
  652. data/ext/ruby/qtruby/examples/dialogs/tabdialog/tabdialog.rb +178 -0
  653. data/ext/ruby/qtruby/examples/draganddrop/draggableicons/dragwidget.rb +125 -0
  654. data/ext/ruby/qtruby/examples/draganddrop/draggableicons/images/boat.png +0 -0
  655. data/ext/ruby/qtruby/examples/draganddrop/draggableicons/images/car.png +0 -0
  656. data/ext/ruby/qtruby/examples/draganddrop/draggableicons/images/house.png +0 -0
  657. data/ext/ruby/qtruby/examples/draganddrop/draggableicons/main.rb +41 -0
  658. data/ext/ruby/qtruby/examples/draganddrop/draggabletext/draglabel.rb +51 -0
  659. data/ext/ruby/qtruby/examples/draganddrop/draggabletext/dragwidget.rb +94 -0
  660. data/ext/ruby/qtruby/examples/draganddrop/draggabletext/main.rb +33 -0
  661. data/ext/ruby/qtruby/examples/draganddrop/draggabletext/words.txt +41 -0
  662. data/ext/ruby/qtruby/examples/draganddrop/dropsite/dropsitewidget.rb +98 -0
  663. data/ext/ruby/qtruby/examples/draganddrop/dropsite/dropsitewindow.rb +114 -0
  664. data/ext/ruby/qtruby/examples/draganddrop/dropsite/main.rb +33 -0
  665. data/ext/ruby/qtruby/examples/draganddrop/fridgemagnets/draglabel.rb +78 -0
  666. data/ext/ruby/qtruby/examples/draganddrop/fridgemagnets/dragwidget.rb +130 -0
  667. data/ext/ruby/qtruby/examples/draganddrop/fridgemagnets/main.rb +33 -0
  668. data/ext/ruby/qtruby/examples/draganddrop/fridgemagnets/words.txt +48 -0
  669. data/ext/ruby/qtruby/examples/draganddrop/puzzle/example.jpg +0 -0
  670. data/ext/ruby/qtruby/examples/draganddrop/puzzle/main.rb +33 -0
  671. data/ext/ruby/qtruby/examples/draganddrop/puzzle/mainwindow.rb +136 -0
  672. data/ext/ruby/qtruby/examples/draganddrop/puzzle/pieceslist.rb +95 -0
  673. data/ext/ruby/qtruby/examples/draganddrop/puzzle/puzzlewidget.rb +190 -0
  674. data/ext/ruby/qtruby/examples/graphicsview/collidingmice/images/cheese.jpg +0 -0
  675. data/ext/ruby/qtruby/examples/graphicsview/collidingmice/main.rb +53 -0
  676. data/ext/ruby/qtruby/examples/graphicsview/collidingmice/makefile +2 -0
  677. data/ext/ruby/qtruby/examples/graphicsview/collidingmice/mice.qrc +5 -0
  678. data/ext/ruby/qtruby/examples/graphicsview/collidingmice/mouse.rb +176 -0
  679. data/ext/ruby/qtruby/examples/graphicsview/dragdroprobot/coloritem.rb +86 -0
  680. data/ext/ruby/qtruby/examples/graphicsview/dragdroprobot/images/head.png +0 -0
  681. data/ext/ruby/qtruby/examples/graphicsview/dragdroprobot/main.rb +57 -0
  682. data/ext/ruby/qtruby/examples/graphicsview/dragdroprobot/makefile +2 -0
  683. data/ext/ruby/qtruby/examples/graphicsview/dragdroprobot/robot.qrc +5 -0
  684. data/ext/ruby/qtruby/examples/graphicsview/dragdroprobot/robot.rb +246 -0
  685. data/ext/ruby/qtruby/examples/itemviews/chart/chart.qrc +5 -0
  686. data/ext/ruby/qtruby/examples/itemviews/chart/main.rb +33 -0
  687. data/ext/ruby/qtruby/examples/itemviews/chart/mainwindow.rb +151 -0
  688. data/ext/ruby/qtruby/examples/itemviews/chart/makefile +2 -0
  689. data/ext/ruby/qtruby/examples/itemviews/chart/mydata.cht +8 -0
  690. data/ext/ruby/qtruby/examples/itemviews/chart/pieview.rb +516 -0
  691. data/ext/ruby/qtruby/examples/itemviews/chart/qtdata.cht +14 -0
  692. data/ext/ruby/qtruby/examples/itemviews/dirview/main.rb +39 -0
  693. data/ext/ruby/qtruby/examples/itemviews/pixelator/imagemodel.rb +51 -0
  694. data/ext/ruby/qtruby/examples/itemviews/pixelator/images.qrc +5 -0
  695. data/ext/ruby/qtruby/examples/itemviews/pixelator/images/qt.png +0 -0
  696. data/ext/ruby/qtruby/examples/itemviews/pixelator/main.rb +34 -0
  697. data/ext/ruby/qtruby/examples/itemviews/pixelator/mainwindow.rb +218 -0
  698. data/ext/ruby/qtruby/examples/itemviews/pixelator/makefile +3 -0
  699. data/ext/ruby/qtruby/examples/itemviews/pixelator/pixeldelegate.rb +67 -0
  700. data/ext/ruby/qtruby/examples/itemviews/puzzle/example.jpg +0 -0
  701. data/ext/ruby/qtruby/examples/itemviews/puzzle/main.rb +36 -0
  702. data/ext/ruby/qtruby/examples/itemviews/puzzle/mainwindow.rb +143 -0
  703. data/ext/ruby/qtruby/examples/itemviews/puzzle/piecesmodel.rb +174 -0
  704. data/ext/ruby/qtruby/examples/itemviews/puzzle/puzzlewidget.rb +192 -0
  705. data/ext/ruby/qtruby/examples/itemviews/simpledommodel/domitem.rb +62 -0
  706. data/ext/ruby/qtruby/examples/itemviews/simpledommodel/dommodel.rb +139 -0
  707. data/ext/ruby/qtruby/examples/itemviews/simpledommodel/main.rb +33 -0
  708. data/ext/ruby/qtruby/examples/itemviews/simpledommodel/mainwindow.rb +66 -0
  709. data/ext/ruby/qtruby/examples/itemviews/simpletreemodel/default.txt +40 -0
  710. data/ext/ruby/qtruby/examples/itemviews/simpletreemodel/main.rb +41 -0
  711. data/ext/ruby/qtruby/examples/itemviews/simpletreemodel/makefile +2 -0
  712. data/ext/ruby/qtruby/examples/itemviews/simpletreemodel/simpletreemodel.qrc +5 -0
  713. data/ext/ruby/qtruby/examples/itemviews/simpletreemodel/treeitem.rb +67 -0
  714. data/ext/ruby/qtruby/examples/itemviews/simpletreemodel/treemodel.rb +164 -0
  715. data/ext/ruby/qtruby/examples/itemviews/sortingmodel/default.txt +40 -0
  716. data/ext/ruby/qtruby/examples/itemviews/sortingmodel/main.rb +53 -0
  717. data/ext/ruby/qtruby/examples/itemviews/sortingmodel/treeitem.rb +73 -0
  718. data/ext/ruby/qtruby/examples/itemviews/sortingmodel/treemodel.rb +166 -0
  719. data/ext/ruby/qtruby/examples/itemviews/spinboxdelegate/main.rb +47 -0
  720. data/ext/ruby/qtruby/examples/itemviews/spinboxdelegate/spinboxdelegate.rb +62 -0
  721. data/ext/ruby/qtruby/examples/killerfilter/killerfilter.rb +55 -0
  722. data/ext/ruby/qtruby/examples/layouts/basiclayouts/dialog.rb +110 -0
  723. data/ext/ruby/qtruby/examples/layouts/basiclayouts/main.rb +31 -0
  724. data/ext/ruby/qtruby/examples/layouts/borderlayout/borderlayout.rb +190 -0
  725. data/ext/ruby/qtruby/examples/layouts/borderlayout/main.rb +32 -0
  726. data/ext/ruby/qtruby/examples/layouts/borderlayout/window.rb +52 -0
  727. data/ext/ruby/qtruby/examples/layouts/flowlayouts/flowlayout.rb +108 -0
  728. data/ext/ruby/qtruby/examples/layouts/flowlayouts/main.rb +32 -0
  729. data/ext/ruby/qtruby/examples/layouts/flowlayouts/window.rb +43 -0
  730. data/ext/ruby/qtruby/examples/mainwindows/application/images/copy.png +0 -0
  731. data/ext/ruby/qtruby/examples/mainwindows/application/images/cut.png +0 -0
  732. data/ext/ruby/qtruby/examples/mainwindows/application/images/new.png +0 -0
  733. data/ext/ruby/qtruby/examples/mainwindows/application/images/open.png +0 -0
  734. data/ext/ruby/qtruby/examples/mainwindows/application/images/paste.png +0 -0
  735. data/ext/ruby/qtruby/examples/mainwindows/application/images/save.png +0 -0
  736. data/ext/ruby/qtruby/examples/mainwindows/application/main.rb +32 -0
  737. data/ext/ruby/qtruby/examples/mainwindows/application/mainwindow.rb +285 -0
  738. data/ext/ruby/qtruby/examples/mainwindows/dockwidgets/images/new.png +0 -0
  739. data/ext/ruby/qtruby/examples/mainwindows/dockwidgets/images/print.png +0 -0
  740. data/ext/ruby/qtruby/examples/mainwindows/dockwidgets/images/save.png +0 -0
  741. data/ext/ruby/qtruby/examples/mainwindows/dockwidgets/images/undo.png +0 -0
  742. data/ext/ruby/qtruby/examples/mainwindows/dockwidgets/main.rb +32 -0
  743. data/ext/ruby/qtruby/examples/mainwindows/dockwidgets/mainwindow.rb +302 -0
  744. data/ext/ruby/qtruby/examples/mainwindows/mdi/images/copy.png +0 -0
  745. data/ext/ruby/qtruby/examples/mainwindows/mdi/images/cut.png +0 -0
  746. data/ext/ruby/qtruby/examples/mainwindows/mdi/images/new.png +0 -0
  747. data/ext/ruby/qtruby/examples/mainwindows/mdi/images/open.png +0 -0
  748. data/ext/ruby/qtruby/examples/mainwindows/mdi/images/paste.png +0 -0
  749. data/ext/ruby/qtruby/examples/mainwindows/mdi/images/save.png +0 -0
  750. data/ext/ruby/qtruby/examples/mainwindows/mdi/main.rb +32 -0
  751. data/ext/ruby/qtruby/examples/mainwindows/mdi/mainwindow.rb +363 -0
  752. data/ext/ruby/qtruby/examples/mainwindows/mdi/mdichild.rb +152 -0
  753. data/ext/ruby/qtruby/examples/mainwindows/menus/main.rb +32 -0
  754. data/ext/ruby/qtruby/examples/mainwindows/menus/mainwindow.rb +327 -0
  755. data/ext/ruby/qtruby/examples/mainwindows/recentfiles/main.rb +32 -0
  756. data/ext/ruby/qtruby/examples/mainwindows/recentfiles/mainwindow.rb +258 -0
  757. data/ext/ruby/qtruby/examples/mainwindows/sdi/images/copy.png +0 -0
  758. data/ext/ruby/qtruby/examples/mainwindows/sdi/images/cut.png +0 -0
  759. data/ext/ruby/qtruby/examples/mainwindows/sdi/images/new.png +0 -0
  760. data/ext/ruby/qtruby/examples/mainwindows/sdi/images/open.png +0 -0
  761. data/ext/ruby/qtruby/examples/mainwindows/sdi/images/paste.png +0 -0
  762. data/ext/ruby/qtruby/examples/mainwindows/sdi/images/save.png +0 -0
  763. data/ext/ruby/qtruby/examples/mainwindows/sdi/main.rb +32 -0
  764. data/ext/ruby/qtruby/examples/mainwindows/sdi/mainwindow.rb +335 -0
  765. data/ext/ruby/qtruby/examples/network/broadcastreceiver/main.rb +32 -0
  766. data/ext/ruby/qtruby/examples/network/broadcastreceiver/receiver.rb +64 -0
  767. data/ext/ruby/qtruby/examples/network/broadcastsender/main.rb +32 -0
  768. data/ext/ruby/qtruby/examples/network/broadcastsender/sender.rb +70 -0
  769. data/ext/ruby/qtruby/examples/network/fortuneclient/client.rb +150 -0
  770. data/ext/ruby/qtruby/examples/network/fortuneclient/main.rb +32 -0
  771. data/ext/ruby/qtruby/examples/network/fortuneserver/main.rb +32 -0
  772. data/ext/ruby/qtruby/examples/network/fortuneserver/server.rb +88 -0
  773. data/ext/ruby/qtruby/examples/network/ftp/ftpwindow.rb +254 -0
  774. data/ext/ruby/qtruby/examples/network/ftp/images/cdtoparent.png +0 -0
  775. data/ext/ruby/qtruby/examples/network/ftp/images/dir.png +0 -0
  776. data/ext/ruby/qtruby/examples/network/ftp/images/file.png +0 -0
  777. data/ext/ruby/qtruby/examples/network/ftp/main.rb +32 -0
  778. data/ext/ruby/qtruby/examples/network/http/httpwindow.rb +187 -0
  779. data/ext/ruby/qtruby/examples/network/http/main.rb +32 -0
  780. data/ext/ruby/qtruby/examples/network/loopback/dialog.rb +163 -0
  781. data/ext/ruby/qtruby/examples/network/loopback/main.rb +32 -0
  782. data/ext/ruby/qtruby/examples/opengl/grabber/glwidget.rb +265 -0
  783. data/ext/ruby/qtruby/examples/opengl/grabber/main.rb +32 -0
  784. data/ext/ruby/qtruby/examples/opengl/grabber/mainwindow.rb +189 -0
  785. data/ext/ruby/qtruby/examples/opengl/hellogl/glwidget.rb +226 -0
  786. data/ext/ruby/qtruby/examples/opengl/hellogl/main.rb +32 -0
  787. data/ext/ruby/qtruby/examples/opengl/hellogl/window.rb +66 -0
  788. data/ext/ruby/qtruby/examples/opengl/textures/glwidget.rb +151 -0
  789. data/ext/ruby/qtruby/examples/opengl/textures/images/side1.png +0 -0
  790. data/ext/ruby/qtruby/examples/opengl/textures/images/side2.png +0 -0
  791. data/ext/ruby/qtruby/examples/opengl/textures/images/side3.png +0 -0
  792. data/ext/ruby/qtruby/examples/opengl/textures/images/side4.png +0 -0
  793. data/ext/ruby/qtruby/examples/opengl/textures/images/side5.png +0 -0
  794. data/ext/ruby/qtruby/examples/opengl/textures/images/side6.png +0 -0
  795. data/ext/ruby/qtruby/examples/opengl/textures/main.rb +32 -0
  796. data/ext/ruby/qtruby/examples/opengl/textures/window.rb +77 -0
  797. data/ext/ruby/qtruby/examples/painting/basicdrawing/images/brick.png +0 -0
  798. data/ext/ruby/qtruby/examples/painting/basicdrawing/images/qt-logo.png +0 -0
  799. data/ext/ruby/qtruby/examples/painting/basicdrawing/main.rb +32 -0
  800. data/ext/ruby/qtruby/examples/painting/basicdrawing/renderarea.rb +166 -0
  801. data/ext/ruby/qtruby/examples/painting/basicdrawing/window.rb +215 -0
  802. data/ext/ruby/qtruby/examples/painting/concentriccircles/circlewidget.rb +88 -0
  803. data/ext/ruby/qtruby/examples/painting/concentriccircles/main.rb +32 -0
  804. data/ext/ruby/qtruby/examples/painting/concentriccircles/window.rb +72 -0
  805. data/ext/ruby/qtruby/examples/painting/fontsampler/main.rb +32 -0
  806. data/ext/ruby/qtruby/examples/painting/fontsampler/mainwindow.rb +368 -0
  807. data/ext/ruby/qtruby/examples/painting/fontsampler/mainwindowbase.ui +136 -0
  808. data/ext/ruby/qtruby/examples/painting/fontsampler/makefile +8 -0
  809. data/ext/ruby/qtruby/examples/painting/fontsampler/previewdialog.rb +256 -0
  810. data/ext/ruby/qtruby/examples/painting/fontsampler/previewdialogbase.ui +224 -0
  811. data/ext/ruby/qtruby/examples/painting/fontsampler/previewlabel.rb +43 -0
  812. data/ext/ruby/qtruby/examples/painting/imagecomposition/imagecomposer.rb +152 -0
  813. data/ext/ruby/qtruby/examples/painting/imagecomposition/imagecomposition.qrc +6 -0
  814. data/ext/ruby/qtruby/examples/painting/imagecomposition/images/background.png +0 -0
  815. data/ext/ruby/qtruby/examples/painting/imagecomposition/images/blackrectangle.png +0 -0
  816. data/ext/ruby/qtruby/examples/painting/imagecomposition/images/butterfly.png +0 -0
  817. data/ext/ruby/qtruby/examples/painting/imagecomposition/images/checker.png +0 -0
  818. data/ext/ruby/qtruby/examples/painting/imagecomposition/main.rb +33 -0
  819. data/ext/ruby/qtruby/examples/painting/imagecomposition/makefile +2 -0
  820. data/ext/ruby/qtruby/examples/painting/painterpaths/main.rb +32 -0
  821. data/ext/ruby/qtruby/examples/painting/painterpaths/renderarea.rb +97 -0
  822. data/ext/ruby/qtruby/examples/painting/painterpaths/window.rb +247 -0
  823. data/ext/ruby/qtruby/examples/painting/svgviewer/files/bubbles.svg +212 -0
  824. data/ext/ruby/qtruby/examples/painting/svgviewer/files/cubic.svg +77 -0
  825. data/ext/ruby/qtruby/examples/painting/svgviewer/files/spheres.svg +79 -0
  826. data/ext/ruby/qtruby/examples/painting/svgviewer/main.rb +38 -0
  827. data/ext/ruby/qtruby/examples/painting/svgviewer/mainwindow.rb +99 -0
  828. data/ext/ruby/qtruby/examples/painting/svgviewer/makefile +2 -0
  829. data/ext/ruby/qtruby/examples/painting/svgviewer/svgview.rb +156 -0
  830. data/ext/ruby/qtruby/examples/painting/svgviewer/svgviewer.qrc +6 -0
  831. data/ext/ruby/qtruby/examples/painting/svgviewer/svgwindow.rb +87 -0
  832. data/ext/ruby/qtruby/examples/painting/transformations/main.rb +32 -0
  833. data/ext/ruby/qtruby/examples/painting/transformations/renderarea.rb +127 -0
  834. data/ext/ruby/qtruby/examples/painting/transformations/window.rb +153 -0
  835. data/ext/ruby/qtruby/examples/passivepopup/passivepopup.rb +38 -0
  836. data/ext/ruby/qtruby/examples/qdbus/chat/chat.rb +146 -0
  837. data/ext/ruby/qtruby/examples/qdbus/chat/chat_adaptor.rb +12 -0
  838. data/ext/ruby/qtruby/examples/qdbus/chat/chat_interface.rb +13 -0
  839. data/ext/ruby/qtruby/examples/qdbus/chat/chatmainwindow.ui +184 -0
  840. data/ext/ruby/qtruby/examples/qdbus/chat/chatsetnickname.ui +145 -0
  841. data/ext/ruby/qtruby/examples/qdbus/chat/makefile +8 -0
  842. data/ext/ruby/qtruby/examples/qdbus/complexpingpong/complexping.rb +92 -0
  843. data/ext/ruby/qtruby/examples/qdbus/complexpingpong/complexpong.rb +83 -0
  844. data/ext/ruby/qtruby/examples/qdbus/complexpingpong/ping-common.rb +1 -0
  845. data/ext/ruby/qtruby/examples/qdbus/listnames/listnames.rb +69 -0
  846. data/ext/ruby/qtruby/examples/qdbus/pingpong/ping-common.rb +1 -0
  847. data/ext/ruby/qtruby/examples/qdbus/pingpong/ping.rb +52 -0
  848. data/ext/ruby/qtruby/examples/qdbus/pingpong/pong.rb +55 -0
  849. data/ext/ruby/qtruby/examples/qdbus/remotecontrolledcar/car/car.rb +151 -0
  850. data/ext/ruby/qtruby/examples/qdbus/remotecontrolledcar/car/main.rb +50 -0
  851. data/ext/ruby/qtruby/examples/qdbus/remotecontrolledcar/controller/controller.rb +66 -0
  852. data/ext/ruby/qtruby/examples/qdbus/remotecontrolledcar/controller/controller.ui +61 -0
  853. data/ext/ruby/qtruby/examples/qdbus/remotecontrolledcar/controller/main.rb +32 -0
  854. data/ext/ruby/qtruby/examples/qdbus/remotecontrolledcar/controller/makefile +2 -0
  855. data/ext/ruby/qtruby/examples/qtscribble/scribble.rb +270 -0
  856. data/ext/ruby/qtruby/examples/richtext/calendar/main.rb +33 -0
  857. data/ext/ruby/qtruby/examples/richtext/calendar/mainwindow.rb +173 -0
  858. data/ext/ruby/qtruby/examples/richtext/orderform/detailsdialog.rb +130 -0
  859. data/ext/ruby/qtruby/examples/richtext/orderform/main.rb +34 -0
  860. data/ext/ruby/qtruby/examples/richtext/orderform/mainwindow.rb +194 -0
  861. data/ext/ruby/qtruby/examples/richtext/syntaxhighlighter/examples/example +79 -0
  862. data/ext/ruby/qtruby/examples/richtext/syntaxhighlighter/highlighter.rb +90 -0
  863. data/ext/ruby/qtruby/examples/richtext/syntaxhighlighter/main.rb +34 -0
  864. data/ext/ruby/qtruby/examples/richtext/syntaxhighlighter/mainwindow.rb +105 -0
  865. data/ext/ruby/qtruby/examples/ruboids/Manifest +26 -0
  866. data/ext/ruby/qtruby/examples/ruboids/README +53 -0
  867. data/ext/ruby/qtruby/examples/ruboids/TODO +29 -0
  868. data/ext/ruby/qtruby/examples/ruboids/boids.properties +33 -0
  869. data/ext/ruby/qtruby/examples/ruboids/generateManifest.rb +42 -0
  870. data/ext/ruby/qtruby/examples/ruboids/index.html +147 -0
  871. data/ext/ruby/qtruby/examples/ruboids/release.rb +152 -0
  872. data/ext/ruby/qtruby/examples/ruboids/ruboids/Boid.rb +141 -0
  873. data/ext/ruby/qtruby/examples/ruboids/ruboids/BoidView.rb +159 -0
  874. data/ext/ruby/qtruby/examples/ruboids/ruboids/Camera.rb +24 -0
  875. data/ext/ruby/qtruby/examples/ruboids/ruboids/CameraDialog.rb +218 -0
  876. data/ext/ruby/qtruby/examples/ruboids/ruboids/Canvas.rb +143 -0
  877. data/ext/ruby/qtruby/examples/ruboids/ruboids/Cloud.rb +61 -0
  878. data/ext/ruby/qtruby/examples/ruboids/ruboids/CloudView.rb +54 -0
  879. data/ext/ruby/qtruby/examples/ruboids/ruboids/Flock.rb +47 -0
  880. data/ext/ruby/qtruby/examples/ruboids/ruboids/Graphics.rb +278 -0
  881. data/ext/ruby/qtruby/examples/ruboids/ruboids/Params.rb +87 -0
  882. data/ext/ruby/qtruby/examples/ruboids/ruboids/Point.rb +153 -0
  883. data/ext/ruby/qtruby/examples/ruboids/ruboids/Thing.rb +34 -0
  884. data/ext/ruby/qtruby/examples/ruboids/ruboids/Triangle.rb +21 -0
  885. data/ext/ruby/qtruby/examples/ruboids/ruboids/View.rb +88 -0
  886. data/ext/ruby/qtruby/examples/ruboids/ruboids/World.rb +82 -0
  887. data/ext/ruby/qtruby/examples/ruboids/ruboids/WorldWindow.rb +52 -0
  888. data/ext/ruby/qtruby/examples/ruboids/ruboids/info.rb +12 -0
  889. data/ext/ruby/qtruby/examples/ruboids/ruboids/ruboids.rb +29 -0
  890. data/ext/ruby/qtruby/examples/textedit/textedit.rb +150 -0
  891. data/ext/ruby/qtruby/examples/tutorial/t1/t1.rb +10 -0
  892. data/ext/ruby/qtruby/examples/tutorial/t10/cannon.rb +72 -0
  893. data/ext/ruby/qtruby/examples/tutorial/t10/lcdrange.rb +45 -0
  894. data/ext/ruby/qtruby/examples/tutorial/t10/t10.rb +55 -0
  895. data/ext/ruby/qtruby/examples/tutorial/t11/cannon.rb +124 -0
  896. data/ext/ruby/qtruby/examples/tutorial/t11/lcdrange.rb +45 -0
  897. data/ext/ruby/qtruby/examples/tutorial/t11/t11.rb +65 -0
  898. data/ext/ruby/qtruby/examples/tutorial/t12/cannon.rb +158 -0
  899. data/ext/ruby/qtruby/examples/tutorial/t12/lcdrange.rb +59 -0
  900. data/ext/ruby/qtruby/examples/tutorial/t12/t12.rb +66 -0
  901. data/ext/ruby/qtruby/examples/tutorial/t13/cannon.rb +208 -0
  902. data/ext/ruby/qtruby/examples/tutorial/t13/gamebrd.rb +113 -0
  903. data/ext/ruby/qtruby/examples/tutorial/t13/lcdrange.rb +60 -0
  904. data/ext/ruby/qtruby/examples/tutorial/t13/t13.rb +11 -0
  905. data/ext/ruby/qtruby/examples/tutorial/t14/cannon.rb +263 -0
  906. data/ext/ruby/qtruby/examples/tutorial/t14/gamebrd.rb +123 -0
  907. data/ext/ruby/qtruby/examples/tutorial/t14/lcdrange.rb +63 -0
  908. data/ext/ruby/qtruby/examples/tutorial/t14/t14.rb +11 -0
  909. data/ext/ruby/qtruby/examples/tutorial/t2/t2.rb +16 -0
  910. data/ext/ruby/qtruby/examples/tutorial/t3/t3.rb +18 -0
  911. data/ext/ruby/qtruby/examples/tutorial/t4/t4.rb +25 -0
  912. data/ext/ruby/qtruby/examples/tutorial/t5/t5.rb +37 -0
  913. data/ext/ruby/qtruby/examples/tutorial/t6/t6.rb +52 -0
  914. data/ext/ruby/qtruby/examples/tutorial/t7/lcdrange.rb +32 -0
  915. data/ext/ruby/qtruby/examples/tutorial/t7/t7.rb +42 -0
  916. data/ext/ruby/qtruby/examples/tutorial/t8/cannon.rb +38 -0
  917. data/ext/ruby/qtruby/examples/tutorial/t8/lcdrange.rb +45 -0
  918. data/ext/ruby/qtruby/examples/tutorial/t8/t8.rb +43 -0
  919. data/ext/ruby/qtruby/examples/tutorial/t9/cannon.rb +45 -0
  920. data/ext/ruby/qtruby/examples/tutorial/t9/lcdrange.rb +46 -0
  921. data/ext/ruby/qtruby/examples/tutorial/t9/t9.rb +43 -0
  922. data/ext/ruby/qtruby/examples/widgets/analogclock/analogclock.rb +94 -0
  923. data/ext/ruby/qtruby/examples/widgets/analogclock/main.rb +9 -0
  924. data/ext/ruby/qtruby/examples/widgets/calculator/button.rb +45 -0
  925. data/ext/ruby/qtruby/examples/widgets/calculator/calculator.rb +382 -0
  926. data/ext/ruby/qtruby/examples/widgets/calculator/main.rb +32 -0
  927. data/ext/ruby/qtruby/examples/widgets/charactermap/characterwidget.rb +110 -0
  928. data/ext/ruby/qtruby/examples/widgets/charactermap/main.rb +32 -0
  929. data/ext/ruby/qtruby/examples/widgets/charactermap/mainwindow.rb +118 -0
  930. data/ext/ruby/qtruby/examples/widgets/digitalclock/digitalclock.rb +30 -0
  931. data/ext/ruby/qtruby/examples/widgets/digitalclock/main.rb +9 -0
  932. data/ext/ruby/qtruby/examples/widgets/groupbox/main.rb +32 -0
  933. data/ext/ruby/qtruby/examples/widgets/groupbox/window.rb +134 -0
  934. data/ext/ruby/qtruby/examples/widgets/icons/iconpreviewarea.rb +111 -0
  935. data/ext/ruby/qtruby/examples/widgets/icons/iconsizespinbox.rb +39 -0
  936. data/ext/ruby/qtruby/examples/widgets/icons/imagedelegate.rb +73 -0
  937. data/ext/ruby/qtruby/examples/widgets/icons/images/designer.png +0 -0
  938. data/ext/ruby/qtruby/examples/widgets/icons/images/find_disabled.png +0 -0
  939. data/ext/ruby/qtruby/examples/widgets/icons/images/find_normal.png +0 -0
  940. data/ext/ruby/qtruby/examples/widgets/icons/images/monkey_off_128x128.png +0 -0
  941. data/ext/ruby/qtruby/examples/widgets/icons/images/monkey_off_16x16.png +0 -0
  942. data/ext/ruby/qtruby/examples/widgets/icons/images/monkey_off_32x32.png +0 -0
  943. data/ext/ruby/qtruby/examples/widgets/icons/images/monkey_off_64x64.png +0 -0
  944. data/ext/ruby/qtruby/examples/widgets/icons/images/monkey_on_128x128.png +0 -0
  945. data/ext/ruby/qtruby/examples/widgets/icons/images/monkey_on_16x16.png +0 -0
  946. data/ext/ruby/qtruby/examples/widgets/icons/images/monkey_on_32x32.png +0 -0
  947. data/ext/ruby/qtruby/examples/widgets/icons/images/monkey_on_64x64.png +0 -0
  948. data/ext/ruby/qtruby/examples/widgets/icons/images/qtopia_16x16.png +0 -0
  949. data/ext/ruby/qtruby/examples/widgets/icons/images/qtopia_32x32.png +0 -0
  950. data/ext/ruby/qtruby/examples/widgets/icons/images/qtopia_48x48.png +0 -0
  951. data/ext/ruby/qtruby/examples/widgets/icons/main.rb +32 -0
  952. data/ext/ruby/qtruby/examples/widgets/icons/mainwindow.rb +351 -0
  953. data/ext/ruby/qtruby/examples/widgets/imageviewer/imageviewer.rb +219 -0
  954. data/ext/ruby/qtruby/examples/widgets/imageviewer/main.rb +32 -0
  955. data/ext/ruby/qtruby/examples/widgets/lineedits/main.rb +32 -0
  956. data/ext/ruby/qtruby/examples/widgets/lineedits/window.rb +199 -0
  957. data/ext/ruby/qtruby/examples/widgets/movie/images/open.png +0 -0
  958. data/ext/ruby/qtruby/examples/widgets/movie/images/pause.png +0 -0
  959. data/ext/ruby/qtruby/examples/widgets/movie/images/play.png +0 -0
  960. data/ext/ruby/qtruby/examples/widgets/movie/images/quit.png +0 -0
  961. data/ext/ruby/qtruby/examples/widgets/movie/images/stop.png +0 -0
  962. data/ext/ruby/qtruby/examples/widgets/movie/main.rb +32 -0
  963. data/ext/ruby/qtruby/examples/widgets/movie/movieplayer.rb +201 -0
  964. data/ext/ruby/qtruby/examples/widgets/movie/movies/fire.mng +0 -0
  965. data/ext/ruby/qtruby/examples/widgets/screenshot/main.rb +32 -0
  966. data/ext/ruby/qtruby/examples/widgets/screenshot/screenshot.rb +155 -0
  967. data/ext/ruby/qtruby/examples/widgets/scribble/main.rb +32 -0
  968. data/ext/ruby/qtruby/examples/widgets/scribble/mainwindow.rb +202 -0
  969. data/ext/ruby/qtruby/examples/widgets/scribble/scribblearea.rb +154 -0
  970. data/ext/ruby/qtruby/examples/widgets/sliders/main.rb +32 -0
  971. data/ext/ruby/qtruby/examples/widgets/sliders/slidersgroup.rb +97 -0
  972. data/ext/ruby/qtruby/examples/widgets/sliders/window.rb +124 -0
  973. data/ext/ruby/qtruby/examples/widgets/spinboxes/main.rb +32 -0
  974. data/ext/ruby/qtruby/examples/widgets/spinboxes/window.rb +213 -0
  975. data/ext/ruby/qtruby/examples/widgets/tetrix/main.rb +33 -0
  976. data/ext/ruby/qtruby/examples/widgets/tetrix/tetrixboard.rb +346 -0
  977. data/ext/ruby/qtruby/examples/widgets/tetrix/tetrixpiece.rb +135 -0
  978. data/ext/ruby/qtruby/examples/widgets/tetrix/tetrixwindow.rb +88 -0
  979. data/ext/ruby/qtruby/examples/widgets/tooltips/images/circle.png +0 -0
  980. data/ext/ruby/qtruby/examples/widgets/tooltips/images/square.png +0 -0
  981. data/ext/ruby/qtruby/examples/widgets/tooltips/images/triangle.png +0 -0
  982. data/ext/ruby/qtruby/examples/widgets/tooltips/main.rb +32 -0
  983. data/ext/ruby/qtruby/examples/widgets/tooltips/shapeitem.rb +31 -0
  984. data/ext/ruby/qtruby/examples/widgets/tooltips/sortingbox.rb +222 -0
  985. data/ext/ruby/qtruby/examples/widgets/wiggly/dialog.rb +48 -0
  986. data/ext/ruby/qtruby/examples/widgets/wiggly/main.rb +9 -0
  987. data/ext/ruby/qtruby/examples/widgets/wiggly/wigglywidget.rb +76 -0
  988. data/ext/ruby/qtruby/examples/widgets/windowflags/controllerwindow.rb +195 -0
  989. data/ext/ruby/qtruby/examples/widgets/windowflags/main.rb +32 -0
  990. data/ext/ruby/qtruby/examples/widgets/windowflags/previewwindow.rb +103 -0
  991. data/ext/ruby/qtruby/examples/xml/dombookmarks/frank.xbel +230 -0
  992. data/ext/ruby/qtruby/examples/xml/dombookmarks/jennifer.xbel +93 -0
  993. data/ext/ruby/qtruby/examples/xml/dombookmarks/main.rb +34 -0
  994. data/ext/ruby/qtruby/examples/xml/dombookmarks/mainwindow.rb +129 -0
  995. data/ext/ruby/qtruby/examples/xml/dombookmarks/xbeltree.rb +172 -0
  996. data/ext/ruby/qtruby/examples/xml/saxbookmarks/frank.xbel +230 -0
  997. data/ext/ruby/qtruby/examples/xml/saxbookmarks/jennifer.xbel +93 -0
  998. data/ext/ruby/qtruby/examples/xml/saxbookmarks/main.rb +34 -0
  999. data/ext/ruby/qtruby/examples/xml/saxbookmarks/mainwindow.rb +144 -0
  1000. data/ext/ruby/qtruby/examples/xml/saxbookmarks/xbelgenerator.rb +95 -0
  1001. data/ext/ruby/qtruby/examples/xml/saxbookmarks/xbelhandler.rb +122 -0
  1002. data/ext/ruby/qtruby/rails_support/CMakeLists.txt +1 -0
  1003. data/ext/ruby/qtruby/rails_support/active_item_model.rb +234 -0
  1004. data/ext/ruby/qtruby/rails_support/active_table_model.rb +122 -0
  1005. data/ext/ruby/qtruby/src/CMakeLists.txt +103 -0
  1006. data/ext/ruby/qtruby/src/Qt.cpp +1279 -0
  1007. data/ext/ruby/qtruby/src/extconf.rb +11 -0
  1008. data/ext/ruby/qtruby/src/handlers.cpp +2622 -0
  1009. data/ext/ruby/qtruby/src/lib/CMakeLists.txt +16 -0
  1010. data/ext/ruby/qtruby/src/lib/Qt.rb +1 -0
  1011. data/ext/ruby/qtruby/src/lib/Qt/CMakeLists.txt +9 -0
  1012. data/ext/ruby/qtruby/src/lib/Qt/qtruby4.rb +3177 -0
  1013. data/ext/ruby/qtruby/src/lib/Qt3.rb +6 -0
  1014. data/ext/ruby/qtruby/src/lib/Qt4.rb +6 -0
  1015. data/ext/ruby/qtruby/src/marshall.h +66 -0
  1016. data/ext/ruby/qtruby/src/marshall_basetypes.h +208 -0
  1017. data/ext/ruby/qtruby/src/marshall_complex.h +175 -0
  1018. data/ext/ruby/qtruby/src/marshall_macros.h +647 -0
  1019. data/ext/ruby/qtruby/src/marshall_primitives.h +290 -0
  1020. data/ext/ruby/qtruby/src/marshall_types.cpp +815 -0
  1021. data/ext/ruby/qtruby/src/marshall_types.h +240 -0
  1022. data/ext/ruby/qtruby/src/qtruby.cpp +2483 -0
  1023. data/ext/ruby/qtruby/src/qtruby.h +185 -0
  1024. data/ext/ruby/qtruby/src/smokeruby.h +164 -0
  1025. data/ext/ruby/qtruby/test/opoverloading.rb +46 -0
  1026. data/ext/ruby/qtruby/test/unittests.rb +151 -0
  1027. data/ext/ruby/qtruby/tools/CMakeLists.txt +2 -0
  1028. data/ext/ruby/qtruby/tools/rbrcc/CMakeLists.txt +6 -0
  1029. data/ext/ruby/qtruby/tools/rbrcc/Messages.sh +7 -0
  1030. data/ext/ruby/qtruby/tools/rbrcc/main.cpp +173 -0
  1031. data/ext/ruby/qtruby/tools/rbrcc/rbrcc.pro +14 -0
  1032. data/ext/ruby/qtruby/tools/rbrcc/rcc.cpp +648 -0
  1033. data/ext/ruby/qtruby/tools/rbrcc/rcc.h +165 -0
  1034. data/ext/ruby/qtruby/tools/rbuic/CMakeLists.txt +35 -0
  1035. data/ext/ruby/qtruby/tools/rbuic/LICENSE.GPL +280 -0
  1036. data/ext/ruby/qtruby/tools/rbuic/Messages.sh +7 -0
  1037. data/ext/ruby/qtruby/tools/rbuic/TODO +4 -0
  1038. data/ext/ruby/qtruby/tools/rbuic/customwidgetsinfo.cpp +106 -0
  1039. data/ext/ruby/qtruby/tools/rbuic/customwidgetsinfo.h +95 -0
  1040. data/ext/ruby/qtruby/tools/rbuic/databaseinfo.cpp +102 -0
  1041. data/ext/ruby/qtruby/tools/rbuic/databaseinfo.h +85 -0
  1042. data/ext/ruby/qtruby/tools/rbuic/driver.cpp +384 -0
  1043. data/ext/ruby/qtruby/tools/rbuic/driver.h +141 -0
  1044. data/ext/ruby/qtruby/tools/rbuic/globaldefs.h +60 -0
  1045. data/ext/ruby/qtruby/tools/rbuic/main.cpp +201 -0
  1046. data/ext/ruby/qtruby/tools/rbuic/option.h +107 -0
  1047. data/ext/ruby/qtruby/tools/rbuic/rbuic.pri +23 -0
  1048. data/ext/ruby/qtruby/tools/rbuic/rbuic4.pro +43 -0
  1049. data/ext/ruby/qtruby/tools/rbuic/ruby/rbextractimages.cpp +150 -0
  1050. data/ext/ruby/qtruby/tools/rbuic/ruby/rbextractimages.h +83 -0
  1051. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwritedeclaration.cpp +217 -0
  1052. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwritedeclaration.h +85 -0
  1053. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteicondata.cpp +185 -0
  1054. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteicondata.h +86 -0
  1055. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteicondeclaration.cpp +88 -0
  1056. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteicondeclaration.h +83 -0
  1057. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteiconinitialization.cpp +126 -0
  1058. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteiconinitialization.h +87 -0
  1059. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteinitialization.cpp +2478 -0
  1060. data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteinitialization.h +314 -0
  1061. data/ext/ruby/qtruby/tools/rbuic/ruby/ruby.pri +18 -0
  1062. data/ext/ruby/qtruby/tools/rbuic/treewalker.cpp +318 -0
  1063. data/ext/ruby/qtruby/tools/rbuic/treewalker.h +139 -0
  1064. data/ext/ruby/qtruby/tools/rbuic/ui4.cpp +7623 -0
  1065. data/ext/ruby/qtruby/tools/rbuic/ui4.h +3180 -0
  1066. data/ext/ruby/qtruby/tools/rbuic/uic.cpp +438 -0
  1067. data/ext/ruby/qtruby/tools/rbuic/uic.h +154 -0
  1068. data/ext/ruby/qtruby/tools/rbuic/utils.h +125 -0
  1069. data/ext/ruby/qtruby/tools/rbuic/validator.cpp +100 -0
  1070. data/ext/ruby/qtruby/tools/rbuic/validator.h +80 -0
  1071. data/ext/ruby/qtscript/CMakeLists.txt +19 -0
  1072. data/ext/ruby/qtscript/qtscript.cpp +82 -0
  1073. data/ext/ruby/qtscript/qtscript.rb +40 -0
  1074. data/ext/ruby/qtscript/qtscripthandlers.cpp +36 -0
  1075. data/ext/ruby/qtscript/smokedata.cpp +1403 -0
  1076. data/ext/ruby/qttest/CMakeLists.txt +18 -0
  1077. data/ext/ruby/qttest/ChangeLog +9 -0
  1078. data/ext/ruby/qttest/examples/myfirsttest.rb +30 -0
  1079. data/ext/ruby/qttest/qttest.cpp +82 -0
  1080. data/ext/ruby/qttest/qttest.rb +166 -0
  1081. data/ext/ruby/qttest/qttesthandlers.cpp +35 -0
  1082. data/ext/ruby/qtuitools/CMakeLists.txt +16 -0
  1083. data/ext/ruby/qtuitools/qtuitools.cpp +82 -0
  1084. data/ext/ruby/qtuitools/qtuitools.rb +17 -0
  1085. data/ext/ruby/qtuitools/qtuitoolshandlers.cpp +31 -0
  1086. data/ext/ruby/qtwebkit/CMakeLists.txt +17 -0
  1087. data/ext/ruby/qtwebkit/qtwebkit.cpp +66 -0
  1088. data/ext/ruby/qtwebkit/qtwebkit.rb +17 -0
  1089. data/ext/ruby/qtwebkit/qtwebkithandlers.cpp +39 -0
  1090. data/ext/smoke/CMakeLists.txt +35 -0
  1091. data/ext/smoke/deptool/CMakeLists.txt +7 -0
  1092. data/ext/smoke/deptool/main.cpp +128 -0
  1093. data/ext/smoke/qt_smoke.h +16 -0
  1094. data/ext/smoke/qtcore/CMakeLists.txt +88 -0
  1095. data/ext/smoke/qtcore/QtGuess.txt +181 -0
  1096. data/ext/smoke/qtcore/config.xml.cmake +10 -0
  1097. data/ext/smoke/qtcore/qt-config.xml.cmake +21 -0
  1098. data/ext/smoke/qtcore/qtcore_includes.h +1 -0
  1099. data/ext/smoke/qtcore/smokeconfig.xml +189 -0
  1100. data/ext/smoke/qtcore/tests/CMakeLists.txt +13 -0
  1101. data/ext/smoke/qtcore/tests/test.cpp +846 -0
  1102. data/ext/smoke/qtcore_smoke.h +16 -0
  1103. data/ext/smoke/qtdbus/CMakeLists.txt +38 -0
  1104. data/ext/smoke/qtdbus/config.xml.cmake +11 -0
  1105. data/ext/smoke/qtdbus/qtdbus_includes.h +2 -0
  1106. data/ext/smoke/qtdbus/smokeconfig.xml +63 -0
  1107. data/ext/smoke/qtdbus_smoke.h +16 -0
  1108. data/ext/smoke/qtgui/CMakeLists.txt +76 -0
  1109. data/ext/smoke/qtgui/config.xml.cmake +11 -0
  1110. data/ext/smoke/qtgui/qtgui_includes.h +7 -0
  1111. data/ext/smoke/qtgui/smokeconfig.xml +490 -0
  1112. data/ext/smoke/qtgui_smoke.h +16 -0
  1113. data/ext/smoke/qtmultimedia/CMakeLists.txt +42 -0
  1114. data/ext/smoke/qtmultimedia/config.xml.cmake +12 -0
  1115. data/ext/smoke/qtmultimedia/qtmultimedia_includes.h +3 -0
  1116. data/ext/smoke/qtmultimedia/smokeconfig.xml +50 -0
  1117. data/ext/smoke/qtmultimedia_smoke.h +16 -0
  1118. data/ext/smoke/qtnetwork/CMakeLists.txt +38 -0
  1119. data/ext/smoke/qtnetwork/config.xml.cmake +11 -0
  1120. data/ext/smoke/qtnetwork/qtnetwork_includes.h +2 -0
  1121. data/ext/smoke/qtnetwork/smokeconfig.xml +76 -0
  1122. data/ext/smoke/qtnetwork_smoke.h +16 -0
  1123. data/ext/smoke/qtopengl/CMakeLists.txt +43 -0
  1124. data/ext/smoke/qtopengl/config.xml.cmake +12 -0
  1125. data/ext/smoke/qtopengl/qtopengl_includes.h +3 -0
  1126. data/ext/smoke/qtopengl/smokeconfig.xml +56 -0
  1127. data/ext/smoke/qtopengl_smoke.h +16 -0
  1128. data/ext/smoke/qtscript/CMakeLists.txt +31 -0
  1129. data/ext/smoke/qtscript/config.xml.cmake +11 -0
  1130. data/ext/smoke/qtscript/qtscript_includes.h +14 -0
  1131. data/ext/smoke/qtscript/smokeconfig.xml +39 -0
  1132. data/ext/smoke/qtscript_smoke.h +16 -0
  1133. data/ext/smoke/qtsql/CMakeLists.txt +41 -0
  1134. data/ext/smoke/qtsql/config.xml.cmake +11 -0
  1135. data/ext/smoke/qtsql/qtsql_includes.h +2 -0
  1136. data/ext/smoke/qtsql/smokeconfig.xml +56 -0
  1137. data/ext/smoke/qtsql_smoke.h +16 -0
  1138. data/ext/smoke/qtsvg/CMakeLists.txt +43 -0
  1139. data/ext/smoke/qtsvg/config.xml.cmake +12 -0
  1140. data/ext/smoke/qtsvg/qtsvg_includes.h +3 -0
  1141. data/ext/smoke/qtsvg/smokeconfig.xml +45 -0
  1142. data/ext/smoke/qtsvg_smoke.h +16 -0
  1143. data/ext/smoke/qttest/CMakeLists.txt +35 -0
  1144. data/ext/smoke/qttest/config.xml.cmake +12 -0
  1145. data/ext/smoke/qttest/qttest_includes.h +14 -0
  1146. data/ext/smoke/qttest/smokeconfig.xml +36 -0
  1147. data/ext/smoke/qttest_smoke.h +16 -0
  1148. data/ext/smoke/qtuitools/CMakeLists.txt +30 -0
  1149. data/ext/smoke/qtuitools/config.xml.cmake +12 -0
  1150. data/ext/smoke/qtuitools/qtuitools_includes.h +1 -0
  1151. data/ext/smoke/qtuitools/smokeconfig.xml +20 -0
  1152. data/ext/smoke/qtuitools_smoke.h +16 -0
  1153. data/ext/smoke/qtwebkit/CMakeLists.txt +36 -0
  1154. data/ext/smoke/qtwebkit/config.xml.cmake +11 -0
  1155. data/ext/smoke/qtwebkit/qtwebkit_includes.h +1 -0
  1156. data/ext/smoke/qtwebkit/smokeconfig.xml +45 -0
  1157. data/ext/smoke/qtwebkit_smoke.h +16 -0
  1158. data/ext/smoke/qtxml/CMakeLists.txt +41 -0
  1159. data/ext/smoke/qtxml/config.xml.cmake +11 -0
  1160. data/ext/smoke/qtxml/qtxml_includes.h +2 -0
  1161. data/ext/smoke/qtxml/smokeconfig.xml +70 -0
  1162. data/ext/smoke/qtxml_smoke.h +16 -0
  1163. data/ext/smoke/qtxmlpatterns/CMakeLists.txt +42 -0
  1164. data/ext/smoke/qtxmlpatterns/config.xml.cmake +12 -0
  1165. data/ext/smoke/qtxmlpatterns/qtxmlpatterns_includes.h +3 -0
  1166. data/ext/smoke/qtxmlpatterns/smokeconfig.xml +80 -0
  1167. data/ext/smoke/qtxmlpatterns_smoke.h +16 -0
  1168. data/ext/smoke/smoke.h +557 -0
  1169. data/ext/smoke/smokeapi/CMakeLists.txt +9 -0
  1170. data/ext/smoke/smokeapi/main.cpp +309 -0
  1171. data/ext/smoke/smokebase/CMakeLists.txt +11 -0
  1172. data/ext/smoke/smokebase/smokebase.cpp +6 -0
  1173. data/ext/smoke/solid_smoke.h +16 -0
  1174. data/extconf.rb +231 -0
  1175. data/lib/1.8/libqtruby4shared.dll +0 -0
  1176. data/lib/1.8/libsmokebase.dll +0 -0
  1177. data/lib/1.8/libsmokeqtcore.dll +0 -0
  1178. data/lib/1.8/libsmokeqtgui.dll +0 -0
  1179. data/lib/1.8/libsmokeqtmultimedia.dll +0 -0
  1180. data/lib/1.8/libsmokeqtnetwork.dll +0 -0
  1181. data/lib/1.8/libsmokeqtopengl.dll +0 -0
  1182. data/lib/1.8/libsmokeqtscript.dll +0 -0
  1183. data/lib/1.8/libsmokeqtsql.dll +0 -0
  1184. data/lib/1.8/libsmokeqtsvg.dll +0 -0
  1185. data/lib/1.8/libsmokeqttest.dll +0 -0
  1186. data/lib/1.8/libsmokeqtuitools.dll +0 -0
  1187. data/lib/1.8/libsmokeqtwebkit.dll +0 -0
  1188. data/lib/1.8/libsmokeqtxml.dll +0 -0
  1189. data/lib/1.8/libsmokeqtxmlpatterns.dll +0 -0
  1190. data/lib/1.8/qtruby4.so +0 -0
  1191. data/lib/1.8/qtscript.so +0 -0
  1192. data/lib/1.8/qttest.so +0 -0
  1193. data/lib/1.8/qtuitools.so +0 -0
  1194. data/lib/1.8/qtwebkit.so +0 -0
  1195. data/lib/1.9/libqtruby4shared.dll +0 -0
  1196. data/lib/1.9/libsmokebase.dll +0 -0
  1197. data/lib/1.9/libsmokeqtcore.dll +0 -0
  1198. data/lib/1.9/libsmokeqtgui.dll +0 -0
  1199. data/lib/1.9/libsmokeqtmultimedia.dll +0 -0
  1200. data/lib/1.9/libsmokeqtnetwork.dll +0 -0
  1201. data/lib/1.9/libsmokeqtopengl.dll +0 -0
  1202. data/lib/1.9/libsmokeqtscript.dll +0 -0
  1203. data/lib/1.9/libsmokeqtsql.dll +0 -0
  1204. data/lib/1.9/libsmokeqtsvg.dll +0 -0
  1205. data/lib/1.9/libsmokeqttest.dll +0 -0
  1206. data/lib/1.9/libsmokeqtuitools.dll +0 -0
  1207. data/lib/1.9/libsmokeqtwebkit.dll +0 -0
  1208. data/lib/1.9/libsmokeqtxml.dll +0 -0
  1209. data/lib/1.9/libsmokeqtxmlpatterns.dll +0 -0
  1210. data/lib/1.9/qtruby4.so +0 -0
  1211. data/lib/1.9/qtscript.so +0 -0
  1212. data/lib/1.9/qttest.so +0 -0
  1213. data/lib/1.9/qtuitools.so +0 -0
  1214. data/lib/1.9/qtwebkit.so +0 -0
  1215. data/lib/Qt.rb +1 -0
  1216. data/lib/Qt/qtruby4.rb +3177 -0
  1217. data/lib/Qt4.rb +20 -0
  1218. data/lib/qtbindings_version.rb +2 -0
  1219. data/lib/qtscript/qtscript.rb +40 -0
  1220. data/lib/qttest/qttest.rb +166 -0
  1221. data/lib/qtuitools/qtuitools.rb +17 -0
  1222. data/lib/qtwebkit/qtwebkit.rb +17 -0
  1223. data/qtbindings.gemspec +18 -0
  1224. data/qtbindingsnative.gemspec +18 -0
  1225. metadata +1297 -0
@@ -0,0 +1,126 @@
1
+ /*
2
+ Copyright 2008 David Nolden <david.nolden.kdevelop@art-master.de>
3
+
4
+ Permission to use, copy, modify, distribute, and sell this software and its
5
+ documentation for any purpose is hereby granted without fee, provided that
6
+ the above copyright notice appear in all copies and that both that
7
+ copyright notice and this permission notice appear in supporting
8
+ documentation.
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ KDEVELOP TEAM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
17
+ AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
18
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19
+ */
20
+
21
+ #include "chartools.h"
22
+ #include "../kdevvarlengtharray.h"
23
+ #include "../indexedstring.h"
24
+
25
+ #include <QString>
26
+ #include <QVector>
27
+
28
+ QByteArray stringFromContents(const PreprocessedContents& contents, int offset, int count) {
29
+ QByteArray ret;
30
+ for(int a = offset; a < (count ? offset+count : contents.size()); ++a) {
31
+ if(isCharacter(contents[a]))
32
+ ret.append(characterFromIndex(contents[a]));
33
+ else
34
+ ret += IndexedString::fromIndex(contents[a]).byteArray();
35
+ }
36
+ return ret;
37
+ }
38
+
39
+ QByteArray stringFromContents(const uint* contents, int count) {
40
+ QByteArray ret;
41
+ for(int a = 0; a < count; ++a) {
42
+ if(isCharacter(contents[a]))
43
+ ret.append(characterFromIndex(contents[a]));
44
+ else
45
+ ret += IndexedString::fromIndex(contents[a]).byteArray();
46
+ }
47
+ return ret;
48
+ }
49
+
50
+ QByteArray stringFromContentsWithGaps(const PreprocessedContents& contents, int offset, int count) {
51
+ QByteArray ret;
52
+ for(int a = offset; a < (count ? offset+count : contents.size()); ++a) {
53
+ if(isCharacter(contents[a]))
54
+ ret.append(characterFromIndex(contents[a]));
55
+ else
56
+ ret += IndexedString::fromIndex(contents[a]).byteArray();
57
+ ret.append(" ");
58
+ }
59
+ return ret;
60
+ }
61
+
62
+ PreprocessedContents convertFromByteArray(const QByteArray& array) {
63
+ PreprocessedContents to;
64
+ to.resize(array.size());
65
+ const char* data = array.constData();
66
+ const char* dataEnd = data + array.size();
67
+ unsigned int* target = to.data();
68
+
69
+
70
+ while(data < dataEnd) {
71
+ *target = indexFromCharacter(*data);
72
+ ++data;
73
+ ++target;
74
+ }
75
+ return to;
76
+ }
77
+
78
+ PreprocessedContents tokenizeFromByteArray(const QByteArray& array) {
79
+ PreprocessedContents to;
80
+
81
+ const char* data = array.constData();
82
+ const char* dataEnd = data + array.size();
83
+ //unsigned int* target = to.data();
84
+
85
+ KDevVarLengthArray<char, 100> identifier;
86
+
87
+ IndexedString::RunningHash hash;
88
+
89
+ bool tokenizing = false;
90
+
91
+ while(data < dataEnd) {
92
+
93
+ if(!tokenizing) {
94
+ if(isLetter(*data) || *data == '_')
95
+ tokenizing = true;
96
+ }
97
+
98
+ if(tokenizing) {
99
+ if(isLetterOrNumber(*data) || *data == '_') {
100
+ hash.append(*data);
101
+ identifier.append(*data);
102
+ }else{
103
+ //End of token
104
+ to.append( IndexedString(identifier.constData(), identifier.size(), hash.hash).index() );
105
+ //kDebug() << "word" << "\"" + IndexedString(to.back()).str() + "\"";
106
+ hash.clear();
107
+ identifier.clear();
108
+ tokenizing = false;
109
+ }
110
+ }
111
+
112
+ if(!tokenizing)
113
+ to.append( indexFromCharacter(*data) );
114
+ ++data;
115
+ }
116
+
117
+ if(tokenizing)
118
+ to.append( IndexedString(identifier.constData(), identifier.size(), hash.hash).index() );
119
+
120
+
121
+ /* kDebug() << QString::fromUtf8(stringFromContents(to));
122
+ kDebug() << QString::fromUtf8(array);
123
+ Q_ASSERT(stringFromContents(to) == array);*/
124
+
125
+ return to;
126
+ }
@@ -0,0 +1,90 @@
1
+ /*
2
+ Copyright 2008 David Nolden <david.nolden.kdevelop@art-master.de>
3
+
4
+ Permission to use, copy, modify, distribute, and sell this software and its
5
+ documentation for any purpose is hereby granted without fee, provided that
6
+ the above copyright notice appear in all copies and that both that
7
+ copyright notice and this permission notice appear in supporting
8
+ documentation.
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ KDEVELOP TEAM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
17
+ AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
18
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19
+ */
20
+
21
+ #ifndef CHARTOOLS
22
+ #define CHARTOOLS
23
+ #include <QChar>
24
+
25
+ #include "../cppparser_export.h"
26
+
27
+ template<class T>
28
+ class QVector;
29
+ class QString;
30
+ class QByteArray;
31
+ typedef QVector<unsigned int> PreprocessedContents;
32
+
33
+ inline bool isSpace(char c) {
34
+ return QChar(c).isSpace();
35
+ }
36
+
37
+ inline bool isLetter(char c) {
38
+ return QChar(c).isLetter();
39
+ }
40
+
41
+ inline bool isLetterOrNumber(char c) {
42
+ return QChar(c).isLetterOrNumber();
43
+ }
44
+
45
+ inline bool isNumber(char c) {
46
+ return QChar(c).isNumber();
47
+ }
48
+
49
+ //Takes an index as delt with during preprocessing, and determines whether it is a fake-index that represents
50
+ //a character. If the 0xffff0000 bits are set, it is a custom character.
51
+ #define isCharacter(index) ((index & 0xffff0000) == 0xffff0000)
52
+
53
+ //Creates an index that represents the given character
54
+ #define indexFromCharacter(character) ((unsigned int)character | 0xffff0000)
55
+
56
+ //Extracts the character that is represented by the index
57
+ #define characterFromIndex(index) ((char)(index & 0xffff))
58
+
59
+ inline bool isSpace(unsigned int c) {
60
+ return isCharacter(c) && QChar(characterFromIndex(c)).isSpace();
61
+ }
62
+
63
+ inline bool isLetter(unsigned int c) {
64
+ return isCharacter(c) && QChar(characterFromIndex(c)).isLetter();
65
+ }
66
+
67
+ inline bool isLetterOrNumber(unsigned int c) {
68
+ return isCharacter(c) && QChar(characterFromIndex(c)).isLetterOrNumber();
69
+ }
70
+
71
+ inline bool isNumber(unsigned int c) {
72
+ return isCharacter(c) && QChar(characterFromIndex(c)).isNumber();
73
+ }
74
+
75
+ ///Opposite of convertFromByteArray
76
+ CPPPARSER_EXPORT QByteArray stringFromContents(const PreprocessedContents& contents, int offset = 0, int count = 0);
77
+
78
+ ///Opposite of convertFromByteArray
79
+ CPPPARSER_EXPORT QByteArray stringFromContents(const uint* contents, int count);
80
+
81
+ ///Returns a string that has a gap inserted between the tokens(for debugging)
82
+ CPPPARSER_EXPORT QByteArray stringFromContentsWithGaps(const PreprocessedContents& contents, int offset = 0, int count = 0);
83
+
84
+ ///Converts the byte array to a vector of fake-indices containing the text
85
+ CPPPARSER_EXPORT PreprocessedContents convertFromByteArray(const QByteArray& array);
86
+
87
+ ///Converts the byte array to a vector of fake-indices containing the text
88
+ ///This also tokenizes the given array when possible
89
+ CPPPARSER_EXPORT PreprocessedContents tokenizeFromByteArray(const QByteArray& array);
90
+ #endif
@@ -0,0 +1,44 @@
1
+ /*
2
+ Copyright 2008 David Nolden <david.nolden.kdevelop@art-master.de>
3
+
4
+ This library is free software; you can redistribute it and/or
5
+ modify it under the terms of the GNU Library General Public
6
+ License version 2 as published by the Free Software Foundation.
7
+
8
+ This library is distributed in the hope that it will be useful,
9
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ Library General Public License for more details.
12
+
13
+ You should have received a copy of the GNU Library General Public License
14
+ along with this library; see the file COPYING.LIB. If not, write to
15
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
16
+ Boston, MA 02110-1301, USA.
17
+ */
18
+
19
+ #include "macrorepository.h"
20
+
21
+ //The text is supposed to be utf8 encoded
22
+ using namespace rpp;
23
+
24
+ size_t MacroRepositoryItemRequest::itemSize() const {
25
+ return macro.dynamicSize();
26
+ }
27
+
28
+ MacroRepositoryItemRequest::MacroRepositoryItemRequest(const rpp::pp_macro& _macro) : macro(_macro) {
29
+ _macro.completeHash(); //Make sure the hash is valid
30
+ }
31
+
32
+ void MacroRepositoryItemRequest::destroy(rpp::pp_macro* item, KDevelop::AbstractItemRepository&) {
33
+ item->~pp_macro();
34
+ }
35
+
36
+ void MacroRepositoryItemRequest::createItem(rpp::pp_macro* item) const {
37
+ new (item) pp_macro(macro, false);
38
+ Q_ASSERT(*item == macro);
39
+ }
40
+
41
+ //Should return whether the here requested item equals the given item
42
+ bool MacroRepositoryItemRequest::equals(const rpp::pp_macro* item) const {
43
+ return macro == *item;
44
+ }
@@ -0,0 +1,59 @@
1
+ /*
2
+ Copyright 2008 David Nolden <david.nolden.kdevelop@art-master.de>
3
+
4
+ This library is free software; you can redistribute it and/or
5
+ modify it under the terms of the GNU Library General Public
6
+ License version 2 as published by the Free Software Foundation.
7
+
8
+ This library is distributed in the hope that it will be useful,
9
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ Library General Public License for more details.
12
+
13
+ You should have received a copy of the GNU Library General Public License
14
+ along with this library; see the file COPYING.LIB. If not, write to
15
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
16
+ Boston, MA 02110-1301, USA.
17
+ */
18
+
19
+ #ifndef MACROREPOSITORY_H
20
+ #define MACROREPOSITORY_H
21
+
22
+ #include <language/duchain/repositories/itemrepository.h>
23
+ #include <cppparserexport.h>
24
+ #include "pp-macro.h"
25
+
26
+ struct Q_DECL_EXPORT MacroRepositoryItemRequest {
27
+
28
+ //The text is supposed to be utf8 encoded
29
+ MacroRepositoryItemRequest(const rpp::pp_macro& _macro);
30
+
31
+ enum {
32
+ AverageSize = 20 //This should be the approximate average size of an Item
33
+ };
34
+
35
+ typedef unsigned int HashType;
36
+
37
+ HashType hash() const {
38
+ return macro.completeHash();
39
+ }
40
+
41
+ size_t itemSize() const;
42
+
43
+ void createItem(rpp::pp_macro* item) const;
44
+
45
+ static void destroy(rpp::pp_macro* item, KDevelop::AbstractItemRepository&);
46
+
47
+ static bool persistent(const rpp::pp_macro* /*item*/) {
48
+ return true; //Macros are reference-counted through the macro sets
49
+ }
50
+
51
+ //Should return whether the here requested item equals the given item
52
+ bool equals(const rpp::pp_macro* item) const;
53
+
54
+ const rpp::pp_macro& macro;
55
+ };
56
+
57
+ typedef KDevelop::ItemRepository<rpp::pp_macro, MacroRepositoryItemRequest> MacroDataRepository;
58
+
59
+ #endif
@@ -0,0 +1,86 @@
1
+ #define __DBL_MIN_EXP__ (-1021)
2
+ #define __FLT_MIN__ 1.17549435e-38F
3
+ #define __CHAR_BIT__ 8
4
+ #define __WCHAR_MAX__ 2147483647
5
+ #define __DBL_DENORM_MIN__ 4.9406564584124654e-324
6
+ #define __FLT_EVAL_METHOD__ 2
7
+ #define __DBL_MIN_10_EXP__ (-307)
8
+ #define __FINITE_MATH_ONLY__ 0
9
+ #define __GNUC_PATCHLEVEL__ 2
10
+ #define __SHRT_MAX__ 32767
11
+ #define __LDBL_MAX__ 1.18973149535723176502e+4932L
12
+ #define __UINTMAX_TYPE__ long long unsigned int
13
+ #define __linux 1
14
+ #define __unix 1
15
+ #define __LDBL_MAX_EXP__ 16384
16
+ #define __linux__ 1
17
+ #define __SCHAR_MAX__ 127
18
+ #define __USER_LABEL_PREFIX__
19
+ #define __STDC_HOSTED__ 1
20
+ #define __LDBL_HAS_INFINITY__ 1
21
+ #define __DBL_DIG__ 15
22
+ #define __FLT_EPSILON__ 1.19209290e-7F
23
+ #define __GXX_WEAK__ 1
24
+ #define __LDBL_MIN__ 3.36210314311209350626e-4932L
25
+ #define __unix__ 1
26
+ #define __DECIMAL_DIG__ 21
27
+ #define __gnu_linux__ 1
28
+ #define __LDBL_HAS_QUIET_NAN__ 1
29
+ #define __GNUC__ 4
30
+ #define __DBL_MAX__ 1.7976931348623157e+308
31
+ #define __DBL_HAS_INFINITY__ 1
32
+ #define __cplusplus 1
33
+ #define __DEPRECATED 1
34
+ #define __DBL_MAX_EXP__ 1024
35
+ #define __GNUG__ 4
36
+ #define __LONG_LONG_MAX__ 9223372036854775807LL
37
+ #define __GXX_ABI_VERSION 1002
38
+ #define __FLT_MIN_EXP__ (-125)
39
+ #define __DBL_MIN__ 2.2250738585072014e-308
40
+ #define __FLT_MIN_10_EXP__ (-37)
41
+ #define __DBL_HAS_QUIET_NAN__ 1
42
+ #define __REGISTER_PREFIX__
43
+ #define __NO_INLINE__ 1
44
+ #define __i386 1
45
+ #define __FLT_MANT_DIG__ 24
46
+ #define __VERSION__ "4.0.2 20050808 (prerelease) (Ubuntu 4.0.1-4ubuntu9)"
47
+ #define i386 1
48
+ #define __i486__ 1
49
+ #define unix 1
50
+ #define __i386__ 1
51
+ #define __SIZE_TYPE__ unsigned int
52
+ #define __ELF__ 1
53
+ #define __FLT_RADIX__ 2
54
+ #define __LDBL_EPSILON__ 1.08420217248550443401e-19L
55
+ #define __FLT_HAS_QUIET_NAN__ 1
56
+ #define __FLT_MAX_10_EXP__ 38
57
+ #define __LONG_MAX__ 2147483647L
58
+ #define __FLT_HAS_INFINITY__ 1
59
+ #define linux 1
60
+ #define __EXCEPTIONS 1
61
+ #define __LDBL_MANT_DIG__ 64
62
+ #define __WCHAR_TYPE__ int
63
+ #define __FLT_DIG__ 6
64
+ #define __INT_MAX__ 2147483647
65
+ #define __i486 1
66
+ #define __FLT_MAX_EXP__ 128
67
+ #define __DBL_MANT_DIG__ 53
68
+ #define __WINT_TYPE__ unsigned int
69
+ #define __LDBL_MIN_EXP__ (-16381)
70
+ #define __LDBL_MAX_10_EXP__ 4932
71
+ #define __DBL_EPSILON__ 2.2204460492503131e-16
72
+ #define __tune_i486__ 1
73
+ #define __INTMAX_MAX__ 9223372036854775807LL
74
+ #define __FLT_DENORM_MIN__ 1.40129846e-45F
75
+ #define __FLT_MAX__ 3.40282347e+38F
76
+ #define __INTMAX_TYPE__ long long int
77
+ #define __GNUC_MINOR__ 0
78
+ #define __DBL_MAX_10_EXP__ 308
79
+ #define __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L
80
+ #define __PTRDIFF_TYPE__ int
81
+ #define __LDBL_MIN_10_EXP__ (-4931)
82
+ #define __LDBL_DIG__ 18
83
+ #define _GNU_SOURCE 1
84
+
85
+
86
+ #define __STDC__
@@ -0,0 +1,1216 @@
1
+ /*
2
+ Copyright 2005 Roberto Raggi <roberto@kdevelop.org>
3
+ Copyright 2006 Hamish Rodda <rodda@kde.org>
4
+
5
+ Permission to use, copy, modify, distribute, and sell this software and its
6
+ documentation for any purpose is hereby granted without fee, provided that
7
+ the above copyright notice appear in all copies and that both that
8
+ copyright notice and this permission notice appear in supporting
9
+ documentation.
10
+
11
+ The above copyright notice and this permission notice shall be included in
12
+ all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ KDEVELOP TEAM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
18
+ AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
+ */
21
+
22
+ #include "pp-engine.h"
23
+
24
+ #include <QFile>
25
+ #include <QTextStream>
26
+ #include <QtDebug>
27
+
28
+ #include "pp-internal.h"
29
+ #include "preprocessor.h"
30
+ #include "pp-environment.h"
31
+ #include "pp-location.h"
32
+ #include "chartools.h"
33
+ // #include "macrorepository.h"
34
+
35
+ using namespace rpp;
36
+
37
+ #define RETURN_ON_FAIL(x) if(!(x)) { ++input; qDebug() << "Preprocessor: Condition not satisfied"; return; }
38
+
39
+ pp::pp(Preprocessor* preprocessor)
40
+ : m_environment(new Environment(this))
41
+ , expand(this, 0, true)
42
+ , m_preprocessor(preprocessor)
43
+ , nextToken(0)
44
+ , haveNextToken(false)
45
+ , hideNext(false)
46
+ , hadGuardCandidate(false)
47
+ , checkGuardEnd(false)
48
+ {
49
+ iflevel = 0;
50
+ _M_skipping[iflevel] = 0;
51
+ _M_true_test[iflevel] = 0;
52
+ }
53
+
54
+ pp::~pp()
55
+ {
56
+ delete m_environment;
57
+ }
58
+
59
+ Preprocessor* pp::preprocessor() {
60
+ return m_preprocessor;
61
+ }
62
+
63
+ PreprocessedContents pp::processFile(const QString& fileName)
64
+ {
65
+ QFile file(fileName);
66
+ if (!file.open(QIODevice::ReadOnly))
67
+ {
68
+ qWarning() << "file '" << fileName << "' not found!" ;
69
+ return PreprocessedContents();
70
+ }
71
+
72
+ PreprocessedContents result;
73
+ processFileInternal(fileName, file.readAll(), result);
74
+ return result;
75
+ }
76
+
77
+ PreprocessedContents pp::processFile(const QString& fileName, const QByteArray& data)
78
+ {
79
+ PreprocessedContents result;
80
+ processFileInternal(fileName, data, result);
81
+ return result;
82
+ }
83
+
84
+ void pp::processFileInternal(const QString& fileName, const QByteArray& fileContents, PreprocessedContents& result)
85
+ {
86
+ m_files.push(IndexedString(fileName));
87
+ // Guestimate as to how much expansion will occur
88
+ result.reserve(int(fileContents.length() * 1.2));
89
+ PreprocessedContents contents = convertFromByteArray(fileContents);
90
+ {
91
+ Stream is(&contents);
92
+ Stream rs(&result, m_environment->locationTable());
93
+ operator () (is, rs);
94
+ }
95
+ result.squeeze();
96
+ }
97
+
98
+ uint ifDirective = IndexedString("if").index();
99
+ uint elseDirective = IndexedString("else").index();
100
+ uint elifDirective = IndexedString("elif").index();
101
+ uint ifdefDirective = IndexedString("ifdef").index();
102
+ uint undefDirective = IndexedString("undef").index();
103
+ uint endifDirective = IndexedString("endif").index();
104
+ uint ifndefDirective = IndexedString("ifndef").index();
105
+ uint defineDirective = IndexedString("define").index();
106
+ uint includeDirective = IndexedString("include").index();
107
+ uint includeNextDirective = IndexedString("include_next").index();
108
+
109
+ void pp::handle_directive(uint directive, Stream& input, Stream& output)
110
+ {
111
+ skip_blanks (input, output);
112
+ if(!(directive == ifndefDirective)) {
113
+ hadGuardCandidate = true; //Too late, the guard must be the first directive
114
+ }
115
+ if(checkGuardEnd) {
116
+ guardCandidate = IndexedString();
117
+ checkGuardEnd = false;
118
+ }
119
+
120
+ if(directive == defineDirective)
121
+ if (! skipping ())
122
+ return handle_define(input);
123
+
124
+ if(directive == includeDirective || directive == includeNextDirective)
125
+ if (! skipping ())
126
+ return handle_include (directive == includeNextDirective, input, output);
127
+
128
+ if(directive == undefDirective)
129
+ if (! skipping ())
130
+ return handle_undef(input);
131
+
132
+ if(directive == elifDirective)
133
+ return handle_elif(input);
134
+
135
+ if(directive == elseDirective)
136
+ return handle_else(input.inputPosition().line);
137
+
138
+ if(directive == endifDirective)
139
+ return handle_endif(input, output);
140
+
141
+ if(directive == ifDirective)
142
+ return handle_if(input);
143
+
144
+ if(directive == ifdefDirective)
145
+ return handle_ifdef(false, input);
146
+
147
+ if(directive == ifndefDirective)
148
+ return handle_ifdef(true, input);
149
+ }
150
+
151
+ void pp::handle_include(bool skip_current_path, Stream& input, Stream& output)
152
+ {
153
+ if (isLetter(input.current()) || input == '_') {
154
+ pp_macro_expander expand_include(this);
155
+
156
+ Anchor inputPosition = input.inputPosition();
157
+ SimpleCursor originalInputPosition = input.originalInputPosition();
158
+ PreprocessedContents includeString;
159
+ {
160
+ Stream cs(&includeString);
161
+ expand_include(input, cs);
162
+ }
163
+
164
+ skip_blanks(input, devnull());
165
+ RETURN_ON_FAIL(!includeString.isEmpty() && (includeString.first() == indexFromCharacter('<') || includeString.first() == indexFromCharacter('"')));
166
+
167
+ Stream newInput(&includeString, inputPosition);
168
+ newInput.setOriginalInputPosition(originalInputPosition);
169
+ handle_include(skip_current_path, newInput, output);
170
+ return;
171
+ }
172
+
173
+ RETURN_ON_FAIL(input == '<' || input == '"');
174
+ char quote((input == '"') ? '"' : '>');
175
+ ++input;
176
+
177
+ PreprocessedContents includeNameB;
178
+
179
+ while (!input.atEnd() && input != quote) {
180
+ RETURN_ON_FAIL(input != '\n');
181
+
182
+ includeNameB.append(input);
183
+ ++input;
184
+ }
185
+
186
+ QString includeName(QString::fromUtf8(stringFromContents(includeNameB)));
187
+
188
+ Stream* include = m_preprocessor->sourceNeeded(includeName, quote == '"' ? Preprocessor::IncludeLocal : Preprocessor::IncludeGlobal, input.inputPosition().line, skip_current_path);
189
+
190
+ if (include && !include->atEnd()) {
191
+ // m_files.push(IndexedString(includeName));
192
+
193
+ // output.mark(Anchor(0, 0));
194
+
195
+ operator()(*include, output);
196
+
197
+ // restore the file name and sync the buffer
198
+ // output.mark(input.inputPosition());
199
+ }
200
+
201
+ delete include;
202
+ }
203
+
204
+ void pp::operator () (Stream& input, Stream& output)
205
+ {
206
+ int previousIfLevel = iflevel;
207
+
208
+ forever
209
+ {
210
+ haveNextToken = false;
211
+
212
+ if (skipping()) {
213
+ skip_blanks(input, devnull());
214
+
215
+ } else {
216
+ skip_blanks(input, output);
217
+ }
218
+
219
+ if (input.atEnd()) {
220
+ break;
221
+
222
+ } else if (input == '#') {
223
+ skip_blanks(++input, devnull());
224
+
225
+ uint directive = skip_identifier(input);
226
+
227
+ skip_blanks(input, devnull());
228
+
229
+ Anchor inputPosition = input.inputPosition();
230
+ SimpleCursor originalInputPosition = input.originalInputPosition();
231
+
232
+ PreprocessedContents skipped;
233
+ {
234
+ Stream ss(&skipped);
235
+ skip (input, ss);
236
+ }
237
+
238
+ Stream ss(&skipped, inputPosition);
239
+ ss.setOriginalInputPosition(originalInputPosition);
240
+ handle_directive(directive, ss, output);
241
+
242
+ } else if (input == '\n') {
243
+ output << input;
244
+ ++input;
245
+
246
+ } else if (skipping ()) {
247
+ skip (input, devnull());
248
+
249
+ } else {
250
+ output.mark(input.inputPosition());
251
+ if(checkGuardEnd) {
252
+ expand.startSignificantContentSearch();
253
+ }
254
+
255
+ expand (input, output);
256
+ if(checkGuardEnd) {
257
+ if(expand.foundSignificantContent() || !input.atEnd()) {
258
+ guardCandidate = IndexedString();
259
+ }
260
+ checkGuardEnd = false;
261
+ }
262
+ }
263
+ }
264
+
265
+ if(!guardCandidate.isEmpty())
266
+ preprocessor()->foundHeaderGuard(input, guardCandidate);
267
+
268
+ if (iflevel != previousIfLevel && !input.skippedToEnd())
269
+ createProblem(input, "Unterminated #if statement");
270
+ }
271
+
272
+ void pp::createProblem(Stream& input, const QString& description) {
273
+ Problem* problem = new Problem;
274
+ problem->file = currentFileNameString();
275
+ problem->position = input.originalInputPosition();
276
+ problem->description = description;
277
+ problemEncountered(problem);
278
+ }
279
+
280
+ void pp::handle_define (Stream& input)
281
+ {
282
+ pp_macro* macro = new pp_macro;
283
+ macro->file = currentFileName();
284
+ macro->sourceLine = input.originalInputPosition().line;
285
+
286
+ skip_blanks (input, devnull());
287
+ macro->name = IndexedString::fromIndex(skip_identifier(input)); //@todo make macros utf8 too
288
+
289
+ if (!input.atEnd() && input == '(')
290
+ {
291
+ macro->function_like = true;
292
+
293
+ skip_blanks (++input, devnull()); // skip '('
294
+ uint formal = skip_identifier(input);
295
+ if (formal)
296
+ macro->formals.append( IndexedString::fromIndex(formal) );
297
+
298
+ skip_blanks(input, devnull());
299
+
300
+ if (input == '.') {
301
+ macro->variadics = true;
302
+
303
+ do {
304
+ ++input;
305
+
306
+ } while (input == '.');
307
+ }
308
+
309
+ while (!input.atEnd() && input == ',')
310
+ {
311
+ skip_blanks(++input, devnull());
312
+
313
+ uint formal = skip_identifier(input);
314
+ if (formal)
315
+ macro->formals.append( IndexedString::fromIndex(formal) );
316
+
317
+ skip_blanks (input, devnull());
318
+
319
+ if (input == '.') {
320
+ macro->variadics = true;
321
+
322
+ do {
323
+ ++input;
324
+
325
+ } while (input == '.');
326
+ }
327
+ }
328
+
329
+ RETURN_ON_FAIL(input == ')');
330
+ ++input;
331
+ }
332
+
333
+ skip_blanks (input, devnull());
334
+
335
+ while (!input.atEnd() && input != '\n')
336
+ {
337
+ if(input == '/' && (input.peekNextCharacter() == '/' || input.peekNextCharacter() == '*')) {
338
+ skip_comment_or_divop(input, devnull());
339
+ if(!input.atEnd() && input != '\n')
340
+ skip_blanks (input, devnull());
341
+ continue;
342
+ }
343
+ if (input == '\\')
344
+ {
345
+ int pos = input.offset();
346
+ skip_blanks (++input, devnull());
347
+
348
+ if (!input.atEnd() && input == '\n')
349
+ {
350
+ skip_blanks(++input, devnull());
351
+ macro->definition.append(IndexedString::fromIndex(indexFromCharacter(' ')));
352
+ continue;
353
+
354
+ } else {
355
+ // Whoops, rewind :)
356
+ input.seek(pos);
357
+ }
358
+ }
359
+
360
+ macro->definition.append(IndexedString::fromIndex(input.current()));
361
+ ++input;
362
+ }
363
+
364
+ m_environment->setMacro(macro);
365
+ }
366
+
367
+
368
+ void pp::skip (Stream& input, Stream& output, bool outputText)
369
+ {
370
+ pp_skip_string_literal skip_string_literal;
371
+ pp_skip_char_literal skip_char_literal;
372
+
373
+ while (!input.atEnd() && input != '\n')
374
+ {
375
+ if (input == '/')
376
+ {
377
+ skip_comment_or_divop (input, output, outputText);
378
+ }
379
+ else if (input == '"')
380
+ {
381
+ skip_string_literal (input, output);
382
+ }
383
+ else if (input == '\'')
384
+ {
385
+ skip_char_literal (input, output);
386
+ }
387
+ else if (input == '\\')
388
+ {
389
+ output << input;
390
+ skip_blanks (++input, output);
391
+
392
+ if (!input.atEnd() && input == '\n')
393
+ {
394
+ output << input;
395
+ ++input;
396
+ }
397
+ }
398
+ else
399
+ {
400
+ output << input;
401
+ ++input;
402
+ }
403
+ }
404
+ }
405
+
406
+ inline bool pp::test_if_level()
407
+ {
408
+ bool result = !_M_skipping[iflevel++];
409
+ _M_skipping[iflevel] = _M_skipping[iflevel - 1];
410
+ _M_true_test[iflevel] = false;
411
+ return result;
412
+ }
413
+
414
+ inline int pp::skipping() const
415
+ { return _M_skipping[iflevel]; }
416
+
417
+ Value pp::eval_primary(Stream& input)
418
+ {
419
+ int start = input.offset();
420
+ bool expect_paren = false;
421
+ int token = next_token_accept(input);
422
+ Value result;
423
+
424
+ switch (token) {
425
+ case TOKEN_NUMBER:
426
+ result.set_long(token_value);
427
+ break;
428
+
429
+ case TOKEN_UNUMBER:
430
+ result.set_ulong(token_uvalue);
431
+ break;
432
+
433
+ case TOKEN_DEFINED:
434
+ token = next_token_accept(input);
435
+
436
+ if (token == '(')
437
+ {
438
+ expect_paren = true;
439
+ token = next_token_accept(input);
440
+ }
441
+
442
+ if (token != TOKEN_IDENTIFIER)
443
+ {
444
+ Problem* problem = new Problem;
445
+ problem->file = currentFileNameString();
446
+ problem->position = input.originalInputPosition();
447
+ QChar tk(token);
448
+ problem->description = QString("Expected \"identifier\", found: %1").arg((tk < TOKENS_END && tk > TOKENS_START) ? QString(tk) : QString("character %1").arg(token));
449
+ problem->explanation = QString("<h5>Token text</h5><pre>%1</pre><h5>Input</h5><pre>%2</pre>").arg(token_text.str())
450
+ .arg(QString::fromUtf8(input.stringFrom(start)));
451
+ problemEncountered(problem);
452
+ break;
453
+ }
454
+
455
+ {
456
+ pp_macro* m = m_environment->retrieveMacro(token_text, true);
457
+ result.set_long( (m && !m->isUndef()) ? 1 : 0);
458
+ }
459
+
460
+ token = next_token(input); // skip '('
461
+
462
+ if (expect_paren) {
463
+ if (token != ')') {
464
+ Problem* problem = new Problem;
465
+ problem->file = currentFileNameString();
466
+ problem->position = input.originalInputPosition();
467
+ QChar tk(token);
468
+ problem->description = QString("Expected \")\", found %1").arg(tk.isLetterOrNumber() ? QString(tk) : QString("character %1").arg(token));
469
+ problem->explanation = QString("<h5>Token text</h5><pre>%1</pre><h5>Input</h5><pre>%2</pre>").arg(token_text.str())
470
+ .arg(QString::fromUtf8(input.stringFrom(start)));
471
+ problemEncountered(problem);
472
+ } else {
473
+ accept_token();
474
+ }
475
+ }
476
+ break;
477
+
478
+ case TOKEN_IDENTIFIER:
479
+ break;
480
+
481
+ case '-':
482
+ result.set_long(- eval_primary(input).l);
483
+ break;
484
+
485
+ case '+':
486
+ result.set_long(+ eval_primary(input).l);
487
+ break;
488
+
489
+ case '!':
490
+ result.set_long(eval_primary(input).is_zero());
491
+ break;
492
+
493
+ case '(':
494
+ result = eval_constant_expression(input);
495
+ token = next_token(input);
496
+
497
+ if (token != ')') {
498
+ Problem* problem = new Problem;
499
+ problem->file = currentFileNameString();
500
+ problem->position = input.originalInputPosition();
501
+ QChar tk(token);
502
+ problem->description = QString("Expected \")\", found %1").arg(tk.isLetterOrNumber() ? QString(tk) : QString("character %1").arg(token));
503
+ problem->explanation = QString("<h5>Token text</h5><pre>%1</pre><h5>Input</h5><pre>%2</pre>").arg(token_text.str())
504
+ .arg(QString::fromUtf8(input.stringFrom(start)));
505
+ problemEncountered(problem);
506
+ } else {
507
+ accept_token();
508
+ }
509
+
510
+ break;
511
+
512
+ default:
513
+ break;
514
+ }
515
+
516
+ return result;
517
+ }
518
+
519
+ Value pp::eval_multiplicative(Stream& input)
520
+ {
521
+ int start = input.offset();
522
+
523
+ Value result = eval_primary(input);
524
+
525
+ int token = next_token(input);
526
+
527
+ while (token == '*' || token == '/' || token == '%') {
528
+ accept_token();
529
+
530
+ Value value = eval_primary(input);
531
+
532
+ if (token == '*') {
533
+ result *= value;
534
+
535
+ } else if (token == '/') {
536
+ if (value.is_zero()) {
537
+ Problem* problem = new Problem;
538
+ problem->file = currentFileNameString();
539
+ problem->position = input.originalInputPosition();
540
+ problem->description = "Division by zero";
541
+ problem->explanation = QString("Input text: %1").arg(QString::fromUtf8(input.stringFrom(start)));
542
+ problemEncountered(problem);
543
+ result.set_long(0);
544
+
545
+ } else {
546
+ result /= value;
547
+ }
548
+
549
+ } else {
550
+ if (value.is_zero()) {
551
+ Problem* problem = new Problem;
552
+ problem->file = currentFileNameString();
553
+ problem->position = input.originalInputPosition();
554
+ problem->description = "Division by zero";
555
+ problem->description = QString("Input text: %1").arg(QString::fromUtf8(input.stringFrom(start)));
556
+ problemEncountered(problem);
557
+ result.set_long(0);
558
+
559
+ } else {
560
+ result %= value;
561
+ }
562
+ }
563
+
564
+ token = next_token(input);
565
+ }
566
+
567
+ return result;
568
+ }
569
+
570
+ Value pp::eval_additive(Stream& input)
571
+ {
572
+ Value result = eval_multiplicative(input);
573
+
574
+ int token = next_token(input);
575
+
576
+ while (token == '+' || token == '-') {
577
+ accept_token();
578
+
579
+ Value value = eval_multiplicative(input);
580
+
581
+ if (token == '+')
582
+ result += value;
583
+ else
584
+ result -= value;
585
+
586
+ token = next_token(input);
587
+ }
588
+
589
+ return result;
590
+ }
591
+
592
+
593
+ Value pp::eval_shift(Stream& input)
594
+ {
595
+ Value result = eval_additive(input);
596
+
597
+ int token;
598
+ token = next_token(input);
599
+
600
+ while (token == TOKEN_LT_LT || token == TOKEN_GT_GT) {
601
+ accept_token();
602
+
603
+ Value value = eval_additive(input);
604
+
605
+ if (token == TOKEN_LT_LT)
606
+ result <<= value;
607
+ else
608
+ result >>= value;
609
+
610
+ token = next_token(input);
611
+ }
612
+
613
+ return result;
614
+ }
615
+
616
+
617
+ Value pp::eval_relational(Stream& input)
618
+ {
619
+ Value result = eval_shift(input);
620
+
621
+ int token = next_token(input);
622
+
623
+ while (token == '<'
624
+ || token == '>'
625
+ || token == TOKEN_LT_EQ
626
+ || token == TOKEN_GT_EQ)
627
+ {
628
+ accept_token();
629
+ Value value = eval_shift(input);
630
+
631
+ switch (token)
632
+ {
633
+ default:
634
+ Q_ASSERT(0);
635
+ break;
636
+
637
+ case '<':
638
+ result = result < value;
639
+ break;
640
+
641
+ case '>':
642
+ result = result > value;
643
+ break;
644
+
645
+ case TOKEN_LT_EQ:
646
+ result = result <= value;
647
+ break;
648
+
649
+ case TOKEN_GT_EQ:
650
+ result = result >= value;
651
+ break;
652
+ }
653
+
654
+ token = next_token(input);
655
+ }
656
+
657
+ return result;
658
+ }
659
+
660
+
661
+ Value pp::eval_equality(Stream& input)
662
+ {
663
+ Value result = eval_relational(input);
664
+
665
+ int token = next_token(input);
666
+
667
+ while (token == TOKEN_EQ_EQ || token == TOKEN_NOT_EQ) {
668
+ accept_token();
669
+ Value value = eval_relational(input);
670
+
671
+ if (token == TOKEN_EQ_EQ)
672
+ result = result == value;
673
+ else
674
+ result = result != value;
675
+
676
+ token = next_token(input);
677
+ }
678
+
679
+ return result;
680
+ }
681
+
682
+
683
+ Value pp::eval_and(Stream& input)
684
+ {
685
+ Value result = eval_equality(input);
686
+
687
+ int token = next_token(input);
688
+
689
+ while (token == '&') {
690
+ accept_token();
691
+ Value value = eval_equality(input);
692
+ result &= value;
693
+ token = next_token(input);
694
+ }
695
+
696
+ return result;
697
+ }
698
+
699
+
700
+ Value pp::eval_xor(Stream& input)
701
+ {
702
+ Value result = eval_and(input);
703
+
704
+ int token;
705
+ token = next_token(input);
706
+
707
+ while (token == '^') {
708
+ accept_token();
709
+ Value value = eval_and(input);
710
+ result ^= value;
711
+ token = next_token(input);
712
+ }
713
+
714
+ return result;
715
+ }
716
+
717
+
718
+ Value pp::eval_or(Stream& input)
719
+ {
720
+ Value result = eval_xor(input);
721
+
722
+ int token = next_token(input);
723
+
724
+ while (token == '|') {
725
+ accept_token();
726
+ Value value = eval_xor(input);
727
+ result |= value;
728
+ token = next_token(input);
729
+ }
730
+
731
+ return result;
732
+ }
733
+
734
+
735
+ Value pp::eval_logical_and(Stream& input)
736
+ {
737
+ Value result = eval_or(input);
738
+
739
+ int token = next_token(input);
740
+
741
+ while (token == TOKEN_AND_AND) {
742
+ accept_token();
743
+ Value value = eval_or(input);
744
+ result = result && value;
745
+ token = next_token(input);
746
+ }
747
+
748
+ return result;
749
+ }
750
+
751
+
752
+ Value pp::eval_logical_or(Stream& input)
753
+ {
754
+ Value result = eval_logical_and(input);
755
+
756
+ int token = next_token(input);
757
+
758
+ while (token == TOKEN_OR_OR) {
759
+ accept_token();
760
+ Value value = eval_logical_and(input);
761
+ result = result || value;
762
+ token = next_token(input);
763
+ }
764
+
765
+ return result;
766
+ }
767
+
768
+
769
+ Value pp::eval_constant_expression(Stream& input)
770
+ {
771
+ Value result = eval_logical_or(input);
772
+
773
+ int token = next_token(input);
774
+
775
+ if (token == '?')
776
+ {
777
+ accept_token();
778
+ Value left_value = eval_constant_expression(input);
779
+ skip_blanks(input, devnull());
780
+
781
+ token = next_token_accept(input);
782
+ if (token == ':')
783
+ {
784
+ Value right_value = eval_constant_expression(input);
785
+
786
+ result = !result.is_zero() ? left_value : right_value;
787
+ }
788
+ else
789
+ {
790
+ Problem* problem = new Problem;
791
+ problem->file = currentFileNameString();
792
+ problem->position = input.originalInputPosition();
793
+ problem->description = QString("expected ``:'' = %1").arg(int(token));
794
+ problemEncountered(problem);
795
+ result = left_value;
796
+ }
797
+ }
798
+
799
+ return result;
800
+ }
801
+
802
+
803
+ Value pp::eval_expression(Stream& input)
804
+ {
805
+ skip_blanks(input, devnull());
806
+ return eval_constant_expression(input);
807
+ }
808
+
809
+
810
+ void pp::handle_if (Stream& input)
811
+ {
812
+ if (test_if_level())
813
+ {
814
+ pp_macro_expander expand_condition(this);
815
+ skip_blanks(input, devnull());
816
+
817
+ Anchor inputPosition = input.inputPosition();
818
+ SimpleCursor originalInputPosition = input.originalInputPosition();
819
+ PreprocessedContents condition;
820
+ {
821
+ Stream cs(&condition);
822
+ expand_condition(input, cs);
823
+ }
824
+
825
+ environment()->enterBlock(input.inputPosition().line, condition);
826
+
827
+ Stream cs(&condition, inputPosition);
828
+ cs.setOriginalInputPosition(originalInputPosition);
829
+ Value result = eval_expression(cs);
830
+
831
+ _M_true_test[iflevel] = !result.is_zero();
832
+ _M_skipping[iflevel] = result.is_zero();
833
+
834
+ } else {
835
+ // Capture info for precompiled macros
836
+ pp_macro_expander expand_condition(this);
837
+ skip_blanks(input, devnull());
838
+ PreprocessedContents condition;
839
+ {
840
+ Stream cs(&condition);
841
+ expand_condition(input, cs);
842
+ }
843
+
844
+ environment()->enterBlock(input.inputPosition().line, condition);
845
+
846
+ _M_true_test[iflevel] = true;
847
+ _M_skipping[iflevel] = true;
848
+ }
849
+ }
850
+
851
+
852
+ void pp::handle_else(int sourceLine)
853
+ {
854
+ if(iflevel == 1)
855
+ guardCandidate = IndexedString();
856
+
857
+ if (iflevel == 0 && !skipping ())
858
+ {
859
+ Problem* problem = new Problem;
860
+ problem->file = currentFileNameString();
861
+ problem->position = SimpleCursor(sourceLine, 0);
862
+ problem->description = "#else without #if";
863
+ problemEncountered(problem);
864
+ }
865
+ else if (iflevel > 0 && _M_skipping[iflevel - 1])
866
+ {
867
+ _M_skipping[iflevel] = true;
868
+ environment()->elseBlock(sourceLine);
869
+ }
870
+ else
871
+ {
872
+ _M_skipping[iflevel] = _M_true_test[iflevel];
873
+ environment()->elseBlock(sourceLine);
874
+ }
875
+ }
876
+
877
+
878
+ void pp::handle_elif(Stream& input)
879
+ {
880
+ if(iflevel == 1)
881
+ guardCandidate = IndexedString();
882
+
883
+ RETURN_ON_FAIL(iflevel > 0);
884
+
885
+ if (iflevel == 0 && !skipping())
886
+ {
887
+ Problem* problem = new Problem;
888
+ problem->file = currentFileNameString();
889
+ problem->position = input.originalInputPosition();
890
+ problem->description = "#else without #if";
891
+ problemEncountered(problem);
892
+ }
893
+ else
894
+ {
895
+ pp_macro_expander expand_condition(this);
896
+ skip_blanks(input, devnull());
897
+
898
+ Anchor inputPosition = input.inputPosition();
899
+ SimpleCursor originalInputPosition = input.originalInputPosition();
900
+ PreprocessedContents condition;
901
+ {
902
+ Stream cs(&condition);
903
+ cs.setOriginalInputPosition(originalInputPosition);
904
+ expand_condition(input, cs);
905
+ }
906
+
907
+ environment()->elseBlock(input.inputPosition().line, condition);
908
+
909
+ if (!_M_true_test[iflevel] && !_M_skipping[iflevel - 1])
910
+ {
911
+ Stream cs(&condition, inputPosition);
912
+ Value result = eval_expression(cs);
913
+ _M_true_test[iflevel] = !result.is_zero();
914
+ _M_skipping[iflevel] = result.is_zero();
915
+ }
916
+ else
917
+ {
918
+ _M_skipping[iflevel] = true;
919
+ }
920
+ }
921
+ }
922
+
923
+
924
+ void pp::handle_endif(Stream& input, Stream& output)
925
+ {
926
+ if (iflevel == 0 && !skipping())
927
+ {
928
+ Problem* problem = new Problem;
929
+ problem->file = currentFileNameString();
930
+ problem->position = input.originalInputPosition();
931
+ problem->description = QString("#endif without #if at output line %1")
932
+ .arg(m_environment->locationTable()->anchorForOffset(output.offset()).anchor.line);
933
+ problemEncountered(problem);
934
+ }
935
+ else
936
+ {
937
+ environment()->leaveBlock();
938
+
939
+ _M_skipping[iflevel] = 0;
940
+ _M_true_test[iflevel] = 0;
941
+
942
+ --iflevel;
943
+ if(iflevel == 0) {
944
+ if(!guardCandidate.isEmpty()) {
945
+ checkGuardEnd = true;
946
+ }
947
+ }
948
+ }
949
+ }
950
+
951
+ uint pp::branchingHash() const
952
+ {
953
+ uint hash = 0;
954
+ for( int a = 0; a <= iflevel; a++ ) {
955
+ hash *= 19;
956
+ if( _M_skipping[a] )
957
+ hash += 3;
958
+ if( _M_true_test[a] )
959
+ hash += 7;
960
+ }
961
+ return hash;
962
+ }
963
+
964
+ void pp::handle_ifdef (bool check_undefined, Stream& input)
965
+ {
966
+ IndexedString macro_name = IndexedString::fromIndex(skip_identifier(input));
967
+ ///@todo eventually fix the block description
968
+ if(check_undefined && expand.in_header_section() && guardCandidate.isEmpty() && !hadGuardCandidate && iflevel == 0) {
969
+ //It's the first #ifndef and the header-section hasn't ended yet, assume it to be the header-guard
970
+ guardCandidate = macro_name;
971
+ }
972
+
973
+ hadGuardCandidate = true;
974
+
975
+ environment()->enterBlock(input.inputPosition().line);//, QString("%1defined(%2)").arg(check_undefined ? "!" : "").arg(macro_name).toUtf8());
976
+
977
+ if (test_if_level())
978
+ {
979
+ pp_macro* macro = m_environment->retrieveMacro(macro_name, true);
980
+ bool value = false;
981
+ if( macro && macro->defined )
982
+ value = true;
983
+
984
+ if (check_undefined)
985
+ value = !value;
986
+
987
+ _M_true_test[iflevel] = value;
988
+ _M_skipping[iflevel] = !value;
989
+ }
990
+ }
991
+
992
+
993
+ void pp::handle_undef(Stream& input)
994
+ {
995
+ skip_blanks (input, devnull());
996
+
997
+ IndexedString macro_name = IndexedString::fromIndex(skip_identifier(input));
998
+ RETURN_ON_FAIL(!macro_name.isEmpty());
999
+
1000
+ pp_macro* macro = new pp_macro;
1001
+ macro->file = currentFileName();
1002
+ macro->name = macro_name;
1003
+ macro->sourceLine = input.originalInputPosition().line;
1004
+
1005
+ macro->defined = false;
1006
+
1007
+ m_environment->setMacro(macro);
1008
+ }
1009
+
1010
+ IndexedString definedText("defined");
1011
+
1012
+ int pp::next_token (Stream& input)
1013
+ {
1014
+ if (haveNextToken)
1015
+ return nextToken;
1016
+
1017
+ skip_blanks(input, devnull());
1018
+
1019
+ if (input.atEnd())
1020
+ {
1021
+ return 0;
1022
+ }
1023
+
1024
+ char ch = 0;
1025
+ if(isCharacter(input.current()))
1026
+ ch = characterFromIndex(input.current());
1027
+ char ch2 = input.peekNextCharacter();
1028
+
1029
+ nextToken = 0;
1030
+
1031
+ switch (ch) {
1032
+ case '/':
1033
+ if (ch2 == '/' || ch2 == '*')
1034
+ {
1035
+ skip_comment_or_divop(input, devnull());
1036
+ return next_token(input);
1037
+ }
1038
+ ++input;
1039
+ nextToken = '/';
1040
+ break;
1041
+
1042
+ case '<':
1043
+ ++input;
1044
+ if (ch2 == '<')
1045
+ {
1046
+ ++input;
1047
+ nextToken = TOKEN_LT_LT;
1048
+ }
1049
+ else if (ch2 == '=')
1050
+ {
1051
+ ++input;
1052
+ nextToken = TOKEN_LT_EQ;
1053
+ }
1054
+ else
1055
+ nextToken = '<';
1056
+
1057
+ break;
1058
+
1059
+ case '>':
1060
+ ++input;
1061
+ if (ch2 == '>')
1062
+ {
1063
+ ++input;
1064
+ nextToken = TOKEN_GT_GT;
1065
+ }
1066
+ else if (ch2 == '=')
1067
+ {
1068
+ ++input;
1069
+ nextToken = TOKEN_GT_EQ;
1070
+ }
1071
+ else
1072
+ nextToken = '>';
1073
+
1074
+ break;
1075
+
1076
+ case '!':
1077
+ ++input;
1078
+ if (ch2 == '=')
1079
+ {
1080
+ ++input;
1081
+ nextToken = TOKEN_NOT_EQ;
1082
+ }
1083
+ else
1084
+ nextToken = '!';
1085
+
1086
+ break;
1087
+
1088
+ case '=':
1089
+ ++input;
1090
+ if (ch2 == '=')
1091
+ {
1092
+ ++input;
1093
+ nextToken = TOKEN_EQ_EQ;
1094
+ }
1095
+ else
1096
+ nextToken = '=';
1097
+
1098
+ break;
1099
+
1100
+ case '|':
1101
+ ++input;
1102
+ if (ch2 == '|')
1103
+ {
1104
+ ++input;
1105
+ nextToken = TOKEN_OR_OR;
1106
+ }
1107
+ else
1108
+ nextToken = '|';
1109
+
1110
+ break;
1111
+
1112
+ case '&':
1113
+ ++input;
1114
+ if (ch2 == '&')
1115
+ {
1116
+ ++input;
1117
+ nextToken = TOKEN_AND_AND;
1118
+ }
1119
+ else
1120
+ nextToken = '&';
1121
+
1122
+ break;
1123
+
1124
+ default:
1125
+ if (isLetter(ch) || ch == '_' || !isCharacter(input.current()))
1126
+ {
1127
+ token_text = IndexedString::fromIndex( skip_identifier (input) );
1128
+ if (token_text == definedText)
1129
+ nextToken = TOKEN_DEFINED;
1130
+ else
1131
+ nextToken = TOKEN_IDENTIFIER;
1132
+ }
1133
+ else if (isNumber(ch))
1134
+ {
1135
+ PreprocessedContents byteNumber;
1136
+ {
1137
+ Stream ns(&byteNumber);
1138
+ skip_number(input, ns);
1139
+ }
1140
+
1141
+ QString number(QString::fromUtf8(stringFromContents(byteNumber)));
1142
+ int base = 10;
1143
+ if (number.startsWith("0x")) {
1144
+ base = 16;
1145
+ } else if (number.startsWith('0')) {
1146
+ base = 8;
1147
+ }
1148
+
1149
+ if (number.endsWith('u', Qt::CaseInsensitive)) {
1150
+ token_uvalue = number.toULong(0, base);
1151
+ nextToken = TOKEN_UNUMBER;
1152
+
1153
+ } else {
1154
+ token_value = number.toLong(0, base);
1155
+ nextToken = TOKEN_NUMBER;
1156
+ }
1157
+ }
1158
+ else
1159
+ {
1160
+ if(isCharacter(input.current()))
1161
+ nextToken = characterFromIndex(input.current());
1162
+ else
1163
+ nextToken = TOKEN_IDENTIFIER;
1164
+ ++input;
1165
+ }
1166
+ }
1167
+
1168
+ //kDebug(9007) << "Next token '" << ch << ch2 << "'" << nextToken << "txt" << token_text << "val" << token_value;
1169
+
1170
+ haveNextToken = true;
1171
+ return nextToken;
1172
+ }
1173
+
1174
+ int pp::next_token_accept (Stream& input)
1175
+ {
1176
+ int result = next_token(input);
1177
+ accept_token();
1178
+ return result;
1179
+ }
1180
+
1181
+ void pp::accept_token()
1182
+ {
1183
+ haveNextToken = false;
1184
+ nextToken = 0;
1185
+ }
1186
+
1187
+ bool pp::hideNextMacro( ) const
1188
+ {
1189
+ return hideNext;
1190
+ }
1191
+
1192
+ void pp::setHideNextMacro( bool h )
1193
+ {
1194
+ hideNext = h;
1195
+ }
1196
+
1197
+ Environment* pp::environment( ) const
1198
+ {
1199
+ return m_environment;
1200
+ }
1201
+
1202
+ void pp::setEnvironment(Environment* env)
1203
+ {
1204
+ delete m_environment;
1205
+ m_environment = env;
1206
+ }
1207
+
1208
+ const QList< Problem* > & rpp::pp::problems() const
1209
+ {
1210
+ return m_problems;
1211
+ }
1212
+
1213
+ void rpp::pp::problemEncountered(Problem *problem)
1214
+ {
1215
+ m_problems.append(problem);
1216
+ }