Blame platform-demos/fr/toolbar.vala.page

Packit 1470ea
Packit 1470ea
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" xmlns:xi="http://www.w3.org/2001/XInclude" type="guide" style="task" id="toolbar.vala" xml:lang="fr">
Packit 1470ea
  <info>
Packit 1470ea
  <title type="text">Toolbar (Vala)</title>
Packit 1470ea
    <link type="guide" xref="beginner.vala#menu-combo-toolbar"/>
Packit 1470ea
    <link type="seealso" xref="grid.vala"/>
Packit 1470ea
    <revision version="0.1" date="2012-05-08" status="draft"/>
Packit 1470ea
Packit 1470ea
    <credit type="author copyright">
Packit 1470ea
      <name>Tiffany Antopolski</name>
Packit 1470ea
      <email its:translate="no">tiffany.antopolski@gmail.com</email>
Packit 1470ea
      <years>2012</years>
Packit 1470ea
    </credit>
Packit 1470ea
Packit 1470ea
    <desc>Une barre de boutons</desc>
Packit 1470ea
  
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>Luc Rebert,</mal:name>
Packit 1470ea
      <mal:email>traduc@rebert.name</mal:email>
Packit 1470ea
      <mal:years>2011</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>Alain Lojewski,</mal:name>
Packit 1470ea
      <mal:email>allomervan@gmail.com</mal:email>
Packit 1470ea
      <mal:years>2011-2012</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>Luc Pionchon</mal:name>
Packit 1470ea
      <mal:email>pionchon.luc@gmail.com</mal:email>
Packit 1470ea
      <mal:years>2011</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>Bruno Brouard</mal:name>
Packit 1470ea
      <mal:email>annoa.b@gmail.com</mal:email>
Packit 1470ea
      <mal:years>2011-12</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>Luis Menina</mal:name>
Packit 1470ea
      <mal:email>liberforce@freeside.fr</mal:email>
Packit 1470ea
      <mal:years>2014</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  </info>
Packit 1470ea
Packit 1470ea
  <title>Barre d'outils</title>
Packit 1470ea
Packit 1470ea
  <media type="image" mime="image/png" src="media/toolbar.png"/>
Packit 1470ea
  

La barre d'outils peut contenir soit du texte, soit des icônes de la collection. Dans cet exemple, nous utilisons les icônes de la collection. Cet exemple possède la fonction plein écran.

Packit 1470ea
  

Cet exemple utilise SimpleActions (fenêtre et application). Les actions applications peuvent être facilement ajoutées au menu « Applications ».

