gglib 1.1.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (446) hide show
  1. data/LICENSE +22 -0
  2. data/NEWS +75 -0
  3. data/TODO +5 -0
  4. data/{lib/examples → examples}/BasicExample.rb +70 -70
  5. data/examples/CheckBoxAndRadio.rb +54 -0
  6. data/{lib/examples → examples}/ConsoleDemo.rb +25 -25
  7. data/{lib/examples → examples}/FadeIn.rb +41 -39
  8. data/examples/README +1 -0
  9. data/{lib/examples → examples}/SplashScreen.rb +29 -29
  10. data/examples/img/bg.png +0 -0
  11. data/examples/img/bgblue.png +0 -0
  12. data/examples/img/bggray.png +0 -0
  13. data/examples/img/splash.png +0 -0
  14. data/lib/LICENSE +22 -0
  15. data/lib/NEWS +75 -0
  16. data/lib/TODO +5 -0
  17. data/lib/camera.rb +6 -6
  18. data/lib/carray.rb +70 -70
  19. data/lib/doc/classes/Camera.html +155 -0
  20. data/lib/doc/classes/Camera.src/M000012.html +19 -0
  21. data/lib/doc/classes/ConsoleDemoState.html +139 -0
  22. data/lib/doc/classes/ConsoleDemoState.src/M000008.html +19 -0
  23. data/lib/doc/classes/ConsoleDemoWindow.html +139 -0
  24. data/lib/doc/classes/ConsoleDemoWindow.src/M000013.html +20 -0
  25. data/lib/doc/classes/EndMenu.html +145 -0
  26. data/lib/doc/classes/EndMenu.src/M000010.html +19 -0
  27. data/lib/doc/classes/FadeExample.html +139 -0
  28. data/lib/doc/classes/FadeExample.src/M000009.html +20 -0
  29. data/lib/doc/classes/GGLib.html +196 -0
  30. data/lib/doc/classes/GGLib/Animation.html +287 -0
  31. data/lib/doc/classes/GGLib/Animation.src/M000235.html +27 -0
  32. data/lib/doc/classes/GGLib/Animation.src/M000236.html +18 -0
  33. data/lib/doc/classes/GGLib/Animation.src/M000237.html +24 -0
  34. data/lib/doc/classes/GGLib/Animation.src/M000238.html +18 -0
  35. data/lib/doc/classes/GGLib/Animation.src/M000239.html +20 -0
  36. data/lib/doc/classes/GGLib/Animation.src/M000240.html +19 -0
  37. data/lib/doc/classes/GGLib/Animation.src/M000241.html +47 -0
  38. data/lib/doc/classes/GGLib/Animation.src/M000242.html +18 -0
  39. data/lib/doc/classes/GGLib/Button.html +272 -0
  40. data/lib/doc/classes/GGLib/Button.src/M000187.html +22 -0
  41. data/lib/doc/classes/GGLib/Button.src/M000188.html +19 -0
  42. data/lib/doc/classes/GGLib/Button.src/M000189.html +19 -0
  43. data/lib/doc/classes/GGLib/Button.src/M000190.html +18 -0
  44. data/lib/doc/classes/GGLib/Button.src/M000191.html +23 -0
  45. data/lib/doc/classes/GGLib/Button.src/M000192.html +18 -0
  46. data/lib/doc/classes/GGLib/Button.src/M000193.html +18 -0
  47. data/lib/doc/classes/GGLib/Button.src/M000194.html +18 -0
  48. data/lib/doc/classes/GGLib/CArray.html +269 -0
  49. data/lib/doc/classes/GGLib/CArray.src/M000150.html +19 -0
  50. data/lib/doc/classes/GGLib/CArray.src/M000151.html +20 -0
  51. data/lib/doc/classes/GGLib/CArray.src/M000152.html +20 -0
  52. data/lib/doc/classes/GGLib/CArray.src/M000153.html +24 -0
  53. data/lib/doc/classes/GGLib/CArray.src/M000154.html +28 -0
  54. data/lib/doc/classes/GGLib/CArray.src/M000155.html +21 -0
  55. data/lib/doc/classes/GGLib/CArray.src/M000156.html +27 -0
  56. data/lib/doc/classes/GGLib/CArray.src/M000157.html +18 -0
  57. data/lib/doc/classes/GGLib/CArray.src/M000158.html +18 -0
  58. data/lib/doc/classes/GGLib/CheckBox.html +252 -0
  59. data/lib/doc/classes/GGLib/CheckBox.src/M000134.html +20 -0
  60. data/lib/doc/classes/GGLib/CheckBox.src/M000135.html +18 -0
  61. data/lib/doc/classes/GGLib/CheckBox.src/M000136.html +18 -0
  62. data/lib/doc/classes/GGLib/CheckBox.src/M000137.html +18 -0
  63. data/lib/doc/classes/GGLib/CheckBox.src/M000138.html +18 -0
  64. data/lib/doc/classes/GGLib/CheckBox.src/M000139.html +18 -0
  65. data/lib/doc/classes/GGLib/CheckBox.src/M000140.html +24 -0
  66. data/lib/doc/classes/GGLib/CheckBox.src/M000141.html +18 -0
  67. data/lib/doc/classes/GGLib/CheckBox/CheckedHk.html +165 -0
  68. data/lib/doc/classes/GGLib/CheckBox/CheckedHk.src/M000142.html +18 -0
  69. data/lib/doc/classes/GGLib/Cursor.html +252 -0
  70. data/lib/doc/classes/GGLib/Cursor.src/M000143.html +21 -0
  71. data/lib/doc/classes/GGLib/Cursor.src/M000144.html +20 -0
  72. data/lib/doc/classes/GGLib/Cursor.src/M000145.html +19 -0
  73. data/lib/doc/classes/GGLib/Cursor.src/M000146.html +18 -0
  74. data/lib/doc/classes/GGLib/Cursor.src/M000147.html +18 -0
  75. data/lib/doc/classes/GGLib/Cursor.src/M000148.html +20 -0
  76. data/lib/doc/classes/GGLib/Cursor.src/M000149.html +20 -0
  77. data/lib/doc/classes/GGLib/DebugConsole.html +321 -0
  78. data/lib/doc/classes/GGLib/DebugConsole.src/M000260.html +23 -0
  79. data/lib/doc/classes/GGLib/DebugConsole.src/M000261.html +61 -0
  80. data/lib/doc/classes/GGLib/DebugConsole.src/M000262.html +18 -0
  81. data/lib/doc/classes/GGLib/DebugConsole.src/M000263.html +25 -0
  82. data/lib/doc/classes/GGLib/DebugConsole.src/M000264.html +34 -0
  83. data/lib/doc/classes/GGLib/DebugConsole.src/M000265.html +24 -0
  84. data/lib/doc/classes/GGLib/DebugConsole.src/M000266.html +21 -0
  85. data/lib/doc/classes/GGLib/DebugConsole.src/M000267.html +23 -0
  86. data/lib/doc/classes/GGLib/DebugConsole.src/M000268.html +18 -0
  87. data/lib/doc/classes/GGLib/DebugConsole.src/M000269.html +18 -0
  88. data/lib/doc/classes/GGLib/DebugConsole.src/M000270.html +18 -0
  89. data/lib/doc/classes/GGLib/DebugConsole.src/M000271.html +18 -0
  90. data/lib/doc/classes/GGLib/DebugConsole.src/M000272.html +22 -0
  91. data/lib/doc/classes/GGLib/DrawnTheme.html +214 -0
  92. data/lib/doc/classes/GGLib/DrawnTheme.src/M000274.html +19 -0
  93. data/lib/doc/classes/GGLib/DrawnTheme.src/M000275.html +18 -0
  94. data/lib/doc/classes/GGLib/DrawnTheme.src/M000276.html +18 -0
  95. data/lib/doc/classes/GGLib/DrawnTheme.src/M000277.html +18 -0
  96. data/lib/doc/classes/GGLib/DrawnTheme.src/M000278.html +17 -0
  97. data/lib/doc/classes/GGLib/DrawnThemeInstance.html +139 -0
  98. data/lib/doc/classes/GGLib/DrawnThemeInstance.src/M000273.html +18 -0
  99. data/lib/doc/classes/GGLib/FadeScreen.html +220 -0
  100. data/lib/doc/classes/GGLib/FadeScreen.src/M000227.html +23 -0
  101. data/lib/doc/classes/GGLib/FadeScreen.src/M000228.html +18 -0
  102. data/lib/doc/classes/GGLib/FadeScreen.src/M000229.html +19 -0
  103. data/lib/doc/classes/GGLib/FadeScreen.src/M000230.html +29 -0
  104. data/lib/doc/classes/GGLib/FadeScreen.src/M000231.html +21 -0
  105. data/lib/doc/classes/GGLib/FadeScreen/FadeIn.html +169 -0
  106. data/lib/doc/classes/GGLib/FadeScreen/FadeIn.src/M000232.html +25 -0
  107. data/lib/doc/classes/GGLib/FadeScreen/FadeIn.src/M000233.html +26 -0
  108. data/lib/doc/classes/GGLib/FadeScreen/FadeIn.src/M000234.html +21 -0
  109. data/lib/doc/classes/GGLib/GUIWindow.html +633 -0
  110. data/lib/doc/classes/GGLib/GUIWindow.src/M000034.html +35 -0
  111. data/lib/doc/classes/GGLib/GUIWindow.src/M000035.html +20 -0
  112. data/lib/doc/classes/GGLib/GUIWindow.src/M000036.html +18 -0
  113. data/lib/doc/classes/GGLib/GUIWindow.src/M000037.html +18 -0
  114. data/lib/doc/classes/GGLib/GUIWindow.src/M000038.html +20 -0
  115. data/lib/doc/classes/GGLib/GUIWindow.src/M000039.html +20 -0
  116. data/lib/doc/classes/GGLib/GUIWindow.src/M000040.html +18 -0
  117. data/lib/doc/classes/GGLib/GUIWindow.src/M000041.html +18 -0
  118. data/lib/doc/classes/GGLib/GUIWindow.src/M000042.html +19 -0
  119. data/lib/doc/classes/GGLib/GUIWindow.src/M000043.html +19 -0
  120. data/lib/doc/classes/GGLib/GUIWindow.src/M000044.html +20 -0
  121. data/lib/doc/classes/GGLib/GUIWindow.src/M000045.html +20 -0
  122. data/lib/doc/classes/GGLib/GUIWindow.src/M000046.html +21 -0
  123. data/lib/doc/classes/GGLib/GUIWindow.src/M000047.html +18 -0
  124. data/lib/doc/classes/GGLib/GUIWindow.src/M000048.html +18 -0
  125. data/lib/doc/classes/GGLib/GUIWindow.src/M000049.html +18 -0
  126. data/lib/doc/classes/GGLib/GUIWindow.src/M000050.html +19 -0
  127. data/lib/doc/classes/GGLib/GUIWindow.src/M000051.html +21 -0
  128. data/lib/doc/classes/GGLib/GUIWindow.src/M000052.html +18 -0
  129. data/lib/doc/classes/GGLib/GUIWindow.src/M000053.html +18 -0
  130. data/lib/doc/classes/GGLib/GUIWindow.src/M000054.html +19 -0
  131. data/lib/doc/classes/GGLib/GUIWindow.src/M000055.html +22 -0
  132. data/lib/doc/classes/GGLib/GUIWindow.src/M000056.html +20 -0
  133. data/lib/doc/classes/GGLib/GUIWindow.src/M000057.html +18 -0
  134. data/lib/doc/classes/GGLib/GUIWindow.src/M000058.html +25 -0
  135. data/lib/doc/classes/GGLib/GUIWindow.src/M000059.html +24 -0
  136. data/lib/doc/classes/GGLib/GUIWindow.src/M000060.html +18 -0
  137. data/lib/doc/classes/GGLib/GUIWindow.src/M000061.html +18 -0
  138. data/lib/doc/classes/GGLib/GUIWindow.src/M000062.html +37 -0
  139. data/lib/doc/classes/GGLib/GUIWindow.src/M000063.html +23 -0
  140. data/lib/doc/classes/GGLib/Image.html +227 -0
  141. data/lib/doc/classes/GGLib/Image.src/M000180.html +24 -0
  142. data/lib/doc/classes/GGLib/Image.src/M000181.html +18 -0
  143. data/lib/doc/classes/GGLib/Image.src/M000182.html +20 -0
  144. data/lib/doc/classes/GGLib/Image.src/M000183.html +18 -0
  145. data/lib/doc/classes/GGLib/ImageTheme.html +184 -0
  146. data/lib/doc/classes/GGLib/ImageTheme.src/M000185.html +22 -0
  147. data/lib/doc/classes/GGLib/ImageTheme.src/M000186.html +18 -0
  148. data/lib/doc/classes/GGLib/ImageThemeInstance.html +246 -0
  149. data/lib/doc/classes/GGLib/ImageThemeInstance.src/M000126.html +19 -0
  150. data/lib/doc/classes/GGLib/ImageThemeInstance.src/M000127.html +26 -0
  151. data/lib/doc/classes/GGLib/ImageThemeInstance.src/M000128.html +19 -0
  152. data/lib/doc/classes/GGLib/ImageThemeInstance.src/M000129.html +19 -0
  153. data/lib/doc/classes/GGLib/ImageThemeInstance.src/M000130.html +19 -0
  154. data/lib/doc/classes/GGLib/ImageThemeInstance.src/M000131.html +20 -0
  155. data/lib/doc/classes/GGLib/ImageThemeInstance.src/M000132.html +19 -0
  156. data/lib/doc/classes/GGLib/ImageThemeInstance.src/M000133.html +18 -0
  157. data/lib/doc/classes/GGLib/Label.html +169 -0
  158. data/lib/doc/classes/GGLib/Label.src/M000091.html +19 -0
  159. data/lib/doc/classes/GGLib/Label.src/M000092.html +18 -0
  160. data/lib/doc/classes/GGLib/MapImage.html +219 -0
  161. data/lib/doc/classes/GGLib/MapImage.src/M000285.html +19 -0
  162. data/lib/doc/classes/GGLib/MapImage.src/M000286.html +22 -0
  163. data/lib/doc/classes/GGLib/MapImage.src/M000287.html +22 -0
  164. data/lib/doc/classes/GGLib/MapImage.src/M000288.html +18 -0
  165. data/lib/doc/classes/GGLib/MenuBase.html +154 -0
  166. data/lib/doc/classes/GGLib/MenuBase.src/M000159.html +22 -0
  167. data/lib/doc/classes/GGLib/MenuBase.src/M000160.html +18 -0
  168. data/lib/doc/classes/GGLib/MouseDragEvent.html +237 -0
  169. data/lib/doc/classes/GGLib/MouseDragEvent.src/M000171.html +21 -0
  170. data/lib/doc/classes/GGLib/MouseDragEvent.src/M000172.html +19 -0
  171. data/lib/doc/classes/GGLib/MouseDragEvent.src/M000173.html +19 -0
  172. data/lib/doc/classes/GGLib/MouseDragEvent.src/M000174.html +19 -0
  173. data/lib/doc/classes/GGLib/MouseDragEvent.src/M000175.html +18 -0
  174. data/lib/doc/classes/GGLib/RadioButton.html +270 -0
  175. data/lib/doc/classes/GGLib/RadioButton.src/M000082.html +22 -0
  176. data/lib/doc/classes/GGLib/RadioButton.src/M000083.html +18 -0
  177. data/lib/doc/classes/GGLib/RadioButton.src/M000084.html +18 -0
  178. data/lib/doc/classes/GGLib/RadioButton.src/M000085.html +18 -0
  179. data/lib/doc/classes/GGLib/RadioButton.src/M000086.html +18 -0
  180. data/lib/doc/classes/GGLib/RadioButton.src/M000087.html +18 -0
  181. data/lib/doc/classes/GGLib/RadioButton.src/M000088.html +32 -0
  182. data/lib/doc/classes/GGLib/RadioButton.src/M000089.html +18 -0
  183. data/lib/doc/classes/GGLib/RadioButton/CheckedHk.html +165 -0
  184. data/lib/doc/classes/GGLib/RadioButton/CheckedHk.src/M000090.html +18 -0
  185. data/lib/doc/classes/GGLib/RadioGroup.html +238 -0
  186. data/lib/doc/classes/GGLib/RadioGroup.src/M000243.html +37 -0
  187. data/lib/doc/classes/GGLib/RadioGroup.src/M000244.html +19 -0
  188. data/lib/doc/classes/GGLib/RadioGroup.src/M000245.html +20 -0
  189. data/lib/doc/classes/GGLib/RadioGroup.src/M000246.html +19 -0
  190. data/lib/doc/classes/GGLib/RadioGroup.src/M000247.html +21 -0
  191. data/lib/doc/classes/GGLib/RadioGroup.src/M000248.html +18 -0
  192. data/lib/doc/classes/GGLib/RadioGroup.src/M000249.html +18 -0
  193. data/lib/doc/classes/GGLib/RadioGroup/Layout.html +123 -0
  194. data/lib/doc/classes/GGLib/RadioGroup/Spacing.html +123 -0
  195. data/lib/doc/classes/GGLib/SplashScreen.html +207 -0
  196. data/lib/doc/classes/GGLib/SplashScreen.src/M000077.html +21 -0
  197. data/lib/doc/classes/GGLib/SplashScreen.src/M000078.html +18 -0
  198. data/lib/doc/classes/GGLib/SplashScreen.src/M000079.html +18 -0
  199. data/lib/doc/classes/GGLib/SplashScreen.src/M000080.html +30 -0
  200. data/lib/doc/classes/GGLib/SplashScreen.src/M000081.html +18 -0
  201. data/lib/doc/classes/GGLib/StateObject.html +314 -0
  202. data/lib/doc/classes/GGLib/StateObject.src/M000161.html +20 -0
  203. data/lib/doc/classes/GGLib/StateObject.src/M000162.html +23 -0
  204. data/lib/doc/classes/GGLib/StateObject.src/M000163.html +18 -0
  205. data/lib/doc/classes/GGLib/StateObject.src/M000164.html +18 -0
  206. data/lib/doc/classes/GGLib/StateObject.src/M000165.html +17 -0
  207. data/lib/doc/classes/GGLib/StateObject.src/M000166.html +18 -0
  208. data/lib/doc/classes/GGLib/StateObject.src/M000167.html +17 -0
  209. data/lib/doc/classes/GGLib/StateObject.src/M000168.html +17 -0
  210. data/lib/doc/classes/GGLib/StateObject.src/M000169.html +17 -0
  211. data/lib/doc/classes/GGLib/StateObject.src/M000170.html +17 -0
  212. data/lib/doc/classes/GGLib/TextBox.html +304 -0
  213. data/lib/doc/classes/GGLib/TextBox.src/M000250.html +32 -0
  214. data/lib/doc/classes/GGLib/TextBox.src/M000251.html +18 -0
  215. data/lib/doc/classes/GGLib/TextBox.src/M000252.html +18 -0
  216. data/lib/doc/classes/GGLib/TextBox.src/M000253.html +18 -0
  217. data/lib/doc/classes/GGLib/TextBox.src/M000254.html +19 -0
  218. data/lib/doc/classes/GGLib/TextBox.src/M000255.html +19 -0
  219. data/lib/doc/classes/GGLib/TextBox.src/M000256.html +18 -0
  220. data/lib/doc/classes/GGLib/TextBox.src/M000257.html +18 -0
  221. data/lib/doc/classes/GGLib/TextBox.src/M000258.html +19 -0
  222. data/lib/doc/classes/GGLib/TextBox.src/M000259.html +37 -0
  223. data/lib/doc/classes/GGLib/Texture.html +239 -0
  224. data/lib/doc/classes/GGLib/Texture.src/M000176.html +26 -0
  225. data/lib/doc/classes/GGLib/Texture.src/M000177.html +18 -0
  226. data/lib/doc/classes/GGLib/Texture.src/M000178.html +18 -0
  227. data/lib/doc/classes/GGLib/Texture.src/M000179.html +18 -0
  228. data/lib/doc/classes/GGLib/Theme.html +235 -0
  229. data/lib/doc/classes/GGLib/Theme.src/M000279.html +17 -0
  230. data/lib/doc/classes/GGLib/Theme.src/M000280.html +17 -0
  231. data/lib/doc/classes/GGLib/Theme.src/M000281.html +17 -0
  232. data/lib/doc/classes/GGLib/Theme.src/M000282.html +17 -0
  233. data/lib/doc/classes/GGLib/Theme.src/M000283.html +17 -0
  234. data/lib/doc/classes/GGLib/Theme.src/M000284.html +18 -0
  235. data/lib/doc/classes/GGLib/ThemeFontGroup.html +170 -0
  236. data/lib/doc/classes/GGLib/ThemeFontGroup.src/M000064.html +22 -0
  237. data/lib/doc/classes/GGLib/ThemeImageGroup.html +160 -0
  238. data/lib/doc/classes/GGLib/ThemeImageGroup.src/M000184.html +20 -0
  239. data/lib/doc/classes/GGLib/ThemeInstance.html +304 -0
  240. data/lib/doc/classes/GGLib/ThemeInstance.src/M000065.html +25 -0
  241. data/lib/doc/classes/GGLib/ThemeInstance.src/M000066.html +21 -0
  242. data/lib/doc/classes/GGLib/ThemeInstance.src/M000067.html +18 -0
  243. data/lib/doc/classes/GGLib/ThemeInstance.src/M000068.html +18 -0
  244. data/lib/doc/classes/GGLib/ThemeInstance.src/M000069.html +18 -0
  245. data/lib/doc/classes/GGLib/ThemeInstance.src/M000070.html +17 -0
  246. data/lib/doc/classes/GGLib/ThemeInstance.src/M000071.html +18 -0
  247. data/lib/doc/classes/GGLib/ThemeInstance.src/M000072.html +18 -0
  248. data/lib/doc/classes/GGLib/ThemeInstance.src/M000073.html +18 -0
  249. data/lib/doc/classes/GGLib/ThemeInstance.src/M000074.html +18 -0
  250. data/lib/doc/classes/GGLib/ThemeInstance.src/M000075.html +18 -0
  251. data/lib/doc/classes/GGLib/ThemeInstance.src/M000076.html +17 -0
  252. data/lib/doc/classes/GGLib/Themes.html +164 -0
  253. data/lib/doc/classes/GGLib/Themes.src/M000014.html +30 -0
  254. data/lib/doc/classes/GGLib/Themes.src/M000015.html +30 -0
  255. data/lib/doc/classes/GGLib/Themes/BlueSteelTheme.html +154 -0
  256. data/lib/doc/classes/GGLib/Themes/BlueSteelTheme.src/M000023.html +24 -0
  257. data/lib/doc/classes/GGLib/Themes/BlueSteelTheme.src/M000024.html +94 -0
  258. data/lib/doc/classes/GGLib/Themes/RubygooLabelTheme.html +137 -0
  259. data/lib/doc/classes/GGLib/Themes/RubygooLabelTheme.src/M000019.html +25 -0
  260. data/lib/doc/classes/GGLib/Themes/RubygooTextTheme.html +154 -0
  261. data/lib/doc/classes/GGLib/Themes/RubygooTextTheme.src/M000025.html +25 -0
  262. data/lib/doc/classes/GGLib/Themes/RubygooTextTheme.src/M000026.html +26 -0
  263. data/lib/doc/classes/GGLib/Themes/RubygooTheme.html +169 -0
  264. data/lib/doc/classes/GGLib/Themes/RubygooTheme.src/M000020.html +25 -0
  265. data/lib/doc/classes/GGLib/Themes/RubygooTheme.src/M000021.html +27 -0
  266. data/lib/doc/classes/GGLib/Themes/RubygooTheme.src/M000022.html +24 -0
  267. data/lib/doc/classes/GGLib/Themes/ShadeCheckGenCTheme.html +154 -0
  268. data/lib/doc/classes/GGLib/Themes/ShadeCheckGenCTheme.src/M000027.html +25 -0
  269. data/lib/doc/classes/GGLib/Themes/ShadeCheckGenCTheme.src/M000028.html +28 -0
  270. data/lib/doc/classes/GGLib/Themes/ShadeCheckGenTheme.html +154 -0
  271. data/lib/doc/classes/GGLib/Themes/ShadeCheckGenTheme.src/M000016.html +25 -0
  272. data/lib/doc/classes/GGLib/Themes/ShadeCheckGenTheme.src/M000017.html +30 -0
  273. data/lib/doc/classes/GGLib/Themes/ShadeLabelTheme.html +137 -0
  274. data/lib/doc/classes/GGLib/Themes/ShadeLabelTheme.src/M000018.html +25 -0
  275. data/lib/doc/classes/GGLib/Themes/ShadeTheme.html +169 -0
  276. data/lib/doc/classes/GGLib/Themes/ShadeTheme.src/M000031.html +25 -0
  277. data/lib/doc/classes/GGLib/Themes/ShadeTheme.src/M000032.html +30 -0
  278. data/lib/doc/classes/GGLib/Themes/ShadeTheme.src/M000033.html +26 -0
  279. data/lib/doc/classes/GGLib/Themes/WindowsTheme.html +154 -0
  280. data/lib/doc/classes/GGLib/Themes/WindowsTheme.src/M000029.html +24 -0
  281. data/lib/doc/classes/GGLib/Themes/WindowsTheme.src/M000030.html +94 -0
  282. data/lib/doc/classes/GGLib/Tile.html +568 -0
  283. data/lib/doc/classes/GGLib/Tile.src/M000105.html +34 -0
  284. data/lib/doc/classes/GGLib/Tile.src/M000106.html +22 -0
  285. data/lib/doc/classes/GGLib/Tile.src/M000108.html +18 -0
  286. data/lib/doc/classes/GGLib/Tile.src/M000109.html +18 -0
  287. data/lib/doc/classes/GGLib/Tile.src/M000110.html +21 -0
  288. data/lib/doc/classes/GGLib/Tile.src/M000111.html +23 -0
  289. data/lib/doc/classes/GGLib/Tile.src/M000112.html +18 -0
  290. data/lib/doc/classes/GGLib/Tile.src/M000113.html +18 -0
  291. data/lib/doc/classes/GGLib/Tile.src/M000114.html +18 -0
  292. data/lib/doc/classes/GGLib/Tile.src/M000115.html +18 -0
  293. data/lib/doc/classes/GGLib/Tile.src/M000116.html +22 -0
  294. data/lib/doc/classes/GGLib/Tile.src/M000117.html +32 -0
  295. data/lib/doc/classes/GGLib/Tile.src/M000118.html +18 -0
  296. data/lib/doc/classes/GGLib/Tile.src/M000119.html +18 -0
  297. data/lib/doc/classes/GGLib/Tile.src/M000120.html +22 -0
  298. data/lib/doc/classes/GGLib/Tile.src/M000121.html +24 -0
  299. data/lib/doc/classes/GGLib/Tile.src/M000122.html +18 -0
  300. data/lib/doc/classes/GGLib/Tile.src/M000123.html +18 -0
  301. data/lib/doc/classes/GGLib/Tile.src/M000124.html +18 -0
  302. data/lib/doc/classes/GGLib/Tile.src/M000125.html +19 -0
  303. data/lib/doc/classes/GGLib/TracePanel.html +306 -0
  304. data/lib/doc/classes/GGLib/TracePanel.src/M000093.html +19 -0
  305. data/lib/doc/classes/GGLib/TracePanel.src/M000094.html +22 -0
  306. data/lib/doc/classes/GGLib/TracePanel.src/M000095.html +19 -0
  307. data/lib/doc/classes/GGLib/TracePanel.src/M000096.html +20 -0
  308. data/lib/doc/classes/GGLib/TracePanel.src/M000097.html +18 -0
  309. data/lib/doc/classes/GGLib/TracePanel.src/M000098.html +18 -0
  310. data/lib/doc/classes/GGLib/TracePanel.src/M000099.html +18 -0
  311. data/lib/doc/classes/GGLib/TracePanel.src/M000100.html +18 -0
  312. data/lib/doc/classes/GGLib/TracePanel.src/M000101.html +21 -0
  313. data/lib/doc/classes/GGLib/TracePanel.src/M000102.html +22 -0
  314. data/lib/doc/classes/GGLib/TracePanel.src/M000103.html +18 -0
  315. data/lib/doc/classes/GGLib/TracePanel.src/M000104.html +22 -0
  316. data/lib/doc/classes/GGLib/Widget.html +687 -0
  317. data/lib/doc/classes/GGLib/Widget.src/M000195.html +25 -0
  318. data/lib/doc/classes/GGLib/Widget.src/M000196.html +22 -0
  319. data/lib/doc/classes/GGLib/Widget.src/M000197.html +22 -0
  320. data/lib/doc/classes/GGLib/Widget.src/M000198.html +20 -0
  321. data/lib/doc/classes/GGLib/Widget.src/M000199.html +18 -0
  322. data/lib/doc/classes/GGLib/Widget.src/M000200.html +18 -0
  323. data/lib/doc/classes/GGLib/Widget.src/M000201.html +22 -0
  324. data/lib/doc/classes/GGLib/Widget.src/M000202.html +27 -0
  325. data/lib/doc/classes/GGLib/Widget.src/M000203.html +22 -0
  326. data/lib/doc/classes/GGLib/Widget.src/M000204.html +17 -0
  327. data/lib/doc/classes/GGLib/Widget.src/M000205.html +17 -0
  328. data/lib/doc/classes/GGLib/Widget.src/M000206.html +17 -0
  329. data/lib/doc/classes/GGLib/Widget.src/M000207.html +17 -0
  330. data/lib/doc/classes/GGLib/Widget.src/M000208.html +17 -0
  331. data/lib/doc/classes/GGLib/Widget.src/M000209.html +17 -0
  332. data/lib/doc/classes/GGLib/Widget.src/M000210.html +17 -0
  333. data/lib/doc/classes/GGLib/Widget.src/M000211.html +17 -0
  334. data/lib/doc/classes/GGLib/Widget.src/M000212.html +17 -0
  335. data/lib/doc/classes/GGLib/Widget.src/M000213.html +17 -0
  336. data/lib/doc/classes/GGLib/Widget.src/M000214.html +17 -0
  337. data/lib/doc/classes/GGLib/Widget.src/M000215.html +17 -0
  338. data/lib/doc/classes/GGLib/Widget.src/M000216.html +17 -0
  339. data/lib/doc/classes/GGLib/Widget.src/M000217.html +17 -0
  340. data/lib/doc/classes/GGLib/Widget.src/M000218.html +18 -0
  341. data/lib/doc/classes/GGLib/Widget.src/M000219.html +18 -0
  342. data/lib/doc/classes/GGLib/Widget.src/M000220.html +21 -0
  343. data/lib/doc/classes/GGLib/Widget.src/M000221.html +17 -0
  344. data/lib/doc/classes/GGLib/Widget.src/M000222.html +24 -0
  345. data/lib/doc/classes/GGLib/Widget.src/M000223.html +18 -0
  346. data/lib/doc/classes/GGLib/Widget.src/M000224.html +21 -0
  347. data/lib/doc/classes/GGLib/Widget.src/M000225.html +18 -0
  348. data/lib/doc/classes/GGLib/Widget.src/M000226.html +24 -0
  349. data/lib/doc/classes/GGLib/WidgetEvent.html +209 -0
  350. data/lib/doc/classes/GGLib/ZOrder.html +209 -0
  351. data/lib/doc/classes/MyGUIWindow.html +139 -0
  352. data/lib/doc/classes/MyGUIWindow.src/M000011.html +26 -0
  353. data/lib/doc/classes/MySplashScreen.html +171 -0
  354. data/lib/doc/classes/MySplashScreen.src/M000005.html +18 -0
  355. data/lib/doc/classes/MySplashScreen.src/M000006.html +21 -0
  356. data/lib/doc/classes/MySplashScreen.src/M000007.html +21 -0
  357. data/lib/doc/classes/MyStateObj.html +191 -0
  358. data/lib/doc/classes/MyStateObj.src/M000001.html +19 -0
  359. data/lib/doc/classes/MyStateObj.src/M000002.html +29 -0
  360. data/lib/doc/classes/MyStateObj.src/M000003.html +18 -0
  361. data/lib/doc/classes/StartMenu.html +145 -0
  362. data/lib/doc/classes/StartMenu.src/M000004.html +19 -0
  363. data/lib/doc/created.rid +1 -0
  364. data/lib/doc/files/gglib/camera_rb.html +101 -0
  365. data/lib/doc/files/gglib/carray_rb.html +101 -0
  366. data/lib/doc/files/gglib/examples/BasicExample_rb.html +112 -0
  367. data/lib/doc/files/gglib/examples/ConsoleDemo_rb.html +112 -0
  368. data/lib/doc/files/gglib/examples/FadeIn_rb.html +111 -0
  369. data/lib/doc/files/gglib/examples/SplashScreen_rb.html +112 -0
  370. data/lib/doc/files/gglib/ext/menus_rb.html +101 -0
  371. data/lib/doc/files/gglib/ext/splash_rb.html +101 -0
  372. data/lib/doc/files/gglib/ext/themes_rb.html +101 -0
  373. data/lib/doc/files/gglib/ext/widgets_rb.html +101 -0
  374. data/lib/doc/files/gglib/gglib_rb.html +101 -0
  375. data/lib/doc/files/gglib/image_rb.html +101 -0
  376. data/lib/doc/files/gglib/mouse_rb.html +101 -0
  377. data/lib/doc/files/gglib/null_rb.html +107 -0
  378. data/lib/doc/files/gglib/state_rb.html +101 -0
  379. data/lib/doc/files/gglib/theme_rb.html +101 -0
  380. data/lib/doc/files/gglib/tile_rb.html +101 -0
  381. data/lib/doc/files/gglib/widget_rb.html +101 -0
  382. data/lib/doc/files/gglib/window_rb.html +101 -0
  383. data/lib/doc/fr_class_index.html +83 -0
  384. data/lib/doc/fr_file_index.html +45 -0
  385. data/lib/doc/fr_method_index.html +314 -0
  386. data/lib/doc/index.html +24 -0
  387. data/lib/doc/rdoc-style.css +208 -0
  388. data/lib/ext/splash.rb +41 -41
  389. data/lib/ext/themes.rb +422 -158
  390. data/lib/ext/widgets.rb +527 -348
  391. data/lib/gglib.rb +12 -12
  392. data/lib/image.rb +176 -176
  393. data/lib/media/black.bmp +0 -0
  394. data/lib/media/bluesteel/button/button.png +0 -0
  395. data/lib/media/bluesteel/button/buttondown.png +0 -0
  396. data/lib/media/bluesteel/button/buttonup.png +0 -0
  397. data/lib/media/bluesteel/checkbox/checkbox.png +0 -0
  398. data/lib/media/bluesteel/checkbox/checkboxc.png +0 -0
  399. data/lib/media/bluesteel/checkbox/checkboxcdown.png +0 -0
  400. data/lib/media/bluesteel/checkbox/checkboxcup.png +0 -0
  401. data/lib/media/bluesteel/checkbox/checkboxdown.png +0 -0
  402. data/lib/media/bluesteel/checkbox/checkboxup.png +0 -0
  403. data/lib/media/bluesteel/generic/menularge.png +0 -0
  404. data/lib/media/bluesteel/generic/menumed.png +0 -0
  405. data/lib/media/bluesteel/generic/menusmall.png +0 -0
  406. data/lib/media/bluesteel/radio/radiobtn.png +0 -0
  407. data/lib/media/bluesteel/radio/radiobtnc.png +0 -0
  408. data/lib/media/bluesteel/radio/radiobtncdown.png +0 -0
  409. data/lib/media/bluesteel/radio/radiobtncup.png +0 -0
  410. data/lib/media/bluesteel/radio/radiobtndown.png +0 -0
  411. data/lib/media/bluesteel/radio/radiobtnup.png +0 -0
  412. data/lib/media/bluesteel/textbox/textbox.png +0 -0
  413. data/lib/media/bluesteel/textbox/textboxactive.png +0 -0
  414. data/lib/media/cursor.bmp +0 -0
  415. data/lib/media/windows/button/button - Copy.png +0 -0
  416. data/lib/media/windows/button/button.png +0 -0
  417. data/lib/media/windows/button/buttondown.png +0 -0
  418. data/lib/media/windows/button/buttonup.png +0 -0
  419. data/lib/media/windows/checkbox/checkbox.png +0 -0
  420. data/lib/media/windows/checkbox/checkboxc.png +0 -0
  421. data/lib/media/windows/checkbox/checkboxcdown.png +0 -0
  422. data/lib/media/windows/checkbox/checkboxcup.png +0 -0
  423. data/lib/media/windows/checkbox/checkboxdown.png +0 -0
  424. data/lib/media/windows/checkbox/checkboxup.png +0 -0
  425. data/lib/media/windows/generic/menusmall.png +0 -0
  426. data/lib/media/windows/radio/radiobtn.png +0 -0
  427. data/lib/media/windows/radio/radiobtnc.png +0 -0
  428. data/lib/media/windows/radio/radiobtncdown.png +0 -0
  429. data/lib/media/windows/radio/radiobtncup.png +0 -0
  430. data/lib/media/windows/radio/radiobtndown.png +0 -0
  431. data/lib/media/windows/radio/radiobtnup.png +0 -0
  432. data/lib/media/windows/textbox/textbox.png +0 -0
  433. data/lib/media/windows/textbox/textboxup.png +0 -0
  434. data/lib/mouse.rb +62 -62
  435. data/lib/null.bmp +0 -0
  436. data/lib/null.png +0 -0
  437. data/lib/state.rb +136 -136
  438. data/lib/theme.rb +204 -204
  439. data/lib/tile.rb +169 -169
  440. data/lib/widget.rb +217 -205
  441. data/lib/window.rb +333 -324
  442. metadata +523 -21
  443. data/gemspec.txt +0 -15
  444. data/gglib-1.1.tar.gz +0 -0
  445. data/gglib.gemspec +0 -15
  446. data/gglib.tar +0 -0
