summaryrefslogtreecommitdiff
path: root/libmate-panel-applet/mate-panel-applet.h
diff options
context:
space:
mode:
Diffstat (limited to 'libmate-panel-applet/mate-panel-applet.h')
-rw-r--r--libmate-panel-applet/mate-panel-applet.h184
1 files changed, 184 insertions, 0 deletions
diff --git a/libmate-panel-applet/mate-panel-applet.h b/libmate-panel-applet/mate-panel-applet.h
new file mode 100644
index 00000000..8c75e29f
--- /dev/null
+++ b/libmate-panel-applet/mate-panel-applet.h
@@ -0,0 +1,184 @@
+/*
+ * mate-panel-applet.h: panel applet writing API.
+ *
+ * Copyright (C) 2001 Sun Microsystems, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *
+ * Authors:
+ * Mark McLoughlin <[email protected]>
+ */
+
+#ifndef __MATE_PANEL_APPLET_H__
+#define __MATE_PANEL_APPLET_H__
+
+#include <glib.h>
+#include <gtk/gtk.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+ MATE_PANEL_APPLET_ORIENT_UP,
+ MATE_PANEL_APPLET_ORIENT_DOWN,
+ MATE_PANEL_APPLET_ORIENT_LEFT,
+ MATE_PANEL_APPLET_ORIENT_RIGHT
+} MatePanelAppletOrient;
+
+#define PANEL_TYPE_APPLET (mate_panel_applet_get_type ())
+#define MATE_PANEL_APPLET(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), PANEL_TYPE_APPLET, MatePanelApplet))
+#define MATE_PANEL_APPLET_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), PANEL_TYPE_APPLET, MatePanelAppletClass))
+#define PANEL_IS_APPLET(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), PANEL_TYPE_APPLET))
+#define PANEL_IS_APPLET_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), PANEL_TYPE_APPLET))
+#define MATE_PANEL_APPLET_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), PANEL_TYPE_APPLET, MatePanelAppletClass))
+
+typedef enum {
+ PANEL_NO_BACKGROUND,
+ PANEL_COLOR_BACKGROUND,
+ PANEL_PIXMAP_BACKGROUND
+} MatePanelAppletBackgroundType;
+
+typedef enum {
+ MATE_PANEL_APPLET_FLAGS_NONE = 0,
+ MATE_PANEL_APPLET_EXPAND_MAJOR = 1 << 0,
+ MATE_PANEL_APPLET_EXPAND_MINOR = 1 << 1,
+ MATE_PANEL_APPLET_HAS_HANDLE = 1 << 2
+} MatePanelAppletFlags;
+
+typedef struct _MatePanelApplet MatePanelApplet;
+typedef struct _MatePanelAppletClass MatePanelAppletClass;
+typedef struct _MatePanelAppletPrivate MatePanelAppletPrivate;
+
+typedef gboolean (*MatePanelAppletFactoryCallback) (MatePanelApplet* applet, const gchar *iid, gpointer user_data);
+
+struct _MatePanelApplet {
+ GtkEventBox event_box;
+
+ MatePanelAppletPrivate* priv;
+};
+
+struct _MatePanelAppletClass {
+ GtkEventBoxClass event_box_class;
+
+ void (*change_orient) (MatePanelApplet* applet, MatePanelAppletOrient orient);
+
+ void (*change_size) (MatePanelApplet* applet, guint size);
+
+ void (*change_background) (MatePanelApplet* applet, MatePanelAppletBackgroundType type, GdkColor* color, GdkPixmap* pixmap);
+ void (*move_focus_out_of_applet) (MatePanelApplet* frame, GtkDirectionType direction);
+};
+
+GType mate_panel_applet_get_type(void) G_GNUC_CONST;
+
+GtkWidget* mate_panel_applet_new(void);
+
+MatePanelAppletOrient mate_panel_applet_get_orient(MatePanelApplet* applet);
+guint mate_panel_applet_get_size(MatePanelApplet* applet);
+MatePanelAppletBackgroundType mate_panel_applet_get_background(MatePanelApplet* applet, /* return values */ GdkColor* color, GdkPixmap** pixmap);
+
+void mate_panel_applet_set_background_widget(MatePanelApplet* applet, GtkWidget* widget);
+
+gchar* mate_panel_applet_get_preferences_key(MatePanelApplet* applet);
+
+void mate_panel_applet_add_preferences(MatePanelApplet* applet, const gchar* schema_dir, GError** opt_error);
+
+MatePanelAppletFlags mate_panel_applet_get_flags(MatePanelApplet* applet);
+void mate_panel_applet_set_flags(MatePanelApplet* applet, MatePanelAppletFlags flags);
+
+void mate_panel_applet_set_size_hints(MatePanelApplet* applet, const int* size_hints, int n_elements, int base_size);
+
+gboolean mate_panel_applet_get_locked_down(MatePanelApplet* applet);
+
+void mate_panel_applet_request_focus(MatePanelApplet* applet, guint32 timestamp);
+
+void mate_panel_applet_setup_menu(MatePanelApplet* applet, const gchar* xml, GtkActionGroup* action_group);
+void mate_panel_applet_setup_menu_from_file(MatePanelApplet* applet, const gchar* filename, GtkActionGroup* action_group);
+
+int mate_panel_applet_factory_main(const gchar* factory_id, gboolean out_process, GType applet_type, MatePanelAppletFactoryCallback callback, gpointer data);
+gboolean _mate_panel_applet_shlib_factory(void);
+
+
+/*
+ * These macros are getting a bit unwieldy.
+ *
+ * Things to define for these:
+ * + required if Native Language Support is enabled (ENABLE_NLS):
+ * GETTEXT_PACKAGE and MATELOCALEDIR
+ */
+
+#if !defined(ENABLE_NLS)
+ #define _MATE_PANEL_APPLET_SETUP_GETTEXT(call_textdomain) \
+ do { } while (0)
+#else /* defined(ENABLE_NLS) */
+ #include <libintl.h>
+ #define _MATE_PANEL_APPLET_SETUP_GETTEXT(call_textdomain) \
+ do { \
+ bindtextdomain (GETTEXT_PACKAGE, MATELOCALEDIR); \
+ bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); \
+ if (call_textdomain) \
+ textdomain (GETTEXT_PACKAGE); \
+ } while (0)
+#endif /* !defined(ENABLE_NLS) */
+
+#define MATE_PANEL_APPLET_OUT_PROCESS_FACTORY(id, type, name, callback, data) \
+int main(int argc, char* argv[]) \
+{ \
+ GOptionContext* context; \
+ GError* error; \
+ int retval; \
+ \
+ _MATE_PANEL_APPLET_SETUP_GETTEXT (TRUE); \
+ \
+ context = g_option_context_new(""); \
+ g_option_context_add_group (context, gtk_get_option_group(TRUE)); \
+ \
+ error = NULL; \
+ if (!g_option_context_parse (context, &argc, &argv, &error)) \
+ { \
+ if (error) \
+ { \
+ g_printerr ("Cannot parse arguments: %s.\n", error->message); \
+ g_error_free (error); \
+ } \
+ else \
+ { \
+ g_printerr ("Cannot parse arguments.\n"); \
+ } \
+ g_option_context_free (context); \
+ return 1; \
+ } \
+ \
+ gtk_init (&argc, &argv); \
+ \
+ retval = mate_panel_applet_factory_main (id, TRUE, type, callback, data); \
+ g_option_context_free (context); \
+ \
+ return retval; \
+}
+
+#define MATE_PANEL_APPLET_IN_PROCESS_FACTORY(id, type, descr, callback, data) \
+G_MODULE_EXPORT gint _mate_panel_applet_shlib_factory(void) \
+{ \
+ _MATE_PANEL_APPLET_SETUP_GETTEXT(FALSE); \
+ return mate_panel_applet_factory_main(id, FALSE, type, callback, data); \
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MATE_PANEL_APPLET_H__ */