qtbindings 4.8.6.1-x64-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CHANGELOG.txt +48 -0
- data/COPYING.LIB.txt +510 -0
- data/COPYING.txt +286 -0
- data/KNOWN_ISSUES.txt +17 -0
- data/Rakefile +121 -0
- data/TODO.txt +2 -0
- data/bin/2.0/rbrcc.exe +0 -0
- data/bin/2.0/rbuic4.exe +0 -0
- data/bin/2.0/smokeapi.exe +0 -0
- data/bin/2.0/smokedeptool.exe +0 -0
- data/bin/2.1/rbrcc.exe +0 -0
- data/bin/2.1/rbuic4.exe +0 -0
- data/bin/2.1/smokeapi.exe +0 -0
- data/bin/2.1/smokedeptool.exe +0 -0
- data/bin/2.2/rbrcc.exe +0 -0
- data/bin/2.2/rbuic4.exe +0 -0
- data/bin/2.2/smokeapi.exe +0 -0
- data/bin/2.2/smokedeptool.exe +0 -0
- data/bin/rbqtapi +152 -0
- data/bin/rbrcc +14 -0
- data/bin/rbuic4 +14 -0
- data/bin/smokeapi +14 -0
- data/bin/smokedeptool +14 -0
- data/examples/designer/calculatorbuilder/calculatorbuilder.qrc +5 -0
- data/examples/designer/calculatorbuilder/calculatorform.rb +60 -0
- data/examples/designer/calculatorbuilder/calculatorform.ui +299 -0
- data/examples/designer/calculatorbuilder/main.rb +34 -0
- data/examples/designer/calculatorbuilder/makefile +2 -0
- data/examples/designer/calculatorform/calculatorform.rb +46 -0
- data/examples/designer/calculatorform/calculatorform.ui +277 -0
- data/examples/designer/calculatorform/main.rb +32 -0
- data/examples/designer/calculatorform/makefile +3 -0
- data/examples/desktop/screenshot/main.rb +32 -0
- data/examples/desktop/screenshot/screenshot.rb +157 -0
- data/examples/desktop/systray/images/bad.svg +64 -0
- data/examples/desktop/systray/images/heart.svg +55 -0
- data/examples/desktop/systray/images/trash.svg +58 -0
- data/examples/desktop/systray/main.rb +41 -0
- data/examples/desktop/systray/makefile +2 -0
- data/examples/desktop/systray/systray.qrc +7 -0
- data/examples/desktop/systray/window.rb +219 -0
- data/examples/dialogs/complexwizard/complexwizard.rb +140 -0
- data/examples/dialogs/complexwizard/licensewizard.rb +294 -0
- data/examples/dialogs/complexwizard/main.rb +31 -0
- data/examples/dialogs/configdialog/configdialog.rb +109 -0
- data/examples/dialogs/configdialog/images/config.png +0 -0
- data/examples/dialogs/configdialog/images/query.png +0 -0
- data/examples/dialogs/configdialog/images/update.png +0 -0
- data/examples/dialogs/configdialog/main.rb +31 -0
- data/examples/dialogs/configdialog/pages.rb +140 -0
- data/examples/dialogs/extension/finddialog.rb +89 -0
- data/examples/dialogs/extension/main.rb +31 -0
- data/examples/dialogs/findfiles/main.rb +32 -0
- data/examples/dialogs/findfiles/window.rb +177 -0
- data/examples/dialogs/simplewizard/classwizard.rb +374 -0
- data/examples/dialogs/simplewizard/main.rb +31 -0
- data/examples/dialogs/simplewizard/simplewizard.rb +110 -0
- data/examples/dialogs/standarddialogs/dialog.rb +340 -0
- data/examples/dialogs/standarddialogs/main.rb +31 -0
- data/examples/dialogs/tabdialog/main.rb +38 -0
- data/examples/dialogs/tabdialog/tabdialog.rb +178 -0
- data/examples/draganddrop/draggableicons/dragwidget.rb +125 -0
- data/examples/draganddrop/draggableicons/images/boat.png +0 -0
- data/examples/draganddrop/draggableicons/images/car.png +0 -0
- data/examples/draganddrop/draggableicons/images/house.png +0 -0
- data/examples/draganddrop/draggableicons/main.rb +41 -0
- data/examples/draganddrop/draggabletext/draglabel.rb +51 -0
- data/examples/draganddrop/draggabletext/dragwidget.rb +94 -0
- data/examples/draganddrop/draggabletext/main.rb +33 -0
- data/examples/draganddrop/draggabletext/words.txt +41 -0
- data/examples/draganddrop/dropsite/dropsitewidget.rb +99 -0
- data/examples/draganddrop/dropsite/dropsitewindow.rb +114 -0
- data/examples/draganddrop/dropsite/main.rb +33 -0
- data/examples/draganddrop/fridgemagnets/draglabel.rb +78 -0
- data/examples/draganddrop/fridgemagnets/dragwidget.rb +130 -0
- data/examples/draganddrop/fridgemagnets/main.rb +33 -0
- data/examples/draganddrop/fridgemagnets/words.txt +48 -0
- data/examples/draganddrop/puzzle/example.jpg +0 -0
- data/examples/draganddrop/puzzle/main.rb +33 -0
- data/examples/draganddrop/puzzle/mainwindow.rb +136 -0
- data/examples/draganddrop/puzzle/pieceslist.rb +95 -0
- data/examples/draganddrop/puzzle/puzzlewidget.rb +190 -0
- data/examples/graphicsview/collidingmice/images/cheese.jpg +0 -0
- data/examples/graphicsview/collidingmice/main.rb +53 -0
- data/examples/graphicsview/collidingmice/makefile +2 -0
- data/examples/graphicsview/collidingmice/mice.qrc +5 -0
- data/examples/graphicsview/collidingmice/mouse.rb +176 -0
- data/examples/graphicsview/dragdroprobot/coloritem.rb +86 -0
- data/examples/graphicsview/dragdroprobot/images/head.png +0 -0
- data/examples/graphicsview/dragdroprobot/main.rb +57 -0
- data/examples/graphicsview/dragdroprobot/makefile +2 -0
- data/examples/graphicsview/dragdroprobot/robot.qrc +5 -0
- data/examples/graphicsview/dragdroprobot/robot.rb +246 -0
- data/examples/itemviews/chart/chart.qrc +5 -0
- data/examples/itemviews/chart/main.rb +33 -0
- data/examples/itemviews/chart/mainwindow.rb +151 -0
- data/examples/itemviews/chart/makefile +2 -0
- data/examples/itemviews/chart/mydata.cht +8 -0
- data/examples/itemviews/chart/pieview.rb +516 -0
- data/examples/itemviews/chart/qtdata.cht +14 -0
- data/examples/itemviews/dirview/main.rb +39 -0
- data/examples/itemviews/pixelator/imagemodel.rb +51 -0
- data/examples/itemviews/pixelator/images.qrc +5 -0
- data/examples/itemviews/pixelator/images/qt.png +0 -0
- data/examples/itemviews/pixelator/main.rb +34 -0
- data/examples/itemviews/pixelator/mainwindow.rb +218 -0
- data/examples/itemviews/pixelator/makefile +3 -0
- data/examples/itemviews/pixelator/pixeldelegate.rb +67 -0
- data/examples/itemviews/puzzle/example.jpg +0 -0
- data/examples/itemviews/puzzle/main.rb +36 -0
- data/examples/itemviews/puzzle/mainwindow.rb +143 -0
- data/examples/itemviews/puzzle/piecesmodel.rb +174 -0
- data/examples/itemviews/puzzle/puzzlewidget.rb +192 -0
- data/examples/itemviews/simpledommodel/domitem.rb +62 -0
- data/examples/itemviews/simpledommodel/dommodel.rb +139 -0
- data/examples/itemviews/simpledommodel/main.rb +33 -0
- data/examples/itemviews/simpledommodel/mainwindow.rb +66 -0
- data/examples/itemviews/simpletreemodel/default.txt +40 -0
- data/examples/itemviews/simpletreemodel/main.rb +41 -0
- data/examples/itemviews/simpletreemodel/makefile +2 -0
- data/examples/itemviews/simpletreemodel/simpletreemodel.qrc +5 -0
- data/examples/itemviews/simpletreemodel/treeitem.rb +67 -0
- data/examples/itemviews/simpletreemodel/treemodel.rb +164 -0
- data/examples/itemviews/sortingmodel/default.txt +40 -0
- data/examples/itemviews/sortingmodel/main.rb +53 -0
- data/examples/itemviews/sortingmodel/treeitem.rb +73 -0
- data/examples/itemviews/sortingmodel/treemodel.rb +166 -0
- data/examples/itemviews/spinboxdelegate/main.rb +47 -0
- data/examples/itemviews/spinboxdelegate/spinboxdelegate.rb +62 -0
- data/examples/killerfilter/killerfilter.rb +55 -0
- data/examples/layouts/basiclayouts/dialog.rb +110 -0
- data/examples/layouts/basiclayouts/main.rb +31 -0
- data/examples/layouts/borderlayout/borderlayout.rb +190 -0
- data/examples/layouts/borderlayout/main.rb +32 -0
- data/examples/layouts/borderlayout/window.rb +52 -0
- data/examples/layouts/flowlayouts/flowlayout.rb +108 -0
- data/examples/layouts/flowlayouts/main.rb +32 -0
- data/examples/layouts/flowlayouts/window.rb +43 -0
- data/examples/mainwindows/application/images/copy.png +0 -0
- data/examples/mainwindows/application/images/cut.png +0 -0
- data/examples/mainwindows/application/images/new.png +0 -0
- data/examples/mainwindows/application/images/open.png +0 -0
- data/examples/mainwindows/application/images/paste.png +0 -0
- data/examples/mainwindows/application/images/save.png +0 -0
- data/examples/mainwindows/application/main.rb +32 -0
- data/examples/mainwindows/application/mainwindow.rb +285 -0
- data/examples/mainwindows/dockwidgets/images/new.png +0 -0
- data/examples/mainwindows/dockwidgets/images/print.png +0 -0
- data/examples/mainwindows/dockwidgets/images/save.png +0 -0
- data/examples/mainwindows/dockwidgets/images/undo.png +0 -0
- data/examples/mainwindows/dockwidgets/main.rb +32 -0
- data/examples/mainwindows/dockwidgets/mainwindow.rb +302 -0
- data/examples/mainwindows/mdi/images/copy.png +0 -0
- data/examples/mainwindows/mdi/images/cut.png +0 -0
- data/examples/mainwindows/mdi/images/new.png +0 -0
- data/examples/mainwindows/mdi/images/open.png +0 -0
- data/examples/mainwindows/mdi/images/paste.png +0 -0
- data/examples/mainwindows/mdi/images/save.png +0 -0
- data/examples/mainwindows/mdi/main.rb +32 -0
- data/examples/mainwindows/mdi/mainwindow.rb +363 -0
- data/examples/mainwindows/mdi/mdichild.rb +152 -0
- data/examples/mainwindows/menus/main.rb +32 -0
- data/examples/mainwindows/menus/mainwindow.rb +327 -0
- data/examples/mainwindows/recentfiles/main.rb +32 -0
- data/examples/mainwindows/recentfiles/mainwindow.rb +258 -0
- data/examples/mainwindows/sdi/images/copy.png +0 -0
- data/examples/mainwindows/sdi/images/cut.png +0 -0
- data/examples/mainwindows/sdi/images/new.png +0 -0
- data/examples/mainwindows/sdi/images/open.png +0 -0
- data/examples/mainwindows/sdi/images/paste.png +0 -0
- data/examples/mainwindows/sdi/images/save.png +0 -0
- data/examples/mainwindows/sdi/main.rb +32 -0
- data/examples/mainwindows/sdi/mainwindow.rb +335 -0
- data/examples/network/broadcastreceiver/main.rb +32 -0
- data/examples/network/broadcastreceiver/receiver.rb +64 -0
- data/examples/network/broadcastsender/main.rb +32 -0
- data/examples/network/broadcastsender/sender.rb +72 -0
- data/examples/network/fortuneclient/client.rb +149 -0
- data/examples/network/fortuneclient/main.rb +32 -0
- data/examples/network/fortuneserver/main.rb +32 -0
- data/examples/network/fortuneserver/server.rb +88 -0
- data/examples/network/ftp/ftpwindow.rb +259 -0
- data/examples/network/ftp/images/cdtoparent.png +0 -0
- data/examples/network/ftp/images/dir.png +0 -0
- data/examples/network/ftp/images/file.png +0 -0
- data/examples/network/ftp/main.rb +32 -0
- data/examples/network/http/httpwindow.rb +187 -0
- data/examples/network/http/main.rb +32 -0
- data/examples/network/loopback/dialog.rb +163 -0
- data/examples/network/loopback/main.rb +32 -0
- data/examples/opengl/grabber/glwidget.rb +265 -0
- data/examples/opengl/grabber/main.rb +32 -0
- data/examples/opengl/grabber/mainwindow.rb +189 -0
- data/examples/opengl/hellogl/glwidget.rb +226 -0
- data/examples/opengl/hellogl/main.rb +32 -0
- data/examples/opengl/hellogl/window.rb +66 -0
- data/examples/opengl/textures/glwidget.rb +151 -0
- data/examples/opengl/textures/images/side1.png +0 -0
- data/examples/opengl/textures/images/side2.png +0 -0
- data/examples/opengl/textures/images/side3.png +0 -0
- data/examples/opengl/textures/images/side4.png +0 -0
- data/examples/opengl/textures/images/side5.png +0 -0
- data/examples/opengl/textures/images/side6.png +0 -0
- data/examples/opengl/textures/main.rb +32 -0
- data/examples/opengl/textures/window.rb +77 -0
- data/examples/painting/basicdrawing/images/brick.png +0 -0
- data/examples/painting/basicdrawing/images/qt-logo.png +0 -0
- data/examples/painting/basicdrawing/main.rb +32 -0
- data/examples/painting/basicdrawing/renderarea.rb +166 -0
- data/examples/painting/basicdrawing/window.rb +215 -0
- data/examples/painting/concentriccircles/circlewidget.rb +88 -0
- data/examples/painting/concentriccircles/main.rb +32 -0
- data/examples/painting/concentriccircles/window.rb +72 -0
- data/examples/painting/fontsampler/main.rb +32 -0
- data/examples/painting/fontsampler/mainwindow.rb +369 -0
- data/examples/painting/fontsampler/mainwindowbase.ui +136 -0
- data/examples/painting/fontsampler/makefile +8 -0
- data/examples/painting/fontsampler/previewdialog.rb +257 -0
- data/examples/painting/fontsampler/previewdialogbase.ui +224 -0
- data/examples/painting/fontsampler/previewlabel.rb +43 -0
- data/examples/painting/imagecomposition/imagecomposer.rb +152 -0
- data/examples/painting/imagecomposition/imagecomposition.qrc +6 -0
- data/examples/painting/imagecomposition/images/background.png +0 -0
- data/examples/painting/imagecomposition/images/blackrectangle.png +0 -0
- data/examples/painting/imagecomposition/images/butterfly.png +0 -0
- data/examples/painting/imagecomposition/images/checker.png +0 -0
- data/examples/painting/imagecomposition/main.rb +33 -0
- data/examples/painting/imagecomposition/makefile +2 -0
- data/examples/painting/painterpaths/main.rb +32 -0
- data/examples/painting/painterpaths/renderarea.rb +97 -0
- data/examples/painting/painterpaths/window.rb +247 -0
- data/examples/painting/svgviewer/files/bubbles.svg +212 -0
- data/examples/painting/svgviewer/files/cubic.svg +77 -0
- data/examples/painting/svgviewer/files/spheres.svg +79 -0
- data/examples/painting/svgviewer/main.rb +38 -0
- data/examples/painting/svgviewer/mainwindow.rb +99 -0
- data/examples/painting/svgviewer/makefile +2 -0
- data/examples/painting/svgviewer/svgview.rb +156 -0
- data/examples/painting/svgviewer/svgviewer.qrc +6 -0
- data/examples/painting/svgviewer/svgwindow.rb +87 -0
- data/examples/painting/transformations/main.rb +32 -0
- data/examples/painting/transformations/renderarea.rb +127 -0
- data/examples/painting/transformations/window.rb +153 -0
- data/examples/passivepopup/passivepopup.rb +38 -0
- data/examples/qdbus/chat/chat.rb +146 -0
- data/examples/qdbus/chat/chat_adaptor.rb +12 -0
- data/examples/qdbus/chat/chat_interface.rb +13 -0
- data/examples/qdbus/chat/chatmainwindow.ui +184 -0
- data/examples/qdbus/chat/chatsetnickname.ui +145 -0
- data/examples/qdbus/chat/makefile +8 -0
- data/examples/qdbus/complexpingpong/complexping.rb +92 -0
- data/examples/qdbus/complexpingpong/complexpong.rb +83 -0
- data/examples/qdbus/complexpingpong/ping-common.rb +1 -0
- data/examples/qdbus/listnames/listnames.rb +69 -0
- data/examples/qdbus/pingpong/ping-common.rb +1 -0
- data/examples/qdbus/pingpong/ping.rb +52 -0
- data/examples/qdbus/pingpong/pong.rb +55 -0
- data/examples/qdbus/remotecontrolledcar/car/car.rb +151 -0
- data/examples/qdbus/remotecontrolledcar/car/main.rb +50 -0
- data/examples/qdbus/remotecontrolledcar/controller/controller.rb +66 -0
- data/examples/qdbus/remotecontrolledcar/controller/controller.ui +61 -0
- data/examples/qdbus/remotecontrolledcar/controller/main.rb +32 -0
- data/examples/qdbus/remotecontrolledcar/controller/makefile +2 -0
- data/examples/qtscribble/scribble.rb +270 -0
- data/examples/richtext/calendar/main.rb +33 -0
- data/examples/richtext/calendar/mainwindow.rb +173 -0
- data/examples/richtext/orderform/detailsdialog.rb +130 -0
- data/examples/richtext/orderform/main.rb +34 -0
- data/examples/richtext/orderform/mainwindow.rb +194 -0
- data/examples/richtext/syntaxhighlighter/examples/example +79 -0
- data/examples/richtext/syntaxhighlighter/highlighter.rb +90 -0
- data/examples/richtext/syntaxhighlighter/main.rb +34 -0
- data/examples/richtext/syntaxhighlighter/mainwindow.rb +105 -0
- data/examples/ruboids/LICENSE.txt +58 -0
- data/examples/ruboids/Manifest +26 -0
- data/examples/ruboids/README +53 -0
- data/examples/ruboids/TODO +29 -0
- data/examples/ruboids/boids.properties +33 -0
- data/examples/ruboids/generateManifest.rb +42 -0
- data/examples/ruboids/index.html +147 -0
- data/examples/ruboids/release.rb +152 -0
- data/examples/ruboids/ruboids/Boid.rb +141 -0
- data/examples/ruboids/ruboids/BoidView.rb +159 -0
- data/examples/ruboids/ruboids/Camera.rb +24 -0
- data/examples/ruboids/ruboids/CameraDialog.rb +218 -0
- data/examples/ruboids/ruboids/Canvas.rb +143 -0
- data/examples/ruboids/ruboids/Cloud.rb +61 -0
- data/examples/ruboids/ruboids/CloudView.rb +54 -0
- data/examples/ruboids/ruboids/Flock.rb +47 -0
- data/examples/ruboids/ruboids/Graphics.rb +278 -0
- data/examples/ruboids/ruboids/Params.rb +87 -0
- data/examples/ruboids/ruboids/Point.rb +153 -0
- data/examples/ruboids/ruboids/Thing.rb +34 -0
- data/examples/ruboids/ruboids/Triangle.rb +21 -0
- data/examples/ruboids/ruboids/View.rb +88 -0
- data/examples/ruboids/ruboids/World.rb +82 -0
- data/examples/ruboids/ruboids/WorldWindow.rb +52 -0
- data/examples/ruboids/ruboids/info.rb +12 -0
- data/examples/ruboids/ruboids/ruboids.rb +29 -0
- data/examples/run_all.rb +15 -0
- data/examples/threading/main_thread.rb +19 -0
- data/examples/tutorial/t1/t1.rb +10 -0
- data/examples/tutorial/t10/cannon.rb +72 -0
- data/examples/tutorial/t10/lcdrange.rb +45 -0
- data/examples/tutorial/t10/t10.rb +55 -0
- data/examples/tutorial/t11/cannon.rb +124 -0
- data/examples/tutorial/t11/lcdrange.rb +45 -0
- data/examples/tutorial/t11/t11.rb +65 -0
- data/examples/tutorial/t12/cannon.rb +158 -0
- data/examples/tutorial/t12/lcdrange.rb +59 -0
- data/examples/tutorial/t12/t12.rb +66 -0
- data/examples/tutorial/t13/cannon.rb +208 -0
- data/examples/tutorial/t13/gamebrd.rb +113 -0
- data/examples/tutorial/t13/lcdrange.rb +60 -0
- data/examples/tutorial/t13/t13.rb +11 -0
- data/examples/tutorial/t14/cannon.rb +263 -0
- data/examples/tutorial/t14/gamebrd.rb +123 -0
- data/examples/tutorial/t14/lcdrange.rb +63 -0
- data/examples/tutorial/t14/t14.rb +11 -0
- data/examples/tutorial/t2/t2.rb +16 -0
- data/examples/tutorial/t3/t3.rb +18 -0
- data/examples/tutorial/t4/t4.rb +25 -0
- data/examples/tutorial/t5/t5.rb +37 -0
- data/examples/tutorial/t6/t6.rb +52 -0
- data/examples/tutorial/t7/lcdrange.rb +32 -0
- data/examples/tutorial/t7/t7.rb +42 -0
- data/examples/tutorial/t8/cannon.rb +38 -0
- data/examples/tutorial/t8/lcdrange.rb +45 -0
- data/examples/tutorial/t8/t8.rb +43 -0
- data/examples/tutorial/t9/cannon.rb +45 -0
- data/examples/tutorial/t9/lcdrange.rb +46 -0
- data/examples/tutorial/t9/t9.rb +43 -0
- data/examples/widgets/analogclock/analogclock.rb +94 -0
- data/examples/widgets/analogclock/main.rb +9 -0
- data/examples/widgets/calculator/button.rb +45 -0
- data/examples/widgets/calculator/calculator.rb +382 -0
- data/examples/widgets/calculator/main.rb +32 -0
- data/examples/widgets/charactermap/characterwidget.rb +110 -0
- data/examples/widgets/charactermap/main.rb +32 -0
- data/examples/widgets/charactermap/mainwindow.rb +118 -0
- data/examples/widgets/digitalclock/digitalclock.rb +30 -0
- data/examples/widgets/digitalclock/main.rb +9 -0
- data/examples/widgets/groupbox/main.rb +32 -0
- data/examples/widgets/groupbox/window.rb +134 -0
- data/examples/widgets/icons/iconpreviewarea.rb +111 -0
- data/examples/widgets/icons/iconsizespinbox.rb +39 -0
- data/examples/widgets/icons/imagedelegate.rb +73 -0
- data/examples/widgets/icons/images/designer.png +0 -0
- data/examples/widgets/icons/images/find_disabled.png +0 -0
- data/examples/widgets/icons/images/find_normal.png +0 -0
- data/examples/widgets/icons/images/monkey_off_128x128.png +0 -0
- data/examples/widgets/icons/images/monkey_off_16x16.png +0 -0
- data/examples/widgets/icons/images/monkey_off_32x32.png +0 -0
- data/examples/widgets/icons/images/monkey_off_64x64.png +0 -0
- data/examples/widgets/icons/images/monkey_on_128x128.png +0 -0
- data/examples/widgets/icons/images/monkey_on_16x16.png +0 -0
- data/examples/widgets/icons/images/monkey_on_32x32.png +0 -0
- data/examples/widgets/icons/images/monkey_on_64x64.png +0 -0
- data/examples/widgets/icons/images/qtopia_16x16.png +0 -0
- data/examples/widgets/icons/images/qtopia_32x32.png +0 -0
- data/examples/widgets/icons/images/qtopia_48x48.png +0 -0
- data/examples/widgets/icons/main.rb +32 -0
- data/examples/widgets/icons/mainwindow.rb +351 -0
- data/examples/widgets/imageviewer/imageviewer.rb +219 -0
- data/examples/widgets/imageviewer/main.rb +32 -0
- data/examples/widgets/lineedits/main.rb +32 -0
- data/examples/widgets/lineedits/window.rb +199 -0
- data/examples/widgets/movie/images/open.png +0 -0
- data/examples/widgets/movie/images/pause.png +0 -0
- data/examples/widgets/movie/images/play.png +0 -0
- data/examples/widgets/movie/images/quit.png +0 -0
- data/examples/widgets/movie/images/stop.png +0 -0
- data/examples/widgets/movie/main.rb +32 -0
- data/examples/widgets/movie/movieplayer.rb +201 -0
- data/examples/widgets/movie/movies/fire.mng +0 -0
- data/examples/widgets/screenshot/main.rb +32 -0
- data/examples/widgets/screenshot/screenshot.rb +155 -0
- data/examples/widgets/scribble/main.rb +32 -0
- data/examples/widgets/scribble/mainwindow.rb +202 -0
- data/examples/widgets/scribble/scribblearea.rb +154 -0
- data/examples/widgets/sliders/main.rb +32 -0
- data/examples/widgets/sliders/slidersgroup.rb +97 -0
- data/examples/widgets/sliders/window.rb +124 -0
- data/examples/widgets/spinboxes/main.rb +32 -0
- data/examples/widgets/spinboxes/window.rb +213 -0
- data/examples/widgets/tetrix/main.rb +33 -0
- data/examples/widgets/tetrix/tetrixboard.rb +346 -0
- data/examples/widgets/tetrix/tetrixpiece.rb +135 -0
- data/examples/widgets/tetrix/tetrixwindow.rb +88 -0
- data/examples/widgets/tooltips/images/circle.png +0 -0
- data/examples/widgets/tooltips/images/square.png +0 -0
- data/examples/widgets/tooltips/images/triangle.png +0 -0
- data/examples/widgets/tooltips/main.rb +32 -0
- data/examples/widgets/tooltips/shapeitem.rb +31 -0
- data/examples/widgets/tooltips/sortingbox.rb +222 -0
- data/examples/widgets/wiggly/dialog.rb +48 -0
- data/examples/widgets/wiggly/main.rb +9 -0
- data/examples/widgets/wiggly/wigglywidget.rb +76 -0
- data/examples/widgets/windowflags/controllerwindow.rb +195 -0
- data/examples/widgets/windowflags/main.rb +32 -0
- data/examples/widgets/windowflags/previewwindow.rb +103 -0
- data/examples/xml/dombookmarks/frank.xbel +230 -0
- data/examples/xml/dombookmarks/jennifer.xbel +93 -0
- data/examples/xml/dombookmarks/main.rb +34 -0
- data/examples/xml/dombookmarks/mainwindow.rb +129 -0
- data/examples/xml/dombookmarks/xbeltree.rb +172 -0
- data/examples/xml/saxbookmarks/frank.xbel +230 -0
- data/examples/xml/saxbookmarks/jennifer.xbel +93 -0
- data/examples/xml/saxbookmarks/main.rb +34 -0
- data/examples/xml/saxbookmarks/mainwindow.rb +144 -0
- data/examples/xml/saxbookmarks/xbelgenerator.rb +95 -0
- data/examples/xml/saxbookmarks/xbelhandler.rb +122 -0
- data/extconf.rb +256 -0
- data/lib/2.0/libqtruby4shared.dll +0 -0
- data/lib/2.0/libsmokebase.dll +0 -0
- data/lib/2.0/libsmokeqtcore.dll +0 -0
- data/lib/2.0/libsmokeqtdeclarative.dll +0 -0
- data/lib/2.0/libsmokeqtgui.dll +0 -0
- data/lib/2.0/libsmokeqthelp.dll +0 -0
- data/lib/2.0/libsmokeqtmultimedia.dll +0 -0
- data/lib/2.0/libsmokeqtnetwork.dll +0 -0
- data/lib/2.0/libsmokeqtopengl.dll +0 -0
- data/lib/2.0/libsmokeqtscript.dll +0 -0
- data/lib/2.0/libsmokeqtsql.dll +0 -0
- data/lib/2.0/libsmokeqtsvg.dll +0 -0
- data/lib/2.0/libsmokeqttest.dll +0 -0
- data/lib/2.0/libsmokeqtuitools.dll +0 -0
- data/lib/2.0/libsmokeqtwebkit.dll +0 -0
- data/lib/2.0/libsmokeqtxml.dll +0 -0
- data/lib/2.0/libsmokeqtxmlpatterns.dll +0 -0
- data/lib/2.0/qtdeclarative.so +0 -0
- data/lib/2.0/qtruby4.so +0 -0
- data/lib/2.0/qtscript.so +0 -0
- data/lib/2.0/qttest.so +0 -0
- data/lib/2.0/qtuitools.so +0 -0
- data/lib/2.0/qtwebkit.so +0 -0
- data/lib/2.1/libqtruby4shared.dll +0 -0
- data/lib/2.1/libsmokebase.dll +0 -0
- data/lib/2.1/libsmokeqtcore.dll +0 -0
- data/lib/2.1/libsmokeqtdeclarative.dll +0 -0
- data/lib/2.1/libsmokeqtgui.dll +0 -0
- data/lib/2.1/libsmokeqthelp.dll +0 -0
- data/lib/2.1/libsmokeqtmultimedia.dll +0 -0
- data/lib/2.1/libsmokeqtnetwork.dll +0 -0
- data/lib/2.1/libsmokeqtopengl.dll +0 -0
- data/lib/2.1/libsmokeqtscript.dll +0 -0
- data/lib/2.1/libsmokeqtsql.dll +0 -0
- data/lib/2.1/libsmokeqtsvg.dll +0 -0
- data/lib/2.1/libsmokeqttest.dll +0 -0
- data/lib/2.1/libsmokeqtuitools.dll +0 -0
- data/lib/2.1/libsmokeqtwebkit.dll +0 -0
- data/lib/2.1/libsmokeqtxml.dll +0 -0
- data/lib/2.1/libsmokeqtxmlpatterns.dll +0 -0
- data/lib/2.1/qtdeclarative.so +0 -0
- data/lib/2.1/qtruby4.so +0 -0
- data/lib/2.1/qtscript.so +0 -0
- data/lib/2.1/qttest.so +0 -0
- data/lib/2.1/qtuitools.so +0 -0
- data/lib/2.1/qtwebkit.so +0 -0
- data/lib/2.2/libqtruby4shared.dll +0 -0
- data/lib/2.2/libsmokebase.dll +0 -0
- data/lib/2.2/libsmokeqtcore.dll +0 -0
- data/lib/2.2/libsmokeqtdeclarative.dll +0 -0
- data/lib/2.2/libsmokeqtgui.dll +0 -0
- data/lib/2.2/libsmokeqthelp.dll +0 -0
- data/lib/2.2/libsmokeqtmultimedia.dll +0 -0
- data/lib/2.2/libsmokeqtnetwork.dll +0 -0
- data/lib/2.2/libsmokeqtopengl.dll +0 -0
- data/lib/2.2/libsmokeqtscript.dll +0 -0
- data/lib/2.2/libsmokeqtsql.dll +0 -0
- data/lib/2.2/libsmokeqtsvg.dll +0 -0
- data/lib/2.2/libsmokeqttest.dll +0 -0
- data/lib/2.2/libsmokeqtuitools.dll +0 -0
- data/lib/2.2/libsmokeqtwebkit.dll +0 -0
- data/lib/2.2/libsmokeqtxml.dll +0 -0
- data/lib/2.2/libsmokeqtxmlpatterns.dll +0 -0
- data/lib/2.2/qtdeclarative.so +0 -0
- data/lib/2.2/qtruby4.so +0 -0
- data/lib/2.2/qtscript.so +0 -0
- data/lib/2.2/qttest.so +0 -0
- data/lib/2.2/qtuitools.so +0 -0
- data/lib/2.2/qtwebkit.so +0 -0
- data/lib/Qt.rb +1 -0
- data/lib/Qt/qtruby4.rb +3258 -0
- data/lib/Qt4.rb +111 -0
- data/lib/qtbindings_version.rb +2 -0
- data/lib/qtdeclarative/qtdeclarative.rb +17 -0
- data/lib/qtscript/qtscript.rb +40 -0
- data/lib/qttest/qttest.rb +166 -0
- data/lib/qtuitools/qtuitools.rb +17 -0
- data/lib/qtwebkit/qtwebkit.rb +17 -0
- data/qtbindings.gemspec +18 -0
- data/qtbindingsnative.gemspec +19 -0
- metadata +559 -0
@@ -0,0 +1,135 @@
|
|
1
|
+
=begin
|
2
|
+
**
|
3
|
+
** Copyright (C) 2004-2005 Trolltech AS. All rights reserved.
|
4
|
+
**
|
5
|
+
** This file is part of the example classes of the Qt Toolkit.
|
6
|
+
**
|
7
|
+
** This file may be used under the terms of the GNU General Public
|
8
|
+
** License version 2.0 as published by the Free Software Foundation
|
9
|
+
** and appearing in the file LICENSE.GPL included in the packaging of
|
10
|
+
** this file. Please review the following information to ensure GNU
|
11
|
+
** General Public Licensing requirements will be met:
|
12
|
+
** http://www.trolltech.com/products/qt/opensource.html
|
13
|
+
**
|
14
|
+
** If you are unsure which license is appropriate for your use, please
|
15
|
+
** review the following information:
|
16
|
+
** http://www.trolltech.com/products/qt/licensing.html or contact the
|
17
|
+
** sales department at sales@trolltech.com.
|
18
|
+
**
|
19
|
+
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
20
|
+
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
21
|
+
**
|
22
|
+
|
23
|
+
** Translated to QtRuby by Richard Dale
|
24
|
+
=end
|
25
|
+
|
26
|
+
class TetrixPiece
|
27
|
+
|
28
|
+
NoShape = 0
|
29
|
+
ZShape = 1
|
30
|
+
SShape = 2
|
31
|
+
LineShape = 3
|
32
|
+
TShape = 4
|
33
|
+
SquareShape = 5
|
34
|
+
LShape = 6
|
35
|
+
MirroredLShape = 7
|
36
|
+
|
37
|
+
def initialize()
|
38
|
+
@coordsTable = [
|
39
|
+
[ [ 0, 0 ], [ 0, 0 ], [ 0, 0 ], [ 0, 0 ] ],
|
40
|
+
[ [ 0, -1 ], [ 0, 0 ], [ -1, 0 ], [ -1, 1 ] ],
|
41
|
+
[ [ 0, -1 ], [ 0, 0 ], [ 1, 0 ], [ 1, 1 ] ],
|
42
|
+
[ [ 0, -1 ], [ 0, 0 ], [ 0, 1 ], [ 0, 2 ] ],
|
43
|
+
[ [ -1, 0 ], [ 0, 0 ], [ 1, 0 ], [ 0, 1 ] ],
|
44
|
+
[ [ 0, 0 ], [ 1, 0 ], [ 0, 1 ], [ 1, 1 ] ],
|
45
|
+
[ [ -1, -1 ], [ 0, -1 ], [ 0, 0 ], [ 0, 1 ] ],
|
46
|
+
[ [ 1, -1 ], [ 0, -1 ], [ 0, 0 ], [ 0, 1 ] ] ]
|
47
|
+
@coords = [[0, 0], [0, 0], [0, 0], [0, 0]]
|
48
|
+
|
49
|
+
self.shape = NoShape
|
50
|
+
end
|
51
|
+
|
52
|
+
def shape() return @pieceShape end
|
53
|
+
def x(index) return @coords[index][0] end
|
54
|
+
def y(index) return @coords[index][1] end
|
55
|
+
|
56
|
+
def setX(index, x) @coords[index][0] = x end
|
57
|
+
def setY(index, y) @coords[index][1] = y end
|
58
|
+
|
59
|
+
def setRandomShape()
|
60
|
+
self.shape = Kernel.rand(7) + 1
|
61
|
+
end
|
62
|
+
|
63
|
+
def shape=(shape)
|
64
|
+
(0...4).each do |i|
|
65
|
+
(0...2).each do |j|
|
66
|
+
@coords[i][j] = @coordsTable[shape][i][j]
|
67
|
+
end
|
68
|
+
end
|
69
|
+
@pieceShape = shape
|
70
|
+
end
|
71
|
+
|
72
|
+
def pieceShape=(shape)
|
73
|
+
@pieceShape = shape
|
74
|
+
end
|
75
|
+
|
76
|
+
def minX()
|
77
|
+
min = @coords[0][0]
|
78
|
+
(1...4).each do |i|
|
79
|
+
min = [min, @coords[i][0]].min
|
80
|
+
end
|
81
|
+
return min
|
82
|
+
end
|
83
|
+
|
84
|
+
def maxX()
|
85
|
+
max = @coords[0][0]
|
86
|
+
(1...4).each do |i|
|
87
|
+
max = [max, @coords[i][0]].max
|
88
|
+
end
|
89
|
+
return max
|
90
|
+
end
|
91
|
+
|
92
|
+
def minY()
|
93
|
+
min = @coords[0][1]
|
94
|
+
(1...4).each do |i|
|
95
|
+
min = [min, @coords[i][1]].min
|
96
|
+
end
|
97
|
+
return min
|
98
|
+
end
|
99
|
+
|
100
|
+
def maxY()
|
101
|
+
max = @coords[0][1]
|
102
|
+
(1...4).each do |i|
|
103
|
+
max = [max, @coords[i][1]].max
|
104
|
+
end
|
105
|
+
return max
|
106
|
+
end
|
107
|
+
|
108
|
+
def rotatedLeft()
|
109
|
+
if @pieceShape == SquareShape
|
110
|
+
return self
|
111
|
+
end
|
112
|
+
|
113
|
+
result = TetrixPiece.new
|
114
|
+
result.pieceShape = @pieceShape
|
115
|
+
(0...4).each do |i|
|
116
|
+
result.setX(i, y(i))
|
117
|
+
result.setY(i, -x(i))
|
118
|
+
end
|
119
|
+
return result
|
120
|
+
end
|
121
|
+
|
122
|
+
def rotatedRight()
|
123
|
+
if @pieceShape == SquareShape
|
124
|
+
return self
|
125
|
+
end
|
126
|
+
|
127
|
+
result = TetrixPiece.new
|
128
|
+
result.pieceShape = @pieceShape
|
129
|
+
(0...4).each do |i|
|
130
|
+
result.setX(i, -y(i))
|
131
|
+
result.setY(i, x(i))
|
132
|
+
end
|
133
|
+
return result
|
134
|
+
end
|
135
|
+
end
|
@@ -0,0 +1,88 @@
|
|
1
|
+
=begin
|
2
|
+
**
|
3
|
+
** Copyright (C) 2004-2005 Trolltech AS. All rights reserved.
|
4
|
+
**
|
5
|
+
** This file is part of the example classes of the Qt Toolkit.
|
6
|
+
**
|
7
|
+
** This file may be used under the terms of the GNU General Public
|
8
|
+
** License version 2.0 as published by the Free Software Foundation
|
9
|
+
** and appearing in the file LICENSE.GPL included in the packaging of
|
10
|
+
** this file. Please review the following information to ensure GNU
|
11
|
+
** General Public Licensing requirements will be met:
|
12
|
+
** http://www.trolltech.com/products/qt/opensource.html
|
13
|
+
**
|
14
|
+
** If you are unsure which license is appropriate for your use, please
|
15
|
+
** review the following information:
|
16
|
+
** http://www.trolltech.com/products/qt/licensing.html or contact the
|
17
|
+
** sales department at sales@trolltech.com.
|
18
|
+
**
|
19
|
+
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
20
|
+
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
21
|
+
**
|
22
|
+
|
23
|
+
** Translated to QtRuby by Richard Dale
|
24
|
+
=end
|
25
|
+
|
26
|
+
require './tetrixboard.rb'
|
27
|
+
|
28
|
+
class TetrixWindow < Qt::Widget
|
29
|
+
|
30
|
+
def initialize(parent = nil)
|
31
|
+
super(parent)
|
32
|
+
@board = TetrixBoard.new(self)
|
33
|
+
|
34
|
+
@nextPieceLabel = Qt::Label.new
|
35
|
+
@nextPieceLabel.frameStyle = Qt::Frame::Box | Qt::Frame::Raised
|
36
|
+
@nextPieceLabel.alignment = Qt::AlignCenter.to_i
|
37
|
+
@board.nextPieceLabel = @nextPieceLabel
|
38
|
+
|
39
|
+
@scoreLcd = Qt::LCDNumber.new(5)
|
40
|
+
@scoreLcd.segmentStyle = Qt::LCDNumber::Filled
|
41
|
+
@levelLcd = Qt::LCDNumber.new(2)
|
42
|
+
@levelLcd.segmentStyle = Qt::LCDNumber::Filled
|
43
|
+
@linesLcd = Qt::LCDNumber.new(5)
|
44
|
+
@linesLcd.segmentStyle = Qt::LCDNumber::Filled
|
45
|
+
|
46
|
+
@startButton = Qt::PushButton.new(tr("&Start"))
|
47
|
+
@startButton.focusPolicy = Qt::NoFocus
|
48
|
+
@quitButton = Qt::PushButton.new(tr("&Quit"))
|
49
|
+
@quitButton.focusPolicy = Qt::NoFocus
|
50
|
+
@pauseButton = Qt::PushButton.new(tr("&Pause"))
|
51
|
+
@pauseButton.focusPolicy = Qt::NoFocus
|
52
|
+
|
53
|
+
connect(@startButton, SIGNAL('clicked()'), @board, SLOT('start()'))
|
54
|
+
connect(@quitButton , SIGNAL('clicked()'), $qApp, SLOT('quit()'))
|
55
|
+
connect(@pauseButton, SIGNAL('clicked()'), @board, SLOT('pause()'))
|
56
|
+
connect(@board, SIGNAL('scoreChanged(int)'), @scoreLcd, SLOT('display(int)'))
|
57
|
+
connect(@board, SIGNAL('levelChanged(int)'), @levelLcd, SLOT('display(int)'))
|
58
|
+
connect(@board, SIGNAL('linesRemovedChanged(int)'),
|
59
|
+
@linesLcd, SLOT('display(int)'))
|
60
|
+
|
61
|
+
layout = Qt::GridLayout.new do |l|
|
62
|
+
l.addWidget(createLabel(tr("NEXT")), 0, 0)
|
63
|
+
l.addWidget(@nextPieceLabel, 1, 0)
|
64
|
+
l.addWidget(createLabel(tr("LEVEL")), 2, 0)
|
65
|
+
l.addWidget(@levelLcd, 3, 0)
|
66
|
+
l.addWidget(@startButton, 4, 0)
|
67
|
+
l.addWidget(@board, 0, 1, 6, 1)
|
68
|
+
l.addWidget(createLabel(tr("SCORE")), 0, 2)
|
69
|
+
l.addWidget(@scoreLcd, 1, 2)
|
70
|
+
l.addWidget(createLabel(tr("LINES REMOVED")), 2, 2)
|
71
|
+
l.addWidget(@linesLcd, 3, 2)
|
72
|
+
l.addWidget(@quitButton, 4, 2)
|
73
|
+
l.addWidget(@pauseButton, 5, 2)
|
74
|
+
end
|
75
|
+
|
76
|
+
setLayout(layout)
|
77
|
+
|
78
|
+
setWindowTitle(tr("Tetrix"))
|
79
|
+
resize(550, 370)
|
80
|
+
end
|
81
|
+
|
82
|
+
def createLabel(text)
|
83
|
+
lbl = Qt::Label.new(text)
|
84
|
+
lbl.alignment = Qt::AlignHCenter | Qt::AlignBottom
|
85
|
+
return lbl
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,32 @@
|
|
1
|
+
=begin
|
2
|
+
**
|
3
|
+
** Copyright (C) 2004-2005 Trolltech AS. All rights reserved.
|
4
|
+
**
|
5
|
+
** This file is part of the example classes of the Qt Toolkit.
|
6
|
+
**
|
7
|
+
** This file may be used under the terms of the GNU General Public
|
8
|
+
** License version 2.0 as published by the Free Software Foundation
|
9
|
+
** and appearing in the file LICENSE.GPL included in the packaging of
|
10
|
+
** this file. Please review the following information to ensure GNU
|
11
|
+
** General Public Licensing requirements will be met:
|
12
|
+
** http://www.trolltech.com/products/qt/opensource.html
|
13
|
+
**
|
14
|
+
** If you are unsure which license is appropriate for your use, please
|
15
|
+
** review the following information:
|
16
|
+
** http://www.trolltech.com/products/qt/licensing.html or contact the
|
17
|
+
** sales department at sales@trolltech.com.
|
18
|
+
**
|
19
|
+
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
20
|
+
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
21
|
+
**
|
22
|
+
|
23
|
+
** Translated to QtRuby by Richard Dale
|
24
|
+
=end
|
25
|
+
|
26
|
+
require 'Qt'
|
27
|
+
require './sortingbox.rb'
|
28
|
+
|
29
|
+
app = Qt::Application.new(ARGV)
|
30
|
+
sortingBox = SortingBox.new
|
31
|
+
sortingBox.show
|
32
|
+
app.exec
|
@@ -0,0 +1,31 @@
|
|
1
|
+
=begin
|
2
|
+
**
|
3
|
+
** Copyright (C) 2004-2005 Trolltech AS. All rights reserved.
|
4
|
+
**
|
5
|
+
** This file is part of the example classes of the Qt Toolkit.
|
6
|
+
**
|
7
|
+
** This file may be used under the terms of the GNU General Public
|
8
|
+
** License version 2.0 as published by the Free Software Foundation
|
9
|
+
** and appearing in the file LICENSE.GPL included in the packaging of
|
10
|
+
** this file. Please review the following information to ensure GNU
|
11
|
+
** General Public Licensing requirements will be met:
|
12
|
+
** http://www.trolltech.com/products/qt/opensource.html
|
13
|
+
**
|
14
|
+
** If you are unsure which license is appropriate for your use, please
|
15
|
+
** review the following information:
|
16
|
+
** http://www.trolltech.com/products/qt/licensing.html or contact the
|
17
|
+
** sales department at sales@trolltech.com.
|
18
|
+
**
|
19
|
+
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
20
|
+
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
21
|
+
**
|
22
|
+
|
23
|
+
** Translated to QtRuby by Richard Dale
|
24
|
+
=end
|
25
|
+
|
26
|
+
class ShapeItem
|
27
|
+
attr_accessor :path
|
28
|
+
attr_accessor :position
|
29
|
+
attr_accessor :color
|
30
|
+
attr_accessor :toolTip
|
31
|
+
end
|
@@ -0,0 +1,222 @@
|
|
1
|
+
=begin
|
2
|
+
**
|
3
|
+
** Copyright (C) 2004-2005 Trolltech AS. All rights reserved.
|
4
|
+
**
|
5
|
+
** This file is part of the example classes of the Qt Toolkit.
|
6
|
+
**
|
7
|
+
** This file may be used under the terms of the GNU General Public
|
8
|
+
** License version 2.0 as published by the Free Software Foundation
|
9
|
+
** and appearing in the file LICENSE.GPL included in the packaging of
|
10
|
+
** this file. Please review the following information to ensure GNU
|
11
|
+
** General Public Licensing requirements will be met:
|
12
|
+
** http://www.trolltech.com/products/qt/opensource.html
|
13
|
+
**
|
14
|
+
** If you are unsure which license is appropriate for your use, please
|
15
|
+
** review the following information:
|
16
|
+
** http://www.trolltech.com/products/qt/licensing.html or contact the
|
17
|
+
** sales department at sales@trolltech.com.
|
18
|
+
**
|
19
|
+
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
20
|
+
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
21
|
+
**
|
22
|
+
|
23
|
+
** Translated to QtRuby by Richard Dale
|
24
|
+
=end
|
25
|
+
|
26
|
+
require './shapeitem.rb'
|
27
|
+
|
28
|
+
class SortingBox < Qt::Widget
|
29
|
+
|
30
|
+
slots :createNewCircle,
|
31
|
+
:createNewSquare,
|
32
|
+
:createNewTriangle
|
33
|
+
|
34
|
+
RAND_MAX = 2147483647
|
35
|
+
|
36
|
+
def initialize(parent = nil)
|
37
|
+
super(parent)
|
38
|
+
setAttribute(Qt::WA_StaticContents)
|
39
|
+
setMouseTracking(true)
|
40
|
+
setBackgroundRole(Qt::Palette::Base)
|
41
|
+
|
42
|
+
@itemInMotion = nil
|
43
|
+
@shapeItems = []
|
44
|
+
@circlePath = Qt::PainterPath.new
|
45
|
+
@squarePath = Qt::PainterPath.new
|
46
|
+
@trianglePath = Qt::PainterPath.new
|
47
|
+
|
48
|
+
@newCircleButton = createToolButton(tr("New Circle"),
|
49
|
+
Qt::Icon.new("images/circle.png"),
|
50
|
+
SLOT(:createNewCircle))
|
51
|
+
|
52
|
+
@newSquareButton = createToolButton(tr("New Square"),
|
53
|
+
Qt::Icon.new("images/square.png"),
|
54
|
+
SLOT(:createNewSquare))
|
55
|
+
|
56
|
+
@newTriangleButton = createToolButton(tr("New Triangle"),
|
57
|
+
Qt::Icon.new("images/triangle.png"),
|
58
|
+
SLOT(:createNewTriangle))
|
59
|
+
|
60
|
+
@circlePath.addEllipse(Qt::RectF.new(0.0, 0.0, 100.0, 100.0))
|
61
|
+
@squarePath.addRect(Qt::RectF.new(0.0, 0.0, 100.0, 100.0))
|
62
|
+
|
63
|
+
x = @trianglePath.currentPosition().x()
|
64
|
+
y = @trianglePath.currentPosition().y()
|
65
|
+
@trianglePath.moveTo(x + 120 / 2, y)
|
66
|
+
@trianglePath.lineTo(0, 100)
|
67
|
+
@trianglePath.lineTo(120, 100)
|
68
|
+
@trianglePath.lineTo(x + 120 / 2, y)
|
69
|
+
|
70
|
+
setWindowTitle(tr("Tooltips"))
|
71
|
+
resize(500, 300)
|
72
|
+
|
73
|
+
createShapeItem(@circlePath, tr("Circle"), initialItemPosition(@circlePath),
|
74
|
+
initialItemColor())
|
75
|
+
createShapeItem(@squarePath, tr("Square"), initialItemPosition(@squarePath),
|
76
|
+
initialItemColor())
|
77
|
+
createShapeItem(@trianglePath, tr("Triangle"),
|
78
|
+
initialItemPosition(@trianglePath), initialItemColor())
|
79
|
+
end
|
80
|
+
|
81
|
+
def event(event)
|
82
|
+
if event.type == Qt::Event::ToolTip
|
83
|
+
index = itemAt(event.pos())
|
84
|
+
if index != -1
|
85
|
+
Qt::ToolTip.showText(event.globalPos(), @shapeItems[index].toolTip())
|
86
|
+
else
|
87
|
+
Qt::ToolTip.showText(event.globalPos(), "")
|
88
|
+
end
|
89
|
+
end
|
90
|
+
super(event)
|
91
|
+
end
|
92
|
+
|
93
|
+
def resizeEvent(event)
|
94
|
+
margin = style().pixelMetric(Qt::Style::PM_DefaultTopLevelMargin)
|
95
|
+
x = width() - margin
|
96
|
+
y = height() - margin
|
97
|
+
|
98
|
+
y = updateButtonGeometry(@newCircleButton, x, y)
|
99
|
+
y = updateButtonGeometry(@newSquareButton, x, y)
|
100
|
+
updateButtonGeometry(@newTriangleButton, x, y)
|
101
|
+
end
|
102
|
+
|
103
|
+
def paintEvent(event)
|
104
|
+
painter = Qt::Painter.new(self)
|
105
|
+
@shapeItems.each do |shapeItem|
|
106
|
+
painter.translate(shapeItem.position())
|
107
|
+
painter.brush = Qt::Brush.new(shapeItem.color)
|
108
|
+
painter.drawPath(shapeItem.path())
|
109
|
+
painter.translate(-shapeItem.position())
|
110
|
+
end
|
111
|
+
painter.end
|
112
|
+
end
|
113
|
+
|
114
|
+
def mousePressEvent(event)
|
115
|
+
if event.button == Qt::LeftButton
|
116
|
+
index = itemAt(event.pos)
|
117
|
+
if index != -1
|
118
|
+
@itemInMotion = @shapeItems[index]
|
119
|
+
@previousPosition = event.pos
|
120
|
+
@shapeItems.push @shapeItems.delete_at(index)
|
121
|
+
update()
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
def mouseMoveEvent(event)
|
127
|
+
if (event.buttons & Qt::LeftButton.to_i) && !@itemInMotion.nil?
|
128
|
+
moveItemTo(event.pos)
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
def mouseReleaseEvent(event)
|
133
|
+
if event.button == Qt::LeftButton && !@itemInMotion.nil?
|
134
|
+
moveItemTo(event.pos)
|
135
|
+
@itemInMotion = nil
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
def createNewCircle()
|
140
|
+
createShapeItem(@circlePath, tr("Circle"), randomItemPosition(),
|
141
|
+
randomItemColor())
|
142
|
+
end
|
143
|
+
|
144
|
+
def createNewSquare()
|
145
|
+
createShapeItem(@squarePath, tr("Square"), randomItemPosition(),
|
146
|
+
randomItemColor())
|
147
|
+
end
|
148
|
+
|
149
|
+
def createNewTriangle()
|
150
|
+
createShapeItem(@trianglePath, tr("Triangle"), randomItemPosition(),
|
151
|
+
randomItemColor())
|
152
|
+
end
|
153
|
+
|
154
|
+
def itemAt(pos)
|
155
|
+
(@shapeItems.length - 1).downto(0) do |i|
|
156
|
+
item = @shapeItems[i]
|
157
|
+
if item.path.contains(Qt::PointF.new(pos - item.position))
|
158
|
+
return i
|
159
|
+
end
|
160
|
+
end
|
161
|
+
return -1
|
162
|
+
end
|
163
|
+
|
164
|
+
def moveItemTo(pos)
|
165
|
+
offset = pos - @previousPosition
|
166
|
+
@itemInMotion.position = @itemInMotion.position + offset
|
167
|
+
@previousPosition = pos
|
168
|
+
update()
|
169
|
+
end
|
170
|
+
|
171
|
+
def updateButtonGeometry(button, x, y)
|
172
|
+
size = button.sizeHint()
|
173
|
+
button.setGeometry(x - size.rwidth, y - size.rheight,
|
174
|
+
size.rwidth, size.rheight)
|
175
|
+
|
176
|
+
return y - size.rheight -
|
177
|
+
style().pixelMetric(Qt::Style::PM_DefaultLayoutSpacing)
|
178
|
+
end
|
179
|
+
|
180
|
+
def createShapeItem(path, toolTip, pos, color)
|
181
|
+
shapeItem = ShapeItem.new
|
182
|
+
shapeItem.path = path
|
183
|
+
shapeItem.toolTip = toolTip
|
184
|
+
shapeItem.position = pos
|
185
|
+
shapeItem.color = color
|
186
|
+
@shapeItems.push(shapeItem)
|
187
|
+
update()
|
188
|
+
end
|
189
|
+
|
190
|
+
def createToolButton(toolTip, icon, member)
|
191
|
+
button = Qt::ToolButton.new(self)
|
192
|
+
button.toolTip = toolTip
|
193
|
+
button.icon = icon
|
194
|
+
button.setIconSize(Qt::Size.new(32, 32))
|
195
|
+
connect(button, SIGNAL(:clicked), self, member)
|
196
|
+
|
197
|
+
return button
|
198
|
+
end
|
199
|
+
|
200
|
+
def initialItemPosition(path)
|
201
|
+
y = (height() - path.controlPointRect().height()) / 2
|
202
|
+
if @shapeItems.length == 0
|
203
|
+
x = ((3 * width()) / 2 - path.controlPointRect.width) / 2
|
204
|
+
else
|
205
|
+
x = (width() / @shapeItems.size -
|
206
|
+
path.controlPointRect.width) / 2
|
207
|
+
end
|
208
|
+
return Qt::Point.new(x, y)
|
209
|
+
end
|
210
|
+
|
211
|
+
def randomItemPosition()
|
212
|
+
return Qt::Point.new(rand(RAND_MAX) % (width() - 120), rand(RAND_MAX) % (height() - 120))
|
213
|
+
end
|
214
|
+
|
215
|
+
def initialItemColor()
|
216
|
+
return Qt::Color::fromHsv(((@shapeItems.size() + 1) * 85) % 256, 255, 190)
|
217
|
+
end
|
218
|
+
|
219
|
+
def randomItemColor()
|
220
|
+
return Qt::Color::fromHsv(rand(RAND_MAX) % 256, 255, 190)
|
221
|
+
end
|
222
|
+
end
|