Index: Makefile.in =================================================================== RCS file: /cvsroot/mozilla/Makefile.in,v retrieving revision 1.197 diff -u -r1.197 Makefile.in --- Makefile.in 15 Oct 2002 23:34:32 -0000 1.197 +++ Makefile.in 22 Oct 2002 17:14:59 -0000 @@ -267,6 +267,10 @@ tier_99_dirs += embedding/browser/gtk/tests endif +ifdef MOZ_ENABLE_GTK2 +tier_99_dirs += embedding/browser/gtk/tests +endif + endif # BUILD_MODULES == all STATIC_MAKEFILES := nsprpub directory/c-sdk Index: embedding/browser/Makefile.in =================================================================== RCS file: /cvsroot/mozilla/embedding/browser/Makefile.in,v retrieving revision 1.10 diff -u -r1.10 Makefile.in --- embedding/browser/Makefile.in 18 Dec 2001 09:10:33 -0000 1.10 +++ embedding/browser/Makefile.in 22 Oct 2002 17:14:59 -0000 @@ -31,6 +31,10 @@ DIRS += gtk endif +ifdef MOZ_ENABLE_GTK2 +DIRS += gtk +endif + ifdef MOZ_ENABLE_PHOTON DIRS += photon endif Index: embedding/browser/gtk/src/EmbedProgress.cpp =================================================================== RCS file: /cvsroot/mozilla/embedding/browser/gtk/src/EmbedProgress.cpp,v retrieving revision 1.10 diff -u -r1.10 EmbedProgress.cpp --- embedding/browser/gtk/src/EmbedProgress.cpp 7 Sep 2002 17:09:12 -0000 1.10 +++ embedding/browser/gtk/src/EmbedProgress.cpp 22 Oct 2002 17:14:59 -0000 @@ -80,8 +80,8 @@ } gtk_signal_emit(GTK_OBJECT(mOwner->mOwningWidget), moz_embed_signals[NET_STATE_ALL], - (const char *)uriString, aStateFlags, aStatus); - + (gpointer)(const char *)uriString, + (gint)aStateFlags, (gint)aStatus); // and for stop, too if ((aStateFlags & GTK_MOZ_EMBED_FLAG_IS_NETWORK) && (aStateFlags & GTK_MOZ_EMBED_FLAG_STOP)) Index: embedding/browser/gtk/src/EmbedWindow.cpp =================================================================== RCS file: /cvsroot/mozilla/embedding/browser/gtk/src/EmbedWindow.cpp,v retrieving revision 1.26 diff -u -r1.26 EmbedWindow.cpp --- embedding/browser/gtk/src/EmbedWindow.cpp 7 Sep 2002 17:09:12 -0000 1.26 +++ embedding/browser/gtk/src/EmbedWindow.cpp 22 Oct 2002 17:14:59 -0000 @@ -226,9 +226,11 @@ { GtkWidget* parent = GTK_WIDGET(mOwner->mOwningWidget)->parent; +#ifdef MOZ_WIDGET_GTK if (GTK_IS_CONTAINER(parent)) gtk_container_focus(GTK_CONTAINER(parent), GTK_DIR_TAB_FORWARD); +#endif return NS_OK; } @@ -237,9 +239,11 @@ { GtkWidget* parent = GTK_WIDGET(mOwner->mOwningWidget)->parent; +#ifdef MOZ_WIDGET_GTK if (GTK_IS_CONTAINER(parent)) gtk_container_focus(GTK_CONTAINER(parent), GTK_DIR_TAB_BACKWARD); +#endif return NS_OK; } @@ -405,7 +409,9 @@ 0, 0, sTipWindow->allocation.width, sTipWindow->allocation.height); +#ifdef MOZ_WIDGET_GTK gtk_widget_popup(sTipWindow, aXCoords + root_x, aYCoords + root_y); +#endif /* MOZ_WIDGET_GTK */ nsMemory::Free( (void*)tipString ); Index: embedding/browser/gtk/src/Makefile.in =================================================================== RCS file: /cvsroot/mozilla/embedding/browser/gtk/src/Makefile.in,v retrieving revision 1.36 diff -u -r1.36 Makefile.in --- embedding/browser/gtk/src/Makefile.in 23 Sep 2002 19:13:28 -0000 1.36 +++ embedding/browser/gtk/src/Makefile.in 22 Oct 2002 17:14:59 -0000 @@ -56,6 +56,11 @@ EmbedWindowCreator.cpp \ EmbedStream.cpp +ifdef MOZ_ENABLE_GTK2 +CSRCS = \ + gtkmozembedmarshal.c +endif + ifdef BUILD_STATIC_LIBS # Static build stuff DEFINES += -D_BUILD_STATIC_BIN=1 @@ -88,13 +93,21 @@ gtkmozembed.h \ gtkmozembed_internal.h +ifdef MOZ_ENABLE_GTK EXTRA_DSO_LDOPTS = \ $(MOZ_COMPONENT_LIBS) \ $(XPCOM_GLUE_LIBS) \ -lgtksuperwin \ $(NULL) +endif + +ifdef MOZ_ENABLE_GTK2 +EXTRA_DSO_LDOPTS = \ + $(MOZ_COMPONENT_LIBS) \ + $(NULL) +endif -EXTRA_DSO_LDOPTS += $(MOZ_GTK_LDFLAGS) +EXTRA_DSO_LDOPTS += $(MOZ_GTK_LDFLAGS) $(MOZ_GTK2_LIBS) include $(topsrcdir)/config/rules.mk @@ -109,7 +122,8 @@ endif endif -CXXFLAGS += $(MOZ_GTK_CFLAGS) +CXXFLAGS += $(MOZ_GTK_CFLAGS) $(MOZ_GTK2_CFLAGS) +CFLAGS += $(MOZ_GTK_CFLAGS) $(MOZ_GTK2_CFLAGS) ifdef BUILD_STATIC_LIBS Index: embedding/browser/gtk/src/gtkmozembed2.cpp =================================================================== RCS file: /cvsroot/mozilla/embedding/browser/gtk/src/gtkmozembed2.cpp,v retrieving revision 1.23 diff -u -r1.23 gtkmozembed2.cpp --- embedding/browser/gtk/src/gtkmozembed2.cpp 12 Jan 2002 05:04:57 -0000 1.23 +++ embedding/browser/gtk/src/gtkmozembed2.cpp 22 Oct 2002 17:14:59 -0000 @@ -36,11 +36,37 @@ #include #include +#ifdef MOZ_WIDGET_GTK + // so we can get callbacks from the mozarea #include +// so we get the right marshaler for gtk 1.2 +#define gtkmozembed_VOID__INT_UINT \ + gtk_marshal_NONE__INT_INT +#define gtkmozembed_VOID__POINTER_INT_INT \ + gtk_marshal_NONE__POINTER_INT_INT +#define gtkmozembed_VOID__POINTER_INT_UINT \ + gtk_marshal_NONE__POINTER_INT_INT +#define gtkmozembed_VOID__POINTER_INT_POINTER \ + gtk_marshal_NONE__POINTER_INT_POINTER + +#endif /* MOZ_WIDGET_GTK */ + +#ifdef MOZ_WIDGET_GTK2 + +#define GET_OBJECT_CLASS_TYPE(x) G_OBJECT_CLASS_TYPE(x) + +#include "gtkmozembedmarshal.h" + +#endif /* MOZ_WIDGET_GTK2 */ + class nsIDirectoryServiceProvider; +#ifdef MOZ_WIDGET_GTK + +#define GET_OBJECT_CLASS_TYPE(x) (GTK_OBJECT_CLASS(x)->type) + // Some "massaged" enum information for the GTK Type System static GtkFlagValue gtk_moz_embed_progress_flags_values[] = { { GTK_MOZ_EMBED_FLAG_START, @@ -138,6 +164,7 @@ { 0, NULL, NULL } }; +#endif /* MOZ_WIDGET_GTK */ // class and instance initialization @@ -180,6 +207,7 @@ GdkEventFocus *aGdkFocusEvent, GtkMozEmbed *aEmbed); +#ifdef MOZ_WIDGET_GTK // signal handlers for tracking the focus and and focus out events on // the toplevel window. @@ -189,6 +217,7 @@ static void handle_toplevel_focus_out(GtkMozArea *aArea, GtkMozEmbed *aEmbed); +#endif /* MOZ_WIDGET_GTK */ // globals for this type of widget @@ -249,191 +278,193 @@ moz_embed_signals[LINK_MESSAGE] = gtk_signal_new ("link_message", GTK_RUN_FIRST, - object_class->type, + GET_OBJECT_CLASS_TYPE(klass), GTK_SIGNAL_OFFSET(GtkMozEmbedClass, link_message), gtk_marshal_NONE__NONE, GTK_TYPE_NONE, 0); moz_embed_signals[JS_STATUS] = gtk_signal_new ("js_status", GTK_RUN_FIRST, - object_class->type, + GET_OBJECT_CLASS_TYPE(klass), GTK_SIGNAL_OFFSET(GtkMozEmbedClass, js_status), gtk_marshal_NONE__NONE, GTK_TYPE_NONE, 0); moz_embed_signals[LOCATION] = gtk_signal_new ("location", GTK_RUN_FIRST, - object_class->type, + GET_OBJECT_CLASS_TYPE(klass), GTK_SIGNAL_OFFSET(GtkMozEmbedClass, location), gtk_marshal_NONE__NONE, GTK_TYPE_NONE, 0); moz_embed_signals[TITLE] = gtk_signal_new("title", GTK_RUN_FIRST, - object_class->type, + GET_OBJECT_CLASS_TYPE(klass), GTK_SIGNAL_OFFSET(GtkMozEmbedClass, title), gtk_marshal_NONE__NONE, GTK_TYPE_NONE, 0); moz_embed_signals[PROGRESS] = gtk_signal_new("progress", GTK_RUN_FIRST, - object_class->type, + GET_OBJECT_CLASS_TYPE(klass), GTK_SIGNAL_OFFSET(GtkMozEmbedClass, progress), gtk_marshal_NONE__INT_INT, GTK_TYPE_NONE, 2, GTK_TYPE_INT, GTK_TYPE_INT); moz_embed_signals[PROGRESS_ALL] = gtk_signal_new("progress_all", GTK_RUN_FIRST, - object_class->type, + GET_OBJECT_CLASS_TYPE(klass), GTK_SIGNAL_OFFSET(GtkMozEmbedClass, progress_all), - gtk_marshal_NONE__POINTER_INT_INT, + gtkmozembed_VOID__POINTER_INT_INT, GTK_TYPE_NONE, 3, GTK_TYPE_STRING, GTK_TYPE_INT, GTK_TYPE_INT); moz_embed_signals[NET_STATE] = gtk_signal_new("net_state", GTK_RUN_FIRST, - object_class->type, + GET_OBJECT_CLASS_TYPE(klass), GTK_SIGNAL_OFFSET(GtkMozEmbedClass, net_state), - gtk_marshal_NONE__INT_INT, + gtkmozembed_VOID__INT_UINT, GTK_TYPE_NONE, 2, GTK_TYPE_INT, GTK_TYPE_UINT); moz_embed_signals[NET_STATE_ALL] = gtk_signal_new("net_state_all", GTK_RUN_FIRST, - object_class->type, + GET_OBJECT_CLASS_TYPE(klass), GTK_SIGNAL_OFFSET(GtkMozEmbedClass, net_state_all), - gtk_marshal_NONE__POINTER_INT_INT, + gtkmozembed_VOID__POINTER_INT_UINT, GTK_TYPE_NONE, 3, GTK_TYPE_STRING, GTK_TYPE_INT, GTK_TYPE_UINT); moz_embed_signals[NET_START] = gtk_signal_new("net_start", GTK_RUN_FIRST, - object_class->type, + GET_OBJECT_CLASS_TYPE(klass), GTK_SIGNAL_OFFSET(GtkMozEmbedClass, net_start), gtk_marshal_NONE__NONE, GTK_TYPE_NONE, 0); moz_embed_signals[NET_STOP] = gtk_signal_new("net_stop", GTK_RUN_FIRST, - object_class->type, + GET_OBJECT_CLASS_TYPE(klass), GTK_SIGNAL_OFFSET(GtkMozEmbedClass, net_stop), gtk_marshal_NONE__NONE, GTK_TYPE_NONE, 0); moz_embed_signals[NEW_WINDOW] = gtk_signal_new("new_window", GTK_RUN_FIRST, - object_class->type, + GET_OBJECT_CLASS_TYPE(klass), GTK_SIGNAL_OFFSET(GtkMozEmbedClass, new_window), gtk_marshal_NONE__POINTER_UINT, GTK_TYPE_NONE, 2, GTK_TYPE_POINTER, GTK_TYPE_UINT); moz_embed_signals[VISIBILITY] = gtk_signal_new("visibility", GTK_RUN_FIRST, - object_class->type, + GET_OBJECT_CLASS_TYPE(klass), GTK_SIGNAL_OFFSET(GtkMozEmbedClass, visibility), gtk_marshal_NONE__BOOL, GTK_TYPE_NONE, 1, GTK_TYPE_BOOL); moz_embed_signals[DESTROY_BROWSER] = gtk_signal_new("destroy_browser", GTK_RUN_FIRST, - object_class->type, + GET_OBJECT_CLASS_TYPE(klass), GTK_SIGNAL_OFFSET(GtkMozEmbedClass, destroy_brsr), gtk_marshal_NONE__NONE, GTK_TYPE_NONE, 0); moz_embed_signals[OPEN_URI] = gtk_signal_new("open_uri", GTK_RUN_LAST, - object_class->type, + GET_OBJECT_CLASS_TYPE(klass), GTK_SIGNAL_OFFSET(GtkMozEmbedClass, open_uri), gtk_marshal_BOOL__POINTER, GTK_TYPE_BOOL, 1, GTK_TYPE_STRING); moz_embed_signals[SIZE_TO] = gtk_signal_new("size_to", GTK_RUN_LAST, - object_class->type, + GET_OBJECT_CLASS_TYPE(klass), GTK_SIGNAL_OFFSET(GtkMozEmbedClass, size_to), gtk_marshal_NONE__INT_INT, GTK_TYPE_NONE, 2, GTK_TYPE_INT, GTK_TYPE_INT); moz_embed_signals[DOM_KEY_DOWN] = gtk_signal_new("dom_key_down", GTK_RUN_LAST, - object_class->type, + GET_OBJECT_CLASS_TYPE(klass), GTK_SIGNAL_OFFSET(GtkMozEmbedClass, dom_key_down), gtk_marshal_BOOL__POINTER, GTK_TYPE_BOOL, 1, GTK_TYPE_POINTER); moz_embed_signals[DOM_KEY_PRESS] = gtk_signal_new("dom_key_press", GTK_RUN_LAST, - object_class->type, + GET_OBJECT_CLASS_TYPE(klass), GTK_SIGNAL_OFFSET(GtkMozEmbedClass, dom_key_press), gtk_marshal_BOOL__POINTER, GTK_TYPE_BOOL, 1, GTK_TYPE_POINTER); moz_embed_signals[DOM_KEY_UP] = gtk_signal_new("dom_key_up", GTK_RUN_LAST, - object_class->type, + GET_OBJECT_CLASS_TYPE(klass), GTK_SIGNAL_OFFSET(GtkMozEmbedClass, dom_key_up), gtk_marshal_BOOL__POINTER, GTK_TYPE_BOOL, 1, GTK_TYPE_POINTER); moz_embed_signals[DOM_MOUSE_DOWN] = gtk_signal_new("dom_mouse_down", GTK_RUN_LAST, - object_class->type, + GET_OBJECT_CLASS_TYPE(klass), GTK_SIGNAL_OFFSET(GtkMozEmbedClass, dom_mouse_down), gtk_marshal_BOOL__POINTER, GTK_TYPE_BOOL, 1, GTK_TYPE_POINTER); moz_embed_signals[DOM_MOUSE_UP] = gtk_signal_new("dom_mouse_up", GTK_RUN_LAST, - object_class->type, + GET_OBJECT_CLASS_TYPE(klass), GTK_SIGNAL_OFFSET(GtkMozEmbedClass, dom_mouse_up), gtk_marshal_BOOL__POINTER, GTK_TYPE_BOOL, 1, GTK_TYPE_POINTER); moz_embed_signals[DOM_MOUSE_CLICK] = gtk_signal_new("dom_mouse_click", GTK_RUN_LAST, - object_class->type, + GET_OBJECT_CLASS_TYPE(klass), GTK_SIGNAL_OFFSET(GtkMozEmbedClass, dom_mouse_click), gtk_marshal_BOOL__POINTER, GTK_TYPE_BOOL, 1, GTK_TYPE_POINTER); moz_embed_signals[DOM_MOUSE_DBL_CLICK] = gtk_signal_new("dom_mouse_dbl_click", GTK_RUN_LAST, - object_class->type, + GET_OBJECT_CLASS_TYPE(klass), GTK_SIGNAL_OFFSET(GtkMozEmbedClass, dom_mouse_dbl_click), gtk_marshal_BOOL__POINTER, GTK_TYPE_BOOL, 1, GTK_TYPE_POINTER); moz_embed_signals[DOM_MOUSE_OVER] = gtk_signal_new("dom_mouse_over", GTK_RUN_LAST, - object_class->type, + GET_OBJECT_CLASS_TYPE(klass), GTK_SIGNAL_OFFSET(GtkMozEmbedClass, dom_mouse_over), gtk_marshal_BOOL__POINTER, GTK_TYPE_BOOL, 1, GTK_TYPE_POINTER); moz_embed_signals[DOM_MOUSE_OUT] = gtk_signal_new("dom_mouse_out", GTK_RUN_LAST, - object_class->type, + GET_OBJECT_CLASS_TYPE(klass), GTK_SIGNAL_OFFSET(GtkMozEmbedClass, dom_mouse_out), gtk_marshal_BOOL__POINTER, GTK_TYPE_BOOL, 1, GTK_TYPE_POINTER); moz_embed_signals[SECURITY_CHANGE] = gtk_signal_new("security_change", GTK_RUN_LAST, - object_class->type, + GET_OBJECT_CLASS_TYPE(klass), GTK_SIGNAL_OFFSET(GtkMozEmbedClass, security_change), gtk_marshal_NONE__POINTER_UINT, GTK_TYPE_NONE, 2, GTK_TYPE_POINTER, GTK_TYPE_UINT); moz_embed_signals[STATUS_CHANGE] = gtk_signal_new("status_change", GTK_RUN_LAST, - object_class->type, + GET_OBJECT_CLASS_TYPE(klass), GTK_SIGNAL_OFFSET(GtkMozEmbedClass, status_change), - gtk_marshal_NONE__POINTER_INT_POINTER, + gtkmozembed_VOID__POINTER_INT_POINTER, GTK_TYPE_NONE, 3, GTK_TYPE_POINTER, GTK_TYPE_INT, GTK_TYPE_POINTER); +#ifdef MOZ_WIDGET_GTK gtk_object_class_add_signals(object_class, moz_embed_signals, EMBED_LAST_SIGNAL); +#endif /* MOZ_WIDGET_GTK */ } @@ -538,6 +569,7 @@ embed, GTK_OBJECT(child_widget)); +#ifdef MOZ_WIDGET_GTK // connect to the toplevel focus out events for the child GtkMozArea *mozarea = GTK_MOZAREA(child_widget); gtk_signal_connect_while_alive(GTK_OBJECT(mozarea), @@ -551,6 +583,7 @@ GTK_SIGNAL_FUNC(handle_toplevel_focus_out), embed, GTK_OBJECT(mozarea)); +#endif /* MOZ_WIDGET_GTK */ } static void @@ -663,6 +696,8 @@ return FALSE; } +#ifdef MOZ_WIDGET_GTK + static void handle_toplevel_focus_in (GtkMozArea *aArea, GtkMozEmbed *aEmbed) @@ -683,6 +718,8 @@ embedPrivate->TopLevelFocusOut(); } +#endif /* MOZ_WIDGET_GTK */ + // Widget methods void @@ -1011,6 +1048,8 @@ return embedPrivate->mChromeMask; } +#ifdef MOZ_WIDGET_GTK + GtkType gtk_moz_embed_progress_flags_get_type(void) { @@ -1059,6 +1098,8 @@ return chrome_flags_type; } +#endif /* MOZ_WIDGET_GTK */ + void gtk_moz_embed_get_nsIWebBrowser (GtkMozEmbed *embed, nsIWebBrowser **retval) { @@ -1183,14 +1224,16 @@ moz_embed_single_signals[NEW_WINDOW_ORPHAN] = gtk_signal_new("new_window_orphan", GTK_RUN_FIRST, - object_class->type, + GET_OBJECT_CLASS_TYPE(klass), GTK_SIGNAL_OFFSET(GtkMozEmbedSingleClass, new_window_orphan), gtk_marshal_NONE__POINTER_UINT, GTK_TYPE_NONE, 2, GTK_TYPE_POINTER, GTK_TYPE_UINT); +#ifdef MOZ_WIDGET_GTK gtk_object_class_add_signals(object_class, moz_embed_single_signals, SINGLE_LAST_SIGNAL); +#endif /* MOZ_WIDGET_GTK */ } static void Index: embedding/browser/gtk/src/gtkmozembedmarshal.c =================================================================== RCS file: embedding/browser/gtk/src/gtkmozembedmarshal.c diff -N embedding/browser/gtk/src/gtkmozembedmarshal.c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ embedding/browser/gtk/src/gtkmozembedmarshal.c 22 Oct 2002 17:14:59 -0000 @@ -0,0 +1,203 @@ + +#include + + +#ifdef G_ENABLE_DEBUG +#define g_marshal_value_peek_boolean(v) g_value_get_boolean (v) +#define g_marshal_value_peek_char(v) g_value_get_char (v) +#define g_marshal_value_peek_uchar(v) g_value_get_uchar (v) +#define g_marshal_value_peek_int(v) g_value_get_int (v) +#define g_marshal_value_peek_uint(v) g_value_get_uint (v) +#define g_marshal_value_peek_long(v) g_value_get_long (v) +#define g_marshal_value_peek_ulong(v) g_value_get_ulong (v) +#define g_marshal_value_peek_int64(v) g_value_get_int64 (v) +#define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v) +#define g_marshal_value_peek_enum(v) g_value_get_enum (v) +#define g_marshal_value_peek_flags(v) g_value_get_flags (v) +#define g_marshal_value_peek_float(v) g_value_get_float (v) +#define g_marshal_value_peek_double(v) g_value_get_double (v) +#define g_marshal_value_peek_string(v) (char*) g_value_get_string (v) +#define g_marshal_value_peek_param(v) g_value_get_param (v) +#define g_marshal_value_peek_boxed(v) g_value_get_boxed (v) +#define g_marshal_value_peek_pointer(v) g_value_get_pointer (v) +#define g_marshal_value_peek_object(v) g_value_get_object (v) +#else /* !G_ENABLE_DEBUG */ +/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API. + * Do not access GValues directly in your code. Instead, use the + * g_value_get_*() functions + */ +#define g_marshal_value_peek_boolean(v) (v)->data[0].v_int +#define g_marshal_value_peek_char(v) (v)->data[0].v_int +#define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint +#define g_marshal_value_peek_int(v) (v)->data[0].v_int +#define g_marshal_value_peek_uint(v) (v)->data[0].v_uint +#define g_marshal_value_peek_long(v) (v)->data[0].v_long +#define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong +#define g_marshal_value_peek_int64(v) (v)->data[0].v_int64 +#define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64 +#define g_marshal_value_peek_enum(v) (v)->data[0].v_int +#define g_marshal_value_peek_flags(v) (v)->data[0].v_uint +#define g_marshal_value_peek_float(v) (v)->data[0].v_float +#define g_marshal_value_peek_double(v) (v)->data[0].v_double +#define g_marshal_value_peek_string(v) (v)->data[0].v_pointer +#define g_marshal_value_peek_param(v) (v)->data[0].v_pointer +#define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer +#define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer +#define g_marshal_value_peek_object(v) (v)->data[0].v_pointer +#endif /* !G_ENABLE_DEBUG */ + + +/* NONE:POINTER,INT,INT (/dev/stdin:1) */ +void +gtkmozembed_VOID__POINTER_INT_INT (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data) +{ + typedef void (*GMarshalFunc_VOID__POINTER_INT_INT) (gpointer data1, + gpointer arg_1, + gint arg_2, + gint arg_3, + gpointer data2); + register GMarshalFunc_VOID__POINTER_INT_INT callback; + register GCClosure *cc = (GCClosure*) closure; + register gpointer data1, data2; + + g_return_if_fail (n_param_values == 4); + + if (G_CCLOSURE_SWAP_DATA (closure)) + { + data1 = closure->data; + data2 = g_value_peek_pointer (param_values + 0); + } + else + { + data1 = g_value_peek_pointer (param_values + 0); + data2 = closure->data; + } + callback = (GMarshalFunc_VOID__POINTER_INT_INT) (marshal_data ? marshal_data : cc->callback); + + callback (data1, + g_marshal_value_peek_pointer (param_values + 1), + g_marshal_value_peek_int (param_values + 2), + g_marshal_value_peek_int (param_values + 3), + data2); +} + +/* NONE:INT,UINT (/dev/stdin:2) */ +void +gtkmozembed_VOID__INT_UINT (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data) +{ + typedef void (*GMarshalFunc_VOID__INT_UINT) (gpointer data1, + gint arg_1, + guint arg_2, + gpointer data2); + register GMarshalFunc_VOID__INT_UINT callback; + register GCClosure *cc = (GCClosure*) closure; + register gpointer data1, data2; + + g_return_if_fail (n_param_values == 3); + + if (G_CCLOSURE_SWAP_DATA (closure)) + { + data1 = closure->data; + data2 = g_value_peek_pointer (param_values + 0); + } + else + { + data1 = g_value_peek_pointer (param_values + 0); + data2 = closure->data; + } + callback = (GMarshalFunc_VOID__INT_UINT) (marshal_data ? marshal_data : cc->callback); + + callback (data1, + g_marshal_value_peek_int (param_values + 1), + g_marshal_value_peek_uint (param_values + 2), + data2); +} + +/* NONE:POINTER,INT,UINT (/dev/stdin:3) */ +void +gtkmozembed_VOID__POINTER_INT_UINT (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data) +{ + typedef void (*GMarshalFunc_VOID__POINTER_INT_UINT) (gpointer data1, + gpointer arg_1, + gint arg_2, + guint arg_3, + gpointer data2); + register GMarshalFunc_VOID__POINTER_INT_UINT callback; + register GCClosure *cc = (GCClosure*) closure; + register gpointer data1, data2; + + g_return_if_fail (n_param_values == 4); + + if (G_CCLOSURE_SWAP_DATA (closure)) + { + data1 = closure->data; + data2 = g_value_peek_pointer (param_values + 0); + } + else + { + data1 = g_value_peek_pointer (param_values + 0); + data2 = closure->data; + } + callback = (GMarshalFunc_VOID__POINTER_INT_UINT) (marshal_data ? marshal_data : cc->callback); + + callback (data1, + g_marshal_value_peek_pointer (param_values + 1), + g_marshal_value_peek_int (param_values + 2), + g_marshal_value_peek_uint (param_values + 3), + data2); +} + +/* NONE:POINTER,INT,POINTER (/dev/stdin:4) */ +void +gtkmozembed_VOID__POINTER_INT_POINTER (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data) +{ + typedef void (*GMarshalFunc_VOID__POINTER_INT_POINTER) (gpointer data1, + gpointer arg_1, + gint arg_2, + gpointer arg_3, + gpointer data2); + register GMarshalFunc_VOID__POINTER_INT_POINTER callback; + register GCClosure *cc = (GCClosure*) closure; + register gpointer data1, data2; + + g_return_if_fail (n_param_values == 4); + + if (G_CCLOSURE_SWAP_DATA (closure)) + { + data1 = closure->data; + data2 = g_value_peek_pointer (param_values + 0); + } + else + { + data1 = g_value_peek_pointer (param_values + 0); + data2 = closure->data; + } + callback = (GMarshalFunc_VOID__POINTER_INT_POINTER) (marshal_data ? marshal_data : cc->callback); + + callback (data1, + g_marshal_value_peek_pointer (param_values + 1), + g_marshal_value_peek_int (param_values + 2), + g_marshal_value_peek_pointer (param_values + 3), + data2); +} + Index: embedding/browser/gtk/src/gtkmozembedmarshal.h =================================================================== RCS file: embedding/browser/gtk/src/gtkmozembedmarshal.h diff -N embedding/browser/gtk/src/gtkmozembedmarshal.h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ embedding/browser/gtk/src/gtkmozembedmarshal.h 22 Oct 2002 17:14:59 -0000 @@ -0,0 +1,48 @@ + +#ifndef __gtkmozembed_MARSHAL_H__ +#define __gtkmozembed_MARSHAL_H__ + +#include + +G_BEGIN_DECLS + +/* NONE:POINTER,INT,INT (/dev/stdin:1) */ +extern void gtkmozembed_VOID__POINTER_INT_INT (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); +#define gtkmozembed_NONE__POINTER_INT_INT gtkmozembed_VOID__POINTER_INT_INT + +/* NONE:INT,UINT (/dev/stdin:2) */ +extern void gtkmozembed_VOID__INT_UINT (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); +#define gtkmozembed_NONE__INT_UINT gtkmozembed_VOID__INT_UINT + +/* NONE:POINTER,INT,UINT (/dev/stdin:3) */ +extern void gtkmozembed_VOID__POINTER_INT_UINT (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); +#define gtkmozembed_NONE__POINTER_INT_UINT gtkmozembed_VOID__POINTER_INT_UINT + +/* NONE:POINTER,INT,POINTER (/dev/stdin:4) */ +extern void gtkmozembed_VOID__POINTER_INT_POINTER (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); +#define gtkmozembed_NONE__POINTER_INT_POINTER gtkmozembed_VOID__POINTER_INT_POINTER + +G_END_DECLS + +#endif /* __gtkmozembed_MARSHAL_H__ */ + Index: embedding/browser/gtk/src/types.txt =================================================================== RCS file: embedding/browser/gtk/src/types.txt diff -N embedding/browser/gtk/src/types.txt --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ embedding/browser/gtk/src/types.txt 22 Oct 2002 17:14:59 -0000 @@ -0,0 +1,4 @@ +NONE:POINTER,INT,INT +NONE:INT,UINT +NONE:POINTER,INT,UINT +NONE:POINTER,INT,POINTER Index: embedding/browser/gtk/tests/TestGtkEmbed.cpp =================================================================== RCS file: /cvsroot/mozilla/embedding/browser/gtk/tests/TestGtkEmbed.cpp,v retrieving revision 1.32 diff -u -r1.32 TestGtkEmbed.cpp --- embedding/browser/gtk/tests/TestGtkEmbed.cpp 24 Sep 2002 01:56:34 -0000 1.32 +++ embedding/browser/gtk/tests/TestGtkEmbed.cpp 22 Oct 2002 17:14:59 -0000 @@ -304,8 +304,19 @@ FALSE, // fill 0); // padding // new horiz toolbar with buttons + icons +#ifdef MOZ_WIDGET_GTK browser->toolbar = gtk_toolbar_new(GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_BOTH); +#endif /* MOZ_WIDGET_GTK */ + +#ifdef MOZ_WIDGET_GTK2 + browser->toolbar = gtk_toolbar_new(); + gtk_toolbar_set_orientation(GTK_TOOLBAR(browser->toolbar), + GTK_ORIENTATION_HORIZONTAL); + gtk_toolbar_set_style(GTK_TOOLBAR(browser->toolbar), + GTK_TOOLBAR_BOTH); +#endif /* MOZ_WIDGET_GTK2 */ + // add it to the hbox gtk_box_pack_start(GTK_BOX(browser->toolbarHBox), browser->toolbar, FALSE, // expand Index: embedding/browser/gtk/src/gtkmozembed2.cpp =================================================================== RCS file: /cvsroot/mozilla/embedding/browser/gtk/src/gtkmozembed2.cpp,v retrieving revision 1.23 diff -u -r1.23 gtkmozembed2.cpp --- embedding/browser/gtk/src/gtkmozembed2.cpp 12 Jan 2002 05:04:57 -0000 1.23 +++ embedding/browser/gtk/src/gtkmozembed2.cpp 24 Oct 2002 21:39:07 -0000 @@ -443,6 +443,8 @@ EmbedPrivate *priv = new EmbedPrivate(); embed->data = priv; gtk_widget_set_name(GTK_WIDGET(embed), "gtkmozembed"); + + GTK_WIDGET_UNSET_FLAGS (GTK_WIDGET(embed), GTK_NO_WINDOW); } GtkWidget * Index: widget/src/gtk2/nsWindow.cpp =================================================================== RCS file: /cvsroot/mozilla/widget/src/gtk2/nsWindow.cpp,v retrieving revision 1.38 diff -u -r1.38 nsWindow.cpp --- widget/src/gtk2/nsWindow.cpp 10 Aug 2002 18:21:22 -0000 1.38 +++ widget/src/gtk2/nsWindow.cpp 26 Aug 2002 19:12:43 -0000 @@ -145,7 +145,6 @@ /* initialization static functions */ static nsresult initialize_prefs (void); -static nsresult initialize_default_icon (void); // this is the last window that had a drag event happen on it. nsWindow *nsWindow::mLastDragMotionWindow = NULL; @@ -216,7 +215,6 @@ // It's OK if either of these fail, but it may not be one day. initialize_prefs(); - initialize_default_icon(); } if (mLastDragMotionWindow == this) @@ -1994,6 +1992,7 @@ mIsTopLevel = PR_TRUE; if (mWindowType == eWindowType_dialog) { mShell = gtk_window_new(GTK_WINDOW_TOPLEVEL); + SetupWindowIcon(mShell); gtk_window_set_type_hint(GTK_WINDOW(mShell), GDK_WINDOW_TYPE_HINT_DIALOG); gtk_window_set_transient_for(GTK_WINDOW(mShell), @@ -2030,6 +2029,7 @@ } else { // must be eWindowType_toplevel mShell = gtk_window_new(GTK_WINDOW_TOPLEVEL); + SetupWindowIcon(mShell); // each toplevel window gets its own window group mWindowGroup = gtk_window_group_new(); // and add ourselves to the window group @@ -3147,11 +3147,10 @@ return NS_OK; } -/* static */ nsresult -initialize_default_icon(void) +nsWindow::SetupWindowIcon(GtkWidget *window) { - // Set up the default icon for all windows + // Set up the window icon nsresult rv; nsCOMPtr chromeDir; rv = NS_GetSpecialDirectory(NS_APP_CHROME_DIR, @@ -3181,7 +3180,7 @@ GList *list = NULL; list = g_list_append(list, defaultIcon); - gtk_window_set_default_icon_list(list); + gtk_window_set_icon_list(GTK_WINDOW(window), list); g_object_unref(G_OBJECT(defaultIcon)); g_list_free(list); Index: widget/src/gtk2/nsWindow.h =================================================================== RCS file: /cvsroot/mozilla/widget/src/gtk2/nsWindow.h,v retrieving revision 1.24 diff -u -r1.24 nsWindow.h --- widget/src/gtk2/nsWindow.h 10 Aug 2002 18:07:20 -0000 1.24 +++ widget/src/gtk2/nsWindow.h 26 Aug 2002 19:12:45 -0000 @@ -254,7 +254,8 @@ private: void GetToplevelWidget(GtkWidget **aWidget); void *SetupPluginPort(void); - + nsresult SetupWindowIcon(GtkWidget *window); + GtkWidget *mShell; MozContainer *mContainer; MozDrawingarea *mDrawingarea; Index: build/unix/mozilla-gtkmozembed.pc.in =================================================================== RCS file: /cvsroot/mozilla/build/unix/mozilla-gtkmozembed.pc.in,v retrieving revision 1.1 diff -u -r1.1 mozilla-gtkmozembed.pc.in --- build/unix/mozilla-gtkmozembed.pc.in 28 May 2002 20:20:40 -0000 1.1 +++ build/unix/mozilla-gtkmozembed.pc.in 25 Oct 2002 09:30:19 -0000 @@ -7,5 +7,5 @@ Description: Mozilla Embedding Widget for Gtk+ Version: %MOZILLA_VERSION% Requires: mozilla-xpcom = %MOZILLA_VERSION% -Libs: -L${libdir} -lgtkembedmoz -lgtksuperwin +Libs: -L${libdir} -lgtkembedmoz Cflags: -I${includedir}/gtkembedmoz --- embedding/browser/gtk/tests/Makefile.in.orig Mon Sep 23 21:56:35 2002 +++ embedding/browser/gtk/tests/Makefile.in Tue Oct 29 03:24:44 2002 @@ -45,10 +45,18 @@ CPPSRCS += TestGtkEmbedMDI.cpp endif +ifdef MOZ_ENABLE_GTK LIBS += \ -lgtkembedmoz \ -lgtksuperwin \ $(NULL) +endif + +ifdef MOZ_ENABLE_GTK2 +LIBS += \ + -lgtkembedmoz \ + $(NULL) +endif include $(topsrcdir)/config/config.mk @@ -72,7 +80,7 @@ include $(topsrcdir)/config/rules.mk -CXXFLAGS += $(MOZ_GTK_CFLAGS) +CXXFLAGS += $(MOZ_GTK_CFLAGS) $(MOZ_GTK2_CFLAGS) ifdef ENABLE_GNOME CXXFLAGS += `gnome-config --cflags gnomeui`