1 /* GSequencer - Advanced GTK Sequencer
2  * Copyright (C) 2005-2020 Joël Krähemann
3  *
4  * This file is part of GSequencer.
5  *
6  * GSequencer is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * GSequencer is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with GSequencer.  If not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #ifndef __AGS_ONLINE_HELP_WINDOW_H__
21 #define __AGS_ONLINE_HELP_WINDOW_H__
22 
23 #include <glib.h>
24 #include <glib-object.h>
25 
26 #include <gtk/gtk.h>
27 
28 #include <ags/ags_api_config.h>
29 
30 #if defined(AGS_WITH_WEBKIT)
31 #include <webkit2/webkit2.h>
32 #endif
33 
34 #if defined(AGS_WITH_POPPLER)
35 #include <poppler.h>
36 #endif
37 
38 #include <ags/libags.h>
39 #include <ags/libags-audio.h>
40 
41 #include <ags/libags-gui.h>
42 
43 G_BEGIN_DECLS
44 
45 #define AGS_TYPE_ONLINE_HELP_WINDOW                (ags_online_help_window_get_type())
46 #define AGS_ONLINE_HELP_WINDOW(obj)                (G_TYPE_CHECK_INSTANCE_CAST((obj), AGS_TYPE_ONLINE_HELP_WINDOW, AgsOnlineHelpWindow))
47 #define AGS_ONLINE_HELP_WINDOW_CLASS(class)        (G_TYPE_CHECK_CLASS_CAST((class), AGS_TYPE_ONLINE_HELP_WINDOW, AgsOnlineHelpWindowClass))
48 #define AGS_IS_ONLINE_HELP_WINDOW(obj)             (G_TYPE_CHECK_INSTANCE_TYPE((obj), AGS_TYPE_ONLINE_HELP_WINDOW))
49 #define AGS_IS_ONLINE_HELP_WINDOW_CLASS(class)     (G_TYPE_CHECK_CLASS_TYPE((class), AGS_TYPE_ONLINE_HELP_WINDOW))
50 #define AGS_ONLINE_HELP_WINDOW_GET_CLASS(obj)      (G_TYPE_INSTANCE_GET_CLASS((obj), AGS_TYPE_ONLINE_HELP_WINDOW, AgsOnlineHelpWindowClass))
51 
52 typedef struct _AgsOnlineHelpWindow AgsOnlineHelpWindow;
53 typedef struct _AgsOnlineHelpWindowClass AgsOnlineHelpWindowClass;
54 
55 typedef enum{
56   AGS_ONLINE_HELP_WINDOW_CONNECTED     = 1,
57 }AgsOnlineHelpWindowFlags;
58 
59 struct _AgsOnlineHelpWindow
60 {
61   GtkWindow window;
62 
63   guint flags;
64 
65   GtkButton *home;
66 
67   GtkButton *next;
68   GtkButton *prev;
69 
70   GtkEntry *location;
71 
72   gchar *start_filename;
73 
74 #if defined(AGS_WITH_WEBKIT)
75   WebKitWebView *web_view;
76 #else
77   gpointer web_view;
78 #endif
79 
80   gint max_width;
81   gint max_height;
82 
83   GtkVScrollbar *pdf_vscrollbar;
84   GtkHScrollbar *pdf_hscrollbar;
85 
86   GtkWidget *pdf_drawing_area;
87 
88 #if defined(AGS_WITH_POPPLER)
89   PopplerDocument *pdf_document;
90 #else
91   gpointer pdf_document;
92 #endif
93 };
94 
95 struct _AgsOnlineHelpWindowClass
96 {
97   GtkWindowClass window;
98 };
99 
100 GType ags_online_help_window_get_type(void);
101 
102 AgsOnlineHelpWindow* ags_online_help_window_new();
103 
104 G_END_DECLS
105 
106 #endif /*__AGS_ONLINE_HELP_WINDOW_H__*/
107