From ad3119cf41d508095950cf6d5c01aed94bc70695 Mon Sep 17 00:00:00 2001 From: Patrick McDermott Date: Wed, 01 Nov 2017 12:09:43 -0400 Subject: src/resources.[ch]: Move under src/utils/ --- (limited to 'src/utils') 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 . + */ + +#include "resources.h" + +#include +#include + +#include "../application.h" + +static const gchar *error_document = + "\n" + "\n" + "\n" + "\n" + "Resource Error\n" + "\n" + "\n" + "

Resource Error

\n" + "

Failed to load resource “%s”

\n" + "

%s

\n" + "\n" + "\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 . + */ + +#include + +#include "../application.h" + +void +mq_resource_response(MqApplication *application, const gchar *path, + WebKitURISchemeRequest *request); -- cgit v0.9.1