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.
This commit is contained in:
Vincent Sanders 2015-06-04 22:43:11 +01:00
parent c8ae744680
commit c4d5393a97
4 changed files with 75 additions and 15 deletions

View File

@ -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

46
gtk/resources.c Normal file
View File

@ -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;
}

27
gtk/resources.h Normal file
View File

@ -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

View File

@ -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)
{