fxruby 1.6.41 → 1.6.45

Sign up to get free protection for your applications and to get access to all the features.
Files changed (354) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/.travis.yml +2 -2
  4. data/.yardopts +1 -1
  5. data/Gemfile +2 -3
  6. data/History.md +27 -1
  7. data/README.rdoc +10 -5
  8. data/Rakefile +16 -5
  9. data/appveyor.yml +8 -7
  10. data/docs/Fox/Canvas/CanvasError.html +124 -0
  11. data/docs/Fox/Canvas/CircleShape.html +477 -0
  12. data/docs/Fox/Canvas/ImageShape.html +477 -0
  13. data/docs/Fox/Canvas/LineShape.html +1005 -0
  14. data/docs/Fox/Canvas/PolygonShape.html +145 -0
  15. data/docs/Fox/Canvas/RectangleShape.html +439 -0
  16. data/docs/Fox/Canvas/SelectionPolicy.html +352 -0
  17. data/docs/Fox/Canvas/Shape.html +1955 -0
  18. data/docs/Fox/Canvas/ShapeCanvas.html +2031 -0
  19. data/docs/Fox/Canvas/ShapeGroup.html +527 -0
  20. data/docs/Fox/Canvas/SingleSelectionPolicy.html +291 -0
  21. data/docs/Fox/Canvas/TextShape.html +609 -0
  22. data/docs/Fox/Canvas.html +141 -0
  23. data/docs/Fox/FTNonModal.html +550 -0
  24. data/docs/Fox/FX4Splitter.html +1336 -0
  25. data/docs/Fox/FX7Segment.html +1010 -0
  26. data/docs/Fox/FXAccelTable.html +715 -0
  27. data/docs/Fox/FXApp.html +7998 -0
  28. data/docs/Fox/FXArc.html +562 -0
  29. data/docs/Fox/FXArrowButton.html +865 -0
  30. data/docs/Fox/FXBMPIcon.html +450 -0
  31. data/docs/Fox/FXBMPImage.html +434 -0
  32. data/docs/Fox/FXBitmap.html +1362 -0
  33. data/docs/Fox/FXBitmapFrame.html +595 -0
  34. data/docs/Fox/FXBitmapView.html +1451 -0
  35. data/docs/Fox/FXButton.html +534 -0
  36. data/docs/Fox/FXCURCursor.html +261 -0
  37. data/docs/Fox/FXCalendar.html +880 -0
  38. data/docs/Fox/FXCanvas.html +311 -0
  39. data/docs/Fox/FXCheckButton.html +949 -0
  40. data/docs/Fox/FXChoiceBox.html +472 -0
  41. data/docs/Fox/FXColor.html +1519 -0
  42. data/docs/Fox/FXColorBar.html +759 -0
  43. data/docs/Fox/FXColorDialog.html +591 -0
  44. data/docs/Fox/FXColorItem.html +323 -0
  45. data/docs/Fox/FXColorList.html +712 -0
  46. data/docs/Fox/FXColorRing.html +817 -0
  47. data/docs/Fox/FXColorSelector.html +796 -0
  48. data/docs/Fox/FXColorWell.html +850 -0
  49. data/docs/Fox/FXColorWheel.html +770 -0
  50. data/docs/Fox/FXComboBox.html +2939 -0
  51. data/docs/Fox/FXComboTableItem.html +544 -0
  52. data/docs/Fox/FXCommand.html +526 -0
  53. data/docs/Fox/FXComposite.html +433 -0
  54. data/docs/Fox/FXCursor.html +779 -0
  55. data/docs/Fox/FXDC.html +5231 -0
  56. data/docs/Fox/FXDCPrint.html +696 -0
  57. data/docs/Fox/FXDCWindow.html +358 -0
  58. data/docs/Fox/FXDataTarget.html +573 -0
  59. data/docs/Fox/FXDebugTarget.html +305 -0
  60. data/docs/Fox/FXDelegator.html +305 -0
  61. data/docs/Fox/FXDial.html +1133 -0
  62. data/docs/Fox/FXDialogBox.html +413 -0
  63. data/docs/Fox/FXDict.html +1063 -0
  64. data/docs/Fox/FXDirBox.html +752 -0
  65. data/docs/Fox/FXDirDialog.html +914 -0
  66. data/docs/Fox/FXDirItem.html +989 -0
  67. data/docs/Fox/FXDirList.html +1554 -0
  68. data/docs/Fox/FXDirSelector.html +995 -0
  69. data/docs/Fox/FXDockBar.html +1451 -0
  70. data/docs/Fox/FXDockHandler.html +468 -0
  71. data/docs/Fox/FXDockSite.html +678 -0
  72. data/docs/Fox/FXDockTitle.html +606 -0
  73. data/docs/Fox/FXDocument.html +536 -0
  74. data/docs/Fox/FXDragCorner.html +440 -0
  75. data/docs/Fox/FXDrawable.html +478 -0
  76. data/docs/Fox/FXDriveBox.html +746 -0
  77. data/docs/Fox/FXEvent.html +1736 -0
  78. data/docs/Fox/FXExtentd.html +1374 -0
  79. data/docs/Fox/FXExtentf.html +1374 -0
  80. data/docs/Fox/FXFileAssoc.html +850 -0
  81. data/docs/Fox/FXFileDialog.html +2688 -0
  82. data/docs/Fox/FXFileDict.html +1058 -0
  83. data/docs/Fox/FXFileItem.html +1141 -0
  84. data/docs/Fox/FXFileList.html +2259 -0
  85. data/docs/Fox/FXFileSelector.html +2529 -0
  86. data/docs/Fox/FXFileStream.html +503 -0
  87. data/docs/Fox/FXFoldingItem.html +2822 -0
  88. data/docs/Fox/FXFoldingList.html +5189 -0
  89. data/docs/Fox/FXFont.html +2998 -0
  90. data/docs/Fox/FXFontDesc.html +710 -0
  91. data/docs/Fox/FXFontDialog.html +420 -0
  92. data/docs/Fox/FXFontSelector.html +576 -0
  93. data/docs/Fox/FXFrame.html +1012 -0
  94. data/docs/Fox/FXGIFCursor.html +337 -0
  95. data/docs/Fox/FXGIFIcon.html +450 -0
  96. data/docs/Fox/FXGIFImage.html +434 -0
  97. data/docs/Fox/FXGLCanvas.html +700 -0
  98. data/docs/Fox/FXGLCone.html +785 -0
  99. data/docs/Fox/FXGLContext.html +649 -0
  100. data/docs/Fox/FXGLCube.html +703 -0
  101. data/docs/Fox/FXGLCylinder.html +791 -0
  102. data/docs/Fox/FXGLGroup.html +1385 -0
  103. data/docs/Fox/FXGLLine.html +653 -0
  104. data/docs/Fox/FXGLObject.html +759 -0
  105. data/docs/Fox/FXGLPoint.html +561 -0
  106. data/docs/Fox/FXGLShape.html +714 -0
  107. data/docs/Fox/FXGLSphere.html +626 -0
  108. data/docs/Fox/FXGLViewer.html +3506 -0
  109. data/docs/Fox/FXGLVisual.html +2147 -0
  110. data/docs/Fox/FXGradient.html +562 -0
  111. data/docs/Fox/FXGradientBar.html +2479 -0
  112. data/docs/Fox/FXGroupBox.html +688 -0
  113. data/docs/Fox/FXHeader.html +3040 -0
  114. data/docs/Fox/FXHeaderItem.html +1353 -0
  115. data/docs/Fox/FXHiliteStyle.html +804 -0
  116. data/docs/Fox/FXHorizontalFrame.html +359 -0
  117. data/docs/Fox/FXHorizontalSeparator.html +349 -0
  118. data/docs/Fox/FXICOIcon.html +450 -0
  119. data/docs/Fox/FXICOImage.html +434 -0
  120. data/docs/Fox/FXIcon.html +384 -0
  121. data/docs/Fox/FXIconDict.html +752 -0
  122. data/docs/Fox/FXIconItem.html +1518 -0
  123. data/docs/Fox/FXIconList.html +4676 -0
  124. data/docs/Fox/FXIconSource.html +963 -0
  125. data/docs/Fox/FXId.html +712 -0
  126. data/docs/Fox/FXImage.html +2328 -0
  127. data/docs/Fox/FXImageFrame.html +489 -0
  128. data/docs/Fox/FXImageView.html +504 -0
  129. data/docs/Fox/FXInputDialog.html +894 -0
  130. data/docs/Fox/FXIrb.html +942 -0
  131. data/docs/Fox/FXJPGIcon.html +607 -0
  132. data/docs/Fox/FXJPGImage.html +591 -0
  133. data/docs/Fox/FXKnob.html +1048 -0
  134. data/docs/Fox/FXLabel.html +1013 -0
  135. data/docs/Fox/FXLight.html +920 -0
  136. data/docs/Fox/FXList.html +3717 -0
  137. data/docs/Fox/FXListBox.html +2518 -0
  138. data/docs/Fox/FXListItem.html +1459 -0
  139. data/docs/Fox/FXMDIChild.html +2175 -0
  140. data/docs/Fox/FXMDIClient.html +781 -0
  141. data/docs/Fox/FXMDIDeleteButton.html +334 -0
  142. data/docs/Fox/FXMDIMaximizeButton.html +334 -0
  143. data/docs/Fox/FXMDIMenu.html +335 -0
  144. data/docs/Fox/FXMDIMinimizeButton.html +334 -0
  145. data/docs/Fox/FXMDIRestoreButton.html +334 -0
  146. data/docs/Fox/FXMDIWindowButton.html +334 -0
  147. data/docs/Fox/FXMainWindow.html +337 -0
  148. data/docs/Fox/FXMaterial.html +570 -0
  149. data/docs/Fox/FXMatrix.html +734 -0
  150. data/docs/Fox/FXMemoryBuffer.html +472 -0
  151. data/docs/Fox/FXMemoryStream.html +632 -0
  152. data/docs/Fox/FXMenuBar.html +347 -0
  153. data/docs/Fox/FXMenuButton.html +829 -0
  154. data/docs/Fox/FXMenuCaption.html +1080 -0
  155. data/docs/Fox/FXMenuCascade.html +388 -0
  156. data/docs/Fox/FXMenuCheck.html +721 -0
  157. data/docs/Fox/FXMenuCommand.html +400 -0
  158. data/docs/Fox/FXMenuPane.html +333 -0
  159. data/docs/Fox/FXMenuRadio.html +721 -0
  160. data/docs/Fox/FXMenuSeparator.html +440 -0
  161. data/docs/Fox/FXMenuTitle.html +405 -0
  162. data/docs/Fox/FXMessageBox.html +658 -0
  163. data/docs/Fox/FXObject.html +545 -0
  164. data/docs/Fox/FXOption.html +491 -0
  165. data/docs/Fox/FXOptionMenu.html +885 -0
  166. data/docs/Fox/FXPCXIcon.html +450 -0
  167. data/docs/Fox/FXPCXImage.html +434 -0
  168. data/docs/Fox/FXPNGIcon.html +524 -0
  169. data/docs/Fox/FXPNGImage.html +508 -0
  170. data/docs/Fox/FXPPMIcon.html +450 -0
  171. data/docs/Fox/FXPPMImage.html +373 -0
  172. data/docs/Fox/FXPSBounds.html +500 -0
  173. data/docs/Fox/FXPacker.html +1229 -0
  174. data/docs/Fox/FXPicker.html +345 -0
  175. data/docs/Fox/FXPopup.html +1099 -0
  176. data/docs/Fox/FXPrintDialog.html +485 -0
  177. data/docs/Fox/FXPrinter.html +1330 -0
  178. data/docs/Fox/FXProgressBar.html +1150 -0
  179. data/docs/Fox/FXProgressDialog.html +715 -0
  180. data/docs/Fox/FXPseudoKeyboard.html +428 -0
  181. data/docs/Fox/FXPseudoMouse.html +800 -0
  182. data/docs/Fox/FXPseudoTarget.html +472 -0
  183. data/docs/Fox/FXQuatd.html +1377 -0
  184. data/docs/Fox/FXQuatf.html +1392 -0
  185. data/docs/Fox/FXRGBIcon.html +450 -0
  186. data/docs/Fox/FXRGBImage.html +434 -0
  187. data/docs/Fox/FXRadioButton.html +885 -0
  188. data/docs/Fox/FXRanged.html +1522 -0
  189. data/docs/Fox/FXRangef.html +1522 -0
  190. data/docs/Fox/FXRealSlider.html +1187 -0
  191. data/docs/Fox/FXRealSpinner.html +2175 -0
  192. data/docs/Fox/FXRecentFiles.html +841 -0
  193. data/docs/Fox/FXRectangle.html +802 -0
  194. data/docs/Fox/FXRegion.html +841 -0
  195. data/docs/Fox/FXRegistry.html +682 -0
  196. data/docs/Fox/FXReplaceDialog.html +648 -0
  197. data/docs/Fox/FXRootWindow.html +312 -0
  198. data/docs/Fox/FXRuler.html +2000 -0
  199. data/docs/Fox/FXRulerView.html +3997 -0
  200. data/docs/Fox/FXScintilla.html +49117 -0
  201. data/docs/Fox/FXScrollArea.html +1363 -0
  202. data/docs/Fox/FXScrollBar.html +1019 -0
  203. data/docs/Fox/FXScrollCorner.html +290 -0
  204. data/docs/Fox/FXScrollPane.html +499 -0
  205. data/docs/Fox/FXScrollWindow.html +409 -0
  206. data/docs/Fox/FXSearchDialog.html +382 -0
  207. data/docs/Fox/FXSegment.html +422 -0
  208. data/docs/Fox/FXSeparator.html +402 -0
  209. data/docs/Fox/FXSettings.html +1861 -0
  210. data/docs/Fox/FXShell.html +233 -0
  211. data/docs/Fox/FXShutter.html +472 -0
  212. data/docs/Fox/FXShutterItem.html +669 -0
  213. data/docs/Fox/FXSize.html +592 -0
  214. data/docs/Fox/FXSlider.html +1129 -0
  215. data/docs/Fox/FXSphered.html +906 -0
  216. data/docs/Fox/FXSpheref.html +906 -0
  217. data/docs/Fox/FXSpinner.html +2102 -0
  218. data/docs/Fox/FXSplashScreen.html +497 -0
  219. data/docs/Fox/FXSplashWindow.html +494 -0
  220. data/docs/Fox/FXSplitter.html +643 -0
  221. data/docs/Fox/FXSpring.html +517 -0
  222. data/docs/Fox/FXStatusBar.html +593 -0
  223. data/docs/Fox/FXStatusLine.html +754 -0
  224. data/docs/Fox/FXStream.html +1372 -0
  225. data/docs/Fox/FXStreamAllocError.html +148 -0
  226. data/docs/Fox/FXStreamEndError.html +148 -0
  227. data/docs/Fox/FXStreamError.html +259 -0
  228. data/docs/Fox/FXStreamFailureError.html +148 -0
  229. data/docs/Fox/FXStreamFormatError.html +148 -0
  230. data/docs/Fox/FXStreamFullError.html +148 -0
  231. data/docs/Fox/FXStreamNoReadError.html +148 -0
  232. data/docs/Fox/FXStreamNoWriteError.html +148 -0
  233. data/docs/Fox/FXStreamUnknownError.html +148 -0
  234. data/docs/Fox/FXStringDict.html +552 -0
  235. data/docs/Fox/FXSwitcher.html +619 -0
  236. data/docs/Fox/FXTGAIcon.html +450 -0
  237. data/docs/Fox/FXTGAImage.html +434 -0
  238. data/docs/Fox/FXTIFIcon.html +604 -0
  239. data/docs/Fox/FXTIFImage.html +588 -0
  240. data/docs/Fox/FXTabBar.html +644 -0
  241. data/docs/Fox/FXTabBook.html +373 -0
  242. data/docs/Fox/FXTabItem.html +478 -0
  243. data/docs/Fox/FXTable.html +10107 -0
  244. data/docs/Fox/FXTableItem.html +2195 -0
  245. data/docs/Fox/FXTablePos.html +360 -0
  246. data/docs/Fox/FXTableRange.html +360 -0
  247. data/docs/Fox/FXText.html +6870 -0
  248. data/docs/Fox/FXTextChange.html +492 -0
  249. data/docs/Fox/FXTextField.html +2016 -0
  250. data/docs/Fox/FXToggleButton.html +844 -0
  251. data/docs/Fox/FXToolBar.html +452 -0
  252. data/docs/Fox/FXToolBarGrip.html +584 -0
  253. data/docs/Fox/FXToolBarShell.html +788 -0
  254. data/docs/Fox/FXToolBarTab.html +729 -0
  255. data/docs/Fox/FXToolTip.html +761 -0
  256. data/docs/Fox/FXTopWindow.html +1716 -0
  257. data/docs/Fox/FXTranslator.html +481 -0
  258. data/docs/Fox/FXTreeItem.html +2813 -0
  259. data/docs/Fox/FXTreeList.html +5095 -0
  260. data/docs/Fox/FXTreeListBox.html +3080 -0
  261. data/docs/Fox/FXTriStateButton.html +681 -0
  262. data/docs/Fox/FXUndoList.html +2560 -0
  263. data/docs/Fox/FXVec2d.html +1450 -0
  264. data/docs/Fox/FXVec2f.html +1442 -0
  265. data/docs/Fox/FXVec3d.html +1649 -0
  266. data/docs/Fox/FXVec3f.html +1649 -0
  267. data/docs/Fox/FXVec4d.html +1858 -0
  268. data/docs/Fox/FXVec4f.html +1858 -0
  269. data/docs/Fox/FXVerticalFrame.html +359 -0
  270. data/docs/Fox/FXVerticalSeparator.html +349 -0
  271. data/docs/Fox/FXViewport.html +780 -0
  272. data/docs/Fox/FXVisual.html +1023 -0
  273. data/docs/Fox/FXWindow.html +9948 -0
  274. data/docs/Fox/FXWizard.html +1052 -0
  275. data/docs/Fox/FXXBMIcon.html +453 -0
  276. data/docs/Fox/FXXBMImage.html +437 -0
  277. data/docs/Fox/FXXPMIcon.html +450 -0
  278. data/docs/Fox/FXXPMImage.html +434 -0
  279. data/docs/Fox/NotifyHeader.html +286 -0
  280. data/docs/Fox/SCNotification.html +1438 -0
  281. data/docs/Fox/TextRange.html +281 -0
  282. data/docs/Fox.html +11184 -0
  283. data/docs/IRB.html +204 -0
  284. data/docs/Responder.html +693 -0
  285. data/docs/Responder2.html +225 -0
  286. data/docs/_index.html +2101 -0
  287. data/docs/class_list.html +51 -0
  288. data/docs/css/common.css +1 -0
  289. data/docs/css/full_list.css +58 -0
  290. data/docs/css/style.css +496 -0
  291. data/docs/file.History.html +869 -0
  292. data/docs/file.README.html +104 -0
  293. data/docs/file_list.html +66 -0
  294. data/docs/frames.html +17 -0
  295. data/docs/index.html +614 -0
  296. data/docs/js/app.js +314 -0
  297. data/docs/js/full_list.js +216 -0
  298. data/docs/js/jquery.js +4 -0
  299. data/docs/method_list.html +31043 -0
  300. data/docs/top-level-namespace.html +214 -0
  301. data/examples/canvasdemo.rb +5 -1
  302. data/examples/gltest.rb +162 -106
  303. data/examples/glviewer.rb +12 -8
  304. data/ext/fox16_c/core_wrap.cpp +117 -115
  305. data/ext/fox16_c/dc_wrap.cpp +82 -60
  306. data/ext/fox16_c/dialogs_wrap.cpp +87 -67
  307. data/ext/fox16_c/extconf.rb +12 -12
  308. data/ext/fox16_c/frames_wrap.cpp +101 -75
  309. data/ext/fox16_c/fx3d_wrap.cpp +258 -302
  310. data/ext/fox16_c/iconlist_wrap.cpp +70 -52
  311. data/ext/fox16_c/icons_wrap.cpp +75 -55
  312. data/ext/fox16_c/image_wrap.cpp +75 -57
  313. data/ext/fox16_c/label_wrap.cpp +78 -60
  314. data/ext/fox16_c/layout_wrap.cpp +83 -65
  315. data/ext/fox16_c/list_wrap.cpp +70 -52
  316. data/ext/fox16_c/mdi_wrap.cpp +76 -58
  317. data/ext/fox16_c/menu_wrap.cpp +78 -60
  318. data/ext/fox16_c/scintilla_wrap.cpp +85 -61
  319. data/ext/fox16_c/swigruby.h +64 -46
  320. data/ext/fox16_c/table_wrap.cpp +80 -58
  321. data/ext/fox16_c/text_wrap.cpp +75 -55
  322. data/ext/fox16_c/treelist_wrap.cpp +71 -53
  323. data/ext/fox16_c/ui_wrap.cpp +101 -81
  324. data/fxruby.gemspec +1 -1
  325. data/lib/fox16/aliases.rb +0 -0
  326. data/lib/fox16/bitmapview.rb +0 -0
  327. data/lib/fox16/calendar.rb +0 -0
  328. data/lib/fox16/canvas.rb +76 -45
  329. data/lib/fox16/chore.rb +0 -0
  330. data/lib/fox16/colors.rb +0 -0
  331. data/lib/fox16/core.rb +0 -0
  332. data/lib/fox16/dict.rb +0 -0
  333. data/lib/fox16/glgroup.rb +5 -5
  334. data/lib/fox16/glshapes.rb +111 -99
  335. data/lib/fox16/input.rb +0 -0
  336. data/lib/fox16/irb.rb +0 -0
  337. data/lib/fox16/iterators.rb +0 -0
  338. data/lib/fox16/keys.rb +0 -0
  339. data/lib/fox16/missingdep.rb +0 -0
  340. data/lib/fox16/pseudokeyboard.rb +0 -0
  341. data/lib/fox16/pseudomouse.rb +0 -0
  342. data/lib/fox16/responder.rb +0 -0
  343. data/lib/fox16/responder2.rb +0 -0
  344. data/lib/fox16/scintilla.rb +0 -0
  345. data/lib/fox16/settings.rb +0 -0
  346. data/lib/fox16/signal.rb +0 -0
  347. data/lib/fox16/timeout.rb +0 -0
  348. data/lib/fox16/tkcompat.rb +0 -0
  349. data/lib/fox16/undolist.rb +0 -0
  350. data/lib/fox16/version.rb +1 -1
  351. data/lib/fox16.rb +2 -4
  352. data.tar.gz.sig +2 -0
  353. metadata +327 -6
  354. metadata.gz.sig +0 -0
