summaryrefslogtreecommitdiff
path: root/monkey/main.c
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@netsurf-browser.org>2011-03-12 15:08:07 +0000
committerDaniel Silverstone <dsilvers@netsurf-browser.org>2011-03-12 15:08:07 +0000
commit7e85d15cb61229e9ba1b4a0f1f6c4ab19d436ac7 (patch)
tree11fdcefc8f297484d5729c3597082dcea5073d82 /monkey/main.c
parente406481623ce9c2ef4a66fea5ed8481ac31f0aa8 (diff)
downloadnetsurf-7e85d15cb61229e9ba1b4a0f1f6c4ab19d436ac7.tar.gz
netsurf-7e85d15cb61229e9ba1b4a0f1f6c4ab19d436ac7.tar.bz2
Add a deaf monkey frontend. TODO: Make it listen
svn path=/trunk/netsurf/; revision=11968
Diffstat (limited to 'monkey/main.c')
-rw-r--r--monkey/main.c120
1 files changed, 120 insertions, 0 deletions
diff --git a/monkey/main.c b/monkey/main.c
new file mode 100644
index 000000000..1da7e3608
--- /dev/null
+++ b/monkey/main.c
@@ -0,0 +1,120 @@
+/*
+ * Copyright 2011 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/>.
+ */
+
+#include <glib.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "monkey/filetype.h"
+#include "monkey/options.h"
+
+#include "content/urldb.h"
+#include "content/fetchers/resource.h"
+#include "desktop/gui.h"
+#include "desktop/netsurf.h"
+#include "desktop/sslcert.h"
+#include "utils/resource.h"
+#include "utils/url.h"
+
+char *default_stylesheet_url = NULL;
+char *quirks_stylesheet_url = NULL;
+char *adblock_stylesheet_url = NULL;
+
+static char **respaths; /** resource search path vector */
+
+/* Stolen from gtk/gui.c */
+static char **
+nsmonkey_init_resource(const char *resource_path)
+{
+ const gchar * const *langv;
+ char **pathv; /* resource path string vector */
+ char **respath; /* resource paths vector */
+
+ pathv = resource_path_to_strvec(resource_path);
+
+ langv = g_get_language_names();
+
+ respath = resource_generate(pathv, langv);
+
+ resource_free_strvec(pathv);
+
+ return respath;
+}
+
+void gui_quit(void)
+{
+ urldb_save_cookies(option_cookie_jar);
+ urldb_save(option_url_file);
+ sslcert_cleanup();
+ free(default_stylesheet_url);
+ free(quirks_stylesheet_url);
+ free(adblock_stylesheet_url);
+ free(option_cookie_file);
+ free(option_cookie_jar);
+ gtk_fetch_filetype_fin();
+}
+
+char* gui_find_resource(const char *filename)
+{
+ char buf[PATH_MAX];
+ return path_to_url(resource_sfind(respaths, buf, filename));
+}
+
+int
+main(int argc, char **argv)
+{
+ char *messages;
+ char *options;
+ char buf[PATH_MAX];
+
+ /* Unbuffer stdin/out/err */
+ setbuf(stdin, NULL);
+ setbuf(stdout, NULL);
+ setbuf(stderr, NULL);
+
+ /* Prep the search paths */
+ respaths = nsmonkey_init_resource("${HOME}/.netsurf/:${NETSURFRES}:"MONKEY_RESPATH":./monkey/res");
+
+ options = resource_find(respaths, "Choices");
+ messages = resource_find(respaths, "Messages");
+
+ netsurf_init(&argc, &argv, options, messages);
+
+ free(messages);
+ free(options);
+
+ resource_sfinddef(respaths, buf, "mime.types", "/etc/");
+ gtk_fetch_filetype_init(buf);
+
+ default_stylesheet_url = strdup("resource:gtkdefault.css");
+ quirks_stylesheet_url = strdup("resource:quirks.css");
+ adblock_stylesheet_url = strdup("resource:adblock.css");
+
+ urldb_load(option_url_file);
+ urldb_load_cookies(option_cookie_file);
+
+ sslcert_init("content.png");
+
+ browser_window_create("http://www.netsurf-browser.org/welcome/", 0, 0, true, false);
+
+ netsurf_main_loop();
+
+ netsurf_exit();
+
+ return 0;
+}