Selectionsの項目には詳しい説明があります。他のアプリケーションにデータを送るには、selectionのownerになる必要があります。ownerであれば、例えば、xtermでマウスの中ボタンを押したときに、ownerが予めセットした文字列を、xtermに貼り付けてもらうことができます。ここでは、PRIMARYのSelectionを使い、文字を扱うことにします。作っておいたwidgetに次のようにtargetを付加します。(widget,GDK_SELECTION_PRIMARY,GDK_SELECTION_TYPE_STRING,1);後に述べる方法でwidgetがownerになるとき、"selection_get"シグナルが発生するので、例えば、コールバック関数をselection_obtainedと名付けて、次のように関連づけます。NULL);コールバック関数は次のように多くの引数をとります。strlen(ClipedStr));}この場合は単純に、送るデータとしてClipedStrに入っている文字列をセットしています。Selectionのownerになりたい時に、以下の関数を使います。GDK_SELECTION_PRIMARY,GDK_CURRENT_TIME);widgetがownerになっている間に、アプリケーションがデータを要求すれば、先程セットしたデータが送られます。あるwidgetがselectionのownerからデータを受け取る場合この場合、targetは付加する必要はありません。コールバック関数をselection_data_receivedと名付けて、widgetに次のように関連づけます。NULL);送られてきたものが、文字データのときにそれを利用するなら、次のようなコールバック関数が良いでしょう。strを使って、処理が続く。Selectionのownerにデータを要求するには、次の関数を使います。(widget,GDK_SELECTION_PRIMARY,GDK_SELECTION_TYPE_STRING,GDK_CURRENT_TIME);データが送られてきたら、上のselection_data_received関数が呼び出されます。