diff options
author | Patrick McDermott <pj@pehjota.net> | 2017-11-01 12:09:43 (EDT) |
---|---|---|
committer | Patrick McDermott <pj@pehjota.net> | 2017-11-01 12:12:36 (EDT) |
commit | ad3119cf41d508095950cf6d5c01aed94bc70695 (patch) | |
tree | a12bdd751c1b262c4f45276a82ca46e3934ad1eb /src/utils | |
parent | da89b824d7d05edf1f2e27a63bbbce2a1d3a333a (diff) | |
download | marquee-ad3119cf41d508095950cf6d5c01aed94bc70695.zip marquee-ad3119cf41d508095950cf6d5c01aed94bc70695.tar.gz marquee-ad3119cf41d508095950cf6d5c01aed94bc70695.tar.bz2 |
src/resources.[ch]: Move under src/utils/
Diffstat (limited to 'src/utils')
-rw-r--r-- | src/utils/resources.c | 69 | ||||
-rw-r--r-- | src/utils/resources.h | 28 |
2 files changed, 97 insertions, 0 deletions
diff --git a/src/utils/resources.c b/src/utils/resources.c new file mode 100644 index 0000000..7272cec --- /dev/null +++ b/src/utils/resources.c @@ -0,0 +1,69 @@ +/* + * 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" + +static const gchar *error_document = + "<!doctype html>\n" + "<html dir=\"%s\">\n" + "<head>\n" + "<meta charset=\"utf-8\">\n" + "<title>Resource Error</title>\n" + "</head>\n" + "<body>\n" + "<h1>Resource Error</h1>\n" + "<p>Failed to load resource “%s”</p>\n" + "<p>%s</p>\n" + "</body>\n" + "</html>\n"; + +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(error_document, + gtk_widget_get_default_direction() == + GTK_TEXT_DIR_RTL ? "rtl" : "ltr", + 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/utils/resources.h b/src/utils/resources.h new file mode 100644 index 0000000..e545dc1 --- /dev/null +++ b/src/utils/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); |