@@ -52,6 +52,8 @@ class CanvasDemo < FXMainWindow
52
52
  FXMenuTitle.new(menu_bar, "&Edit", nil, edit_menu)
53
53
  FXMenuTitle.new(menu_bar, "&Help", nil, help_menu)
54
54
 
55
+ @birdImage = FXPNGImage.new(app, File.binread(File.expand_path("../icons/dippy.png", __FILE__)))
56
+
55
57
  # Status bar
56
58
  FXStatusBar.new(self,
57
59
  LAYOUT_SIDE_BOTTOM|LAYOUT_FILL_X|STATUSBAR_WITH_DRAGCORNER)
@@ -70,12 +72,14 @@ class CanvasDemo < FXMainWindow
70
72
  scene.addShape(CircleShape.new(50, 50, 20))
71
73
  scene.addShape(LineShape.new(10, 10, 70, 70))
72
74
  scene.addShape(RectangleShape.new(90, 90, 30, 40))
73
- scene.addShape(TextShape.new(60, 60, 30, 40, "Hello!"))
75
+ scene.addShape(TextShape.new(100, 40, 50, 15, "Hello g!"))
76
+ scene.addShape(ImageShape.new(160, 5, @birdImage ))
74
77
  scene
75
78
  end
76
79
 
77
80
  def create
