One GnomeCanvasPixbuf, Many Events



Hello,

I am using the GnomeCanvasPixbuf canvas item to display a pixmap image.
I would like to generate different events based on the location on the
image where the user clicks. (Using a bunch of smaller images is not
desirable.) 

My original plan was to find the x and y coordinates of certain areas on
the image and then use a switch statement in the callback to generate
different results based on where the user click. However, the code I
wrote to find the x and y coordinates is generating some strange
results:

event_cb(GnomeCanvasItem *item, GdkEvent *event, gpointer data)
{

  double item_x, item_y;
  double root_x, root_y;

  item_x = event->button.x;
  item_y = event->button.y;
  root_x = event->button.x_root;
  root_y = event->button.y_root;
  

  if (event->type == GDK_BUTTON_PRESS)
    {  
      g_print("x1: %d, y1: %d \n", item_x, item_y);  
      g_print("x2: %d, y2: %d \n", root_x, root_y);  
    }

}

x1: 5793576, y1: 0
x2: 5802544, y2: 0
x1: 5793576, y1: 0
x2: 5860128, y2: 0
x1: 5793576, y1: 0
x2: 5860128, y2: 0
x1: 5793576, y1: 0
x2: 5861648, y2: 0

No matter where I click y is always 0? What am I missing here? Is there
a better way to do what I'm trying to do?

Thanks,
Catherine







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