netsurf/gtk/resources.h
Vincent Sanders ee74f9ac8c Change gtk message and language handling to use resource names
The GTK resource handling can now provide the path to resources rather
than having to compute them separately. This reduces run time
allocation and allows for the resources to be built in if required.

Additionally this tweaks the resource scheme handling to redirect
favicon.ico to resource:favicon.png instead of rewriting directly to
file scheme path allowing the favicon to be a compiled in resource.
2015-06-23 11:53:41 +01:00

110 lines
3.6 KiB
C

/*
* 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/>.
*/
/**
* \file
* Interface to gtk builtin resource handling.
*
* This presents a unified interface to the rest of the codebase to
* obtain resources. Note this is not anything to do with the resource
* scheme handling beyond possibly providing the underlying data.
*
*/
#ifndef NETSURF_GTK_RESOURCES_H
#define NETSURF_GTK_RESOURCES_H 1
/**
* Initialise GTK resources handling.
*
* Must be called before attempting to retrieve any resources but
* after logging is initialised as it logs.
*
* \param respath A string vector of paths to search for resources.
* \return NSERROR_OK if all resources were located else an
* appropriate error code.
*/
nserror nsgtk_init_resources(char **respath);
/**
* Creates a menu cursor from internal resources.
*
* \return Cursor object or NULL on error.
*/
GdkCursor *nsgtk_create_menu_cursor(void);
/**
* Create gtk builder object for the named ui resource.
*
* Creating gtk builder objects from a named resource requires the
* source xml resource to be parsed.
*
* This creates a gtk builder instance using an identifier name which
* is mapped to the ui_resource table which must be initialised with
* nsgtk_init_resources()
*
* \param resname The resource name to construct for
* \param builder_out The builder result
* \return NSERROR_OK and builder_out updated or appropriate error code
*/
nserror nsgtk_builder_new_from_resname(const char *resname, GtkBuilder **builder_out);
/**
* Create gdk pixbuf for the named ui resource.
*
* This creates a pixbuf using an identifier name which is mapped to
* the ui_resource table which must be initialised with
* nsgtk_init_resources()
*
* \param resname The resource name to construct for
* \param pixbuf_out The pixbuf result
* \return NSERROR_OK and pixbuf_out updated or appropriate error code
*/
nserror nsgdk_pixbuf_new_from_resname(const char *resname, GdkPixbuf **pixbuf_out);
/**
* Get direct pointer to resource data.
*
* For a named resource this obtains a direct acesss pointer to the
* data and its length.
*
* The data is read only through this pointer and remains valid until
* program exit.
*
* \param resname The resource name to obtain data for.
* \param data_out The resulting data.
* \param data_size_out The resulting data size.
* \return NSERROR_OK and data_out updated or appropriate error code.
*/
nserror nsgtk_data_from_resname(const char *resname, const uint8_t **data_out, size_t *data_size_out);
/**
* Get path to resource data.
*
* For a named resource this obtains the on-disc path to that resource.
*
* The path is read only and remains valid untill program exit.
* \param resname The resource name to obtain path for.
* \param path_out The resulting data.
* \return NSERROR_OK and path_out updated or appropriate error code.
*/
nserror nsgtk_path_from_resname(const char *resname, const char **path_out);
#endif