mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-24 05:22:04 -08:00
* doc/lispref/os.texi (Desktop Notifications): Document Haiku desktop notifications. * etc/NEWS: Announce this change. * lisp/org/org-clock.el (haiku-notifications-notify): New declaration. (org-show-notification): Employ that function. * src/haiku_io.c (haiku_len) <NOTIFICATION_CLICK_EVENT>: Return the length for this type of event. * src/haiku_select.cc (my_team_id, be_display_notification): New functions. * src/haiku_support.cc (my_team_id, ArgvReceived): New functions. * src/haiku_support.h (enum haiku_event_type): New event type NOTIFICATION_CLICK_EVENT. (struct haiku_notification_click_event): New structure. * src/haikuselect.c (haiku_notifications_notify_1) (Fhaiku_notifications_notify): New functions. (syms_of_haikuselect): Register new defsubr. * src/haikuterm.c (haiku_read_socket): * src/haikuselect.h: * src/termhooks.h: Add new events for notification clicks on Haiku.
88 lines
3.1 KiB
C++
88 lines
3.1 KiB
C++
/* Haiku window system selection support. Hey Emacs, this is -*- C++ -*-
|
||
Copyright (C) 2021-2023 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>
|
||
#include <cstdint>
|
||
#else /* !__cplusplus */
|
||
#include <stdio.h>
|
||
#include <stdint.h>
|
||
#endif /* __cplusplus */
|
||
|
||
#include <SupportDefs.h>
|
||
|
||
enum haiku_clipboard
|
||
{
|
||
CLIPBOARD_PRIMARY,
|
||
CLIPBOARD_SECONDARY,
|
||
CLIPBOARD_CLIPBOARD
|
||
};
|
||
|
||
#ifdef __cplusplus
|
||
extern "C"
|
||
{
|
||
#endif /* __cplusplus */
|
||
/* Defined in haikuselect.c. */
|
||
extern void haiku_selection_disowned (enum haiku_clipboard, int64);
|
||
|
||
/* Defined in haiku_select.cc. */
|
||
extern void be_clipboard_init (void);
|
||
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 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);
|
||
extern void be_handle_clipboard_changed_message (void);
|
||
extern void be_start_watching_selection (enum haiku_clipboard);
|
||
extern bool be_selection_outdated_p (enum haiku_clipboard, int64);
|
||
extern int64 be_get_clipboard_count (enum haiku_clipboard);
|
||
|
||
|
||
|
||
extern intmax_t be_display_notification (const char *, const char *,
|
||
intmax_t, int, const char *);
|
||
|
||
#ifdef __cplusplus
|
||
};
|
||
#endif /* __cplusplus */
|
||
#endif /* _HAIKU_SELECT_H_ */
|
||
|
||
// Local Variables:
|
||
// eval: (setf (alist-get 'inextern-lang c-offsets-alist) 0)
|
||
// End:
|