78
81
  super
82
+ @birdImage.create
79
83
  show(PLACEMENT_SCREEN)
80
84
  end
81
85
  end
data/examples/gltest.rb CHANGED
@@ -3,73 +3,127 @@
3
3
  require 'fox16'
4
4
  begin
5
5
  require 'opengl'
6
- require 'glu'
7
6
  rescue LoadError
8
7
  require 'fox16/missingdep'
9
8
  MSG = <<EOM
10
- Sorry, this example depends on the opengl gems. Please execute:
11
- gem install opengl glu
9
+ Sorry, this example depends on the opengl-bindings gems. Please execute:
10
+ gem install opengl-bindings
12
11
  EOM
13
12
  missingDependency(MSG)
14
13
  end
15
14
 
16
15
 
17
- include Fox
18
16
 
19
- class GLTestWindow < FXMainWindow
17
+ class GLTestWindow < Fox::FXMainWindow
18
+ include Fox
19
+ include OpenGL
20
20
 
21
21
  # How often our timer will fire (in milliseconds)
22
22
  TIMER_INTERVAL = 100
23
23
 
24
24
  # Draws a simple box using the given corners
25
25
  def drawBox(xmin, ymin, zmin, xmax, ymax, zmax)
26
- GL.Begin(GL::TRIANGLE_STRIP)
27
- GL.Normal(0.0, 0.0, -1.0)
28
- GL.Vertex(xmin, ymin, zmin)
29
- GL.Vertex(xmin, ymax, zmin)
30
- GL.Vertex(xmax, ymin, zmin)
31
- GL.Vertex(xmax, ymax, zmin)
32
- GL.End()
33
-
34
- GL.Begin(GL::TRIANGLE_STRIP)
35
- GL.Normal(1.0, 0.0, 0.0)
36
- GL.Vertex(xmax, ymin, zmin)
37
- GL.Vertex(xmax, ymax, zmin)
38
- GL.Vertex(xmax, ymin, zmax)
39
- GL.Vertex(xmax, ymax, zmax)
40
- GL.End()
41
-
42
- GL.Begin(GL::TRIANGLE_STRIP)
43
- GL.Normal(0.0, 0.0, 1.0)
44
- GL.Vertex(xmax, ymin, zmax)
45
- GL.Vertex(xmax, ymax, zmax)
46
- GL.Vertex(xmin, ymin, zmax)
47
- GL.Vertex(xmin, ymax, zmax)
48
- GL.End()
49
-
50
- GL.Begin(GL::TRIANGLE_STRIP)
51
- GL.Normal(-1.0, 0.0, 0.0)
52
- GL.Vertex(xmin, ymin, zmax)
53
- GL.Vertex(xmin, ymax, zmax)
54
- GL.Vertex(xmin, ymin, zmin)
55
- GL.Vertex(xmin, ymax, zmin)
56
- GL.End()
57
-
58
- GL.Begin(GL::TRIANGLE_STRIP)
59
- GL.Normal(0.0, 1.0, 0.0)
60
- GL.Vertex(xmin, ymax, zmin)
61
- GL.Vertex(xmin, ymax, zmax)
62
- GL.Vertex(xmax, ymax, zmin)
63
- GL.Vertex(xmax, ymax, zmax)
64
- GL.End()
65
-
66
- GL.Begin(GL::TRIANGLE_STRIP)
67
- GL.Normal(0.0, -1.0, 0.0)
68
- GL.Vertex(xmax, ymin, zmax)
69
- GL.Vertex(xmax, ymin, zmin)
70
- GL.Vertex(xmin, ymin, zmax)
71
- GL.Vertex(xmin, ymin, zmin)
72
- GL.End()
26
+ glBegin(GL_TRIANGLE_STRIP)
27
+ glNormal3d(0.0, 0.0, -1.0)
28
+ glVertex3d(xmin, ymin, zmin)
29
+ glVertex3d(xmin, ymax, zmin)
30
+ glVertex3d(xmax, ymin, zmin)
31
+ glVertex3d(xmax, ymax, zmin)
32
+ glEnd()
33
+
34
+ glBegin(GL_TRIANGLE_STRIP)
35
+ glNormal3d(1.0, 0.0, 0.0)
36
+ glVertex3d(xmax, ymin, zmin)
37
+ glVertex3d(xmax, ymax, zmin)
38
+ glVertex3d(xmax, ymin, zmax)
39
+ glVertex3d(xmax, ymax, zmax)
40
+ glEnd()
41
+
42
+ glBegin(GL_TRIANGLE_STRIP)
43
+ glNormal3d(0.0, 0.0, 1.0)
44
+ glVertex3d(xmax, ymin, zmax)
45
+ glVertex3d(xmax, ymax, zmax)
46
+ glVertex3d(xmin, ymin, zmax)
47
+ glVertex3d(xmin, ymax, zmax)
48
+ glEnd()
49
+
50
+ glBegin(GL_TRIANGLE_STRIP)
51
+ glNormal3d(-1.0, 0.0, 0.0)
52
+ glVertex3d(xmin, ymin, zmax)
53
+ glVertex3d(xmin, ymax, zmax)
54
+ glVertex3d(xmin, ymin, zmin)
55
+ glVertex3d(xmin, ymax, zmin)
56
+ glEnd()
57
+
58
+ glBegin(GL_TRIANGLE_STRIP)
59
+ glNormal3d(0.0, 1.0, 0.0)
60
+ glVertex3d(xmin, ymax, zmin)
61
+ glVertex3d(xmin, ymax, zmax)
62
+ glVertex3d(xmax, ymax, zmin)
63
+ glVertex3d(xmax, ymax, zmax)
64
+ glEnd()
65
+
66
+ glBegin(GL_TRIANGLE_STRIP)
67
+ glNormal3d(0.0, -1.0, 0.0)
68
+ glVertex3d(xmax, ymin, zmax)
69
+ glVertex3d(xmax, ymin, zmin)
70
+ glVertex3d(xmin, ymin, zmax)
71
+ glVertex3d(xmin, ymin, zmin)
72
+ glEnd()
73
+ end
74
+
75
+ def gluPerspective(fovY, aspect, zNear, zFar )
76
+ fH = Math.tan( fovY / 360 * Math::PI ) * zNear;
77
+ fW = fH * aspect;
78
+
79
+ glFrustum( -fW, fW, -fH, fH, zNear, zFar );
80
+ end
81
+
82
+ # Define our own version of gluLookAt() to avoid dependency to deprecated GLU library
83
+ def gluLookAt(ex, ey, ez,
84
+ lx, ly, lz,
85
+ ux, uy, uz )
86
+ z0 = ex - lx
87
+ z1 = ey - ly
88
+ z2 = ez - lz
89
+ l = z0*z0+z1*z1+z2*z2
90
+ if l != 0 then
91
+ l = 1.0 / Math.sqrt(l)
92
+ z0 *= l
93
+ z1 *= l
94
+ z2 *= l
95
+ end
96
+
97
+ x0 = uy*z2-uz*z1
98
+ x1 = -ux*z2+uz*z0
99
+ x2 = ux*z1-uy*z0
100
+ l = x0*x0+x1*x1+x2*x2
101
+ if l != 0 then
102
+ l = 1.0 / Math.sqrt(l)
103
+ x0 *= l
104
+ x1 *= l
105
+ x2 *= l
106
+ end
107
+
108
+ y0 = z1*x2-z2*x1
109
+ y1 = -z0*x2+z2*x0
110
+ y2 = z0*x1-z1*x0
111
+ l = y0*y0+y1*y1+y2*y2
112
+ if l != 0 then
113
+ l = 1.0 / Math.sqrt(l)
114
+ y0 *= l
115
+ y1 *= l
116
+ y2 *= l
117
+ end
118
+
119
+ m4x4 = [
120
+ x0,y0,z0,0,
121
+ x1,y1,z1,0,
122
+ x2,y2,z2,0,
123
+ 0, 0, 0,1,
124
+ ].pack("d*")
125
+ glMultMatrixd m4x4
126
+ glTranslated -ex,-ey,-ez
73
127
  end
