From 7526e2e3e5db9c9c16632084763a2b577ab0ef30 Mon Sep 17 00:00:00 2001 From: Sergio Villar Senin Date: Tue, 27 Oct 2009 13:47:11 +0100 Subject: [PATCH] Removed the Mozembed stuff Removed hildon1 from configure.ac --- configure.ac | 391 ++----- src/hildon2/modest-platform.c | 4 +- src/widgets/Makefile.am | 14 - src/widgets/modest-mozembed-mime-part-view.cpp | 405 ------- src/widgets/modest-mozembed-mime-part-view.h | 99 -- src/widgets/modest-mozembed-msg-view.c | 1471 ------------------------ src/widgets/modest-mozembed-msg-view.h | 131 --- 7 files changed, 120 insertions(+), 2395 deletions(-) delete mode 100644 src/widgets/modest-mozembed-mime-part-view.cpp delete mode 100644 src/widgets/modest-mozembed-mime-part-view.h delete mode 100644 src/widgets/modest-mozembed-msg-view.c delete mode 100644 src/widgets/modest-mozembed-msg-view.h diff --git a/configure.ac b/configure.ac index 220edf8..6ae4832 100644 --- a/configure.ac +++ b/configure.ac @@ -150,9 +150,7 @@ AC_SUBST(HAVE_GTK_TREE_VIEW_COLUMN_GET_CELL_DATA_HINT) CFLAGS="$modest_save_cflags" LIBS="$modest_save_libs" - -dnl dnl now, determine what to build -dnl AC_MSG_NOTICE([Determining what platform to build]) +dnl --------------- PLATFORM ----------- PKG_CHECK_MODULES(MODEST_MAEMO_LIBS,conic,[detected_platform=maemo],[detected_platform=gnome]) AC_ARG_WITH(platform, [ @@ -179,96 +177,91 @@ elif test "$with_platform" = "gnome"; then fi AC_SUBST(MODEST_PLUGIN_DEFINES) -# -# check the widgets library -# +dnl ---------- PLATFORM: *DBUS API* ----------- +if test "x$with_platform" == "xgnome"; then + PKG_CHECK_MODULES(MODEST_PLATFORM,libtinymail-gnome-desktop-1.0 glib-2.0 >= 2.8 libnotify) + AC_DEFINE_UNQUOTED(MODEST_PLATFORM_GNOME, 1, ["Whether modest is being built for the GNOME platform."]) +else + have_dbusapi=true + PKG_CHECK_MODULES(MODEST_PLATFORM,libosso dbus-1 libtinymail-maemo-1.0 libebook-1.2 ) + AC_DEFINE_UNQUOTED(MODEST_PLATFORM_MAEMO, 1, ["Whether modest is being built for the MAEMO platform."]) +fi +AM_CONDITIONAL(MODEST_HAVE_DBUS_API,test "x$have_dbusapi" == "xtrue") +AC_SUBST(MODEST_PLATFORM) + + +dnl --------------- TOOLKIT SELECTION ----------- +AC_ARG_WITH(toolkit, [ +Target toolkit: + --with-toolkit=detect detect target toolkit (default) + --with-toolkit=gtk build for Gnome + --with-toolkit=hildon2 build for Hildon 2.x +], +[case "${with_toolkit}" in + gtk|hildon2|detect) MODEST_TOOLKIT=${with_toolkit};; + *) AC_MSG_ERROR([Unknown toolkit selected]);; +esac], [MODEST_TOOLKIT=detect]) + have_hildon2=false -have_hildon1=false -have_hildon0=false have_gtk=false -PKG_CHECK_EXISTS(hildon-1, have_hildon1=true,have_hildon1=false) -if test "$have_hildon1" = "true"; then - PKG_CHECK_EXISTS(hildon-1 >= 2.1.0 hildon-fm-2, have_hildon2=true, have_hildon2=false) - PKG_CHECK_MODULES(MODEST_HILDON_WIDGETS,hildon-1 hildon-fm-2) - hildonpkgs="hildon-1 hildon-fm-2" - detected_toolkit=hildon1 - echo "DETECTED HILDON 1 $have_hildon2." -else - hildonpkgs="hildon-libs hildon-fm" - detected_toolkit=hildon1 - PKG_CHECK_EXISTS(hildon-libs >= 0.12.0, have_hildon1=true, have_hildon1=false) - if test "$have_hildon1" = "false"; then - PKG_CHECK_EXISTS(hildon-libs, have_hildon0=true, have_hildon0=false) - if test "$have_hildon0" = "false"; then - have_gtk=true - detected_toolkit=gtk - hildonpkgs= - fi + +if test "$MODEST_TOOLKIT" = "detect"; then + PKG_CHECK_EXISTS(hildon-1 >= 2.1.0 hildon-fm-2, have_hildon2=true, have_gtk=true) + if test "x$have_hildon2" = "xtrue"; then + PKG_CHECK_MODULES(MODEST_HILDON_WIDGETS,hildon-1 hildon-fm-2) + hildonpkgs="hildon-1 hildon-fm-2" + detected_toolkit=hildon2 + hildon_api=`$PKG_CONFIG --modversion hildon-1 | cut -d. -f1` + echo "DETECTED HILDON 2 $have_hildon2." fi - if test "$have_gtk" = "false"; then - PKG_CHECK_MODULES(MODEST_HILDON_WIDGETS,hildon-libs hildon-fm) + MODEST_TOOLKIT="$detected_toolkit" + with_toolkit=$detected_toolkit +fi + +dnl -------- TOOLKIT SELECTION: *HILDON API* ----------- +if test "$with_toolkit" = "hildon2"; then + AC_DEFINE_UNQUOTED(MODEST_HILDON_API, $hildon_api, ["the API version of hildon"]) + MODEST_PLUGIN_DEFINES="$MODEST_PLUGIN_DEFINES -DMODEST_HILDON_API=$hildon_api" + MODEST_PLUGIN_DEFINES="$MODEST_PLUGIN_DEFINES -DMODEST_TOOLKIT_HILDON2" +elif test "$with_toolkit" = "gtk"; then + MODEST_PLUGIN_DEFINES="$MODEST_PLUGIN_DEFINES -DMODEST_TOOLKIT_GTK" +fi + +dnl -------- TOOLKIT SELECTION: *TOOLKIT DIR* ----------- +if test "x$with_toolkit" == "xgtk"; then + PKG_CHECK_MODULES(MODEST_TOOLKIT,glib-2.0 >= 2.8 gtk+-2.0 >= 2.10 libnotify gtksourceview-2.0) + AC_DEFINE_UNQUOTED(MODEST_TOOLKIT_GTK, 1, ["Whether modest is being build for the gtk toolkit."]) + MODEST_TOOLKIT_DIR=gnome +else + if test "$with_toolkit" = "hildon2"; then + AC_DEFINE_UNQUOTED(MODEST_TOOLKIT_HILDON2, 1, ["Whether modest is being build for the hildon2 toolkit."]) + MODEST_TOOLKIT_DIR=hildon2 fi fi +AC_SUBST(MODEST_TOOLKIT) +AC_SUBST(MODEST_TOOLKIT_DIR) + dnl --------------- HILDON & PLUGIN PKGS ----------- pluginpkgs=$hildonpkgs -echo "Plugin Packages $pluginpkgs" +dnl echo "Plugin Packages $pluginpkgs" AC_SUBST(pluginpkgs) use_profile_data=false # Plugin packages must not include libcanberra and libprofile -if test "$have_hildon2" = "true"; then - echo "DETECTED HILDON 2 $have_hildon2." - detected_toolkit=hildon2 +if test "$with_platform" = "maemo"; then hildonpkgs="$hildonpkgs libcanberra" AC_CHECK_HEADER([profiled/keys_nokia.h], use_profile_data=true, use_profile_data=false) if test "$use_profile_data" = "true"; then hildonpkgs="$hildonpkgs profile" AC_DEFINE_UNQUOTED(MODEST_USE_PROFILE, 1, ["Use the Profile data include"]) +dnl echo "HILDON 2 PACKAGES $hildonpkgs" fi - echo "HILDON 2 PACKAGES $hildonpkgs" fi AC_SUBST(hildonpkgs) +PKG_CHECK_MODULES(MODEST_TOOLKIT,$hildonpkgs) -dnl --------------- HILDON API ------------ -hildon_api= -if test "$have_hildon0" = "true"; then - hildon_api=0 -elif test "$have_hildon1" = "true"; then - hildon_api=1 -elif test "$have_gtk" = "false"; then - hildon_api=`$PKG_CONFIG --modversion hildon-1 | cut -d. -f1` -fi - -AC_DEFINE_UNQUOTED(MODEST_HILDON_API, $hildon_api, ["the API version of hildon"]) -MODEST_PLUGIN_DEFINES="$MODEST_PLUGIN_DEFINES -DMODEST_HILDON_API=$hildon_api" - -AC_ARG_WITH(toolkit, [ -Target toolkit: - --with-toolkit=detect detect target toolkit (default) - --with-toolkit=gtk build for Gnome - --with-toolkit=hildon1 build for Hildon 1.x - --with-toolkit=hildon2 build for Hildon 2.x -], -[case "${with_toolkit}" in - gtk|hildon1|hildon2|detect) MODEST_TOOLKIT=${with_toolkit};; - *) AC_MSG_ERROR([Unknown platform selected]);; -esac], [MODEST_TOOLKIT=detect]) - -if test "$MODEST_TOOLKIT" = "detect"; then - MODEST_TOOLKIT="$detected_toolkit" - with_toolkit=$detected_toolkit -fi - -if test "$with_toolkit" = "hildon1"; then - MODEST_PLUGIN_DEFINES="$MODEST_PLUGIN_DEFINES -DMODEST_TOOLKIT_HILDON1" -elif test "$with_toolkit" = "hildon2"; then - MODEST_PLUGIN_DEFINES="$MODEST_PLUGIN_DEFINES -DMODEST_TOOLKIT_HILDON2" -elif test "$with_toolkit" = "gtk"; then - MODEST_PLUGIN_DEFINES="$MODEST_PLUGIN_DEFINES -DMODEST_TOOLKIT_GNOME" -fi - -dnl Whether to use maemo-launcher or not +dnl -------------------- MAEMO LAUNCHER STUFF ------------ AC_ARG_ENABLE([maemo-launcher], [AS_HELP_STRING([--enable-maemo-launcher], [build with maemo-launcher support])], @@ -288,84 +281,40 @@ else fi AC_SUBST(MAEMO_LAUNCHER_MODEST_LDFLAGS) -have_easysetup=false -if test "x$with_toolkit" == "xgtk"; then - PKG_CHECK_MODULES(MODEST_TOOLKIT,glib-2.0 >= 2.8 gtk+-2.0 >= 2.10 libnotify gtksourceview-2.0) - AC_DEFINE_UNQUOTED(MODEST_TOOLKIT_GTK, 1, ["Whether modest is being build for the gtk toolkit."]) - MODEST_TOOLKIT_DIR=gnome -else - have_easysetup=true - PKG_CHECK_MODULES(MODEST_TOOLKIT,$hildonpkgs) - if test "$with_toolkit" = "hildon2"; then - AC_DEFINE_UNQUOTED(MODEST_TOOLKIT_HILDON2, 1, ["Whether modest is being build for the hildon2 toolkit."]) - MODEST_TOOLKIT_DIR=hildon2 - else - AC_DEFINE_UNQUOTED(MODEST_TOOLKIT_HILDON1, 1, ["Whether modest is being build for the hildon2 toolkit."]) - MODEST_TOOLKIT_DIR=maemo - fi - AC_DEFINE_UNQUOTED(MODEST_HAVE_EASYSETUP, 1, ["Whether we have the easysetup feature"]) -fi -AM_CONDITIONAL(MODEST_HAVE_EASYSETUP,test "x$have_easysetup" == "xtrue") -AM_CONDITIONAL(MODEST_IS_TOOLKIT_HILDON1, [test "x$with_toolkit" == "xhildon1"]) -AC_SUBST(MODEST_TOOLKIT) -AC_SUBST(MODEST_TOOLKIT_DIR) - -if test "x$with_platform" == "xgnome"; then - PKG_CHECK_MODULES(MODEST_PLATFORM,libtinymail-gnome-desktop-1.0 glib-2.0 >= 2.8 libnotify) - AC_DEFINE_UNQUOTED(MODEST_PLATFORM_GNOME, 1, ["Whether modest is being built for the GNOME platform."]) -dnl AC_MSG_ERROR([The GNOME Build is currently broken; please try the Maemo build instead]) -else - have_dbusapi=true - PKG_CHECK_MODULES(MODEST_PLATFORM,libosso dbus-1 libtinymail-maemo-1.0 libebook-1.2 ) - AC_DEFINE_UNQUOTED(MODEST_PLATFORM_MAEMO, 1, ["Whether modest is being built for the MAEMO platform."]) -fi -AM_CONDITIONAL(MODEST_HAVE_DBUS_API,test "x$have_dbusapi" == "xtrue") -AC_SUBST(MODEST_PLATFORM) - - - -# -# check for wpeditor or libwpeditor-plus (on maemo) -# -if test "x$with_toolkit" != "xgtk"; then -PKG_CHECK_MODULES(MODEST_WPEDITOR,wpeditor,have_wpeditor=true,have_wpeditor=false) -if test "x$have_wpeditor" == "xfalse"; then - PKG_CHECK_MODULES(MODEST_WPEDITOR,libwpeditor-plus,have_libwpeditorplus=true,have_libwpeditorplus=false) - if test "x$have_libwpeditorplus" == "xtrue"; then +dnl --------------- EDITOR ----------- +if test "x$with_toolkit" != "xgtk"; then + PKG_CHECK_MODULES(MODEST_WPEDITOR,wpeditor,have_wpeditor=true,have_wpeditor=false) + if test "x$have_wpeditor" == "xfalse"; then + PKG_CHECK_MODULES(MODEST_WPEDITOR,libwpeditor-plus,have_libwpeditorplus=true,have_libwpeditorplus=false) + if test "x$have_libwpeditorplus" == "xtrue"; then wpeditor="libwpeditor-plus" - AC_DEFINE_UNQUOTED(MODEST_HAVE_LIBWPEDITOR_PLUS, 1, ["Whether libwpeditor-plus is used."]) - else + AC_DEFINE_UNQUOTED(MODEST_HAVE_LIBWPEDITOR_PLUS, 1, ["Whether libwpeditor-plus is used."]) + else AC_MSG_ERROR([you need to have either wpeditor or libwpeditor-plus installed]) + fi + else + wpeditor="wpeditor" + AC_DEFINE_UNQUOTED(MODEST_HAVE_WPEDITOR, 1, ["Whether wpeditor is used."]) fi else - wpeditor="wpeditor" - AC_DEFINE_UNQUOTED(MODEST_HAVE_WPEDITOR, 1, ["Whether wpeditor is used."]) -fi + PKG_CHECK_EXISTS(gtksourceview-2.0, []. []) fi - -# -# check libalarm -# -if test "x$with_platform" == "xmaemo"; then - PKG_CHECK_MODULES(MODEST_LIBALARM,libalarm,have_libalarm=true,have_libalarm=false) - if test "x$have_libalarm" == "xfalse"; then - PKG_CHECK_MODULES(MODEST_LIBALARM, alarm, have_libalarm=true,have_libalarm=false) - fi +dnl --------------- LIBALARM ----------- +if test "x$with_platform" == "xmaemo"; then + PKG_CHECK_MODULES(MODEST_LIBALARM, alarm, have_libalarm=true,have_libalarm=false) if test "x$have_libalarm" == "xtrue"; then - AC_DEFINE_UNQUOTED(MODEST_HAVE_LIBALARM, 1, ["Whether libalarm is used."]) + AC_DEFINE_UNQUOTED(MODEST_HAVE_LIBALARM, 1, ["Whether libalarm is used."]) AC_SUBST(MODEST_LIBALARM_CFLAGS) AC_SUBST(MODEST_LIBALARM_LIBS) fi fi -# -# check for MCE -# -if test "x$with_platform" == "xmaemo"; then +dnl --------------- MCE ----------- +if test "x$with_platform" == "xmaemo"; then PKG_CHECK_MODULES(MODEST_MCE,mce,have_mce=true,have_mce=false) if test "x$have_mce" == "xtrue"; then - mce="mce" + mce="mce" AC_DEFINE_UNQUOTED(MODEST_HAVE_MCE, 1, ["Whether mce is used."]) AC_SUBST(MODEST_MCE_CFLAGS) AC_SUBST(MODEST_MCE_LIBS) @@ -374,12 +323,12 @@ else fi fi -# -# check for libconic; this is a trick to check whether we run -# on a 'real' maemo platform, or on, say, ubuntu embedded -# this determines whether we build with the non-hildon GTK+ -# -if test "x$with_platform" == "xmaemo"; then +dnl --------------- LIBCONIC ----------- +dnl check for libconic; this is a trick to check whether we run on a +dnl 'real' maemo platform, or on, say, ubuntu embedded. This determines +dnl whether we build with the non-hildon GTK+ + +if test "x$with_platform" == "xmaemo"; then PKG_CHECK_MODULES(MODEST_LIBCONIC,conic,have_libconic=true,have_libconic=false) if test "x$have_libconic" == "xtrue"; then AC_DEFINE_UNQUOTED(MODEST_HAVE_HILDON_GTK,1,["Whether modest is being built with Hildon/Gtk"]) @@ -392,120 +341,32 @@ else fi fi -# -# check hildon-help (only for maemo AND NOT fremantle) -# -if test "x$with_toolkit" == "xhildon1"; then - PKG_CHECK_MODULES(MODEST_HILDON_HELP,hildon-help,have_hildon_help=true,have_hildon_help=false) - if test "x$have_hildon_help" == "xfalse"; then - PKG_CHECK_MODULES(MODEST_HILDON_HELP,libossohelp,have_osso_help=true,have_osso_help=false) - if test "x$have_osso_help" == "xtrue"; then - helplib="osso-help" - AC_DEFINE_UNQUOTED(MODEST_HAVE_OSSO_HELP, 1, ["Whether osso-help is used."]) - else - AC_MSG_ERROR([you need to have either osso-help or hildon-help installed]) - fi - else - helplib="hildon-help" - AC_DEFINE_UNQUOTED(MODEST_HAVE_HILDON_HELP, 1, ["Whether hildon-help is used."]) - fi -fi - - - -# -# check for the notification stuff (only maemo) -# -if test "x$with_toolkit" != "xgtk"; then +dnl --------------- NOTIFICATION STUFF ----------- +if test "x$with_toolkit" != "xgtk"; then PKG_CHECK_MODULES(MODEST_HILDON_NOTIFY,hildon-notify libnotify,have_hildon_notify=true,have_hildon_notify=false) if test "x$have_hildon_notify" == "xtrue"; then - AC_DEFINE_UNQUOTED(MODEST_HAVE_HILDON_NOTIFY, 1, ["Whether hildon-notify is available"]) + AC_DEFINE_UNQUOTED(MODEST_HAVE_HILDON_NOTIFY, 1, ["Whether hildon-notify is available"]) fi fi - -# -# check for the uri/mime stuff -# -if test "x$with_toolkit" != "xgtk"; then +dnl --------------- URI/MIME STUFF ----------- +if test "x$with_toolkit" != "xgtk"; then PKG_CHECK_MODULES(MODEST_HILDON_MIME,libhildonmime,have_hildonmime=true,have_hildonmime=false) - if test "x$have_hildonmime" == "xfalse"; then - PKG_CHECK_MODULES(MODEST_HILDON_MIME,libossomime,have_ossomime=true,have_ossomime=false) - if test "x$have_ossomime" == "xtrue"; then - mimelib="osso-mime" - AC_DEFINE_UNQUOTED(MODEST_HAVE_OSSO_MIME, 1, ["Whether osso-mime is used."]) - else - AC_MSG_ERROR([you need to have either osso-mime or hildon-mime installed]) - fi - else - mimelib="hildon-mime" - AC_DEFINE_UNQUOTED(MODEST_HAVE_HILDON_MIME, 1, ["Whether hildon-mime is used."]) + if test "x$have_hildonmime" == "xtrue"; then + mimelib="hildon-mime" + AC_DEFINE_UNQUOTED(MODEST_HAVE_HILDON_MIME, 1, ["Whether hildon-mime is used."]) fi fi -PKG_CHECK_MODULES(MODEST_MOZEMBED, libtinymailui-mozembed-1.0, have_mozembed=true, have_mozembed=false) -AC_ARG_ENABLE(mozembed, -AC_HELP_STRING([--enable-mozembed], - [Build with GtkMozEmbed (yes, no)]), -[case "${enableval}" in - yes) - if test x$have_mozembed = xfalse; then - AC_MSG_ERROR([building of GtkMozEmbed support requested and gtkmozembed not found]) - fi - use_mozembed=true - ;; - *) - use_mozembed=false - ;; -esac],[use_mozembed=false]) - -AM_CONDITIONAL(BUILD_MOZEMBED, test x$use_mozembed = xtrue) - -if test x$use_mozembed = xtrue; then - AC_DEFINE_UNQUOTED(MODEST_USE_MOZEMBED, 1, ["Whether we use GtkMozEmbed."]) -fi - -#dnl wether we can and should build the -#dnl search plugin (on maemo) -if test "x$with_platform" == "xmaemo"; then -PKG_CHECK_MODULES(MODEST_OGS, libosso >= 0.8.5 libogs-1.2, have_ogs=true, have_ogs=false) -have_ogs_support=false -AC_ARG_ENABLE(ogs_support, -AC_HELP_STRING([--enable-ogs-support], - [Build with osso global search support (yes, no)]), -[case "${enableval}" in - yes) - if test x$have_ogs = xfalse; then - AC_MSG_ERROR([building of ogs support requested and libogs-1.2 not found]) - fi - ;; - *) - have_ogs_support=false - ;; -esac],[have_ogs_support=$have_ogs]) - -if test x$have_ogs_support = xtrue; then - AC_DEFINE_UNQUOTED(MODEST_HAVE_OGS, 1, ["Whether ogs is available."]) -fi -fi - - - +dnl --------------- ADDRESSBOOK -------------- +if test "x$with_platform" == "xmaemo"; then + PKG_CHECK_MODULES(MODEST_ABOOK, libosso-abook-1.0,have_abook=true,have_abook=false) -# -# check the version of the addressbook on maemo -# -if test "x$with_platform" == "xmaemo"; then - PKG_CHECK_MODULES(MODEST_ABOOK,osso-addressbook-1.0,have_abook=true,have_abook=false) - abook_api=`$PKG_CONFIG --modversion osso-addressbook-1.0 | cut -d. -f1` - AC_SUBST(MODEST_ABOOK_CFLAGS) - AC_SUBST(MODEST_ABOOK_LIBS) + if test "x$have_abook" == "xtrue"; then - if test "x$have_abook" == "xfalse"; then - PKG_CHECK_MODULES(MODEST_ABOOK, libosso-abook-1.0,have_abook=true,have_abook=false) abook_api=`$PKG_CONFIG --modversion libosso-abook-1.0 | cut -d. -f1` AC_SUBST(MODEST_ABOOK_CFLAGS) - AC_SUBST(MODEST_ABOOK_LIBE) + AC_SUBST(MODEST_ABOOK_LIBS) modest_save_cflags="$CFLAGS" modest_save_libs="$LIBS" @@ -515,16 +376,16 @@ if test "x$with_platform" == "xmaemo"; then AC_SUBST(HAVE_OSSO_ABOOK_CONTACT_CHOOSER_SET_VISIBLE_FUNC) CFLAGS="$modest_save_cflags" LIBS="$modest_save_libs" - fi - if test "x$have_abook" == "xtrue"; then - AC_DEFINE_UNQUOTED(OSSO_ABOOK_ENABLE_DEPRECATED, 1, ["use deprecated addressbook API"]) - AC_DEFINE_UNQUOTED(MODEST_ABOOK_API, $abook_api, ["the API version of osso-addressbook"]) - AC_DEFINE_UNQUOTED(MODEST_HAVE_ABOOK, 1, ["whether we have osso-addressbook"]) - addressbook="osso-addressbook" + AC_DEFINE_UNQUOTED(OSSO_ABOOK_ENABLE_DEPRECATED, 1, ["use deprecated addressbook API"]) + AC_DEFINE_UNQUOTED(MODEST_ABOOK_API, $abook_api, ["the API version of osso-addressbook"]) + AC_DEFINE_UNQUOTED(MODEST_HAVE_ABOOK, 1, ["whether we have osso-addressbook"]) fi fi +AM_CONDITIONAL(MODEST_USE_DUMMY_ADDRESS_BOOK,test "x$have_abook" != "xtrue") + +dnl --------------- LIBTIME -------------- AC_CHECK_HEADERS([clockd/libtime.h], have_libtime=true, have_libtime=false) if test "x$have_libtime" == "xtrue"; then @@ -535,6 +396,7 @@ else fi AC_SUBST(MODEST_LIBTIME_LIBS) +dnl --------------- IPHB -------------- AC_CHECK_HEADERS([iphbd/libiphb.h], have_libiphb=true, have_libiphb=false) if test "x$have_libiphb" == "xtrue"; then @@ -545,25 +407,18 @@ else fi AC_SUBST(MODEST_LIBIPHB_LIBS) -# -# if we don't have an addressbook, use the dummy one -# -AM_CONDITIONAL(MODEST_USE_DUMMY_ADDRESS_BOOK,test "x$have_abook" != "xtrue") - +dnl --------------- GETTEXT -------------- AM_GLIB_GNU_GETTEXT IT_PROG_INTLTOOL([0.35.0]) -# gettext support -GETTEXT_PACKAGE=modest +GETTEXT_PACKAGE=modest AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", ["gettext package"]) -# -# settings for maemo platform -# -if test "x$with_platform" == "xmaemo"; then +dnl --------------- SETTINGS FOR MAEMO -------------- +if test "x$with_platform" == "xmaemo"; then # warnings are errors, but don't check format errors, because # it breaks with logical ids @@ -607,7 +462,7 @@ if test "x$with_platform" == "xmaemo"; then fi -dnl ## setup the testing framework (ie., make check) +dnl --------------- TESTING ------------------- build_tests=false AC_ARG_ENABLE(tests, AC_HELP_STRING([--enable-tests], @@ -619,16 +474,11 @@ AC_HELP_STRING([--enable-tests], esac],[build_tests=false]) AM_CONDITIONAL(BUILD_TESTS, test x$build_tests = xtrue) - - -dnl ## is the check package installed? if test x$build_tests = xtrue; then PKG_CHECK_MODULES(CHECK, check >= 0.9.4 glib-2.0) fi - - -dnl ## do we want documentation (gtk-doc) +dnl ------------ TESTING: GTK-DOC ---------- build_docs=false AC_ARG_ENABLE(docs, AC_HELP_STRING([--enable-docs], @@ -640,9 +490,9 @@ AC_HELP_STRING([--enable-docs], esac],[build_docs=false]) AM_CONDITIONAL(BUILD_DOCS, test x$build_docs = xtrue) -dnl ## gtk-doc GTK_DOC_CHECK([1.0]) +dnl ---------------- OUTPUT -------------- AC_OUTPUT([ po/Makefile.in Makefile @@ -680,17 +530,12 @@ if test "x$with_platform" == "xmaemo"; then echo "Maemo Launcher : $maemo_launcher" echo "Editor lib : $wpeditor" echo "Addressbook : $have_abook" - if test "x$with_toolkit" == "xhildon1"; then - echo "Help lib : $helplib" - fi echo "libconic support : $have_libconic" echo "Alarm : $have_libalarm" echo "MCE : $have_mce" echo "Hildon-Notify : $have_hildon_notify" - echo "LibOGS support : $have_ogs_support" fi -echo "MozEmbed support : $use_mozembed" if [ $gtk_html_found = "true" ]; then echo "GtkHTML version : $gtk_html_version" fi diff --git a/src/hildon2/modest-platform.c b/src/hildon2/modest-platform.c index 841b2bd..1760599 100644 --- a/src/hildon2/modest-platform.c +++ b/src/hildon2/modest-platform.c @@ -66,8 +66,8 @@ #include "hildon2/modest-hildon2-details-dialog.h" #include "hildon2/modest-hildon2-window-mgr.h" #ifdef MODEST_USE_PROFILE -#include -#include +#include +#include #endif #include #include diff --git a/src/widgets/Makefile.am b/src/widgets/Makefile.am index 361e5c7..659bbf6 100644 --- a/src/widgets/Makefile.am +++ b/src/widgets/Makefile.am @@ -116,20 +116,6 @@ libmodest_widgets_la_SOURCES= \ modest-zoomable.h \ modest-zoomable.c -if MODEST_IS_TOOLKIT_HILDON1 -libmodest_widgets_la_SOURCES+= \ - modest-hildon1-window-mgr.c \ - modest-hildon1-window-mgr.h -endif - -if BUILD_MOZEMBED -libmodest_widgets_la_SOURCES+= \ - modest-mozembed-msg-view.c \ - modest-mozembed-msg-view.h \ - modest-mozembed-mime-part-view.cpp \ - modest-mozembed-mime-part-view.h -endif - libmodest_widgets_la_includedir = $(includedir)/modest-plugin-1.0/widgets/ libmodest_widgets_la_include_HEADERS = $(libmodest_widgets_public_headers) diff --git a/src/widgets/modest-mozembed-mime-part-view.cpp b/src/widgets/modest-mozembed-mime-part-view.cpp deleted file mode 100644 index f727c64..0000000 --- a/src/widgets/modest-mozembed-mime-part-view.cpp +++ /dev/null @@ -1,405 +0,0 @@ -/* Copyright (c) 2006, 2007, Nokia Corporation - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the Nokia Corporation nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifdef XPCOM_GLUE -#include -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* gobject structure methods */ -static void modest_mozembed_mime_part_view_class_init (ModestMozembedMimePartViewClass *klass); -static void modest_mime_part_view_init (gpointer g, gpointer iface_data); -static void modest_zoomable_init (gpointer g, gpointer iface_data); -static void modest_isearch_view_init (gpointer g, gpointer iface_data); -static void modest_mozembed_mime_part_view_init (ModestMozembedMimePartView *self); -static void modest_mozembed_mime_part_view_finalize (GObject *self); - -/* ModestMimePartView implementation */ -static gboolean modest_mozembed_mime_part_view_is_empty (ModestMimePartView *self); -static gboolean modest_mozembed_mime_part_view_is_empty_default (ModestMimePartView *self); -/* ModestZoomable implementation */ -static gdouble modest_mozembed_mime_part_view_get_zoom (ModestZoomable *self); -static void modest_mozembed_mime_part_view_set_zoom (ModestZoomable *self, gdouble value); -static gboolean modest_mozembed_mime_part_view_zoom_minus (ModestZoomable *self); -static gboolean modest_mozembed_mime_part_view_zoom_plus (ModestZoomable *self); -static gdouble modest_mozembed_mime_part_view_get_zoom_default (ModestZoomable *self); -static void modest_mozembed_mime_part_view_set_zoom_default (ModestZoomable *self, gdouble value); -static gboolean modest_mozembed_mime_part_view_zoom_minus_default (ModestZoomable *self); -static gboolean modest_mozembed_mime_part_view_zoom_plus_default (ModestZoomable *self); -/* ModestISearchView implementation */ -static gboolean modest_mozembed_mime_part_view_search (ModestISearchView *self, const gchar *string); -static gboolean modest_mozembed_mime_part_view_search_next (ModestISearchView *self); -static gboolean modest_mozembed_mime_part_view_get_selection_area (ModestISearchView *self, gint *x, gint *y, - gint *width, gint *height); -static gboolean modest_mozembed_mime_part_view_search_default (ModestISearchView *self, const gchar *string); -static gboolean modest_mozembed_mime_part_view_search_next_default (ModestISearchView *self); -static gboolean modest_mozembed_mime_part_view_get_selection_area_default (ModestISearchView *self, gint *x, gint *y, - gint *width, gint *height); - - -/* internal api */ -static gboolean is_empty (ModestMozembedMimePartView *self); -static void set_zoom (ModestMozembedMimePartView *self, gdouble zoom); -static gdouble get_zoom (ModestMozembedMimePartView *self); -static gboolean search (ModestMozembedMimePartView *self, const gchar *string); -static gboolean search_next (ModestMozembedMimePartView *self); -static gboolean get_selection_area (ModestMozembedMimePartView *self, gint *x, gint *y, - gint *width, gint *height); - -typedef struct _ModestMozembedMimePartViewPrivate ModestMozembedMimePartViewPrivate; -struct _ModestMozembedMimePartViewPrivate { - gdouble current_zoom; - gchar *last_search; -}; - -#define MODEST_MOZEMBED_MIME_PART_VIEW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), \ - MODEST_TYPE_MOZEMBED_MIME_PART_VIEW, \ - ModestMozembedMimePartViewPrivate)) - -static GtkMozEmbedClass *parent_class = NULL; - -GtkWidget * -modest_mozembed_mime_part_view_new () -{ - return GTK_WIDGET(g_object_new (MODEST_TYPE_MOZEMBED_MIME_PART_VIEW, NULL)); -} - -/* GOBJECT IMPLEMENTATION */ -GType -modest_mozembed_mime_part_view_get_type (void) -{ - static GType my_type = 0; - if (!my_type) { - static const GTypeInfo my_info = { - sizeof(ModestMozembedMimePartViewClass), - NULL, /* base init */ - NULL, /* base finalize */ - (GClassInitFunc) modest_mozembed_mime_part_view_class_init, - NULL, /* class finalize */ - NULL, /* class data */ - sizeof(ModestMozembedMimePartView), - 1, /* n_preallocs */ - (GInstanceInitFunc) modest_mozembed_mime_part_view_init, - NULL - }; - - static const GInterfaceInfo modest_mime_part_view_info = - { - (GInterfaceInitFunc) modest_mime_part_view_init, /* interface_init */ - NULL, /* interface_finalize */ - NULL /* interface_data */ - }; - - static const GInterfaceInfo modest_zoomable_info = - { - (GInterfaceInitFunc) modest_zoomable_init, /* interface_init */ - NULL, /* interface_finalize */ - NULL /* interface_data */ - }; - - static const GInterfaceInfo modest_isearch_view_info = - { - (GInterfaceInitFunc) modest_isearch_view_init, /* interface_init */ - NULL, /* interface_finalize */ - NULL /* interface_data */ - }; - - my_type = g_type_register_static (TNY_TYPE_MOZ_EMBED_HTML_MIME_PART_VIEW, - "ModestMozembedMimePartView", - &my_info, GTypeFlags(0)); - - g_type_add_interface_static (my_type, MODEST_TYPE_MIME_PART_VIEW, - &modest_mime_part_view_info); - - g_type_add_interface_static (my_type, MODEST_TYPE_ZOOMABLE, - &modest_zoomable_info); - g_type_add_interface_static (my_type, MODEST_TYPE_ISEARCH_VIEW, - &modest_isearch_view_info); - } - return my_type; -} - -static void -modest_mozembed_mime_part_view_class_init (ModestMozembedMimePartViewClass *klass) -{ - GObjectClass *gobject_class; - gobject_class = (GObjectClass*) klass; - - parent_class = (GtkMozEmbedClass*) g_type_class_peek_parent (klass); - gobject_class->finalize = modest_mozembed_mime_part_view_finalize; - klass->is_empty_func = modest_mozembed_mime_part_view_is_empty_default; - klass->get_zoom_func = modest_mozembed_mime_part_view_get_zoom_default; - klass->set_zoom_func = modest_mozembed_mime_part_view_set_zoom_default; - klass->zoom_minus_func = modest_mozembed_mime_part_view_zoom_minus_default; - klass->zoom_plus_func = modest_mozembed_mime_part_view_zoom_plus_default; - klass->search_func = modest_mozembed_mime_part_view_search_default; - klass->search_next_func = modest_mozembed_mime_part_view_search_next_default; - klass->get_selection_area_func = modest_mozembed_mime_part_view_get_selection_area_default; - - g_type_class_add_private (gobject_class, sizeof(ModestMozembedMimePartViewPrivate)); - -} - -static void -modest_mozembed_mime_part_view_init (ModestMozembedMimePartView *self) -{ - ModestMozembedMimePartViewPrivate *priv = MODEST_MOZEMBED_MIME_PART_VIEW_GET_PRIVATE (self); - - priv->current_zoom = 1.0; - priv->last_search = NULL; - -} - -static void -modest_mozembed_mime_part_view_finalize (GObject *obj) -{ - ModestMozembedMimePartViewPrivate *priv = MODEST_MOZEMBED_MIME_PART_VIEW_GET_PRIVATE (obj); - - g_free (priv->last_search); - priv->last_search = NULL; - - G_OBJECT_CLASS (parent_class)->finalize (obj); -} - -/* INTERNAL API */ - -static gboolean -is_empty (ModestMozembedMimePartView *self) -{ - /* TODO: not implemented yet */ - return FALSE; -} - -static void -set_zoom (ModestMozembedMimePartView *self, gdouble zoom) -{ - ModestMozembedMimePartViewPrivate *priv; - - g_return_if_fail (MODEST_IS_MOZEMBED_MIME_PART_VIEW (self)); - - priv = MODEST_MOZEMBED_MIME_PART_VIEW_GET_PRIVATE (self); - priv->current_zoom = zoom; - gtk_moz_embed_set_zoom_level (GTK_MOZ_EMBED(self), (gint) (zoom*100), NULL); - - gtk_widget_queue_resize (GTK_WIDGET (self)); -} - -static gdouble -get_zoom (ModestMozembedMimePartView *self) -{ - ModestMozembedMimePartViewPrivate *priv; - - g_return_val_if_fail (MODEST_IS_MOZEMBED_MIME_PART_VIEW (self), 1.0); - - priv = MODEST_MOZEMBED_MIME_PART_VIEW_GET_PRIVATE (self); - - return priv->current_zoom; -} - -static gboolean -search (ModestMozembedMimePartView *self, - const gchar *string) -{ - ModestMozembedMimePartViewPrivate *priv = MODEST_MOZEMBED_MIME_PART_VIEW_GET_PRIVATE (self); - if (priv->last_search != NULL) { - g_free (priv->last_search); - } - priv->last_search = g_strdup (string); - - return gtk_moz_embed_find_text (GTK_MOZ_EMBED (self), string, FALSE, FALSE, - FALSE, TRUE, 0); -} - -static gboolean -search_next (ModestMozembedMimePartView *self) -{ - ModestMozembedMimePartViewPrivate *priv = MODEST_MOZEMBED_MIME_PART_VIEW_GET_PRIVATE (self); - return gtk_moz_embed_find_text (GTK_MOZ_EMBED (self), priv->last_search, FALSE, FALSE, - FALSE, FALSE, 0); -} - -static gboolean -get_selection_area (ModestMozembedMimePartView *self, - gint *x, gint *y, - gint *width, gint *height) -{ - /* TODO: Implement incremental search */ - return FALSE; - -} - - -/* MODEST MIME PART VIEW IMPLEMENTATION */ - -static void -modest_mime_part_view_init (gpointer g, gpointer iface_data) -{ - ModestMimePartViewIface *klass = (ModestMimePartViewIface *)g; - - klass->is_empty_func = modest_mozembed_mime_part_view_is_empty; - - return; -} - -static gboolean -modest_mozembed_mime_part_view_is_empty (ModestMimePartView *self) -{ - return MODEST_MOZEMBED_MIME_PART_VIEW_GET_CLASS (self)->is_empty_func (self); -} - -static gboolean -modest_mozembed_mime_part_view_is_empty_default (ModestMimePartView *self) -{ - return is_empty (MODEST_MOZEMBED_MIME_PART_VIEW (self)); -} - - -/* MODEST ZOOMABLE IMPLEMENTATION */ -static void -modest_zoomable_init (gpointer g, gpointer iface_data) -{ - ModestZoomableIface *klass = (ModestZoomableIface *)g; - - klass->get_zoom_func = modest_mozembed_mime_part_view_get_zoom; - klass->set_zoom_func = modest_mozembed_mime_part_view_set_zoom; - klass->zoom_minus_func = modest_mozembed_mime_part_view_zoom_minus; - klass->zoom_plus_func = modest_mozembed_mime_part_view_zoom_plus; - - return; -} - -static gdouble -modest_mozembed_mime_part_view_get_zoom (ModestZoomable *self) -{ - return MODEST_MOZEMBED_MIME_PART_VIEW_GET_CLASS (self)->get_zoom_func (self); -} - -static gdouble -modest_mozembed_mime_part_view_get_zoom_default (ModestZoomable *self) -{ - return get_zoom (MODEST_MOZEMBED_MIME_PART_VIEW (self)); -} - -static void -modest_mozembed_mime_part_view_set_zoom (ModestZoomable *self, gdouble value) -{ - MODEST_MOZEMBED_MIME_PART_VIEW_GET_CLASS (self)->set_zoom_func (self, value); -} - -static void -modest_mozembed_mime_part_view_set_zoom_default (ModestZoomable *self, gdouble value) -{ - set_zoom (MODEST_MOZEMBED_MIME_PART_VIEW (self), value); -} - -static gboolean -modest_mozembed_mime_part_view_zoom_minus (ModestZoomable *self) -{ - return MODEST_MOZEMBED_MIME_PART_VIEW_GET_CLASS (self)->zoom_minus_func (self); -} - -static gboolean -modest_mozembed_mime_part_view_zoom_minus_default (ModestZoomable *self) -{ - /* operation not supported in ModestMozembedMimePartView */ - return FALSE; -} - -static gboolean -modest_mozembed_mime_part_view_zoom_plus (ModestZoomable *self) -{ - return MODEST_MOZEMBED_MIME_PART_VIEW_GET_CLASS (self)->zoom_plus_func (self); -} - -static gboolean -modest_mozembed_mime_part_view_zoom_plus_default (ModestZoomable *self) -{ - /* operation not supported in ModestMozembedMimePartView */ - return FALSE; -} - -/* ISEARCH VIEW IMPLEMENTATION */ -static void -modest_isearch_view_init (gpointer g, gpointer iface_data) -{ - ModestISearchViewIface *klass = (ModestISearchViewIface *)g; - - klass->search_func = modest_mozembed_mime_part_view_search; - klass->search_next_func = modest_mozembed_mime_part_view_search_next; - klass->get_selection_area_func = modest_mozembed_mime_part_view_get_selection_area; - - return; -} - -static gboolean -modest_mozembed_mime_part_view_search (ModestISearchView *self, const gchar *string) -{ - return MODEST_MOZEMBED_MIME_PART_VIEW_GET_CLASS (self)->search_func (self, string); -} - -static gboolean -modest_mozembed_mime_part_view_search_default (ModestISearchView *self, const gchar *string) -{ - return search (MODEST_MOZEMBED_MIME_PART_VIEW (self), string); -} - -static gboolean -modest_mozembed_mime_part_view_search_next(ModestISearchView *self) -{ - return MODEST_MOZEMBED_MIME_PART_VIEW_GET_CLASS (self)->search_next_func (self); -} - -static gboolean -modest_mozembed_mime_part_view_search_next_default (ModestISearchView *self) -{ - return search_next (MODEST_MOZEMBED_MIME_PART_VIEW (self)); -} - -static gboolean -modest_mozembed_mime_part_view_get_selection_area (ModestISearchView *self, gint *x, gint *y, - gint *width, gint *height) -{ - return MODEST_MOZEMBED_MIME_PART_VIEW_GET_CLASS (self)->get_selection_area_func (self, x, y, width, height); -} - -static gboolean -modest_mozembed_mime_part_view_get_selection_area_default (ModestISearchView *self, gint *x, gint *y, - gint *width, gint *height) -{ - return get_selection_area (MODEST_MOZEMBED_MIME_PART_VIEW (self), x, y, width, height); -} diff --git a/src/widgets/modest-mozembed-mime-part-view.h b/src/widgets/modest-mozembed-mime-part-view.h deleted file mode 100644 index 1346f09..0000000 --- a/src/widgets/modest-mozembed-mime-part-view.h +++ /dev/null @@ -1,99 +0,0 @@ -/* Copyright (c) 2006, 2007, Nokia Corporation - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the Nokia Corporation nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef __MODEST_MOZEMBED_MIME_PART_VIEW_H__ -#define __MODEST_MOZEMBED_MIME_PART_VIEW_H__ - -#include -#include -#include -#include -#include -#include -#include -#include - -G_BEGIN_DECLS - -/* convenience macros */ -#define MODEST_TYPE_MOZEMBED_MIME_PART_VIEW (modest_mozembed_mime_part_view_get_type()) -#define MODEST_MOZEMBED_MIME_PART_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),MODEST_TYPE_MOZEMBED_MIME_PART_VIEW,ModestMozembedMimePartView)) -#define MODEST_MOZEMBED_MIME_PART_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),MODEST_TYPE_MOZEMBED_MIME_PART_VIEW,ModestMozembedMimePartViewClass)) -#define MODEST_IS_MOZEMBED_MIME_PART_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),MODEST_TYPE_MOZEMBED_MIME_PART_VIEW)) -#define MODEST_IS_MOZEMBED_MIME_PART_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),MODEST_TYPE_MOZEMBED_MIME_PART_VIEW)) -#define MODEST_MOZEMBED_MIME_PART_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj),MODEST_TYPE_MOZEMBED_MIME_PART_VIEW,ModestMozembedMimePartViewClass)) - -typedef struct _ModestMozembedMimePartView ModestMozembedMimePartView; -typedef struct _ModestMozembedMimePartViewClass ModestMozembedMimePartViewClass; - -struct _ModestMozembedMimePartView { - TnyMozEmbedHtmlMimePartView parent; -}; - -struct _ModestMozembedMimePartViewClass { - TnyMozEmbedHtmlMimePartViewClass parent_class; - - /* ModestMimePartView interface methods */ - gboolean (*is_empty_func) (ModestMimePartView *self); - /* ModestZoomable interface methods */ - gdouble (*get_zoom_func) (ModestZoomable *self); - void (*set_zoom_func) (ModestZoomable *self, gdouble value); - gboolean (*zoom_minus_func) (ModestZoomable *self); - gboolean (*zoom_plus_func) (ModestZoomable *self); - /* ModestISearchView interface methods */ - gboolean (*search_func) (ModestISearchView *self, const gchar *string); - gboolean (*search_next_func) (ModestISearchView *self); - gboolean (*get_selection_area_func) (ModestISearchView *self, gint *x, gint *y, gint *width, gint *height); -}; - - -/** - * - * modest_mozembed_mime_part_view_get_type - * - * get the GType for the this class - * - * Returns: the GType for this class - */ -GType modest_mozembed_mime_part_view_get_type (void) G_GNUC_CONST; - -/** - * modest_mozembed_mime_part_view_new: - * - * create a new #ModestMozembedMimePartView instance, implementing - * interfaces #TnyMimePartView, #ModestMimePartView, #ModestZoomable - * and #ModestISearchView. - * - * Returns: a #ModestMozembedMimePartView - */ -GtkWidget *modest_mozembed_mime_part_view_new (void); - -G_END_DECLS - -#endif /* __MODEST_GTK_HTML_MIME_PART_VIEW_H__ */ diff --git a/src/widgets/modest-mozembed-msg-view.c b/src/widgets/modest-mozembed-msg-view.c deleted file mode 100644 index 6dc5952..0000000 --- a/src/widgets/modest-mozembed-msg-view.c +++ /dev/null @@ -1,1471 +0,0 @@ -/* Copyright (c) 2006, 2007, Nokia Corporation - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the Nokia Corporation nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -/* 'private'/'protected' functions */ -static void modest_mozembed_msg_view_class_init (ModestMozembedMsgViewClass *klass); -static void tny_header_view_init (gpointer g, gpointer iface_data); -static void tny_msg_view_init (gpointer g, gpointer iface_data); -static void tny_mime_part_view_init (gpointer g, gpointer iface_data); -static void modest_mime_part_view_init (gpointer g, gpointer iface_data); -static void modest_zoomable_init (gpointer g, gpointer iface_data); -static void modest_isearch_view_init (gpointer g, gpointer iface_data); -static void modest_msg_view_init (gpointer g, gpointer iface_data); -static void modest_mozembed_msg_view_init (ModestMozembedMsgView *obj); -static void modest_mozembed_msg_view_finalize (GObject *obj); -static void modest_mozembed_msg_view_destroy (GtkObject *obj); - -/* headers signals */ -static void on_recpt_activated (ModestMailHeaderView *header_view, const gchar *address, ModestMozembedMsgView *msg_view); -static void on_attachment_activated (ModestAttachmentsView * att_view, TnyMimePart *mime_part, gpointer userdata); - -/* body view signals */ -static gboolean on_activate_link (GtkWidget *widget, const gchar *uri, ModestMozembedMsgView *msg_view); -static gboolean on_fetch_url (GtkWidget *widget, const gchar *uri, TnyStream *stream, - ModestMozembedMsgView *msg_view); -static gboolean on_link_hover (GtkWidget *widget, const gchar *uri, ModestMozembedMsgView *msg_view); - -#if HAVE_DECL_GTK_WIDGET_TAP_AND_HOLD_SETUP -static void on_tap_and_hold (GtkWidget *widget, gpointer userdata); -#endif /*HAVE_DECL_GTK_WIDGET_TAP_AND_HOLD_SETUP*/ - -/* TnyMimePartView implementation */ -static void modest_msg_view_mp_clear (TnyMimePartView *self); -static void modest_msg_view_mp_set_part (TnyMimePartView *self, TnyMimePart *part); -static void modest_msg_view_mp_set_part_default (TnyMimePartView *self, TnyMimePart *part); -static TnyMimePart* modest_msg_view_mp_get_part (TnyMimePartView *self); -static TnyMimePart* modest_msg_view_mp_get_part_default (TnyMimePartView *self); -/* ModestMimePartView implementation */ -static gboolean modest_msg_view_mp_is_empty (ModestMimePartView *self); -static gboolean modest_msg_view_mp_is_empty_default (ModestMimePartView *self); -/* TnyHeaderView implementation */ -static void modest_msg_view_set_header (TnyHeaderView *self, TnyHeader *header); -static void modest_msg_view_set_header_default (TnyHeaderView *self, TnyHeader *header); -static void modest_msg_view_clear_header (TnyHeaderView *self); -static void modest_msg_view_clear_header_default (TnyHeaderView *self); -/* TnyMsgView implementation */ -static TnyMsg *modest_msg_view_get_msg (TnyMsgView *self); -static TnyMsg *modest_msg_view_get_msg_default (TnyMsgView *self); -static void modest_msg_view_set_msg (TnyMsgView *self, TnyMsg *msg); -static void modest_msg_view_set_msg_default (TnyMsgView *self, TnyMsg *msg); -static void modest_msg_view_clear (TnyMsgView *self); -static void modest_msg_view_clear_default (TnyMsgView *self); -static void modest_msg_view_set_unavailable (TnyMsgView *self); -static void modest_msg_view_set_unavailable_default (TnyMsgView *self); -static TnyMimePartView *modest_msg_view_create_mime_part_view_for (TnyMsgView *self, TnyMimePart *part); -static TnyMimePartView *modest_msg_view_create_mime_part_view_for_default (TnyMsgView *self, TnyMimePart *part); -static TnyMsgView *modest_msg_view_create_new_inline_viewer (TnyMsgView *self); -static TnyMsgView *modest_msg_view_create_new_inline_viewer_default (TnyMsgView *self); -/* ModestZoomable implementation */ -static gdouble modest_msg_view_get_zoom (ModestZoomable *self); -static void modest_msg_view_set_zoom (ModestZoomable *self, gdouble value); -static gboolean modest_msg_view_zoom_minus (ModestZoomable *self); -static gboolean modest_msg_view_zoom_plus (ModestZoomable *self); -static gdouble modest_msg_view_get_zoom_default (ModestZoomable *self); -static void modest_msg_view_set_zoom_default (ModestZoomable *self, gdouble value); -static gboolean modest_msg_view_zoom_minus_default (ModestZoomable *self); -static gboolean modest_msg_view_zoom_plus_default (ModestZoomable *self); -/* ModestISearchView implementation */ -static gboolean modest_msg_view_search (ModestISearchView *self, const gchar *string); -static gboolean modest_msg_view_search_default (ModestISearchView *self, const gchar *string); -static gboolean modest_msg_view_search_next (ModestISearchView *self); -static gboolean modest_msg_view_search_next_default (ModestISearchView *self); -/* ModestMsgView implementation */ -static void modest_mozembed_msg_view_set_msg_with_other_body (ModestMsgView *self, TnyMsg *msg, TnyMimePart *part); -static GtkAdjustment *modest_mozembed_msg_view_get_vadjustment (ModestMsgView *self); -static GtkAdjustment *modest_mozembed_msg_view_get_hadjustment (ModestMsgView *self); -static void modest_mozembed_msg_view_set_vadjustment (ModestMsgView *self, GtkAdjustment *vadj); -static void modest_mozembed_msg_view_set_hadjustment (ModestMsgView *self, GtkAdjustment *hadj); -static void modest_mozembed_msg_view_set_shadow_type (ModestMsgView *self, GtkShadowType type); -static GtkShadowType modest_mozembed_msg_view_get_shadow_type (ModestMsgView *self); -static TnyHeaderFlags modest_mozembed_msg_view_get_priority (ModestMsgView *self); -static void modest_mozembed_msg_view_set_priority (ModestMsgView *self, TnyHeaderFlags flags); -static TnyList *modest_mozembed_msg_view_get_selected_attachments (ModestMsgView *self); -static TnyList *modest_mozembed_msg_view_get_attachments (ModestMsgView *self); -static void modest_mozembed_msg_view_grab_focus (ModestMsgView *self); -static void modest_mozembed_msg_view_remove_attachment (ModestMsgView *view, TnyMimePart *attachment); -static void modest_mozembed_msg_view_request_fetch_images (ModestMsgView *view); -static void modest_mozembed_msg_view_set_branding (ModestMsgView *view, const gchar *brand_name, const GdkPixbuf *brand_icon); -static gboolean modest_mozembed_msg_view_has_blocked_external_images (ModestMsgView *view); -static void modest_mozembed_msg_view_set_msg_with_other_body_default (ModestMsgView *self, TnyMsg *msg, TnyMimePart *part); -static GtkAdjustment *modest_mozembed_msg_view_get_vadjustment_default (ModestMsgView *self); -static GtkAdjustment *modest_mozembed_msg_view_get_hadjustment_default (ModestMsgView *self); -static void modest_mozembed_msg_view_set_vadjustment_default (ModestMsgView *self, GtkAdjustment *vadj); -static void modest_mozembed_msg_view_set_hadjustment_default (ModestMsgView *self, GtkAdjustment *hadj); -static void modest_mozembed_msg_view_set_shadow_type_default (ModestMsgView *self, GtkShadowType type); -static GtkShadowType modest_mozembed_msg_view_get_shadow_type_default (ModestMsgView *self); -static TnyHeaderFlags modest_mozembed_msg_view_get_priority_default (ModestMsgView *self); -static void modest_mozembed_msg_view_set_priority_default (ModestMsgView *self, TnyHeaderFlags flags); -static TnyList *modest_mozembed_msg_view_get_selected_attachments_default (ModestMsgView *self); -static TnyList *modest_mozembed_msg_view_get_attachments_default (ModestMsgView *self); -static void modest_mozembed_msg_view_grab_focus_default (ModestMsgView *self); -static void modest_mozembed_msg_view_remove_attachment_default (ModestMsgView *view, TnyMimePart *attachment); -static gboolean modest_mozembed_msg_view_has_blocked_external_images_default (ModestMsgView *view); -static void modest_mozembed_msg_view_request_fetch_images_default (ModestMsgView *view); -static void modest_mozembed_msg_view_set_branding_default (ModestMsgView *view, const gchar *brand_name, const GdkPixbuf *brand_icon); - -/* internal api */ -static void set_header (ModestMozembedMsgView *self, TnyHeader *header); -static TnyMsg *get_message (ModestMozembedMsgView *self); -static void set_message (ModestMozembedMsgView *self, TnyMsg *msg, TnyMimePart *other_body); -static gboolean is_empty (ModestMozembedMsgView *self); -static void set_zoom (ModestMozembedMsgView *self, gdouble zoom); -static gdouble get_zoom (ModestMozembedMsgView *self); -static gboolean search (ModestMozembedMsgView *self, const gchar *search); -static gboolean search_next (ModestMozembedMsgView *self); -static GtkAdjustment *get_vadjustment (ModestMozembedMsgView *self); -static GtkAdjustment *get_hadjustment (ModestMozembedMsgView *self); -static void set_vadjustment (ModestMozembedMsgView *self, GtkAdjustment *vadj); -static void set_hadjustment (ModestMozembedMsgView *self, GtkAdjustment *hadj); -static void set_shadow_type (ModestMozembedMsgView *self, GtkShadowType type); -static GtkShadowType get_shadow_type (ModestMozembedMsgView *self); -static TnyHeaderFlags get_priority (ModestMozembedMsgView *self); -static void set_priority (ModestMozembedMsgView *self, TnyHeaderFlags flags); -static TnyList *get_selected_attachments (ModestMozembedMsgView *self); -static TnyList *get_attachments (ModestMozembedMsgView *self); -static void grab_focus (ModestMozembedMsgView *self); -static void remove_attachment (ModestMozembedMsgView *view, TnyMimePart *attachment); -static void request_fetch_images (ModestMozembedMsgView *view); -static void set_branding (ModestMozembedMsgView *view, const gchar *brand_name, const GdkPixbuf *brand_icon); -static gboolean has_blocked_external_images (ModestMozembedMsgView *view); - -typedef struct _ModestMozembedMsgViewPrivate ModestMozembedMsgViewPrivate; -struct _ModestMozembedMsgViewPrivate { - GtkWidget *body_view; - GtkWidget *mail_header_view; - GtkWidget *attachments_view; - - TnyMsg *msg; - - /* embedded elements */ - GtkWidget *headers_box; - GtkWidget *attachments_box; - - /* zoom */ - gdouble current_zoom; - - /* link click management */ - gchar *last_url; - -}; - -#define MODEST_MOZEMBED_MSG_VIEW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), \ - MODEST_TYPE_MOZEMBED_MSG_VIEW, \ - ModestMozembedMsgViewPrivate)) - -/* globals */ -static GtkContainerClass *parent_class = NULL; - -GType -modest_mozembed_msg_view_get_type (void) -{ - static GType my_type = 0; - if (!my_type) { - static const GTypeInfo my_info = { - sizeof(ModestMozembedMsgViewClass), - NULL, /* base init */ - NULL, /* base finalize */ - (GClassInitFunc) modest_mozembed_msg_view_class_init, - NULL, /* class finalize */ - NULL, /* class data */ - sizeof(ModestMozembedMsgView), - 1, /* n_preallocs */ - (GInstanceInitFunc) modest_mozembed_msg_view_init, - NULL - }; - static const GInterfaceInfo tny_msg_view_info = - { - (GInterfaceInitFunc) tny_msg_view_init, /* interface_init */ - NULL, /* interface_finalize */ - NULL /* interface_data */ - }; - - static const GInterfaceInfo tny_mime_part_view_info = - { - (GInterfaceInitFunc) tny_mime_part_view_init, /* interface_init */ - NULL, /* interface_finalize */ - NULL /* interface_data */ - }; - - static const GInterfaceInfo tny_header_view_info = - { - (GInterfaceInitFunc) tny_header_view_init, /* interface_init */ - NULL, /* interface_finalize */ - NULL /* interface_data */ - }; - - static const GInterfaceInfo modest_mime_part_view_info = - { - (GInterfaceInitFunc) modest_mime_part_view_init, /* interface_init */ - NULL, /* interface_finalize */ - NULL /* interface_data */ - }; - - static const GInterfaceInfo modest_zoomable_info = - { - (GInterfaceInitFunc) modest_zoomable_init, /* interface_init */ - NULL, /* interface_finalize */ - NULL /* interface_data */ - }; - - static const GInterfaceInfo modest_isearch_view_info = - { - (GInterfaceInitFunc) modest_isearch_view_init, /* interface_init */ - NULL, /* interface_finalize */ - NULL /* interface_data */ - }; - - static const GInterfaceInfo modest_msg_view_info = - { - (GInterfaceInitFunc) modest_msg_view_init, /* interface_init */ - NULL, /* interface_finalize */ - NULL /* interface_data */ - }; - - my_type = g_type_register_static (GTK_TYPE_SCROLLED_WINDOW, - "ModestMozembedMsgView", - &my_info, 0); - - g_type_add_interface_static (my_type, TNY_TYPE_HEADER_VIEW, - &tny_header_view_info); - - g_type_add_interface_static (my_type, TNY_TYPE_MIME_PART_VIEW, - &tny_mime_part_view_info); - - g_type_add_interface_static (my_type, MODEST_TYPE_MIME_PART_VIEW, - &modest_mime_part_view_info); - - g_type_add_interface_static (my_type, TNY_TYPE_MSG_VIEW, - &tny_msg_view_info); - - g_type_add_interface_static (my_type, MODEST_TYPE_ZOOMABLE, - &modest_zoomable_info); - - g_type_add_interface_static (my_type, MODEST_TYPE_ISEARCH_VIEW, - &modest_isearch_view_info); - - g_type_add_interface_static (my_type, MODEST_TYPE_MSG_VIEW, - &modest_msg_view_info); - } - return my_type; -} - -static void -modest_mozembed_msg_view_class_init (ModestMozembedMsgViewClass *klass) -{ - GObjectClass *gobject_class; - GtkWidgetClass *widget_class; - GtkObjectClass *gtkobject_class; - GtkContainerClass *container_class; - gobject_class = (GObjectClass*) klass; - widget_class = (GtkWidgetClass *) klass; - gtkobject_class = (GtkObjectClass *) klass; - container_class = (GtkContainerClass *) klass; - - parent_class = g_type_class_peek_parent (klass); - gobject_class->finalize = modest_mozembed_msg_view_finalize; - gtkobject_class->destroy = modest_mozembed_msg_view_destroy; - - klass->set_header_func = modest_msg_view_set_header_default; - klass->clear_header_func = modest_msg_view_clear_header_default; - klass->set_scroll_adjustments = NULL; - klass->get_part_func = modest_msg_view_mp_get_part_default; - klass->set_part_func = modest_msg_view_mp_set_part_default; - klass->is_empty_func = modest_msg_view_mp_is_empty_default; - klass->get_msg_func = modest_msg_view_get_msg_default; - klass->set_msg_func = modest_msg_view_set_msg_default; - klass->set_unavailable_func = modest_msg_view_set_unavailable_default; - klass->clear_func = modest_msg_view_clear_default; - klass->create_mime_part_view_for_func = modest_msg_view_create_mime_part_view_for_default; - klass->create_new_inline_viewer_func = modest_msg_view_create_new_inline_viewer_default; - klass->get_zoom_func = modest_msg_view_get_zoom_default; - klass->set_zoom_func = modest_msg_view_set_zoom_default; - klass->zoom_minus_func = modest_msg_view_zoom_minus_default; - klass->zoom_plus_func = modest_msg_view_zoom_plus_default; - klass->search_func = modest_msg_view_search_default; - klass->search_next_func = modest_msg_view_search_next_default; - klass->set_msg_with_other_body_func = modest_mozembed_msg_view_set_msg_with_other_body_default; - klass->get_vadjustment_func = modest_mozembed_msg_view_get_vadjustment_default; - klass->get_hadjustment_func = modest_mozembed_msg_view_get_hadjustment_default; - klass->set_vadjustment_func = modest_mozembed_msg_view_set_vadjustment_default; - klass->set_hadjustment_func = modest_mozembed_msg_view_set_hadjustment_default; - klass->get_shadow_type_func = modest_mozembed_msg_view_get_shadow_type_default; - klass->set_shadow_type_func = modest_mozembed_msg_view_set_shadow_type_default; - klass->get_priority_func = modest_mozembed_msg_view_get_priority_default; - klass->set_priority_func = modest_mozembed_msg_view_set_priority_default; - klass->get_selected_attachments_func = modest_mozembed_msg_view_get_selected_attachments_default; - klass->get_attachments_func = modest_mozembed_msg_view_get_attachments_default; - klass->grab_focus_func = modest_mozembed_msg_view_grab_focus_default; - klass->remove_attachment_func = modest_mozembed_msg_view_remove_attachment_default; - klass->request_fetch_images_func = modest_mozembed_msg_view_request_fetch_images_default; - klass->set_branding_func = modest_mozembed_msg_view_set_branding_default; - klass->has_blocked_external_images_func = modest_mozembed_msg_view_has_blocked_external_images_default; - - g_type_class_add_private (gobject_class, sizeof(ModestMozembedMsgViewPrivate)); - -} - -static void -modest_mozembed_msg_view_init (ModestMozembedMsgView *obj) -{ - ModestMozembedMsgViewPrivate *priv; - GtkWidget *separator; - GtkWidget *main_vbox; - GtkWidget *scroll_area; - GtkWidget *body_box; - - priv = MODEST_MOZEMBED_MSG_VIEW_GET_PRIVATE(obj); - - priv->current_zoom = 1.0; - - priv->body_view = GTK_WIDGET (g_object_new (MODEST_TYPE_MOZEMBED_MIME_PART_VIEW, NULL)); - priv->mail_header_view = GTK_WIDGET(modest_compact_mail_header_view_new (TRUE)); - gtk_widget_set_no_show_all (priv->mail_header_view, TRUE); - priv->attachments_view = GTK_WIDGET(modest_attachments_view_new (NULL)); - - gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (obj), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); - gtk_scrolled_window_set_hadjustment (GTK_SCROLLED_WINDOW (obj), NULL); - gtk_scrolled_window_set_vadjustment (GTK_SCROLLED_WINDOW (obj), NULL); - - priv->msg = NULL; - - priv->headers_box = gtk_vbox_new (0, FALSE); - - if (priv->mail_header_view) - gtk_box_pack_start (GTK_BOX(priv->headers_box), priv->mail_header_view, FALSE, FALSE, 0); - - if (priv->attachments_view) { -#ifndef MODEST_TOOLKIT_HILDON2 - gchar *att_label = g_strconcat (_("mcen_me_viewer_attachments"), ":", NULL); -#else - gchar *att_label = g_strconcat (_("mail_va_attachment"), ":", NULL); -#endif - - priv->attachments_box = (GtkWidget *) - modest_mail_header_view_add_custom_header (MODEST_MAIL_HEADER_VIEW (priv->mail_header_view), - att_label, - priv->attachments_view, - FALSE, FALSE); - gtk_widget_hide_all (priv->attachments_box); - g_free (att_label); - } - - separator = gtk_hseparator_new (); - gtk_box_pack_start (GTK_BOX(priv->headers_box), separator, FALSE, FALSE, 0); - - body_box = gtk_vbox_new (FALSE, 0); - - main_vbox = gtk_vbox_new (FALSE, 0); - gtk_box_pack_start (GTK_BOX (main_vbox), priv->headers_box, FALSE, FALSE, 0); - gtk_box_pack_start (GTK_BOX (main_vbox), body_box, TRUE, TRUE, 0); - - if (priv->body_view) { - /* gtk_widget_set_size_request (priv->body_view, 610, 1000); */ - /* scroll_area = modest_scroll_area_new (GTK_WIDGET (obj), priv->body_view); */ - /* gtk_container_add (GTK_CONTAINER (body_box), scroll_area); */ - - /* gtk_container_add (GTK_CONTAINER (body_box), priv->body_view); */ - /* scroll_area = NULL; */ - - scroll_area = gtk_scrolled_window_new (NULL, NULL); - gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll_area), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); - gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scroll_area), priv->body_view); - gtk_box_pack_start (GTK_BOX (body_box), scroll_area, TRUE, TRUE, 0); - gtk_widget_show_all (body_box); - -#if HAVE_DECL_GTK_WIDGET_TAP_AND_HOLD_SETUP - gtk_widget_tap_and_hold_setup (GTK_WIDGET (priv->body_view), NULL, NULL, 0); - g_signal_connect (G_OBJECT (priv->body_view), "tap-and-hold", G_CALLBACK (on_tap_and_hold), obj); -#endif - } - - gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (obj), main_vbox); - - - g_signal_connect (G_OBJECT(priv->body_view), "activate_link", - G_CALLBACK(on_activate_link), obj); - g_signal_connect (G_OBJECT(priv->body_view), "fetch_url", - G_CALLBACK(on_fetch_url), obj); - g_signal_connect (G_OBJECT(priv->body_view), "link_hover", - G_CALLBACK(on_link_hover), obj); - - g_signal_connect (G_OBJECT (priv->mail_header_view), "recpt-activated", - G_CALLBACK (on_recpt_activated), obj); - - g_signal_connect (G_OBJECT (priv->attachments_view), "activate", - G_CALLBACK (on_attachment_activated), obj); - -} - - -static void -modest_mozembed_msg_view_finalize (GObject *obj) -{ - ModestMozembedMsgViewPrivate *priv; - priv = MODEST_MOZEMBED_MSG_VIEW_GET_PRIVATE (obj); - - if (priv->msg) { - g_object_unref (G_OBJECT(priv->msg)); - priv->msg = NULL; - } - - priv->body_view = NULL; - priv->attachments_view = NULL; - - G_OBJECT_CLASS(parent_class)->finalize (obj); -} - -static void -modest_mozembed_msg_view_destroy (GtkObject *obj) -{ - GTK_OBJECT_CLASS(parent_class)->destroy (obj); -} - -/* INTERNAL METHODS */ - -static GtkAdjustment * -get_vadjustment (ModestMozembedMsgView *self) -{ - return gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (self)); - -} - -static GtkAdjustment * -get_hadjustment (ModestMozembedMsgView *self) -{ - return gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (self)); -} - -static void -set_hadjustment (ModestMozembedMsgView *self, GtkAdjustment *hadj) -{ - gtk_scrolled_window_set_hadjustment (GTK_SCROLLED_WINDOW (self), hadj); -} - -static void -set_vadjustment (ModestMozembedMsgView *self, GtkAdjustment *vadj) -{ - gtk_scrolled_window_set_hadjustment (GTK_SCROLLED_WINDOW (self), vadj); -} - -static void -set_shadow_type (ModestMozembedMsgView *self, - GtkShadowType shadow_type) -{ - gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (self), shadow_type); -} - -static GtkShadowType -get_shadow_type (ModestMozembedMsgView *self) -{ - return gtk_scrolled_window_get_shadow_type (GTK_SCROLLED_WINDOW (self)); -} - -GtkWidget* -modest_mozembed_msg_view_new (TnyMsg *msg) -{ - GObject *obj; - ModestMozembedMsgView* self; - - obj = G_OBJECT(g_object_new(MODEST_TYPE_MOZEMBED_MSG_VIEW, NULL)); - self = MODEST_MOZEMBED_MSG_VIEW(obj); - tny_msg_view_set_msg (TNY_MSG_VIEW (self), msg); - - return GTK_WIDGET(self); -} - -#if HAVE_DECL_GTK_WIDGET_TAP_AND_HOLD_SETUP -static void -on_tap_and_hold (GtkWidget *widget, - gpointer data) -{ - ModestMozembedMsgView *self = (ModestMozembedMsgView *) data; - ModestMozembedMsgViewPrivate *priv = MODEST_MOZEMBED_MSG_VIEW_GET_PRIVATE (self); - - g_signal_emit_by_name (G_OBJECT (self), "link-contextual", priv->last_url); -} -#endif - -static void -on_recpt_activated (ModestMailHeaderView *header_view, - const gchar *address, - ModestMozembedMsgView *self) -{ - g_signal_emit_by_name (G_OBJECT (self), "recpt-activated", address); -} - -static void -on_attachment_activated (ModestAttachmentsView * att_view, TnyMimePart *mime_part, gpointer self) -{ - - g_signal_emit_by_name (G_OBJECT(self), "attachment_clicked", mime_part); -} - - -static void -request_fetch_images (ModestMozembedMsgView *self) -{ - ModestMozembedMsgViewPrivate *priv = MODEST_MOZEMBED_MSG_VIEW_GET_PRIVATE (self); - TnyMimePart *part; - - /* The message could have not been downloaded yet */ - if (priv->msg) { - modest_mime_part_view_set_view_images (MODEST_MIME_PART_VIEW (priv->body_view), TRUE); - part = tny_mime_part_view_get_part (TNY_MIME_PART_VIEW (priv->body_view)); - if (part) { - tny_mime_part_view_set_part (TNY_MIME_PART_VIEW (priv->body_view), part); - g_object_unref (part); - } - tny_msg_set_allow_external_images (TNY_MSG (priv->msg), TRUE); - } -} - -static void -set_branding (ModestMozembedMsgView *self, const gchar *brand_name, const GdkPixbuf *brand_icon) -{ - ModestMozembedMsgViewPrivate *priv = MODEST_MOZEMBED_MSG_VIEW_GET_PRIVATE (self); - - modest_mail_header_view_set_branding (MODEST_MAIL_HEADER_VIEW (priv->mail_header_view), brand_name, brand_icon); -} - -static gboolean -has_blocked_external_images (ModestMozembedMsgView *self) -{ - ModestMozembedMsgViewPrivate *priv = MODEST_MOZEMBED_MSG_VIEW_GET_PRIVATE (self); - - return modest_mime_part_view_has_external_images (MODEST_MIME_PART_VIEW (priv->body_view)); -} - -static gboolean -on_activate_link (GtkWidget *widget, const gchar *uri, ModestMozembedMsgView *self) -{ - gboolean result; - g_return_val_if_fail (self, FALSE); - - g_signal_emit_by_name (G_OBJECT(self), "activate-link", uri, &result); - - return result; -} - - -static gboolean -on_link_hover (GtkWidget *widget, const gchar *uri, ModestMozembedMsgView *self) -{ - ModestMozembedMsgViewPrivate *priv = MODEST_MOZEMBED_MSG_VIEW_GET_PRIVATE (self); - gboolean result; - - g_free (priv->last_url); - priv->last_url = g_strdup (uri); - - g_signal_emit_by_name (G_OBJECT(self), "link-hover", uri, &result); - - return result; -} - - - -static TnyMimePart * -find_cid_image (TnyMsg *msg, const gchar *cid) -{ - TnyMimePart *part = NULL; - TnyList *parts; - TnyIterator *iter; - - g_return_val_if_fail (msg, NULL); - g_return_val_if_fail (cid, NULL); - - parts = TNY_LIST (tny_simple_list_new()); - - tny_mime_part_get_parts (TNY_MIME_PART (msg), parts); - iter = tny_list_create_iterator (parts); - - while (!tny_iterator_is_done(iter)) { - const gchar *part_cid; - - part = TNY_MIME_PART(tny_iterator_get_current(iter)); - part_cid = tny_mime_part_get_content_id (part); - - if (part_cid && strcmp (cid, part_cid) == 0) - break; - - if (tny_mime_part_content_type_is (part, "multipart/related")) { - TnyList *related_parts = TNY_LIST (tny_simple_list_new ()); - TnyIterator *related_iter = NULL; - TnyMimePart *related_part = NULL; - - tny_mime_part_get_parts (part, related_parts); - related_iter = tny_list_create_iterator (related_parts); - - while (!tny_iterator_is_done (related_iter)) { - related_part = TNY_MIME_PART (tny_iterator_get_current (related_iter)); - part_cid = tny_mime_part_get_content_id (related_part); - if (part_cid && strcmp (cid, part_cid) == 0) { - break; - } - g_object_unref (related_part); - related_part = NULL; - tny_iterator_next (related_iter); - } - - g_object_unref (related_iter); - g_object_unref (related_parts); - if (related_part != NULL) { - g_object_unref (part); - part = related_part; - break; - } - } - - g_object_unref (G_OBJECT(part)); - - part = NULL; - tny_iterator_next (iter); - } - - g_object_unref (G_OBJECT(iter)); - g_object_unref (G_OBJECT(parts)); - - return part; -} - - -static gboolean -on_fetch_url (GtkWidget *widget, const gchar *uri, - TnyStream *stream, ModestMozembedMsgView *self) -{ - ModestMozembedMsgViewPrivate *priv; - priv = MODEST_MOZEMBED_MSG_VIEW_GET_PRIVATE (self); - gboolean result = FALSE; - - if (g_str_has_prefix (uri, "cid:")) { - /* +4 ==> skip "cid:" */ - TnyMimePart *part = find_cid_image (priv->msg, uri + 4); - if (!part) { - g_printerr ("modest: '%s' not found\n", uri + 4); - result = FALSE; - } else { - tny_mime_part_decode_to_stream ((TnyMimePart*)part, - stream, NULL); - g_object_unref (G_OBJECT(part)); - result = TRUE; - } - } else { - return TRUE; - } - - return result; -} - -static void -set_message (ModestMozembedMsgView *self, TnyMsg *msg, TnyMimePart *other_body) -{ - TnyMimePart *body; - ModestMozembedMsgViewPrivate *priv; - TnyHeader *header; - - g_return_if_fail (self); - - priv = MODEST_MOZEMBED_MSG_VIEW_GET_PRIVATE(self); - gtk_widget_set_no_show_all (priv->mail_header_view, FALSE); - - if (msg != priv->msg) { - if (priv->msg) - g_object_unref (G_OBJECT(priv->msg)); - if (msg) - g_object_ref (G_OBJECT(msg)); - priv->msg = msg; - } - - if (!msg) { - tny_header_view_clear (TNY_HEADER_VIEW (priv->mail_header_view)); - modest_attachments_view_set_message (MODEST_ATTACHMENTS_VIEW (priv->attachments_view), NULL); - gtk_widget_hide_all (priv->mail_header_view); - gtk_widget_hide_all (priv->attachments_box); - gtk_widget_set_no_show_all (priv->mail_header_view, TRUE); - tny_mime_part_view_clear (TNY_MIME_PART_VIEW (priv->body_view)); - return; - } - - header = tny_msg_get_header (msg); - tny_header_view_set_header (TNY_HEADER_VIEW (priv->mail_header_view), header); - g_object_unref (header); - - modest_attachments_view_set_message (MODEST_ATTACHMENTS_VIEW(priv->attachments_view), - other_body?NULL:msg); - - if (other_body) { - body = other_body; - g_object_ref (body); - } else { - body = modest_tny_msg_find_body_part (msg, TRUE); - } - - if (body) { - tny_mime_part_view_set_part (TNY_MIME_PART_VIEW (priv->body_view), body); - - if(modest_attachments_view_has_attachments (MODEST_ATTACHMENTS_VIEW (priv->attachments_view))) { - gtk_widget_show_all (priv->attachments_box); - } else { - gtk_widget_hide_all (priv->attachments_box); - } - - } else - tny_mime_part_view_clear (TNY_MIME_PART_VIEW (priv->body_view)); - - gtk_widget_show (priv->body_view); - gtk_widget_set_no_show_all (priv->attachments_box, TRUE); - gtk_widget_show_all (priv->mail_header_view); - gtk_widget_set_no_show_all (priv->attachments_box, FALSE); - gtk_widget_set_no_show_all (priv->mail_header_view, TRUE); - -} - -static void -set_header (ModestMozembedMsgView *self, TnyHeader *header) -{ - ModestMozembedMsgViewPrivate *priv; - - g_return_if_fail (self); - - if (header == NULL) - set_message (self, NULL, NULL); - - priv = MODEST_MOZEMBED_MSG_VIEW_GET_PRIVATE(self); - gtk_widget_set_no_show_all (priv->mail_header_view, FALSE); - - if (priv->msg) - g_object_unref (G_OBJECT(priv->msg)); - priv->msg = NULL; - - tny_header_view_set_header (TNY_HEADER_VIEW (priv->mail_header_view), header); - modest_attachments_view_set_message (MODEST_ATTACHMENTS_VIEW (priv->attachments_view), NULL); - gtk_widget_show_all (priv->mail_header_view); - gtk_widget_hide_all (priv->attachments_box); - gtk_widget_set_no_show_all (priv->mail_header_view, TRUE); - tny_mime_part_view_clear (TNY_MIME_PART_VIEW (priv->body_view)); -} - - -static TnyMsg* -get_message (ModestMozembedMsgView *self) -{ - TnyMsg *msg; - - g_return_val_if_fail (MODEST_IS_MOZEMBED_MSG_VIEW (self), NULL); - - msg = MODEST_MOZEMBED_MSG_VIEW_GET_PRIVATE(self)->msg; - - if (msg) - g_object_ref (msg); - - return msg; -} - -static gboolean -is_empty (ModestMozembedMsgView *self) -{ - ModestMozembedMsgViewPrivate *priv = MODEST_MOZEMBED_MSG_VIEW_GET_PRIVATE (self); - - return modest_mime_part_view_is_empty (MODEST_MIME_PART_VIEW (priv->body_view)); -} - -static void -set_zoom (ModestMozembedMsgView *self, gdouble zoom) -{ - ModestMozembedMsgViewPrivate *priv; - - g_return_if_fail (MODEST_IS_MOZEMBED_MSG_VIEW (self)); - priv = MODEST_MOZEMBED_MSG_VIEW_GET_PRIVATE (self); - - modest_zoomable_set_zoom (MODEST_ZOOMABLE(priv->body_view), zoom); - - gtk_widget_queue_resize (priv->body_view); -} - -static gdouble -get_zoom (ModestMozembedMsgView *self) -{ - ModestMozembedMsgViewPrivate *priv; - - g_return_val_if_fail (MODEST_IS_MOZEMBED_MSG_VIEW (self), 1.0); - priv = MODEST_MOZEMBED_MSG_VIEW_GET_PRIVATE (self); - - return modest_zoomable_get_zoom (MODEST_ZOOMABLE (priv->body_view)); -} - -static TnyHeaderFlags -get_priority (ModestMozembedMsgView *self) -{ - ModestMozembedMsgViewPrivate *priv; - - g_return_val_if_fail (MODEST_IS_MOZEMBED_MSG_VIEW (self), 0); - - priv = MODEST_MOZEMBED_MSG_VIEW_GET_PRIVATE (self); - - return modest_mail_header_view_get_priority (MODEST_MAIL_HEADER_VIEW (priv->mail_header_view)); -} - -static void -set_priority (ModestMozembedMsgView *self, TnyHeaderFlags flags) -{ - ModestMozembedMsgViewPrivate *priv; - - g_return_if_fail (MODEST_IS_MOZEMBED_MSG_VIEW (self)); - priv = MODEST_MOZEMBED_MSG_VIEW_GET_PRIVATE (self); - - modest_mail_header_view_set_priority (MODEST_MAIL_HEADER_VIEW (priv->mail_header_view), flags); -} - -/* INCREMENTAL SEARCH IMPLEMENTATION */ - -static gboolean -search (ModestMozembedMsgView *self, const gchar *search) -{ - ModestMozembedMsgViewPrivate *priv; - gboolean result; - - g_return_val_if_fail (MODEST_IS_MOZEMBED_MSG_VIEW (self), FALSE); - - priv = MODEST_MOZEMBED_MSG_VIEW_GET_PRIVATE (self); - result = modest_isearch_view_search (MODEST_ISEARCH_VIEW (priv->body_view), - search); - - return result; -} - -static gboolean -search_next (ModestMozembedMsgView *self) -{ - ModestMozembedMsgViewPrivate *priv; - gboolean result; - - g_return_val_if_fail (MODEST_IS_MOZEMBED_MSG_VIEW (self), FALSE); - - priv = MODEST_MOZEMBED_MSG_VIEW_GET_PRIVATE (self); - result = modest_isearch_view_search_next (MODEST_ISEARCH_VIEW (priv->body_view)); - - return result; -} - -static TnyList * -get_selected_attachments (ModestMozembedMsgView *self) -{ - ModestMozembedMsgViewPrivate *priv; - - g_return_val_if_fail (MODEST_IS_MOZEMBED_MSG_VIEW (self), NULL); - priv = MODEST_MOZEMBED_MSG_VIEW_GET_PRIVATE (self); - - return modest_attachments_view_get_selection (MODEST_ATTACHMENTS_VIEW (priv->attachments_view)); - -} - -static TnyList * -get_attachments (ModestMozembedMsgView *self) -{ - ModestMozembedMsgViewPrivate *priv; - - g_return_val_if_fail (MODEST_IS_MOZEMBED_MSG_VIEW (self), NULL); - priv = MODEST_MOZEMBED_MSG_VIEW_GET_PRIVATE (self); - - return modest_attachments_view_get_attachments (MODEST_ATTACHMENTS_VIEW (priv->attachments_view)); - -} - -static void -grab_focus (ModestMozembedMsgView *self) -{ - ModestMozembedMsgViewPrivate *priv = NULL; - - g_return_if_fail (MODEST_IS_MOZEMBED_MSG_VIEW (self)); - priv = MODEST_MOZEMBED_MSG_VIEW_GET_PRIVATE (self); - - gtk_widget_grab_focus (priv->body_view); -} - -static void -remove_attachment (ModestMozembedMsgView *self, TnyMimePart *attachment) -{ - ModestMozembedMsgViewPrivate *priv; - - g_return_if_fail (MODEST_IS_MOZEMBED_MSG_VIEW (self)); - g_return_if_fail (TNY_IS_MIME_PART (attachment)); - priv = MODEST_MOZEMBED_MSG_VIEW_GET_PRIVATE (self); - - modest_attachments_view_remove_attachment (MODEST_ATTACHMENTS_VIEW (priv->attachments_view), - attachment); - -} - -/* TNY HEADER VIEW IMPLEMENTATION */ - -static void -tny_header_view_init (gpointer g, gpointer iface_data) -{ - TnyHeaderViewIface *klass = (TnyHeaderViewIface *)g; - - klass->set_header = modest_msg_view_set_header; - klass->clear = modest_msg_view_clear_header; - - return; -} - -static void -modest_msg_view_set_header (TnyHeaderView *self, TnyHeader *header) -{ - MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->set_header_func (self, header); -} - - -static void -modest_msg_view_set_header_default (TnyHeaderView *self, TnyHeader *header) -{ - set_header (MODEST_MOZEMBED_MSG_VIEW (self), header); -} - -static void -modest_msg_view_clear_header (TnyHeaderView *self) -{ - MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->clear_header_func (self); -} - - -static void -modest_msg_view_clear_header_default (TnyHeaderView *self) -{ - set_message (MODEST_MOZEMBED_MSG_VIEW (self), NULL, NULL); -} - -/* TNY MSG IMPLEMENTATION */ - -static void -tny_msg_view_init (gpointer g, gpointer iface_data) -{ - TnyMsgViewIface *klass = (TnyMsgViewIface *)g; - - klass->get_msg = modest_msg_view_get_msg; - klass->set_msg = modest_msg_view_set_msg; - klass->set_unavailable = modest_msg_view_set_unavailable; - klass->clear = modest_msg_view_clear; - klass->create_mime_part_view_for = modest_msg_view_create_mime_part_view_for; - klass->create_new_inline_viewer = modest_msg_view_create_new_inline_viewer; - - return; -} - -static TnyMsg * -modest_msg_view_get_msg (TnyMsgView *self) -{ - return MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->get_msg_func (self); -} - -static TnyMsg * -modest_msg_view_get_msg_default (TnyMsgView *self) -{ - return TNY_MSG (tny_mime_part_view_get_part (TNY_MIME_PART_VIEW (self))); -} - -static void -modest_msg_view_set_msg (TnyMsgView *self, TnyMsg *msg) -{ - MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->set_msg_func (self, msg); -} - -static void -modest_msg_view_set_msg_default (TnyMsgView *self, TnyMsg *msg) -{ - - tny_mime_part_view_set_part (TNY_MIME_PART_VIEW (self), TNY_MIME_PART (msg)); - - return; -} - -static void -modest_msg_view_set_unavailable (TnyMsgView *self) -{ - MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->set_unavailable_func (self); -} - -static void -modest_msg_view_set_unavailable_default (TnyMsgView *self) -{ - tny_msg_view_clear (self); - - return; -} - -static void -modest_msg_view_clear (TnyMsgView *self) -{ - MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->clear_func (self); -} - -static void -modest_msg_view_clear_default (TnyMsgView *self) -{ - set_message (MODEST_MOZEMBED_MSG_VIEW (self), NULL, NULL); -} - -static TnyMimePartView* -modest_msg_view_create_mime_part_view_for (TnyMsgView *self, TnyMimePart *part) -{ - return MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->create_mime_part_view_for_func (self, part); -} - -static TnyMimePartView* -modest_msg_view_create_mime_part_view_for_default (TnyMsgView *self, TnyMimePart *part) -{ - g_warning ("modest_msg_view_create_mime_part_view_for_default is not implemented"); - return NULL; -} - -static TnyMsgView* -modest_msg_view_create_new_inline_viewer (TnyMsgView *self) -{ - return MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->create_new_inline_viewer_func (self); -} - -static TnyMsgView* -modest_msg_view_create_new_inline_viewer_default (TnyMsgView *self) -{ - g_warning ("modest_msg_view_create_new_inline_viewer_default is not implemented"); - - return NULL; -} - -/* TNY MIME PART IMPLEMENTATION */ - -static void -tny_mime_part_view_init (gpointer g, gpointer iface_data) -{ - TnyMimePartViewIface *klass = (TnyMimePartViewIface *)g; - - klass->get_part = modest_msg_view_mp_get_part; - klass->set_part = modest_msg_view_mp_set_part; - klass->clear = modest_msg_view_mp_clear; - - return; -} - -static TnyMimePart* -modest_msg_view_mp_get_part (TnyMimePartView *self) -{ - return MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->get_part_func (self); -} - - -static TnyMimePart* -modest_msg_view_mp_get_part_default (TnyMimePartView *self) -{ - return TNY_MIME_PART (get_message (MODEST_MOZEMBED_MSG_VIEW (self))); -} - -static void -modest_msg_view_mp_set_part (TnyMimePartView *self, - TnyMimePart *part) -{ - MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->set_part_func (self, part); -} - -static void -modest_msg_view_mp_set_part_default (TnyMimePartView *self, - TnyMimePart *part) -{ - g_return_if_fail ((part == NULL) || TNY_IS_MSG (part)); - - set_message (MODEST_MOZEMBED_MSG_VIEW (self), TNY_MSG (part), NULL); -} - -static void -modest_msg_view_mp_clear (TnyMimePartView *self) -{ - tny_msg_view_clear (TNY_MSG_VIEW (self)); -} - -/* MODEST MIME PART VIEW IMPLEMENTATION */ - -static void -modest_mime_part_view_init (gpointer g, gpointer iface_data) -{ - ModestMimePartViewIface *klass = (ModestMimePartViewIface *)g; - - klass->is_empty_func = modest_msg_view_mp_is_empty; - - return; -} - -static gboolean -modest_msg_view_mp_is_empty (ModestMimePartView *self) -{ - return MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->is_empty_func (self); -} - -static gboolean -modest_msg_view_mp_is_empty_default (ModestMimePartView *self) -{ - return is_empty (MODEST_MOZEMBED_MSG_VIEW (self)); -} - -/* MODEST ZOOMABLE IMPLEMENTATION */ -static void -modest_zoomable_init (gpointer g, gpointer iface_data) -{ - ModestZoomableIface *klass = (ModestZoomableIface *)g; - - klass->get_zoom_func = modest_msg_view_get_zoom; - klass->set_zoom_func = modest_msg_view_set_zoom; - klass->zoom_minus_func = modest_msg_view_zoom_minus; - klass->zoom_plus_func = modest_msg_view_zoom_plus; - - return; -} - -static gdouble -modest_msg_view_get_zoom (ModestZoomable *self) -{ - return MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->get_zoom_func (self); -} - -static gdouble -modest_msg_view_get_zoom_default (ModestZoomable *self) -{ - return get_zoom (MODEST_MOZEMBED_MSG_VIEW (self)); -} - -static void -modest_msg_view_set_zoom (ModestZoomable *self, gdouble value) -{ - MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->set_zoom_func (self, value); -} - -static void -modest_msg_view_set_zoom_default (ModestZoomable *self, gdouble value) -{ - set_zoom (MODEST_MOZEMBED_MSG_VIEW (self), value); -} - -static gboolean -modest_msg_view_zoom_minus (ModestZoomable *self) -{ - return MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->zoom_minus_func (self); -} - -static gboolean -modest_msg_view_zoom_minus_default (ModestZoomable *self) -{ - /* operation not supported in ModestMsgView */ - return FALSE; -} - -static gboolean -modest_msg_view_zoom_plus (ModestZoomable *self) -{ - return MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->zoom_plus_func (self); -} - -static gboolean -modest_msg_view_zoom_plus_default (ModestZoomable *self) -{ - /* operation not supported in ModestMsgView */ - return FALSE; -} - -/* MODEST ISEARCH VIEW IMPLEMENTATION */ -static void -modest_isearch_view_init (gpointer g, gpointer iface_data) -{ - ModestISearchViewIface *klass = (ModestISearchViewIface *)g; - - klass->search_func = modest_msg_view_search; - klass->search_next_func = modest_msg_view_search_next; - - return; -} - -static gboolean -modest_msg_view_search (ModestISearchView *self, const gchar *string) -{ - return MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->search_func (self, string); -} - -static gboolean -modest_msg_view_search_default (ModestISearchView *self, const gchar *string) -{ - return search (MODEST_MOZEMBED_MSG_VIEW (self), string); -} - -static gboolean -modest_msg_view_search_next (ModestISearchView *self) -{ - return MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->search_next_func (self); -} - -static gboolean -modest_msg_view_search_next_default (ModestISearchView *self) -{ - return search_next (MODEST_MOZEMBED_MSG_VIEW (self)); -} - -/* MODEST MSG VIEW IMPLEMENTATION */ -static void -modest_msg_view_init (gpointer g, gpointer iface_data) -{ - ModestMsgViewIface *klass = (ModestMsgViewIface *)g; - - klass->set_msg_with_other_body_func = modest_mozembed_msg_view_set_msg_with_other_body; - klass->get_vadjustment_func = modest_mozembed_msg_view_get_vadjustment; - klass->get_hadjustment_func = modest_mozembed_msg_view_get_hadjustment; - klass->set_vadjustment_func = modest_mozembed_msg_view_set_vadjustment; - klass->set_hadjustment_func = modest_mozembed_msg_view_set_hadjustment; - klass->set_shadow_type_func = modest_mozembed_msg_view_set_shadow_type; - klass->get_shadow_type_func = modest_mozembed_msg_view_get_shadow_type; - klass->get_priority_func = modest_mozembed_msg_view_get_priority; - klass->set_priority_func = modest_mozembed_msg_view_set_priority; - klass->get_selected_attachments_func = modest_mozembed_msg_view_get_selected_attachments; - klass->get_attachments_func = modest_mozembed_msg_view_get_attachments; - klass->grab_focus_func = modest_mozembed_msg_view_grab_focus; - klass->remove_attachment_func = modest_mozembed_msg_view_remove_attachment; - klass->request_fetch_images_func = modest_mozembed_msg_view_request_fetch_images; - klass->set_branding_func = modest_mozembed_msg_view_set_branding; - klass->has_blocked_external_images_func = modest_mozembed_msg_view_has_blocked_external_images; - - return; -} - -static void -modest_mozembed_msg_view_set_msg_with_other_body (ModestMsgView *self, TnyMsg *msg, TnyMimePart *other_body) -{ - MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->set_msg_with_other_body_func (self, msg, other_body); -} - -static void -modest_mozembed_msg_view_set_msg_with_other_body_default (ModestMsgView *self, TnyMsg *msg, TnyMimePart *other_body) -{ - set_message (MODEST_MOZEMBED_MSG_VIWE (self), msg, other_body); -} - -static GtkAdjustment* -modest_mozembed_msg_view_get_vadjustment (ModestMsgView *self) -{ - return MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->get_vadjustment_func (self); -} - -static GtkAdjustment* -modest_mozembed_msg_view_get_vadjustment_default (ModestMsgView *self) -{ - return get_vadjustment (MODEST_MOZEMBED_MSG_VIEW (self)); -} - -static GtkAdjustment* -modest_mozembed_msg_view_get_hadjustment (ModestMsgView *self) -{ - return MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->get_hadjustment_func (self); -} - -static GtkAdjustment* -modest_mozembed_msg_view_get_hadjustment_default (ModestMsgView *self) -{ - return get_hadjustment (MODEST_MOZEMBED_MSG_VIEW (self)); -} - -static void -modest_mozembed_msg_view_set_vadjustment (ModestMsgView *self, GtkAdjustment *adj) -{ - MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->set_vadjustment_func (self, adj); -} - -static void -modest_mozembed_msg_view_set_vadjustment_default (ModestMsgView *self, GtkAdjustment *adj) -{ - set_vadjustment (MODEST_MOZEMBED_MSG_VIEW (self), adj); -} - -static void -modest_mozembed_msg_view_set_hadjustment (ModestMsgView *self, GtkAdjustment *adj) -{ - MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->set_hadjustment_func (self, adj); -} - -static void -modest_mozembed_msg_view_set_hadjustment_default (ModestMsgView *self, GtkAdjustment *adj) -{ - set_hadjustment (MODEST_MOZEMBED_MSG_VIEW (self), adj); -} - -static void -modest_mozembed_msg_view_set_shadow_type (ModestMsgView *self, GtkShadowType type) -{ - MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->set_shadow_type_func (self, type); -} - -static void -modest_mozembed_msg_view_set_shadow_type_default (ModestMsgView *self, GtkShadowType type) -{ - set_shadow_type (MODEST_MOZEMBED_MSG_VIEW (self), type); -} - -static GtkShadowType -modest_mozembed_msg_view_get_shadow_type (ModestMsgView *self) -{ - return MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->get_shadow_type_func (self); -} - -static GtkShadowType -modest_mozembed_msg_view_get_shadow_type_default (ModestMsgView *self) -{ - return get_shadow_type (MODEST_MOZEMBED_MSG_VIEW (self)); -} - -static void -modest_mozembed_msg_view_set_priority (ModestMsgView *self, TnyHeaderFlags flags) -{ - MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->set_priority_func (self, flags); -} - -static void -modest_mozembed_msg_view_set_priority_default (ModestMsgView *self, TnyHeaderFlags flags) -{ - set_priority (MODEST_MOZEMBED_MSG_VIEW (self), flags); -} - -static TnyHeaderFlags -modest_mozembed_msg_view_get_priority (ModestMsgView *self) -{ - return MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->get_priority_func (self); -} - -static TnyHeaderFlags -modest_mozembed_msg_view_get_priority_default (ModestMsgView *self) -{ - return get_priority (MODEST_MOZEMBED_MSG_VIEW (self)); -} - -static TnyList* -modest_mozembed_msg_view_get_selected_attachments (ModestMsgView *self) -{ - return MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->get_selected_attachments_func (self); -} - -static TnyList* -modest_mozembed_msg_view_get_selected_attachments_default (ModestMsgView *self) -{ - return get_selected_attachments (MODEST_MOZEMBED_MSG_VIEW (self)); -} - -static TnyList* -modest_mozembed_msg_view_get_attachments (ModestMsgView *self) -{ - return MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->get_attachments_func (self); -} - -static TnyList* -modest_mozembed_msg_view_get_attachments_default (ModestMsgView *self) -{ - return get_attachments (MODEST_MOZEMBED_MSG_VIEW (self)); -} - -static void -modest_mozembed_msg_view_grab_focus (ModestMsgView *self) -{ - MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->grab_focus_func (self); -} - -static void -modest_mozembed_msg_view_grab_focus_default (ModestMsgView *self) -{ - grab_focus (MODEST_MOZEMBED_MSG_VIEW (self)); -} - -static void -modest_mozembed_msg_view_remove_attachment (ModestMsgView *self, TnyMimePart *attachment) -{ - MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->remove_attachment_func (self, attachment); -} - -static void -modest_mozembed_msg_view_remove_attachment_default (ModestMsgView *self, TnyMimePart *attachment) -{ - remove_attachment (MODEST_MOZEMBED_MSG_VIEW (self), attachment); -} - -static void -modest_mozembed_msg_view_request_fetch_images (ModestMsgView *self) -{ - MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->request_fetch_images_func (self); -} - -static void -modest_mozembed_msg_view_request_fetch_images_default (ModestMsgView *self) -{ - request_fetch_images (MODEST_MOZEMBED_MSG_VIEW (self)); -} - -static void -modest_mozembed_msg_view_set_branding (ModestMsgView *self, const gchar *brand_name, const GdkPixbuf *brand_icon) -{ - MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->set_branding_func (self, brand_name, brand_icon); -} - -static void -modest_mozembed_msg_view_set_branding_default (ModestMsgView *self, const gchar *brand_name, const GdkPixbuf *brand_icon) -{ - set_branding (MODEST_MOZEMBED_MSG_VIEW (self), brand_name, brand_icon); -} - -static gboolean -modest_mozembed_msg_view_has_blocked_external_images (ModestMsgView *self) -{ - return MODEST_MOZEMBED_MSG_VIEW_GET_CLASS (self)->has_blocked_external_images_func (self); -} - -static gboolean -modest_mozembed_msg_view_has_blocked_external_images_default (ModestMsgView *self) -{ - return has_blocked_external_images (MODEST_MOZEMBED_MSG_VIEW (self)); -} diff --git a/src/widgets/modest-mozembed-msg-view.h b/src/widgets/modest-mozembed-msg-view.h deleted file mode 100644 index 9ca947e..0000000 --- a/src/widgets/modest-mozembed-msg-view.h +++ /dev/null @@ -1,131 +0,0 @@ -/* Copyright (c) 2007, Nokia Corporation - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the Nokia Corporation nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef __MODEST_MOZEMBED_MSG_VIEW_H__ -#define __MODEST_MOZEMBED_MSG_VIEW_H__ - -#include -#include -#include -#include -#include -#include -#include -#include - -G_BEGIN_DECLS - -/* convenience macros */ -#define MODEST_TYPE_MOZEMBED_MSG_VIEW (modest_mozembed_msg_view_get_type()) -#define MODEST_MOZEMBED_MSG_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),MODEST_TYPE_MOZEMBED_MSG_VIEW,ModestMozembedMsgView)) -#define MODEST_MOZEMBED_MSG_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),MODEST_TYPE_MOZEMBED_MSG_VIEW,ModestMozembedMsgViewClass)) -#define MODEST_IS_MOZEMBED_MSG_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),MODEST_TYPE_MOZEMBED_MSG_VIEW)) -#define MODEST_IS_MOZEMBED_MSG_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),MODEST_TYPE_MOZEMBED_MSG_VIEW)) -#define MODEST_MOZEMBED_MSG_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj),MODEST_TYPE_MOZEMBED_MSG_VIEW,ModestMozembedMsgViewClass)) - -typedef struct _ModestMozembedMsgView ModestMozembedMsgView; -typedef struct _ModestMozembedMsgViewClass ModestMozembedMsgViewClass; - -struct _ModestMozembedMsgView { - GtkScrolledWindow parent; -}; - -struct _ModestMozembedMsgViewClass { - GtkScrolledWindowClass parent_class; - - /* TnyHeaderView interface */ - void (*set_header_func) (TnyHeaderView *self, TnyHeader *header); - void (*clear_header_func) (TnyHeaderView *self); - /* TnyMimePartView interface */ - TnyMimePart* (*get_part_func) (TnyMimePartView *self); - void (*set_part_func) (TnyMimePartView *self, TnyMimePart *part); - /* ModestMimePartView interface methods */ - gboolean (*is_empty_func) (ModestMimePartView *self); - /* TnyMsgView interface */ - TnyMsg* (*get_msg_func) (TnyMsgView *self); - void (*set_msg_func) (TnyMsgView *self, TnyMsg *msg); - void (*set_unavailable_func) (TnyMsgView *self); - void (*clear_func) (TnyMsgView *self); - TnyMimePartView* (*create_mime_part_view_for_func) (TnyMsgView *self, TnyMimePart *part); - TnyMsgView* (*create_new_inline_viewer_func) (TnyMsgView *self); - /* ModestZoomable interface */ - gdouble (*get_zoom_func) (ModestZoomable *self); - void (*set_zoom_func) (ModestZoomable *self, gdouble value); - gboolean (*zoom_minus_func) (ModestZoomable *self); - gboolean (*zoom_plus_func) (ModestZoomable *self); - /* ModestISearchView interface methods */ - gboolean (*search_func) (ModestISearchView *self, const gchar *string); - gboolean (*search_next_func) (ModestISearchView *self); - /* ModestMsgView interface methods */ - void (*set_msg_with_other_body) (ModestMsgView *self, TnyMsg *msg, TnyMimePart *part); - GtkAdjustment* (*get_vadjustment_func) (ModestMsgView *self); - GtkAdjustment* (*get_hadjustment_func) (ModestMsgView *self); - void (*set_vadjustment_func) (ModestMsgView *self, GtkAdjustment *vadj); - void (*set_hadjustment_func) (ModestMsgView *self, GtkAdjustment *vadj); - void (*set_shadow_type_func) (ModestMsgView *self, GtkShadowType type); - GtkShadowType (*get_shadow_type_func) (ModestMsgView *self); - TnyHeaderFlags (*get_priority_func) (ModestMsgView *self); - void (*set_priority_func) (ModestMsgView *self, TnyHeaderFlags flags); - TnyList * (*get_selected_attachments_func) (ModestMsgView *self); - TnyList * (*get_attachments_func) (ModestMsgView *self); - void (*grab_focus_func) (ModestMsgView *self); - void (*remove_attachment_func) (ModestMsgView *view, TnyMimePart *attachment); - void (*request_fetch_images_func) (ModestMsgView *view); - void (*set_branding_func) (ModestMsgView *view, const gchar *brand_name, const GdkPixbuf *brand_icon); - gboolean (*has_blocked_external_images_func) (ModestMsgView *view); - - void (*set_scroll_adjustments) (ModestMozembedMsgView *msg_view, GtkAdjustment *hadj, GtkAdjustment *vadj); -}; - - -/** - * modest_mozembed_msg_view_get_type: - * - * get the GType for the this class - * - * Returns: the GType for this class - */ -GType modest_mozembed_msg_view_get_type (void) G_GNUC_CONST; - - -/** - * modest_mozembed_msg_view_new - * @tny_msg: a TnyMsg instance, or NULL - * - * create a new ModestMozembedMsgView widget, - * and display the @tny_msg e-mail message in it. If @tny_msg is NULL, - * then a blank page will be displayed - * - * Returns: a new ModestMozembedMsgView widget, or NULL if there's an error - */ -GtkWidget* modest_mozembed_msg_view_new (TnyMsg *tny_msg); - -G_END_DECLS - -#endif /* __MODEST_MOZEMBED_MSG_VIEW_H__ */ -- 1.7.9.5