diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2016-01-31 01:55:27 +0100 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2016-01-31 02:21:02 +0100 |
commit | ff17c72962d76986b48f3ab05e6ca9e7b3a4f78e (patch) | |
tree | 4c21cc1ad64e7ba9d0429defb4abf652ea4c822a /configure.ac | |
parent | d7279189cbd51d2d1b5dee36a4fb09f3388801e0 (diff) | |
download | sciteco-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.ac | 17 |
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" |