Re: newbie question



Thanks a lot.
It works perfect.

Christophe

Le jeu, 30 aoû 2001 12:38:04, Thomas Mailund a écrit :
On Thu, 2001-08-30 at 20:45, christophe barbé wrote:
I would like to attach a function to a click on a gtk pixmap or a gtk
vbox.
I've tried various code and finally my conclusion is that it's
impossible.
This seem's to be because these widgets don't own a (X) window. In my
(limited) understanding these are drawn directly on there parent
window.

to get events without an X window you use GtkEventBox.  I've attached an
example.  (In the example I use gdkpixbuf, 'cause I had some code lying
around, but you can use whatever you need).

      /mailund

-- 
If an animal is caught in a trap it will chew its leg off to
escape. If a human is caught in a trap it will wait and kill the
trapper and eliminate a threat to its kind.
                                             -- Frank Herbert



#include <gtk/gtk.h>
#include <gdk-pixbuf/gdk-pixbuf.h>

void
clicked (void)
{
  g_print ("clicked\n");
}

int
main (int argc, char *argv[])
{
  GtkWidget *win;

  GdkPixbuf *img;
  GdkPixmap *pixmap;
  GdkBitmap *mask;
  GtkWidget *image;

  GtkWidget *event_box;

  gtk_init (&argc, &argv);

  win = gtk_window_new (GTK_WINDOW_TOPLEVEL);

  img = gdk_pixbuf_new_from_file ("./pr0n.jpg");
  gdk_pixbuf_render_pixmap_and_mask (img, &pixmap, &mask, 0);
  image = gtk_pixmap_new (pixmap, mask);

  event_box = gtk_event_box_new ();

  gtk_container_add (GTK_CONTAINER (win), event_box);
  gtk_container_add (GTK_CONTAINER (event_box), image);

  gtk_signal_connect(GTK_OBJECT(event_box), "button_press_event",
                   GTK_SIGNAL_FUNC (clicked), NULL);
  gtk_widget_add_events(event_box, GDK_BUTTON_PRESS_MASK);

  gtk_widget_show_all (win);


  gtk_main ();

  return 0;
}

-- 
Christophe Barbé
Software Engineer - christophe barbe lineo fr
Lineo France - Lineo High Availability Group
42-46, rue Médéric - 92110 Clichy - France
phone (33).1.41.40.02.12 - fax (33).1.41.40.02.01
http://www.lineo.com




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]