Module: Fenetre

Included in:
View
Defined in:
app/view/Fenetre.rb

Overview

Module regroupant les informations de base de chaque fenêtre

Constant Summary

COULEUR_BLANC =

Définit la couleur blanche

Gdk::RGBA.new(1,1,1,1)
COULEUR_VERT =

Définit la couleur verte

Gdk::RGBA.new(0, 1, 0, 1)
COULEUR_JAUNE =

Définit la couleur jaune

Gdk::RGBA.new(1, 1, 0, 1)
COULEUR_ROUGE =

Définit la couleur rouge

Gdk::RGBA.new(1, 0, 0, 1)
COULEUR_ORANGE =

Définit la couleur orange

Gdk::RGBA.new(1, 0.6, 0, 1)
COULEUR_BLEU =

Définit la couleur bleue

Gdk::RGBA.new(0.2, 0.59, 0.86, 1)
SIZE_PSEUDO =

Définit la taille du pseudo

20
SIZE_TITRE_STAT =

Définit la taille du titre 'Statistiques'

18
SIZE_CONTENU_STAT =

Définit la taille du contenu des statistiques

15
SIZE_TITRE_SCORE =

Définit la taille du titre 'Score'

18
SIZE_CONTENU_SCORE =

Définit la taille du contenu du score

15
SIZE_TITRE_REGLE =

Définit la taille du titre 'Règles'

15
SIZE_CONTENU_REGLE =

Définit la taille du contenu des règles

14
SIZE_TITRE_REGLAGE =

Définit la taille du titre 'Règlages'

15
SIZE_TITRE =

Définit la taille du titre

40
SIZE_LABEL_BOUTON =

Définit la taille des labels des boutons

20
SIZE_TITRE_JEU =

Définit la taille du titre du jeu

18
SIZE_AUTRE_JEU =

Définit la taille du titre de l'autre jeu

12
FONT_MENU =

Définit le menu

"Monospace"

Class Method Summary collapse

Class Method Details

.appliquerStyle(widget, provider) ⇒ Object

Applique un style css sur le widget

Parameters:

  • widget

    Widget sur lequel appliquer un style

  • provider


297
298
299
300
301
302
303
304
# File 'app/view/Fenetre.rb', line 297

def Fenetre.appliquerStyle(widget, provider)
    style_context = widget.style_context
    style_context.add_provider(provider, Gtk::StyleProvider::PRIORITY_USER)
    return unless widget.respond_to?(:children)
    widget.children.each do |child|
        apply_style(child, provider)
    end
end

.boutonAnnuler_barreObject

Définit un accesseur pour le bouton boutonAnnuler_barre

Returns:

  • boutonAnnuler_barre



183
184
185
# File 'app/view/Fenetre.rb', line 183

def Fenetre.boutonAnnuler_barre()
    return @boutonAnnuler_barre
end

.boutonMenu_barreObject

Définit un accesseur pour le bouton boutonMenu_barre

Returns:

  • boutonMenu_barre



129
130
131
# File 'app/view/Fenetre.rb', line 129

def Fenetre.boutonMenu_barre()
    return @boutonMenu_barre
end

.boutonPauseChrono_barreObject

Définis un accesseur pour le bouton boutonPauseChrono_barre

Returns:

  • boutonPauseChrono_barre



165
166
167
# File 'app/view/Fenetre.rb', line 165

def Fenetre.boutonPauseChrono_barre()
    return @boutonPauseChrono_barre
end

.boutonPlayChrono_barreObject

Définis un accesseur pour le bouton boutonPlayChrono_barre

Returns:

  • boutonPlayChrono_barre



174
175
176
# File 'app/view/Fenetre.rb', line 174

def Fenetre.boutonPlayChrono_barre()
    return @boutonPlayChrono_barre
end

.boutonQuitter_barreObject

Définit un accesseur pour le bouton boutonQuitter_barre

Returns:

  • boutonQuitter_barre



156
157
158
# File 'app/view/Fenetre.rb', line 156

def Fenetre.boutonQuitter_barre()
    return @boutonQuitter_barre
end

.boutonReinit_barreObject

Définit un accesseur pour le bouton boutonReinit_barre

Returns:

  • boutonReinit_barre



147
148
149
# File 'app/view/Fenetre.rb', line 147

def Fenetre.boutonReinit_barre()
    return @boutonReinit_barre
end

.boutonRetablir_barreObject

Définit un accesseur pour le bouton boutonRetablir_barre

Returns:

  • boutonRetablir_barre



192
193
194
# File 'app/view/Fenetre.rb', line 192

def Fenetre.boutonRetablir_barre()
    return @boutonRetablir_barre
end

.boutonRetourObject

Définit un accesseur pour le bouton de retour

Returns:

  • boutonRetour



120
121
122
# File 'app/view/Fenetre.rb', line 120

def Fenetre.boutonRetour()
    return @boutonRetour
