From 126fef877f5e689aea5b1db6503e6255bb0dc5cb Mon Sep 17 00:00:00 2001 From: Pierre-Luc Beaudoin Date: Tue, 12 Aug 2008 22:34:49 -0400 Subject: [PATCH] Scrollable Window Attempt --- autom4te.cache/output.2 | 104 ++++++++++++++++++++--------- autom4te.cache/output.3 | 104 ++++++++++++++++++++--------- autom4te.cache/requests | 102 ++++++++++++++-------------- autom4te.cache/traces.2 | 75 +++++++++++---------- autom4te.cache/traces.3 | 65 +++++++++--------- configure.ac | 7 +- src/Makefile.am | 28 +++++++- src/champlain_widget.c | 144 +++++++++++++++++++++++++++++++++++----- src/champlain_widget.h | 8 +-- src/launcher.c | 11 +-- 10 files changed, 436 insertions(+), 212 deletions(-) diff --git a/autom4te.cache/output.2 b/autom4te.cache/output.2 index 615cc65..42e0584 100644 --- a/autom4te.cache/output.2 +++ b/autom4te.cache/output.2 @@ -653,6 +653,7 @@ AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE +GLIB_GENMARSHAL DEPS_CFLAGS DEPS_LIBS PKG_CONFIG @@ -3267,6 +3268,46 @@ else fi +# Extract the first word of "glib-genmarshal", so it can be a program name with args. +set dummy glib-genmarshal; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_GLIB_GENMARSHAL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $GLIB_GENMARSHAL in + [\\/]* | ?:[\\/]*) + ac_cv_path_GLIB_GENMARSHAL="$GLIB_GENMARSHAL" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GLIB_GENMARSHAL="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +GLIB_GENMARSHAL=$ac_cv_path_GLIB_GENMARSHAL +if test -n "$GLIB_GENMARSHAL"; then + { echo "$as_me:$LINENO: result: $GLIB_GENMARSHAL" >&5 +echo "${ECHO_T}$GLIB_GENMARSHAL" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + # Checks for libraries. @@ -3404,27 +3445,27 @@ if test -n "$PKG_CONFIG"; then else if test -n "$PKG_CONFIG" && \ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \" glib-2.0 >= 2.2, - gobject-2.0 >= 2.0, + gobject-2.0 >= 2.10, gtk+-2.0 >= 2.2, - clutter-0.6 >= 0.6, - clutter-gtk-0.6 >= 0.6 + clutter-0.8 >= 0.8, + clutter-gtk-0.8 >= 0.8 \"") >&5 ($PKG_CONFIG --exists --print-errors " glib-2.0 >= 2.2, - gobject-2.0 >= 2.0, + gobject-2.0 >= 2.10, gtk+-2.0 >= 2.2, - clutter-0.6 >= 0.6, - clutter-gtk-0.6 >= 0.6 + clutter-0.8 >= 0.8, + clutter-gtk-0.8 >= 0.8 ") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_DEPS_CFLAGS=`$PKG_CONFIG --cflags " glib-2.0 >= 2.2, - gobject-2.0 >= 2.0, + gobject-2.0 >= 2.10, gtk+-2.0 >= 2.2, - clutter-0.6 >= 0.6, - clutter-gtk-0.6 >= 0.6 + clutter-0.8 >= 0.8, + clutter-gtk-0.8 >= 0.8 " 2>/dev/null` else @@ -3440,27 +3481,27 @@ if test -n "$PKG_CONFIG"; then else if test -n "$PKG_CONFIG" && \ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \" glib-2.0 >= 2.2, - gobject-2.0 >= 2.0, + gobject-2.0 >= 2.10, gtk+-2.0 >= 2.2, - clutter-0.6 >= 0.6, - clutter-gtk-0.6 >= 0.6 + clutter-0.8 >= 0.8, + clutter-gtk-0.8 >= 0.8 \"") >&5 ($PKG_CONFIG --exists --print-errors " glib-2.0 >= 2.2, - gobject-2.0 >= 2.0, + gobject-2.0 >= 2.10, gtk+-2.0 >= 2.2, - clutter-0.6 >= 0.6, - clutter-gtk-0.6 >= 0.6 + clutter-0.8 >= 0.8, + clutter-gtk-0.8 >= 0.8 ") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_DEPS_LIBS=`$PKG_CONFIG --libs " glib-2.0 >= 2.2, - gobject-2.0 >= 2.0, + gobject-2.0 >= 2.10, gtk+-2.0 >= 2.2, - clutter-0.6 >= 0.6, - clutter-gtk-0.6 >= 0.6 + clutter-0.8 >= 0.8, + clutter-gtk-0.8 >= 0.8 " 2>/dev/null` else @@ -3482,18 +3523,18 @@ else fi if test $_pkg_short_errors_supported = yes; then DEPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors " glib-2.0 >= 2.2, - gobject-2.0 >= 2.0, + gobject-2.0 >= 2.10, gtk+-2.0 >= 2.2, - clutter-0.6 >= 0.6, - clutter-gtk-0.6 >= 0.6 + clutter-0.8 >= 0.8, + clutter-gtk-0.8 >= 0.8 "` else DEPS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors " glib-2.0 >= 2.2, - gobject-2.0 >= 2.0, + gobject-2.0 >= 2.10, gtk+-2.0 >= 2.2, - clutter-0.6 >= 0.6, - clutter-gtk-0.6 >= 0.6 + clutter-0.8 >= 0.8, + clutter-gtk-0.8 >= 0.8 "` fi @@ -3501,10 +3542,10 @@ fi echo "$DEPS_PKG_ERRORS" >&5 { { echo "$as_me:$LINENO: error: Package requirements ( glib-2.0 >= 2.2, - gobject-2.0 >= 2.0, + gobject-2.0 >= 2.10, gtk+-2.0 >= 2.2, - clutter-0.6 >= 0.6, - clutter-gtk-0.6 >= 0.6 + clutter-0.8 >= 0.8, + clutter-gtk-0.8 >= 0.8 ) were not met: @@ -3518,10 +3559,10 @@ and DEPS_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. " >&5 echo "$as_me: error: Package requirements ( glib-2.0 >= 2.2, - gobject-2.0 >= 2.0, + gobject-2.0 >= 2.10, gtk+-2.0 >= 2.2, - clutter-0.6 >= 0.6, - clutter-gtk-0.6 >= 0.6 + clutter-0.8 >= 0.8, + clutter-gtk-0.8 >= 0.8 ) were not met: @@ -4289,6 +4330,7 @@ AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim CCDEPMODE!$CCDEPMODE$ac_delim am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim +GLIB_GENMARSHAL!$GLIB_GENMARSHAL$ac_delim DEPS_CFLAGS!$DEPS_CFLAGS$ac_delim DEPS_LIBS!$DEPS_LIBS$ac_delim PKG_CONFIG!$PKG_CONFIG$ac_delim @@ -4296,7 +4338,7 @@ LIB@&t@OBJS!$LIB@&t@OBJS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 79; then + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 80; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 diff --git a/autom4te.cache/output.3 b/autom4te.cache/output.3 index 615cc65..42e0584 100644 --- a/autom4te.cache/output.3 +++ b/autom4te.cache/output.3 @@ -653,6 +653,7 @@ AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE +GLIB_GENMARSHAL DEPS_CFLAGS DEPS_LIBS PKG_CONFIG @@ -3267,6 +3268,46 @@ else fi +# Extract the first word of "glib-genmarshal", so it can be a program name with args. +set dummy glib-genmarshal; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_GLIB_GENMARSHAL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $GLIB_GENMARSHAL in + [\\/]* | ?:[\\/]*) + ac_cv_path_GLIB_GENMARSHAL="$GLIB_GENMARSHAL" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GLIB_GENMARSHAL="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +GLIB_GENMARSHAL=$ac_cv_path_GLIB_GENMARSHAL +if test -n "$GLIB_GENMARSHAL"; then + { echo "$as_me:$LINENO: result: $GLIB_GENMARSHAL" >&5 +echo "${ECHO_T}$GLIB_GENMARSHAL" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + # Checks for libraries. @@ -3404,27 +3445,27 @@ if test -n "$PKG_CONFIG"; then else if test -n "$PKG_CONFIG" && \ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \" glib-2.0 >= 2.2, - gobject-2.0 >= 2.0, + gobject-2.0 >= 2.10, gtk+-2.0 >= 2.2, - clutter-0.6 >= 0.6, - clutter-gtk-0.6 >= 0.6 + clutter-0.8 >= 0.8, + clutter-gtk-0.8 >= 0.8 \"") >&5 ($PKG_CONFIG --exists --print-errors " glib-2.0 >= 2.2, - gobject-2.0 >= 2.0, + gobject-2.0 >= 2.10, gtk+-2.0 >= 2.2, - clutter-0.6 >= 0.6, - clutter-gtk-0.6 >= 0.6 + clutter-0.8 >= 0.8, + clutter-gtk-0.8 >= 0.8 ") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_DEPS_CFLAGS=`$PKG_CONFIG --cflags " glib-2.0 >= 2.2, - gobject-2.0 >= 2.0, + gobject-2.0 >= 2.10, gtk+-2.0 >= 2.2, - clutter-0.6 >= 0.6, - clutter-gtk-0.6 >= 0.6 + clutter-0.8 >= 0.8, + clutter-gtk-0.8 >= 0.8 " 2>/dev/null` else @@ -3440,27 +3481,27 @@ if test -n "$PKG_CONFIG"; then else if test -n "$PKG_CONFIG" && \ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \" glib-2.0 >= 2.2, - gobject-2.0 >= 2.0, + gobject-2.0 >= 2.10, gtk+-2.0 >= 2.2, - clutter-0.6 >= 0.6, - clutter-gtk-0.6 >= 0.6 + clutter-0.8 >= 0.8, + clutter-gtk-0.8 >= 0.8 \"") >&5 ($PKG_CONFIG --exists --print-errors " glib-2.0 >= 2.2, - gobject-2.0 >= 2.0, + gobject-2.0 >= 2.10, gtk+-2.0 >= 2.2, - clutter-0.6 >= 0.6, - clutter-gtk-0.6 >= 0.6 + clutter-0.8 >= 0.8, + clutter-gtk-0.8 >= 0.8 ") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_DEPS_LIBS=`$PKG_CONFIG --libs " glib-2.0 >= 2.2, - gobject-2.0 >= 2.0, + gobject-2.0 >= 2.10, gtk+-2.0 >= 2.2, - clutter-0.6 >= 0.6, - clutter-gtk-0.6 >= 0.6 + clutter-0.8 >= 0.8, + clutter-gtk-0.8 >= 0.8 " 2>/dev/null` else @@ -3482,18 +3523,18 @@ else fi if test $_pkg_short_errors_supported = yes; then DEPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors " glib-2.0 >= 2.2, - gobject-2.0 >= 2.0, + gobject-2.0 >= 2.10, gtk+-2.0 >= 2.2, - clutter-0.6 >= 0.6, - clutter-gtk-0.6 >= 0.6 + clutter-0.8 >= 0.8, + clutter-gtk-0.8 >= 0.8 "` else DEPS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors " glib-2.0 >= 2.2, - gobject-2.0 >= 2.0, + gobject-2.0 >= 2.10, gtk+-2.0 >= 2.2, - clutter-0.6 >= 0.6, - clutter-gtk-0.6 >= 0.6 + clutter-0.8 >= 0.8, + clutter-gtk-0.8 >= 0.8 "` fi @@ -3501,10 +3542,10 @@ fi echo "$DEPS_PKG_ERRORS" >&5 { { echo "$as_me:$LINENO: error: Package requirements ( glib-2.0 >= 2.2, - gobject-2.0 >= 2.0, + gobject-2.0 >= 2.10, gtk+-2.0 >= 2.2, - clutter-0.6 >= 0.6, - clutter-gtk-0.6 >= 0.6 + clutter-0.8 >= 0.8, + clutter-gtk-0.8 >= 0.8 ) were not met: @@ -3518,10 +3559,10 @@ and DEPS_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. " >&5 echo "$as_me: error: Package requirements ( glib-2.0 >= 2.2, - gobject-2.0 >= 2.0, + gobject-2.0 >= 2.10, gtk+-2.0 >= 2.2, - clutter-0.6 >= 0.6, - clutter-gtk-0.6 >= 0.6 + clutter-0.8 >= 0.8, + clutter-gtk-0.8 >= 0.8 ) were not met: @@ -4289,6 +4330,7 @@ AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim CCDEPMODE!$CCDEPMODE$ac_delim am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim +GLIB_GENMARSHAL!$GLIB_GENMARSHAL$ac_delim DEPS_CFLAGS!$DEPS_CFLAGS$ac_delim DEPS_LIBS!$DEPS_LIBS$ac_delim PKG_CONFIG!$PKG_CONFIG$ac_delim @@ -4296,7 +4338,7 @@ LIB@&t@OBJS!$LIB@&t@OBJS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 79; then + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 80; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 diff --git a/autom4te.cache/requests b/autom4te.cache/requests index 8f997da..5ab08eb 100644 --- a/autom4te.cache/requests +++ b/autom4te.cache/requests @@ -14,15 +14,15 @@ 'configure.ac' ], { - '_LT_AC_TAGCONFIG' => 1, 'AM_PROG_F77_C_O' => 1, - 'AC_INIT' => 1, + '_LT_AC_TAGCONFIG' => 1, 'm4_pattern_forbid' => 1, + 'AC_INIT' => 1, 'AC_CANONICAL_TARGET' => 1, - 'AC_SUBST' => 1, 'AC_CONFIG_LIBOBJ_DIR' => 1, - 'AC_FC_SRCEXT' => 1, + 'AC_SUBST' => 1, 'AC_CANONICAL_HOST' => 1, + 'AC_FC_SRCEXT' => 1, 'AC_PROG_LIBTOOL' => 1, 'AM_INIT_AUTOMAKE' => 1, 'AC_CONFIG_SUBDIRS' => 1, @@ -30,8 +30,8 @@ 'LT_CONFIG_LTDL_DIR' => 1, 'AC_REQUIRE_AUX_FILE' => 1, 'AC_CONFIG_LINKS' => 1, - 'm4_sinclude' => 1, 'LT_SUPPORTED_TAG' => 1, + 'm4_sinclude' => 1, 'AM_MAINTAINER_MODE' => 1, 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, '_m4_warn' => 1, @@ -48,11 +48,11 @@ 'AH_OUTPUT' => 1, '_AM_SUBST_NOTMAKE' => 1, 'AC_CONFIG_AUX_DIR' => 1, - 'sinclude' => 1, - 'm4_pattern_allow' => 1, 'AM_PROG_CC_C_O' => 1, - 'AC_CANONICAL_SYSTEM' => 1, + 'm4_pattern_allow' => 1, + 'sinclude' => 1, 'AM_CONDITIONAL' => 1, + 'AC_CANONICAL_SYSTEM' => 1, 'AC_CONFIG_HEADERS' => 1, 'AC_DEFINE_TRACE_LITERAL' => 1, 'm4_include' => 1, @@ -133,15 +133,15 @@ 'configure.ac' ], { - '_LT_AC_TAGCONFIG' => 1, 'AM_PROG_F77_C_O' => 1, - 'AC_INIT' => 1, + '_LT_AC_TAGCONFIG' => 1, 'm4_pattern_forbid' => 1, + 'AC_INIT' => 1, 'AC_CANONICAL_TARGET' => 1, - 'AC_SUBST' => 1, 'AC_CONFIG_LIBOBJ_DIR' => 1, - 'AC_FC_SRCEXT' => 1, + 'AC_SUBST' => 1, 'AC_CANONICAL_HOST' => 1, + 'AC_FC_SRCEXT' => 1, 'AC_PROG_LIBTOOL' => 1, 'AM_INIT_AUTOMAKE' => 1, 'AC_CONFIG_SUBDIRS' => 1, @@ -149,8 +149,8 @@ 'LT_CONFIG_LTDL_DIR' => 1, 'AC_REQUIRE_AUX_FILE' => 1, 'AC_CONFIG_LINKS' => 1, - 'm4_sinclude' => 1, 'LT_SUPPORTED_TAG' => 1, + 'm4_sinclude' => 1, 'AM_MAINTAINER_MODE' => 1, 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, '_m4_warn' => 1, @@ -167,11 +167,11 @@ 'AH_OUTPUT' => 1, '_AM_SUBST_NOTMAKE' => 1, 'AC_CONFIG_AUX_DIR' => 1, - 'sinclude' => 1, - 'm4_pattern_allow' => 1, 'AM_PROG_CC_C_O' => 1, - 'AC_CANONICAL_SYSTEM' => 1, + 'm4_pattern_allow' => 1, + 'sinclude' => 1, 'AM_CONDITIONAL' => 1, + 'AC_CANONICAL_SYSTEM' => 1, 'AC_CONFIG_HEADERS' => 1, 'AC_DEFINE_TRACE_LITERAL' => 1, 'm4_include' => 1, @@ -208,20 +208,20 @@ ], { '_LT_AC_TAGCONFIG' => 1, - 'AM_ENABLE_STATIC' => 1, 'm4_pattern_forbid' => 1, - 'AC_LIBTOOL_COMPILER_OPTION' => 1, + 'AM_ENABLE_STATIC' => 1, 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, + 'AC_LIBTOOL_COMPILER_OPTION' => 1, '_LT_AC_SHELL_INIT' => 1, 'AC_DISABLE_SHARED' => 1, - 'AC_DEFUN' => 1, '_LT_COMPILER_BOILERPLATE' => 1, - 'AC_PROG_LIBTOOL' => 1, - 'AC_LIBTOOL_SETUP' => 1, - 'AC_LIBTOOL_WIN32_DLL' => 1, + 'AC_DEFUN' => 1, '_LT_AC_LANG_CXX_CONFIG' => 1, - 'AM_PROG_MKDIR_P' => 1, + 'AC_LIBTOOL_WIN32_DLL' => 1, + 'AC_LIBTOOL_SETUP' => 1, + 'AC_PROG_LIBTOOL' => 1, 'AC_PROG_LD_RELOAD_FLAG' => 1, + 'AM_PROG_MKDIR_P' => 1, 'AM_AUTOMAKE_VERSION' => 1, 'AM_MISSING_HAS_RUN' => 1, 'AM_MISSING_PROG' => 1, @@ -233,35 +233,35 @@ '_PKG_SHORT_ERRORS_SUPPORTED' => 1, '_m4_warn' => 1, 'AC_LIBTOOL_OBJDIR' => 1, - 'AM_SANITY_CHECK' => 1, 'AC_LIBTOOL_LINKER_OPTION' => 1, + 'AM_SANITY_CHECK' => 1, 'PKG_CHECK_EXISTS' => 1, 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, '_LT_AC_CHECK_DLFCN' => 1, 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, - 'LT_AC_PROG_RC' => 1, 'AC_LIBTOOL_CXX' => 1, + 'LT_AC_PROG_RC' => 1, '_AM_PROG_TAR' => 1, - 'LT_AC_PROG_GCJ' => 1, 'AC_LIBTOOL_GCJ' => 1, - 'AM_DEP_TRACK' => 1, - '_LT_AC_PROG_CXXCPP' => 1, + 'LT_AC_PROG_GCJ' => 1, 'AM_DISABLE_STATIC' => 1, + '_LT_AC_PROG_CXXCPP' => 1, + 'AM_DEP_TRACK' => 1, '_AC_PROG_LIBTOOL' => 1, - '_LT_AC_LANG_F77' => 1, 'AC_LIBTOOL_CONFIG' => 1, + '_LT_AC_LANG_F77' => 1, '_AM_IF_OPTION' => 1, 'AC_PATH_TOOL_PREFIX' => 1, - 'AC_LIBTOOL_F77' => 1, 'm4_pattern_allow' => 1, + 'AC_LIBTOOL_F77' => 1, 'AM_DISABLE_SHARED' => 1, 'AM_SET_LEADING_DOT' => 1, - '_LT_AC_LANG_CXX' => 1, 'AM_PROG_LIBTOOL' => 1, - '_AM_DEPENDENCIES' => 1, - '_LT_AC_FILE_LTDLL_C' => 1, + '_LT_AC_LANG_CXX' => 1, 'AM_PROG_LD' => 1, + '_LT_AC_FILE_LTDLL_C' => 1, + '_AM_DEPENDENCIES' => 1, 'AC_LIBTOOL_LANG_C_CONFIG' => 1, '_LT_AC_SYS_COMPILER' => 1, 'AM_PROG_NM' => 1, @@ -271,16 +271,16 @@ 'AC_LIBTOOL_DLOPEN' => 1, 'AC_LIBLTDL_CONVENIENCE' => 1, 'AC_PROG_LD' => 1, - 'AC_ENABLE_FAST_INSTALL' => 1, 'AC_PROG_LD_GNU' => 1, + 'AC_ENABLE_FAST_INSTALL' => 1, 'AC_DEPLIBS_CHECK_METHOD' => 1, - 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, 'AC_LIBLTDL_INSTALLABLE' => 1, + 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, '_AM_SET_OPTION' => 1, '_LT_LINKER_BOILERPLATE' => 1, - 'AC_LIBTOOL_PROG_CC_C_O' => 1, 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, + 'AC_LIBTOOL_PROG_CC_C_O' => 1, 'AM_INIT_AUTOMAKE' => 1, 'AC_DISABLE_STATIC' => 1, 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, @@ -289,41 +289,41 @@ '_LT_AC_LANG_RC_CONFIG' => 1, '_LT_AC_LANG_GCJ' => 1, 'AC_LIBTOOL_RC' => 1, - '_LT_AC_PROG_ECHO_BACKSLASH' => 1, 'AC_DISABLE_FAST_INSTALL' => 1, + '_LT_AC_PROG_ECHO_BACKSLASH' => 1, 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, - '_LT_AC_TRY_DLOPEN_SELF' => 1, - '_LT_AC_SYS_LIBPATH_AIX' => 1, 'include' => 1, + '_LT_AC_SYS_LIBPATH_AIX' => 1, + '_LT_AC_TRY_DLOPEN_SELF' => 1, 'LT_AC_PROG_SED' => 1, 'AM_ENABLE_SHARED' => 1, 'AM_AUX_DIR_EXPAND' => 1, '_LT_AC_LANG_GCJ_CONFIG' => 1, - 'AC_ENABLE_SHARED' => 1, - 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, '_LT_AC_LANG_F77_CONFIG' => 1, + 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, + 'AC_ENABLE_SHARED' => 1, '_AM_SET_OPTIONS' => 1, - 'AM_RUN_LOG' => 1, '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'AM_RUN_LOG' => 1, 'AC_LIBTOOL_PICMODE' => 1, - '_LT_REQUIRED_DARWIN_CHECKS' => 1, - 'AC_ENABLE_STATIC' => 1, - 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, 'AC_CHECK_LIBM' => 1, - '_LT_AC_TAGVAR' => 1, + 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, + 'AC_ENABLE_STATIC' => 1, + '_LT_REQUIRED_DARWIN_CHECKS' => 1, 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, - '_AM_MANGLE_OPTION' => 1, + '_LT_AC_TAGVAR' => 1, 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, + '_AM_MANGLE_OPTION' => 1, 'AM_CONDITIONAL' => 1, 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, 'AM_SET_DEPDIR' => 1, - '_LT_CC_BASENAME' => 1, - 'AM_PROG_INSTALL_SH' => 1, - 'PKG_PROG_PKG_CONFIG' => 1, 'm4_include' => 1, + 'PKG_PROG_PKG_CONFIG' => 1, + 'AM_PROG_INSTALL_SH' => 1, + '_LT_CC_BASENAME' => 1, 'AC_PROG_EGREP' => 1, - 'AC_PATH_MAGIC' => 1, '_AC_AM_CONFIG_HEADER_HOOK' => 1, + 'AC_PATH_MAGIC' => 1, 'AM_MAKE_INCLUDE' => 1 } ], 'Autom4te::Request' ) diff --git a/autom4te.cache/traces.2 b/autom4te.cache/traces.2 index 4832065..8fcb525 100644 --- a/autom4te.cache/traces.2 +++ b/autom4te.cache/traces.2 @@ -287,40 +287,43 @@ m4trace:configure.ac:14: -1- m4_pattern_allow([^am__fastdepCC_TRUE$]) m4trace:configure.ac:14: -1- AC_SUBST([am__fastdepCC_FALSE]) m4trace:configure.ac:14: -1- AC_SUBST_TRACE([am__fastdepCC_FALSE]) m4trace:configure.ac:14: -1- m4_pattern_allow([^am__fastdepCC_FALSE$]) -m4trace:configure.ac:18: -1- AC_SUBST([DEPS_CFLAGS]) -m4trace:configure.ac:18: -1- AC_SUBST_TRACE([DEPS_CFLAGS]) -m4trace:configure.ac:18: -1- m4_pattern_allow([^DEPS_CFLAGS$]) -m4trace:configure.ac:19: -1- AC_SUBST([DEPS_LIBS]) -m4trace:configure.ac:19: -1- AC_SUBST_TRACE([DEPS_LIBS]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^DEPS_LIBS$]) -m4trace:configure.ac:21: -1- m4_pattern_forbid([^_?PKG_[A-Z_]+$]) -m4trace:configure.ac:21: -1- m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) -m4trace:configure.ac:21: -1- AC_SUBST([PKG_CONFIG]) -m4trace:configure.ac:21: -1- AC_SUBST_TRACE([PKG_CONFIG]) -m4trace:configure.ac:21: -1- m4_pattern_allow([^PKG_CONFIG$]) -m4trace:configure.ac:21: -1- AC_SUBST([PKG_CONFIG]) -m4trace:configure.ac:21: -1- AC_SUBST_TRACE([PKG_CONFIG]) -m4trace:configure.ac:21: -1- m4_pattern_allow([^PKG_CONFIG$]) -m4trace:configure.ac:21: -1- AC_SUBST([DEPS_CFLAGS]) -m4trace:configure.ac:21: -1- AC_SUBST_TRACE([DEPS_CFLAGS]) -m4trace:configure.ac:21: -1- m4_pattern_allow([^DEPS_CFLAGS$]) -m4trace:configure.ac:21: -1- AC_SUBST([DEPS_LIBS]) -m4trace:configure.ac:21: -1- AC_SUBST_TRACE([DEPS_LIBS]) -m4trace:configure.ac:21: -1- m4_pattern_allow([^DEPS_LIBS$]) -m4trace:configure.ac:36: -1- AC_CONFIG_FILES([Makefile +m4trace:configure.ac:15: -1- AC_SUBST([GLIB_GENMARSHAL]) +m4trace:configure.ac:15: -1- AC_SUBST_TRACE([GLIB_GENMARSHAL]) +m4trace:configure.ac:15: -1- m4_pattern_allow([^GLIB_GENMARSHAL$]) +m4trace:configure.ac:19: -1- AC_SUBST([DEPS_CFLAGS]) +m4trace:configure.ac:19: -1- AC_SUBST_TRACE([DEPS_CFLAGS]) +m4trace:configure.ac:19: -1- m4_pattern_allow([^DEPS_CFLAGS$]) +m4trace:configure.ac:20: -1- AC_SUBST([DEPS_LIBS]) +m4trace:configure.ac:20: -1- AC_SUBST_TRACE([DEPS_LIBS]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^DEPS_LIBS$]) +m4trace:configure.ac:22: -1- m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) +m4trace:configure.ac:22: -1- AC_SUBST([PKG_CONFIG]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([PKG_CONFIG]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^PKG_CONFIG$]) +m4trace:configure.ac:22: -1- AC_SUBST([PKG_CONFIG]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([PKG_CONFIG]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^PKG_CONFIG$]) +m4trace:configure.ac:22: -1- AC_SUBST([DEPS_CFLAGS]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([DEPS_CFLAGS]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^DEPS_CFLAGS$]) +m4trace:configure.ac:22: -1- AC_SUBST([DEPS_LIBS]) +m4trace:configure.ac:22: -1- AC_SUBST_TRACE([DEPS_LIBS]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^DEPS_LIBS$]) +m4trace:configure.ac:37: -1- AC_CONFIG_FILES([Makefile src/Makefile]) -m4trace:configure.ac:38: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs]) -m4trace:configure.ac:38: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:38: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:38: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs]) -m4trace:configure.ac:38: -1- AC_SUBST_TRACE([LTLIBOBJS]) -m4trace:configure.ac:38: -1- m4_pattern_allow([^LTLIBOBJS$]) -m4trace:configure.ac:38: -1- AC_SUBST_TRACE([top_builddir]) -m4trace:configure.ac:38: -1- AC_SUBST_TRACE([srcdir]) -m4trace:configure.ac:38: -1- AC_SUBST_TRACE([abs_srcdir]) -m4trace:configure.ac:38: -1- AC_SUBST_TRACE([top_srcdir]) -m4trace:configure.ac:38: -1- AC_SUBST_TRACE([abs_top_srcdir]) -m4trace:configure.ac:38: -1- AC_SUBST_TRACE([builddir]) -m4trace:configure.ac:38: -1- AC_SUBST_TRACE([abs_builddir]) -m4trace:configure.ac:38: -1- AC_SUBST_TRACE([abs_top_builddir]) -m4trace:configure.ac:38: -1- AC_SUBST_TRACE([INSTALL]) +m4trace:configure.ac:39: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs]) +m4trace:configure.ac:39: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) +m4trace:configure.ac:39: -1- m4_pattern_allow([^LIB@&t@OBJS$]) +m4trace:configure.ac:39: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs]) +m4trace:configure.ac:39: -1- AC_SUBST_TRACE([LTLIBOBJS]) +m4trace:configure.ac:39: -1- m4_pattern_allow([^LTLIBOBJS$]) +m4trace:configure.ac:39: -1- AC_SUBST_TRACE([top_builddir]) +m4trace:configure.ac:39: -1- AC_SUBST_TRACE([srcdir]) +m4trace:configure.ac:39: -1- AC_SUBST_TRACE([abs_srcdir]) +m4trace:configure.ac:39: -1- AC_SUBST_TRACE([top_srcdir]) +m4trace:configure.ac:39: -1- AC_SUBST_TRACE([abs_top_srcdir]) +m4trace:configure.ac:39: -1- AC_SUBST_TRACE([builddir]) +m4trace:configure.ac:39: -1- AC_SUBST_TRACE([abs_builddir]) +m4trace:configure.ac:39: -1- AC_SUBST_TRACE([abs_top_builddir]) +m4trace:configure.ac:39: -1- AC_SUBST_TRACE([INSTALL]) diff --git a/autom4te.cache/traces.3 b/autom4te.cache/traces.3 index f58d10e..8e869f4 100644 --- a/autom4te.cache/traces.3 +++ b/autom4te.cache/traces.3 @@ -6893,50 +6893,51 @@ m4trace:configure.ac:14: -1- AM_CONDITIONAL([am__fastdepCC], [ && test "$am_cv_CC_dependencies_compiler_type" = gcc3]) m4trace:configure.ac:14: -1- m4_pattern_allow([^am__fastdepCC_TRUE$]) m4trace:configure.ac:14: -1- m4_pattern_allow([^am__fastdepCC_FALSE$]) -m4trace:configure.ac:18: -1- m4_pattern_allow([^DEPS_CFLAGS$]) -m4trace:configure.ac:19: -1- m4_pattern_allow([^DEPS_LIBS$]) -m4trace:configure.ac:21: -1- PKG_CHECK_MODULES([DEPS], [ glib-2.0 >= 2.2, - gobject-2.0 >= 2.0, +m4trace:configure.ac:15: -1- m4_pattern_allow([^GLIB_GENMARSHAL$]) +m4trace:configure.ac:19: -1- m4_pattern_allow([^DEPS_CFLAGS$]) +m4trace:configure.ac:20: -1- m4_pattern_allow([^DEPS_LIBS$]) +m4trace:configure.ac:22: -1- PKG_CHECK_MODULES([DEPS], [ glib-2.0 >= 2.2, + gobject-2.0 >= 2.10, gtk+-2.0 >= 2.2, - clutter-0.6 >= 0.6, - clutter-gtk-0.6 >= 0.6 + clutter-0.8 >= 0.8, + clutter-gtk-0.8 >= 0.8 ]) -m4trace:configure.ac:21: -1- PKG_PROG_PKG_CONFIG -m4trace:configure.ac:21: -1- m4_pattern_forbid([^_?PKG_[A-Z_]+$]) -m4trace:configure.ac:21: -1- m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) -m4trace:configure.ac:21: -1- m4_pattern_allow([^PKG_CONFIG$]) -m4trace:configure.ac:21: -1- m4_pattern_allow([^PKG_CONFIG$]) -m4trace:configure.ac:21: -1- m4_pattern_allow([^DEPS_CFLAGS$]) -m4trace:configure.ac:21: -1- m4_pattern_allow([^DEPS_LIBS$]) -m4trace:configure.ac:21: -1- PKG_CHECK_EXISTS([ glib-2.0 >= 2.2, - gobject-2.0 >= 2.0, +m4trace:configure.ac:22: -1- PKG_PROG_PKG_CONFIG +m4trace:configure.ac:22: -1- m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^PKG_CONFIG$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^PKG_CONFIG$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^DEPS_CFLAGS$]) +m4trace:configure.ac:22: -1- m4_pattern_allow([^DEPS_LIBS$]) +m4trace:configure.ac:22: -1- PKG_CHECK_EXISTS([ glib-2.0 >= 2.2, + gobject-2.0 >= 2.10, gtk+-2.0 >= 2.2, - clutter-0.6 >= 0.6, - clutter-gtk-0.6 >= 0.6 + clutter-0.8 >= 0.8, + clutter-gtk-0.8 >= 0.8 ], [pkg_cv_[]DEPS_CFLAGS=`$PKG_CONFIG --[]cflags " glib-2.0 >= 2.2, - gobject-2.0 >= 2.0, + gobject-2.0 >= 2.10, gtk+-2.0 >= 2.2, - clutter-0.6 >= 0.6, - clutter-gtk-0.6 >= 0.6 + clutter-0.8 >= 0.8, + clutter-gtk-0.8 >= 0.8 " 2>/dev/null`], [pkg_failed=yes]) -m4trace:configure.ac:21: -1- PKG_CHECK_EXISTS([ glib-2.0 >= 2.2, - gobject-2.0 >= 2.0, +m4trace:configure.ac:22: -1- PKG_CHECK_EXISTS([ glib-2.0 >= 2.2, + gobject-2.0 >= 2.10, gtk+-2.0 >= 2.2, - clutter-0.6 >= 0.6, - clutter-gtk-0.6 >= 0.6 + clutter-0.8 >= 0.8, + clutter-gtk-0.8 >= 0.8 ], [pkg_cv_[]DEPS_LIBS=`$PKG_CONFIG --[]libs " glib-2.0 >= 2.2, - gobject-2.0 >= 2.0, + gobject-2.0 >= 2.10, gtk+-2.0 >= 2.2, - clutter-0.6 >= 0.6, - clutter-gtk-0.6 >= 0.6 + clutter-0.8 >= 0.8, + clutter-gtk-0.8 >= 0.8 " 2>/dev/null`], [pkg_failed=yes]) -m4trace:configure.ac:21: -1- _PKG_SHORT_ERRORS_SUPPORTED -m4trace:configure.ac:38: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:38: -1- m4_pattern_allow([^LTLIBOBJS$]) -m4trace:configure.ac:38: -1- _AC_AM_CONFIG_HEADER_HOOK([$ac_file]) -m4trace:configure.ac:38: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS +m4trace:configure.ac:22: -1- _PKG_SHORT_ERRORS_SUPPORTED +m4trace:configure.ac:39: -1- m4_pattern_allow([^LIB@&t@OBJS$]) +m4trace:configure.ac:39: -1- m4_pattern_allow([^LTLIBOBJS$]) +m4trace:configure.ac:39: -1- _AC_AM_CONFIG_HEADER_HOOK([$ac_file]) +m4trace:configure.ac:39: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS diff --git a/configure.ac b/configure.ac index 8a35f60..934c87d 100644 --- a/configure.ac +++ b/configure.ac @@ -12,6 +12,7 @@ AC_LIBLTDL_CONVENIENCE # Checks for programs. AC_PROG_CC +AC_PATH_PROG([GLIB_GENMARSHAL], [glib-genmarshal]) # Checks for libraries. @@ -20,10 +21,10 @@ AC_SUBST(DEPS_LIBS) PKG_CHECK_MODULES(DEPS, [ glib-2.0 >= 2.2, - gobject-2.0 >= 2.0, + gobject-2.0 >= 2.10, gtk+-2.0 >= 2.2, - clutter-0.6 >= 0.6, - clutter-gtk-0.6 >= 0.6 + clutter-0.8 >= 0.8, + clutter-gtk-0.8 >= 0.8 ] ) diff --git a/src/Makefile.am b/src/Makefile.am index 8c3f541..0a518bb 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,5 +1,31 @@ + +BUILT_SOURCES = \ + champlain-marshal.h \ + champlain-marshal.c + +CLEANFILES = $(BUILT_SOURCES) + +CHAMPLAIN_MARSHAL = champlain-marshal +CHAMPLAIN_MARSHAL_LIST = champlain-marshal.list + bin_PROGRAMS = champlain -champlain_SOURCES = champlain_widget.c launcher.c + +nodist_champlain_SOURCES = \ + $(BUILT_SOURCES) + +champlain_SOURCES = $(CHAMPLAIN_MARSHAL_LIST) \ + champlain_widget.c \ + launcher.c champlain_LDADD = $(DEPS_LIBS) AM_CPPFLAGS = $(DEPS_CFLAGS) + + +EXTRA_DIST = $(CHAMPLAIN_MARSHAL_LIST) + +champlain-marshal.h: $(CHAMPLAIN_MARSHAL_LIST) + @GLIB_GENMARSHAL@ --header --prefix=champlain_marshal $< > $(CHAMPLAIN_MARSHAL).h + +champlain-marshal.c: $(CHAMPLAIN_MARSHAL_LIST) + @GLIB_GENMARSHAL@ --body --prefix=champlain_marshal $< > $(CHAMPLAIN_MARSHAL).c + diff --git a/src/champlain_widget.c b/src/champlain_widget.c index 4f99b76..0f358f7 100644 --- a/src/champlain_widget.c +++ b/src/champlain_widget.c @@ -21,11 +21,13 @@ #include "champlain_defines.h" #include "champlain_widget.h" +#include "champlain-marshal.h" #include #include #include #include +#include enum { /* normal signals */ @@ -45,35 +47,137 @@ static guint champlain_widget_signals[LAST_SIGNAL] = { 0, }; struct _ChamplainWidgetPrivate { GtkWidget* clutterEmbed; + GtkAdjustment* horizontalAdjustment; + GtkAdjustment* verticalAdjustment; + GdkPoint scrollOffset; }; G_DEFINE_TYPE(ChamplainWidget, champlain_widget, GTK_TYPE_ALIGNMENT) + +static void +champlain_widget_adjustement_changed(GtkAdjustment* adjustment, gpointer champlainWidget) +{ + ChamplainWidgetPrivate* priv = CHAMPLAIN_WIDGET_GET_PRIVATE(champlainWidget); + + if (adjustment == priv->horizontalAdjustment) + priv->scrollOffset.x = (int)gtk_adjustment_get_value(adjustment); + else if (adjustment == priv->verticalAdjustment) + priv->scrollOffset.y = (int)gtk_adjustment_get_value(adjustment); + + // Check if the offset is empty + + +} + +static void +champlain_widget_set_scroll_adjustments(ChamplainWidget *champlainWidget, + GtkAdjustment *hadjustment, + GtkAdjustment *vadjustment) +{ + ChamplainWidgetPrivate* priv = CHAMPLAIN_WIDGET_GET_PRIVATE(champlainWidget); + + if (priv->horizontalAdjustment) { + g_signal_handlers_disconnect_by_func(G_OBJECT(priv->horizontalAdjustment), (gpointer)champlain_widget_adjustement_changed, champlainWidget); + g_signal_handlers_disconnect_by_func(G_OBJECT(priv->verticalAdjustment), (gpointer)champlain_widget_adjustement_changed, champlainWidget); + g_object_unref(priv->horizontalAdjustment); + g_object_unref(priv->verticalAdjustment); + } + + priv->horizontalAdjustment = hadjustment; + priv->verticalAdjustment = vadjustment; + +} + +static void champlain_widget_finalize(GObject* object) +{ + ChamplainWidget* widget = CHAMPLAIN_WIDGET(object); + ChamplainWidgetPrivate* priv = CHAMPLAIN_WIDGET_GET_PRIVATE(widget); + + if (priv->horizontalAdjustment) { + g_object_unref(priv->horizontalAdjustment); + g_signal_handlers_disconnect_by_func(G_OBJECT(priv->horizontalAdjustment), (gpointer)champlain_widget_adjustement_changed, widget); + } + if (priv->verticalAdjustment) { + g_object_unref(priv->verticalAdjustment); + g_signal_handlers_disconnect_by_func(G_OBJECT(priv->verticalAdjustment), (gpointer)champlain_widget_adjustement_changed, widget); + } + + + G_OBJECT_CLASS(champlain_widget_parent_class)->finalize(object); +} + static void champlain_widget_class_init(ChamplainWidgetClass* champlainWidgetClass) { -/* GtkWidgetClass* widgetClass = GTK_WIDGET_CLASS(champlainWidget); - widgetClass->realize = champlain_widget_realize; - widgetClass->expose_event = champlain_widget_expose_event; - widgetClass->key_press_event = champlain_widget_key_press_event; - widgetClass->key_release_event = champlain_widget_key_release_event; - widgetClass->button_press_event = champlain_widget_button_press_event; - widgetClass->button_release_event = champlain_widget_button_release_event; - widgetClass->motion_notify_event = champlain_widget_motion_event; - widgetClass->scroll_event = champlain_widget_scroll_event; - widgetClass->size_allocate = champlain_widget_size_allocate; - widgetClass->popup_menu = champlain_widget_popup_menu_handler; - widgetClass->focus_in_event = champlain_widget_focus_in_event; - widgetClass->focus_out_event = champlain_widget_focus_out_event; - widgetClass->get_accessible = champlain_widget_get_accessible; -*/ g_type_class_add_private(champlainWidgetClass, sizeof(ChamplainWidgetPrivate)); - + + + /* + * make us scrollable (e.g. addable to a GtkScrolledWindow) + */ + champlainWidgetClass->set_scroll_adjustments = champlain_widget_set_scroll_adjustments; + GTK_WIDGET_CLASS(champlainWidgetClass)->set_scroll_adjustments_signal = g_signal_new("set-scroll-adjustments", + G_TYPE_FROM_CLASS(champlainWidgetClass), + (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), + G_STRUCT_OFFSET(ChamplainWidgetClass, set_scroll_adjustments), + NULL, NULL, + champlain_marshal_VOID__OBJECT_OBJECT, + G_TYPE_NONE, 2, + GTK_TYPE_ADJUSTMENT, GTK_TYPE_ADJUSTMENT); + + + GObjectClass* objectClass = G_OBJECT_CLASS(champlainWidgetClass); + objectClass->finalize = champlain_widget_finalize; } static void champlain_widget_init(ChamplainWidget* champlainWidget) { + ChamplainWidgetPrivate* priv = CHAMPLAIN_WIDGET_GET_PRIVATE(champlainWidget); + + priv->horizontalAdjustment = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, 0.0, 0.0, 0.0, 0.0)); + priv->verticalAdjustment = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, 0.0, 0.0, 0.0, 0.0)); + + g_object_ref_sink(priv->horizontalAdjustment); + g_object_ref_sink(priv->verticalAdjustment); +} + +static void champlain_widget_load_map(ChamplainWidget* champlainWidget) +{ + ChamplainWidgetPrivate* priv = CHAMPLAIN_WIDGET_GET_PRIVATE(champlainWidget); + + ClutterActor* stage = gtk_clutter_embed_get_stage(GTK_CLUTTER_EMBED(priv->clutterEmbed)); + + ClutterColor white; + clutter_color_parse("white", &white); + ClutterColor blue; + clutter_color_parse("blue", &blue); + + ClutterActor * rect = clutter_rectangle_new_with_color(&blue); + clutter_container_add(CLUTTER_CONTAINER(stage), rect, NULL); + clutter_actor_set_position (rect, 100, 100); + clutter_actor_set_size (rect, 100, 100); + clutter_actor_show(rect); + + rect = clutter_rectangle_new_with_color(&white); + clutter_container_add(CLUTTER_CONTAINER(stage), rect, NULL); + clutter_actor_set_position (rect, 100, 200); + clutter_actor_set_size (rect, 100, 100); + clutter_actor_show(rect); + + rect = clutter_rectangle_new_with_color(&blue); + clutter_container_add(CLUTTER_CONTAINER(stage), rect, NULL); + clutter_actor_set_position (rect, 200, 200); + clutter_actor_set_size (rect, 100, 100); + clutter_actor_show(rect); + + rect = clutter_rectangle_new_with_color(&white); + clutter_container_add(CLUTTER_CONTAINER(stage), rect, NULL); + clutter_actor_set_position (rect, 200, 100); + clutter_actor_set_size (rect, 100, 100); + clutter_actor_show(rect); + } GtkWidget* champlain_widget_new() @@ -82,8 +186,14 @@ GtkWidget* champlain_widget_new() ChamplainWidgetPrivate* priv = CHAMPLAIN_WIDGET_GET_PRIVATE(widget); priv->clutterEmbed = gtk_clutter_embed_new(); + ClutterActor* stage = gtk_clutter_embed_get_stage(GTK_CLUTTER_EMBED(priv->clutterEmbed)); + + ClutterColor black; + clutter_color_parse("black", &black); + clutter_stage_set_color(CLUTTER_STAGE(stage), &black); gtk_container_add(GTK_CONTAINER(widget), priv->clutterEmbed); - gtk_widget_show_all(GTK_WIDGET(widget)); + + champlain_widget_load_map(widget); return GTK_WIDGET(widget); } diff --git a/src/champlain_widget.h b/src/champlain_widget.h index c89dc1f..cf883ca 100644 --- a/src/champlain_widget.h +++ b/src/champlain_widget.h @@ -49,11 +49,9 @@ struct _ChamplainWidgetClass { ChamplainWidget * (* create_widget) (ChamplainWidget* widget); - - void (* select_all) (ChamplainWidget *widget); - void (* cut_clipboard) (ChamplainWidget *widget); - void (* copy_clipboard) (ChamplainWidget *widget); - void (* paste_clipboard) (ChamplainWidget *widget); + void (* set_scroll_adjustments) (ChamplainWidget *widget, + GtkAdjustment *hadjustment, + GtkAdjustment *vadjustment); }; diff --git a/src/launcher.c b/src/launcher.c index 69f1a09..c015276 100644 --- a/src/launcher.c +++ b/src/launcher.c @@ -37,9 +37,9 @@ main (int argc, char *argv[]) { GtkWidget *window; GtkWidget *widget; + GtkWidget *scrolled; - gtk_init (&argc, &argv); - clutter_init (&argc, &argv); + gtk_clutter_init (&argc, &argv); /* create the main, top level, window */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); @@ -60,12 +60,13 @@ main (int argc, char *argv[]) */ g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (on_destroy), NULL); - - /* Create the "Hello, World" label */ + + scrolled = gtk_scrolled_window_new (NULL, NULL); widget = champlain_widget_new (); + gtk_container_add (GTK_CONTAINER (scrolled), widget); /* and insert it into the main window */ - gtk_container_add (GTK_CONTAINER (window), widget); + gtk_container_add (GTK_CONTAINER (window), scrolled); /* make sure that everything, window and label, are visible */ gtk_widget_show_all (window); -- 2.39.5