Exemplo n.º 1
0
EggTrayIcon *
egg_tray_icon_new_for_xscreen (Screen *xscreen, const char *name)
{
    EggTrayIcon *icon;
    char buffer[256];
    GdkWindow *root_window;

    g_return_val_if_fail (xscreen != NULL, NULL);

    icon = (EggTrayIcon*)gtk_object_new (EGG_TYPE_TRAY_ICON, NULL);
    gtk_window_set_title (GTK_WINDOW (icon), name);

#if HAVE_GTK_MULTIHEAD
    gtk_plug_construct_for_display (GTK_PLUG_XEMBED (icon),
                                    gdk_screen_get_display (screen), 0);
#else
    gtk_plug_xembed_construct (GTK_PLUG_XEMBED (icon), 0);
#endif

    gtk_widget_realize (GTK_WIDGET (icon));

    /* Now see if there's a manager window around */
    g_snprintf (buffer, sizeof (buffer),
                "_NET_SYSTEM_TRAY_S%d",
                XScreenNumberOfScreen (xscreen));

    icon->selection_atom = XInternAtom (DisplayOfScreen (xscreen),
                                        buffer, False);

    icon->manager_atom = XInternAtom (DisplayOfScreen (xscreen),
                                      "MANAGER", False);

    icon->system_tray_opcode_atom = XInternAtom (DisplayOfScreen (xscreen),
                                    "_NET_SYSTEM_TRAY_OPCODE", False);

    egg_tray_icon_update_manager_window (icon);

#if HAVE_GTK_MULTIHEAD
    root_window = gdk_screen_get_root_window (screen);
#else
    root_window = GDK_ROOT_PARENT(); /* gdk_window_lookup (gdk_x11_get_default_root_xwindow ()); */
#endif

    /* Add a root window filter so that we get changes on MANAGER */
    gdk_window_add_filter (root_window,
                           egg_tray_icon_manager_filter, icon);

    return icon;
}
Exemplo n.º 2
0
DwWidget* a_Dw_bullet_new (void)
{
   return DW_WIDGET (gtk_object_new (DW_TYPE_BULLET, NULL));
}