/usr/share/help/de/gnome-devel-demos/menubutton.js.page is in gnome-devel-docs 3.28.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | <?xml version="1.0" encoding="utf-8"?>
<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.js" xml:lang="de">
<info>
<title type="text">MenuButton (JavaScript)</title>
<link type="guide" xref="beginner.js#buttons"/>
<revision version="0.1" date="2012-07-18" status="draft"/>
<credit type="author copyright">
<name>Anna Zacchi</name>
<email its:translate="no">azzurroverde@gmail.com</email>
<years>2012</years>
</credit>
<desc>A widget that shows a menu when clicked on</desc>
<mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
<mal:name>Mario Blättermann</mal:name>
<mal:email>mario.blaettermann@gmail.com</mal:email>
<mal:years>2011, 2013</mal:years>
</mal:credit>
</info>
<title>MenuButton</title>
<media type="image" mime="image/png" src="media/menubutton.png"/>
<p>The GtkMenuButton widget is used to display a menu when clicked on. This menu can be provided either as a GtkMenu, or an abstract GMenuModel.
The GtkMenuButton widget can hold any valid child widget. That is, it can hold almost any other standard GtkWidget. The most commonly used child is the provided GtkArrow.</p>
<note><p>You need to be running GNOME 3.6 or later for the MenuButton to work.</p></note>
<code mime="application/javascript" style="numbered">#!/usr/bin/gjs
imports.gi.versions.Gtk = '3.0';
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const Gtk = imports.gi.Gtk;
class Application {
//create the application
constructor() {
this.application = new Gtk.Application({
application_id: 'org.example.myapp',
flags: Gio.ApplicationFlags.FLAGS_NONE
});
//connect to 'activate' and 'startup' signals to the callback functions
this.application.connect('activate', this._onActivate.bind(this));
this.application.connect('startup', this._onStartup.bind(this));
}
//create the UI (in this case it's just the ApplicationWindow)
_buildUI() {
this._window = new Gtk.ApplicationWindow({ application: this.application,
window_position: Gtk.WindowPosition.CENTER,
title: "MenuButton Example" });
this._window.set_default_size(600, 400);
this.grid = new Gtk.Grid();
this._window.add(this.grid);
this._menuButton = new Gtk.MenuButton();
this.grid.attach(this._menuButton, 0, 0, 1, 1 );
this.menu = Gtk.Menu.new_from_model(this.menuModel);
this.menu.show();
this._menuButton.set_menu_model (this.menuModel);
this._menuButton.set_size_request(80, 35);
this._menuButton.show();
this._window.show_all();
}
_showNew() {
print("You clicked \"New\"");
}
_showAbout() {
print("You clicked \"About\"");
}
//create the menu items and connect the signals to the callback functions.
_initMenus() {
let newAction = new Gio.SimpleAction({ name: 'new' });
newAction.connect('activate', () => { this._showNew(); });
this.application.add_action(newAction);
let aboutAction = new Gio.SimpleAction({ name: 'about' });
aboutAction.connect('activate', () => { this._showAbout(); });
this.application.add_action(aboutAction);
let quitAction = new Gio.SimpleAction({ name: 'quit' });
quitAction.connect('activate', () => { this._window.destroy(); });
this.application.add_action(quitAction);
this.menuModel = new Gio.Menu();
this.menuItemNew = Gio.MenuItem.new("New", 'app.new');
this.menuItemAbout = Gio.MenuItem.new("About", 'app.about');
this.fileMenuItem = Gio.MenuItem.new("Other", null);
this.menuModel.append_item(this.menuItemNew);
this.menuModel.append_item(this.menuItemAbout);
//submenu
this.subMenu = new Gio.Menu();
this.fileMenuItem.set_submenu(this.subMenu);
this.menuItemQuit = Gio.MenuItem.new("Quit", 'app.quit');
this.subMenu.append_item(this.menuItemQuit);
this.menuModel.append_item(this.fileMenuItem);
}
//callback function for 'activate' signal
_onActivate() {
this._window.present();
}
//callback function for 'startup' signal
_onStartup() {
//You must call _initMenus() before calling _buildUI().
this._initMenus();
this._buildUI();
}
};
//run the application
let app = new Application();
app.application.run(ARGV);
</code>
<p>
In this sample we used the following:
</p>
<list>
<item><p><link href="http://developer.gnome.org/gtk3/3.5/gtk3-GtkMenuButton.html">MenuButton</link></p></item>
</list>
</page>
|