changeset 3e76ded0a0f0 in /home/hg/repos/gajim
details:http://hg.gajim.org/gajim?cmd=changeset;node=3e76ded0a0f0 description: egg.trayicon is dead. Light a candle :'( Fixes #3021, #5246
diffstat:
Makefile.am | 1 - README.html | 5 +- configure.ac | 16 +- scripts/gajim.in | 1 - src/Makefile.am | 31 +-- src/eggtrayicon.c | 584 ----------------------------------------------------- src/eggtrayicon.h | 80 ------- src/features_window.py | 13 - src/gui_interface.py | 18 +- src/statusicon.py | 354 +++++++++++++++++++++++++++++++- src/systray.py | 459 ----------------------------------------- src/tooltips.py | 4 +- src/trayicon.defs | 59 ----- src/trayicon.override | 47 ---- src/trayiconmodule.c | 43 --- 15 files changed, 353 insertions(+), 1362 deletions(-)
diffs (truncated from 1917 to 300 lines):
diff -r 5035367ab798 -r 3e76ded0a0f0 Makefile.am --- a/Makefile.am Tue Nov 24 14:24:35 2009 +0200 +++ b/Makefile.am Tue Nov 24 14:33:49 2009 +0100 @@ -50,7 +50,6 @@ aclocal.m4 \ libtool \ po/POTFILES.in \ - src/trayicon_la-eggtrayicon.loT \ m4/intltool.m4
MAINTAINERCLEANDIRS = \ diff -r 5035367ab798 -r 3e76ded0a0f0 README.html --- a/README.html Tue Nov 24 14:24:35 2009 +0200 +++ b/README.html Tue Nov 24 14:33:49 2009 +0100 @@ -16,7 +16,7 @@ <h2>Runtime Requirements</h2> <ul> <li>python2.5 or higher</li> -<li>pygtk2.12 or higher</li> +<li>pygtk2.16 or higher</li> <li>python-libglade</li> <li>pysqlite2 (if you have python 2.5, you already have this)</li> </ul> @@ -34,7 +34,6 @@ <li>For zeroconf (bonjour), the "enable link-local messaging" checkbox, you need dbus-glib, python-avahi</li> <li>dnsutils (or whatever package provides the nslookup binary) for SRV support</li> <li>gtkspell and aspell-LANG where lang is your locale eg. en, fr etc</li> -<li>GnomePythonExtras 2.10 or above (aka gnome-python-desktop) so you can avoid compiling trayicon and gtkspell</li> <li>gnome-python-desktop (for GnomeKeyring support)</li> <li>notification-daemon or notify-python (and D-Bus) to get cooler popups</li> <li>D-Bus running to have gajim-remote working. Some distributions split dbus-x11, which is needed for dbus to work with Gajim. Version >= 0.80 is required.</li> @@ -53,8 +52,6 @@ <ul> <li>python-dev</li> <li>python-gtk2-dev</li> -<li>libgtk2.0-dev aka. gtk2-devel</li> -<li>libgtkspell-dev (for the gtkspell module)</li> <li>intltool (>= 0.40.1)</li> </ul>
diff -r 5035367ab798 -r 3e76ded0a0f0 configure.ac --- a/configure.ac Tue Nov 24 14:24:35 2009 +0200 +++ b/configure.ac Tue Nov 24 14:33:49 2009 +0100 @@ -39,7 +39,7 @@ dnl **** dnl pygtk and gtk+ dnl **** -PKG_CHECK_MODULES([PYGTK], [gtk+-2.0 >= 2.12.0 pygtk-2.0 >= 2.12.0]) +PKG_CHECK_MODULES([PYGTK], [gtk+-2.0 >= 2.16.0 pygtk-2.0 >= 2.16.0]) AC_SUBST(PYGTK_CFLAGS) AC_SUBST(PYGTK_LIBS) PYGTK_DEFS=`$PKG_CONFIG --variable=defsdir pygtk-2.0` @@ -50,15 +50,6 @@ AC_MSG_ERROR([Python not found]) fi
-dnl **** -dnl tray icon -dnl **** -AC_ARG_ENABLE(trayicon, - [ --disable-trayicon do not build trayicon module [default yes]], - enable_trayicon=$enableval, enable_trayicon=yes) -test "x$enable_trayicon" = "xyes" && have_trayicon=true || have_trayicon=false -AM_CONDITIONAL(BUILD_TRAYICON, $have_trayicon) - ACLOCAL_AMFLAGS="${ACLOCAL_FLAGS}" AC_SUBST(ACLOCAL_AMFLAGS)
@@ -91,8 +82,3 @@ po/Makefile.in ]) AC_OUTPUT -echo " -***************************** - Build features: - trayicon ......... ${have_trayicon} -*****************************" diff -r 5035367ab798 -r 3e76ded0a0f0 scripts/gajim.in --- a/scripts/gajim.in Tue Nov 24 14:24:35 2009 +0200 +++ b/scripts/gajim.in Tue Nov 24 14:33:49 2009 +0100 @@ -33,5 +33,4 @@ PYTHON_EXEC=@PYTHON@
cd ${datadir}/src -export PYTHONPATH="$PYTHONPATH:@LIBDIR@/gajim" exec ${PYTHON_EXEC} -OO $APP.py "$@" diff -r 5035367ab798 -r 3e76ded0a0f0 src/Makefile.am --- a/src/Makefile.am Tue Nov 24 14:24:35 2009 +0200 +++ b/src/Makefile.am Tue Nov 24 14:33:49 2009 +0100 @@ -1,31 +1,7 @@ -CLEANFILES = \ - trayicon.c INCLUDES = \ $(PYTHON_INCLUDES) export MACOSX_DEPLOYMENT_TARGET=10.4
-if BUILD_TRAYICON -trayiconlib_LTLIBRARIES = trayicon.la -trayiconlibdir = $(pkglibdir) -trayicon_la_LIBADD = $(PYGTK_LIBS) -trayicon_la_SOURCES = \ - eggtrayicon.c \ - trayiconmodule.c - -nodist_trayicon_la_SOURCES = \ - trayicon.c - -trayicon_la_LDFLAGS = \ - -module -avoid-version -trayicon_la_CFLAGS = $(PYGTK_CFLAGS) - -trayicon.c: - pygtk-codegen-2.0 --prefix trayicon \ - --register $(PYGTK_DEFS)/gdk-types.defs \ - --register $(PYGTK_DEFS)/gtk-types.defs \ - --override $(srcdir)/trayicon.override \ - $(srcdir)/trayicon.defs > $@ -endif gajimsrcdir = $(pkgdatadir)/src gajimsrc_PYTHON = $(srcdir)/*.py
@@ -56,12 +32,7 @@ $(gajimsrc2_PYTHON) \ $(gajimsrc3_PYTHON) \ $(gajimsrc4_PYTHON) \ - $(gajimsrc5_PYTHON) \ - eggtrayicon.c \ - trayiconmodule.c \ - eggtrayicon.h \ - trayicon.defs \ - trayicon.override + $(gajimsrc5_PYTHON)
dist-hook: rm -f $(distdir)/ipython_view.py diff -r 5035367ab798 -r 3e76ded0a0f0 src/eggtrayicon.c --- a/src/eggtrayicon.c Tue Nov 24 14:24:35 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,584 +0,0 @@ -/* eggtrayicon.c - * Copyright (C) 2002 Anders Carlsson andersca@gnu.org - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include <string.h> -#include <glib/gi18n.h> -#include <libintl.h> - -#include "eggtrayicon.h" - -#include <gdkconfig.h> -#if defined (GDK_WINDOWING_X11) -#include <gdk/gdkx.h> -#include <X11/Xatom.h> -#elif defined (GDK_WINDOWING_WIN32) -#include <gdk/gdkwin32.h> -#endif - -#ifndef EGG_COMPILATION -#ifndef _ -#define _(x) dgettext (GETTEXT_PACKAGE, x) -#define N_(x) x -#endif -#else -#define _(x) x -#define N_(x) x -#endif - -#define SYSTEM_TRAY_REQUEST_DOCK 0 -#define SYSTEM_TRAY_BEGIN_MESSAGE 1 -#define SYSTEM_TRAY_CANCEL_MESSAGE 2 - -#define SYSTEM_TRAY_ORIENTATION_HORZ 0 -#define SYSTEM_TRAY_ORIENTATION_VERT 1 - -enum { - PROP_0, - PROP_ORIENTATION -}; - -static GtkPlugClass *parent_class = NULL; - -static void egg_tray_icon_init (EggTrayIcon *icon); -static void egg_tray_icon_class_init (EggTrayIconClass *klass); - -static void egg_tray_icon_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec); - -static void egg_tray_icon_add (GtkContainer *container, GtkWidget *widget); - -static void egg_tray_icon_realize (GtkWidget *widget); -static void egg_tray_icon_unrealize (GtkWidget *widget); - -#ifdef GDK_WINDOWING_X11 -static void egg_tray_icon_update_manager_window (EggTrayIcon *icon, - gboolean dock_if_realized); -static void egg_tray_icon_manager_window_destroyed (EggTrayIcon *icon); -#endif - -GType -egg_tray_icon_get_type (void) -{ - static GType our_type = 0; - - if (our_type == 0) - { - static const GTypeInfo our_info = - { - sizeof (EggTrayIconClass), - (GBaseInitFunc) NULL, - (GBaseFinalizeFunc) NULL, - (GClassInitFunc) egg_tray_icon_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (EggTrayIcon), - 0, /* n_preallocs */ - (GInstanceInitFunc) egg_tray_icon_init - }; - - our_type = g_type_register_static (GTK_TYPE_PLUG, "EggTrayIcon", &our_info, 0); - } - - return our_type; -} - -static void -egg_tray_icon_init (EggTrayIcon *icon) -{ - icon->stamp = 1; - icon->orientation = GTK_ORIENTATION_HORIZONTAL; - - gtk_widget_add_events (GTK_WIDGET (icon), GDK_PROPERTY_CHANGE_MASK); -} - -static void -egg_tray_icon_class_init (EggTrayIconClass *klass) -{ - GObjectClass *gobject_class = (GObjectClass *)klass; - GtkWidgetClass *widget_class = (GtkWidgetClass *)klass; - GtkContainerClass *container_class = (GtkContainerClass *)klass; - - parent_class = g_type_class_peek_parent (klass); - - gobject_class->get_property = egg_tray_icon_get_property; - - widget_class->realize = egg_tray_icon_realize; - widget_class->unrealize = egg_tray_icon_unrealize; - - container_class->add = egg_tray_icon_add; - - g_object_class_install_property (gobject_class, - PROP_ORIENTATION, - g_param_spec_enum ("orientation", - _("Orientation"), - _("The orientation of the tray."), - GTK_TYPE_ORIENTATION, - GTK_ORIENTATION_HORIZONTAL, - G_PARAM_READABLE)); - -#if defined (GDK_WINDOWING_X11) - /* Nothing */ -#elif defined (GDK_WINDOWING_WIN32) - g_warning ("Port eggtrayicon to Win32"); -#else - g_warning ("Port eggtrayicon to this GTK+ backend"); -#endif -} - -static void -egg_tray_icon_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - EggTrayIcon *icon = EGG_TRAY_ICON (object); - - switch (prop_id) - { - case PROP_ORIENTATION: - g_value_set_enum (value, icon->orientation); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break;