GtkPlug

GtkPlug — Toplevel for embedding into other processes

Synopsis

#include <gtk/gtkx.h>

struct              GtkPlug;
void                gtk_plug_construct                  (GtkPlug *plug,
                                                         Window socket_id);
void                gtk_plug_construct_for_display      (GtkPlug *plug,
                                                         GdkDisplay *display,
                                                         Window socket_id);
GtkWidget *         gtk_plug_new                        (Window socket_id);
GtkWidget *         gtk_plug_new_for_display            (GdkDisplay *display,
                                                         Window socket_id);
Window              gtk_plug_get_id                     (GtkPlug *plug);
gboolean            gtk_plug_get_embedded               (GtkPlug *plug);
GdkWindow *         gtk_plug_get_socket_window          (GtkPlug *plug);

Object Hierarchy

  GObject
   +----GInitiallyUnowned
         +----GtkWidget
               +----GtkContainer
                     +----GtkBin
                           +----GtkWindow
                                 +----GtkPlug

Implemented Interfaces

GtkPlug implements AtkImplementorIface and GtkBuildable.

Properties

  "embedded"                 gboolean              : Read
  "socket-window"            GdkWindow*            : Read

Signals

  "embedded"                                       : Run Last

Description

Together with GtkSocket, GtkPlug provides the ability to embed widgets from one process into another process in a fashion that is transparent to the user. One process creates a GtkSocket widget and passes the ID of that widget's window to the other process, which then creates a GtkPlug with that window ID. Any widgets contained in the GtkPlug then will appear inside the first application's window.

The communication between a GtkSocket and a GtkPlug follows the XEmbed protocol. This protocol has also been implemented in other toolkits, e.g. Qt, allowing the same level of integration when embedding a Qt widget in GTK+ or vice versa.

Note

The GtkPlug and GtkSocket widgets are only available when GTK+ is compiled for the X11 platform and GDK_WINDOWING_X11 is defined. They can only be used on a GdkX11Display. To use GtkPlug and GtkSocket, you need to include the gtk/gtkx.h header.

Details

struct GtkPlug

struct GtkPlug;


gtk_plug_construct ()

void                gtk_plug_construct                  (GtkPlug *plug,
                                                         Window socket_id);

Finish the initialization of plug for a given GtkSocket identified by socket_id. This function will generally only be used by classes deriving from GtkPlug.

plug :

a GtkPlug.

socket_id :

the XID of the socket's window.

gtk_plug_construct_for_display ()

void                gtk_plug_construct_for_display      (GtkPlug *plug,
                                                         GdkDisplay *display,
                                                         Window socket_id);

Finish the initialization of plug for a given GtkSocket identified by socket_id which is currently displayed on display. This function will generally only be used by classes deriving from GtkPlug.

plug :

a GtkPlug.

display :

the GdkDisplay associated with socket_id's GtkSocket.

socket_id :

the XID of the socket's window.

Since 2.2


gtk_plug_new ()

GtkWidget *         gtk_plug_new                        (Window socket_id);

Creates a new plug widget inside the GtkSocket identified by socket_id. If socket_id is 0, the plug is left "unplugged" and can later be plugged into a GtkSocket by gtk_socket_add_id().

socket_id :

the window ID of the socket, or 0.

Returns :

the new GtkPlug widget.

gtk_plug_new_for_display ()

GtkWidget *         gtk_plug_new_for_display            (GdkDisplay *display,
                                                         Window socket_id);

Create a new plug widget inside the GtkSocket identified by socket_id.

display :

the GdkDisplay on which socket_id is displayed

socket_id :

the XID of the socket's window.

Returns :

the new GtkPlug widget.

Since 2.2


gtk_plug_get_id ()

Window              gtk_plug_get_id                     (GtkPlug *plug);

Gets the window ID of a GtkPlug widget, which can then be used to embed this window inside another window, for instance with gtk_socket_add_id().

plug :

a GtkPlug.

Returns :

the window ID for the plug

gtk_plug_get_embedded ()

gboolean            gtk_plug_get_embedded               (GtkPlug *plug);

Determines whether the plug is embedded in a socket.

plug :

a GtkPlug

Returns :

TRUE if the plug is embedded in a socket

Since 2.14


gtk_plug_get_socket_window ()

GdkWindow *         gtk_plug_get_socket_window          (GtkPlug *plug);

Retrieves the socket the plug is embedded in.

plug :

a GtkPlug

Returns :

the window of the socket, or NULL. [transfer none]

Since 2.14

Property Details

The "embedded" property

  "embedded"                 gboolean              : Read

TRUE if the plug is embedded in a socket.

Default value: FALSE

Since 2.12


The "socket-window" property

  "socket-window"            GdkWindow*            : Read

The window of the socket the plug is embedded in.

Since 2.14

Signal Details

The "embedded" signal

void                user_function                      (GtkPlug *plug,
                                                        gpointer user_data)      : Run Last

Gets emitted when the plug becomes embedded in a socket.

plug :

the object on which the signal was emitted

user_data :

user data set when the signal handler was connected.

See Also

GtkSocket