MenuButton (Vala) Tiffany Antopolski tiffany.antopolski@gmail.com 2012 Un élément graphique qui affiche un menu quand il est cliqué Luc Rebert, traduc@rebert.name 2011 Alain Lojewski, allomervan@gmail.com 2011-2012 Luc Pionchon pionchon.luc@gmail.com 2011 Bruno Brouard annoa.b@gmail.com 2011-12 Luis Menina liberforce@freeside.fr 2014 MenuButton

L'élément graphique GtkMenuButton sert à afficher un menu quand il est cliqué. Le menu peut provenir soit d'un GtkMenu, soit d'un GMenuModel abstrait. L'élément graphique GtkMenuButton peut contenir n'importe quel élément graphique enfant valide. Ceci dit, il peut contenir pratiquement n'importe quel autre GtkWidget standard. L'enfant le plus souvent utilisé est la flèche GtkArrow fournie.

Pour que le MenuButton fonctionne, il vous faut avoir installé GNOME 3.6

public class MyWindow : Gtk.ApplicationWindow { internal MyWindow (MyApplication app) { Object (application: app, title: "MenuButton Example"); this.set_default_size (600, 400); var grid = new Gtk.Grid (); var menubutton = new Gtk.MenuButton(); menubutton.set_size_request (80, 35); var menumodel = new Menu (); menumodel.append ("New", "app.new"); menumodel.append ("About", "win.about"); /* We create the last item as a MenuItem, so that * a submenu can be appended to this menu item. */ var submenu = new Menu (); menumodel.append_submenu ("Other", submenu); submenu.append ("Quit", "app.quit"); menubutton.set_menu_model (menumodel); var about_action = new SimpleAction ("about", null); about_action.activate.connect (this.about_cb); this.add_action (about_action); this.add(grid); grid.attach(menubutton, 0, 0, 1, 1); } void about_cb (SimpleAction simple, Variant? parameter) { print ("You clicked \"About\"\n"); } } public class MyApplication : Gtk.Application { protected override void activate () { new MyWindow (this).show_all (); } internal MyApplication () { Object (application_id: "org.example.MyApplication"); } /* Override the 'startup' signal of GLib.Application. */ protected override void startup () { base.startup (); var new_action = new SimpleAction ("new", null); new_action.activate.connect (this.new_cb); this.add_action (new_action); var quit_action = new SimpleAction ("quit", null); quit_action.activate.connect (this.quit); this.add_action (quit_action); } void new_cb (SimpleAction simple, Variant? parameter) { print ("You clicked \"New\"\n"); } } public int main (string[] args) { return new MyApplication ().run (args); }

Dans cet exemple, les éléments suivants sont utilisés :

MenuButton