/* * Web view scheme-specific members and 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 . */ typedef union _MqWebViewScheme MqWebViewScheme; #ifndef MQ_WEB_VIEW_SCHEMES_H #define MQ_WEB_VIEW_SCHEMES_H #include #include #include "../web-view.h" G_BEGIN_DECLS typedef struct { WebKitHitTestResult *hit_test_result; GtkComboBox *save_type_combo_box; GFile *save_file; } MqWebViewNormalScheme; typedef struct { gint64 origin_tab_id; guchar *source; gchar *uri; } MqWebViewViewSourceScheme; union _MqWebViewScheme { MqWebViewNormalScheme normal; MqWebViewViewSourceScheme view_source; }; typedef struct { gchar * (*rewrite_uri) (MqWebViewScheme *, const gchar *); gchar * (*display_uri) (MqWebViewScheme *, const gchar *); gboolean (*context_menu)(MqWebView *, MqWebViewScheme *, WebKitContextMenu *, GdkEvent *, WebKitHitTestResult *); void (*save_file) (MqWebView *, MqWebViewScheme *); } MqWebViewSchemeMethods; extern MqWebViewSchemeMethods mq_web_view_normal_scheme_methods; extern MqWebViewSchemeMethods mq_web_view_view_source_scheme_methods; void mq_web_view_normal_scheme_init(MqWebViewNormalScheme *scheme); void mq_web_view_normal_scheme_fini(MqWebViewNormalScheme *scheme); void mq_web_view_view_source_scheme_init(MqWebViewViewSourceScheme *scheme); void mq_web_view_view_source_scheme_fini(MqWebViewViewSourceScheme *scheme); G_END_DECLS #endif /* MQ_WEB_VIEW_SCHEMES_H */