end

.boutonSauvegarder_barreObject

Définit un accesseur pour le bouton boutonSauvegarder_barre

Returns:

  • boutonSauvegarder_barre



138
139
140
# File 'app/view/Fenetre.rb', line 138

def Fenetre.boutonSauvegarder_barre()
    return @boutonSauvegarder_barre
end

.boxObject

Accesseur sur le layout



266
267
268
# File 'app/view/Fenetre.rb', line 266

def Fenetre.box()
    return @box
end

.creerBarreMenuObject

Permet de créer la barre de menu du haut

Returns:

  • barreMenu



364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
# File 'app/view/Fenetre.rb', line 364

def Fenetre.creerBarreMenu()
    barreMenu = Gtk::Toolbar.new()
    barreMenu.set_toolbar_style(Gtk::ToolbarStyle::ICONS)
    barreMenu.style_context.add_class("barre_menu")

    @boutonMenu_barre = Gtk::ToolButton.new(:stock_id => Gtk::Stock::HOME)
    @boutonMenu_barre.set_tooltip_text("Aller au menu principal")
    @boutonMenu_barre.set_margin_right(10)

    @boutonSauvegarder_barre = Gtk::ToolButton.new(:stock_id => Gtk::Stock::SAVE)
    @boutonSauvegarder_barre.set_tooltip_text("Sauvegarder")
    @boutonSauvegarder_barre.set_margin_right(10)

    @boutonReinit_barre = Gtk::ToolButton.new(:stock_id => Gtk::Stock::CLEAR)
    @boutonReinit_barre.set_tooltip_text("Réinitialiser la grille")
    @boutonReinit_barre.set_margin_right(10)

    @boutonQuitter_barre = Gtk::ToolButton.new(:stock_id => Gtk::Stock::QUIT)
    @boutonQuitter_barre.set_tooltip_text("Quitter")
    @boutonQuitter_barre.set_margin_right(10)

    @boutonPauseChrono_barre = Gtk::ToolButton.new(:stock_id => Gtk::Stock::MEDIA_PAUSE)
    @boutonPauseChrono_barre.set_tooltip_text("Mettre le jeu en pause")
    @boutonPauseChrono_barre.set_margin_right(10)

    @boutonPlayChrono_barre = Gtk::ToolButton.new(:stock_id => Gtk::Stock::MEDIA_PLAY)
    @boutonPlayChrono_barre.set_tooltip_text("Reprendre le jeu")
    @boutonPlayChrono_barre.set_margin_right(10)

    @boutonAnnuler_barre=Gtk::ToolButton.new(:stock_id => Gtk::Stock::UNDO)
    @boutonAnnuler_barre.set_tooltip_text("Annuler action")
    @boutonAnnuler_barre.set_margin_right(10)

    @boutonRetablir_barre=Gtk::ToolButton.new(:stock_id => Gtk::Stock::REDO)
    @boutonRetablir_barre.set_tooltip_text("Rétablir action annulée")
    @boutonRetablir_barre.set_margin_right(10)

    barreMenu.insert(@boutonMenu_barre,0)
    barreMenu.insert(@boutonSauvegarder_barre,1)
    barreMenu.insert(@boutonReinit_barre,2)
    barreMenu.insert(@boutonQuitter_barre,3)
    barreMenu.insert(Gtk::SeparatorToolItem.new(),4)
    barreMenu.insert(@boutonPauseChrono_barre,5)
    barreMenu.insert(@boutonPlayChrono_barre,6)
    barreMenu.insert(Gtk::SeparatorToolItem.new(),7)
    barreMenu.insert(@boutonAnnuler_barre,8)
    barreMenu.insert(@boutonRetablir_barre,9)

    #enabled
    @boutonMenu_barre.set_sensitive(true)
    @boutonSauvegarder_barre.set_sensitive(true)
    @boutonReinit_barre.set_sensitive(true)
    @boutonQuitter_barre.set_sensitive(true)
    @boutonPauseChrono_barre.set_sensitive(true)
    @boutonPlayChrono_barre.set_sensitive(true)
    @boutonAnnuler_barre.set_sensitive(true)
    @boutonRetablir_barre.set_sensitive(true)

    return barreMenu
end

.creerBoxBottomObject

Crée la box horizontale contenant les boutons Retour et Quitter des fenêtres du menu

Returns:

  • boxBottom



345
346
347
348
349
350
351
352
353
354
355
356
357
358
# File 'app/view/Fenetre.rb', line 345

def Fenetre.creerBoxBottom()
    #Création des boutons 
    @boutonRetour=Gtk::Button.new(:label => "Retour")
    @boutonRetour.set_margin(40)
    @boutonRetour.signal_connect_after('clicked'){
        Core::back()
    }

    #Ajout des boutons
    boxBottom=Gtk::Box.new(:horizontal, 0)
    boxBottom.halign = :center
    boxBottom.add(@boutonRetour)
    return boxBottom
