/* * 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" #define 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); }