diff options
author | Patrick McDermott <pj@pehjota.net> | 2017-10-27 22:35:52 (EDT) |
---|---|---|
committer | Patrick McDermott <pj@pehjota.net> | 2017-10-27 22:35:52 (EDT) |
commit | 7860209930cc9d9cf617b7113aa18f01bc531226 (patch) | |
tree | 737e68421e091137de642ffb72c0b6709abc8c27 /src | |
parent | 33b7102d84a214164fce44f47886934627f2f01c (diff) | |
download | marquee-7860209930cc9d9cf617b7113aa18f01bc531226.zip marquee-7860209930cc9d9cf617b7113aa18f01bc531226.tar.gz marquee-7860209930cc9d9cf617b7113aa18f01bc531226.tar.bz2 |
mq_resource_response(): New function
Diffstat (limited to 'src')
-rw-r--r-- | src/local.mk | 1 | ||||
-rw-r--r-- | src/resources.c | 54 | ||||
-rw-r--r-- | src/resources.h | 28 |
3 files changed, 83 insertions, 0 deletions
diff --git a/src/local.mk b/src/local.mk index fa1f6ca..441adf0 100644 --- a/src/local.mk +++ b/src/local.mk @@ -6,6 +6,7 @@ marquee_SOURCES += \ %reldir%/html.c \ %reldir%/main.c \ %reldir%/notebook.c \ + %reldir%/resources.c \ %reldir%/tab-label.c \ %reldir%/tab-page.c \ %reldir%/tree.c \ diff --git a/src/resources.c b/src/resources.c new file mode 100644 index 0000000..77e1994 --- /dev/null +++ b/src/resources.c @@ -0,0 +1,54 @@ +/* + * Resource loading + * + * Copyright (C) 2017 Patrick McDermott + * + * This file is part of Marquee. + * + * Marquee 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, either version 3 of the License, or + * (at your option) any later version. + * + * Marquee 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 Marquee. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "resources.h" + +#include <glib.h> +#include <webkit2/webkit2.h> + +#include "application.h" + +void +mq_resource_response(MqApplication *application, const gchar *path, + WebKitURISchemeRequest *request) +{ + gchar *resource_path; + GFile *file; + GError *error; + GInputStream *stream; + + resource_path = g_build_filename( + mq_application_get_resources_dir(application), path, NULL); + file = g_file_new_for_path(resource_path); + g_free(resource_path); + + error = NULL; + stream = G_INPUT_STREAM(g_file_read(file, NULL, &error)); + if (!stream) { + stream = g_memory_input_stream_new_from_data( + g_strdup_printf("Failed to load resource " + "“%s”: %s", path, error->message), + -1, g_free); + g_error_free(error); + } + webkit_uri_scheme_request_finish(request, stream, -1, "text/html"); + g_object_unref(stream); +} diff --git a/src/resources.h b/src/resources.h new file mode 100644 index 0000000..4628140 --- /dev/null +++ b/src/resources.h @@ -0,0 +1,28 @@ +/* + * Resource loading + * + * Copyright (C) 2017 Patrick McDermott + * + * This file is part of Marquee. + * + * Marquee 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, either version 3 of the License, or + * (at your option) any later version. + * + * Marquee 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 Marquee. If not, see <http://www.gnu.org/licenses/>. + */ + +#include <webkit2/webkit2.h> + +#include "application.h" + +void +mq_resource_response(MqApplication *application, const gchar *path, + WebKitURISchemeRequest *request); |