Mercurial > hg > xemacs-beta
diff src/select-msw.c @ 414:da8ed4261e83 r21-2-15
Import from CVS: tag r21-2-15
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:21:38 +0200 |
parents | 697ef44129c6 |
children | ebe98a74bd68 |
line wrap: on
line diff
--- a/src/select-msw.c Mon Aug 13 11:20:44 2007 +0200 +++ b/src/select-msw.c Mon Aug 13 11:21:38 2007 +0200 @@ -29,6 +29,7 @@ #include <config.h> #include "lisp.h" +#include "select.h" #include "console-msw.h" @@ -92,6 +93,20 @@ return i ? Qt : Qnil; } +/* Do protocol to assert ourself as a selection owner. Under mswindows +this is easy, we just set the clipboard. */ +static Lisp_Object +mswindows_own_selection (Lisp_Object selection_name, Lisp_Object selection_value) +{ + Lisp_Object converted_value = get_local_selection (selection_name, QSTRING); + if (!NILP (converted_value) && + CONSP (converted_value) && + EQ (XCAR (converted_value), QSTRING)) + Fmswindows_set_clipboard (XCDR (converted_value)); + + return Qnil; +} + DEFUN ("mswindows-get-clipboard", Fmswindows_get_clipboard, 0, 0, 0, /* Return the contents of the mswindows clipboard. */ @@ -144,6 +159,12 @@ return ret; } +static Lisp_Object +mswindows_get_foreign_selection (Lisp_Object selection_symbol, Lisp_Object target_type) +{ + return Fmswindows_get_clipboard (); +} + DEFUN ("mswindows-selection-exists-p", Fmswindows_selection_exists_p, 0, 0, 0, /* Whether there is an MS-Windows selection. */ @@ -160,12 +181,26 @@ return EmptyClipboard () ? Qt : Qnil; } +static void +mswindows_disown_selection (Lisp_Object selection, Lisp_Object timeval) +{ + Fmswindows_delete_selection (); +} + /************************************************************************/ /* initialization */ /************************************************************************/ void +console_type_create_select_mswindows (void) +{ + CONSOLE_HAS_METHOD (mswindows, own_selection); + CONSOLE_HAS_METHOD (mswindows, disown_selection); + CONSOLE_HAS_METHOD (mswindows, get_foreign_selection); +} + +void syms_of_select_mswindows (void) { DEFSUBR (Fmswindows_set_clipboard);