summaryrefslogtreecommitdiff
path: root/gtk/menu.c
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2015-04-10 16:20:55 +0100
committerVincent Sanders <vince@kyllikki.org>2015-04-10 16:20:55 +0100
commit267fb0b00eec762da36f9f763521399efb914c2b (patch)
treedcabd2b7412e43bef694feaeb881eeb08e93b765 /gtk/menu.c
parent1922eb1e2a688c1927ab05436dec5043c31b8e78 (diff)
downloadnetsurf-267fb0b00eec762da36f9f763521399efb914c2b.tar.gz
netsurf-267fb0b00eec762da36f9f763521399efb914c2b.tar.bz2
cope with deprication of image menus in GTK 3.10
Diffstat (limited to 'gtk/menu.c')
-rw-r--r--gtk/menu.c35
1 files changed, 23 insertions, 12 deletions
diff --git a/gtk/menu.c b/gtk/menu.c
index 8b684d6c6..6052d140b 100644
--- a/gtk/menu.c
+++ b/gtk/menu.c
@@ -21,35 +21,46 @@
#include <gdk/gdkkeysyms.h>
#include <gtk/gtk.h>
-#include "gtk/menu.h"
#include "utils/messages.h"
#include "utils/utils.h"
+#include "gtk/compat.h"
+#include "gtk/menu.h"
+
/**
- * adds image menu item to specified menu
+ * Adds image menu item to a menu.
+ *
* \param menu the menu to add the item to
- * \param item a pointer to the item's location in the menu struct
+ * \param item_out a pointer to the item's location in the menu struct
* \param message the menu item I18n lookup value
* \param messageAccel the menu item accelerator I18n lookup value
* \param group the 'global' in a gtk sense accelerator group
+ * \return true if sucessful and \a item_out updated else false.
*/
static bool nsgtk_menu_add_image_item(GtkMenu *menu,
- GtkImageMenuItem **item, const char *message,
+ GtkWidget **item_out, const char *message,
const char *messageAccel, GtkAccelGroup *group)
{
unsigned int key;
GdkModifierType mod;
- *item = GTK_IMAGE_MENU_ITEM(gtk_image_menu_item_new_with_mnemonic(
- messages_get(message)));
- if (*item == NULL)
+ GtkWidget *item;
+
+ item = nsgtk_image_menu_item_new_with_mnemonic(messages_get(message));
+ if (item == NULL) {
return false;
+ }
+
gtk_accelerator_parse(messages_get(messageAccel), &key, &mod);
- if (key > 0)
- gtk_widget_add_accelerator(GTK_WIDGET(*item), "activate",
- group, key, mod, GTK_ACCEL_VISIBLE);
- gtk_menu_shell_append(GTK_MENU_SHELL(menu), GTK_WIDGET(*item));
- gtk_widget_show(GTK_WIDGET(*item));
+ if (key > 0) {
+ gtk_widget_add_accelerator(item, "activate", group, key, mod,
+ GTK_ACCEL_VISIBLE);
+ }
+ gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
+ gtk_widget_show(item);
+
+ *item_out = item;
+
return true;
}