1 /*-
2  * Copyright (c) 2003-2006 Benedikt Meurer <benny@xfce.org>.
3  *
4  * This program is free software; you can redistribute it and/or modify it
5  * under the terms of the GNU General Public License as published by the Free
6  * Software Foundation; either version 2 of the License, or (at your option)
7  * any later version.
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
12  * more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public License
15  * along with this library; if not, write to the Free Software Foundation,
16  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17  */
18 
19 #ifndef __XFCE_MIME_HELPER_H__
20 #define __XFCE_MIME_HELPER_H__
21 
22 #include <exo/exo.h>
23 
24 G_BEGIN_DECLS
25 
26 typedef enum /*< enum,prefix=XFCE_MIME_HELPER >*/
27 {
28   XFCE_MIME_HELPER_WEBBROWSER,        /*< nick=WebBrowser >*/
29   XFCE_MIME_HELPER_MAILREADER,        /*< nick=MailReader >*/
30   XFCE_MIME_HELPER_FILEMANAGER,       /*< nick=FileManager >*/
31   XFCE_MIME_HELPER_TERMINALEMULATOR,  /*< nick=TerminalEmulator >*/
32   XFCE_MIME_HELPER_N_CATEGORIES,      /*< skip >*/
33 } XfceMimeHelperCategory;
34 
35 typedef struct _XfceMimeHelperClass XfceMimeHelperClass;
36 typedef struct _XfceMimeHelper      XfceMimeHelper;
37 
38 #define XFCE_MIME_TYPE_HELPER            (xfce_mime_helper_get_type ())
39 #define XFCE_MIME_HELPER(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFCE_MIME_TYPE_HELPER, XfceMimeHelper))
40 #define XFCE_MIME_HELPER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), XFCE_MIME_TYPE_HELPER, XfceMimeHelperClass))
41 #define XFCE_MIME_IS_HELPER(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFCE_MIME_TYPE_HELPER))
42 #define XFCE_MIME_IS_HELPER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFCE_MIME_TYPE_HELPER))
43 #define XFCE_MIME_HELPER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), XFCE_MIME_TYPE_HELPER, XfceMimeHelperClass))
44 
45 GType              xfce_mime_helper_get_type      (void) G_GNUC_CONST;
46 XfceMimeHelperCategory  xfce_mime_helper_get_category  (const XfceMimeHelper   *helper);
47 const gchar       *xfce_mime_helper_get_id        (const XfceMimeHelper   *helper);
48 const gchar       *xfce_mime_helper_get_name      (const XfceMimeHelper   *helper);
49 const gchar       *xfce_mime_helper_get_icon      (const XfceMimeHelper   *helper);
50 const gchar       *xfce_mime_helper_get_command   (const XfceMimeHelper   *helper);
51 gboolean           xfce_mime_helper_execute       (XfceMimeHelper         *helper,
52                                              GdkScreen         *screen,
53                                              const gchar       *parameter,
54                                              GError           **error);
55 
56 
57 #define XFCE_MIME_TYPE_HELPER_DATABASE             (xfce_mime_helper_database_get_type ())
58 #define XFCE_MIME_HELPER_DATABASE(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFCE_MIME_TYPE_HELPER_DATABASE, XfceMimeHelperDatabase))
59 #define XFCE_MIME_HELPER_DATABASE_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST ((klass), XFCE_MIME_TYPE_HELPER_DATABASE, XfceMimeHelperDatabaseClass))
60 #define XFCE_MIME_IS_HELPER_DATABASE(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFCE_MIME_TYPE_HELPER_DATABASE))
61 #define XFCE_MIME_IS_HELPER_DATABASE_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((klass), XFCE_MIME_TYPE_HELPER_DATABASE))
62 #define XFCE_MIME_HELPER_DATABASE_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS ((obj), XFCE_MIME_TYPE_HELPER_DATABASE, XfceMimeHelperDatabaseClass))
63 
64 typedef struct _XfceMimeHelperDatabaseClass XfceMimeHelperDatabaseClass;
65 typedef struct _XfceMimeHelperDatabase      XfceMimeHelperDatabase;
66 
67 GType               xfce_mime_helper_database_get_type        (void) G_GNUC_CONST;
68 XfceMimeHelperDatabase  *xfce_mime_helper_database_get             (void);
69 XfceMimeHelper          *xfce_mime_helper_database_get_default     (XfceMimeHelperDatabase *database,
70                                                          XfceMimeHelperCategory  category);
71 gboolean            xfce_mime_helper_database_set_default     (XfceMimeHelperDatabase *database,
72                                                          XfceMimeHelperCategory  category,
73                                                          XfceMimeHelper         *helper,
74                                                          GError           **error);
75 gboolean            xfce_mime_helper_database_clear_default   (XfceMimeHelperDatabase *database,
76                                                          XfceMimeHelperCategory  category,
77                                                          GError           **error);
78 GList              *xfce_mime_helper_database_get_all         (XfceMimeHelperDatabase *database,
79                                                          XfceMimeHelperCategory  category);
80 XfceMimeHelper          *xfce_mime_helper_database_get_custom      (XfceMimeHelperDatabase *database,
81                                                          XfceMimeHelperCategory  category);
82 void                xfce_mime_helper_database_set_custom      (XfceMimeHelperDatabase *database,
83                                                          XfceMimeHelperCategory  category,
84                                                          const gchar       *command);
85 gboolean            xfce_mime_helper_database_get_dismissed   (XfceMimeHelperDatabase *database,
86                                                          XfceMimeHelperCategory  category);
87 gboolean            xfce_mime_helper_database_set_dismissed   (XfceMimeHelperDatabase *database,
88                                                          XfceMimeHelperCategory  category,
89                                                          gboolean           dismissed);
90 
91 G_END_DECLS
92 
93 #endif /* !__XFCE_MIME_HELPER_H__ */
94