hashi-ruby 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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