summaryrefslogtreecommitdiff
path: root/matecomponent/libmate-panel-applet/mate-panel-applet.h
diff options
context:
space:
mode:
Diffstat (limited to 'matecomponent/libmate-panel-applet/mate-panel-applet.h')
-rw-r--r--matecomponent/libmate-panel-applet/mate-panel-applet.h258
1 files changed, 258 insertions, 0 deletions
diff --git a/matecomponent/libmate-panel-applet/mate-panel-applet.h b/matecomponent/libmate-panel-applet/mate-panel-applet.h
new file mode 100644
index 00000000..28d9e89d
--- /dev/null
+++ b/matecomponent/libmate-panel-applet/mate-panel-applet.h
@@ -0,0 +1,258 @@
+/*
+ * 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>
+#include <matecomponent/matecomponent-control.h>
+#include <matecomponent/matecomponent-main.h>
+#include <matecomponent/matecomponent-ui-component.h>
+#include <matecomponent/matecomponent-generic-factory.h>
+
+#include <MATE_Panel.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef MATE_Vertigo_PanelOrient MatePanelAppletOrient;
+
+#define MATE_PANEL_APPLET_ORIENT_UP MATE_Vertigo_PANEL_ORIENT_UP
+#define MATE_PANEL_APPLET_ORIENT_DOWN MATE_Vertigo_PANEL_ORIENT_DOWN
+#define MATE_PANEL_APPLET_ORIENT_LEFT MATE_Vertigo_PANEL_ORIENT_LEFT
+#define MATE_PANEL_APPLET_ORIENT_RIGHT MATE_Vertigo_PANEL_ORIENT_RIGHT
+
+
+#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);
+
+MateComponentControl *mate_panel_applet_get_control (MatePanelApplet *applet);
+MateComponentUIComponent *mate_panel_applet_get_popup_component (MatePanelApplet *applet);
+
+void mate_panel_applet_setup_menu (MatePanelApplet *applet,
+ const gchar *xml,
+ const MateComponentUIVerb *verb_list,
+ gpointer user_data);
+
+void mate_panel_applet_setup_menu_from_file (MatePanelApplet *applet,
+ const gchar *opt_datadir,
+ const gchar *file,
+ const gchar *opt_app_name,
+ const MateComponentUIVerb *verb_list,
+ gpointer user_data);
+
+
+int mate_panel_applet_factory_main (const gchar *iid,
+ GType applet_type,
+ MatePanelAppletFactoryCallback callback,
+ gpointer data);
+
+int mate_panel_applet_factory_main_closure (const gchar *iid,
+ GType applet_type,
+ GClosure *closure);
+
+MateComponent_Unknown mate_panel_applet_shlib_factory (const char *iid,
+ GType applet_type,
+ PortableServer_POA poa,
+ gpointer impl_ptr,
+ MatePanelAppletFactoryCallback callback,
+ gpointer user_data,
+ CORBA_Environment *ev);
+
+MateComponent_Unknown mate_panel_applet_shlib_factory_closure (const char *iid,
+ GType applet_type,
+ PortableServer_POA poa,
+ gpointer impl_ptr,
+ GClosure *closure,
+ CORBA_Environment *ev);
+
+/*
+ * 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_MATECOMPONENT_FACTORY(iid, type, name, version, 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)); \
+ g_option_context_add_group (context, \
+ matecomponent_activation_get_goption_group ()); \
+ \
+ 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); \
+ if (!matecomponent_init (&argc, argv)) { \
+ g_printerr ("Cannot initialize matecomponent.\n"); \
+ return 1; \
+ } \
+ \
+ retval = mate_panel_applet_factory_main (iid, type, callback, data); \
+ g_option_context_free (context); \
+ \
+ return retval; \
+}
+
+#define MATE_PANEL_APPLET_MATECOMPONENT_SHLIB_FACTORY(iid, type, descr, callback, data) \
+static MateComponent_Unknown \
+__mate_panel_applet_shlib_factory (PortableServer_POA poa, \
+ const char *oafiid, \
+ gpointer impl_ptr, \
+ CORBA_Environment *ev) \
+{ \
+ _MATE_PANEL_APPLET_SETUP_GETTEXT (FALSE); \
+ return mate_panel_applet_shlib_factory ((iid), (type), poa, impl_ptr, \
+ (callback), (data), ev); \
+} \
+static MateComponentActivationPluginObject plugin_list[] = { \
+ { (iid), __mate_panel_applet_shlib_factory }, \
+ { NULL } \
+}; \
+const MateComponentActivationPlugin MateComponent_Plugin_info = { plugin_list, (descr) };
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MATE_PANEL_APPLET_H__ */