[Xfce4-commits] <xfce4-indicator-plugin:andrzejr/tmp3> Experiment with preferences dialog.
Andrzej
noreply at xfce.org
Sat Mar 31 20:08:02 CEST 2012
Updating branch refs/heads/andrzejr/tmp3
to 44ef2fa54ba164b9b434b01d82ca739b4b49a9ce (commit)
from 02a4e03020680a20333035397f49f99186941635 (commit)
commit 44ef2fa54ba164b9b434b01d82ca739b4b49a9ce
Author: Andrzej <ndrwrdck at gmail.com>
Date: Sun Apr 1 03:06:19 2012 +0900
Experiment with preferences dialog.
Added an XfceIndicatorDialog class based on GtkBuilder.
Added dependency on libxfce4ui (v.4.8 - not checked if earlier revisions
work)
The UI file (stub) was copied from the systray plugin.
configure.in.in | 1 +
panel-plugin/Makefile.am | 19 +++
panel-plugin/indicator-dialog.c | 172 ++++++++++++++++++++
panel-plugin/indicator-dialog.glade | 293 +++++++++++++++++++++++++++++++++++
panel-plugin/indicator-dialog.h | 43 +++++
panel-plugin/indicator.c | 26 +++-
panel-plugin/indicator.h | 8 +-
7 files changed, 558 insertions(+), 4 deletions(-)
diff --git a/configure.in.in b/configure.in.in
index b308dbd..e2bdeaf 100644
--- a/configure.in.in
+++ b/configure.in.in
@@ -74,6 +74,7 @@ dnl ***********************************
XDT_CHECK_PACKAGE([GTK], [gtk+-2.0], [2.14.0])
XDT_CHECK_PACKAGE([EXO], [exo-1], [0.6.0])
XDT_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0], [4.3.99.2])
+XDT_CHECK_PACKAGE([LIBXFCE4UI], [libxfce4ui-1], [4.8.0])
XDT_CHECK_PACKAGE([LIBXFCE4PANEL], [libxfce4panel-1.0], [4.3.99.2])
XDT_CHECK_PACKAGE([XFCONF], [libxfconf-0], [4.6.0])
XDT_CHECK_PACKAGE([INDICATOR], [indicator], [0.3.0], [indicator_pkgname=indicator], [XDT_CHECK_PACKAGE([INDICATOR], [indicator-0.4], [0.3.90], [indicator_pkgname=indicator-0.4], [])])
diff --git a/panel-plugin/Makefile.am b/panel-plugin/Makefile.am
index f0697e1..80c33f0 100644
--- a/panel-plugin/Makefile.am
+++ b/panel-plugin/Makefile.am
@@ -14,11 +14,17 @@ plugindir = \
plugin_LTLIBRARIES = \
libindicator-plugin.la
+libindicator_built_sources = \
+ indicator-dialog_ui.h
+
libindicator_plugin_la_SOURCES = \
+ $(libindicator_built_sources) \
indicator-button.c \
indicator-button.h \
indicator-box.c \
indicator-box.h \
+ indicator-dialog.c \
+ indicator-dialog.h \
indicator.c \
indicator.h
@@ -26,6 +32,7 @@ libindicator_plugin_la_CFLAGS = \
$(GTK_CFLAGS) \
$(EXO_CFLAGS) \
$(LIBXFCE4UTIL_CFLAGS) \
+ $(LIBXFCE4UI_CFLAGS) \
$(LIBXFCE4PANEL_CFLAGS) \
$(XFCONF_CFLAGS) \
$(INDICATOR_CFLAGS) \
@@ -45,6 +52,7 @@ libindicator_plugin_la_LIBADD = \
$(GTK_LIBS) \
$(EXO_LIBS) \
$(LIBXFCE4UTIL_LIBS) \
+ $(LIBXFCE4UI_LIBS) \
$(LIBXFCE4PANEL_LIBS) \
$(XFCONF_LIBS) \
$(INDICATOR_LIBS)
@@ -69,4 +77,15 @@ EXTRA_DIST = \
DISTCLEANFILES = \
$(desktop_DATA)
+if MAINTAINER_MODE
+BUILT_SOURCES = \
+ $(libindicator_built_sources)
+
+DISTCLEANFILES += \
+ $(libindicator_built_sources)
+
+indicator-dialog_ui.h: indicator-dialog.glade
+ $(AM_V_GEN) exo-csource --static --strip-comments --strip-content --name=indicator_dialog_ui $< >$@
+endif
+
# vi:set ts=8 sw=8 noet ai nocindent syntax=automake:
diff --git a/panel-plugin/indicator-dialog.c b/panel-plugin/indicator-dialog.c
new file mode 100644
index 0000000..0ad6c04
--- /dev/null
+++ b/panel-plugin/indicator-dialog.c
@@ -0,0 +1,172 @@
+/*
+ * Copyright (C) 2012 Andrzej <ndrwrdck at gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#include <libxfce4util/libxfce4util.h>
+#include <libxfce4ui/libxfce4ui.h>
+#include <xfconf/xfconf.h>
+#include <exo/exo.h>
+#include <libxfce4panel/xfce-panel-plugin.h>
+
+#include "indicator.h"
+#include "indicator-dialog.h"
+#include "indicator-dialog_ui.h"
+
+
+
+static void indicator_dialog_build (IndicatorDialog *dialog,
+ IndicatorPlugin *plugin);
+static void indicator_dialog_response (GtkWidget *window,
+ gint response_id,
+ IndicatorDialog *dialog);
+
+
+
+struct _IndicatorDialogClass
+{
+ GtkBuilderClass __parent__;
+};
+
+struct _IndicatorDialog
+{
+ GtkBuilder __parent__;
+
+ GObject *dialog;
+
+ XfconfChannel *channel;
+
+ IndicatorPlugin *plugin;
+
+ //GtkTreeSelection *selection;
+
+ //gulong bindings[4];
+ gulong property_watch_id;
+};
+
+
+
+G_DEFINE_TYPE (IndicatorDialog, indicator_dialog, GTK_TYPE_BUILDER)
+
+
+
+static void
+indicator_dialog_class_init (IndicatorDialogClass *klass)
+{
+}
+
+
+
+static void
+indicator_dialog_init (IndicatorDialog *dialog)
+{
+}
+
+
+
+
+static void
+indicator_dialog_build (IndicatorDialog *dialog,
+ IndicatorPlugin *plugin)
+{
+ GObject *object;
+ GError *error = NULL;
+
+ dialog->channel = xfconf_channel_get ("xfce4-panel");
+ dialog->plugin = plugin;
+
+ if (xfce_titled_dialog_get_type () == 0)
+ return;
+
+ /* load the builder data into the object */
+ if (gtk_builder_add_from_string (GTK_BUILDER (dialog), indicator_dialog_ui,
+ indicator_dialog_ui_length, &error))
+ {
+
+ dialog->dialog = gtk_builder_get_object (GTK_BUILDER (dialog), "dialog");
+ g_return_if_fail (XFCE_IS_TITLED_DIALOG (dialog->dialog));
+ g_signal_connect (G_OBJECT (dialog->dialog), "response",
+ G_CALLBACK (indicator_dialog_response), dialog);
+
+ object = gtk_builder_get_object (GTK_BUILDER (dialog), "size-max");
+ g_return_if_fail (GTK_IS_WIDGET (object));
+ exo_mutual_binding_new (G_OBJECT (indicator_get_buttonbox (plugin)), "icon-size-max",
+ G_OBJECT (object), "value");
+ }
+ else
+ {
+ g_critical ("Faild to construct the builder: %s.",
+ error->message);
+ g_error_free (error);
+ }
+}
+
+
+static void
+indicator_dialog_response (GtkWidget *window,
+ gint response_id,
+ IndicatorDialog *dialog)
+{
+ g_return_if_fail (GTK_IS_DIALOG (window));
+ g_return_if_fail (XFCE_IS_INDICATOR_DIALOG (dialog));
+
+ if (response_id == GTK_RESPONSE_HELP)
+ {
+ xfce_dialog_show_help (GTK_WINDOW (window), "xfce4-indicator", "dialog", NULL);
+ }
+ else
+ {
+ g_signal_handler_disconnect (dialog->channel, dialog->property_watch_id);
+
+ gtk_widget_destroy (window);
+
+ g_object_unref (G_OBJECT (dialog));
+ }
+}
+
+
+
+void
+indicator_dialog_show (GdkScreen *screen,
+ IndicatorPlugin *plugin)
+{
+ static IndicatorDialog *dialog = NULL;
+
+ g_return_if_fail (GDK_IS_SCREEN (screen));
+ g_return_if_fail (XFCE_IS_INDICATOR_PLUGIN (plugin));
+
+ if (dialog == NULL)
+ {
+ dialog = g_object_new (XFCE_TYPE_INDICATOR_DIALOG, NULL);
+ g_object_add_weak_pointer (G_OBJECT (dialog), (gpointer *) &dialog);
+ indicator_dialog_build (XFCE_INDICATOR_DIALOG (dialog), plugin);
+ gtk_widget_show (GTK_WIDGET (dialog->dialog));
+ }
+ else
+ {
+ gtk_window_present (GTK_WINDOW (dialog->dialog));
+ }
+
+ gtk_window_set_screen (GTK_WINDOW (dialog->dialog), screen);
+}
diff --git a/panel-plugin/indicator-dialog.glade b/panel-plugin/indicator-dialog.glade
new file mode 100644
index 0000000..7c715a4
--- /dev/null
+++ b/panel-plugin/indicator-dialog.glade
@@ -0,0 +1,293 @@
+<?xml version="1.0"?>
+<interface>
+ <requires lib="gtk+" version="2.14"/>
+ <!-- interface-requires libxfce4ui 0.0 -->
+ <!-- interface-naming-policy toplevel-contextual -->
+ <object class="GtkListStore" id="applications-store">
+ <columns>
+ <!-- column-name icon -->
+ <column type="GdkPixbuf"/>
+ <!-- column-name title -->
+ <column type="gchararray"/>
+ <!-- column-name hidden -->
+ <column type="gboolean"/>
+ <!-- column-name internal-name -->
+ <column type="gchararray"/>
+ </columns>
+ </object>
+ <object class="XfceTitledDialog" id="dialog">
+ <property name="title" translatable="yes">Indicators</property>
+ <property name="default_width">325</property>
+ <property name="default_height">425</property>
+ <property name="icon_name">gtk-properties</property>
+ <property name="type_hint">normal</property>
+ <child internal-child="vbox">
+ <object class="GtkVBox" id="dialog-vbox2">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child>
+ <object class="GtkVBox" id="vbox1">
+ <property name="visible">True</property>
+ <property name="border_width">6</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkFrame" id="frame3">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <object class="GtkAlignment" id="alignment3">
+ <property name="visible">True</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkVBox" id="vbox2">
+ <property name="visible">True</property>
+ <property name="border_width">6</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkHBox" id="hbox1">
+ <property name="visible">True</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="label2">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">_Maximum icon size (px):</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">size-max</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="size-max">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="adjustment">size-adjustment</property>
+ <property name="numeric">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="show-frame">
+ <property name="label" translatable="yes">Show _frame</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Appearance</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="frame1">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <object class="GtkAlignment" id="alignment1">
+ <property name="visible">True</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkVBox" id="vbox3">
+ <property name="visible">True</property>
+ <property name="border_width">6</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkScrolledWindow" id="scrolledwindow1">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">automatic</property>
+ <property name="vscrollbar_policy">automatic</property>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkTreeView" id="applications-treeview">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="model">applications-store</property>
+ <property name="headers_clickable">False</property>
+ <property name="rules_hint">True</property>
+ <property name="enable_search">False</property>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn1">
+ <property name="min_width">24</property>
+ <child>
+ <object class="GtkCellRendererPixbuf" id="cellrendererpixbuf1"/>
+ <attributes>
+ <attribute name="pixbuf">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn2">
+ <property name="title">Application</property>
+ <property name="expand">True</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext1"/>
+ <attributes>
+ <attribute name="text">1</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn3">
+ <property name="title">Hidden</property>
+ <child>
+ <object class="GtkCellRendererToggle" id="hidden-toggle"/>
+ <attributes>
+ <attribute name="active">2</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkHButtonBox" id="hbuttonbox1">
+ <property name="visible">True</property>
+ <property name="layout_style">start</property>
+ <child>
+ <object class="GtkButton" id="applications-clear">
+ <property name="label" translatable="yes">C_lear Known Applications</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="image">image1</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label3">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Known Applications</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child internal-child="action_area">
+ <object class="GtkHButtonBox" id="dialog-action_area2">
+ <property name="visible">True</property>
+ <property name="layout_style">end</property>
+ <child>
+ <object class="GtkButton" id="close-button">
+ <property name="label">gtk-close</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="help-button">
+ <property name="label">gtk-help</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ <property name="secondary">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="0">close-button</action-widget>
+ <action-widget response="0">help-button</action-widget>
+ </action-widgets>
+ </object>
+ <object class="GtkAdjustment" id="size-adjustment">
+ <property name="value">32</property>
+ <property name="lower">12</property>
+ <property name="upper">64</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">2</property>
+ </object>
+ <object class="GtkImage" id="image1">
+ <property name="visible">True</property>
+ <property name="stock">gtk-clear</property>
+ </object>
+</interface>
diff --git a/panel-plugin/indicator-dialog.h b/panel-plugin/indicator-dialog.h
new file mode 100644
index 0000000..fe6cf04
--- /dev/null
+++ b/panel-plugin/indicator-dialog.h
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2012 Andrzej <ndrwrdck at gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __INDICATOR_DIALOG_H__
+#define __INDICATOR_DIALOG_H__
+
+#include <gtk/gtk.h>
+
+G_BEGIN_DECLS
+
+typedef struct _IndicatorDialogClass IndicatorDialogClass;
+typedef struct _IndicatorDialog IndicatorDialog;
+
+#define XFCE_TYPE_INDICATOR_DIALOG (indicator_dialog_get_type ())
+#define XFCE_INDICATOR_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFCE_TYPE_INDICATOR_DIALOG, IndicatorDialog))
+#define XFCE_INDICATOR_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFCE_TYPE_INDICATOR_DIALOG, IndicatorDialogClass))
+#define XFCE_IS_INDICATOR_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFCE_TYPE_INDICATOR_DIALOG))
+#define XFCE_IS_INDICATOR_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFCE_TYPE_INDICATOR_DIALOG))
+#define XFCE_INDICATOR_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFCE_TYPE_INDICATOR_DIALOG, IndicatorDialogClass))
+
+GType indicator_dialog_get_type (void) G_GNUC_CONST;
+
+void indicator_dialog_show (GdkScreen *screen,
+ IndicatorPlugin *plugin);
+
+G_END_DECLS
+
+#endif /* !__INDICATOR_DIALOG_H__ */
diff --git a/panel-plugin/indicator.c b/panel-plugin/indicator.c
index ff1bd29..c51603e 100644
--- a/panel-plugin/indicator.c
+++ b/panel-plugin/indicator.c
@@ -31,6 +31,7 @@
#include "indicator.h"
#include "indicator-box.h"
#include "indicator-button.h"
+#include "indicator-dialog.h"
#define DEFAULT_EXCLUDED_MODULES NULL
@@ -45,6 +46,7 @@ static void indicator_construct (XfcePanelPlu
static void indicator_free (XfcePanelPlugin *plugin);
static gboolean load_module (const gchar *name,
IndicatorPlugin *indicator);
+static void indicator_configure_plugin (XfcePanelPlugin *plugin);
static gboolean indicator_size_changed (XfcePanelPlugin *plugin,
gint size);
#ifdef HAS_PANEL_49
@@ -150,7 +152,7 @@ indicator_class_init (IndicatorPluginClass *klass)
plugin_class->construct = indicator_construct;
plugin_class->free_data = indicator_free;
plugin_class->size_changed = indicator_size_changed;
- //plugin_class->configure_plugin = indicator_configure_plugin;
+ plugin_class->configure_plugin = indicator_configure_plugin;
#ifdef HAS_PANEL_49
plugin_class->mode_changed = indicator_mode_changed;
#else
@@ -251,6 +253,17 @@ indicator_free (XfcePanelPlugin *plugin)
+static void
+indicator_configure_plugin (XfcePanelPlugin *plugin)
+{
+ g_return_if_fail (XFCE_IS_INDICATOR_PLUGIN (plugin));
+
+ indicator_dialog_show (gtk_widget_get_screen (GTK_WIDGET (plugin)), XFCE_INDICATOR_PLUGIN (plugin));
+}
+
+
+
+
#ifdef HAS_PANEL_49
static void
indicator_mode_changed (XfcePanelPlugin *plugin,
@@ -337,6 +350,8 @@ indicator_construct (XfcePanelPlugin *plugin)
{
IndicatorPlugin *indicator = XFCE_INDICATOR_PLUGIN (plugin);
+ xfce_panel_plugin_menu_show_configure (plugin);
+
//consider moving some stuff from indicator_init() here
}
@@ -431,3 +446,12 @@ load_module (const gchar * name, IndicatorPlugin * indicator)
return TRUE;
}
+
+
+XfceIndicatorBox *
+indicator_get_buttonbox (IndicatorPlugin *plugin)
+{
+ g_return_val_if_fail (XFCE_IS_INDICATOR_PLUGIN (plugin), NULL);
+
+ return plugin->buttonbox;
+}
diff --git a/panel-plugin/indicator.h b/panel-plugin/indicator.h
index b59c963..dfe2b47 100644
--- a/panel-plugin/indicator.h
+++ b/panel-plugin/indicator.h
@@ -21,6 +21,7 @@
#include <glib.h>
#include <gtk/gtk.h>
#include <libxfce4panel/libxfce4panel.h>
+#include "indicator-box.h"
G_BEGIN_DECLS
typedef struct _IndicatorPluginClass IndicatorPluginClass;
@@ -41,9 +42,10 @@ void indicator_register_type (XfcePanelTypeModule *type_module);
#define INDICATOR_OBJECT_SIGNAL_ENTRY_SCROLLED "scroll-entry"
#endif
-void
-indicator_save (XfcePanelPlugin *plugin,
- IndicatorPlugin *indicator);
+void indicator_save (XfcePanelPlugin *plugin,
+ IndicatorPlugin *indicator);
+
+XfceIndicatorBox *indicator_get_buttonbox (IndicatorPlugin *plugin);
G_END_DECLS
More information about the Xfce4-commits
mailing list