1 /*
2  * Nautilus-Actions
3  * A Nautilus extension which offers configurable context menu actions.
4  *
5  * Copyright (C) 2005 The GNOME Foundation
6  * Copyright (C) 2006-2008 Frederic Ruaudel and others (see AUTHORS)
7  * Copyright (C) 2009-2014 Pierre Wieser and others (see AUTHORS)
8  *
9  * Nautilus-Actions is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU General Public License as
11  * published by the Free Software Foundation; either version 2 of
12  * the License, or (at your option) any later version.
13  *
14  * Nautilus-Actions is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17  * General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with Nautilus-Actions; see the file COPYING. If not, see
21  * <http://www.gnu.org/licenses/>.
22  *
23  * Authors:
24  *   Frederic Ruaudel <grumz@grumz.net>
25  *   Rodrigo Moya <rodrigo@gnome-db.org>
26  *   Pierre Wieser <pwieser@trychlos.org>
27  *   ... and many others (see AUTHORS)
28  */
29 
30 #ifndef __NADP_DESKTOP_FILE_H__
31 #define __NADP_DESKTOP_FILE_H__
32 
33 /**
34  * SECTION: nadp_desktop_file
35  * @short_description: #NadpDesktopFile class definition.
36  * @include: nadp-desktop-file.h
37  *
38  * This class encapŝulates the EggDesktopFile structure, adding some
39  * private properties. An instance of this class is associated with
40  * every #NAObjectItem for this provider.
41  */
42 
43 #include <glib-object.h>
44 
45 G_BEGIN_DECLS
46 
47 #define NADP_TYPE_DESKTOP_FILE                ( nadp_desktop_file_get_type())
48 #define NADP_DESKTOP_FILE( object )           ( G_TYPE_CHECK_INSTANCE_CAST( object, NADP_TYPE_DESKTOP_FILE, NadpDesktopFile ))
49 #define NADP_DESKTOP_FILE_CLASS( klass )      ( G_TYPE_CHECK_CLASS_CAST( klass, NADP_TYPE_DESKTOP_FILE, NadpDesktopFileClass ))
50 #define NADP_IS_DESKTOP_FILE( object )        ( G_TYPE_CHECK_INSTANCE_TYPE( object, NADP_TYPE_DESKTOP_FILE ))
51 #define NADP_IS_DESKTOP_FILE_CLASS( klass )   ( G_TYPE_CHECK_CLASS_TYPE(( klass ), NADP_TYPE_DESKTOP_FILE ))
52 #define NADP_DESKTOP_FILE_GET_CLASS( object ) ( G_TYPE_INSTANCE_GET_CLASS(( object ), NADP_TYPE_DESKTOP_FILE, NadpDesktopFileClass ))
53 
54 typedef struct _NadpDesktopFilePrivate        NadpDesktopFilePrivate;
55 
56 typedef struct {
57 	/*< private >*/
58 	GObject                 parent;
59 	NadpDesktopFilePrivate *private;
60 }
61 	NadpDesktopFile;
62 
63 typedef struct _NadpDesktopFileClassPrivate   NadpDesktopFileClassPrivate;
64 
65 typedef struct {
66 	/*< private >*/
67 	GObjectClass                 parent;
68 	NadpDesktopFileClassPrivate *private;
69 }
70 	NadpDesktopFileClass;
71 
72 /* standard suffix for desktop files
73  */
74 #define NADP_DESKTOP_FILE_SUFFIX		".desktop"
75 
76 GType            nadp_desktop_file_get_type         ( void );
77 
78 NadpDesktopFile *nadp_desktop_file_new              ( void );
79 NadpDesktopFile *nadp_desktop_file_new_from_path    ( const gchar *path );
80 NadpDesktopFile *nadp_desktop_file_new_from_uri     ( const gchar *uri );
81 NadpDesktopFile *nadp_desktop_file_new_for_write    ( const gchar *path );
82 
83 GKeyFile        *nadp_desktop_file_get_key_file     ( const NadpDesktopFile *ndf );
84 gchar           *nadp_desktop_file_get_key_file_uri ( const NadpDesktopFile *ndf );
85 gboolean         nadp_desktop_file_write            ( NadpDesktopFile *ndf );
86 
87 gchar           *nadp_desktop_file_get_file_type    ( const NadpDesktopFile *ndf );
88 gchar           *nadp_desktop_file_get_id           ( const NadpDesktopFile *ndf );
89 GSList          *nadp_desktop_file_get_profiles     ( const NadpDesktopFile *ndf );
90 
91 gboolean         nadp_desktop_file_has_profile      ( const NadpDesktopFile *ndf, const gchar *profile_id );
92 
93 void             nadp_desktop_file_remove_key       ( const NadpDesktopFile *ndf, const gchar *group, const gchar *key );
94 void             nadp_desktop_file_remove_profile   ( const NadpDesktopFile *ndf, const gchar *profile_id );
95 
96 gboolean         nadp_desktop_file_get_boolean      ( const NadpDesktopFile *ndf, const gchar *group, const gchar *key, gboolean *key_found, gboolean default_value );
97 gchar           *nadp_desktop_file_get_locale_string( const NadpDesktopFile *ndf, const gchar *group, const gchar *key, gboolean *key_found, const gchar *default_value );
98 gchar           *nadp_desktop_file_get_string       ( const NadpDesktopFile *ndf, const gchar *group, const gchar *key, gboolean *key_found, const gchar *default_value );
99 GSList          *nadp_desktop_file_get_string_list  ( const NadpDesktopFile *ndf, const gchar *group, const gchar *key, gboolean *key_found, const gchar *default_value );
100 guint            nadp_desktop_file_get_uint         ( const NadpDesktopFile *ndf, const gchar *group, const gchar *key, gboolean *key_found, guint default_value );
101 
102 void             nadp_desktop_file_set_boolean      ( const NadpDesktopFile *ndf, const gchar *group, const gchar *key, gboolean value );
103 void             nadp_desktop_file_set_locale_string( const NadpDesktopFile *ndf, const gchar *group, const gchar *key, const gchar *value );
104 void             nadp_desktop_file_set_string       ( const NadpDesktopFile *ndf, const gchar *group, const gchar *key, const gchar *value );
105 void             nadp_desktop_file_set_string_list  ( const NadpDesktopFile *ndf, const gchar *group, const gchar *key, GSList *value );
106 void             nadp_desktop_file_set_uint         ( const NadpDesktopFile *ndf, const gchar *group, const gchar *key, guint value );
107 
108 G_END_DECLS
109 
110 #endif /* __NADP_DESKTOP_FILE_H__ */
111