GladeVariableGenerator
Ce code est directement repris du logiciel Alexandria, merci à Laurent.
class GladeBase
def initialize(filename, root)
file = File.join(DATA_DIR, filename)
glade = GladeXML.new(file, root) { |handler| method(handler) }
glade.widget_names.each do |name|
begin
instance_variable_set("@#{name}".intern, glade[name])
rescue
end
end
end
end
Cette classe est très pratique, car elle permet de créer automatiquement les variables Ruby pour chacun des widgets de notre interface. Ainsi au lieu de faire un get_widget à chaque fois, il suffit d’utiliser la variable d’instance correspondante. Si vous avez nommé dans Glade un widget GtkEntry “entry_login” par exemple, vous pouvez grâce à cette classe accéder au widget via @entry_login.
Simple et efficace.
- DATA_DIR est une constante contenant le répertoire d’accès à votre fichier glade.
- filename est le nom de votre ficher glade
- root est le widget dont vous souhaitez qu’il soit racine. Ce paramètre est facultatif, mais il peut servir si votre projet glade contient plusieurs fenêtres. En fournissant le nom d’une fenêtre dans ce paramètre, vous évitez l’affichage de toutes les fenêtres en même temps. Cependant il faudra créer une instance de cette classe pour chaque fenêtre.


