1 /*
2  * gedit-file-chooser-dialog.h
3  * This file is part of gedit
4  *
5  * Copyright (C) 2014 - Jesse van den Kieboom
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, see <http://www.gnu.org/licenses/>.
19  */
20 
21 #ifndef GEDIT_FILE_CHOOSER_DIALOG_H
22 #define GEDIT_FILE_CHOOSER_DIALOG_H
23 
24 #include <gtksourceview/gtksource.h>
25 
26 G_BEGIN_DECLS
27 
28 #define GEDIT_TYPE_FILE_CHOOSER_DIALOG (gedit_file_chooser_dialog_get_type ())
29 
30 G_DECLARE_INTERFACE (GeditFileChooserDialog, gedit_file_chooser_dialog,
31 		     GEDIT, FILE_CHOOSER_DIALOG,
32 		     GObject)
33 
34 struct _GeditFileChooserDialogInterface
35 {
36 	GTypeInterface g_iface;
37 
38 	/* Virtual public methods */
39 	void	(*set_encoding)		(GeditFileChooserDialog  *dialog,
40 					 const GtkSourceEncoding *encoding);
41 
42 	const GtkSourceEncoding *
43 		(*get_encoding)		(GeditFileChooserDialog *dialog);
44 
45 	void	(*set_newline_type)	(GeditFileChooserDialog  *dialog,
46 					 GtkSourceNewlineType     newline_type);
47 
48 	GtkSourceNewlineType
49 		(*get_newline_type)	(GeditFileChooserDialog *dialog);
50 
51 	void	(*set_current_folder)	(GeditFileChooserDialog *dialog,
52 					 GFile                  *folder);
53 
54 	void	(*set_current_name)	(GeditFileChooserDialog *dialog,
55 					 const gchar            *name);
56 
57 	void	(*set_file)		(GeditFileChooserDialog *dialog,
58 					 GFile                  *file);
59 
60 	GFile *	(*get_file)		(GeditFileChooserDialog *dialog);
61 
62 	void	(*set_do_overwrite_confirmation)
63 					(GeditFileChooserDialog *dialog,
64 					 gboolean                overwrite_confirmation);
65 
66 	void	(*show)			(GeditFileChooserDialog *dialog);
67 
68 	void    (*destroy)		(GeditFileChooserDialog *dialog);
69 
70 	void	(*set_modal)		(GeditFileChooserDialog *dialog,
71 					 gboolean                is_modal);
72 
73 	GtkWindow *
74 		(*get_window)		(GeditFileChooserDialog *dialog);
75 };
76 
77 GeditFileChooserDialog *
78 		gedit_file_chooser_dialog_create		(const gchar              *title,
79 								 GtkWindow                *parent,
80 								 const gchar              *accept_label,
81 								 const gchar              *cancel_label);
82 
83 void		 gedit_file_chooser_dialog_destroy		(GeditFileChooserDialog   *dialog);
84 
85 void		 gedit_file_chooser_dialog_set_encoding		(GeditFileChooserDialog   *dialog,
86 								 const GtkSourceEncoding  *encoding);
87 
88 const GtkSourceEncoding *
89 		 gedit_file_chooser_dialog_get_encoding		(GeditFileChooserDialog   *dialog);
90 
91 void		 gedit_file_chooser_dialog_set_newline_type	(GeditFileChooserDialog   *dialog,
92 								 GtkSourceNewlineType      newline_type);
93 
94 GtkSourceNewlineType
95 		 gedit_file_chooser_dialog_get_newline_type	(GeditFileChooserDialog   *dialog);
96 
97 void		 gedit_file_chooser_dialog_set_current_folder	(GeditFileChooserDialog   *dialog,
98 								 GFile                    *folder);
99 
100 void		 gedit_file_chooser_dialog_set_current_name	(GeditFileChooserDialog   *dialog,
101 								 const gchar              *name);
102 
103 void		 gedit_file_chooser_dialog_set_file		(GeditFileChooserDialog   *dialog,
104 								 GFile                    *file);
105 
106 GFile		*gedit_file_chooser_dialog_get_file		(GeditFileChooserDialog   *dialog);
107 
108 void		 gedit_file_chooser_dialog_set_do_overwrite_confirmation (
109 								 GeditFileChooserDialog   *dialog,
110 								 gboolean                  overwrite_confirmation);
111 
112 void		 gedit_file_chooser_dialog_show			(GeditFileChooserDialog   *dialog);
113 
114 void		 gedit_file_chooser_dialog_set_modal		(GeditFileChooserDialog   *dialog,
115 								 gboolean                  is_modal);
116 
117 GtkWindow	*gedit_file_chooser_dialog_get_window		(GeditFileChooserDialog   *dialog);
118 
119 G_END_DECLS
120 
121 #endif /* GEDIT_FILE_CHOOSER_DIALOG_H */
122 
123 /* ex:set ts=8 noet: */
124