From 8d564675f89712728fc39baec23f21b912a24255 Mon Sep 17 00:00:00 2001 From: nathan Date: Thu, 29 Sep 2016 02:07:43 +0200 Subject: [PATCH] Code polish --- src/dorkbox/systemTray/linux/GtkMenu.java | 11 +++++++---- src/dorkbox/systemTray/linux/GtkMenuEntryItem.java | 6 ++---- src/dorkbox/systemTray/linux/GtkMenuEntryStatus.java | 5 +++-- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/dorkbox/systemTray/linux/GtkMenu.java b/src/dorkbox/systemTray/linux/GtkMenu.java index de714df..b822bab 100644 --- a/src/dorkbox/systemTray/linux/GtkMenu.java +++ b/src/dorkbox/systemTray/linux/GtkMenu.java @@ -183,13 +183,16 @@ class GtkMenu extends Menu { // To work around this issue, we destroy then recreate the menu every time something is changed. deleteMenu(); - menuEntry = new GtkMenuEntryItem(GtkMenu.this, menuText, imagePath, callback); + menuEntry = new GtkMenuEntryItem(GtkMenu.this, callback); + menuEntry.setText(menuText); + menuEntry.setImage(imagePath); menuEntries.add(menuEntry); if (menuText.equals("AAAAAAAA")) { -// GtkMenu subMenu = new GtkMenu(); -// subMenu.addMenuEntry("asdasdasd", null, null, null); -// Gtk.gtk_menu_item_set_submenu(((GtkMenuEntryItem) menuEntry).nativeMenuItem, subMenu.nativeMenu); + Gtk.gtk_widget_set_sensitive(((GtkMenuEntryItem) menuEntry)._native, Gtk.TRUE); + GtkMenu subMenu = new GtkMenu(getSystemTray(), GtkMenu.this); + subMenu.addMenuEntry("asdasdasd", null, null, null); + Gtk.gtk_menu_item_set_submenu(((GtkMenuEntryItem) menuEntry)._native, subMenu._native); } createMenu(); diff --git a/src/dorkbox/systemTray/linux/GtkMenuEntryItem.java b/src/dorkbox/systemTray/linux/GtkMenuEntryItem.java index 530e8c7..329babc 100644 --- a/src/dorkbox/systemTray/linux/GtkMenuEntryItem.java +++ b/src/dorkbox/systemTray/linux/GtkMenuEntryItem.java @@ -43,17 +43,15 @@ class GtkMenuEntryItem extends GtkMenuEntry implements GCallback { * called from inside dispatch thread. ONLY creates the menu item, but DOES NOT attach it! * this is a FLOATING reference. See: https://developer.gnome.org/gobject/stable/gobject-The-Base-Object-Type.html#floating-ref */ - GtkMenuEntryItem(final GtkMenu parentMenu, final String label, final File image, final SystemTrayMenuAction callback) { + GtkMenuEntryItem(final GtkMenu parentMenu, final SystemTrayMenuAction callback) { super(parentMenu, Gtk.gtk_image_menu_item_new_with_label("")); this.callback = callback; - setText(label); + if (transparentIcon == null) { transparentIcon = ImageUtils.getTransparentImage(ImageUtils.ENTRY_SIZE); } - setImage_(image); - if (callback != null) { Gtk.gtk_widget_set_sensitive(_native, Gtk.TRUE); nativeLong = Gobject.g_signal_connect_object(_native, "activate", this, null, 0); diff --git a/src/dorkbox/systemTray/linux/GtkMenuEntryStatus.java b/src/dorkbox/systemTray/linux/GtkMenuEntryStatus.java index a8c23a8..9fd371b 100644 --- a/src/dorkbox/systemTray/linux/GtkMenuEntryStatus.java +++ b/src/dorkbox/systemTray/linux/GtkMenuEntryStatus.java @@ -29,8 +29,9 @@ class GtkMenuEntryStatus extends GtkMenuEntryItem { * called from inside dispatch thread. ONLY creates the menu item, but DOES NOT attach it! * this is a FLOATING reference. See: https://developer.gnome.org/gobject/stable/gobject-The-Base-Object-Type.html#floating-ref */ - GtkMenuEntryStatus(final GtkMenu parentMenu, final String label) { - super(parentMenu, label, null, null); + GtkMenuEntryStatus(final GtkMenu parentMenu, final String text) { + super(parentMenu, null); + setText(text); } // called in the GTK thread