74
128
 
75
129
  # Draw the GL scene
@@ -87,80 +141,80 @@ class GLTestWindow < FXMainWindow
87
141
  # Make context current
88
142
  @glcanvas.makeCurrent()
89
143
 
90
- GL.Viewport(0, 0, @glcanvas.width, @glcanvas.height)
144
+ glViewport(0, 0, @glcanvas.width, @glcanvas.height)
91
145
 
92
- GL.ClearColor(1.0, 1.0, 1.0, 1.0)
93
- GL.Clear(GL::COLOR_BUFFER_BIT|GL::DEPTH_BUFFER_BIT)
94
- GL.Enable(GL::DEPTH_TEST)
146
+ glClearColor(1.0, 1.0, 1.0, 1.0)
147
+ glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)
148
+ glEnable(GL_DEPTH_TEST)
95
149
 
96
- GL.Disable(GL::DITHER)
150
+ glDisable(GL_DITHER)
97
151
 
98
- GL.MatrixMode(GL::PROJECTION)
99
- GL.LoadIdentity()
100
- GLU.Perspective(30.0, aspect, 1.0, 100.0)
152
+ glMatrixMode(GL_PROJECTION)
153
+ glLoadIdentity()
154
+ gluPerspective(30.0, aspect, 1.0, 100.0)
101
155
 
