1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-03 06:04:53 +00:00

* Add support for building the GTK 2 version of Mozilla (define WITH_GTK2

to do this).  This feature will be used for the upcoming Galeon 1.3.0
  port. [1]
* Allow users to disable Composer (define WITHOUT_COMPOSER to do this) [2]

Submitted by:	David Magda <dmagda@magda.ca> [2]
Obtained from:	Galeon 1.3.0 tarball (with some modification) [1]
This commit is contained in:
Joe Marcus Clarke 2002-10-29 09:09:38 +00:00
parent 2f4a19dfba
commit a44e38a3d3
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=69085
6 changed files with 2913 additions and 6 deletions

View File

@ -38,6 +38,12 @@ BROKEN= Mozilla-devel and Xft2 render the mozilla-fonts \
.endif
.endif
.if defined(WITH_GTK2)
LIB_DEPENDS+= gtk-x11-2.0.0:${PORTSDIR}/x11-toolkits/gtk20
.else
USE_GNOME= gtk12
.endif
LATEST_LINK= mozilla-devel
EXTRACT_AFTER_ARGS= | ${TAR} -xf - --exclude */CVS/* \
--exclude */macbuild/*\
@ -49,7 +55,7 @@ USE_X_PREFIX= yes
USE_PERL5= yes
USE_GMAKE= yes
USE_GNOMENG= yes
USE_GNOME= orbit gtk12
USE_GNOME+= orbit
USE_REINPLACE= yes
GNU_CONFIGURE= yes
CONFIGURE_ARGS= \
@ -59,7 +65,6 @@ CONFIGURE_ARGS= \
--disable-cpp-rtti \
--enable-crypto \
--disable-debug \
--enable-default-toolkit=gtk \
--enable-double-buffer \
--enable-dtd-debug \
--enable-jsd \
@ -98,6 +103,17 @@ CONFIGURE_ARGS+= --enable-extensions=default,xmlterm
.endif
CONFIGURE_ENV= MOZ_INTERNAL_LIBART_LGPL=1
.if defined(WITHOUT_COMPOSER)
CONFIGURE_ARGS+= --disable-composer
.endif
.if defined(WITH_GTK2)
CONFIGURE_ARGS+= --enable-default-toolkit=gtk2
EXTRA_PATCHES= ${FILESDIR}/mozilla_12b_patch
.else
CONFIGURE_ARGS+= --enable-default-toolkit=gtk
.endif
.if !defined(WITHOUT_XFT)
CONFIGURE_ARGS+= --enable-xft
.endif

View File

@ -0,0 +1,953 @@
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 <nsXPIDLString.h>
#include <nsReadableUtils.h>
+#ifdef MOZ_WIDGET_GTK
+
// so we can get callbacks from the mozarea
#include <gtkmozarea.h>
+// 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 <glib-object.h>
+
+
+#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 <glib-object.h>
+
+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<nsIFile> 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`

View File

@ -38,6 +38,12 @@ BROKEN= Mozilla-devel and Xft2 render the mozilla-fonts \
.endif
.endif
.if defined(WITH_GTK2)
LIB_DEPENDS+= gtk-x11-2.0.0:${PORTSDIR}/x11-toolkits/gtk20
.else
USE_GNOME= gtk12
.endif
LATEST_LINK= mozilla-devel
EXTRACT_AFTER_ARGS= | ${TAR} -xf - --exclude */CVS/* \
--exclude */macbuild/*\
@ -49,7 +55,7 @@ USE_X_PREFIX= yes
USE_PERL5= yes
USE_GMAKE= yes
USE_GNOMENG= yes
USE_GNOME= orbit gtk12
USE_GNOME+= orbit
USE_REINPLACE= yes
GNU_CONFIGURE= yes
CONFIGURE_ARGS= \
@ -59,7 +65,6 @@ CONFIGURE_ARGS= \
--disable-cpp-rtti \
--enable-crypto \
--disable-debug \
--enable-default-toolkit=gtk \
--enable-double-buffer \
--enable-dtd-debug \
--enable-jsd \
@ -98,6 +103,17 @@ CONFIGURE_ARGS+= --enable-extensions=default,xmlterm
.endif
CONFIGURE_ENV= MOZ_INTERNAL_LIBART_LGPL=1
.if defined(WITHOUT_COMPOSER)
CONFIGURE_ARGS+= --disable-composer
.endif
.if defined(WITH_GTK2)
CONFIGURE_ARGS+= --enable-default-toolkit=gtk2
EXTRA_PATCHES= ${FILESDIR}/mozilla_12b_patch
.else
CONFIGURE_ARGS+= --enable-default-toolkit=gtk
.endif
.if !defined(WITHOUT_XFT)
CONFIGURE_ARGS+= --enable-xft
.endif

View File

@ -0,0 +1,953 @@
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 <nsXPIDLString.h>
#include <nsReadableUtils.h>
+#ifdef MOZ_WIDGET_GTK
+
// so we can get callbacks from the mozarea
#include <gtkmozarea.h>
+// 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 <glib-object.h>
+
+
+#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 <glib-object.h>
+
+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<nsIFile> 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`

View File

@ -38,6 +38,12 @@ BROKEN= Mozilla-devel and Xft2 render the mozilla-fonts \
.endif
.endif
.if defined(WITH_GTK2)
LIB_DEPENDS+= gtk-x11-2.0.0:${PORTSDIR}/x11-toolkits/gtk20
.else
USE_GNOME= gtk12
.endif
LATEST_LINK= mozilla-devel
EXTRACT_AFTER_ARGS= | ${TAR} -xf - --exclude */CVS/* \
--exclude */macbuild/*\
@ -49,7 +55,7 @@ USE_X_PREFIX= yes
USE_PERL5= yes
USE_GMAKE= yes
USE_GNOMENG= yes
USE_GNOME= orbit gtk12
USE_GNOME+= orbit
USE_REINPLACE= yes
GNU_CONFIGURE= yes
CONFIGURE_ARGS= \
@ -59,7 +65,6 @@ CONFIGURE_ARGS= \
--disable-cpp-rtti \
--enable-crypto \
--disable-debug \
--enable-default-toolkit=gtk \
--enable-double-buffer \
--enable-dtd-debug \
--enable-jsd \
@ -98,6 +103,17 @@ CONFIGURE_ARGS+= --enable-extensions=default,xmlterm
.endif
CONFIGURE_ENV= MOZ_INTERNAL_LIBART_LGPL=1
.if defined(WITHOUT_COMPOSER)
CONFIGURE_ARGS+= --disable-composer
.endif
.if defined(WITH_GTK2)
CONFIGURE_ARGS+= --enable-default-toolkit=gtk2
EXTRA_PATCHES= ${FILESDIR}/mozilla_12b_patch
.else
CONFIGURE_ARGS+= --enable-default-toolkit=gtk
.endif
.if !defined(WITHOUT_XFT)
CONFIGURE_ARGS+= --enable-xft
.endif

View File

@ -0,0 +1,953 @@
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 <nsXPIDLString.h>
#include <nsReadableUtils.h>
+#ifdef MOZ_WIDGET_GTK
+
// so we can get callbacks from the mozarea
#include <gtkmozarea.h>
+// 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 <glib-object.h>
+
+
+#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 <glib-object.h>
+
+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<nsIFile> 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`