Bug 535303 – add _get_implementation to GtkStatusIcon

2008-06-03  Colin Walters  <walters@redhat.com>
	
	Bug 535303 – add _get_implementation to GtkStatusIcon

	* gtk/gtkstatusicon.c (gtk_status_icon_get_x11_window_id): New
	function to retrieve internal X11 window ID, useful for libnotify.
	* gtk/gtkstatusicon.h: Prototype it.
	* docs/reference/gtk/gtk-sections.txt: Add to docs.
	* gtk/gtk.symbols: Export it.


svn path=/trunk/; revision=20304
This commit is contained in:
Colin Walters 2008-06-03 17:39:20 +00:00 committed by Colin Walters
parent 727a9145f6
commit 8ade45013c
5 changed files with 48 additions and 0 deletions

View File

@ -1,3 +1,13 @@
2008-06-03 Colin Walters <walters@redhat.com>
Bug 535303 add _get_implementation to GtkStatusIcon
* gtk/gtkstatusicon.c (gtk_status_icon_get_x11_window_id): New
function to retrieve internal X11 window ID, useful for libnotify.
* gtk/gtkstatusicon.h: Prototype it.
* docs/reference/gtk/gtk-sections.txt: Add to docs.
* gtk/gtk.symbols: Export it.
2008-06-03 Tor Lillqvist <tml@novell.com>
* gtk/updateiconcache.c (build_cache): Use g_open().

View File

@ -3402,6 +3402,7 @@ gtk_status_icon_get_blinking
gtk_status_icon_is_embedded
gtk_status_icon_position_menu
gtk_status_icon_get_geometry
gtk_status_icon_get_x11_window_id
<SUBSECTION Standard>
GTK_TYPE_STATUS_ICON

View File

@ -1123,6 +1123,7 @@ gtk_status_icon_get_blinking
gtk_status_icon_is_embedded
gtk_status_icon_position_menu
gtk_status_icon_get_geometry
gtk_status_icon_get_x11_window_id
#endif
#endif

View File

@ -41,6 +41,10 @@
#include "gtkprivate.h"
#include "gtkwidget.h"
#ifdef GDK_WINDOWING_X11
#include "gdk/x11/gdkx.h"
#endif
#ifdef GDK_WINDOWING_WIN32
#include "gtkicontheme.h"
#include "gtklabel.h"
@ -2095,6 +2099,36 @@ gtk_status_icon_get_geometry (GtkStatusIcon *status_icon,
#endif /* GDK_WINDOWING_X11 */
}
/**
* gtk_status_icon_get_x11_window_id:
* @status_icon: a #GtkStatusIcon
*
* This function is only useful on the X11/freedesktop.org platform.
* It returns a window ID for the widget in the underlying
* status icon implementation. This is useful for the Galago
* notification service, which can send a window ID in the protocol
* in order for the server to position notification windows
* pointing to a status icon reliably.
*
* This function is not intended for other use cases which are
* more likely to be met by one of the non-X11 specific methods, such
* as gtk_status_icon_position_menu().
*
* Return value: An 32 bit unsigned integer identifier for the
* underlying X11 Window
*
* Since: 2.14
*/
guint32
gtk_status_icon_get_x11_window_id (GtkStatusIcon *status_icon)
{
#ifdef GDK_WINDOWING_X11
gtk_widget_realize (GTK_WIDGET (status_icon->priv->tray_icon));
return GDK_WINDOW_XID (GTK_WIDGET (status_icon->priv->tray_icon)->window);
#else
return 0;
#endif
}
#define __GTK_STATUS_ICON_C__
#include "gtkaliasdef.c"

View File

@ -122,6 +122,8 @@ gboolean gtk_status_icon_get_geometry (GtkStatusIcon *st
GdkRectangle *area,
GtkOrientation *orientation);
guint32 gtk_status_icon_get_x11_window_id (GtkStatusIcon *status_icon);
G_END_DECLS
#endif /* __GTK_STATUS_ICON_H__ */