summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--content/fetchers/resource.c1
-rw-r--r--desktop/browser.c1
-rw-r--r--desktop/browser.h2
-rw-r--r--desktop/download.c2
-rw-r--r--desktop/frames.c2
-rw-r--r--desktop/gui.h58
-rw-r--r--desktop/gui_factory.c3
-rw-r--r--desktop/local_history.c2
-rw-r--r--desktop/search.c1
-rw-r--r--desktop/searchweb.c1
-rw-r--r--desktop/selection.c1
-rw-r--r--desktop/textinput.c1
-rw-r--r--framebuffer/fetch.c1
-rw-r--r--gtk/download.c4
-rw-r--r--gtk/fetch.c2
-rw-r--r--gtk/scaffolding.h2
-rw-r--r--monkey/download.c8
-rw-r--r--render/form.c3
-rw-r--r--render/search.c1
-rw-r--r--render/textplain.c1
20 files changed, 69 insertions, 28 deletions
diff --git a/content/fetchers/resource.c b/content/fetchers/resource.c
index b2791b432..a5c12bbdb 100644
--- a/content/fetchers/resource.c
+++ b/content/fetchers/resource.c
@@ -41,7 +41,6 @@
#include "content/fetch.h"
#include "content/fetchers/resource.h"
#include "content/urldb.h"
-#include "desktop/gui.h"
#include "desktop/gui_factory.h"
#include "utils/corestrings.h"
#include "utils/nsoption.h"
diff --git a/desktop/browser.c b/desktop/browser.c
index a33c1b6eb..f46d50eec 100644
--- a/desktop/browser.c
+++ b/desktop/browser.c
@@ -45,7 +45,6 @@
#include "desktop/download.h"
#include "desktop/frames.h"
#include "desktop/global_history.h"
-#include "desktop/gui.h"
#include "desktop/gui_factory.h"
#include "desktop/hotlist.h"
#include "desktop/knockout.h"
diff --git a/desktop/browser.h b/desktop/browser.h
index 0ca2e009b..d61e6a012 100644
--- a/desktop/browser.h
+++ b/desktop/browser.h
@@ -27,8 +27,8 @@
#include <stdbool.h>
#include "content/content.h"
+#include "content/hlcache.h"
#include "desktop/frame_types.h"
-#include "desktop/gui.h"
#include "desktop/mouse.h"
#include "utils/types.h"
diff --git a/desktop/download.c b/desktop/download.c
index b5427b405..b458f577c 100644
--- a/desktop/download.c
+++ b/desktop/download.c
@@ -23,10 +23,10 @@
#include <assert.h>
#include <stdlib.h>
+#include <string.h>
#include "content/llcache.h"
#include "desktop/download.h"
-#include "desktop/gui.h"
#include "desktop/gui_factory.h"
#include "utils/corestrings.h"
#include "utils/http.h"
diff --git a/desktop/frames.c b/desktop/frames.c
index 3f7613f32..354c70da4 100644
--- a/desktop/frames.c
+++ b/desktop/frames.c
@@ -28,12 +28,12 @@
#include <string.h>
#include <time.h>
#include <math.h>
+
#include "utils/config.h"
#include "content/hlcache.h"
#include "desktop/browser_private.h"
#include "desktop/frames.h"
#include "desktop/local_history.h"
-#include "desktop/gui.h"
#include "desktop/scrollbar.h"
#include "desktop/selection.h"
#include "utils/log.h"
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;
};
diff --git a/desktop/gui_factory.c b/desktop/gui_factory.c
index dfe775571..b61fdf0be 100644
--- a/desktop/gui_factory.c
+++ b/desktop/gui_factory.c
@@ -16,7 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "desktop/gui.h"
+#include "content/hlcache.h"
+#include "desktop/download.h"
#include "desktop/gui_factory.h"
/** The global GUI interface table */
diff --git a/desktop/local_history.c b/desktop/local_history.c
index d4ecfd3bb..9829f51b6 100644
--- a/desktop/local_history.c
+++ b/desktop/local_history.c
@@ -26,12 +26,12 @@
#include <stdlib.h>
#include <string.h>
#include <time.h>
+
#include "content/content.h"
#include "content/hlcache.h"
#include "content/urldb.h"
#include "css/css.h"
#include "desktop/browser.h"
-#include "desktop/gui.h"
#include "desktop/local_history.h"
#include "desktop/plotters.h"
#include "desktop/thumbnail.h"
diff --git a/desktop/search.c b/desktop/search.c
index 3a7c768a5..4a02f6b7c 100644
--- a/desktop/search.c
+++ b/desktop/search.c
@@ -29,7 +29,6 @@
#include "content/content.h"
#include "content/hlcache.h"
#include "desktop/browser_private.h"
-#include "desktop/gui.h"
#include "utils/nsoption.h"
#include "desktop/search.h"
#include "desktop/selection.h"
diff --git a/desktop/searchweb.c b/desktop/searchweb.c
index b3f6162a6..bdcb2ba8a 100644
--- a/desktop/searchweb.c
+++ b/desktop/searchweb.c
@@ -26,7 +26,6 @@
#include "content/content.h"
#include "content/hlcache.h"
#include "desktop/browser.h"
-#include "desktop/gui.h"
#include "desktop/gui_factory.h"
#include "utils/nsoption.h"
#include "desktop/searchweb.h"
diff --git a/desktop/selection.c b/desktop/selection.c
index 96c7e0c3c..34292fdce 100644
--- a/desktop/selection.c
+++ b/desktop/selection.c
@@ -29,7 +29,6 @@
#include <dom/dom.h>
#include "desktop/browser_private.h"
-#include "desktop/gui.h"
#include "desktop/gui_factory.h"
#include "desktop/mouse.h"
#include "desktop/plotters.h"
diff --git a/desktop/textinput.c b/desktop/textinput.c
index c61b838fe..fd6ae9ff1 100644
--- a/desktop/textinput.c
+++ b/desktop/textinput.c
@@ -30,7 +30,6 @@
#include <dom/dom.h>
#include "desktop/browser_private.h"
-#include "desktop/gui.h"
#include "desktop/gui_factory.h"
#include "desktop/mouse.h"
#include "desktop/scrollbar.h"
diff --git a/framebuffer/fetch.c b/framebuffer/fetch.c
index 0c9b90f7c..f350f3634 100644
--- a/framebuffer/fetch.c
+++ b/framebuffer/fetch.c
@@ -22,6 +22,7 @@
#include <stdio.h>
#include <string.h>
+#include <limits.h>
#include "desktop/gui.h"
#include "utils/url.h"
diff --git a/gtk/download.c b/gtk/download.c
index 3d287d4d2..e49e66ef3 100644
--- a/gtk/download.c
+++ b/gtk/download.c
@@ -27,10 +27,12 @@
#include "utils/utils.h"
#include "utils/url.h"
#include "utils/messages.h"
+#include "utils/nsoption.h"
+#include "desktop/download.h"
#include "desktop/gui.h"
+
#include "gtk/gui.h"
#include "gtk/scaffolding.h"
-#include "utils/nsoption.h"
#include "gtk/download.h"
#include "gtk/window.h"
#include "gtk/compat.h"
diff --git a/gtk/fetch.c b/gtk/fetch.c
index f4a42b5f8..0043cd062 100644
--- a/gtk/fetch.c
+++ b/gtk/fetch.c
@@ -20,6 +20,8 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
+#include <ctype.h>
+#include <string.h>
#include "utils/hashtable.h"
#include "utils/url.h"
diff --git a/gtk/scaffolding.h b/gtk/scaffolding.h
index 43eb41b19..757da82fd 100644
--- a/gtk/scaffolding.h
+++ b/gtk/scaffolding.h
@@ -20,9 +20,9 @@
#define NETSURF_GTK_SCAFFOLDING_H 1
#include <gtk/gtk.h>
-//#include <glade/glade.h>
#include <glib.h>
+#include "content/hlcache.h"
#include "desktop/gui.h"
#include "desktop/plotters.h"
#include "gtk/menu.h"
diff --git a/monkey/download.c b/monkey/download.c
index d2e3b4b24..721f77ddc 100644
--- a/monkey/download.c
+++ b/monkey/download.c
@@ -16,11 +16,13 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "desktop/browser.h"
-#include "monkey/browser.h"
+#include <stdio.h>
+
+#include "desktop/gui.h"
+#include "desktop/download.h"
#include "utils/ring.h"
-#include <stdio.h>
+#include "monkey/browser.h"
static uint32_t dwin_ctr = 0;
diff --git a/render/form.c b/render/form.c
index c9d74a1c2..905401a63 100644
--- a/render/form.c
+++ b/render/form.c
@@ -32,12 +32,11 @@
#include <stdio.h>
#include <string.h>
#include <dom/dom.h>
+
#include "content/fetch.h"
#include "content/hlcache.h"
#include "css/css.h"
#include "css/utils.h"
-#include "desktop/browser.h"
-#include "desktop/gui.h"
#include "desktop/mouse.h"
#include "desktop/knockout.h"
#include "desktop/plot_style.h"
diff --git a/render/search.c b/render/search.c
index 895cff0a1..46ec7d1fc 100644
--- a/render/search.c
+++ b/render/search.c
@@ -30,7 +30,6 @@
#include "content/content.h"
#include "content/hlcache.h"
-#include "desktop/gui.h"
#include "desktop/selection.h"
#include "render/box.h"
#include "render/html.h"
diff --git a/render/textplain.c b/render/textplain.c
index 5254e6aba..b459efc6c 100644
--- a/render/textplain.c
+++ b/render/textplain.c
@@ -35,7 +35,6 @@
#include "css/css.h"
#include "css/utils.h"
#include "desktop/browser.h"
-#include "desktop/gui.h"
#include "utils/nsoption.h"
#include "desktop/plotters.h"
#include "desktop/search.h"