1 /*
2  * Copyright (C) 2008-2010 Nick Schermer <nick@xfce.org>
3  *
4  * This library 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 library 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
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17  */
18 
19 #ifndef __LAUNCHER_H__
20 #define __LAUNCHER_H__
21 
22 #include <gtk/gtk.h>
23 #include <libxfce4panel/libxfce4panel.h>
24 
25 G_BEGIN_DECLS
26 
27 typedef struct _LauncherPluginClass LauncherPluginClass;
28 typedef struct _LauncherPlugin      LauncherPlugin;
29 typedef enum   _LauncherArrowType   LauncherArrowType;
30 
31 #define XFCE_TYPE_LAUNCHER_PLUGIN            (launcher_plugin_get_type ())
32 #define XFCE_LAUNCHER_PLUGIN(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFCE_TYPE_LAUNCHER_PLUGIN, LauncherPlugin))
33 #define XFCE_LAUNCHER_PLUGIN_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), XFCE_TYPE_LAUNCHER_PLUGIN, LauncherPluginClass))
34 #define XFCE_IS_LAUNCHER_PLUGIN(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFCE_TYPE_LAUNCHER_PLUGIN))
35 #define XFCE_IS_LAUNCHER_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFCE_TYPE_LAUNCHER_PLUGIN))
36 #define XFCE_LAUNCHER_PLUGIN_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), XFCE_TYPE_LAUNCHER_PLUGIN, LauncherPluginClass))
37 
38 enum _LauncherArrowType
39 {
40   LAUNCHER_ARROW_DEFAULT = 0,
41   LAUNCHER_ARROW_NORTH,
42   LAUNCHER_ARROW_WEST,
43   LAUNCHER_ARROW_EAST,
44   LAUNCHER_ARROW_SOUTH,
45   LAUNCHER_ARROW_INTERNAL
46 };
47 
48 GType       launcher_plugin_get_type         (void) G_GNUC_CONST;
49 
50 void        launcher_plugin_register_type    (XfcePanelTypeModule *type_module);
51 
52 GSList     *launcher_plugin_get_items        (LauncherPlugin      *plugin);
53 
54 gchar      *launcher_plugin_unique_filename  (LauncherPlugin      *plugin);
55 
56 GHashTable *launcher_plugin_garcon_menu_pool (void);
57 
58 gboolean    launcher_plugin_item_is_editable (LauncherPlugin      *plugin,
59                                               GarconMenuItem      *item,
60                                               gboolean            *can_delete);
61 
62 G_END_DECLS
63 
64 #endif /* !__LAUNCHER_H__ */
65