hashi-ruby 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (368) hide show
  1. checksums.yaml +7 -0
  2. data/bin/assets/FlatColor/gtk-3.20/assets/blank.png +0 -0
  3. data/bin/assets/FlatColor/gtk-3.20/assets/check-insensitive.png +0 -0
  4. data/bin/assets/FlatColor/gtk-3.20/assets/check-mixed-insensitive.png +0 -0
  5. data/bin/assets/FlatColor/gtk-3.20/assets/check-mixed.png +0 -0
  6. data/bin/assets/FlatColor/gtk-3.20/assets/check.png +0 -0
  7. data/bin/assets/FlatColor/gtk-3.20/assets/grid-selection-blank.png +0 -0
  8. data/bin/assets/FlatColor/gtk-3.20/assets/grid-selection.png +0 -0
  9. data/bin/assets/FlatColor/gtk-3.20/assets/menuitem-checkbox-checked-hover.png +0 -0
  10. data/bin/assets/FlatColor/gtk-3.20/assets/menuitem-checkbox-checked-insensitive.png +0 -0
  11. data/bin/assets/FlatColor/gtk-3.20/assets/menuitem-checkbox-checked.png +0 -0
  12. data/bin/assets/FlatColor/gtk-3.20/assets/menuitem-checkbox-mixed-hover.png +0 -0
  13. data/bin/assets/FlatColor/gtk-3.20/assets/menuitem-checkbox-mixed-insensitive.png +0 -0
  14. data/bin/assets/FlatColor/gtk-3.20/assets/menuitem-checkbox-mixed.png +0 -0
  15. data/bin/assets/FlatColor/gtk-3.20/assets/menuitem-radio-checked-hover.png +0 -0
  16. data/bin/assets/FlatColor/gtk-3.20/assets/menuitem-radio-checked-insensitive.png +0 -0
  17. data/bin/assets/FlatColor/gtk-3.20/assets/menuitem-radio-checked.png +0 -0
  18. data/bin/assets/FlatColor/gtk-3.20/assets/pane-separator-grip-vertical.png +0 -0
  19. data/bin/assets/FlatColor/gtk-3.20/assets/pane-separator-grip.png +0 -0
  20. data/bin/assets/FlatColor/gtk-3.20/assets/radio-checked.png +0 -0
  21. data/bin/assets/FlatColor/gtk-3.20/assets/radio-insensitive.png +0 -0
  22. data/bin/assets/FlatColor/gtk-3.20/assets/radio-unchecked.png +0 -0
  23. data/bin/assets/FlatColor/gtk-3.20/assets/radio.png +0 -0
  24. data/bin/assets/FlatColor/gtk-3.20/assets/slider-dark.png +0 -0
  25. data/bin/assets/FlatColor/gtk-3.20/assets/slider-dark@2.png +0 -0
  26. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-above-dark.png +0 -0
  27. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-above-dark@2.png +0 -0
  28. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-above-insensitive-dark.png +0 -0
  29. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-above-insensitive-dark@2.png +0 -0
  30. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-above-insensitive.png +0 -0
  31. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-above-insensitive@2.png +0 -0
  32. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-above.png +0 -0
  33. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-above@2.png +0 -0
  34. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-below-dark.png +0 -0
  35. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-below-dark@2.png +0 -0
  36. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-below-insensitive-dark.png +0 -0
  37. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-below-insensitive-dark@2.png +0 -0
  38. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-below-insensitive.png +0 -0
  39. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-below-insensitive@2.png +0 -0
  40. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-below.png +0 -0
  41. data/bin/assets/FlatColor/gtk-3.20/assets/slider-horz-scale-has-marks-below@2.png +0 -0
  42. data/bin/assets/FlatColor/gtk-3.20/assets/slider-insensitive-dark.png +0 -0
  43. data/bin/assets/FlatColor/gtk-3.20/assets/slider-insensitive-dark@2.png +0 -0
  44. data/bin/assets/FlatColor/gtk-3.20/assets/slider-insensitive.png +0 -0
  45. data/bin/assets/FlatColor/gtk-3.20/assets/slider-insensitive@2.png +0 -0
  46. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-above-dark.png +0 -0
  47. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-above-dark@2.png +0 -0
  48. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-above-insensitive-dark.png +0 -0
  49. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-above-insensitive-dark@2.png +0 -0
  50. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-above-insensitive.png +0 -0
  51. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-above-insensitive@2.png +0 -0
  52. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-above.png +0 -0
  53. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-above@2.png +0 -0
  54. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-below-dark.png +0 -0
  55. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-below-dark@2.png +0 -0
  56. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-below-insensitive-dark.png +0 -0
  57. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-below-insensitive-dark@2.png +0 -0
  58. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-below-insensitive.png +0 -0
  59. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-below-insensitive@2.png +0 -0
  60. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-below.png +0 -0
  61. data/bin/assets/FlatColor/gtk-3.20/assets/slider-vert-scale-has-marks-below@2.png +0 -0
  62. data/bin/assets/FlatColor/gtk-3.20/assets/slider.png +0 -0
  63. data/bin/assets/FlatColor/gtk-3.20/assets/slider@2.png +0 -0
  64. data/bin/assets/FlatColor/gtk-3.20/gnome-applications.css +429 -0
  65. data/bin/assets/FlatColor/gtk-3.20/gtk-widgets.css +786 -0
  66. data/bin/assets/FlatColor/gtk-3.20/gtk.css +113 -0
  67. data/bin/assets/FlatColor/gtk-3.20/gtk.css.base +108 -0
  68. data/bin/assets/FlatColor/gtk-3.20/settings.ini +7 -0
  69. data/bin/assets/FlatColor/gtk-3.20/unity.css +68 -0
  70. data/bin/assets/FlatColor/gtk-3.20/widgets/button.css +58 -0
  71. data/bin/assets/FlatColor/gtk-3.20/widgets/calendar.css +32 -0
  72. data/bin/assets/FlatColor/gtk-3.20/widgets/cell-row.css +25 -0
  73. data/bin/assets/FlatColor/gtk-3.20/widgets/check-radio.css +164 -0
  74. data/bin/assets/FlatColor/gtk-3.20/widgets/chrome.css +16 -0
  75. data/bin/assets/FlatColor/gtk-3.20/widgets/color-chooser.css +114 -0
  76. data/bin/assets/FlatColor/gtk-3.20/widgets/column-header.css +52 -0
  77. data/bin/assets/FlatColor/gtk-3.20/widgets/combobox.css +26 -0
  78. data/bin/assets/FlatColor/gtk-3.20/widgets/csd.css +125 -0
  79. data/bin/assets/FlatColor/gtk-3.20/widgets/entry.css +40 -0
  80. data/bin/assets/FlatColor/gtk-3.20/widgets/header-bar.css +27 -0
  81. data/bin/assets/FlatColor/gtk-3.20/widgets/infobar.css +90 -0
  82. data/bin/assets/FlatColor/gtk-3.20/widgets/linked-buttons.css +524 -0
  83. data/bin/assets/FlatColor/gtk-3.20/widgets/menu.css +127 -0
  84. data/bin/assets/FlatColor/gtk-3.20/widgets/notebook.css +200 -0
  85. data/bin/assets/FlatColor/gtk-3.20/widgets/osd.css +203 -0
  86. data/bin/assets/FlatColor/gtk-3.20/widgets/progress-scale.css +365 -0
  87. data/bin/assets/FlatColor/gtk-3.20/widgets/scrollbar.css +116 -0
  88. data/bin/assets/FlatColor/gtk-3.20/widgets/selection-mode.css +109 -0
  89. data/bin/assets/FlatColor/gtk-3.20/widgets/separator.css +24 -0
  90. data/bin/assets/FlatColor/gtk-3.20/widgets/sidebar.css +43 -0
  91. data/bin/assets/FlatColor/gtk-3.20/widgets/spinbutton.css +102 -0
  92. data/bin/assets/FlatColor/gtk-3.20/widgets/spinner.css +120 -0
  93. data/bin/assets/FlatColor/gtk-3.20/widgets/switch.css +63 -0
  94. data/bin/assets/FlatColor/gtk-3.20/widgets/toolbar.css +39 -0
  95. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked-dark.png +0 -0
  96. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked-dark@2.png +0 -0
  97. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked-insensitive-dark.png +0 -0
  98. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked-insensitive-dark@2.png +0 -0
  99. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked-insensitive-selected.png +0 -0
  100. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked-insensitive-selected@2.png +0 -0
  101. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked-insensitive.png +0 -0
  102. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked-insensitive@2.png +0 -0
  103. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked-selected.png +0 -0
  104. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked-selected@2.png +0 -0
  105. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked-selectionmode-dark.png +0 -0
  106. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked-selectionmode-dark@2.png +0 -0
  107. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked-selectionmode.png +0 -0
  108. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked-selectionmode@2.png +0 -0
  109. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked.png +0 -0
  110. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-checked@2.png +0 -0
  111. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-mixed-dark.png +0 -0
  112. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-mixed-dark@2.png +0 -0
  113. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-mixed-insensitive-dark.png +0 -0
  114. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-mixed-insensitive-dark@2.png +0 -0
  115. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-mixed-insensitive-selected.png +0 -0
  116. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-mixed-insensitive-selected@2.png +0 -0
  117. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-mixed-insensitive.png +0 -0
  118. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-mixed-insensitive@2.png +0 -0
  119. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-mixed-selected.png +0 -0
  120. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-mixed-selected@2.png +0 -0
  121. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-mixed.png +0 -0
  122. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-mixed@2.png +0 -0
  123. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-selectionmode-dark.png +0 -0
  124. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-selectionmode-dark@2.png +0 -0
  125. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-selectionmode.png +0 -0
  126. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-selectionmode@2.png +0 -0
  127. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-unchecked-dark.png +0 -0
  128. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-unchecked-dark@2.png +0 -0
  129. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-unchecked-insensitive-dark.png +0 -0
  130. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-unchecked-insensitive-dark@2.png +0 -0
  131. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-unchecked-insensitive-selected.png +0 -0
  132. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-unchecked-insensitive-selected@2.png +0 -0
  133. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-unchecked-insensitive.png +0 -0
  134. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-unchecked-insensitive@2.png +0 -0
  135. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-unchecked-selected.png +0 -0
  136. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-unchecked-selected@2.png +0 -0
  137. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-unchecked.png +0 -0
  138. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/checkbox-unchecked@2.png +0 -0
  139. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-checked-dark.png +0 -0
  140. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-checked-dark@2.png +0 -0
  141. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-checked-insensitive-dark.png +0 -0
  142. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-checked-insensitive-dark@2.png +0 -0
  143. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-checked-insensitive-selected.png +0 -0
  144. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-checked-insensitive-selected@2.png +0 -0
  145. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-checked-insensitive.png +0 -0
  146. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-checked-insensitive@2.png +0 -0
  147. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-checked-selected.png +0 -0
  148. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-checked-selected@2.png +0 -0
  149. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-checked.png +0 -0
  150. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-checked@2.png +0 -0
  151. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-mixed-dark.png +0 -0
  152. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-mixed-dark@2.png +0 -0
  153. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-mixed-insensitive-dark.png +0 -0
  154. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-mixed-insensitive-dark@2.png +0 -0
  155. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-mixed-insensitive-selected.png +0 -0
  156. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-mixed-insensitive-selected@2.png +0 -0
  157. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-mixed-insensitive.png +0 -0
  158. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-mixed-insensitive@2.png +0 -0
  159. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-mixed-selected.png +0 -0
  160. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-mixed-selected@2.png +0 -0
  161. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-mixed.png +0 -0
  162. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-mixed@2.png +0 -0
  163. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-unchecked-dark.png +0 -0
  164. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-unchecked-dark@2.png +0 -0
  165. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-unchecked-insensitive-dark.png +0 -0
  166. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-unchecked-insensitive-dark@2.png +0 -0
  167. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-unchecked-insensitive-selected.png +0 -0
  168. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-unchecked-insensitive-selected@2.png +0 -0
  169. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-unchecked-insensitive.png +0 -0
  170. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-unchecked-insensitive@2.png +0 -0
  171. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-unchecked-selected.png +0 -0
  172. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-unchecked-selected@2.png +0 -0
  173. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-unchecked.png +0 -0
  174. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/radio-unchecked@2.png +0 -0
  175. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-dark.png +0 -0
  176. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-dark@2.png +0 -0
  177. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-header-dark.png +0 -0
  178. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-header-dark@2.png +0 -0
  179. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-header.png +0 -0
  180. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-header@2.png +0 -0
  181. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-hover-dark.png +0 -0
  182. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-hover-dark@2.png +0 -0
  183. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-hover-header-dark.png +0 -0
  184. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-hover-header-dark@2.png +0 -0
  185. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-hover-header.png +0 -0
  186. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-hover-header@2.png +0 -0
  187. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-hover-selected.png +0 -0
  188. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-hover-selected@2.png +0 -0
  189. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-hover.png +0 -0
  190. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-hover@2.png +0 -0
  191. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-insensitive-dark.png +0 -0
  192. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-insensitive-dark@2.png +0 -0
  193. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-insensitive-header-dark.png +0 -0
  194. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-insensitive-header-dark@2.png +0 -0
  195. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-insensitive-header.png +0 -0
  196. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-insensitive-header@2.png +0 -0
  197. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-insensitive-selected.png +0 -0
  198. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-insensitive-selected@2.png +0 -0
  199. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-insensitive.png +0 -0
  200. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-insensitive@2.png +0 -0
  201. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-selected.png +0 -0
  202. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active-selected@2.png +0 -0
  203. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active.png +0 -0
  204. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-active@2.png +0 -0
  205. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-dark.png +0 -0
  206. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-dark@2.png +0 -0
  207. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-header-dark.png +0 -0
  208. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-header-dark@2.png +0 -0
  209. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-header.png +0 -0
  210. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-header@2.png +0 -0
  211. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-hover-dark.png +0 -0
  212. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-hover-dark@2.png +0 -0
  213. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-hover-header-dark.png +0 -0
  214. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-hover-header-dark@2.png +0 -0
  215. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-hover-header.png +0 -0
  216. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-hover-header@2.png +0 -0
  217. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-hover-selected.png +0 -0
  218. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-hover-selected@2.png +0 -0
  219. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-hover.png +0 -0
  220. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-hover@2.png +0 -0
  221. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-insensitive-dark.png +0 -0
  222. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-insensitive-dark@2.png +0 -0
  223. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-insensitive-header-dark.png +0 -0
  224. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-insensitive-header-dark@2.png +0 -0
  225. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-insensitive-header.png +0 -0
  226. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-insensitive-header@2.png +0 -0
  227. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-insensitive-selected.png +0 -0
  228. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-insensitive-selected@2.png +0 -0
  229. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-insensitive.png +0 -0
  230. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-insensitive@2.png +0 -0
  231. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-selected.png +0 -0
  232. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch-selected@2.png +0 -0
  233. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch.png +0 -0
  234. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/switch@2.png +0 -0
  235. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close-active-dark.png +0 -0
  236. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close-active-dark@2.png +0 -0
  237. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close-active.png +0 -0
  238. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close-active@2.png +0 -0
  239. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close-backdrop-dark.png +0 -0
  240. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close-backdrop-dark@2.png +0 -0
  241. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close-backdrop.png +0 -0
  242. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close-backdrop@2.png +0 -0
  243. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close-dark.png +0 -0
  244. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close-dark@2.png +0 -0
  245. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close-hover-dark.png +0 -0
  246. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close-hover-dark@2.png +0 -0
  247. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close-hover.png +0 -0
  248. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close-hover@2.png +0 -0
  249. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close.png +0 -0
  250. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-close@2.png +0 -0
  251. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize-active-dark.png +0 -0
  252. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize-active-dark@2.png +0 -0
  253. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize-active.png +0 -0
  254. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize-active@2.png +0 -0
  255. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize-backdrop-dark.png +0 -0
  256. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize-backdrop-dark@2.png +0 -0
  257. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize-backdrop.png +0 -0
  258. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize-backdrop@2.png +0 -0
  259. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize-dark.png +0 -0
  260. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize-dark@2.png +0 -0
  261. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize-hover-dark.png +0 -0
  262. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize-hover-dark@2.png +0 -0
  263. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize-hover.png +0 -0
  264. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize-hover@2.png +0 -0
  265. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize.png +0 -0
  266. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-maximize@2.png +0 -0
  267. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize-active-dark.png +0 -0
  268. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize-active-dark@2.png +0 -0
  269. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize-active.png +0 -0
  270. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize-active@2.png +0 -0
  271. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize-backdrop-dark.png +0 -0
  272. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize-backdrop-dark@2.png +0 -0
  273. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize-backdrop.png +0 -0
  274. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize-backdrop@2.png +0 -0
  275. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize-dark.png +0 -0
  276. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize-dark@2.png +0 -0
  277. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize-hover-dark.png +0 -0
  278. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize-hover-dark@2.png +0 -0
  279. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize-hover.png +0 -0
  280. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize-hover@2.png +0 -0
  281. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize.png +0 -0
  282. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-minimize@2.png +0 -0
  283. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore-active-dark.png +0 -0
  284. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore-active-dark@2.png +0 -0
  285. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore-active.png +0 -0
  286. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore-active@2.png +0 -0
  287. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore-backdrop-dark.png +0 -0
  288. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore-backdrop-dark@2.png +0 -0
  289. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore-backdrop.png +0 -0
  290. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore-backdrop@2.png +0 -0
  291. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore-dark.png +0 -0
  292. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore-dark@2.png +0 -0
  293. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore-hover-dark.png +0 -0
  294. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore-hover-dark@2.png +0 -0
  295. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore-hover.png +0 -0
  296. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore-hover@2.png +0 -0
  297. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore.png +0 -0
  298. data/bin/assets/Matcha-dark-aliz/gtk-3.0/assets/titlebutton-restore@2.png +0 -0
  299. data/bin/assets/Matcha-dark-aliz/gtk-3.0/gtk-dark.css +10090 -0
  300. data/bin/assets/Matcha-dark-aliz/gtk-3.0/gtk.css +10100 -0
  301. data/bin/assets/Matcha-dark-aliz/gtk-3.0/thumbnail.png +0 -0
  302. data/bin/assets/Matcha-dark-aliz/index.theme +12 -0
  303. data/bin/assets/didacticiel/1.jpg +0 -0
  304. data/bin/assets/didacticiel/2.jpg +0 -0
  305. data/bin/assets/didacticiel/3.jpg +0 -0
  306. data/bin/assets/didacticiel/4.jpg +0 -0
  307. data/bin/assets/didacticiel/5.jpg +0 -0
  308. data/bin/assets/didacticiel/6.jpg +0 -0
  309. data/bin/assets/didacticiel/7.jpg +0 -0
  310. data/bin/assets/didacticiel/8.jpg +0 -0
  311. data/bin/assets/map.png +0 -0
  312. data/bin/db/Difficulte.rb +9 -0
  313. data/bin/db/GestionBase.rb +334 -0
  314. data/bin/db/GrilleDb.rb +15 -0
  315. data/bin/db/Joue.rb +10 -0
  316. data/bin/db/Joueur.rb +9 -0
  317. data/bin/db/Migration.rb +70 -0
  318. data/bin/db/Mode.rb +9 -0
  319. data/bin/db/PhrasesAventure.rb +4 -0
  320. data/bin/db/TestBase.rb +144 -0
  321. data/bin/db/base.sqlite +0 -0
  322. data/bin/hashi +5 -0
  323. data/bin/src/Action.rb +46 -0
  324. data/bin/src/Aides.rb +41 -0
  325. data/bin/src/Case.rb +410 -0
  326. data/bin/src/Grille.rb +914 -0
  327. data/bin/src/Grilles/grilles_site.txt +30 -0
  328. data/bin/src/Grilles/grilles_site_difficile.txt +90 -0
  329. data/bin/src/Grilles/grilles_site_facile.txt +90 -0
  330. data/bin/src/Grilles/grilles_site_moyen.txt +90 -0
  331. data/bin/src/Grilles/grilles_site_ser.txt +0 -0
  332. data/bin/src/Grilles/grilles_site_ser_difficile.txt +90 -0
  333. data/bin/src/Grilles/grilles_site_ser_facile.txt +90 -0
  334. data/bin/src/Grilles/grilles_site_ser_moyen.txt +90 -0
  335. data/bin/src/Hashi.rb +214 -0
  336. data/bin/src/Lien.rb +57 -0
  337. data/bin/src/Pile.rb +41 -0
  338. data/bin/src/Rakefile.rb +6 -0
  339. data/bin/src/SerGrille.rb +430 -0
  340. data/bin/src/Test.rb +24 -0
  341. data/bin/src/Test2.rb +135 -0
  342. data/bin/src/Utilitaire.rb +12 -0
  343. data/bin/src/testSerGrille.rb +21 -0
  344. data/bin/src/ui/AfficheurGrille.rb +385 -0
  345. data/bin/src/ui/AfficheurJeu.rb +209 -0
  346. data/bin/src/ui/AfficheurSelection.rb +38 -0
  347. data/bin/src/ui/Afrique.rb +38 -0
  348. data/bin/src/ui/AmeriqueNord.rb +38 -0
  349. data/bin/src/ui/AmeriqueSud.rb +38 -0
  350. data/bin/src/ui/Antarctique.rb +32 -0
  351. data/bin/src/ui/Asie.rb +38 -0
  352. data/bin/src/ui/Aventure.rb +132 -0
  353. data/bin/src/ui/Carte.rb +282 -0
  354. data/bin/src/ui/ChargementAventure.rb +61 -0
  355. data/bin/src/ui/Classement.rb +42 -0
  356. data/bin/src/ui/Connexion.rb +60 -0
  357. data/bin/src/ui/Didacticiel.rb +169 -0
  358. data/bin/src/ui/Etiquette.rb +24 -0
  359. data/bin/src/ui/Europe.rb +38 -0
  360. data/bin/src/ui/ListeClassement.rb +44 -0
  361. data/bin/src/ui/Menu.rb +74 -0
  362. data/bin/src/ui/Monde.rb +167 -0
  363. data/bin/src/ui/Oceanie.rb +38 -0
  364. data/bin/src/ui/SelecteurGrille.rb +58 -0
  365. data/bin/src/ui/SelectionDifficulte.rb +38 -0
  366. data/bin/src/ui/SelectionUtilisateur.rb +46 -0
  367. data/bin/src/ui/Timer.rb +29 -0
  368. metadata +479 -0