Packit 1470ea
Packit 1470ea
/* This is the Window */
Packit 1470ea
class MyWindow : Gtk.ApplicationWindow {
Packit 1470ea
Packit 1470ea
	/* Instance variables belonging to the window */
Packit 1470ea
	Gtk.Toolbar toolbar;
Packit 1470ea
	Gtk.ToolButton new_button;
Packit 1470ea
	Gtk.ToolButton open_button;
Packit 1470ea
	Gtk.ToolButton undo_button;
Packit 1470ea
	Gtk.ToolButton fullscreen_button;
Packit 1470ea
	Gtk.ToolButton leave_fullscreen_button;
Packit 1470ea
Packit 1470ea
	/* Constructor */
Packit 1470ea
	internal MyWindow (MyApplication app) {
Packit 1470ea
		Object (application: app, title: "Toolbar Example");
Packit 1470ea
Packit 1470ea
		this.set_default_size (400, 200);
Packit 1470ea
		var grid = new Gtk.Grid ();
Packit 1470ea
		this.add (grid);
Packit 1470ea
		grid.show ();
Packit 1470ea
Packit 1470ea
		create_toolbar ();
Packit 1470ea
		toolbar.set_hexpand (true);
Packit 1470ea
		grid.attach (toolbar, 0, 0, 1, 1);
Packit 1470ea
		toolbar.show ();
Packit 1470ea
Packit 1470ea
		/* create the "undo" window action action */
Packit 1470ea
		var undo_action = new SimpleAction ("undo", null);
Packit 1470ea
		undo_action.activate.connect (undo_callback);
Packit 1470ea
		this.add_action (undo_action);
Packit 1470ea
Packit 1470ea
		/* create the "fullscreen" window action */
Packit 1470ea
		var fullscreen_action = new SimpleAction ("fullscreen", null);
Packit 1470ea
		fullscreen_action.activate.connect (fullscreen_callback);
Packit 1470ea
		this.add_action (fullscreen_action);
Packit 1470ea
	}
Packit 1470ea
Packit 1470ea
	/* This function creates the toolbar, its  ToolButtons,
Packit 1470ea
	 * and assigns the actions names to the ToolButtons.*/
Packit 1470ea
	void create_toolbar () {
Packit 1470ea
		toolbar = new Gtk.Toolbar ();
Packit 1470ea
		toolbar.get_style_context ().add_class (Gtk.STYLE_CLASS_PRIMARY_TOOLBAR);
Packit 1470ea
Packit 1470ea
		new_button = new Gtk.ToolButton.from_stock (Gtk.Stock.NEW);
Packit 1470ea
		new_button.is_important = true; //decides whether to show the label
Packit 1470ea
		toolbar.add (new_button);
Packit 1470ea
		new_button.show ();
Packit 1470ea
		new_button.action_name = "app.new";
Packit 1470ea
Packit 1470ea
		open_button = new Gtk.ToolButton.from_stock (Gtk.Stock.OPEN);
Packit 1470ea
		open_button.is_important = true;
Packit 1470ea
		toolbar.add (open_button);
Packit 1470ea
		open_button.show ();
Packit 1470ea
		open_button.action_name = "app.open";
Packit 1470ea
Packit 1470ea
		undo_button = new Gtk.ToolButton.from_stock (Gtk.Stock.UNDO);
Packit 1470ea
		undo_button.is_important = true;
Packit 1470ea
		toolbar.add (undo_button);
Packit 1470ea
		undo_button.show ();
Packit 1470ea
		undo_button.action_name = "win.undo";
Packit 1470ea
Packit 1470ea
		fullscreen_button = new Gtk.ToolButton.from_stock (Gtk.Stock.FULLSCREEN);
Packit 1470ea
		fullscreen_button.is_important = true;
Packit 1470ea
		toolbar.add (fullscreen_button);
Packit 1470ea
		fullscreen_button.show ();
Packit 1470ea
		fullscreen_button.action_name = "win.fullscreen";
Packit 1470ea
Packit 1470ea
		leave_fullscreen_button = new Gtk.ToolButton.from_stock (Gtk.Stock.LEAVE_FULLSCREEN)
Packit 1470ea
;
Packit 1470ea
		leave_fullscreen_button.is_important = true;
Packit 1470ea
		toolbar.add (leave_fullscreen_button);
Packit 1470ea
Packit 1470ea
		leave_fullscreen_button.action_name = "win.fullscreen";
Packit 1470ea
	}
Packit 1470ea
Packit 1470ea
	void undo_callback (SimpleAction simple, Variant? parameter) {
Packit 1470ea
			print ("You clicked \"Undo\".\n");
Packit 1470ea
	}
Packit 1470ea
Packit 1470ea
	void fullscreen_callback (SimpleAction simple, Variant? parameter) {
Packit 1470ea
		if ((this.get_window ().get_state () & Gdk.WindowState.FULLSCREEN) != 0) {
Packit 1470ea
			this.unfullscreen ();
Packit 1470ea
			leave_fullscreen_button.hide ();
Packit 1470ea
			fullscreen_button.show ();
Packit 1470ea
		}
Packit 1470ea
		else {
Packit 1470ea
			this.fullscreen ();
Packit 1470ea
			fullscreen_button.hide ();
Packit 1470ea
			leave_fullscreen_button.show ();
Packit 1470ea
		}
Packit 1470ea
	}
Packit 1470ea
}
Packit 1470ea
Packit 1470ea
/* This is the application */
Packit 1470ea
class MyApplication : Gtk.Application {
Packit 1470ea
	protected override void activate () {
Packit 1470ea
		new MyWindow (this).show ();
Packit 1470ea
	}
Packit 1470ea
Packit 1470ea
	protected override void startup () {
Packit 1470ea
		base.startup ();
Packit 1470ea
Packit 1470ea
		/* Create the "new" action and add it to the app*/
Packit 1470ea
		var new_action = new SimpleAction ("new", null);
Packit 1470ea
		new_action.activate.connect (new_callback);
Packit 1470ea
		this.add_action (new_action);
Packit 1470ea
Packit 1470ea
		/* Create the "open" action, and add it to the app */
Packit 1470ea
		var open_action = new SimpleAction ("open", null);
Packit 1470ea
		open_action.activate.connect (open_callback);
Packit 1470ea
		this.add_action (open_action);
Packit 1470ea
Packit 1470ea
		/* You could also add the action to the app menu
Packit 1470ea
		 * if you wanted to.
Packit 1470ea
		 */
Packit 1470ea
		//var menu = new Menu ();
Packit 1470ea
		//menu.append ("New", "app.new");
Packit 1470ea
		//this.app_menu = menu;
Packit 1470ea
	}
Packit 1470ea
Packit 1470ea
	void new_callback (SimpleAction action, Variant? parameter) {
Packit 1470ea
		print ("You clicked \"New\".\n");
Packit 1470ea
	}
Packit 1470ea
Packit 1470ea
	void open_callback (SimpleAction action, Variant? parameter) {
Packit 1470ea
			print ("You clicked \"Open\".\n");
Packit 1470ea
	}
Packit 1470ea
}
Packit 1470ea
Packit 1470ea
/* The main function creates the application and runs it. */
Packit 1470ea
int main (string[] args) {
Packit 1470ea
	return new MyApplication ().run (args);
Packit 1470ea
}
Packit 1470ea
Packit 1470ea
Packit 1470ea

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

Packit 1470ea
<list>
Packit 1470ea
  <item>

<link href="http://www.valadoc.org/gtk+-3.0/Gtk.Toolbar.html">Gtk.Toolbar</link>

</item>
Packit 1470ea
  <item>

<link href="http://www.valadoc.org/gtk+-3.0/Gtk.ToolButton.html">Gtk.Toolbutton</link>

</item>
Packit 1470ea
  <item>

<link href="http://www.valadoc.org/gtk+-3.0/Gtk.Stock.html">Gtk.Stock</link>

</item>
Packit 1470ea
</list>
Packit 1470ea
Packit 1470ea
</page>