102
- GL.MatrixMode(GL::MODELVIEW)
103
- GL.LoadIdentity()
104
- GLU.LookAt(5.0, 10.0, 15.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0)
156
+ glMatrixMode(GL_MODELVIEW)
157
+ glLoadIdentity()
158
+ gluLookAt(5.0, 10.0, 15.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0)
105
159
 
106
- GL.ShadeModel(GL::SMOOTH)
107
- GL.Light(GL::LIGHT0, GL::POSITION, lightPosition)
108
- GL.Light(GL::LIGHT0, GL::AMBIENT, lightAmbient)
109
- GL.Light(GL::LIGHT0, GL::DIFFUSE, lightDiffuse)
110
- GL.Enable(GL::LIGHT0)
111
- GL.Enable(GL::LIGHTING)
160
+ glShadeModel(GL_SMOOTH)
161
+ glLightfv(GL_LIGHT0, GL_POSITION, lightPosition.pack("f*"))
162
+ glLightfv(GL_LIGHT0, GL_AMBIENT, lightAmbient.pack("f*"))
163
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, lightDiffuse.pack("f*"))
164
+ glEnable(GL_LIGHT0)
165
+ glEnable(GL_LIGHTING)
112
166
 
113
- GL.Material(GL::FRONT, GL::AMBIENT, blueMaterial)
114
- GL.Material(GL::FRONT, GL::DIFFUSE, blueMaterial)
167
+ glMaterialfv(GL_FRONT, GL_AMBIENT, blueMaterial.pack("f*"))
168
+ glMaterialfv(GL_FRONT, GL_DIFFUSE, blueMaterial.pack("f*"))
115
169
 
