[Xfce4-commits] <xfce4-panel:devel> Add the alias code to libxfce4panel.

Nick Schermer noreply at xfce.org
Sat Oct 24 14:26:04 CEST 2009


Updating branch refs/heads/devel
         to 1ae9357518521f97fab52d2097a912bf8f47c3fe (commit)
       from c8935733b5e182d84ff316bb211a7bc9bbd3758b (commit)

commit 1ae9357518521f97fab52d2097a912bf8f47c3fe
Author: Nick Schermer <nick at xfce.org>
Date:   Sat Oct 24 14:24:00 2009 +0200

    Add the alias code to libxfce4panel.

 configure.in.in                            |   58 +++++++++--
 libxfce4panel/Makefile.am                  |   27 +++++-
 libxfce4panel/abicheck.sh                  |   23 ++++
 libxfce4panel/libxfce4panel.symbols        |  128 +++++++++++++++++++++++
 libxfce4panel/make-libxfce4panel-alias.pl  |  154 ++++++++++++++++++++++++++++
 libxfce4panel/xfce-arrow-button.c          |   10 ++-
 libxfce4panel/xfce-hvbox.c                 |   10 ++-
 libxfce4panel/xfce-panel-convenience.c     |    9 ++-
 libxfce4panel/xfce-panel-image.c           |    9 ++-
 libxfce4panel/xfce-panel-plugin-provider.c |    9 ++-
 libxfce4panel/xfce-panel-plugin.c          |   11 ++-
 libxfce4panel/xfce-panel-plugin.h          |    1 +
 12 files changed, 427 insertions(+), 22 deletions(-)

diff --git a/configure.in.in b/configure.in.in
index 06e78e7..31ee704 100644
--- a/configure.in.in
+++ b/configure.in.in
@@ -19,9 +19,9 @@ m4_define([xfce4_panel_version_tag],   [git])
 m4_define([xfce4_panel_version], [xfce4_panel_version_major().xfce4_panel_version_minor().xfce4_panel_version_micro()ifelse(xfce4_panel_version_nano(), [], [], [.xfce4_panel_version_nano()])ifelse(xfce4_panel_version_tag(), [git], [xfce4_panel_version_tag()-xfce4_panel_version_build()], [xfce4_panel_version_tag()])])
 
 dnl *******************************************
-dnl *** Debugging support for SVN snapshots ***
+dnl *** Debugging support for GIT snapshots ***
 dnl *******************************************
-m4_define([panel_debug_default], [ifelse(xfce4_panel_version_tag(), [svn], [yes], [minimum])])
+m4_define([panel_debug_default], [ifelse(xfce4_panel_version_tag(), [git], [yes], [minimum])])
 
 dnl ***************************
 dnl *** Initialize autoconf ***
@@ -63,6 +63,7 @@ dnl *** Initialize libtool ***
 dnl **************************
 AC_DISABLE_STATIC()
 AC_PROG_LIBTOOL()
+AC_CHECK_PROGS([PERL], [perl5 perl])
 
 dnl **************************************
 dnl *** Substitute version information ***
@@ -108,15 +109,6 @@ dnl *** Check for gtk-doc ***
 dnl *************************
 GTK_DOC_CHECK([1.0])
 
-dnl *********************************************************
-dnl *** Disable deprecated components and single includes ***
-dnl *********************************************************
-dnl #PLATFORM_CPPFLAGS="$PLATFORM_CPPFLAGS -DXFCE_DISABLE_DEPRECATED"
-dnl #PLATFORM_CPPFLAGS="$PLATFORM_CPPFLAGS -DG_DISABLE_DEPRECATED -DG_DISABLE_SINGLE_INCLUDES"
-dnl #PLATFORM_CPPFLAGS="$PLATFORM_CPPFLAGS -DGTK_DISABLE_DEPRECATED -DGTK_DISABLE_SINGLE_INCLUDES"
-dnl #PLATFORM_CPPFLAGS="$PLATFORM_CPPFLAGS -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_SINGLE_INCLUDES"
-dnl #PLATFORM_CPPFLAGS="$PLATFORM_CPPFLAGS -DPANGO_DISABLE_DEPRECATED -DPANGO_DISABLE_SINGLE_INCLUDES"
-
 dnl ***********************************
 dnl *** Check for debugging support ***
 dnl ***********************************
