[Xfce4-commits] <exo:nick/gtk3> Minimal gtk3 library alongside gtk2.

Nick Schermer noreply at xfce.org
Mon Feb 4 15:54:06 CET 2013


Updating branch refs/heads/nick/gtk3
         to 365eb845dda879fa2dacf9cd31ddae7999cbdeca (commit)
       from e9df87b6d99b22b53bc5c3e1962ee41a0ba22e62 (commit)

commit 365eb845dda879fa2dacf9cd31ddae7999cbdeca
Author: Nick Schermer <nick at xfce.org>
Date:   Mon Feb 4 13:28:37 2013 +0100

    Minimal gtk3 library alongside gtk2.
    
    Library with the initial components that we need for
    Thunar without any widgets.

 configure.ac.in                  |    9 ++++++
 exo/Makefile.am                  |   53 ++++++++++++++++++++++++++++++++++++++
 exo/{exo-1.pc.in => exo-2.pc.in} |    5 +--
 exo/exo-private.c                |    7 +---
 exo/exo-utils.h                  |    5 +++
 exo/exo.h                        |   23 +++++++++++-----
 6 files changed, 87 insertions(+), 15 deletions(-)

diff --git a/configure.ac.in b/configure.ac.in
index c4abf23..384f8cb 100644
--- a/configure.ac.in
+++ b/configure.ac.in
@@ -165,6 +165,14 @@ XDT_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0], [4.10.0])
 XDT_CHECK_PACKAGE([LIBXFCE4UI], [libxfce4ui-1], [4.10.0])
 XDT_CHECK_OPTIONAL_PACKAGE([GIO_UNIX], [gio-unix-2.0], [2.30.0], [gio-unix], [GIO-Unix features])
 
+dnl ***********************************************************
+dnl *** Optional support for a GTK+3 version of the library ***
+dnl ***********************************************************
+XDT_CHECK_OPTIONAL_PACKAGE([GTK3],
+                           [gtk+-3.0], [3.6.0], [gtk3],
+                           [GTK+ 3 support])
+AM_CONDITIONAL([ENABLE_GTK3_LIBRARY], [test "x$GTK3_FOUND" = "xyes"])
+
 dnl *********************
 dnl *** Check for X11 ***
 dnl *********************
@@ -232,6 +240,7 @@ docs/reference/Makefile
 docs/reference/version.xml
 exo/Makefile
 exo/exo-1.pc
+exo/exo-2.pc
 exo/exo-config.h
 exo-csource/Makefile
 exo-desktop-item-edit/Makefile
diff --git a/exo/Makefile.am b/exo/Makefile.am
index 7176722..8203177 100644
--- a/exo/Makefile.am
+++ b/exo/Makefile.am
@@ -111,6 +111,59 @@ libexo_1_la_LIBADD =							\
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = exo-$(LIBEXO_VERSION_API).pc
 
+##
+## GTK+ 3 support library
+##
+if ENABLE_GTK3_LIBRARY
+
+libexo_2_includedir = $(includedir)/exo-2/exo
+
+lib_LTLIBRARIES += libexo-2.la
+
+libexo_2_include_HEADERS =						\
+	exo.h								\
+	exo-config.h							\
+	exo-gdk-pixbuf-extensions.h					\
+	exo-job.h							\
+	exo-simple-job.h						\
+	exo-string.h							\
+	exo-utils.h
+
+libexo_2_la_SOURCES =							\
+	$(libexo_2_include_HEADERS)					\
+	exo-marshal.c							\
+	exo-marshal.h							\
+	exo-private.c							\
+	exo-private.h							\
+	exo-config.c							\
+	exo-gdk-pixbuf-extensions.c					\
+	exo-job.c							\
+	exo-simple-job.c						\
+	exo-string.c							\
+	exo-utils.c
+
+libexo_2_la_CFLAGS =							\
+	$(LIBXFCE4UTIL_CFLAGS)						\
+	$(GIO_CFLAGS)							\
+	$(GTK3_CFLAGS)							\
+	$(LIBX11_CFLAGS)
+
+libexo_2_la_LDFLAGS =							\
+	-export-dynamic							\
+	-version-info $(LIBEXO_VERINFO)					\
+	-export-symbols-regex "^[^_].*"					\
+	-no-undefined
+
+libexo_2_la_LIBADD =							\
+	$(LIBXFCE4UTIL_LIBS)						\
+	$(GIO_LIBS)							\
+	$(GTK3_LIBS)							\
+	$(LIBX11_LIBS)							\
+	-lm
+
+pkgconfig_DATA += exo-2.pc
+
+endif
 
 ##
 ## Rules to auto-generate built sources
diff --git a/exo/exo-1.pc.in b/exo/exo-2.pc.in
similarity index 73%
copy from exo/exo-1.pc.in
copy to exo/exo-2.pc.in
index 11c97fe..3a0c03d 100644
--- a/exo/exo-1.pc.in
+++ b/exo/exo-2.pc.in
@@ -3,12 +3,11 @@ exec_prefix=@exec_prefix@
 libdir=@libdir@
 includedir=@includedir@
 