116
- GL.PushMatrix()
117
- GL.Rotated(@angle, 0.0, 1.0, 0.0)
170
+ glPushMatrix()
171
+ glRotated(@angle, 0.0, 1.0, 0.0)
118
172
  drawBox(-1, -1, -1, 1, 1, 1)
119
173
 
120
- GL.Material(GL::FRONT, GL::AMBIENT, redMaterial)
121
- GL.Material(GL::FRONT, GL::DIFFUSE, redMaterial)
174
+ glMaterialfv(GL_FRONT, GL_AMBIENT, redMaterial.pack("f*"))
175
+ glMaterialfv(GL_FRONT, GL_DIFFUSE, redMaterial.pack("f*"))
122
176
 
123
- GL.PushMatrix()
124
- GL.Translated(0.0, 1.75, 0.0)
125
- GL.Rotated(@angle, 0.0, 1.0, 0.0)
177
+ glPushMatrix()
178
+ glTranslated(0.0, 1.75, 0.0)
179
+ glRotated(@angle, 0.0, 1.0, 0.0)
126
180
  drawBox(-0.5, -0.5, -0.5, 0.5, 0.5, 0.5)
127
- GL.PopMatrix()
181
+ glPopMatrix()
128
182
 
129
- GL.PushMatrix()
130
- GL.Translated(0.0, -1.75, 0.0)
131
- GL.Rotated(@angle, 0.0, 1.0, 0.0)
183
+ glPushMatrix()
184
+ glTranslated(0.0, -1.75, 0.0)
185
+ glRotated(@angle, 0.0, 1.0, 0.0)
132
186
  drawBox(-0.5, -0.5, -0.5, 0.5, 0.5, 0.5)
