summaryrefslogtreecommitdiff
path: root/desktop/gui.h
diff options
context:
space:
mode:
authorVincent Sanders <vince@netsurf-browser.org>2014-01-29 21:35:53 +0000
committerVincent Sanders <vince@netsurf-browser.org>2014-01-29 21:35:53 +0000
commitdb33103fa3d0e7b4623dc321792963969e15e683 (patch)
tree75becbaeddbf38c2d199f76ba168577258758d8d /desktop/gui.h
parent829b4fd4546670512f8543c8bc8ed80372566f08 (diff)
downloadnetsurf-db33103fa3d0e7b4623dc321792963969e15e683.tar.gz
netsurf-db33103fa3d0e7b4623dc321792963969e15e683.tar.bz2
clean up desktop/gui.h include usage
Diffstat (limited to 'desktop/gui.h')
-rw-r--r--desktop/gui.h58
1 files changed, 50 insertions, 8 deletions
diff --git a/desktop/gui.h b/desktop/gui.h
index da609b1e3..37066e1a7 100644
--- a/desktop/gui.h
+++ b/desktop/gui.h
@@ -24,10 +24,13 @@
#define _NETSURF_DESKTOP_GUI_H_
#include <stdbool.h>
+#include <stdlib.h>
-#include "content/hlcache.h"
-#include "desktop/download.h"
+#include "utils/types.h"
#include "utils/errors.h"
+#include "utils/nsurl.h"
+#include "desktop/plot_style.h"
+#include "desktop/mouse.h"
typedef enum {
GUI_SAVE_SOURCE,
@@ -58,6 +61,8 @@ struct gui_download_window;
struct browser_window;
struct form_control;
struct ssl_cert_info;
+struct hlcache_handle;
+struct download_context;
typedef struct nsnsclipboard_styles {
size_t start; /**< Start of run */
@@ -155,7 +160,7 @@ struct gui_window_table {
void (*set_url)(struct gui_window *g, const char *url);
/** set favicon */
- void (*set_icon)(struct gui_window *g, hlcache_handle *icon);
+ void (*set_icon)(struct gui_window *g, struct hlcache_handle *icon);
/**
* Set the status bar of a browser window.
@@ -232,10 +237,10 @@ struct gui_window_table {
/**
* Called when file chooser gadget is activated
*/
- void (*file_gadget_open)(struct gui_window *g, hlcache_handle *hl, struct form_control *gadget);
+ void (*file_gadget_open)(struct gui_window *g, struct hlcache_handle *hl, struct form_control *gadget);
/** object dragged to window*/
- void (*drag_save_object)(struct gui_window *g, hlcache_handle *c, gui_save_type type);
+ void (*drag_save_object)(struct gui_window *g, struct hlcache_handle *c, gui_save_type type);
/** drag selection save */
void (*drag_save_selection)(struct gui_window *g, const char *selection);
@@ -248,7 +253,7 @@ struct gui_window_table {
* function table for download windows
*/
struct gui_download_table {
- struct gui_download_window *(*create)(download_context *ctx, struct gui_window *parent);
+ struct gui_download_window *(*create)(struct download_context *ctx, struct gui_window *parent);
nserror (*data)(struct gui_download_window *dw, const char *data, unsigned int size);
@@ -365,6 +370,31 @@ struct gui_fetch_table {
};
+/**
+ * User interface utf8 characterset conversion routines
+ */
+struct gui_utf8_table {
+ /**
+ * Convert a UTF-8 encoded string into the system local encoding
+ *
+ * \param string The string to convert
+ * \param len The length (in bytes) of the string, or 0
+ * \param result Pointer to location in which to store result
+ * \return An nserror code
+ */
+ nserror (*utf8_to_local)(const char *string, size_t len, char **result);
+
+ /**
+ * Convert a string encoded in the system local encoding to UTF-8
+ *
+ * \param string The string to convert
+ * \param len The length (in bytes) of the string, or 0
+ * \param result Pointer to location in which to store result
+ * \return An nserror code
+ */
+ nserror (*local_to_utf8)(const char *string, size_t len, char **result);
+};
+
/** Graphical user interface browser misc function table
*
* function table implementing GUI interface to miscelaneous browser
@@ -392,7 +422,7 @@ struct gui_browser_table {
* \param ico may be NULL for local calls; then access current
* cache from search_web_ico()
*/
- void (*set_search_ico)(hlcache_handle *ico);
+ void (*set_search_ico)(struct hlcache_handle *ico);
/**
* core has no fetcher for url
@@ -424,7 +454,11 @@ struct gui_browser_table {
*/
struct gui_table {
- /** Browser table */
+ /** Browser table.
+ *
+ * Provides miscellaneous browser functionality. The table
+ * is mandantory and must be provided.
+ */
struct gui_browser_table *browser;
/** Window table */
@@ -438,6 +472,14 @@ struct gui_table {
/** Fetcher table */
struct gui_fetch_table *fetch;
+
+ /** UTF8 table
+ *
+ * Provides for conversion between the gui local character
+ * encoding and utf8. The table optional and may be NULL which
+ * implies the local encoding is utf8.
+ */
+ struct gui_utf8_table *utf8;
};