-exo_api_version=@LIBEXO_VERSION_API@
-exo_csource=exo-csource
+exo_api_version=2
 
 Name: @PACKAGE_TARNAME@
 Description: Extension library for Xfce
-Requires: gtk+-2.0 libxfce4util-1.0
+Requires: gtk+-2.0 libxfce4util-2.0
 Version: @PACKAGE_VERSION@
 Libs: -L${libdir} -lexo-${exo_api_version}
 Cflags: -I${includedir}/exo-${exo_api_version}
diff --git a/exo/exo-private.c b/exo/exo-private.c
index a9025ac..e1c98b9 100644
--- a/exo/exo-private.c
+++ b/exo/exo-private.c
@@ -62,14 +62,11 @@ _exo_gtk_widget_send_focus_change (GtkWidget *widget,
 
   g_object_ref (G_OBJECT (widget));
 
- if (in)
-    GTK_WIDGET_SET_FLAGS (widget, GTK_HAS_FOCUS);
-  else
-    GTK_WIDGET_UNSET_FLAGS (widget, GTK_HAS_FOCUS);
+  gtk_widget_set_can_focus (widget, in);
 
   fevent = gdk_event_new (GDK_FOCUS_CHANGE);
   fevent->focus_change.type = GDK_FOCUS_CHANGE;
-  fevent->focus_change.window = g_object_ref (widget->window);
+  fevent->focus_change.window = g_object_ref (gtk_widget_get_window (widget));
   fevent->focus_change.in = in;
 
   gtk_widget_event (widget, fevent);
diff --git a/exo/exo-utils.h b/exo/exo-utils.h
index 441a881..2c88aa5 100644
--- a/exo/exo-utils.h
+++ b/exo/exo-utils.h
@@ -25,6 +25,7 @@
 #define __EXO_UTILS_H__
 
 #include <glib.h>
+#include <gtk/gtk.h>
 
 G_BEGIN_DECLS
 
@@ -35,6 +36,8 @@ gpointer                exo_noop_null   (void) G_GNUC_PURE;
 gboolean                exo_noop_true   (void) G_GNUC_PURE;
 gboolean                exo_noop_false  (void) G_GNUC_PURE;
 
+#if !GTK_CHECK_VERSION (3, 0, 0)
+
 /* inline function implementations */
 #if (defined(G_CAN_INLINE) && defined(__GNUC__) && defined(__i386__) && defined(__OPTIMIZE__)) || defined(__EXO_UTILS_C__)
 
@@ -106,6 +109,8 @@ exo_atomic_dec (gint *value)
 
 #endif /* (G_CAN_INLINE && __GNUC__ && __i386__ && __OPTIMIZE__) || __EXO_UTILS_C__ */
 
+#endif
+
 G_END_DECLS
 
 #endif /* !__EXO_UTILS_H__ */
diff --git a/exo/exo.h b/exo/exo.h
index 0dffb4e..91750fc 100644
--- a/exo/exo.h
+++ b/exo/exo.h
@@ -29,34 +29,43 @@
 #include <glib/gi18n.h>
 #endif
 
-#include <libxfce4util/libxfce4util.h>
+#include <gtk/gtk.h>
 
 #define EXO_INSIDE_EXO_H
 
 #include <exo/exo-config.h>
 
+#include <exo/exo-gdk-pixbuf-extensions.h>
+#include <exo/exo-job.h>
+#include <exo/exo-simple-job.h>
+#include <exo/exo-string.h>
+#include <exo/exo-utils.h>
+
+
+#if !GTK_CHECK_VERSION (3, 0, 0)
+#include <libxfce4util/libxfce4util.h>
+
+#include <exo/exo-enum-types.h>
 #include <exo/exo-binding.h>
 #include <exo/exo-cell-renderer-ellipsized-text.h>
 #include <exo/exo-cell-renderer-icon.h>
 #include <exo/exo-execute.h>
-#include <exo/exo-enum-types.h>
-#include <exo/exo-gdk-pixbuf-extensions.h>
 #include <exo/exo-gtk-extensions.h>
 #include <exo/exo-gobject-extensions.h>
 #include <exo/exo-icon-bar.h>
 #include <exo/exo-icon-chooser-dialog.h>
 #include <exo/exo-icon-view.h>
-#include <exo/exo-job.h>
-#include <exo/exo-simple-job.h>
-#include <exo/exo-string.h>
 #include <exo/exo-toolbars-editor.h>
 #include <exo/exo-toolbars-editor-dialog.h>
 #include <exo/exo-toolbars-model.h>
 #include <exo/exo-toolbars-view.h>
 #include <exo/exo-tree-view.h>
-#include <exo/exo-utils.h>
 #include <exo/exo-wrap-table.h>
 #include <exo/exo-xsession-client.h>
+#endif
+
+
+
 
 #undef EXO_INSIDE_EXO_H
 


More information about the Xfce4-commits mailing list