summaryrefslogtreecommitdiff
path: root/src/haikuselect.h
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2022-03-23 14:15:22 +0000
committerPo Lu <luangruo@yahoo.com>2022-03-23 14:16:15 +0000
commit7fa5d6c87d43926008c15a7f7ddc924bbf8d2e76 (patch)
tree10291262a55f8d78e81c7e1f2d98b754cbe4cc71 /src/haikuselect.h
parent36810a8164db12766f532f268f322afe1e601b6a (diff)
downloademacs-7fa5d6c87d43926008c15a7f7ddc924bbf8d2e76.tar.gz
Improvements to Haiku selection handling
* lisp/term/haiku-win.el (haiku-selection-targets): Implement in Lisp. * src/haiku_select.cc (be_get_message_type): (be_set_message_type): (be_get_message_message): (be_add_message_message): New functions. * src/haiku_support.cc (MessageReceived): Fix typo. * src/haikuselect.c (haiku_selection_data_1) (Fhaiku_selection_targets): Delete functions. (haiku_message_to_lisp, lisp_to_type_code) (haiku_lisp_to_message): Correctly decode and encode nested messages, and fix encoding specially decoded types via numeric names. Also store and decode message types inside Lisp messages. (Fhaiku_drag_message): Update doc string. (syms_of_haikuselect): Update subrs. * src/haikuselect.h: Update prototypes.
Diffstat (limited to 'src/haikuselect.h')
-rw-r--r--src/haikuselect.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/haikuselect.h b/src/haikuselect.h
index 42789949182..01e4ca327da 100644
--- a/src/haikuselect.h
+++ b/src/haikuselect.h
@@ -94,12 +94,18 @@ extern "C"
ssize_t *size_return);
extern int be_get_refs_data (void *message, const char *name,
int32 index, char **path_buffer);
+ extern uint32 be_get_message_type (void *message);
+ extern void be_set_message_type (void *message, uint32 what);
+ extern void *be_get_message_message (void *message, const char *name,
+ int32 index);
extern void *be_create_simple_message (void);
extern int be_add_message_data (void *message, const char *name,
int32 type_code, const void *buf,
ssize_t buf_size);
extern int be_add_refs_data (void *message, const char *name,
const char *filename);
+ extern int be_add_message_message (void *message, const char *name,
+ void *data);
extern int be_lock_clipboard_message (enum haiku_clipboard clipboard,
void **message_return);
extern void be_unlock_clipboard (enum haiku_clipboard clipboard);