end

.creerLabelType(unNomDeLabel, uneTaille) ⇒ Object

Créer un label type à partir d'un string

Parameters:

  • unNomDeLabel

    String représentant le texte du label

  • uneTaille

    Taille de la police

Returns:

  • label



314
315
316
317
318
319
320
# File 'app/view/Fenetre.rb', line 314

def Fenetre.creerLabelType(unNomDeLabel, uneTaille)
    #Creation du Label
    label=Gtk::Label.new()
    label.set_markup("<span font_desc=\"#{FONT_MENU} #{uneTaille}\">#{unNomDeLabel}</span>")
    label.set_justify(Gtk::Justification::CENTER)
    return label
end

.creerPopup(unTexte, type) ⇒ Object

Crée un popup du type demandé

Parameters:

  • unTexte

    Le texte à afficher

  • type

    Le type de popup

Returns:

  • L'objet dialog gtk



330
331
332
333
334
335
336
337
338
# File 'app/view/Fenetre.rb', line 330

def Fenetre.creerPopup(unTexte, type)
    messageErreur = Gtk::MessageDialog.new(
        :parent => @fenetre,
        :flags => Gtk::DialogFlags::DESTROY_WITH_PARENT,
        :type => Gtk::MessageType::INFO,
        :buttons => Object.const_get("Gtk::ButtonsType::" + type),
        :message => unTexte)
    return messageErreur
end

.css(**args) ⇒ Object

Applique une feuille css sur un widget

widget Widget sur lequel appliquer chemin Chemin du fichier css fournisseur Gtk provider pour le css priorite Priorité du style par rapport au système

Returns:

  • Style appliqué



206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
# File 'app/view/Fenetre.rb', line 206

def Fenetre.css(**args)
    if(args.has_key?(:fournisseur))
        fournisseur = args[:fournisseur]
    else
        if(args.has_key?(:chemin))
            chemin = Core::ROOTPROJECT + args[:chemin]
        else
            chemin = Core::ROOTPROJECT + "assets/css/style.css"
        end
        fournisseur = Gtk::CssProvider.new
        fournisseur.load_from_path(chemin)
    end
    
    if(args.has_key?(:widget))
        widget = args[:widget]
    else
        widget = @fenetre
    end

    if(args.has_key?(:priorite))
        priorite = Object.const_get("Gtk::StyleProvider::" + args[:priorite])
    else
        priorite = Object.const_get("Gtk::StyleProvider::PRIORITY_USER")
    end

    widgetStyle = widget.style_context
    widgetStyle.add_provider(fournisseur, priorite)

    return unless widget.respond_to?(:children)
    widget.children.each do |child|
        args[:widget] = child
        self.css(args)
    end
end

.detruireObject

Permet de quitter l'application et de détruire la fenêtre



287
288
289
# File 'app/view/Fenetre.rb', line 287

def Fenetre.detruire()
    Gtk.main_quit()
end

.enteteFenetreObject

Définit un accesseur pour le contexte de l'entête de la fenêtre Gtk

Returns:

  • enteteFenetre



102
103
104
# File 'app/view/Fenetre.rb', line 102

def Fenetre.enteteFenetre()
    return @enteteFenetre
end

.fenetreObject

Définit un accesseur pour le contexte de la fenêtre Gtk

Returns:

  • fenetre



92
93
94
# File 'app/view/Fenetre.rb', line 92

def Fenetre.fenetre()
    return @fenetre
end

.fenetrePrecedenteObject

Montre la fenêtre précédente



244
245
246
247
248
249
250
251
252
# File 'app/view/Fenetre.rb', line 244

def Fenetre.fenetrePrecedente()
    viderFenetre()

    @fenetrePrecedente.each() do |elt|
        @fenetre.add(elt)
    end

    @fenetre.show_all
end

.fenetrePrecedente=(fenetre) ⇒ Object

Définit la fenêtre précédente

Parameters:

  • fenetre

    Fenêtre précédente



259
260
261
# File 'app/view/Fenetre.rb', line 259

def Fenetre.fenetrePrecedente=(fenetre)
    @fenetrePrecedente = fenetre
end

.fenetreStyleObject

Définit un accesseur pour le contexte de style de la fenêtre Gtk

Returns:

  • fenetreStyle



111
112
113
# File 'app/view/Fenetre.rb', line 111

def Fenetre.fenetreStyle()
    return @fenetreStyle
end

.viderFenetreObject

Vide la fenêtre pour préparer la mise à jour



273
274
275
276
277
278
279
280
281
282
# File 'app/view/Fenetre.rb', line 273

def Fenetre.viderFenetre()
    @fenetre.hide
    # puts @fenetre.children[0]
    @fenetre.children.each() do |child|
        @fenetre.child.each() do |chil|
            child.remove(chil)
        end
    end

end