📄 ch-managingselections.html
字号:
<HTML><HEAD><TITLE>Managing Selections</TITLE><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.49"><LINKREL="HOME"TITLE="GTK+ 1.2 Tutorial"HREF="gtk-tut.html"><LINKREL="PREVIOUS"TITLE="Signal Emission and Propagation"HREF="sec-signalemissionandpropagation.html"><LINKREL="NEXT"TITLE="Retrieving the selection"HREF="sec-retrievingtheselection.html"></HEAD></head><body bgcolor="#FFFFFF" marginheight=0 marginwidth=0 width="100%"><table cellspacing=6 border=0 cellpadding=0 width="100%"> <tr> <td bgcolor="#FFFFFF" valign=top nowrap> <centeR><A HREF="/"><img src="/images/gtk-logo-rgb.gif" width=107 height=140 border=0></A> <font face="helvetica,lucidia" color="#000000"><BR><BR><b>GTK+<BR>The GIMP Toolkit</b></center><BR><table width=100% cellspacing=0 cellpadding=2 border=0><tr><td bgcolor="#000000"><table width=100% cellspacing=0 cellpadding=4 border=0><tr><td bgcolor="#AAAAEE" nowrap><B>General</B></td></tr><tr><td bgcolor="#FFFFFF" nowrap><A HREF="/">Introduction</A><BR><A HREF="/screenshots/">Screenshots</A><br><A HREF="/download/">Download</A><br><A HREF="/mailinglists.html">Mailing Lists</A><BR><A HREF="/bindings.html">Language Bindings</A><BR><A HREF="http://gtk.themes.org/">Themes</A><BR><A HREF="/bugs.html">Bug Tracker</A><BR></td></tr></table></td></tr></table><BR> <table width=100% cellspacing=0 cellpadding=2 border=0><tr><td bgcolor="#000000"><table width=100% cellspacing=0 cellpadding=4 border=0><tr><td bgcolor="#AAAAEE" nowrap><B>Documentation</B></td></tr><tr><td bgcolor="#FFFFFF" nowrap><A HREF="/faq/">FAQ</A><br><A HREF="/tutorial/">Tutorial</A><BR><A HREF="/api/">API Reference</A><br><A HREF="/books.html">Published Books</A><BR></td></tr></table></td></tr></table><BR> <table width=100% cellspacing=0 cellpadding=2 border=0><tr><td bgcolor="#000000"><table width=100% cellspacing=0 cellpadding=4 border=0><tr><td bgcolor="#AAAAEE" nowrap><B>Projects</B></td></tr><tr><td bgcolor="#FFFFFF" nowrap><A HREF="http://www.pango.org/">Pango</A><BR><A HREF="http://sources.redhat.com/inti/">Inti</A><BR><A HREF="http://www.gnome.org/">GNOME</A><BR><A HREF="http://user.sgic.fi/~tml/gimp/win32/">GTK+ for Win32</A><br><A HREF="http://people.redhat.com/sopwith/gtkfb/">GtkFB (Framebuffer)</A><br><A HREF="http://www.directfb.org/gtk.xml">GTK+ on DirectFB</A><BR><A HREF="/beos/">GTK+ for BeOS</A></td></tr></table></td></tr></table><BR> <table width=100% cellspacing=0 cellpadding=2 border=0><tr><td bgcolor="#000000"><table width=100% cellspacing=0 cellpadding=4 border=0><tr><td bgcolor="#AAAAEE" nowrap><B><B>Applications</B></B></td></tr><tr><td bgcolor="#FFFFFF" nowrap><A HREF="http://www.gimp.org/">GIMP</A><BR><A HREF="http://www.abiword.org/">Abiword</A><BR><A HREF="http://www.lysator.liu.se/~alla/dia/dia.html">Dia</A><BR><A HREF="http://glade.pn.org/">Glade</A><BR><A HREF="http://www.gnucash.org/">GnuCash</A><BR><A HREF="http://www.gnome.org/projects/gnumeric/">Gnumeric</A><BR><BR><A HREF="http://www.gnome.org/applist/">GNOME Software Map</A><br></td></tr></table></td></tr></table><BR> </td> <td bgcolor="#ffffff" valign=top width="99%"><font face="lucida,helvetica"><BODYCLASS="CHAPTER"BGCOLOR="#FFFFFF"TEXT="#000000"LINK="#0000FF"VLINK="#840084"ALINK="#0000FF"><DIVCLASS="NAVHEADER"><TABLEWIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><THCOLSPAN="3"ALIGN="center">GTK+ 1.2 Tutorial</TH></TR><TR><TDWIDTH="10%"ALIGN="left"VALIGN="bottom"><AHREF="sec-signalemissionandpropagation.html"><<< Previous</A></TD><TDWIDTH="80%"ALIGN="center"VALIGN="bottom"></TD><TDWIDTH="10%"ALIGN="right"VALIGN="bottom"><AHREF="sec-retrievingtheselection.html">Next >>></A></TD></TR></TABLE><HRALIGN="LEFT"WIDTH="100%"></DIV><DIVCLASS="CHAPTER"><H1><ANAME="CH-MANAGINGSELECTIONS">Chapter 20. Managing Selections</A></H1><DIVCLASS="TOC"><DL><DT><B>Table of Contents</B></DT><DT>20.1. <AHREF="ch-managingselections.html#SEC-SELECTIONSOVERVIEW">Overview</A></DT><DT>20.2. <AHREF="sec-retrievingtheselection.html">Retrieving the selection</A></DT><DT>20.3. <AHREF="sec-supplyingtheselection.html">Supplying the selection</A></DT></DL></DIV><DIVCLASS="SECT1"><H1CLASS="SECT1"><ANAME="SEC-SELECTIONSOVERVIEW">20.1. Overview</A></H1><P>One type of interprocess communication supported by X and GTK is<ICLASS="EMPHASIS">selections</I>. A selection identifies a chunk of data, forinstance, a portion of text, selected by the user in some fashion, forinstance, by dragging with the mouse. Only one application on adisplay (the <ICLASS="EMPHASIS">owner</I>) can own a particular selection at onetime, so when a selection is claimed by one application, the previousowner must indicate to the user that selection has beenrelinquished. Other applications can request the contents of aselection in different forms, called <ICLASS="EMPHASIS">targets</I>. There can beany number of selections, but most X applications only handle one, the<ICLASS="EMPHASIS">primary selection</I>.</P><P>In most cases, it isn't necessary for a GTK application to deal withselections itself. The standard widgets, such as the Entry widget,already have the capability to claim the selection when appropriate(e.g., when the user drags over text), and to retrieve the contents ofthe selection owned by another widget or another application (e.g.,when the user clicks the second mouse button). However, there may becases in which you want to give other widgets the ability to supplythe selection, or you wish to retrieve targets not supported bydefault.</P><P>A fundamental concept needed to understand selection handling is thatof the <ICLASS="EMPHASIS">atom</I>. An atom is an integer that uniquely identifies astring (on a certain display). Certain atoms are predefined by the Xserver, and in some cases there are constants in <TTCLASS="LITERAL">gtk.h</TT>corresponding to these atoms. For instance the constant<TTCLASS="LITERAL">GDK_PRIMARY_SELECTION</TT> corresponds to the string "PRIMARY".In other cases, you should use the functions<TTCLASS="LITERAL">gdk_atom_intern()</TT>, to get the atom corresponding to a string,and <TTCLASS="LITERAL">gdk_atom_name()</TT>, to get the name of an atom. Bothselections and targets are identified by atoms.</P></DIV></DIV><DIVCLASS="NAVFOOTER"><HRALIGN="LEFT"WIDTH="100%"><TABLEWIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top"><AHREF="sec-signalemissionandpropagation.html"><<< Previous</A></TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="gtk-tut.html">Home</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top"><AHREF="sec-retrievingtheselection.html">Next >>></A></TD></TR><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top">Signal Emission and Propagation</TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"> </TD><TDWIDTH="33%"ALIGN="right"VALIGN="top">Retrieving the selection</TD></TR></TABLE></DIV> </td> </tr></table> </td> </tr></table></body></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -