Blame platform-demos/cs/menubutton.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="menubutton.vala" xml:lang="cs">
Packit 1470ea
  <info>
Packit 1470ea
  <title type="text">MenuButton (Vala)</title>
Packit 1470ea
    <link type="guide" xref="beginner.vala#buttons"/>
Packit 1470ea
    <revision version="0.1" date="2012-07-18" 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>Tlačítko, které po kliknutí zobrazí nabídku</desc>
Packit 1470ea
  </info>
Packit 1470ea
Packit 1470ea
  <title>MenuButton</title>
Packit 1470ea
  <media type="image" mime="image/png" src="media/menubutton.png"/>
Packit 1470ea
  

Widget GtkMenuButton se používá k zobrazení nabídky po kliknutí na něj. Nabídka může být poskytnuta v podobě GtkMenu nebo jako abstraktní GMenuModel. Tlačítko může obsahovat libovolný platný synovský widget. To znamená, že může obsahovat většinu ostatních standardních potomků GtkWidget. Nejčastěji používaným vloženým widgetem je GtkArrow.

Packit 1470ea
Packit 1470ea
<note>

Musíte používat GNOME 3.6 nebo novější, aby widget MenuButton fungoval.

</note>
Packit 1470ea
public class MyWindow : Gtk.ApplicationWindow {
Packit 1470ea
Packit 1470ea
	internal MyWindow (MyApplication app) {
Packit 1470ea
		Object (application: app, title: "MenuButton Example");
Packit 1470ea
		this.set_default_size (600, 400);
Packit 1470ea
		var grid = new Gtk.Grid ();
Packit 1470ea
Packit 1470ea
		var menubutton = new Gtk.MenuButton();
Packit 1470ea
		menubutton.set_size_request (80, 35);
Packit 1470ea
Packit 1470ea
		var menumodel = new Menu ();
Packit 1470ea
		menumodel.append ("New", "app.new");
Packit 1470ea
		menumodel.append ("About", "win.about");
Packit 1470ea
Packit 1470ea
		/* Poslední položku vytvoříme jako  MenuItem, takže
Packit 1470ea
		 * tato podnabídka může být připojena k této položce
Packit 1470ea
		 * nabídky
Packit 1470ea
		 */
Packit 1470ea
		var submenu = new Menu ();
Packit 1470ea
		menumodel.append_submenu ("Other", submenu);
Packit 1470ea
		submenu.append ("Quit", "app.quit");
Packit 1470ea
		menubutton.set_menu_model (menumodel);
Packit 1470ea
Packit 1470ea
		var about_action = new SimpleAction ("about", null);
Packit 1470ea
		about_action.activate.connect (this.about_cb);
Packit 1470ea
		this.add_action (about_action);
Packit 1470ea
Packit 1470ea
		this.add(grid);
Packit 1470ea
		grid.attach(menubutton, 0, 0, 1, 1);
Packit 1470ea
	}
Packit 1470ea
Packit 1470ea
	void about_cb (SimpleAction simple, Variant? parameter) {
Packit 1470ea
		print ("You clicked \"About\"\n");
Packit 1470ea
	}
Packit 1470ea
}
Packit 1470ea
Packit 1470ea
public class MyApplication : Gtk.Application {
Packit 1470ea
	protected override void activate () {
Packit 1470ea
		new MyWindow (this).show_all ();
Packit 1470ea
	}
Packit 1470ea
Packit 1470ea
	internal MyApplication () {
Packit 1470ea
		Object (application_id: "org.example.MyApplication");
Packit 1470ea
	}
Packit 1470ea
Packit 1470ea
	/* Přepíše signál "activate" z GLib.Application */
Packit 1470ea
	protected override void startup () {
Packit 1470ea
		base.startup ();
Packit 1470ea
Packit 1470ea
		var new_action = new SimpleAction ("new", null);
Packit 1470ea
		new_action.activate.connect (this.new_cb);
Packit 1470ea
		this.add_action (new_action);
Packit 1470ea
Packit 1470ea
		var quit_action = new SimpleAction ("quit", null);
Packit 1470ea
		quit_action.activate.connect (this.quit);
Packit 1470ea
		this.add_action (quit_action);
Packit 1470ea
	}
Packit 1470ea
Packit 1470ea
	void new_cb (SimpleAction simple, Variant? parameter) {
Packit 1470ea
		print ("You clicked \"New\"\n");
Packit 1470ea
	}
Packit 1470ea
}
Packit 1470ea
Packit 1470ea
public int main (string[] args) {
Packit 1470ea
	return new MyApplication ().run (args);
Packit 1470ea
}
Packit 1470ea
Packit 1470ea

V této ukázce se používá následující:

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

<link href="http://developer.gnome.org/gtk3/3.5/gtk3-GtkMenuButton.html">MenuButton</link>

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