annotate gtk/browser.cpp @ 1853:4790589f52a9

Initial commit for new dw_signal_connect_data() function... Same as dw_signal_connect() but it has an additional callback parameter that gets called when the callback is being removed. This allows me to free memory allocated for the data parameter and prevent memory leaks in godwindows... Tested GTK and Mac.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Wed, 27 Feb 2013 19:14:22 +0000
parents fb59f9eeeecd
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
622
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1 #ifdef HAVE_CONFIG_H
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2 # include <config.h>
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3 #endif
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5 #define MOZILLA_INTERNAL_API
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7 #include <gtk/gtk.h>
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8 #include <gtkmozembed.h>
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9 #include <gtkmozembed_internal.h>
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10 #include "nsIDOMMouseEvent.h"
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
12 /**
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
13 * Takes a pointer to a mouse event and returns the mouse
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
14 * button number or -1 on error.
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
15 */
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
16 extern "C" gint mozilla_get_mouse_event_button(gpointer event)
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
17 {
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
18 gint button = 0;
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
19 glong x,y;
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
20
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
21 g_return_val_if_fail (event, -1);
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
22
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
23 /* the following lines were found in the Galeon source */
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
24 nsIDOMMouseEvent *aMouseEvent = (nsIDOMMouseEvent *) event;
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
25 aMouseEvent->GetButton ((PRUint16 *) &button);
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
26 aMouseEvent->GetClientX ((PRInt32 *) &x);
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
27 aMouseEvent->GetClientY ((PRInt32 *) &y);
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
28
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
29
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
30 /* for some reason we get different numbers on PPC, this fixes
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
31 * that up... -- MattA */
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
32 if (button == 65536)
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
33 {
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
34 button = 1;
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
35 }
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
36 else if (button == 131072)
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
37 {
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
38 button = 2;
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
39 }
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
40
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
41 return button;
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
42 }
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
43 extern "C" gint mozilla_get_mouse_location( gpointer event, glong *x, glong *y)
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
44 {
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
45 g_return_val_if_fail (event, -1);
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
46
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
47 /* the following lines were found in the Galeon source */
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
48 nsIDOMMouseEvent *aMouseEvent = (nsIDOMMouseEvent *) event;
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
49 aMouseEvent->GetClientX ((PRInt32 *) x);
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
50 aMouseEvent->GetClientY ((PRInt32 *) y);
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
51 return 0;
fb59f9eeeecd SUpport for embedded mozilla/firefox widget
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
52 }