## GtkPlug GtkPlug — Toplevel for embedding into other processes |

## Functions

void | gtk_plug_construct ()
void | gtk_plug_construct_for_display ()
GtkWidget * | gtk_plug_new ()
GtkWidget * | gtk_plug_new_for_display ()
GdkNativeWindow | gtk_plug_get_id ()
gboolean | gtk_plug_get_embedded ()
GdkWindow * | gtk_plug_get_socket_window ()

## Properties

gboolean | embedded | Read
GdkWindow * | socket-window | Read

## Signals

void | embedded | Run Last

## Types and Values

struct | GtkPlug

## Object Hierarchy

        GObject
        ╰── GInitiallyUnowned
            ╰── GtkObject
                ╰── GtkWidget
                    ╰── GtkContainer
                        ╰── GtkBin
                            ╰── GtkWindow
                                ╰── GtkPlug

## Implemented Interfaces

GtkPlug implements AtkImplementorIface and GtkBuildable.

## Includes

    #include <gtk/gtk.h>

## 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 GtkPlug and GtkSocket widgets are currently not available on all platforms supported by GTK+.

## Functions

### 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.

#### Parameters

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.

#### Parameters

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()`.

#### Parameters

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.

#### Parameters

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()`.

#### Parameters

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.

#### Parameters

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.

#### Parameters

plug | a GtkPlug |

#### Returns

the window of the socket, or `NULL`.

[transfer none]

Since 2.14

## Types and Values

### struct GtkPlug

    struct GtkPlug;

## Property Details

### The `“embedded”` property

      “embedded”                 gboolean

`TRUE` if the plug is embedded in a socket.

Flags: Read

Default value: FALSE

Since 2.12

### The `“socket-window”` property

      “socket-window”            GdkWindow *

The window of the socket the plug is embedded in.

Flags: Read

Since 2.14

## Signal Details

### The `“embedded”` signal

    void
    user_function (GtkPlug *plug,
                   gpointer user_data)

Gets emitted when the plug becomes embedded in a socket.

#### Parameters

plug | the object on which the signal was emitted |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

## See Also

GtkSocket