summaryrefslogtreecommitdiff
path: root/src/haiku_support.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/haiku_support.h')
-rw-r--r--src/haiku_support.h869
1 files changed, 869 insertions, 0 deletions
diff --git a/src/haiku_support.h b/src/haiku_support.h
new file mode 100644
index 00000000000..9f5f3c77e3d
--- /dev/null
+++ b/src/haiku_support.h
@@ -0,0 +1,869 @@
+/* Haiku window system support. Hey Emacs, this is -*- C++ -*-
+ Copyright (C) 2021 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_SUPPORT_H
+#define _HAIKU_SUPPORT_H
+
+#include <stdint.h>
+
+#ifdef HAVE_FREETYPE
+#include <ft2build.h>
+#include <fontconfig/fontconfig.h>
+#include FT_FREETYPE_H
+#include FT_SIZES_H
+#endif
+
+#ifdef USE_BE_CAIRO
+#include <cairo.h>
+#endif
+
+enum haiku_cursor
+ {
+ CURSOR_ID_NO_CURSOR = 12,
+ CURSOR_ID_RESIZE_NORTH = 15,
+ CURSOR_ID_RESIZE_EAST = 16,
+ CURSOR_ID_RESIZE_SOUTH = 17,
+ CURSOR_ID_RESIZE_WEST = 18,
+ CURSOR_ID_RESIZE_NORTH_EAST = 19,
+ CURSOR_ID_RESIZE_NORTH_WEST = 20,
+ CURSOR_ID_RESIZE_SOUTH_EAST = 21,
+ CURSOR_ID_RESIZE_SOUTH_WEST = 22,
+ CURSOR_ID_RESIZE_NORTH_SOUTH = 23,
+ CURSOR_ID_RESIZE_EAST_WEST = 24,
+ CURSOR_ID_RESIZE_NORTH_EAST_SOUTH_WEST = 25,
+ CURSOR_ID_RESIZE_NORTH_WEST_SOUTH_EAST = 26
+ };
+
+enum haiku_alert_type
+ {
+ HAIKU_EMPTY_ALERT = 0,
+ HAIKU_INFO_ALERT,
+ HAIKU_IDEA_ALERT,
+ HAIKU_WARNING_ALERT,
+ HAIKU_STOP_ALERT
+ };
+
+enum haiku_event_type
+ {
+ QUIT_REQUESTED,
+ FRAME_RESIZED,
+ FRAME_EXPOSED,
+ KEY_DOWN,
+ KEY_UP,
+ ACTIVATION,
+ MOUSE_MOTION,
+ BUTTON_DOWN,
+ BUTTON_UP,
+ ICONIFICATION,
+ MOVE_EVENT,
+ SCROLL_BAR_VALUE_EVENT,
+ SCROLL_BAR_DRAG_EVENT,
+ WHEEL_MOVE_EVENT,
+ MENU_BAR_RESIZE,
+ MENU_BAR_OPEN,
+ MENU_BAR_SELECT_EVENT,
+ MENU_BAR_CLOSE,
+ FILE_PANEL_EVENT,
+ MENU_BAR_HELP_EVENT,
+ ZOOM_EVENT,
+ REFS_EVENT,
+ APP_QUIT_REQUESTED_EVENT
+ };
+
+struct haiku_quit_requested_event
+{
+ void *window;
+};
+
+struct haiku_resize_event
+{
+ void *window;
+ float px_heightf;
+ float px_widthf;
+};
+
+struct haiku_expose_event
+{
+ void *window;
+ int x;
+ int y;
+ int width;
+ int height;
+};
+
+struct haiku_refs_event
+{
+ void *window;
+ int x, y;
+ /* Free this with free! */
+ char *ref;
+};
+
+struct haiku_app_quit_requested_event
+{
+ char dummy;
+};
+
+#define HAIKU_MODIFIER_ALT (1)
+#define HAIKU_MODIFIER_CTRL (1 << 1)
+#define HAIKU_MODIFIER_SHIFT (1 << 2)
+#define HAIKU_MODIFIER_SUPER (1 << 3)
+
+struct haiku_key_event
+{
+ void *window;
+ int modifiers;
+ uint32_t mb_char;
+ uint32_t unraw_mb_char;
+ short kc;
+};
+
+struct haiku_activation_event
+{
+ void *window;
+ int activated_p;
+};
+
+struct haiku_mouse_motion_event
+{
+ void *window;
+ bool just_exited_p;
+ int x;
+ int y;
+ uint32_t be_code;
+};
+
+struct haiku_button_event
+{
+ void *window;
+ int btn_no;
+ int modifiers;
+ int x;
+ int y;
+};
+
+struct haiku_iconification_event
+{
+ void *window;
+ int iconified_p;
+};
+
+struct haiku_move_event
+{
+ void *window;
+ int x;
+ int y;
+};
+
+struct haiku_wheel_move_event
+{
+ void *window;
+ int modifiers;
+ float delta_x;
+ float delta_y;
+};
+
+struct haiku_menu_bar_select_event
+{
+ void *window;
+ void *ptr;
+};
+
+struct haiku_file_panel_event
+{
+ void *ptr;
+};
+
+struct haiku_menu_bar_help_event
+{
+ void *window;
+ int mb_idx;
+};
+
+struct haiku_zoom_event
+{
+ void *window;
+ int x;
+ int y;
+ int width;
+ int height;
+};
+
+#define FSPEC_FAMILY 1
+#define FSPEC_STYLE (1 << 1)
+#define FSPEC_SLANT (1 << 2)
+#define FSPEC_WEIGHT (1 << 3)
+#define FSPEC_SPACING (1 << 4)
+#define FSPEC_WANTED (1 << 5)
+#define FSPEC_NEED_ONE_OF (1 << 6)
+#define FSPEC_WIDTH (1 << 7)
+#define FSPEC_LANGUAGE (1 << 8)
+
+typedef char haiku_font_family_or_style[64];
+
+enum haiku_font_slant
+ {
+ NO_SLANT = -1,
+ SLANT_OBLIQUE,
+ SLANT_REGULAR,
+ SLANT_ITALIC
+ };
+
+enum haiku_font_width
+ {
+ NO_WIDTH = -1,
+ ULTRA_CONDENSED,
+ EXTRA_CONDENSED,
+ CONDENSED,
+ SEMI_CONDENSED,
+ NORMAL_WIDTH,
+ SEMI_EXPANDED,
+ EXPANDED,
+ EXTRA_EXPANDED,
+ ULTRA_EXPANDED
+ };
+
+enum haiku_font_language
+ {
+ LANGUAGE_CN,
+ LANGUAGE_KO,
+ LANGUAGE_JP,
+ MAX_LANGUAGE /* This isn't a language. */
+ };
+
+struct haiku_font_pattern
+{
+ int specified;
+ struct haiku_font_pattern *next;
+ /* The next two fields are only temporarily used during the font
+ discovery process! Do not rely on them being correct outside
+ BFont_find. */
+ struct haiku_font_pattern *last;
+ struct haiku_font_pattern *next_family;
+ haiku_font_family_or_style family;
+ haiku_font_family_or_style style;
+ int weight;
+ int mono_spacing_p;
+ int want_chars_len;
+ int need_one_of_len;
+ enum haiku_font_slant slant;
+ enum haiku_font_width width;
+ enum haiku_font_language language;
+ uint32_t *wanted_chars;
+ uint32_t *need_one_of;
+
+ int oblique_seen_p;
+};
+
+struct haiku_scroll_bar_value_event
+{
+ void *scroll_bar;
+ int position;
+};
+
+struct haiku_scroll_bar_drag_event
+{
+ void *scroll_bar;
+ int dragging_p;
+};
+
+struct haiku_menu_bar_resize_event
+{
+ void *window;
+ int width;
+ int height;
+};
+
+struct haiku_menu_bar_state_event
+{
+ void *window;
+};
+
+#define HAIKU_THIN 0
+#define HAIKU_ULTRALIGHT 20
+#define HAIKU_EXTRALIGHT 40
+#define HAIKU_LIGHT 50
+#define HAIKU_SEMI_LIGHT 75
+#define HAIKU_REGULAR 100
+#define HAIKU_SEMI_BOLD 180
+#define HAIKU_BOLD 200
+#define HAIKU_EXTRA_BOLD 205
+#define HAIKU_ULTRA_BOLD 210
+#define HAIKU_BOOK 400
+#define HAIKU_HEAVY 800
+#define HAIKU_ULTRA_HEAVY 900
+#define HAIKU_BLACK 1000
+#define HAIKU_MEDIUM 2000
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+#include <pthread.h>
+#include <OS.h>
+
+#ifdef __cplusplus
+ typedef void *haiku;
+
+ extern void
+ haiku_put_pixel (haiku bitmap, int x, int y, unsigned long pixel);
+
+ extern unsigned long
+ haiku_get_pixel (haiku bitmap, int x, int y);
+#endif
+
+ extern port_id port_application_to_emacs;
+
+ extern void haiku_io_init (void);
+ extern void haiku_io_init_in_app_thread (void);
+
+ extern void
+ haiku_read_size (ssize_t *len);
+
+ extern int
+ haiku_read (enum haiku_event_type *type, void *buf, ssize_t len);
+
+ extern int
+ haiku_read_with_timeout (enum haiku_event_type *type, void *buf, ssize_t len,
+ time_t timeout);
+
+ extern int
+ haiku_write (enum haiku_event_type type, void *buf);
+
+ extern int
+ haiku_write_without_signal (enum haiku_event_type type, void *buf);
+
+ extern void
+ rgb_color_hsl (uint32_t rgb, double *h, double *s, double *l);
+
+ extern void
+ hsl_color_rgb (double h, double s, double l, uint32_t *rgb);
+
+ extern void *
+ BBitmap_new (int width, int height, int mono_p);
+
+ extern void *
+ BBitmap_data (void *bitmap);
+
+ extern int
+ BBitmap_convert (void *bitmap, void **new_bitmap);
+
+ extern void
+ BBitmap_free (void *bitmap);
+
+ extern void
+ BBitmap_dimensions (void *bitmap, int *left, int *top,
+ int *right, int *bottom, int32_t *bytes_per_row,
+ int *mono_p);
+
+ extern void *
+ BApplication_setup (void);
+
+ extern void *
+ BWindow_new (void *view);
+
+ extern void
+ BWindow_quit (void *window);
+
+ extern void
+ BWindow_set_offset (void *window, int x, int y);
+
+ extern void
+ BWindow_iconify (void *window);
+
+ extern void
+ BWindow_set_visible (void *window, int visible_p);
+
+ extern void
+ BFont_close (void *font);
+
+ extern void
+ BFont_dat (void *font, int *px_size, int *min_width, int *max_width,
+ int *avg_width, int *height, int *space_width, int *ascent,
+ int *descent, int *underline_position, int *underline_thickness);
+
+ extern int
+ BFont_have_char_p (void *font, int32_t chr);
+
+ extern int
+ BFont_have_char_block (void *font, int32_t beg, int32_t end);
+
+ extern void
+ BFont_char_bounds (void *font, const char *mb_str, int *advance,
+ int *lb, int *rb);
+
+ extern void
+ BFont_nchar_bounds (void *font, const char *mb_str, int *advance,
+ int *lb, int *rb, int32_t n);
+
+ extern void
+ BWindow_retitle (void *window, const char *title);
+
+ extern void
+ BWindow_resize (void *window, int width, int height);
+
+ extern void
+ BWindow_activate (void *window);
+
+ extern void
+ BView_StartClip (void *view);
+
+ extern void
+ BView_EndClip (void *view);
+
+ extern void
+ BView_SetHighColor (void *view, uint32_t color);
+
+ extern void
+ BView_SetHighColorForVisibleBell (void *view, uint32_t color);
+
+ extern void
+ BView_FillRectangleForVisibleBell (void *view, int x, int y, int width,
+ int height);
+
+ extern void
+ BView_SetLowColor (void *view, uint32_t color);
+
+ extern void
+ BView_SetPenSize (void *view, int u);
+
+ extern void
+ BView_SetFont (void *view, void *font);
+
+ extern void
+ BView_MovePenTo (void *view, int x, int y);
+
+ extern void
+ BView_DrawString (void *view, const char *chr, ptrdiff_t len);
+
+ extern void
+ BView_DrawChar (void *view, char chr);
+
+ extern void
+ BView_FillRectangle (void *view, int x, int y, int width, int height);
+
+ extern void
+ BView_FillRectangleAbs (void *view, int x, int y, int x1, int y1);
+
+ extern void
+ BView_FillTriangle (void *view, int x1, int y1,
+ int x2, int y2, int x3, int y3);
+
+ extern void
+ BView_StrokeRectangle (void *view, int x, int y, int width, int height);
+
+ extern void
+ BView_SetViewColor (void *view, uint32_t color);
+
+ extern void
+ BView_ClipToRect (void *view, int x, int y, int width, int height);
+
+ extern void
+ BView_ClipToInverseRect (void *view, int x, int y, int width, int height);
+
+ extern void
+ BView_StrokeLine (void *view, int sx, int sy, int tx, int ty);
+
+ extern void
+ BView_CopyBits (void *view, int x, int y, int width, int height,
+ int tox, int toy, int towidth, int toheight);
+
+ extern void
+ BView_DrawBitmap (void *view, void *bitmap, int x, int y,
+ int width, int height, int vx, int vy, int vwidth,
+ int vheight);
+
+ extern void
+ BView_DrawBitmapWithEraseOp (void *view, void *bitmap, int x,
+ int y, int width, int height);
+
+ extern void
+ BView_DrawMask (void *src, void *view,
+ int x, int y, int width, int height,
+ int vx, int vy, int vwidth, int vheight,
+ uint32_t color);
+
+ extern void *
+ BBitmap_transform_bitmap (void *bitmap, void *mask, uint32_t m_color,
+ double rot, int desw, int desh);
+
+ extern void
+ BScreen_px_dim (int *width, int *height);
+
+ extern void
+ BView_resize_to (void *view, int width, int height);
+
+ /* Functions for creating and freeing cursors. */
+ extern void *
+ BCursor_create_default (void);
+
+ extern void *
+ BCursor_from_id (enum haiku_cursor cursor);
+
+ extern void *
+ BCursor_create_modeline (void);
+
+ extern void *
+ BCursor_create_i_beam (void);
+
+ extern void *
+ BCursor_create_progress_cursor (void);
+
+ extern void *
+ BCursor_create_grab (void);
+
+ extern void
+ BCursor_delete (void *cursor);
+
+ extern void
+ BView_set_view_cursor (void *view, void *cursor);
+
+ extern void
+ BWindow_Flush (void *window);
+
+ extern void
+ BMapKey (uint32_t kc, int *non_ascii_p, unsigned *code);
+
+ extern void *
+ BScrollBar_make_for_view (void *view, int horizontal_p,
+ int x, int y, int x1, int y1,
+ void *scroll_bar_ptr);
+
+ extern void
+ BScrollBar_delete (void *sb);
+
+ extern void
+ BView_move_frame (void *view, int x, int y, int x1, int y1);
+
+ extern void
+ BView_scroll_bar_update (void *sb, int portion, int whole, int position);
+
+ extern int
+ BScrollBar_default_size (int horizontal_p);
+
+ extern void
+ BView_invalidate (void *view);
+
+ extern void
+ BView_draw_lock (void *view);
+
+ extern void
+ BView_draw_unlock (void *view);
+
+ extern void
+ BWindow_center_on_screen (void *window);
+
+ extern void
+ BView_mouse_moved (void *view, int x, int y, uint32_t transit);
+
+ extern void
+ BView_mouse_down (void *view, int x, int y);
+
+ extern void
+ BView_mouse_up (void *view, int x, int y);
+
+ extern void
+ BBitmap_import_mono_bits (void *bitmap, void *bits, int wd, int h);
+
+ extern void
+ haiku_font_pattern_free (struct haiku_font_pattern *pt);
+
+ extern struct haiku_font_pattern *
+ BFont_find (struct haiku_font_pattern *pt);
+
+ extern int
+ BFont_open_pattern (struct haiku_font_pattern *pat, void **font, float size);
+
+ extern void
+ BFont_populate_fixed_family (struct haiku_font_pattern *ptn);
+
+ extern void
+ BFont_populate_plain_family (struct haiku_font_pattern *ptn);
+
+ extern void
+ BView_publish_scroll_bar (void *view, int x, int y, int width, int height);
+
+ extern void
+ BView_forget_scroll_bar (void *view, int x, int y, int width, int height);
+
+ extern void
+ BView_get_mouse (void *view, int *x, int *y);
+
+ extern void
+ BView_convert_to_screen (void *view, int *x, int *y);
+
+ extern void
+ BView_convert_from_screen (void *view, int *x, int *y);
+
+ extern void
+ BWindow_change_decoration (void *window, int decorate_p);
+
+ extern void
+ BWindow_set_tooltip_decoration (void *window);
+
+ extern void
+ BWindow_set_avoid_focus (void *window, int avoid_focus_p);
+
+ extern void
+ BView_emacs_delete (void *view);
+
+ extern uint32_t
+ haiku_current_workspace (void);
+
+ extern uint32_t
+ BWindow_workspaces (void *window);
+
+ extern void *
+ BPopUpMenu_new (const char *name);
+
+ extern void
+ BMenu_add_item (void *menu, const char *label, void *ptr, bool enabled_p,
+ bool marked_p, bool mbar_p, void *mbw_ptr, const char *key,
+ const char *help);
+
+ extern void
+ BMenu_add_separator (void *menu);
+
+ extern void *
+ BMenu_new_submenu (void *menu, const char *label, bool enabled_p);
+
+ extern void *
+ BMenu_new_menu_bar_submenu (void *menu, const char *label);
+
+ extern int
+ BMenu_count_items (void *menu);
+
+ extern void *
+ BMenu_item_at (void *menu, int idx);
+
+ extern void *
+ BMenu_run (void *menu, int x, int y);
+
+ extern void
+ BPopUpMenu_delete (void *menu);
+
+ extern void *
+ BMenuBar_new (void *view);
+
+ extern void
+ BMenu_delete_all (void *menu);
+
+ extern void
+ BMenuBar_delete (void *menubar);
+
+ extern void
+ BMenu_item_set_label (void *item, const char *label);
+
+ extern void *
+ BMenu_item_get_menu (void *item);
+
+ extern void
+ BMenu_delete_from (void *menu, int start, int count);
+
+ extern void
+ haiku_ring_bell (void);
+
+ extern void *
+ BAlert_new (const char *text, enum haiku_alert_type type);
+
+ extern void *
+ BAlert_add_button (void *alert, const char *text);
+
+ extern int32_t
+ BAlert_go (void *alert);
+
+ extern void
+ BButton_set_enabled (void *button, int enabled_p);
+
+ extern void
+ BView_set_tooltip (void *view, const char *tooltip);
+
+ extern void
+ BAlert_delete (void *alert);
+
+ extern void
+ BScreen_res (double *rrsx, double *rrsy);
+
+ extern void
+ EmacsWindow_parent_to (void *window, void *other_window);
+
+ extern void
+ EmacsWindow_unparent (void *window);
+
+ extern int
+ BFont_string_width (void *font, const char *utf8);
+
+ extern void
+ be_get_version_string (char *version, int len);
+
+ extern int
+ be_get_display_planes (void);
+
+ extern int
+ be_get_display_color_cells (void);
+
+ extern void
+ be_warp_pointer (int x, int y);
+
+ extern void
+ EmacsWindow_move_weak_child (void *window, void *child, int xoff, int yoff);
+
+ extern void
+ EmacsView_set_up_double_buffering (void *vw);
+
+ extern void
+ EmacsView_disable_double_buffering (void *vw);
+
+ extern void
+ EmacsView_flip_and_blit (void *vw);
+
+ extern int
+ EmacsView_double_buffered_p (void *vw);
+
+ extern char *
+ be_popup_file_dialog (int open_p, const char *default_dir, int must_match_p,
+ int dir_only_p, void *window, const char *save_text,
+ const char *prompt,
+ void (*block_input_function) (void),
+ void (*unblock_input_function) (void));
+
+ extern void
+ record_c_unwind_protect_from_cxx (void (*) (void *), void *);
+
+ extern ptrdiff_t
+ c_specpdl_idx_from_cxx (void);
+
+ extern void
+ c_unbind_to_nil_from_cxx (ptrdiff_t idx);
+
+ extern void
+ EmacsView_do_visible_bell (void *view, uint32_t color);
+
+ extern void
+ BWindow_zoom (void *window);
+
+ extern void
+ EmacsWindow_make_fullscreen (void *window, int fullscreen_p);
+
+ extern void
+ EmacsWindow_unzoom (void *window);
+
+#ifdef HAVE_NATIVE_IMAGE_API
+ extern int
+ be_can_translate_type_to_bitmap_p (const char *mime);
+
+ extern void *
+ be_translate_bitmap_from_file_name (const char *filename);
+
+ extern void *
+ be_translate_bitmap_from_memory (const void *buf, size_t bytes);
+#endif
+
+ extern void
+ BMenuBar_start_tracking (void *mbar);
+
+ extern size_t
+ BBitmap_bytes_length (void *bitmap);
+
+ extern void
+ BView_show_tooltip (void *view);
+
+#ifdef USE_BE_CAIRO
+ extern cairo_surface_t *
+ EmacsView_cairo_surface (void *view);
+
+ extern void
+ BView_cr_dump_clipping (void *view, cairo_t *ctx);
+
+ extern void
+ EmacsWindow_begin_cr_critical_section (void *window);
+
+ extern void
+ EmacsWindow_end_cr_critical_section (void *window);
+#endif
+
+ extern void
+ BView_set_and_show_sticky_tooltip (void *view, const char *tooltip,
+ int x, int y);
+
+ extern void
+ BMenu_add_title (void *menu, const char *text);
+
+ extern int
+ be_plain_font_height (void);
+
+ extern int
+ be_string_width_with_plain_font (const char *str);
+
+ extern int
+ be_get_display_screens (void);
+
+ extern void
+ BWindow_set_min_size (void *window, int width, int height);
+
+ extern void
+ BWindow_set_size_alignment (void *window, int align_width, int align_height);
+
+#ifdef __cplusplus
+ extern void *
+ find_appropriate_view_for_draw (void *vw);
+}
+
+extern _Noreturn void
+gui_abort (const char *msg);
+#endif /* _cplusplus */
+
+/* Borrowed from X.Org keysymdef.h */
+#define XK_BackSpace 0xff08 /* Back space, back char */
+#define XK_Tab 0xff09
+#define XK_Linefeed 0xff0a /* Linefeed, LF */
+#define XK_Clear 0xff0b
+#define XK_Return 0xff0d /* Return, enter */
+#define XK_Pause 0xff13 /* Pause, hold */
+#define XK_Scroll_Lock 0xff14
+#define XK_Sys_Req 0xff15
+#define XK_Escape 0xff1b
+#define XK_Delete 0xffff /* Delete, rubout */
+#define XK_Home 0xff50
+#define XK_Left 0xff51 /* Move left, left arrow */
+#define XK_Up 0xff52 /* Move up, up arrow */
+#define XK_Right 0xff53 /* Move right, right arrow */
+#define XK_Down 0xff54 /* Move down, down arrow */
+#define XK_Prior 0xff55 /* Prior, previous */
+#define XK_Page_Up 0xff55
+#define XK_Next 0xff56 /* Next */
+#define XK_Page_Down 0xff56
+#define XK_End 0xff57 /* EOL */
+#define XK_Begin 0xff58 /* BOL */
+#define XK_Select 0xff60 /* Select, mark */
+#define XK_Print 0xff61
+#define XK_Execute 0xff62 /* Execute, run, do */
+#define XK_Insert 0xff63 /* Insert, insert here */
+#define XK_Undo 0xff65
+#define XK_Redo 0xff66 /* Redo, again */
+#define XK_Menu 0xff67
+#define XK_Find 0xff68 /* Find, search */
+#define XK_Cancel 0xff69 /* Cancel, stop, abort, exit */
+#define XK_Help 0xff6a /* Help */
+#define XK_Break 0xff6b
+#define XK_Mode_switch 0xff7e /* Character set switch */
+#define XK_script_switch 0xff7e /* Alias for mode_switch */
+#define XK_Num_Lock 0xff7f
+#define XK_F1 0xffbe
+
+#endif /* _HAIKU_SUPPORT_H_ */