From 7860209930cc9d9cf617b7113aa18f01bc531226 Mon Sep 17 00:00:00 2001 From: Patrick McDermott Date: Fri, 27 Oct 2017 22:35:52 -0400 Subject: mq_resource_response(): New function --- (limited to 'src') 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 . + */ + +#include "resources.h" + +#include +#include + +#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 . + */ + +#include + +#include "application.h" + +void +mq_resource_response(MqApplication *application, const gchar *path, + WebKitURISchemeRequest *request); -- cgit v0.9.1