From c51ef797a707f4e2c6f9688d4378f2b0e9898a66 Mon Sep 17 00:00:00 2001 From: Perberos Date: Thu, 1 Dec 2011 22:56:10 -0300 Subject: moving from https://github.com/perberos/mate-desktop-environment --- mate-panel/applet.h | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 mate-panel/applet.h (limited to 'mate-panel/applet.h') diff --git a/mate-panel/applet.h b/mate-panel/applet.h new file mode 100644 index 00000000..531e7e20 --- /dev/null +++ b/mate-panel/applet.h @@ -0,0 +1,119 @@ +#ifndef APPLET_H +#define APPLET_H + +#include +#include +#include "panel-widget.h" +#include "panel-mateconf.h" +#include "panel-enums.h" + +#ifdef __cplusplus +extern "C" { +#endif + + +#define APPLET_EVENT_MASK (GDK_BUTTON_PRESS_MASK | \ + GDK_BUTTON_RELEASE_MASK | \ + GDK_POINTER_MOTION_MASK | \ + GDK_POINTER_MOTION_HINT_MASK) +typedef struct { + PanelObjectType type; + GtkWidget *widget; + + GtkWidget *menu; + GtkWidget *move_item; + GList *user_menu; + + gpointer data; + GDestroyNotify data_destroy; + + char *id; +} AppletInfo; + +typedef gboolean (* CallbackEnabledFunc) (void); + +typedef struct { + char *name; + char *stock_item; + char *text; + + CallbackEnabledFunc is_enabled_func; + + int sensitive; + AppletInfo *info; + + GtkWidget *menuitem; + GtkWidget *submenu; +} AppletUserMenu; + +AppletInfo *mate_panel_applet_register (GtkWidget *applet, + gpointer data, + GDestroyNotify data_destroy, + PanelWidget *panel, + gboolean locked, + gint pos, + gboolean exactpos, + PanelObjectType type, + const char *id); +void mate_panel_applet_stop_loading (const char *id); + +const char *mate_panel_applet_get_id (AppletInfo *info); +const char *mate_panel_applet_get_id_by_widget (GtkWidget *widget); +AppletInfo *mate_panel_applet_get_by_id (const char *id); +AppletInfo *mate_panel_applet_get_by_type (PanelObjectType object_type, GdkScreen *screen); + +GSList *mate_panel_applet_list_applets (void); + +void mate_panel_applet_clean (AppletInfo *info); + +void mate_panel_applet_queue_applet_to_load (const char *id, + PanelObjectType type, + const char *toplevel_id, + int position, + gboolean right_stick, + gboolean locked); +void mate_panel_applet_load_queued_applets (gboolean initial_load); +gboolean mate_panel_applet_on_load_queue (const char *id); + + +void mate_panel_applet_add_callback (AppletInfo *info, + const gchar *callback_name, + const gchar *stock_item, + const gchar *menuitem_text, + CallbackEnabledFunc is_enabled_func); + +AppletUserMenu *mate_panel_applet_get_callback (GList *user_menu, + const gchar *name); + + +void mate_panel_applet_save_position (AppletInfo *applet_info, + const char *id, + gboolean immediate); + +int mate_panel_applet_get_position (AppletInfo *applet); + +/* True if all the keys relevant to moving are writable + (position, toplevel_id, panel_right_stick) */ +gboolean mate_panel_applet_can_freely_move (AppletInfo *applet); + +/* True if the locked flag is writable */ +gboolean mate_panel_applet_lockable (AppletInfo *applet); + +GtkWidget *mate_panel_applet_create_menu (AppletInfo *info); + +void mate_panel_applet_menu_set_recurse (GtkMenu *menu, + const gchar *key, + gpointer data); + +gboolean mate_panel_applet_toggle_locked (AppletInfo *info); + +void mate_panel_applet_position_menu (GtkMenu *menu, + int *x, + int *y, + gboolean *push_in, + GtkWidget *applet); +#ifdef __cplusplus +} +#endif + +#endif -- cgit v1.2.1