* Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GTK+ Team. See the ChangeLog
* files for a list of changes. These files are distributed with
- * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
+ * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
*/
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
#ifndef __GTK_SOCKET_H__
#define __GTK_SOCKET_H__
#include <gtk/gtkcontainer.h>
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
+G_BEGIN_DECLS
#define GTK_TYPE_SOCKET (gtk_socket_get_type ())
-#define GTK_SOCKET(obj) (GTK_CHECK_CAST ((obj), GTK_TYPE_SOCKET, GtkSocket))
-#define GTK_SOCKET_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_SOCKET, GtkSocketClass))
-#define GTK_IS_SOCKET(obj) (GTK_CHECK_TYPE ((obj), GTK_TYPE_SOCKET))
-#define GTK_IS_SOCKET_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_SOCKET))
-#define GTK_SOCKET_GET_CLASS(obj) (GTK_CHECK_GET_CLASS ((obj), GTK_TYPE_SOCKET, GtkSocketClass))
+#define GTK_SOCKET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SOCKET, GtkSocket))
+#define GTK_SOCKET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_SOCKET, GtkSocketClass))
+#define GTK_IS_SOCKET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_SOCKET))
+#define GTK_IS_SOCKET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_SOCKET))
+#define GTK_SOCKET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_SOCKET, GtkSocketClass))
typedef struct _GtkSocket GtkSocket;
{
GtkContainer container;
- guint16 request_width;
- guint16 request_height;
- guint16 current_width;
- guint16 current_height;
-
- GdkWindow *plug_window;
- GtkWidget *plug_widget;
-
- gshort xembed_version; /* -1 == not xembed */
- guint same_app : 1;
- guint focus_in : 1;
- guint have_size : 1;
- guint need_map : 1;
- guint is_mapped : 1;
-
- GHashTable *grabbed_keys;
- GtkWidget *toplevel;
+ guint16 GSEAL (request_width);
+ guint16 GSEAL (request_height);
+ guint16 GSEAL (current_width);
+ guint16 GSEAL (current_height);
+
+ GdkWindow *GSEAL (plug_window);
+ GtkWidget *GSEAL (plug_widget);
+
+ gshort GSEAL (xembed_version); /* -1 == not xembed */
+ guint GSEAL (same_app) : 1;
+ guint GSEAL (focus_in) : 1;
+ guint GSEAL (have_size) : 1;
+ guint GSEAL (need_map) : 1;
+ guint GSEAL (is_mapped) : 1;
+ guint GSEAL (active) : 1;
+
+ GtkAccelGroup *GSEAL (accel_group);
+ GtkWidget *GSEAL (toplevel);
};
struct _GtkSocketClass
{
GtkContainerClass parent_class;
+
+ void (*plug_added) (GtkSocket *socket_);
+ gboolean (*plug_removed) (GtkSocket *socket_);
+
+ /* Padding for future expansion */
+ void (*_gtk_reserved1) (void);
+ void (*_gtk_reserved2) (void);
+ void (*_gtk_reserved3) (void);
+ void (*_gtk_reserved4) (void);
};
+GType gtk_socket_get_type (void) G_GNUC_CONST;
GtkWidget* gtk_socket_new (void);
-GtkType gtk_socket_get_type (void) G_GNUC_CONST;
-void gtk_socket_steal (GtkSocket *socket,
- GdkNativeWindow wid);
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
+void gtk_socket_add_id (GtkSocket *socket_,
+ GdkNativeWindow window_id);
+GdkNativeWindow gtk_socket_get_id (GtkSocket *socket_);
+GdkWindow* gtk_socket_get_plug_window (GtkSocket *socket_);
+G_END_DECLS
#endif /* __GTK_SOCKET_H__ */