gglib 1.1.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
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