summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2015-06-04 22:43:11 +0100
committerVincent Sanders <vince@kyllikki.org>2015-06-04 22:43:11 +0100
commitc4d5393a972bb7ed276ce4bc5c92ba825d0a33f5 (patch)
tree3444cac33e28245f2fa646500da326acfc4c5f9e
parentc8ae7446806d5f329b844a098109e83e347e16ce (diff)
downloadnetsurf-c4d5393a972bb7ed276ce4bc5c92ba825d0a33f5.tar.gz
netsurf-c4d5393a972bb7ed276ce4bc5c92ba825d0a33f5.tar.bz2
move gtk menu cursor creation into separate resourec handling module
The gtk resource handling must be changed for GTK3 as creating from inline is depricated. This is the first step to splitting out the support.
-rw-r--r--gtk/Makefile.target2
-rw-r--r--gtk/resources.c46
-rw-r--r--gtk/resources.h27
-rw-r--r--gtk/window.c15
4 files changed, 75 insertions, 15 deletions
diff --git a/gtk/Makefile.target b/gtk/Makefile.target
index 0b2eaab9a..01c00c2fb 100644
--- a/gtk/Makefile.target
+++ b/gtk/Makefile.target
@@ -112,7 +112,7 @@ S_GTK := font_pango.c bitmap.c gui.c schedule.c plotters.c \
selection.c history.c window.c fetch.c download.c menu.c \
print.c search.c tabs.c theme.c toolbar.c gettext.c \
compat.c cookies.c hotlist.c viewdata.c viewsource.c \
- preferences.c about.c ssl_cert.c
+ preferences.c about.c ssl_cert.c resources.c
S_GTK := $(addprefix gtk/,$(S_GTK)) $(addprefix utils/,container.c)
# code in utils/container.ch is non-universal it seems
diff --git a/gtk/resources.c b/gtk/resources.c
new file mode 100644
index 000000000..e6ad951b8
--- /dev/null
+++ b/gtk/resources.c
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2015 Vincent Sanders <vince@netsurf-browser.org>
+ *
+ * This file is part of NetSurf, http://www.netsurf-browser.org/
+ *
+ * NetSurf is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * NetSurf is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * \file
+ * Implementation of gtk builtin resource handling.
+ *
+ * \todo resource handling in gtk3 has switched to using GResource
+ */
+
+#include <gtk/gtk.h>
+
+#include "gtk/resources.h"
+
+#ifdef __GNUC__
+extern const guint8 menu_cursor_pixdata[] __attribute__ ((__aligned__ (4)));
+#else
+extern const guint8 menu_cursor_pixdata[];
+#endif
+
+GdkCursor *nsgtk_create_menu_cursor(void)
+{
+ GdkCursor *cursor = NULL;
+ GdkPixbuf *pixbuf;
+
+ pixbuf = gdk_pixbuf_new_from_inline(-1, menu_cursor_pixdata, FALSE, NULL);
+ cursor = gdk_cursor_new_from_pixbuf(gdk_display_get_default(), pixbuf, 0, 3);
+ g_object_unref (pixbuf);
+
+ return cursor;
+}
diff --git a/gtk/resources.h b/gtk/resources.h
new file mode 100644
index 000000000..bc08e4727
--- /dev/null
+++ b/gtk/resources.h
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2006 Daniel Silverstone <dsilvers@digital-scurf.org>
+ *
+ * This file is part of NetSurf, http://www.netsurf-browser.org/
+ *
+ * NetSurf is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * NetSurf is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef NETSURF_GTK_RESOURCES_H
+#define NETSURF_GTK_RESOURCES_H 1
+
+/**
+ * Creates a menu cursor from internal resources
+ */
+GdkCursor *nsgtk_create_menu_cursor(void);
+
+#endif
diff --git a/gtk/window.c b/gtk/window.c
index 75a6d9f6b..239c01e4f 100644
--- a/gtk/window.c
+++ b/gtk/window.c
@@ -54,9 +54,7 @@
#include "gtk/tabs.h"
#include "gtk/bitmap.h"
#include "gtk/gdk.h"
-
-
-extern const guint8 *menu_cursor_pixdata;
+#include "gtk/resources.h"
static GtkWidget *select_menu;
static struct form_control *select_menu_control;
@@ -1078,17 +1076,6 @@ static void gui_window_update_extent(struct gui_window *g)
}
}
-static GdkCursor *nsgtk_create_menu_cursor(void)
-{
- GdkCursor *cursor = NULL;
- GdkPixbuf *pixbuf;
- pixbuf = gdk_pixbuf_new_from_inline(-1, menu_cursor_pixdata, FALSE, NULL);
- cursor = gdk_cursor_new_from_pixbuf(gdk_display_get_default(), pixbuf, 0, 3);
- g_object_unref (pixbuf);
-
- return cursor;
-}
-
static void gui_window_set_pointer(struct gui_window *g,
gui_pointer_shape shape)
{