forked from Nowyyy/Project-Hashi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
MenuSelection.rb
92 lines (76 loc) · 3.62 KB
/
MenuSelection.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
require 'gtk3'
load "MenuLayout.rb"
##
# Représentation du Menu de Selection de Niveau qui hérite de la classe MenuLayout
# Le Menu de Selection implémente la logique permettant d'accéder à une grille spécifique
##
class MenuSelection < MenuLayout
# @menu -> Variable contenant le menu, initialisé dans MenuLayout
# @builder -> Variable contenant les propriétés d'affichage, initialisé dans MenuLayout
# $window -> variable globale contenant la fenetre du plateau
# Constructeur du Menu de selection
def initialize
super("ListeNiveau","Menu Selection")
image = @builder.get_object('logo-menu')
image.from_file = "css/logo-selection.png"
#Lien entre Menu Selection et chaque plateau
tableauBtn.each_index{|x| tableauBtn[x].signal_connect('clicked'){
@menu.set_sensitive(false)
main_window_res = "./Ressources/Glade/menu_chargement.glade"
builder = Gtk::Builder.new
builder.add_from_file(main_window_res)
window = builder.get_object('main_window')
window.style_context.add_provider(css_file, Gtk::StyleProvider::PRIORITY_USER)
window.signal_connect "destroy" do
@menu.set_sensitive(true)
window.destroy
end
window.set_window_position Gtk::WindowPosition::CENTER
btnLancer = builder.get_object('btnLancer')
btnSave = builder.get_object('btnSave')
#Recuperer la difficulté en variable
if(tableauBtn[x].isFacile?)
diff = "Facile"
elsif(tableauBtn[x].isMoyen?)
diff = "Moyen"
else
diff = "Difficile"
end
titre = tableauBtn[x].getNiveau.match(/[^\/]*.txt/)
if ((!(File.file?("./Sauvegarde/#{diff}/save#{titre}"))) || File.zero?("./Sauvegarde/#{diff}/save#{titre}"))
btnSave.sensitive = false
end
btnSave.signal_connect('clicked'){
chargement=1
window.destroy
@menu.destroy
$window = Plateau.new(tableauBtn[x].getNiveau,tableauBtn[x].getY,tableauBtn[x].getX, diff,chargement)
Gtk.main
}
btnLancer.signal_connect('clicked'){
chargement =0
window.destroy
@menu.destroy
$window = Plateau.new(tableauBtn[x].getNiveau,tableauBtn[x].getY,tableauBtn[x].getX, diff,chargement)
Gtk.main
}
btnRetourcharg = builder.get_object('btnRetourcharg')
btnRetourcharg.signal_connect('clicked'){
@menu.set_sensitive(true)
window.destroy
}
#---- Création du style CSS ----
btn_css = Gtk::CssProvider.new
btn_css.load(data: <<-CSS)
@import url("css/style.css");
CSS
#---- Affectation du style CSS ----
btnLancer.style_context.add_provider(btn_css, Gtk::StyleProvider::PRIORITY_USER)
btnSave.style_context.add_provider(btn_css, Gtk::StyleProvider::PRIORITY_USER)
btnRetourcharg.style_context.add_provider(btn_css, Gtk::StyleProvider::PRIORITY_USER)
window.show_all
}
}
@menu.show
end
end