133
- GL.PopMatrix()
187
+ glPopMatrix()
134
188
 
135
- GL.PushMatrix()
136
- GL.Rotated(90.0, 1.0, 0.0, 0.0)
137
- GL.Translated(0.0, 1.75, 0.0)
138
- GL.Rotated(@angle, 0.0, 1.0, 0.0)
189
+ glPushMatrix()
190
+ glRotated(90.0, 1.0, 0.0, 0.0)
191
+ glTranslated(0.0, 1.75, 0.0)
192
+ glRotated(@angle, 0.0, 1.0, 0.0)
139
193
  drawBox(-0.5,-0.5,-0.5,0.5,0.5,0.5)
140
- GL.PopMatrix()
194
+ glPopMatrix()
141
195
 
142
- GL.PushMatrix()
143
- GL.Rotated(90.0, -1.0, 0.0, 0.0)
144
- GL.Translated(0.0,1.75,0.0)
145
- GL.Rotated(@angle, 0.0, 1.0, 0.0)
196
+ glPushMatrix()
197
+ glRotated(90.0, -1.0, 0.0, 0.0)
198
+ glTranslated(0.0,1.75,0.0)
199
+ glRotated(@angle, 0.0, 1.0, 0.0)
146
200
  drawBox(-0.5,-0.5,-0.5,0.5,0.5,0.5)
147
- GL.PopMatrix()
201
+ glPopMatrix()
148
202
 
149
- GL.PushMatrix()
150
- GL.Rotated(90.0, 0.0, 0.0, 1.0)
151
- GL.Translated(0.0,1.75,0.0)
152
- GL.Rotated(@angle, 0.0, 1.0, 0.0)
203
+ glPushMatrix()
204
+ glRotated(90.0, 0.0, 0.0, 1.0)
205
+ glTranslated(0.0,1.75,0.0)
206
+ glRotated(@angle, 0.0, 1.0, 0.0)
153
207
  drawBox(-0.5,-0.5,-0.5,0.5,0.5,0.5)
