/* Synched up with: Not in FSF. */
-#ifndef _XEMACS_SELECT_H_
-#define _XEMACS_SELECT_H_
-
-extern Lisp_Object QPRIMARY, QSECONDARY, QSTRING, QINTEGER, QCLIPBOARD, QTIMESTAMP,
- QTEXT, QDELETE, QMULTIPLE, QINCR, QEMACS_TMP, QTARGETS, QATOM, QNULL,
- QATOM_PAIR, QCOMPOUND_TEXT;
-
-/* This is an association list whose elements are of the form
- ( selection-name selection-value selection-timestamp )
- selection-name is a lisp symbol, whose name is the name of an X Atom.
- selection-value is the value that emacs owns for that selection.
- It may be any kind of Lisp object.
- selection-timestamp is the time at which emacs began owning this selection,
- as a cons of two 16-bit numbers (making a 32 bit time).
- If there is an entry in this alist, then it can be assumed that emacs owns
- that selection.
- The only (eq) parts of this list that are visible from elisp are the
- selection-values.
- */
-extern Lisp_Object Vselection_alist;
+#ifndef INCLUDED_select_h_
+#define INCLUDED_select_h_
+
+/* X Atoms */
+extern Lisp_Object QPRIMARY, QSECONDARY, QSTRING, QINTEGER, QCLIPBOARD,
+ QTIMESTAMP, QTEXT, QDELETE, QMULTIPLE, QINCR, QEMACS_TMP, QTARGETS, QATOM,
+ QNULL, QATOM_PAIR, QCOMPOUND_TEXT;
+
+/* Windows clipboard formats */
+extern Lisp_Object QCF_TEXT, QCF_BITMAP, QCF_METAFILEPICT, QCF_SYLK, QCF_DIF,
+ QCF_TIFF, QCF_OEMTEXT, QCF_DIB, QCF_DIBV5, QCF_PALETTE, QCF_PENDATA,
+ QCF_RIFF, QCF_WAVE, QCF_UNICODETEXT, QCF_ENHMETAFILE, QCF_HDROP, QCF_LOCALE,
+ QCF_OWNERDISPLAY, QCF_DSPTEXT, QCF_DSPBITMAP, QCF_DSPMETAFILEPICT,
+ QCF_DSPENHMETAFILE;
+
+/* Selection strategies */
+extern Lisp_Object Qreplace_all, Qreplace_existing, Qappend;
/* "Selection owner couldn't convert selection" */
extern Lisp_Object Qselection_conversion_error;
-Lisp_Object get_local_selection (Lisp_Object selection_symbol, Lisp_Object target_type);
+/* Selection input & output */
+Lisp_Object select_convert_in (Lisp_Object selection,
+ Lisp_Object type,
+ Lisp_Object value);
+Lisp_Object select_convert_out (Lisp_Object selection,
+ Lisp_Object type,
+ Lisp_Object value);
+Lisp_Object select_coerce (Lisp_Object selection,
+ Lisp_Object type,
+ Lisp_Object value);
+
+/* Notifications */
void handle_selection_clear (Lisp_Object selection_symbol);
-#endif
+void select_notify_buffer_kill (Lisp_Object buffer);
+
+/* Lisp functions we export for other files' use */
+EXFUN (Fregister_selection_data_type, 2);
+EXFUN (Fselection_data_type_name, 2);
+EXFUN (Favailable_selection_types, 2);
+EXFUN (Fselection_owner_p, 1);
+EXFUN (Fselection_exists_p, 3);
+EXFUN (Fget_selection_timestamp, 1);
+
+#endif /* INCLUDED_select_h_ */