GtkPlug
3
GTK Library

# GtkPlug

Toplevel for embedding into other processes

## Synopsis

    #include <gtk/gtk.h>

                        GtkPlug;
    void                gtk_plug_construct                  (GtkPlug *plug,
                                                             GdkNativeWindow socket_id);
    void                gtk_plug_construct_for_display      (GtkPlug *plug,
                                                             GdkDisplay *display,
                                                             GdkNativeWindow socket_id);
    GtkWidget*          gtk_plug_new                        (GdkNativeWindow socket_id);
    GtkWidget*          gtk_plug_new_for_display            (GdkDisplay *display,
                                                             GdkNativeWindow socket_id);
    GdkNativeWindow     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
             +----GtkObject
                   +----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 widgets 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 applications window.

The GtkPlug and GtkSocket widgets are currently not available on all platforms supported by GTK+.

## Details

### GtkPlug

    typedef struct _GtkPlug GtkPlug;

### gtk_plug_construct ()

    void                gtk_plug_construct                  (GtkPlug *plug,
                                                             GdkNativeWindow 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,
                                                             GdkNativeWindow 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                        (GdkNativeWindow 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,
                                                             GdkNativeWindow 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 ()

    GdkNativeWindow     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`

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 and when the embedding ends.

`plug` :

  the object on which the signal was emitted

`user_data` :

  user data set when the signal handler was connected.

## See Also

GtkSocket

  the widget that a GtkPlug plugs into.