@@ -127,6 +119,40 @@ dnl *** Check for linker optimizations ***
 dnl **************************************
 XDT_FEATURE_LINKER_OPTS()
 
+dnl ****************************************
+dnl *** Check for ELF visibility support ***
+dnl ****************************************
+AC_ARG_ENABLE([visibility], AC_HELP_STRING([--disable-visibility], [Do not use ELF visibility attributes]), [], [enable_visibility=yes])
+have_gnuc_visibility=no
+if test x"$enable_visibility" != x"no"; then
+  dnl Check whether the compiler supports the visibility attribute
+  save_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -Wall -Werror"
+  AC_MSG_CHECKING([whether $CC supports the GNUC visibility attribute])
+  AC_COMPILE_IFELSE(AC_LANG_SOURCE(
+  [
+    void test_default (void);
+    void test_hidden (void);
+
+    void __attribute__ ((visibility("default"))) test_default (void) {}
+    void __attribute__ ((visibility("hidden"))) test_hidden (void) {}
+
+    int main (int argc, char **argv) { test_default (); test_hidden (); return 0; }
+  ]),
+  [
+    have_gnuc_visibility=yes
+    AC_MSG_RESULT([yes])
+  ],
+  [
+    AC_MSG_RESULT([no])
+  ])
+  CFLAGS="$save_CFLAGS"
+fi
+if test x"$have_gnuc_visibility" = x"yes"; then
+  CPPFLAGS="$CPPFLAGS -DHAVE_GNUC_VISIBILITY"
+fi
+AM_CONDITIONAL([HAVE_GNUC_VISIBILITY], [test x"$have_gnuc_visibility" = x"yes"])
+
 dnl *********************************
 dnl *** Substitute platform flags ***
 dnl *********************************
@@ -159,3 +185,13 @@ plugins/tasklist/Makefile
 plugins/windowmenu/Makefile
 po/Makefile.in
 ])
+
+dnl ***************************
+dnl *** Print configuration ***
+dnl ***************************
+echo
+echo "Build Configuration:"
+echo
+echo "* Debug Support:        $enable_debug"
+echo "* GNU Visibility:       $have_gnuc_visibility"
+echo
diff --git a/libxfce4panel/Makefile.am b/libxfce4panel/Makefile.am
index 51efbc5..d199235 100644
--- a/libxfce4panel/Makefile.am
+++ b/libxfce4panel/Makefile.am
@@ -11,6 +11,8 @@ lib_LTLIBRARIES = \
 	libxfce4panel.la
 
 libxfce4panel_built_sources = \
+	libxfce4panel-alias.h \
+	libxfce4panel-aliasdef.c \
 	libxfce4panel-marshal.c \
 	libxfce4panel-marshal.h
 
@@ -63,9 +65,6 @@ libxfce4panel_la_LIBADD = \
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = libxfce4panel-1.0.pc
 
-EXTRA_DIST = \
-	libxfce4panel-marshal.list
-
 #
 # Build sources
 #
@@ -77,11 +76,33 @@ libxfce4panel-marshal.c: libxfce4panel-marshal.list Makefile
 	$(AM_V_GEN) echo "#include <libxfce4panel/libxfce4panel-marshal.h>" > $@ \
 	&& glib-genmarshal --prefix=_libxfce4panel_marshal --body $< >> $@
 
+libxfce4panel-alias.h: make-libxfce4panel-alias.pl libxfce4panel.symbols
+	$(AM_V_GEN) $(PERL) $(srcdir)/make-libxfce4panel-alias.pl $(srcdir)/libxfce4panel.symbols > $@
+
+libxfce4panel-aliasdef.c: make-libxfce4panel-alias.pl libxfce4panel.symbols
+	$(AM_V_GEN) $(PERL) $(srcdir)/make-libxfce4panel-alias.pl -def < $(srcdir)/libxfce4panel.symbols > $@
+
 DISTCLEANFILES = \
 	$(libxfce4panel_built_sources)
 
 BUILT_SOURCES = \
 	$(libxfce4panel_built_sources)
+
+CLEANFILES = \
+	actual-abi \
+	expected-abi
+endif
+
+EXTRA_DIST = \
+	abicheck.sh \
+	libxfce4panel.symbols \
+	libxfce4panel-alias.h \
+	libxfce4panel-aliasdef.c \
+	libxfce4panel-marshal.list \
+	make-libxfce4panel-alias.pl
+
+if HAVE_GNUC_VISIBILITY
+TESTS =	abicheck.sh
 endif
 
 # vi:set ts=8 sw=8 noet ai nocindent syntax=automake:
