/* * Web view scheme-specific methods * * 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 "schemes.h" static gboolean check_and_set_methods(MqWebView *web_view, MqWebViewScheme *scheme, MqWebViewSchemeMethods **methods, const gchar *uri, MqWebViewSchemeMethods *scheme_methods) { if (scheme_methods->match_uri(uri)) { if (*methods) { (*methods)->finalize(scheme); } scheme_methods->initialize(web_view, scheme, uri); *methods = scheme_methods; return TRUE; } else { return FALSE; } } void mq_web_view_scheme_set_methods(MqWebView *web_view, MqWebViewScheme *scheme, MqWebViewSchemeMethods **methods, const gchar *uri) { #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-value" check_and_set_methods(web_view, scheme, methods, uri, &mq_web_view_normal_scheme_methods) || check_and_set_methods(web_view, scheme, methods, uri, &mq_web_view_about_scheme_methods) || check_and_set_methods(web_view, scheme, methods, uri, &mq_web_view_view_source_scheme_methods); #pragma GCC diagnostic pop }