Blame docs/reference/gtk/html/GtkSocket.html

Packit Service fb6fa5
Packit Service fb6fa5
<html>
Packit Service fb6fa5
<head>
Packit Service fb6fa5
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Packit Service fb6fa5
<title>GtkSocket: GTK+ 2 Reference Manual</title>
Packit Service fb6fa5
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
Packit Service fb6fa5
<link rel="home" href="index.html" title="GTK+ 2 Reference Manual">
Packit Service fb6fa5
<link rel="up" href="PlugSocket.html" title="Cross-process Embedding">
Packit Service fb6fa5
<link rel="prev" href="GtkPlug.html" title="GtkPlug">
Packit Service fb6fa5
<link rel="next" href="SpecialObjects.html" title="Special-purpose features">
Packit Service fb6fa5
<meta name="generator" content="GTK-Doc V1.26.1 (XML mode)">
Packit Service fb6fa5
<link rel="stylesheet" href="style.css" type="text/css">
Packit Service fb6fa5
</head>
Packit Service fb6fa5
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Top  | 
Packit Service fb6fa5
                  Description  | 
Packit Service fb6fa5
                  Object Hierarchy  | 
Packit Service fb6fa5
                  Implemented Interfaces  | 
Packit Service fb6fa5
                  Signals
Packit Service fb6fa5
Packit Service fb6fa5
Home
Packit Service fb6fa5
Up
Packit Service fb6fa5
Prev
Packit Service fb6fa5
Next
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

GtkSocket

Packit Service fb6fa5

GtkSocket — Container for widgets from other processes

Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

Functions

Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
GtkWidget *
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
gtk_socket_new ()
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
void
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
gtk_socket_steal ()
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
void
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
gtk_socket_add_id ()
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
GdkNativeWindow
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
gtk_socket_get_id ()
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
GdkWindow *
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
gtk_socket_get_plug_window ()
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

Signals

Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
void
Packit Service fb6fa5
plug-added
Packit Service fb6fa5
Run Last
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
gboolean
Packit Service fb6fa5
plug-removed
Packit Service fb6fa5
Run Last
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

Types and Values

Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
struct
Packit Service fb6fa5
GtkSocket
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

Object Hierarchy

Packit Service fb6fa5
    GObject
Packit Service fb6fa5
    ╰── GInitiallyUnowned
Packit Service fb6fa5
        ╰── GtkObject
Packit Service fb6fa5
            ╰── GtkWidget
Packit Service fb6fa5
                ╰── GtkContainer
Packit Service fb6fa5
                    ╰── GtkSocket
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

Implemented Interfaces

Packit Service fb6fa5

Packit Service fb6fa5
GtkSocket implements
Packit Service fb6fa5
 AtkImplementorIface and  GtkBuildable.

Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

Includes

Packit Service fb6fa5
#include <gtk/gtk.h>
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

Description

Packit Service fb6fa5

Together with GtkPlug, GtkSocket provides the ability

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

Packit Service fb6fa5

The socket's window ID is obtained by using

Packit Service fb6fa5
gtk_socket_get_id(). Before using this function,
Packit Service fb6fa5
the socket must have been realized, and for hence,
Packit Service fb6fa5
have been added to its parent.

Packit Service fb6fa5
Packit Service fb6fa5

Example 16. Obtaining the window ID of a socket.

Packit Service fb6fa5
Packit Service fb6fa5
  
Packit Service fb6fa5
    
Packit Service fb6fa5
      
Packit Service fb6fa5
        
1
Packit Service fb6fa5
2
Packit Service fb6fa5
3
Packit Service fb6fa5
4
Packit Service fb6fa5
5
Packit Service fb6fa5
6
Packit Service fb6fa5
7
Packit Service fb6fa5
8
Packit Service fb6fa5
9
Packit Service fb6fa5
10
Packit Service fb6fa5
        
GtkWidget *socket = gtk_socket_new ();
Packit Service fb6fa5
gtk_widget_show (socket);
Packit Service fb6fa5
gtk_container_add (GTK_CONTAINER (parent), socket);
Packit Service fb6fa5
Packit Service fb6fa5
/* The following call is only necessary if one of
Packit Service fb6fa5
 * the ancestors of the socket is not yet visible.
Packit Service fb6fa5
 */