diff --git a/libxfce4panel/abicheck.sh b/libxfce4panel/abicheck.sh
new file mode 100755
index 0000000..6370f07
--- /dev/null
+++ b/libxfce4panel/abicheck.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+#
+# Copyright (c) 2004 The GLib Development Team.
+# Copyright (c) 2005 Benedikt Meurer <benny at xfce.org>.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 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
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+#
+
+cpp -P -DINCLUDE_INTERNAL_SYMBOLS -DINCLUDE_VARIABLES -DALL_FILES ${srcdir:-.}/libxfce4panel.symbols | sed -e '/^$/d' -e 's/ G_GNUC.*$//' -e 's/ PRIVATE//' | sort > expected-abi
+nm -D .libs/libxfce4panel.so | grep " T\|R " | cut -d ' ' -f 3 | grep -v '^_.*' | sort > actual-abi
+diff -u expected-abi actual-abi && rm expected-abi actual-abi
diff --git a/libxfce4panel/libxfce4panel.symbols b/libxfce4panel/libxfce4panel.symbols
new file mode 100644
index 0000000..b720c81
--- /dev/null
+++ b/libxfce4panel/libxfce4panel.symbols
@@ -0,0 +1,128 @@
+/*-
+ * Copyright (c) 2009 Nick Schermer <nick at xfce.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/* This file lists all exported symbols. It is used to generate
+ * the libxfce4panel-alias.h/libxfce4panel-aliasdef.c files used
+ * to avoid PLT entries for internal uses of exported functions (see
+ * make-libxfce4panel-alias.pl).
+ *
+ * Every symbol must be included in the right
+ * #ifdef IN_HEADER(sym) #endif and
+ * #ifdef IN_SOURCE(sym) #endif sections.
+ */
+
+#ifdef ALL_FILES
+#define IN_HEADER(x) 1
+#define IN_SOURCE(x) 1
+#endif
+
+/* xfce-arrow-button.h */
+#if IN_HEADER(__XFCE_ARROW_BUTTON_H__)
+#if IN_SOURCE(__XFCE_ARROW_BUTTON_C__)
+xfce_arrow_button_get_type G_GNUC_CONST
+xfce_arrow_button_new G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT
+xfce_arrow_button_get_arrow_type
+xfce_arrow_button_set_arrow_type
+xfce_arrow_button_get_blinking
+xfce_arrow_button_set_blinking
+#endif
+#endif
+
+/* xfce-hvbox.h */
+#if IN_HEADER(__XFCE_HVBOX_H__)
+#if IN_SOURCE(__XFCE_HVBOX_C__)
+xfce_hvbox_get_type G_GNUC_CONST
+xfce_hvbox_new G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT
+xfce_hvbox_set_orientation
+xfce_hvbox_get_orientation
+#endif
+#endif
+
+/* xfce-panel-convenience.h */
+#if IN_HEADER(__XFCE_PANEL_CONVENIENCE_H__)
+#if IN_SOURCE(__XFCE_PANEL_CONVENIENCE_C__)
+xfce_panel_create_button G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT
+xfce_panel_create_toggle_button G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT
+xfce_panel_allow_customization
+#endif
+#endif
+
+/* xfce-panel-image.h */
+#if IN_HEADER(__XFCE_PANEL_IMAGE_H__)
+#if IN_SOURCE(__XFCE_PANEL_IMAGE_C__)
+xfce_panel_image_get_type G_GNUC_CONST
+xfce_panel_image_new G_GNUC_MALLOC
+xfce_panel_image_new_from_pixbuf G_GNUC_MALLOC
+xfce_panel_image_new_from_source G_GNUC_MALLOC
+xfce_panel_image_set_from_pixbuf
+xfce_panel_image_set_from_source
+xfce_panel_image_clear
+#endif
+#endif
+
+/* xfce-panel-plugin.h */
+#if IN_HEADER(__XFCE_PANEL_PLUGIN_H__)
+#if IN_SOURCE(__XFCE_PANEL_PLUGIN_C__)
+xfce_panel_plugin_get_type G_GNUC_CONST
+xfce_panel_plugin_get_name G_GNUC_PURE
+xfce_panel_plugin_get_display_name G_GNUC_PURE
+xfce_panel_plugin_get_comment G_GNUC_PURE
+xfce_panel_plugin_get_unique_id G_GNUC_PURE
+xfce_panel_plugin_get_property_base G_GNUC_PURE
+xfce_panel_plugin_get_arguments G_GNUC_PURE
+xfce_panel_plugin_get_size G_GNUC_PURE
+xfce_panel_plugin_get_expand G_GNUC_PURE
+xfce_panel_plugin_set_expand
+xfce_panel_plugin_get_orientation G_GNUC_PURE
+xfce_panel_plugin_get_screen_position G_GNUC_PURE
+xfce_panel_plugin_take_window
+xfce_panel_plugin_add_action_widget
+xfce_panel_plugin_menu_insert_item
+xfce_panel_plugin_menu_show_configure
+xfce_panel_plugin_menu_show_about
+xfce_panel_plugin_block_menu
+xfce_panel_plugin_unblock_menu
+xfce_panel_plugin_register_menu
+xfce_panel_plugin_arrow_type
+xfce_panel_plugin_position_widget
+xfce_panel_plugin_position_menu
+xfce_panel_plugin_focus_widget
+xfce_panel_plugin_block_autohide
+xfce_panel_plugin_lookup_rc_file G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT
+xfce_panel_plugin_save_location G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT
+#endif
+#endif
+
+/* xfce-panel-plugin-provider.h */
+#if IN_HEADER(__XFCE_PANEL_PLUGIN_PROVIDER_H__)
+#if IN_SOURCE(__XFCE_PANEL_PLUGIN_PROVIDER_C__)
+xfce_panel_plugin_provider_get_type G_GNUC_CONST
+xfce_panel_plugin_provider_get_name
+xfce_panel_plugin_provider_get_unique_id
+xfce_panel_plugin_provider_set_size
+xfce_panel_plugin_provider_set_orientation
+xfce_panel_plugin_provider_set_screen_position
+xfce_panel_plugin_provider_save
+xfce_panel_plugin_provider_emit_signal
+xfce_panel_plugin_provider_get_show_configure
+xfce_panel_plugin_provider_show_configure
+xfce_panel_plugin_provider_get_show_about
+xfce_panel_plugin_provider_show_about
+xfce_panel_plugin_provider_remove
+#endif
+#endif
diff --git a/libxfce4panel/make-libxfce4panel-alias.pl b/libxfce4panel/make-libxfce4panel-alias.pl
new file mode 100644
index 0000000..9d6af39
--- /dev/null
+++ b/libxfce4panel/make-libxfce4panel-alias.pl
@@ -0,0 +1,154 @@
+#!/usr/bin/env perl -w
+#
+# Copyright (c) 2004 The GLib Development Team.
+# Copyright (c) 2005 Benedikt Meurer <benny at xfce.org>.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 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
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+#
+
+my $option_def = 0;
+
+if (($#ARGV >= 0) && ($ARGV[0] eq "-def"))
+  {
+    shift;
+    $option_def = 1;
+  }
+
+print <<EOF;
+/* Generated by make-libxfce4panel-alias.pl. Do not edit this file. */
+
+#ifdef HAVE_GNUC_VISIBILITY
+
+#include <glib.h>
+
+EOF
+
+if ($option_def)
+  {
+    print <<EOF
+#undef IN_HEADER
+#define IN_HEADER(x) 1
+
+#undef IN_SOURCE
+#define IN_SOURCE defined
+
+EOF
+  }
+else
+  {
+    print <<EOF
+#define IN_HEADER defined
+#define IN_SOURCE(x) 1
+
+EOF
+  }
+
+my $in_comment = 0;
+my $in_skipped_section = 0;
+
+while (<>)
+  {
+    # ignore empty lines
+    next if /^\s*$/;
+
+    # skip comments
+    if ($_ =~ /^\s*\/\*/)
+      {
+        $in_comment = 1;
+      }
+    
+    if ($in_comment)
+      {
+        if ($_ =~  /\*\/\s$/)
+          {
+            $in_comment = 0;
+          }
+        next;
+      }
+
+    # handle ifdefs
+    if ($_ =~ /^\#endif/)
+      {
+        if (!$in_skipped_section)
+          {
+            print $_;
+          }
+
+        $in_skipped_section = 0;
+        next;
+      }
+
+    if ($_ =~ /^\#ifdef\s+(INCLUDE_VARIABLES|INCLUDE_INTERNAL_SYMBOLS|ALL_FILES)/)
+      {
+        $in_skipped_section = 1;
+      }
+
+    if ($in_skipped_section)
+      {
+        next;
+      }
+
+    if ($_ =~ /^\#ifn?def\s+G/)
+      {
+        print $_;
+        next;
+      }
+   
+    if ($_ =~ /^\#if.*(IN_SOURCE|IN_HEADER)/)
+      {
+        print $_;
+        next;
+      }
+
+    chop;
+    my $line = $_;
+    my @words;
+    my $attributes = "";
+
+    @words = split (/ /, $line);
+    my $symbol = shift (@words);
+    chomp ($symbol);
+    my $alias = "IA__".$symbol;
+    
+    # Drop any Win32 specific .def file syntax,  but keep attributes
+    foreach $word (@words)
+      {
+        $attributes = "$attributes $word" unless $word eq "PRIVATE";
+      }
+    
+    if (!$option_def)
+      {
+        print <<EOF
+extern __typeof ($symbol) $alias __attribute((visibility("hidden")))$attributes;
+\#define $symbol $alias
+
+EOF
+      }
+    else
+      {
+        print <<EOF
+\#undef $symbol 
+extern __typeof ($symbol) $symbol __attribute((alias("$alias"), visibility("default")));
+
+EOF
+      }
+  }
+
+print <<EOF;
+
+#endif /* HAVE_GNUC_VISIBILITY */
+EOF
+
+
diff --git a/libxfce4panel/xfce-arrow-button.c b/libxfce4panel/xfce-arrow-button.c
index 59c1e31..67c75ab 100644
--- a/libxfce4panel/xfce-arrow-button.c
+++ b/libxfce4panel/xfce-arrow-button.c
@@ -30,8 +30,11 @@
 #endif
 
 #include <gtk/gtk.h>
-#include <libxfce4panel/libxfce4panel.h>
+
 #include <common/panel-private.h>
+#include <libxfce4panel/xfce-panel-macros.h>
+#include <libxfce4panel/xfce-arrow-button.h>
+#include <libxfce4panel/libxfce4panel-alias.h>
 
 #define XFCE_ARROW_BUTTON_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), \
                                             XFCE_TYPE_ARROW_BUTTON, \
@@ -523,3 +526,8 @@ xfce_arrow_button_set_blinking (XfceArrowButton *button,
   /* start with a blinking or make sure the button is normal */
   xfce_arrow_button_blinking_timeout (button);
 }
+
+
+
+#define __XFCE_ARROW_BUTTON_C__
+#include <libxfce4panel/libxfce4panel-aliasdef.c>
diff --git a/libxfce4panel/xfce-hvbox.c b/libxfce4panel/xfce-hvbox.c
index 9d88cdc..5d0b2e1 100644
--- a/libxfce4panel/xfce-hvbox.c
+++ b/libxfce4panel/xfce-hvbox.c
@@ -27,7 +27,10 @@
 #endif
 
 #include <gtk/gtk.h>
-#include <libxfce4panel/libxfce4panel.h>
+
+#include <libxfce4panel/xfce-panel-macros.h>
+#include <libxfce4panel/xfce-hvbox.h>
+#include <libxfce4panel/libxfce4panel-alias.h>
 
 
 
@@ -271,3 +274,8 @@ xfce_hvbox_get_orientation (XfceHVBox *hvbox)
   return hvbox->orientation;
 #endif
 }
+
+
+
+#define __XFCE_HVBOX_C__
+#include <libxfce4panel/libxfce4panel-aliasdef.c>
diff --git a/libxfce4panel/xfce-panel-convenience.c b/libxfce4panel/xfce-panel-convenience.c
index 1a69077..01970c5 100644
--- a/libxfce4panel/xfce-panel-convenience.c
+++ b/libxfce4panel/xfce-panel-convenience.c
@@ -25,7 +25,9 @@
 #include <libxfce4util/libxfce4util.h>
 #include <gtk/gtk.h>
 
-#include <libxfce4panel/libxfce4panel.h>
+#include <libxfce4panel/xfce-panel-macros.h>
+#include <libxfce4panel/xfce-panel-convenience.h>
+#include <libxfce4panel/libxfce4panel-alias.h>
 
 /**
  * xfce_panel_create_button:
@@ -101,3 +103,8 @@ xfce_panel_allow_customization (void)
 
   return allow_customization;
 }
+
+
+
+#define __XFCE_PANEL_CONVENIENCE_C__
+#include <libxfce4panel/libxfce4panel-aliasdef.c>
diff --git a/libxfce4panel/xfce-panel-image.c b/libxfce4panel/xfce-panel-image.c
index 4df3707..5d24333 100644
--- a/libxfce4panel/xfce-panel-image.c
+++ b/libxfce4panel/xfce-panel-image.c
@@ -28,7 +28,9 @@
 #include <gtk/gtk.h>
 
 #include <common/panel-private.h>
-#include <libxfce4panel/libxfce4panel.h>
+#include <libxfce4panel/xfce-panel-macros.h>
+#include <libxfce4panel/xfce-panel-image.h>
+#include <libxfce4panel/libxfce4panel-alias.h>
 
 
 /* design limit for the panel, to reduce the uncached pixbuf size */
@@ -556,3 +558,8 @@ xfce_panel_image_clear (XfcePanelImage *image)
   priv->width = -1;
   priv->height = -1;
 }
+
+
+
+#define __XFCE_PANEL_IMAGE_C__
+#include <libxfce4panel/libxfce4panel-aliasdef.c>
diff --git a/libxfce4panel/xfce-panel-plugin-provider.c b/libxfce4panel/xfce-panel-plugin-provider.c
index 825c2a6..c7f47b1 100644
--- a/libxfce4panel/xfce-panel-plugin-provider.c
+++ b/libxfce4panel/xfce-panel-plugin-provider.c
@@ -23,9 +23,9 @@
 
 #include <gtk/gtk.h>
 
-#include <libxfce4panel/libxfce4panel.h>
+#include <libxfce4panel/xfce-panel-macros.h>
 #include <libxfce4panel/xfce-panel-plugin-provider.h>
-
+#include <libxfce4panel/libxfce4panel-alias.h>
 
 
 enum
@@ -201,3 +201,8 @@ xfce_panel_plugin_provider_remove (XfcePanelPluginProvider *provider)
 
   (*XFCE_PANEL_PLUGIN_PROVIDER_GET_IFACE (provider)->remove) (provider);
 }
+
+
+
+#define __XFCE_PANEL_PLUGIN_PROVIDER_C__
+#include <libxfce4panel/libxfce4panel-aliasdef.c>
diff --git a/libxfce4panel/xfce-panel-plugin.c b/libxfce4panel/xfce-panel-plugin.c
index d521d9f..934affd 100644
--- a/libxfce4panel/xfce-panel-plugin.c
+++ b/libxfce4panel/xfce-panel-plugin.c
@@ -26,9 +26,11 @@
 #include <libxfce4util/libxfce4util.h>
 
 #include <common/panel-private.h>
-#include <libxfce4panel/libxfce4panel.h>
-#include <libxfce4panel/libxfce4panel-marshal.h>
+#include <libxfce4panel/xfce-panel-macros.h>
+#include <libxfce4panel/xfce-panel-plugin.h>
 #include <libxfce4panel/xfce-panel-plugin-provider.h>
+#include <libxfce4panel/libxfce4panel-marshal.h>
+#include <libxfce4panel/libxfce4panel-alias.h>
 
 #define XFCE_PANEL_PLUGIN_CONSTRUCTED(plugin) \
   PANEL_HAS_FLAG (XFCE_PANEL_PLUGIN (plugin)->priv->flags, \
@@ -1928,3 +1930,8 @@ xfce_panel_plugin_save_location (XfcePanelPlugin *plugin,
 
   return path;
 }
+
+
+
+#define __XFCE_PANEL_PLUGIN_C__
+#include <libxfce4panel/libxfce4panel-aliasdef.c>
diff --git a/libxfce4panel/xfce-panel-plugin.h b/libxfce4panel/xfce-panel-plugin.h
index db6f26b..f797aa5 100644
--- a/libxfce4panel/xfce-panel-plugin.h
+++ b/libxfce4panel/xfce-panel-plugin.h
@@ -25,6 +25,7 @@
 #define __XFCE_PANEL_PLUGIN_H__
 
 #include <gtk/gtk.h>
+#include <libxfce4panel/xfce-panel-enums.h>
 
 G_BEGIN_DECLS
 



More information about the Xfce4-commits mailing list