aboutsummaryrefslogtreecommitdiffhomepage
path: root/configure.ac
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2016-01-31 01:55:27 +0100
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2016-01-31 02:21:02 +0100
commitff17c72962d76986b48f3ab05e6ca9e7b3a4f78e (patch)
tree4c21cc1ad64e7ba9d0429defb4abf652ea4c822a /configure.ac
parentd7279189cbd51d2d1b5dee36a4fb09f3388801e0 (diff)
downloadsciteco-ff17c72962d76986b48f3ab05e6ca9e7b3a4f78e.tar.gz
updated to Gtk+ 3 and revamped the Gtk interface's popup widget
* depend on Gtk+ 3.10. If necessary older versions should also be supportable. GtkOverlay was already introduced in v3.2 * A fallback for GtkFlowBox is compiled in if the Gtk installation is too old. This applies even to Ubuntu 14.04 which still runs Gtk v3.10. * the threading the Gtk UI is left as it is for the time being even though the synchronization mechanism has been deprecated. Alternative approaches have to be tried out and benchmarked. * Completely revamped the GtkInfoPopup widget. It is now as powerful as the Curses UI's popup widget. * A GtkOverlay is used instead of the top-level window hack in the Gtk2 version. * GtkFlowBox is used to lay out the columns of the popup. * I had to work around restrictions of GtkScrolledWindow by writing my own poor-mans scrolled window which handles size requests correctly. * The popup window no longer overflows the screen size, instead we scroll. * Scrolling pagewise is finally supported. Wraps at the end of a list just like the Curses UI. * Instead of using only two stock icons, we now use GIO to get file and directory icons for the current theme. This looks even better. * The GtkFlowBox allows selections which can be used for mouse interaction later. But this is not yet implemented. * Theming of the popup widget and command line is still not performed correctly.
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac17
1 files changed, 14 insertions, 3 deletions
diff --git a/configure.ac b/configure.ac
index 3011c22..a31658b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -229,21 +229,32 @@ case $INTERFACE in
])
AC_DEFINE(INTERFACE_CURSES, , [Build with curses support])
- # For Scintilla:
+ # For Scintilla/Scinterm:
CPPFLAGS="$CPPFLAGS -DCURSES -I$SCINTERM_PATH"
;;
gtk)
- PKG_CHECK_MODULES(LIBGTK, [gtk+-2.0 gmodule-2.0], [
+ # NOTE: Ubuntu 14.04 only has Gtk+ 3.10, so we have to support it.
+ # This version lacks GtkFlowBox.
+ # gmodule is required by Scintilla.
+ PKG_CHECK_MODULES(LIBGTK, [gtk+-3.0 >= 3.10 gmodule-2.0], [
CFLAGS="$CFLAGS $LIBGTK_CFLAGS"
CXXFLAGS="$CXXFLAGS $LIBGTK_CFLAGS"
LIBS="$LIBS $LIBGTK_LIBS"
])
+
+ # Should be available since v3.12
+ AC_CHECK_FUNCS(gtk_flow_box_new, [], [
+ GTK_FLOW_BOX_FALLBACK=true
+ ])
+ AM_CONDITIONAL(GTK_FLOW_BOX_FALLBACK, [test x$GTK_FLOW_BOX_FALLBACK = xtrue])
+
AC_CHECK_PROG(GOB2, gob2, gob2)
if [[ x$GOB2 = x ]]; then
AC_MSG_ERROR([Gob2 (GObject Builder) not found!])
fi
- AC_DEFINE(INTERFACE_GTK, , [Build with GTK+ 2.0 support])
+
+ AC_DEFINE(INTERFACE_GTK, , [Build with GTK+ 3.0 support])
# For Scintilla:
CPPFLAGS="$CPPFLAGS -DGTK"