Packit Service fb6fa5
gtk_widget_realize (socket);
Packit Service fb6fa5
g_print ("The ID of the sockets window is %#x\n",
Packit Service fb6fa5
         gtk_socket_get_id (socket));
Packit Service fb6fa5
      
Packit Service fb6fa5
    
Packit Service fb6fa5
  
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

Note that if you pass the window ID of the socket to another

Packit Service fb6fa5
process that will create a plug in the socket, you
Packit Service fb6fa5
must make sure that the socket widget is not destroyed
Packit Service fb6fa5
until that plug is created. Violating this rule will
Packit Service fb6fa5
cause unpredictable consequences, the most likely
Packit Service fb6fa5
consequence being that the plug will appear as a
Packit Service fb6fa5
separate toplevel window. You can check if the plug
Packit Service fb6fa5
has been created by using gtk_socket_get_plug_window(). If
Packit Service fb6fa5
it returns a non-NULL value, then the plug has been
Packit Service fb6fa5
successfully created inside of the socket.

Packit Service fb6fa5

When GTK+ is notified that the embedded window has been

Packit Service fb6fa5
destroyed, then it will destroy the socket as well. You
Packit Service fb6fa5
should always, therefore, be prepared for your sockets
Packit Service fb6fa5
to be destroyed at any time when the main event loop
Packit Service fb6fa5
is running. To prevent this from happening, you can
Packit Service fb6fa5
connect to the “plug-removed” signal.

Packit Service fb6fa5

The communication between a GtkSocket and a GtkPlug follows the

Packit Service fb6fa5
XEmbed

protocol. This protocol has also been implemented in other toolkits, e.g.

Packit Service fb6fa5
Qt, allowing the same level of integration
Packit Service fb6fa5

when embedding a Qt widget in GTK or vice versa.

Packit Service fb6fa5

A socket can also be used to swallow arbitrary

Packit Service fb6fa5
pre-existing top-level windows using gtk_socket_steal(),
Packit Service fb6fa5
though the integration when this is done will not be as close
Packit Service fb6fa5
as between a GtkPlug and a GtkSocket.

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

Functions

Packit Service fb6fa5
Packit Service fb6fa5

gtk_socket_new ()

Packit Service fb6fa5
GtkWidget *
Packit Service fb6fa5
gtk_socket_new (void);
Packit Service fb6fa5

Create a new empty GtkSocket.

Packit Service fb6fa5
Packit Service fb6fa5

Returns

Packit Service fb6fa5

the new GtkSocket.

Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

Packit Service fb6fa5
Packit Service fb6fa5

gtk_socket_steal ()

Packit Service fb6fa5
void
Packit Service fb6fa5
gtk_socket_steal (GtkSocket *socket_,
Packit Service fb6fa5
                  GdkNativeWindow wid);
Packit Service fb6fa5

gtk_socket_steal is deprecated and should not be used in newly-written code.

Packit Service fb6fa5

Reparents a pre-existing toplevel window into a GtkSocket. This is

Packit Service fb6fa5
meant to embed clients that do not know about embedding into a
Packit Service fb6fa5
GtkSocket, however doing so is inherently unreliable, and using
Packit Service fb6fa5
this function is not recommended.

Packit Service fb6fa5

The GtkSocket must have already be added into a toplevel window

Packit Service fb6fa5
 before you can make this call.

Packit Service fb6fa5
Packit Service fb6fa5

Parameters

Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

socket_

Packit Service fb6fa5

a GtkSocket

Packit Service fb6fa5
 
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

wid

Packit Service fb6fa5

the window ID of an existing toplevel window.

Packit Service fb6fa5
 
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

Packit Service fb6fa5
Packit Service fb6fa5

gtk_socket_add_id ()

Packit Service fb6fa5
void
Packit Service fb6fa5
gtk_socket_add_id (GtkSocket *socket_,
Packit Service fb6fa5
                   GdkNativeWindow window_id);
Packit Service fb6fa5

Adds an XEMBED client, such as a GtkPlug, to the GtkSocket. The

Packit Service fb6fa5
client may be in the same process or in a different process. 

Packit Service fb6fa5

To embed a GtkPlug in a GtkSocket, you can either create the

Packit Service fb6fa5
GtkPlug with gtk_plug_new (0), call 
Packit Service fb6fa5
gtk_plug_get_id() to get the window ID of the plug, and then pass that to the
Packit Service fb6fa5
gtk_socket_add_id(), or you can call gtk_socket_get_id() to get the
Packit Service fb6fa5
window ID for the socket, and call gtk_plug_new() passing in that
Packit Service fb6fa5
ID.

