* src/haiku_select.cc (be_update_clipboard_count): New function. (be_set_clipboard_data): Update clipboard counts. (BClipboard_owns_clipboard, clipboard_owner_p) (BClipboard_owns_primary, primary_owner_p) (BClipboard_owns_secondary, secondary_owner_p): Rename functions somewhat. (be_clipboard_owner_p): New function. * src/haikuselect.c (Fhaiku_selection_put) (Fhaiku_selection_owner_p): Update selection counts as well. * src/haikuselect.h: Update prototypes.
75 lines
2.6 KiB
C++
75 lines
2.6 KiB
C++
/* Haiku window system selection support. Hey Emacs, this is -*- C++ -*-
|
|
Copyright (C) 2021-2022 Free Software Foundation, Inc.
|
|
|
|
This file is part of GNU Emacs.
|
|
|
|
GNU Emacs is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or (at
|
|
your option) any later version.
|
|
|
|
GNU Emacs is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */
|
|
|
|
#ifndef _HAIKU_SELECT_H_
|
|
#define _HAIKU_SELECT_H_
|
|
|
|
#ifdef __cplusplus
|
|
#include <cstdio>
|
|
#else
|
|
#include <stdio.h>
|
|
#endif
|
|
|
|
#include <SupportDefs.h>
|
|
|
|
enum haiku_clipboard
|
|
{
|
|
CLIPBOARD_PRIMARY,
|
|
CLIPBOARD_SECONDARY,
|
|
CLIPBOARD_CLIPBOARD
|
|
};
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
/* Also declared in haikuterm.h for use in emacs.c. */
|
|
extern void init_haiku_select (void);
|
|
#endif
|
|
/* Whether or not the selection was recently changed. */
|
|
|
|
extern char *be_find_clipboard_data (enum haiku_clipboard, const char *, ssize_t *);
|
|
extern void be_set_clipboard_data (enum haiku_clipboard, const char *, const char *,
|
|
ssize_t, bool);
|
|
extern void be_get_clipboard_targets (enum haiku_clipboard, char **, int);
|
|
extern bool be_clipboard_owner_p (enum haiku_clipboard);
|
|
extern void be_update_clipboard_count (enum haiku_clipboard);
|
|
|
|
extern int be_enum_message (void *, int32 *, int32, int32 *, const char **);
|
|
extern int be_get_message_data (void *, const char *, int32, int32,
|
|
const void **, ssize_t *);
|
|
extern int be_get_refs_data (void *, const char *, int32, char **);
|
|
extern int be_get_point_data (void *, const char *, int32, float *, float *);
|
|
extern uint32 be_get_message_type (void *);
|
|
extern void be_set_message_type (void *, uint32);
|
|
extern void *be_get_message_message (void *, const char *, int32);
|
|
extern void *be_create_simple_message (void);
|
|
extern int be_add_message_data (void *, const char *, int32, const void *, ssize_t);
|
|
extern int be_add_refs_data (void *, const char *, const char *);
|
|
extern int be_add_point_data (void *, const char *, float, float);
|
|
extern int be_add_message_message (void *, const char *, void *);
|
|
extern int be_lock_clipboard_message (enum haiku_clipboard, void **, bool);
|
|
extern void be_unlock_clipboard (enum haiku_clipboard, bool);
|
|
#ifdef __cplusplus
|
|
};
|
|
#endif
|
|
#endif /* _HAIKU_SELECT_H_ */
|
|
|
|
// Local Variables:
|
|
// eval: (setf (alist-get 'inextern-lang c-offsets-alist) 0)
|
|
// End:
|