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