154
- GL.PopMatrix()
208
+ glPopMatrix()
155
209
 
156
- GL.PushMatrix()
157
- GL.Rotated(90.0, 0.0, 0.0, -1.0)
158
- GL.Translated(0.0,1.75,0.0)
159
- GL.Rotated(@angle, 0.0, 1.0, 0.0)
210
+ glPushMatrix()
211
+ glRotated(90.0, 0.0, 0.0, -1.0)
212
+ glTranslated(0.0,1.75,0.0)
213
+ glRotated(@angle, 0.0, 1.0, 0.0)
160
214
  drawBox(-0.5,-0.5,-0.5,0.5,0.5,0.5)
161
- GL.PopMatrix()
215
+ glPopMatrix()
162
216
 
163
- GL.PopMatrix()
217
+ glPopMatrix()
164
218
 
165
219
  # Swap if it is double-buffered
166
220
  if @glvisual.isDoubleBuffer
@@ -175,6 +229,8 @@ class GLTestWindow < FXMainWindow
175
229
  # Invoke the base class initializer
176
230
  super(app, "OpenGL Test Application", :opts => DECOR_ALL, :width => 800, :height => 600)
177
231
 
232
+ OpenGL.load_lib
233
+
178
234
  # Construct the main window elements
179
235
  frame = FXHorizontalFrame.new(self, LAYOUT_SIDE_TOP|LAYOUT_FILL_X|LAYOUT_FILL_Y)
180
236
  frame.padLeft, frame.padRight = 0, 0
@@ -207,7 +263,7 @@ class GLTestWindow < FXMainWindow
207
263
  @glcanvas.connect(SEL_PAINT) { drawScene }
208
264
  @glcanvas.connect(SEL_CONFIGURE) do
209
265
  if @glcanvas.makeCurrent
210
- GL.Viewport(0, 0, @glcanvas.width, @glcanvas.height)
266
+ glViewport(0, 0, @glcanvas.width, @glcanvas.height)
211
267
  @glcanvas.makeNonCurrent
212
268
  end
213
269
  end
@@ -310,7 +366,7 @@ end
310
366
 
311
367
  if __FILE__ == $0
312
368
  # Construct the application
313
- application = FXApp.new("GLTest", "FoxTest")
369
+ application = Fox::FXApp.new("GLTest", "FoxTest")
314
370
 
315
371
  # Construct the main window
316
372
  GLTestWindow.new(application)
data/examples/glviewer.rb CHANGED
@@ -7,16 +7,15 @@ begin
7
7
  rescue LoadError
8
8
  require 'fox16/missingdep'
9
9
  MSG = <<EOM
10
- Sorry, this example depends on the OpenGL extension. Please
11
- check the Ruby Application Archives for an appropriate
12
- download site.
10
+ Sorry, this example depends on the opengl-bindings gems. Please execute:
11
+ gem install opengl-bindings
13
12
  EOM
14
13
  missingDependency(MSG)
15
14
  end
16
15
 
17
- include Fox
16
+ class TabBook < Fox::FXTabBook
17
+ include Fox
18
18
 
19
- class TabBook < FXTabBook
20
19
  def createAnglesPage(panels, mdiclient)
21
20
  # Angles tab
22
21
  FXTabItem.new(panels,
@@ -143,8 +142,8 @@ class TabBook < FXTabBook
143
142
  end
144
143
  end
145
144
 
146
- class GLViewWindow < FXMainWindow
147
-
145
+ class GLViewWindow < Fox::FXMainWindow
146
+ include Fox
148
147
  include Responder
149
148
 
150
149
  ID_QUERY_MODE = FXMainWindow::ID_LAST
@@ -162,6 +161,9 @@ class GLViewWindow < FXMainWindow
162
161
  # Initialize base class first
163
162
  super(app, "OpenGL Example Application", :opts => DECOR_ALL, :width => 800, :height => 600)
164
163
 
164
+ OpenGL.load_lib
165
+ GLU.load_lib
166
+
165
167
  # Define message identifiers for this class
166
168
 
167
169
  # Set up the message map
@@ -481,6 +483,8 @@ class GLViewWindow < FXMainWindow
481
483
  sphere = FXGLSphere.new(1.0, 1.0, 0.0, 0.5)
482
484
  sphere2 = FXGLSphere.new(0.0, 0.0, 0.0, 0.8)
483
485
  sphere.tipText = "Sphere"
486
+ gp2.append(FXGLLine.new(-2.0, 0.0, 0.0, -1.0, 1.0, 1.0))
487
+ gp2.append(FXGLPoint.new(-2.0, 0.0, 0.0))
484
488
  gp2.append(FXGLCube.new(-1.0, 0.0, 0.0, 1.0, 1.0, 1.0))
485
489
  gp2.append(FXGLCube.new( 1.0, 0.0, 0.0, 1.0, 1.0, 1.0))
486
490
  gp2.append(FXGLCube.new( 0.0,-1.0, 0.0, 1.0, 1.0, 1.0))
@@ -556,7 +560,7 @@ end
556
560
 
557
561
  if __FILE__ == $0
558
562
  # Make application
559
- application = FXApp.new("GLViewer", "FoxTest")
563
+ application = Fox::FXApp.new("GLViewer", "FoxTest")
560
564
  application.threadsEnabled = false
561
565
 
562
566
  # Make window