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