netsurf/frontends/gtk/resources.h
2016-05-15 13:44:34 +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