Packit Service fb6fa5

The GtkSocket must have already be added into a toplevel window

Packit Service fb6fa5
 before you can make this call.

Packit Service fb6fa5
Packit Service fb6fa5

Parameters

Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

socket_

Packit Service fb6fa5

a GtkSocket

Packit Service fb6fa5
 
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

window_id

Packit Service fb6fa5

the window ID of a client participating in the XEMBED protocol.

Packit Service fb6fa5
 
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

Packit Service fb6fa5
Packit Service fb6fa5

gtk_socket_get_id ()

Packit Service fb6fa5
GdkNativeWindow
Packit Service fb6fa5
gtk_socket_get_id (GtkSocket *socket_);
Packit Service fb6fa5

Gets the window ID of a GtkSocket widget, which can then

Packit Service fb6fa5
be used to create a client embedded inside the socket, for
Packit Service fb6fa5
instance with gtk_plug_new(). 

Packit Service fb6fa5

The GtkSocket must have already be added into a toplevel window

Packit Service fb6fa5
before you can make this call.

Packit Service fb6fa5
Packit Service fb6fa5

Parameters

Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

socket_

Packit Service fb6fa5

a GtkSocket.

Packit Service fb6fa5
 
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

Returns

Packit Service fb6fa5

the window ID for the socket

Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

Packit Service fb6fa5
Packit Service fb6fa5

gtk_socket_get_plug_window ()

Packit Service fb6fa5
GdkWindow *
Packit Service fb6fa5
gtk_socket_get_plug_window (GtkSocket *socket_);
Packit Service fb6fa5

Retrieves the window of the plug. Use this to check if the plug has

Packit Service fb6fa5
been created inside of the socket.

Packit Service fb6fa5
Packit Service fb6fa5

Parameters

Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

socket_

Packit Service fb6fa5

a GtkSocket.

Packit Service fb6fa5
 
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

Returns

Packit Service fb6fa5

the window of the plug if available, or NULL.

Packit Service fb6fa5

[transfer none]

Packit Service fb6fa5
Packit Service fb6fa5

Since: 2.14

Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

Types and Values

Packit Service fb6fa5
Packit Service fb6fa5

struct GtkSocket

Packit Service fb6fa5
struct GtkSocket;
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

Signal Details

Packit Service fb6fa5
Packit Service fb6fa5

The “plug-added” signal

Packit Service fb6fa5
void
Packit Service fb6fa5
user_function (GtkSocket *socket_,
Packit Service fb6fa5
               gpointer   user_data)
Packit Service fb6fa5

This signal is emitted when a client is successfully

Packit Service fb6fa5
added to the socket.

Packit Service fb6fa5
Packit Service fb6fa5

Parameters

Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

socket_

Packit Service fb6fa5

the object which received the signal

Packit Service fb6fa5
 
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

user_data

Packit Service fb6fa5

user data set when the signal handler was connected.

Packit Service fb6fa5
 
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

Flags: Run Last

Packit Service fb6fa5
Packit Service fb6fa5

Packit Service fb6fa5
Packit Service fb6fa5

The “plug-removed” signal

Packit Service fb6fa5
gboolean
Packit Service fb6fa5
user_function (GtkSocket *socket_,
Packit Service fb6fa5
               gpointer   user_data)
Packit Service fb6fa5

This signal is emitted when a client is removed from the socket.

Packit Service fb6fa5
Packit Service fb6fa5
The default action is to destroy the GtkSocket widget, so if you
Packit Service fb6fa5
Packit Service fb6fa5
want to reuse it you must add a signal handler that returns TRUE.

Packit Service fb6fa5
Packit Service fb6fa5

Parameters

Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

socket_

Packit Service fb6fa5

the object which received the signal

Packit Service fb6fa5
 
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

user_data

Packit Service fb6fa5

user data set when the signal handler was connected.

Packit Service fb6fa5
 
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

Returns

Packit Service fb6fa5

TRUE to stop other handlers from being invoked.

Packit Service fb6fa5
Packit Service fb6fa5

Flags: Run Last

Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

See Also

Packit Service fb6fa5

GtkPlug, XEmbed

Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5

Generated by GTK-Doc V1.26.1
Packit Service fb6fa5
</body>
Packit Service fb6fa5
</html>