@@ -0,0 +1,385 @@
1
+ require "gtk3"
2
+
3
+ # Widget Gtk permettant d'afficher une grille
4
+ class AfficheurGrille < Gtk::DrawingArea
5
+
6
+ # Deux systèmes de positions sont utilisés dans le code:
7
+ #
8
+ # => Les positions "virtuelles" (vX, vY) qui correspondent aux coordonnées
9
+ # des cases (par exemple 0,0 pour la case en haut à gauche)
10
+ #
11
+ # => Les positions "réelles" (x, y) qui correspondent aux positions sur
12
+ # la fenêtre (en pixels) et qui changent en fonction de la résolution de l'écran
13
+ #
14
+ # Les méthodes getX, getY, getVX, getVY sont là pour passer entre ces deux systèmes
15
+
16
+ # @grille => Grille à afficher
17
+ # @vWidth => Largeur virtuelle de la grille
18
+ # @vHeight => Hauteur virtuelle de la grille
19
+ # @ratio => Ratio de la résolution actuelle
20
+ # @vX => Nombre de pixel par coordonnée réelle horizontale
21
+ # @vY => Nombre de pixel par coordonnée réelle verticale
22
+ # @surbrillance => Liens à mettre en surbrillance
23
+
24
+ attr_accessor :cercleAide
25
+
26
+ private
27
+
28
+ # Constructeur
29
+ #
30
+ # === Parametres
31
+ #
32
+ # * +grille+ => Grille à afficher
33
+ # * +playable+ => Réagit au clics de souris ou non
34
+ # * +jeu+ => L'afficheur de jeu si la grille est utilisé en tant que jeu
35
+ def initialize(grille, playable, jeu)
36
+ super()
37
+ @playable = playable
38
+ @jeu = jeu
39
+ @surbrillance = []
40
+ @grille = grille
41
+ @vWidth = grille.largeur
42
+ @vHeight = grille.hauteur
43
+ @ratio = 1.0 * @vWidth / @vHeight
44
+ @cercleAide = nil
45
+ self.signal_connect("draw") { |widget, cr| draw(cr) }
46
+ self.signal_connect("button-press-event") { |widget, event| mouseClick(event); self.queue_draw() } if @playable
47
+ self.events = :all_events_mask
48
+ end
49
+
50
+ # Passage en état jouable
51
+ def setPlayable()
52
+ if !@playable
53
+ self.signal_connect("button-press-event") { |widget, event| mouseClick(event); self.queue_draw() }
54
+ @playable = true
55
+ end
56
+ end
57
+
58
+ # Largeur écran en pixels
59
+ #
60
+ # === Retour
61
+ #
62
+ # Retourne le nombre de pixels en largeur affichés à l'écran
63
+ def width()
64
+ return self.allocation.width()
65
+ end
66
+
67
+ # Hauteur écran en pixels
68
+ #
69
+ # === Retour
70
+ #
71
+ # Retourne le nombre de pixels en hauteur affichés à l'écran
72
+ def height()
73
+ return self.allocation.height()
74
+ end
75
+
76
+ # Conversion vX en x
77
+ #
78
+ # === Paramètres
79
+ #
80
+ # * +vX+ => Position virtuelle en x à convertir
81
+ #
82
+ # === Retour
83
+ #
84
+ # Retourne la position réelle en x correspondante
85
+ def getX(vX)
86
+ if width / @ratio > height
87
+ return vX * @vY + (width - height * @ratio) / 2 + @vY/2
88
+ else
89
+ return vX * @vX + @vX/2
90
+ end
91
+ end
92
+
93
+ # Conversion vY en y
94
+ #
95
+ # === Paramètres
96
+ #
97
+ # * +vY+ => Position virtuelle en y à convertir
98
+ #
99
+ # === Retour
100
+ #
101
+ # Retourne la position réelle en y correspondante
102
+ def getY(vY)
103
+ if height * @ratio > width
104
+ return vY * @vX + (height - width / @ratio) / 2 + @vX/2
105
+ else
106
+ return vY * @vY + @vY/2
107
+ end
108
+ end
109
+
110
+ # Conversion x en vX
111
+ #
112
+ # === Paramètres
113
+ #
114
+ # * +x+ => Position réelle en x à convertir
115
+ #
116
+ # === Retour
117
+ #
118
+ # Retourne la position virtuelle en x correspondante
119
+ def getVX(x)
120
+ if width / @ratio > height
121
+ return (x - (width - height * @ratio) / 2 - @vY/2) / @vY
122
+ else
123
+ return (x - @vX/2) / @vX
124
+ end
125
+ end
126
+
127
+ # Conversion y en vY
128
+ #
129
+ # === Paramètres
130
+ #
131
+ # * +y+ => Position réelle en y à convertir
132
+ #
133
+ # === Retour
134
+ #
135
+ # Retourne la position virtuelle en y correspondante
136
+ def getVY(y)
137
+ if height * @ratio > width
138
+ return (y - (height - width / @ratio) / 2 - @vX/2) / @vX
139
+ else
140
+ return (y - @vY/2) / @vY
141
+ end
142
+ end
143
+
144
+ # Retourne une valeur dimensionnée par la taille de l'affichage
145
+ # (utile par exemple pour modifier la taille des cercles
146
+ # en fonction de la taille de la fenêtre)
147
+ #
148
+ # === Paramètres
149
+ #
150
+ # * +s+ => Valeur à dimensionner
151
+ #
152
+ # === Retour
153
+ #
154
+ # Retourne la valeur dimensionnée
155
+ def scale(s)
156
+ if width / @ratio > height
157
+ return s * @vY
158
+ else
159
+ return s * @vX
160
+ end
161
+ end
162
+
163
+ # Dessin de la grille
164
+ #
165
+ # === Paramètres
166
+ #
167
+ # * +cr+ => Contexte sur lequel dessiner
168
+ def draw(cr)
169
+ @vX = 1.0 * width / @vWidth
170
+ @vY = 1.0 * height / @vHeight
171
+ cr.select_font_face("Arial", Cairo::FONT_SLANT_NORMAL, Cairo::FONT_WEIGHT_NORMAL)
172
+ cr.set_font_size(scale(0.5))
173
+ t = []
174
+ @grille.tabLien.each() do |l|
175
+ if !t.include?(l)
176
+ l2 = @grille.lienSimilaire(l)
177
+ if l2
178
+ drawLien(cr, l, -0.075)
179
+ drawLien(cr, l2, 0.075)
180
+ t.append(l2)
181
+ else
182
+ drawLien(cr, l, 0)
183
+ end
184
+ end
185
+ end
186
+ @grille.tabCase.each() { |c| drawCircle(cr, c) }
187
+ end
188
+
189
+ # Dessin d'un cercle
190
+ #
191
+ # === Paramètres
192
+ #
193
+ # * +cr+ => Contexte sur lequel dessiner
194
+ # * +c+ => Cercle à dessiner
195
+ def drawCircle(cr, c)
196
+ x = c.colonne()
197
+ y = c.ligne()
198
+ n = c.etiquetteCase()
199
+
200
+ cr.set_source_rgb(0.45, 0.45, 0.45)
201
+
202
+ #nord
203
+ if c.tabTriangle[0]
204
+ cr.move_to(getX(x), getY(y)-scale(0.45))
205
+ cr.line_to(getX(x) - scale(0.2), getY(y))
206
+ cr.line_to(getX(x) + scale(0.2), getY(y))
207
+ cr.close_path()
208
+ cr.fill()
209
+ end
210
+ #est
211
+ if c.tabTriangle[1]
212
+ cr.move_to(getX(x)+scale(0.45), getY(y))
213
+ cr.line_to(getX(x), getY(y)- scale(0.2))
214
+ cr.line_to(getX(x), getY(y)+ scale(0.2))
215
+ cr.close_path()
216
+ cr.fill()
217
+ end
218
+ #sud
219
+ if c.tabTriangle[2]
220
+ cr.move_to(getX(x), getY(y)+scale(0.45))
221
+ cr.line_to(getX(x) - scale(0.2), getY(y))
222
+ cr.line_to(getX(x) + scale(0.2), getY(y))
223
+ cr.close_path()
224
+ cr.fill()
225
+ end
226
+ #ouest
227
+ if c.tabTriangle[3]
228
+ cr.move_to(getX(x)-scale(0.45), getY(y))
229
+ cr.line_to(getX(x), getY(y)- scale(0.2))
230
+ cr.line_to(getX(x), getY(y)+ scale(0.2))
231
+ cr.close_path()
232
+ cr.fill()
233
+ end
234
+
235
+ # Affichage bordure cercle
236
+ saturee?(c) ? cr.set_source_rgb(0.5, 0.5, 0.5) : cr.set_source_rgb(0, 0, 0)
237
+ cr.set_source_rgb(0,1,0) if c == @cercleAide
238
+ cr.arc(getX(x), getY(y), scale(0.3), 0, 2*Math::PI)
239
+ cr.fill()
240
+ # Affichage partie balnche cercle
241
+ saturee?(c) ? cr.set_source_rgb(0.75, 0.75, 0.75) : cr.set_source_rgb(1, 1, 1)
242
+ cr.arc(getX(x), getY(y), scale(0.28), 0, 2*Math::PI)
243
+ cr.fill()
244
+ #Affichage numéro
245
+ saturee?(c) ? cr.set_source_rgb(0.5, 0.5, 0.5) : cr.set_source_rgb(0, 0, 0)
246
+ cr.set_source_rgb(0,1,0) if c == @cercleAide
247
+ cr.move_to(getX(x) - scale(0.14), getY(y) + scale(0.18))
248
+ cr.show_text(n.to_s())
249
+ end
250
+
251
+ def saturee?(c)
252
+ return true if c.nbLienCase(@grille.tabLien) >= c.etiquetteCase.to_i()
253
+ return false
254
+ end
255
+
256
+ # Dessin d'un lien
257
+ #
258
+ # === Paramètres
259
+ #
260
+ # * +cr+ => Contexte sur lequel dessiner
261
+ # * +l+ => Lien à dessiner
262
+ # * +offset+ => Décalage du lien
263
+ def drawLien(cr, l, offset)
264
+ x1 = l.case1.colonne()
265
+ y1 = l.case1.ligne()
266
+ x2 = l.case2.colonne()
267
+ y2 = l.case2.ligne()
268
+
269
+ epaisseur = 0.02
270
+
271
+ if l.hypothese
272
+ cr.set_source_rgb(0.2, 0.8, 0.2) # Couleur verte
273
+ else
274
+ cr.set_source_rgb(0, 0, 0)
275
+ end
276
+
277
+ if @surbrillance.include?(l)
278
+ cr.set_source_rgb(0.8,0.2,0.2)
279
+ end
280
+
281
+ if lienHorizontal(l)
282
+ cr.rectangle(getX(x1), getY(y1)-scale(epaisseur/2)+scale(offset), getX(x2)-getX(x1), scale(epaisseur))
283
+ else
284
+ cr.rectangle(getX(x1)-scale(epaisseur/2)+scale(offset), getY(y1), scale(epaisseur), getY(y2)-getY(y1))
285
+ end
286
+
287
+ cr.fill()
288
+ end
289
+
290
+ # Clic sur la souris
291
+ #
292
+ # === Paramètres
293
+ #
294
+ # * +event+ => Evenement Gtk contenant les informations sur le clic
295
+ def mouseClick(event)
296
+ #puts(event.x, event.y)
297
+ #puts(getVX(event.x), getVY(event.y))
298
+ @surbrillance = []
299
+ @grille.tabCase.each() do |c|
300
+ x = c.colonne
301
+ y = c.ligne
302
+
303
+ if (getVX(event.x) > x - 0.3) && (getVX(event.x) < x + 0.3) && (getVY(event.y) > y - 0.3) && (getVY(event.y) < y + 0.3)
304
+ @grille.clicCercle(c, @surbrillance)
305
+ @jeu.aJoue()
306
+ return
307
+ end
308
+
309
+ #haut
310
+ if c.tabTriangle[0] && (getVX(event.x) > x - 0.1) && (getVX(event.x) < x + 0.1) && (getVY(event.y) > y - 0.5) && (getVY(event.y) < y - 0.3)
311
+ @grille.clicTriangle(c,0)
312
+ @jeu.aJoue()
313
+ return
314
+ end
315
+
316
+ #bas
317
+ if c.tabTriangle[2] && (getVX(event.x) > x - 0.1) && (getVX(event.x) < x + 0.1) && (getVY(event.y) > y + 0.3) && (getVY(event.y) < y + 0.5)
318
+ @grille.clicTriangle(c,2)
319
+ @jeu.aJoue()
320
+ return
321
+ end
322
+
323
+ #gauche
324
+ if c.tabTriangle[3] && (getVX(event.x) > x - 0.5) && (getVX(event.x) < x - 0.3) && (getVY(event.y) > y - 0.1) && (getVY(event.y) < y + 0.1)
325
+ @grille.clicTriangle(c,3)
326
+ @jeu.aJoue()
327
+ return
328
+ end
329
+
330
+ #droite
331
+ if c.tabTriangle[1] && (getVX(event.x) > x + 0.3) && (getVX(event.x) < x + 0.5) && (getVY(event.y) > y - 0.1) && (getVY(event.y) < y + 0.1)
332
+ @grille.clicTriangle(c,1)
333
+ @jeu.aJoue()
334
+ return
335
+ end
336
+ end
337
+
338
+ @grille.tabLien.each() do |l|
339
+ if l.case1.colonne < l.case2.colonne
340
+ x1 = l.case1.colonne
341
+ x2 = l.case2.colonne
342
+ else
343
+ x1 = l.case2.colonne
344
+ x2 = l.case1.colonne
345
+ end
346
+
347
+ if l.case1.ligne < l.case2.ligne
348
+ y1 = l.case1.ligne
349
+ y2 = l.case2.ligne
350
+ else
351
+ y1 = l.case2.ligne
352
+ y2 = l.case1.ligne
353
+ end
354
+
355
+ marge = 0.2
356
+
357
+ if y1 == y2
358
+ if (getVX(event.x) > x1 + 0.4) && (getVX(event.x) < x2 - 0.4) && (getVY(event.y) > y1 - marge) && (getVY(event.y) < y1 + marge)
359
+ @grille.clicLien(l)
360
+ @jeu.aJoue()
361
+ return
362
+ end
363
+ else
364
+ if (getVX(event.x) > x1 - marge) && (getVX(event.x) < x1 + marge) && (getVY(event.y) > y1 + 0.4) && (getVY(event.y) < y2 - 0.4)
365
+ @grille.clicLien(l)
366
+ @jeu.aJoue()
367
+ return
368
+ end
369
+ end
370
+ end
371
+ end
372
+
373
+ # Test si lien horizontal
374
+ #
375
+ # === Paramètres
376
+ #
377
+ # * +l+ => Lien à tester
378
+ #
379
+ # === Retour
380
+ #
381
+ # Retourne vrai si le lien est horizontal, faux sinon
382
+ def lienHorizontal(l)
383
+ return l.case1.colonne != l.case2.colonne
384
+ end
385
+ end
@@ -0,0 +1,209 @@
1
+ require "gtk3"
2
+ require_relative "AfficheurGrille"
3
+ require_relative "Timer"
4
+ require_relative "Didacticiel"
5
+
6
+ # Widget Gtk permettant d'afficher un plateau de jeu
7
+ class AfficheurJeu < Gtk::Paned
8
+
9
+ # @afficheurGrille => Widget afficheur grille
10
+ # @timer => Label du timer
11
+ # @annuler => Bouton annuler
12
+ # @refaire => Bouton refaire
13
+ # @hypothese => Bouton hypothèse
14
+ # @verif => Bouton vérification
15
+ # @aidePos => Bouton aide position
16
+ # @aideTech => Bouton aide technique
17
+ # @pause => Bouton pause
18
+ # @menu => Menu de droite
19
+
20
+ # Constructeur
21
+ #
22
+ # === Parametres
23
+ #
24
+ # * +grille+ => Grille à afficher
25
+ # * +fenetre+ => Fenetre principale
26
+ # * +type+ => "entrainemen", "classe", "aventure"
27
+ def initialize(grille, fenetre, type)
28
+ super(Gtk::Orientation.new(0))
29
+ @paused = false
30
+ @type = type
31
+ @fenetre = fenetre
32
+
33
+ @grilleDb = grille
34
+ @grille = YAML.load(@grilleDb.grilleSolution)
35
+ @grille.nbAides ||= 0
36
+ @nbAides = @grille.nbAides
37
+ @afficheurGrille = AfficheurGrille.new(@grille, true, self)
38
+
39
+ @menu = Gtk::Box.new(Gtk::Orientation.new(1), 0)
40
+ @menu.spacing = 5
41
+ c = Gtk::Label.new("")
42
+ c.expand = true
43
+ @menu.add(c)
44
+ @boutonContinuer = Gtk::Button.new(:label => "Continuer")
45
+ @boutonContinuer.signal_connect("clicked") { |widget| self.remove(@menu); self.add1(@afficheurGrille); self.show_all(); @paused = false; @timer.reprendre() }
46
+ @boutonRegles = Gtk::Button.new(:label => "Didacticiel")
47
+ @boutonRegles.signal_connect("clicked") { |widget| @didacticiel = Didacticiel.new(); }
48
+ @boutonQuitter = Gtk::Button.new(:label => "Quitter")
49
+ @boutonQuitter.signal_connect("clicked") do |widget|
50
+ if @type == "classe"
51
+ d = Gtk::MessageDialog.new(:buttons => :ok_cancel)
52
+ d.text = "Votre progression sur cette grille sera effacée si vous quittez"
53
+ d.message_type = :question
54
+ r = d.run == :ok
55
+ d.destroy
56
+ fenetre.finJeu() if r
57
+ else
58
+ @grille.timer = @timer.secondes
59
+ @grille.nbAides = @nbAides
60
+ @grilleDb.grilleSolution = @grille.to_yaml()
61
+ GestionBase.changerScore(fenetre.joueur.id, @grilleDb, 0)
62
+ puts("Sauvegardé")
63
+ fenetre.finJeu()
64
+ end
65
+ end
66
+ @menu.add(@boutonContinuer)
67
+ @menu.add(@boutonRegles)
68
+ @menu.add(@boutonQuitter)
69
+
70
+ c = Gtk::Label.new("")
71
+ c.expand = true
72
+ @menu.add(c)
73
+
74
+ boxVerticale = Gtk::Box.new(Gtk::Orientation.new(1), 0)
75
+ @timer = Timer.new(@grille.timer)
76
+ @timer.margin_top = 15
77
+ boxVerticale.add(@timer)
78
+
79
+
80
+ boxHorizontale = Gtk::Box.new(Gtk::Orientation.new(0), 0)
81
+ boxHorizontale.margin_top = 15
82
+ @annuler = Gtk::Button.new(:label => "Annuler")
83
+ @annuler.hexpand = true
84
+ boxHorizontale.add(@annuler)
85
+ @annuler.signal_connect("clicked") { |widget| @grille.annuler(); @afficheurGrille.queue_draw() }
86
+
87
+ @refaire = Gtk::Button.new(:label => "Refaire")
88
+ @refaire.hexpand = true
89
+ boxHorizontale.add(@refaire)
90
+ @refaire.signal_connect("clicked") { |widget| @grille.refaire(); @afficheurGrille.queue_draw() }
91
+ boxVerticale.add(boxHorizontale)
92
+
93
+ @verif = Gtk::Button.new(:label => "Vérification")
94
+ boxVerticale.add(@verif)
95
+ @verif.signal_connect("clicked") do |widget|
96
+ r = @grille.verification();
97
+ @nbAides += 3*r;
98
+ @afficheurGrille.queue_draw()
99
+ d = Gtk::MessageDialog.new()
100
+ d.text = "Erreurs corrigées: #{r}"
101
+ d.message_type = :info
102
+ d.run
103
+ d.destroy
104
+ end
105
+
106
+ @hypothese = Gtk::Stack.new()
107
+ @boutonHypothese = Gtk::Button.new(:label => "Hypothèse")
108
+ @boutonHypothese.signal_connect("clicked") { |widget| @grille.commencerHypothese(); @hypothese.visible_child = @boxHypothese; @afficheurGrille.queue_draw() }
109
+ @hypothese.add(@boutonHypothese)
110
+
111
+ @boxHypothese = Gtk::Box.new(Gtk::Orientation.new(0), 0)
112
+ @boutonValiderHypothese = Gtk::Button.new(:label => "Valider")
113
+ @boutonValiderHypothese.signal_connect("clicked") { |widget| @grille.validerHypothese(); @hypothese.visible_child = @boutonHypothese; @afficheurGrille.queue_draw() }
114
+ @boutonValiderHypothese.hexpand = true
115
+ @boutonAnnulerHypothese = Gtk::Button.new(:label => "Annuler")
116
+ @boutonAnnulerHypothese.signal_connect("clicked") { |widget| @grille.annulerHypothese(); @hypothese.visible_child = @boutonHypothese; @afficheurGrille.queue_draw() }
117
+ @boutonAnnulerHypothese.hexpand = true
118
+
119
+ @boxHypothese.add(@boutonAnnulerHypothese)
120
+ @boxHypothese.add(@boutonValiderHypothese)
121
+ @hypothese.add(@boxHypothese)
122
+ boxVerticale.add(@hypothese)
123
+ @hypothese.show_all()
124
+ @hypothese.visible_child = (@grille.hypothese == true ? @boxHypothese : @boutonHypothese)
125
+
126
+ @reinitialiser = Gtk::Button.new(:label => "Réinitialiser")
127
+ boxVerticale.add(@reinitialiser)
128
+ @reinitialiser.signal_connect("clicked") { |widget| @grille.reinitialiser(); @afficheurGrille.queue_draw() }
129
+
130
+
131
+ box = Gtk::Box.new(Gtk::Orientation.new(1), 0)
132
+ box.margin_top = 15
133
+ box.vexpand = true
134
+
135
+ box.add(Gtk::Label.new("Aide :"))
136
+
137
+ @aidePos = Gtk::Button.new(:label => "Position")
138
+ @aidePos.margin_top = 5
139
+ box.add(@aidePos)
140
+ @aidePos.signal_connect("clicked") do |widget|
141
+ @aide ||= @grille.obtenirAide()
142
+ puts("avant " + @nbAides.to_s)
143
+ @nbAides += @aide.niveau == 1 ? 5 : @aide.niveau == 2 ? 3 : 1
144
+ puts("après " + @nbAides.to_s)
145
+ @afficheurGrille.cercleAide = @aide.caseJeu
146
+ @afficheurGrille.queue_draw()
147
+ @aidePos.sensitive = false
148
+ end
149
+
150
+ @aideTech = Gtk::Button.new(:label => "Technique")
151
+ box.add(@aideTech)
152
+ @aideTech.signal_connect("clicked") do |widget|
153
+ @aide ||= @grille.obtenirAide()
154
+ puts("avant " + @nbAides.to_s)
155
+ @nbAides += @aide.niveau == 1 ? 5 : @aide.niveau == 2 ? 3 : 1
156
+ puts("après " + @nbAides.to_s)
157
+ @description.text = @aide.description
158
+ @afficheurGrille.queue_draw()
159
+ @aideTech.sensitive = false
160
+ end
161
+
162
+ if @type == "aventure"
163
+ @aideTech.sensitive = false
164
+ @aidePos.sensitive = false
165
+ end
166
+
167
+ @description = Gtk::Label.new("")
168
+ @description.line_wrap = true
169
+ box.add(@description)
170
+
171
+ boxVerticale.add(box)
172
+ @pause = Gtk::Button.new(:label => "Pause")
173
+ boxVerticale.add(@pause)
174
+ @pause.signal_connect("clicked") { |widget| @timer.pause(); self.remove(@afficheurGrille); self.add1(@menu); self.show_all(); @paused = true }
175
+
176
+ self.add1(@afficheurGrille)
177
+ self.add2(boxVerticale)
178
+ self.set_wide_handle(true)
179
+ #self.set_position(1000)
180
+ #puts(self.allocation.width)
181
+ self.signal_connect("draw") do
182
+ self.set_position(self.allocation.width* (@paused ? 1 : 0.80))
183
+ print(nil)
184
+ end
185
+ end
186
+
187
+ def aJoue()
188
+ if @type != "aventure"
189
+ @aide = nil
190
+ @afficheurGrille.cercleAide = nil
191
+ @description.text = ""
192
+ @aideTech.sensitive = true
193
+ @aidePos.sensitive = true
194
+ end
195
+ if @grille.grilleFinie?()
196
+ @grille.timer = @timer.secondes
197
+ @grille.nbAides = @nbAides
198
+ @grilleDb.grilleSolution = @grille.to_yaml()
199
+ GestionBase.changerScore(@fenetre.joueur.id, @grilleDb, 0)
200
+ puts("Sauvegardé")
201
+ d = Gtk::MessageDialog.new()
202
+ d.text = "Score final: #{GestionBase.recupScore(@fenetre.joueur.id, @grilleDb)}"
203
+ d.message_type = :info
204
+ d.run
205
+ d.destroy
206
+ @fenetre.finJeu()
207
+ end
208
+ end
209
+ end
@@ -0,0 +1,38 @@
1
+ require "gtk3"
2
+ require_relative "SelecteurGrille"
3
+
4
+ # Widget Gtk permettant d'afficher des sélectionneurs de grille
5
+ class AfficheurSelection < Gtk::Box
6
+
7
+ # Constructeur
8
+ #
9
+ # === Paramètres
10
+ #
11
+ # * +fenetre+ - Fenetre principale
12
+ def initialize(fenetre)
13
+ super(Gtk::Orientation.new(0), 0)
14
+
15
+ boxHorizontale = Gtk::Box.new(Gtk::Orientation.new(0), 0)
16
+ self.add(boxHorizontale)
17
+
18
+ stackDif = Gtk::Stack.new()
19
+ stackDif.set_transition_type(Gtk::Stack::TransitionType::SLIDE_UP_DOWN);
20
+ stackDif.set_transition_duration(500);
21
+ boxVerticale = Gtk::Box.new(Gtk::Orientation.new(1), 0)
22
+ sideDif = Gtk::StackSidebar.new()
23
+ sideDif.stack = stackDif
24
+ sideDif.vexpand = true
25
+ boxVerticale.add(sideDif)
26
+
27
+ retour = Gtk::Button.new(label: "Retour")
28
+ retour.signal_connect("clicked") { fenetre.finSelection(nil, nil) }
29
+ boxVerticale.add(retour)
30
+
31
+ boxHorizontale.add(boxVerticale)
32
+ boxHorizontale.add(stackDif)
33
+
34
+ ["Facile", "Moyen", "Difficile"].each_with_index() do |dif, i|
35
+ stackDif.add_titled(SelecteurGrille.new(fenetre, i+1), dif, dif)
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,38 @@
1
+ require "gtk3"
2
+ require_relative "Carte"
3
+ require_relative "Etiquette"
4
+
5
+ # Widget Gtk affichant l'afrique
6
+ class Afrique < Carte
7
+
8
+ # @factZoom => Facteur de zoom
9
+ # @dX => Décalage de l'affichage en x
10
+ # @dY => Décalage de l'affichage en y
11
+
12
+ # Constructeur
13
+ #
14
+ # === Paramètres
15
+ #
16
+ # * +carte+ - Carte principale
17
+ def initialize(carte)
18
+ super(carte)
19
+ @dX = -2450
20
+ @dY = -2000
21
+ @factZoom = 1.3
22
+
23
+ @g = carte.grillesD
24
+
25
+ self.dessinerEtiquettes()
26
+ end
27
+
28
+ def dessinerEtiquettes()
29
+ ajouterEtiquette(Etiquette.new(2150, 1750, 90, 30, @carte.etoiles[2][7], @g[7]))
30
+ ajouterEtiquette(Etiquette.new(2500, 1780, 90, 30, @carte.etoiles[2][8], @g[8]))
31
+ ajouterEtiquette(Etiquette.new(2450, 2000, 90, 30, @carte.etoiles[2][9], @g[9]))
32
+ ajouterEtiquette(Etiquette.new(2730, 2230, 90, 30, @carte.etoiles[2][10], @g[10]))
33
+ ajouterEtiquette(Etiquette.new(2450, 2330, 90, 30, @carte.etoiles[2][11], @g[11]))
34
+ ajouterEtiquette(Etiquette.new(2290, 1650, 90, 30, @carte.etoiles[2][12], @g[12]))
35
+ ajouterEtiquette(Etiquette.new(2420, 2200, 90, 30, @carte.etoiles[2][13], @g[13]))
36
+ super()
37
+ end
38
+ end
@@ -0,0 +1,38 @@
1
+ require "gtk3"
2
+ require_relative "Carte"
3
+ require_relative "Etiquette"
4
+
5
+ # Widget Gtk affichant l'amerique du nord
6
+ class AmeriqueNord < Carte
7
+
8
+ # @factZoom => Facteur de zoom
9
+ # @dX => Décalage de l'affichage en x
10
+ # @dY => Décalage de l'affichage en y
11
+
12
+ # Constructeur
13
+ #
14
+ # === Paramètres
15
+ #
16
+ # * +carte+ - Carte principale
17
+ def initialize(carte)
18
+ super(carte)
19
+ @dX = -1080
20
+ @dY = -1350
21
+ @factZoom = 1.1
22
+
23
+ @g = carte.grillesF
24
+
25
+ self.dessinerEtiquettes()
26
+ end
27
+
28
+ def dessinerEtiquettes()
29
+ ajouterEtiquette(Etiquette.new(1050, 1790, 90, 30, @carte.etoiles[0][0], @g[0]))
30
+ ajouterEtiquette(Etiquette.new(1270, 1700, 90, 30, @carte.etoiles[0][1], @g[1]))
31
+ ajouterEtiquette(Etiquette.new(1000, 1630, 90, 30, @carte.etoiles[0][2], @g[2]))
32
+ ajouterEtiquette(Etiquette.new(1230, 1530, 90, 30, @carte.etoiles[0][3], @g[3]))
33
+ ajouterEtiquette(Etiquette.new(930, 1300, 90, 30, @carte.etoiles[0][4], @g[4]))
34
+ ajouterEtiquette(Etiquette.new(1400, 1250, 90, 30, @carte.etoiles[0][5], @g[5]))
35
+ ajouterEtiquette(Etiquette.new(500, 1000, 90, 30, @carte.etoiles[0][6], @g[6]))
36
+ super()
37
+ end
38
+ end