🔀 Merge pull request #19 from Schneegans/feature/menu-button
This commit is contained in:
@@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
* Added a new ridiculous close-animation: the T-Rex-Attack!
|
* Added a new ridiculous close-animation: the T-Rex-Attack!
|
||||||
* Added a new simple close-animation: the TV-Effect!
|
* Added a new simple close-animation: the TV-Effect!
|
||||||
|
* Added a menu to the preferences dialog with links for bug reporting and donations.
|
||||||
|
|
||||||
#### Other Enhancements
|
#### Other Enhancements
|
||||||
|
|
||||||
|
|||||||
@@ -75,6 +75,36 @@ var PreferencesDialog = class PreferencesDialog {
|
|||||||
// Initialize the fire-preset dropdown.
|
// Initialize the fire-preset dropdown.
|
||||||
this._createFirePresets();
|
this._createFirePresets();
|
||||||
|
|
||||||
|
// Add a menu to the title bar of the preferences dialog.
|
||||||
|
this._widget.connect('realize', (widget) => {
|
||||||
|
const window = utils.gtk4() ? widget.get_root() : widget.get_toplevel();
|
||||||
|
|
||||||
|
// Show the version number in the title bar.
|
||||||
|
window.set_title(`Burn-My-Windows ${Me.metadata.version}`);
|
||||||
|
|
||||||
|
// Add the menu.
|
||||||
|
const menu = this._builder.get_object('menu-button');
|
||||||
|
window.get_titlebar().pack_end(menu);
|
||||||
|
|
||||||
|
// Populate the actions.
|
||||||
|
const group = Gio.SimpleActionGroup.new();
|
||||||
|
|
||||||
|
const addAction = (name, uri) => {
|
||||||
|
const action = Gio.SimpleAction.new(name, null);
|
||||||
|
action.connect('activate', () => Gtk.show_uri(null, uri, Gdk.CURRENT_TIME));
|
||||||
|
group.add_action(action);
|
||||||
|
};
|
||||||
|
|
||||||
|
addAction('homepage', 'https://github.com/Schneegans/Burn-My-Windows');
|
||||||
|
addAction('bugs', 'https://github.com/Schneegans/Burn-My-Windows/issues');
|
||||||
|
addAction(
|
||||||
|
'donate-paypal',
|
||||||
|
'https://www.paypal.com/donate/?hosted_button_id=3F7UFL8KLVPXE');
|
||||||
|
addAction('donate-github', 'https://github.com/sponsors/Schneegans');
|
||||||
|
|
||||||
|
window.insert_action_group('prefs', group);
|
||||||
|
});
|
||||||
|
|
||||||
// As we do not have something like a destructor, we just listen for the destroy
|
// As we do not have something like a destructor, we just listen for the destroy
|
||||||
// signal of our main widget.
|
// signal of our main widget.
|
||||||
this._widget.connect('destroy', () => {
|
this._widget.connect('destroy', () => {
|
||||||
|
|||||||
@@ -19,6 +19,44 @@
|
|||||||
</data>
|
</data>
|
||||||
</object>
|
</object>
|
||||||
|
|
||||||
|
<menu id="main-menu">
|
||||||
|
<section>
|
||||||
|
<item>
|
||||||
|
<attribute name="label" translatable="yes">Visit Homepage</attribute>
|
||||||
|
<attribute name="action">prefs.homepage</attribute>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<attribute name="label" translatable="yes">Report a Bug</attribute>
|
||||||
|
<attribute name="action">prefs.bugs</attribute>
|
||||||
|
</item>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<submenu>
|
||||||
|
<attribute name="label" translatable="yes">Donate</attribute>
|
||||||
|
<item>
|
||||||
|
<attribute name="label" translatable="yes">Via PayPal</attribute>
|
||||||
|
<attribute name="action">prefs.donate-paypal</attribute>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<attribute name="label" translatable="yes">Via GitHub</attribute>
|
||||||
|
<attribute name="action">prefs.donate-github</attribute>
|
||||||
|
</item>
|
||||||
|
</submenu>
|
||||||
|
</section>
|
||||||
|
</menu>
|
||||||
|
|
||||||
|
<object class="GtkMenuButton" id="menu-button">
|
||||||
|
<property name="menu-model">main-menu</property>
|
||||||
|
<property name="visible">1</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">open-menu-symbolic</property>
|
||||||
|
<property name="visible">1</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
|
||||||
<object class="GtkAdjustment" id="destroy-animation-time">
|
<object class="GtkAdjustment" id="destroy-animation-time">
|
||||||
<property name="upper">10000</property>
|
<property name="upper">10000</property>
|
||||||
<property name="lower">500</property>
|
<property name="lower">500</property>
|
||||||
|
|||||||
@@ -27,6 +27,37 @@
|
|||||||
</data>
|
</data>
|
||||||
</object>
|
</object>
|
||||||
|
|
||||||
|
<menu id="main-menu">
|
||||||
|
<section>
|
||||||
|
<item>
|
||||||
|
<attribute name="label" translatable="yes">Visit Homepage</attribute>
|
||||||
|
<attribute name="action">prefs.homepage</attribute>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<attribute name="label" translatable="yes">Report a Bug</attribute>
|
||||||
|
<attribute name="action">prefs.bugs</attribute>
|
||||||
|
</item>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<submenu>
|
||||||
|
<attribute name="label" translatable="yes">Donate</attribute>
|
||||||
|
<item>
|
||||||
|
<attribute name="label" translatable="yes">Via PayPal</attribute>
|
||||||
|
<attribute name="action">prefs.donate-paypal</attribute>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<attribute name="label" translatable="yes">Via GitHub</attribute>
|
||||||
|
<attribute name="action">prefs.donate-github</attribute>
|
||||||
|
</item>
|
||||||
|
</submenu>
|
||||||
|
</section>
|
||||||
|
</menu>
|
||||||
|
|
||||||
|
<object class="GtkMenuButton" id="menu-button">
|
||||||
|
<property name="menu-model">main-menu</property>
|
||||||
|
<property name="icon-name">open-menu-symbolic</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
<object class="GtkScrolledWindow" id="settings-widget">
|
<object class="GtkScrolledWindow" id="settings-widget">
|
||||||
<property name="hscrollbar-policy">never</property>
|
<property name="hscrollbar-policy">never</property>
|
||||||
<property name="min-content-height">200</property>
|
<property name="min-content-height">200</property>
|
||||||
|
|||||||
Reference in New Issue
Block a user