@@ -1,349 +1,528 @@
1
- module GGLib
2
-
3
- class DebugConsole < Widget
4
- @@allow=false
5
- def initialize(name="unnamed", theme=Themes::blank)
6
- super(name, 0, 0, 640, 480, theme)
7
- @vline=0
8
- @oldtext=[]
9
- @textm=false
10
- clear
11
- stickFocus
12
- end
13
- def onKeyPress(key)
14
- if key==WidgetEvent::KeyDelete
15
- thisline=@text[@line]
16
- if @textm and thisline.length>0
17
- @text[@line]=thisline.slice(0,thisline.length-1)
18
- elsif thisline.length>3
19
- @text[@line]=thisline.slice(0,thisline.length-1)
20
- end
21
- elsif key==WidgetEvent::KeySpace
22
- @text[@line]+=" "
23
- elsif key==WidgetEvent::KeyEscape
24
- sleep
25
- elsif key==WidgetEvent::KeyEnter
26
- if @textm
27
- if @text[@line]=="/endtext"
28
- @textm=false
29
- @line+=1
30
- @text[@line]=">> "
31
- else
32
- @line+=1
33
- @text[@line]=""
34
- end
35
- return
36
- end
37
- @oldtext.push @text[@line]
38
- cmd=@text[@line].slice(3,@text[@line].length-3)
39
- if cmd.slice(cmd.size-3,3)=="/nl"
40
- @text[@line]=@text[@line].slice(0,@text[@line].length-3)
41
- @text[@line+1]="|> "
42
- @line+=1
43
- else
44
- runcmd(cmd)
45
- end
46
- @vline=@oldtext.size
47
- elsif key==WidgetEvent::KeyUp
48
- if @vline-1 >= 0 and
49
- @vline-=1
50
- @text[@line]=@oldtext[@vline]
51
- end
52
- elsif key==WidgetEvent::KeyDown
53
- if @vline+1 < @oldtext.size and
54
- @vline+=1
55
- @text[@line]=@oldtext[@vline]
56
- end
57
- end
58
- end
59
- def feedText(char)
60
- @text[@line]+=char.to_s unless char=="`"
61
- end
62
- def justify(ln)
63
- fin=""
64
- size=ln.size
65
- while ln.size>70
66
- fin+=ln.slice(0,70)+"\fNL"
67
- ln=ln.slice(70,ln.size)
68
- end
69
- fin+=ln.to_s
70
- return fin
71
- end
72
- def respond(text)
73
- text=text.to_s
74
- @line+=1
75
- if text==""
76
- text="<no output>"
77
- end
78
- text=justify(text) if text.index("\fNL")==nil
79
- text=text.split("\fNL")
80
- mult=false
81
- text.each { |ln|
82
- if ln.slice(0,4)=="\fERR"
83
- @text[@line]="!> "+ln.strip
84
- else
85
- @text[@line]="^> "+ln
86
- end
87
- @line+=1
88
- @text[@line]=">> "
89
- }
90
- end
91
- def clear
92
- @text=[]
93
- @text[0]="CONSOLE"
94
- @text[1]="#########"
95
- @text[2]="<Press ` (backquote) or enter '/exit' to exit>"
96
- @text[3]=">> "
97
- @line=3
98
- @vline=@oldtext.size-1
99
- end
100
- private
101
- def runcmd(cmd)
102
- if cmd.slice(0,1)=="/"
103
- if cmd=="/exit"
104
- sleep
105
- return
106
- elsif cmd=="/clear"
107
- clear
108
- return
109
- elsif cmd=="/help"
110
- respond("Enter a Ruby command to execute it\fNLEnter '/' followed by a word to execute a console command\fNLFor a list of console commands, enter '/list'")
111
- return
112
- elsif cmd=="/list"
113
- respond("/clear\fNL/clearhist\fNL/endtext\fNL/exit\fNL/help\fNL/hist\fNL/list\fNL/text")
114
- return
115
- elsif cmd=="/hist"
116
- resp=""
117
- @oldtext.each { |item|
118
- resp+="\fNL"
119
- resp+=item
120
- }
121
- respond(resp)
122
- return
123
- elsif cmd=="/text"
124
- @textm=true
125
- @line+=1
126
- @text[@line]=""
127
- return
128
- elsif cmd=="/clearhist"
129
- @oldtext=[]
130
- @vline=0
131
- return
132
- end
133
- return
134
- end
135
- output=eval("begin\n"+cmd+"\nrescue\n'\fERR: '+$@[0]+': '+$!\nend",TOPLEVEL_BINDING)
136
- respond(output)
137
- end
138
- public
139
- def sleep
140
- @text=[]
141
- @line=0
142
- @vline=0
143
- super
144
- end
145
- def wakeUp
146
- @oldtext=[]
147
- @vline=0
148
- @text=false
149
- clear
150
- stickFocus
151
- super
152
- end
153
- def onStickyFocus
154
- $window.setTextInput(@textinput)
155
- end
156
- def onStickyBlur
157
- $window.setTextInput(nil)
158
- end
159
- def DebugConsole.enabled=(bool)
160
- @@allow=bool
161
- end
162
- def DebugConsole.enabled
163
- return @@allow
164
- end
165
- def draw
166
- i=0
167
- @text.each {|line|
168
- @theme.font.default.draw(line, 10, 10+i*@theme.font.default.height, ZOrder::Text, 1.0, 1.0, 0xffffffff)
169
- i+=1
170
- }
171
- end
172
- end
173
-
174
- class TracePanel < Widget
175
- @@allow=false
176
- def initialize(name)
177
- super(name, 0,0,640,60, Themes::tracePanel)
178
- clear
179
- end
180
- def onKeyPress(key)
181
- if key==WidgetEvent::KeyDelete
182
- sleep
183
- elsif key==WidgetEvent::KeyEnter
184
- clear
185
- end
186
- end
187
- def sput(text)
188
- @line+=1
189
- @text[@line]=text.to_s
190
- end
191
- def put(text)
192
- @line+=1
193
- @text[@line]=text.to_s
194
- wakeUp
195
- end
196
- def <<(text)
197
- sput(text)
198
- end
199
- def *(nullarg=nil)
200
- wakeUp
201
- end
202
- def ~()
203
- sleep
204
- end
205
- def pause
206
- gets
207
- end
208
- def clear
209
- @text=[]
210
- @text[0]="TRACE OUTPUT"
211
- @text[1]="Press DELETE to close, ENTER to clear. (Click to activate.)"
212
- @line=2
213
- end
214
- def TracePanel.enabled=(bool)
215
- if bool==true
216
- @@allow=true
217
- else
218
- @@allow=false
219
- end
220
- end
221
- def TracePanel.enabled
222
- return @@allow
223
- end
224
- def draw
225
- i=0
226
- @text.each {|line|
227
- @them.font.default.draw(line, 10, 10+i*@font.height, ZOrder::Text, 1.0, 1.0, 0xffffffff)
228
- i+=1
229
- }
230
- end
231
- end
232
-
233
- class TextBox < Widget
234
- CaretColor=0xff646464
235
- TextColor=0xff646464
236
- SelColor=0xff33FFFF
237
- TextPadding=5
238
- def initialize(name, x, y, len=12, theme=Themes::blank, w=nil,height=nil)
239
- if width!=nil and height!=nil
240
- super(name, x, y, x+w, y+h, theme)
241
- else
242
- @theme = theme.newInstance(self) #Get specialized instance early
243
- @theme.setCoords(1,1,1,1)
244
- super(name, x, y, x+@theme.width, y+@theme.height, theme)
245
- @theme.setCoords(@x1, @y1, @x2, @y2)
246
- end
247
- @textinput=Gosu::TextInput.new
248
- @offsety=((@theme.height-@theme.font.editable.height)/2).floor
249
- @maxlength=len
250
- @x=x
251
- @y=y
252
- @drawcursor=0
253
- @realwidth=@x + TextPadding
254
- end
255
- def onMouseOver
256
- @theme.setOverState unless self.hasStickyFocus?
257
- end
258
- def onMouseOut
259
- @theme.setDefaultState unless self.hasStickyFocus?
260
- end
261
- def onMouseClick
262
- stickFocus
263
- end
264
- def onStickyFocus
265
- @theme.setOverState
266
- $window.setTextInput(@textinput)
267
- end
268
- def onStickyBlur
269
- @theme.setDefaultState
270
- $window.setTextInput(nil)
271
- end
272
- def width
273
- return @maxlength
274
- end
275
- def text
276
- return @textinput.text
277
- end
278
- def text=(val)
279
- val=val.slice(0,12) if val.size>12
280
- @textinput.text = val
281
- end
282
- def draw
283
- text=@textinput.text.slice(0,12)
284
- if self.hasStickyFocus?
285
- pos_x = @x + @theme.font.editable.text_width(@textinput.text[0...@textinput.caret_pos]) + TextPadding
286
- sel_x = @x + @theme.font.editable.text_width(@textinput.text[0...@textinput.selection_start]) + TextPadding
287
- @realwidth+=@theme.font.editable.text_width(text)
288
- if pos_x > @realwidth
289
- pos_x=@realwidth+1
290
- sel_x=@realwidth+1
291
- @textinput.text=text
292
- end
293
- @realwidth-=@theme.font.editable.text_width(text)
294
- if @drawcursor < 18
295
- $window.draw_line(pos_x, @y+@offsety, CaretColor, pos_x, @y+@theme.font.editable.height+@offsety, CaretColor, ZOrder::Text)
296
- elsif @drawcursor > 36
297
- @drawcursor=0
298
- end
299
- @drawcursor+=1
300
- $window.draw_quad(sel_x, @y+@offsety, @theme.font.selcolor, pos_x, @y+@offsety, @theme.font.selcolor, sel_x, @y+@theme.font.editable.height+@offsety, @theme.font.selcolor, pos_x, @y+@theme.font.editable.height+@offsety, @theme.font.selcolor, ZOrder::Text-0.5)
301
- end
302
- @theme.font.editable.draw(text, @x+TextPadding, @y+@offsety, ZOrder::Text, 1, 1, @theme.font.color)
303
- end
304
- end
305
-
306
- class Button < Widget
307
- TextColor=0xff000000
308
- attr_accessor :text
309
- def initialize(name, text, x, y, onClickPrc=Proc.new{}, theme = Themes::blank)
310
- super(name, x, y, x+100, y+30, theme)
311
- @text=text
312
- @onClickPrc=onClickPrc
313
- @drawx=x+((100-@theme.font.default.text_width(@text))/2).floor
314
- @drawy=y+((30-@theme.font.default.height)/2).floor
315
- end
316
- def x1=
317
- super
318
- @drawx=x+((100-@theme.font.default.text_width(@text))/2).floor
319
- end
320
- def y1=
321
- super
322
- @drawy=y+((30-@theme.font.default.height)/2).floor
323
- end
324
- def onClick
325
- @onClickPrc.call(self)
326
- end
327
- def onMouseOver
328
- @theme.setOverState
329
- end
330
- def onMouseOut
331
- @theme.setDefaultState
332
- end
333
- def draw
334
- @theme.font.default.draw(@text, @drawx, @drawy, ZOrder::Text, 1, 1, @theme.font.color)
335
- end
336
- end
337
-
338
- class Label < Widget
339
- attr_accessor :text
340
- def initialize(name, text, x, y, theme = Themes::blank)
341
- @text = text
342
- super(name,x,y,x+100,y+30,theme)
343
- end
344
- def draw
345
- @theme.font.default.draw(@text, x, y, ZOrder::Text, 1, 1, @theme.font.color)
346
- end
347
- end
348
-
1
+ module GGLib
2
+
3
+ class DebugConsole < Widget
4
+ @@allow=false
5
+ def initialize(name="unnamed", theme=Themes::blank)
6
+ super(name, 0, 0, 640, 480, theme)
7
+ @vline=0
8
+ @oldtext=[]
9
+ @textm=false
10
+ clear
11
+ stickFocus
12
+ end
13
+ def onKeyPress(key)
14
+ if key==WidgetEvent::KeyDelete
15
+ thisline=@text[@line]
16
+ if @textm and thisline.length>0
17
+ @text[@line]=thisline.slice(0,thisline.length-1)
18
+ elsif thisline.length>3
19
+ @text[@line]=thisline.slice(0,thisline.length-1)
20
+ end
21
+ elsif key==WidgetEvent::KeySpace
22
+ @text[@line]+=" "
23
+ elsif key==WidgetEvent::KeyEscape
24
+ sleep
25
+ elsif key==WidgetEvent::KeyEnter
26
+ if @textm
27
+ if @text[@line]=="/endtext"
28
+ @textm=false
29
+ @line+=1
30
+ @text[@line]=">> "
31
+ else
32
+ @line+=1
33
+ @text[@line]=""
34
+ end
35
+ return
36
+ end
37
+ @oldtext.push @text[@line]
38
+ cmd=@text[@line].slice(3,@text[@line].length-3)
39
+ if cmd.slice(cmd.size-3,3)=="/nl"
40
+ @text[@line]=@text[@line].slice(0,@text[@line].length-3)
41
+ @text[@line+1]="|> "
42
+ @line+=1
43
+ else
44
+ runcmd(cmd)
45
+ end
46
+ @vline=@oldtext.size
47
+ elsif key==WidgetEvent::KeyUp
48
+ if @vline-1 >= 0 and
49
+ @vline-=1
50
+ @text[@line]=@oldtext[@vline]
51
+ end
52
+ elsif key==WidgetEvent::KeyDown
53
+ if @vline+1 < @oldtext.size and
54
+ @vline+=1
55
+ @text[@line]=@oldtext[@vline]
56
+ end
57
+ end
58
+ end
59
+ def feedText(char)
60
+ @text[@line]+=char.to_s unless char=="`"
61
+ end
62
+ def justify(ln)
63
+ fin=""
64
+ size=ln.size
65
+ while ln.size>70
66
+ fin+=ln.slice(0,70)+"\fNL"
67
+ ln=ln.slice(70,ln.size)
68
+ end
69
+ fin+=ln.to_s
70
+ return fin
71
+ end
72
+ def respond(text)
73
+ text=text.to_s
74
+ @line+=1
75
+ if text==""
76
+ text="<no output>"
77
+ end
78
+ text=justify(text) if text.index("\fNL")==nil
79
+ text=text.split("\fNL")
80
+ mult=false
81
+ text.each { |ln|
82
+ if ln.slice(0,4)=="\fERR"
83
+ @text[@line]="!> "+ln.strip
84
+ else
85
+ @text[@line]="^> "+ln
86
+ end
87
+ @line+=1
88
+ @text[@line]=">> "
89
+ }
90
+ end
91
+ def clear
92
+ @text=[]
93
+ @text[0]="CONSOLE"
94
+ @text[1]="#########"
95
+ @text[2]="<Press ` (backquote) or enter '/exit' to exit>"
96
+ @text[3]=">> "
97
+ @line=3
98
+ @vline=@oldtext.size-1
99
+ end
100
+ private
101
+ def runcmd(cmd)
102
+ if cmd.slice(0,1)=="/"
103
+ if cmd=="/exit"
104
+ sleep
105
+ return
106
+ elsif cmd=="/clear"
107
+ clear
108
+ return
109
+ elsif cmd=="/help"
110
+ respond("Enter a Ruby command to execute it\fNLEnter '/' followed by a word to execute a console command\fNLFor a list of console commands, enter '/list'")
111
+ return
112
+ elsif cmd=="/list"
113
+ respond("/clear\fNL/clearhist\fNL/endtext\fNL/exit\fNL/help\fNL/hist\fNL/list\fNL/text")
114
+ return
115
+ elsif cmd=="/hist"
116
+ resp=""
117
+ @oldtext.each { |item|
118
+ resp+="\fNL"
119
+ resp+=item
120
+ }
121
+ respond(resp)
122
+ return
123
+ elsif cmd=="/text"
124
+ @textm=true
125
+ @line+=1
126
+ @text[@line]=""
127
+ return
128
+ elsif cmd=="/clearhist"
129
+ @oldtext=[]
130
+ @vline=0
131
+ return
132
+ end
133
+ return
134
+ end
135
+ output=eval("begin\n"+cmd+"\nrescue\n'\fERR: '+$@[0]+': '+$!\nend",TOPLEVEL_BINDING)
136
+ respond(output)
137
+ end
138
+ public
139
+ def sleep
140
+ @text=[]
141
+ @line=0
142
+ @vline=0
143
+ super
144
+ end
145
+ def wakeUp
146
+ @oldtext=[]
147
+ @vline=0
148
+ @text=false
149
+ clear
150
+ stickFocus
151
+ super
152
+ end
153
+ def onStickyFocus
154
+ $window.setTextInput(@textinput)
155
+ end
156
+ def onStickyBlur
157
+ $window.setTextInput(nil)
158
+ end
159
+ def DebugConsole.enabled=(bool)
160
+ @@allow=bool
161
+ end
162
+ def DebugConsole.enabled
163
+ return @@allow
164
+ end
165
+ def draw
166
+ i=0
167
+ @text.each {|line|
168
+ @theme.font.default.draw(line, 10, 10+i*@theme.font.default.height, ZOrder::Text, 1.0, 1.0, 0xffffffff)
169
+ i+=1
170
+ }
171
+ end
172
+ end
173
+
174
+ class TracePanel < Widget
175
+ @@allow=false
176
+ def initialize(name)
177
+ super(name, 0,0,640,60, Themes::tracePanel)
178
+ clear
179
+ end
180
+ def onKeyPress(key)
181
+ if key==WidgetEvent::KeyDelete
182
+ sleep
183
+ elsif key==WidgetEvent::KeyEnter
184
+ clear
185
+ end
186
+ end
187
+ def sput(text)
188
+ @line+=1
189
+ @text[@line]=text.to_s
190
+ end
191
+ def put(text)
192
+ @line+=1
193
+ @text[@line]=text.to_s
194
+ wakeUp
195
+ end
196
+ def <<(text)
197
+ sput(text)
198
+ end
199
+ def *(nullarg=nil)
200
+ wakeUp
201
+ end
202
+ def ~()
203
+ sleep
204
+ end
205
+ def pause
206
+ gets
207
+ end
208
+ def clear
209
+ @text=[]
210
+ @text[0]="TRACE OUTPUT"
211
+ @text[1]="Press DELETE to close, ENTER to clear. (Click to activate.)"
212
+ @line=2
213
+ end
214
+ def TracePanel.enabled=(bool)
215
+ if bool==true
216
+ @@allow=true
217
+ else
218
+ @@allow=false
219
+ end
220
+ end
221
+ def TracePanel.enabled
222
+ return @@allow
223
+ end
224
+ def draw
225
+ i=0
226
+ @text.each {|line|
227
+ @them.font.default.draw(line, 10, 10+i*@font.height, ZOrder::Text, 1.0, 1.0, 0xffffffff)
228
+ i+=1
229
+ }
230
+ end
231
+ end
232
+
233
+ class TextBox < Widget
234
+ CaretColor=0xff646464
235
+ TextColor=0xff646464
236
+ SelColor=0xff33FFFF
237
+ TextPadding=5
238
+ def initialize(name, x, y, len=12, theme=Themes::blank, w=nil,height=nil)
239
+ if width!=nil and height!=nil
240
+ super(name, x, y, x+w, y+h, theme)
241
+ else
242
+ @theme = theme.newInstance(self) #Get specialized instance early
243
+ @theme.setCoords(1,1,1,1)
244
+ super(name, x, y, x+@theme.width, y+@theme.height, theme)
245
+ @theme.setCoords(@x1, @y1, @x2, @y2)
246
+ end
247
+ @textinput=Gosu::TextInput.new
248
+ @offsety=((@theme.height-@theme.font.editable.height)/2).floor
249
+ @maxlength=len
250
+ @x=x
251
+ @y=y
252
+ @drawcursor=0
253
+ @realwidth=@x + TextPadding
254
+ end
255
+ def onMouseOver
256
+ @theme.setOverState unless self.hasStickyFocus?
257
+ end
258
+ def onMouseOut
259
+ @theme.setDefaultState unless self.hasStickyFocus?
260
+ end
261
+ def onMouseClick
262
+ stickFocus
263
+ end
264
+ def onStickyFocus
265
+ @theme.setOverState
266
+ $window.setTextInput(@textinput)
267
+ end
268
+ def onStickyBlur
269
+ @theme.setDefaultState
270
+ $window.setTextInput(nil)
271
+ end
272
+ def width
273
+ return @maxlength
274
+ end
275
+ def text
276
+ return @textinput.text
277
+ end
278
+ def text=(val)
279
+ val=val.slice(0,12) if val.size>12
280
+ @textinput.text = val
281
+ end
282
+ def draw
283
+ text=@textinput.text.slice(0,12)
284
+ if self.hasStickyFocus?
285
+ pos_x = @x + @theme.font.editable.text_width(@textinput.text[0...@textinput.caret_pos]) + TextPadding
286
+ sel_x = @x + @theme.font.editable.text_width(@textinput.text[0...@textinput.selection_start]) + TextPadding
287
+ @realwidth+=@theme.font.editable.text_width(text)
288
+ if pos_x > @realwidth
289
+ pos_x=@realwidth+1
290
+ sel_x=@realwidth+1
291
+ @textinput.text=text
292
+ end
293
+ @realwidth-=@theme.font.editable.text_width(text)
294
+ if @drawcursor < 18
295
+ $window.draw_line(pos_x, @y+@offsety, CaretColor, pos_x, @y+@theme.font.editable.height+@offsety, CaretColor, ZOrder::Text)
296
+ elsif @drawcursor > 36
297
+ @drawcursor=0
298
+ end
299
+ @drawcursor+=1
300
+ $window.draw_quad(sel_x, @y+@offsety, @theme.font.selcolor, pos_x, @y+@offsety, @theme.font.selcolor, sel_x, @y+@theme.font.editable.height+@offsety, @theme.font.selcolor, pos_x, @y+@theme.font.editable.height+@offsety, @theme.font.selcolor, ZOrder::Text-0.5)
301
+ end
302
+ @theme.font.editable.draw(text, @x+TextPadding, @y+@offsety, ZOrder::Text, 1, 1, @theme.font.color)
303
+ end
304
+ end
305
+
306
+ class Button < Widget
307
+ TextColor=0xff000000
308
+ attr_accessor :text
309
+ def initialize(name, text, x, y, onClickPrc=Proc.new{}, theme = Themes::blank)
310
+ super(name, x, y, x+100, y+30, theme)
311
+ @text=text
312
+ @onClickPrc=onClickPrc
313
+ @drawx=x+((100-@theme.font.default.text_width(@text))/2).floor
314
+ @drawy=y+((30-@theme.font.default.height)/2).floor
315
+ end
316
+ def x1=
317
+ super
318
+ @drawx=x+((100-@theme.font.default.text_width(@text))/2).floor
319
+ end
320
+ def y1=
321
+ super
322
+ @drawy=y+((30-@theme.font.default.height)/2).floor
323
+ end
324
+ def onMouseDown
325
+ @theme.setDownState
326
+ end
327
+ def onClick
328
+ @onClickPrc.call(self)
329
+ if self.hasFocus?
330
+ @theme.setOverState
331
+ else
332
+ @theme.setDefaultState
333
+ end
334
+ end
335
+ def onMouseOver
336
+ @theme.setOverState
337
+ end
338
+ def onMouseOut
339
+ @theme.setDefaultState
340
+ end
341
+ def draw
342
+ @theme.font.default.draw(@text, @drawx, @drawy, ZOrder::Text, 1, 1, @theme.font.color)
343
+ end
344
+ end
345
+
346
+ class Label < Widget
347
+ attr_accessor :text
348
+ def initialize(name, x, y, text="", theme = Themes::blank)
349
+ @text = text
350
+ super(name, x, y, x+100,y+30,theme)
351
+ end
352
+ def draw
353
+ @theme.font.default.draw(@text, x, y, ZOrder::Text, 1, 1, @theme.font.color)
354
+ end
355
+ end
356
+
357
+ class CheckBox < Widget
358
+
359
+ class CheckedHk < Widget
360
+ attr_reader :x1,:y1,:x2,:y2
361
+ def initialize(x1,y1,x2,y2)
362
+ @x1,@y1,@x2,@y2 = x1,y1,x2,y2
363
+ end
364
+ end
365
+
366
+ def initialize(name, x, y, text="", checked=false, theme = Themes::blank)
367
+ @themek = theme
368
+ super(name,x,y,x+13,y+13,theme)
369
+ @checked = checked
370
+ end
371
+ def onClick
372
+ self.checked = !@checked
373
+ end
374
+ def onMouseDown
375
+ @theme.setDownState
376
+ end
377
+ def onMouseOver
378
+ @theme.setOverState
379
+ end
380
+ def onMouseOut
381
+ @theme.setDefaultState
382
+ end
383
+ def checked?
384
+ return @checked
385
+ end
386
+ def checked=(val)
387
+ return if val == @checked
388
+ @checked = val
389
+ if @checked
390
+ @theme = @themek.newInstance(CheckedHk.new(@x1,@y1,@x2,@y2))
391
+ else
392
+ @theme = @themek.newInstance(self)
393
+ end
394
+ end
395
+ def draw
396
+ @theme.font.default.draw(name, @x1+13+1, @y1-2, ZOrder::Text)
397
+ end
398
+ end
399
+
400
+ class RadioButton < Widget
401
+
402
+ class CheckedHk < Widget
403
+ attr_reader :x1,:y1,:x2,:y2
404
+ def initialize(x1,y1,x2,y2)
405
+ @x1,@y1,@x2,@y2 = x1,y1,x2,y2
406
+ end
407
+ end
408
+ attr_reader :parent, :value
409
+ def initialize(name, x, y, value, parent, checked=false, theme = Themes::blank)
410
+ @themek = theme
411
+ super(name,x,y,x+12,y+12,theme)
412
+ @value = value
413
+ @checked = checked
414
+ @parent = parent
415
+ end
416
+ def onClick
417
+ self.checked=!@checked
418
+ end
419
+ def onMouseDown
420
+ @theme.setDownState
421
+ end
422
+ def onMouseOver
423
+ @theme.setOverState
424
+ end
425
+ def onMouseOut
426
+ @theme.setDefaultState
427
+ end
428
+ def checked?
429
+ return @checked
430
+ end
431
+ def checked=(val)
432
+ @checked = val
433
+ if @checked
434
+ if @parent.selected.nil?
435
+ @theme = @themek.newInstance(CheckedHk.new(@x1,@y1,@x2,@y2))
436
+ @parent.selected = self
437
+ return
438
+ end
439
+ return if @parent.selected == self
440
+ @theme = @themek.newInstance(CheckedHk.new(@x1,@y1,@x2,@y2))
441
+ @parent.selected.checked = false
442
+ @parent.selected = self
443
+ else
444
+ return if @parent.selected != self
445
+ @theme = @themek.newInstance(self)
446
+ end
447
+ end
448
+ def draw
449
+ @theme.font.default.draw(name, @x1+12+1, @y1-2, ZOrder::Text)
450
+ end
451
+ end
452
+
453
+ class RadioGroup < Widget
454
+ module Layout
455
+ Horizontal = 0
456
+ Vertical = 1
457
+ end
458
+ module Spacing
459
+ Auto = -1
460
+ Automatic = -1
461
+ end
462
+ def initialize(name, x, y, buttons = {}, layout = Layout::Vertical, spacing = -1, theme = Themes::blank)
463
+ super(name,x,y,x,y,Themes::blank,false)
464
+ @buttons = Array.new(buttons.size)
465
+ i = 0
466
+ if layout == Layout::Horizontal
467
+ if spacing == -1
468
+ spacing = 75
469
+ end
470
+ buttons.each { |k,v|
471
+ @buttons.push(RadioButton.new(k, x+i, y, v, self, false, theme))
472
+ i+=spacing
473
+ }
474
+ else
475
+ if spacing == -1
476
+ spacing = 25
477
+ end
478
+ buttons.each { |k,v|
479
+ @buttons.push(RadioButton.new(k, x, y+i, v, self, false, theme))
480
+ i+=spacing
481
+ }
482
+ end
483
+ end
484
+ def theme
485
+ return @buttons[0].theme if @buttons.size > 0
486
+ return Themes::blank
487
+ end
488
+ def theme=(val)
489
+ @buttons.each { |button|
490
+ button.theme = val
491
+ }
492
+ end
493
+ def value
494
+ return @selected.value unless @selected.nil?
495
+ return nil
496
+ end
497
+ def value=(val)
498
+ @buttons.each { |button|
499
+ self.selected = button if button.value == val
500
+ }
501
+ raise RuntimeException.new("No value #{val} in #{self.inspect} (#{self.name})")
502
+ end
503
+ def selected
504
+ return @selected
505
+ end
506
+ def selected=(val)
507
+ @selected = val
508
+ end
509
+ =begin
510
+ def selected=(val)
511
+ if val.kind_of?(Widget)
512
+ raise RuntimeException.new("No option #{val} in #{self.inspect} (#{self.name})") unless val.parent == self
513
+ val.checked = true
514
+ return true
515
+ else
516
+ @buttons.each { |button|
517
+ if button.name == val
518
+ val.checked = true
519
+ return
520
+ end
521
+ }
522
+ raise RuntimeException.new("No option #{val} in #{self.inspect} (#{self.name})")
523
+ end
524
+ end
525
+ =end
526
+ end
527
+
349
528
  end #module GGLib