diff options
| author | Po Lu | 2022-05-11 12:40:32 +0000 |
|---|---|---|
| committer | Po Lu | 2022-05-11 12:40:53 +0000 |
| commit | 5079f42446aab520e20aad30f825ccbc448ba4e3 (patch) | |
| tree | 68972443171942d16b5c9880dc7833e348ff5954 | |
| parent | 125cda74981fddf63f827f96844cf6d9a413aa1a (diff) | |
| download | emacs-5079f42446aab520e20aad30f825ccbc448ba4e3.tar.gz emacs-5079f42446aab520e20aad30f825ccbc448ba4e3.zip | |
Add support for changing pointer types on Haiku
* doc/lispref/frames.texi (Pointer Shape): Document that the
pointer shape can now be changed on some window systems other
than X.
* lisp/term/haiku-win.el (x-pointer-X-cursor, x-pointer-arrow)
(x-pointer-bottom-left-corner, x-pointer-bottom-right-corner)
(x-pointer-bottom-side, x-pointer-clock, x-pointer-cross)
(x-pointer-cross-reverse, x-pointer-crosshair)
(x-pointer-diamond-cross, x-pointer-hand1, x-pointer-hand2)
(x-pointer-left-side, x-pointer-right-side)
(x-pointer-sb-down-arrow, x-pointer-sb-left-arrow)
(x-pointer-sb-right-arrow, x-pointer-sb-up-arrow, x-pointer-target)
(x-pointer-top-left-corner, x-pointer-top-right-corner)
(x-pointer-top-side, x-pointer-watch, x-pointer-invisible): New
pointer constants.
* src/haiku_support.cc (BCursor_from_id): Accept int instead of
enum.
* src/haiku_support.h: Update prototypes.
* src/haikufns.c (haiku_create_frame): Stop manually assigning
cursors and set default value of the mouse color property.
(haiku_free_frame_resources): Free custom cursors too.
(struct user_cursor_info, INIT_USER_CURSOR): New struct.
(haiku_free_custom_cursors): New function.
(haiku_set_mouse_color): New param handler.
(haiku_frame_parm_handlers): Add param handler.
(syms_of_haikufns): New cursor shape variables from X.
* src/haikuterm.h: Update prototypes.
| -rw-r--r-- | doc/lispref/frames.texi | 5 | ||||
| -rw-r--r-- | lisp/term/haiku-win.el | 31 | ||||
| -rw-r--r-- | src/haiku_support.cc | 2 | ||||
| -rw-r--r-- | src/haiku_support.h | 2 | ||||
| -rw-r--r-- | src/haikufns.c | 173 | ||||
| -rw-r--r-- | src/haikuterm.h | 1 |
6 files changed, 184 insertions, 30 deletions
diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi index 05c6e4b719b..3bbeef005bd 100644 --- a/doc/lispref/frames.texi +++ b/doc/lispref/frames.texi | |||
| @@ -3877,8 +3877,9 @@ in the buffer. The default is to use the @code{arrow} (non-text) | |||
| 3877 | pointer style. | 3877 | pointer style. |
| 3878 | @end defopt | 3878 | @end defopt |
| 3879 | 3879 | ||
| 3880 | When using X, you can specify what the @code{text} pointer style | 3880 | When using some window systems, you can specify what the @code{text} |
| 3881 | really looks like by setting the variable @code{x-pointer-shape}. | 3881 | pointer style really looks like by setting the variable |
| 3882 | @code{x-pointer-shape}. | ||
| 3882 | 3883 | ||
| 3883 | @defvar x-pointer-shape | 3884 | @defvar x-pointer-shape |
| 3884 | This variable specifies the pointer shape to use ordinarily in the | 3885 | This variable specifies the pointer shape to use ordinarily in the |
diff --git a/lisp/term/haiku-win.el b/lisp/term/haiku-win.el index 6396779d60d..7f3bba52e59 100644 --- a/lisp/term/haiku-win.el +++ b/lisp/term/haiku-win.el | |||
| @@ -392,6 +392,37 @@ take effect on menu items until the menu bar is updated again." | |||
| 392 | ;; the Deskbar will not, so kill ourself here. | 392 | ;; the Deskbar will not, so kill ourself here. |
| 393 | (unless cancel-shutdown (kill-emacs)))) | 393 | (unless cancel-shutdown (kill-emacs)))) |
| 394 | 394 | ||
| 395 | |||
| 396 | ;;;; Cursors. | ||
| 397 | |||
| 398 | ;; We use the same interface as X, but the cursor numbers are | ||
| 399 | ;; different, and there are also less cursors. | ||
| 400 | |||
| 401 | (defconst x-pointer-X-cursor 5) ; B_CURSOR_ID_CROSS_HAIR | ||
| 402 | (defconst x-pointer-arrow 1) ; B_CURSOR_ID_SYSTEM_DEFAULT | ||
| 403 | (defconst x-pointer-bottom-left-corner 22) ; B_CURSOR_ID_RESIZE_SOUTH_WEST | ||
| 404 | (defconst x-pointer-bottom-right-corner 21) ; B_CURSOR_ID_RESIZE_SOUTH_EAST | ||
| 405 | (defconst x-pointer-bottom-side 17) ; B_CURSOR_ID_RESIZE_SOUTH | ||
| 406 | (defconst x-pointer-clock 14) ; B_CURSOR_ID_PROGRESS | ||
| 407 | (defconst x-pointer-cross 5) ; B_CURSOR_ID_CROSS_HAIR | ||
| 408 | (defconst x-pointer-cross-reverse 5) ; B_CURSOR_ID_CROSS_HAIR | ||
| 409 | (defconst x-pointer-crosshair 5) ; B_CURSOR_ID_CROSS_HAIR | ||
| 410 | (defconst x-pointer-diamond-cross 5) ; B_CURSOR_ID_CROSS_HAIR | ||
| 411 | (defconst x-pointer-hand1 7) ; B_CURSOR_ID_GRAB | ||
| 412 | (defconst x-pointer-hand2 8) ; B_CURSOR_ID_GRABBING | ||
| 413 | (defconst x-pointer-left-side 18) ; B_CURSOR_ID_RESIZE_WEST | ||
| 414 | (defconst x-pointer-right-side 16) ; B_CURSOR_ID_RESIZE_EAST | ||
| 415 | (defconst x-pointer-sb-down-arrow 17) ; B_CURSOR_ID_RESIZE_SOUTH | ||
| 416 | (defconst x-pointer-sb-left-arrow 18) ; B_CURSOR_ID_RESIZE_WEST | ||
| 417 | (defconst x-pointer-sb-right-arrow 16) ; B_CURSOR_ID_RESIZE_EAST | ||
| 418 | (defconst x-pointer-sb-up-arrow 16) ; B_CURSOR_ID_RESIZE_NORTH | ||
| 419 | (defconst x-pointer-target 5) ; B_CURSOR_ID_CROSS_HAIR | ||
| 420 | (defconst x-pointer-top-left-corner 20) ; B_CURSOR_ID_RESIZE_NORTH_WEST | ||
| 421 | (defconst x-pointer-top-right-corner 19) ; B_CURSOR_ID_RESIZE_NORTH_EAST | ||
| 422 | (defconst x-pointer-top-side 16) ; B_CURSOR_ID_RESIZE_NORTH | ||
| 423 | (defconst x-pointer-watch 14) ; B_CURSOR_ID_PROGRESS | ||
| 424 | (defconst x-pointer-invisible 12) ; B_CURSOR_ID_NO_CURSOR | ||
| 425 | |||
| 395 | (provide 'haiku-win) | 426 | (provide 'haiku-win) |
| 396 | (provide 'term/haiku-win) | 427 | (provide 'term/haiku-win) |
| 397 | 428 | ||
diff --git a/src/haiku_support.cc b/src/haiku_support.cc index 6caf8049d1f..39e8daa8269 100644 --- a/src/haiku_support.cc +++ b/src/haiku_support.cc | |||
| @@ -3392,7 +3392,7 @@ BCursor_create_modeline (void) | |||
| 3392 | } | 3392 | } |
| 3393 | 3393 | ||
| 3394 | void * | 3394 | void * |
| 3395 | BCursor_from_id (enum haiku_cursor cursor) | 3395 | BCursor_from_id (int cursor) |
| 3396 | { | 3396 | { |
| 3397 | return new BCursor ((enum BCursorID) cursor); | 3397 | return new BCursor ((enum BCursorID) cursor); |
| 3398 | } | 3398 | } |
diff --git a/src/haiku_support.h b/src/haiku_support.h index 416c717546f..3ea6e838d7f 100644 --- a/src/haiku_support.h +++ b/src/haiku_support.h | |||
| @@ -557,7 +557,7 @@ extern void be_get_screen_dimensions (int *, int *); | |||
| 557 | 557 | ||
| 558 | /* Functions for creating and freeing cursors. */ | 558 | /* Functions for creating and freeing cursors. */ |
| 559 | extern void *BCursor_create_default (void); | 559 | extern void *BCursor_create_default (void); |
| 560 | extern void *BCursor_from_id (enum haiku_cursor); | 560 | extern void *BCursor_from_id (int); |
| 561 | extern void *BCursor_create_modeline (void); | 561 | extern void *BCursor_create_modeline (void); |
| 562 | extern void *BCursor_create_i_beam (void); | 562 | extern void *BCursor_create_i_beam (void); |
| 563 | extern void *BCursor_create_progress_cursor (void); | 563 | extern void *BCursor_create_progress_cursor (void); |
diff --git a/src/haikufns.c b/src/haikufns.c index 8596317de25..0abb4188955 100644 --- a/src/haikufns.c +++ b/src/haikufns.c | |||
| @@ -763,6 +763,8 @@ haiku_create_frame (Lisp_Object parms) | |||
| 763 | "foreground", "Foreground", RES_TYPE_STRING); | 763 | "foreground", "Foreground", RES_TYPE_STRING); |
| 764 | gui_default_parameter (f, parms, Qbackground_color, build_string ("white"), | 764 | gui_default_parameter (f, parms, Qbackground_color, build_string ("white"), |
| 765 | "background", "Background", RES_TYPE_STRING); | 765 | "background", "Background", RES_TYPE_STRING); |
| 766 | gui_default_parameter (f, parms, Qmouse_color, build_string ("black"), | ||
| 767 | "pointerColor", "Foreground", RES_TYPE_STRING); | ||
| 766 | gui_default_parameter (f, parms, Qline_spacing, Qnil, | 768 | gui_default_parameter (f, parms, Qline_spacing, Qnil, |
| 767 | "lineSpacing", "LineSpacing", RES_TYPE_NUMBER); | 769 | "lineSpacing", "LineSpacing", RES_TYPE_NUMBER); |
| 768 | gui_default_parameter (f, parms, Qleft_fringe, Qnil, | 770 | gui_default_parameter (f, parms, Qleft_fringe, Qnil, |
| @@ -820,33 +822,11 @@ haiku_create_frame (Lisp_Object parms) | |||
| 820 | RES_TYPE_BOOLEAN); | 822 | RES_TYPE_BOOLEAN); |
| 821 | f->no_split = minibuffer_only || (!EQ (tem, Qunbound) && !NILP (tem)); | 823 | f->no_split = minibuffer_only || (!EQ (tem, Qunbound) && !NILP (tem)); |
| 822 | 824 | ||
| 823 | block_input (); | ||
| 824 | #define ASSIGN_CURSOR(cursor) \ | ||
| 825 | (FRAME_OUTPUT_DATA (f)->cursor = dpyinfo->cursor) | ||
| 826 | |||
| 827 | ASSIGN_CURSOR (text_cursor); | ||
| 828 | ASSIGN_CURSOR (nontext_cursor); | ||
| 829 | ASSIGN_CURSOR (modeline_cursor); | ||
| 830 | ASSIGN_CURSOR (hand_cursor); | ||
| 831 | ASSIGN_CURSOR (hourglass_cursor); | ||
| 832 | ASSIGN_CURSOR (horizontal_drag_cursor); | ||
| 833 | ASSIGN_CURSOR (vertical_drag_cursor); | ||
| 834 | ASSIGN_CURSOR (left_edge_cursor); | ||
| 835 | ASSIGN_CURSOR (top_left_corner_cursor); | ||
| 836 | ASSIGN_CURSOR (top_edge_cursor); | ||
| 837 | ASSIGN_CURSOR (top_right_corner_cursor); | ||
| 838 | ASSIGN_CURSOR (right_edge_cursor); | ||
| 839 | ASSIGN_CURSOR (bottom_right_corner_cursor); | ||
| 840 | ASSIGN_CURSOR (bottom_edge_cursor); | ||
| 841 | ASSIGN_CURSOR (bottom_left_corner_cursor); | ||
| 842 | ASSIGN_CURSOR (no_cursor); | ||
| 843 | |||
| 844 | FRAME_OUTPUT_DATA (f)->current_cursor = dpyinfo->text_cursor; | ||
| 845 | #undef ASSIGN_CURSOR | ||
| 846 | |||
| 847 | f->terminal->reference_count++; | 825 | f->terminal->reference_count++; |
| 848 | 826 | ||
| 849 | FRAME_OUTPUT_DATA (f)->window = BWindow_new (&FRAME_OUTPUT_DATA (f)->view); | 827 | block_input (); |
| 828 | FRAME_OUTPUT_DATA (f)->window | ||
| 829 | = BWindow_new (&FRAME_OUTPUT_DATA (f)->view); | ||
| 850 | unblock_input (); | 830 | unblock_input (); |
| 851 | 831 | ||
| 852 | if (!FRAME_OUTPUT_DATA (f)->window) | 832 | if (!FRAME_OUTPUT_DATA (f)->window) |
| @@ -1567,6 +1547,7 @@ haiku_free_frame_resources (struct frame *f) | |||
| 1567 | dpyinfo = FRAME_DISPLAY_INFO (f); | 1547 | dpyinfo = FRAME_DISPLAY_INFO (f); |
| 1568 | 1548 | ||
| 1569 | free_frame_faces (f); | 1549 | free_frame_faces (f); |
| 1550 | haiku_free_custom_cursors (f); | ||
| 1570 | 1551 | ||
| 1571 | /* Free scroll bars */ | 1552 | /* Free scroll bars */ |
| 1572 | for (bar = FRAME_SCROLL_BARS (f); !NILP (bar); bar = b->next) | 1553 | for (bar = FRAME_SCROLL_BARS (f); !NILP (bar); bar = b->next) |
| @@ -1792,6 +1773,133 @@ haiku_set_sticky (struct frame *f, Lisp_Object new_value, | |||
| 1792 | unblock_input (); | 1773 | unblock_input (); |
| 1793 | } | 1774 | } |
| 1794 | 1775 | ||
| 1776 | struct user_cursor_info | ||
| 1777 | { | ||
| 1778 | /* A pointer to the Lisp_Object describing the cursor. */ | ||
| 1779 | Lisp_Object *lisp_cursor; | ||
| 1780 | |||
| 1781 | /* The offset of the cursor in the `struct haiku_output' of each | ||
| 1782 | frame. */ | ||
| 1783 | ptrdiff_t output_offset; | ||
| 1784 | |||
| 1785 | /* The offset of the default value of the cursor in the display | ||
| 1786 | info structure. */ | ||
| 1787 | ptrdiff_t default_offset; | ||
| 1788 | }; | ||
| 1789 | |||
| 1790 | #define INIT_USER_CURSOR(lisp, cursor) \ | ||
| 1791 | { (lisp), offsetof (struct haiku_output, cursor), \ | ||
| 1792 | offsetof (struct haiku_display_info, cursor) } | ||
| 1793 | |||
| 1794 | struct user_cursor_info custom_cursors[] = | ||
| 1795 | { | ||
| 1796 | INIT_USER_CURSOR (&Vx_pointer_shape, text_cursor), | ||
| 1797 | INIT_USER_CURSOR (NULL, nontext_cursor), | ||
| 1798 | INIT_USER_CURSOR (NULL, modeline_cursor), | ||
| 1799 | INIT_USER_CURSOR (&Vx_sensitive_text_pointer_shape, hand_cursor), | ||
| 1800 | INIT_USER_CURSOR (&Vx_hourglass_pointer_shape, hourglass_cursor), | ||
| 1801 | INIT_USER_CURSOR (NULL, horizontal_drag_cursor), | ||
| 1802 | INIT_USER_CURSOR (NULL, vertical_drag_cursor), | ||
| 1803 | INIT_USER_CURSOR (NULL, left_edge_cursor), | ||
| 1804 | INIT_USER_CURSOR (NULL, top_left_corner_cursor), | ||
| 1805 | INIT_USER_CURSOR (NULL, top_edge_cursor), | ||
| 1806 | INIT_USER_CURSOR (NULL, top_right_corner_cursor), | ||
| 1807 | INIT_USER_CURSOR (NULL, right_edge_cursor), | ||
| 1808 | INIT_USER_CURSOR (NULL, bottom_right_corner_cursor), | ||
| 1809 | INIT_USER_CURSOR (NULL, bottom_edge_cursor), | ||
| 1810 | INIT_USER_CURSOR (NULL, bottom_left_corner_cursor), | ||
| 1811 | INIT_USER_CURSOR (NULL, no_cursor), | ||
| 1812 | }; | ||
| 1813 | |||
| 1814 | /* Free all cursors not default in F. */ | ||
| 1815 | void | ||
| 1816 | haiku_free_custom_cursors (struct frame *f) | ||
| 1817 | { | ||
| 1818 | struct user_cursor_info *cursor; | ||
| 1819 | struct haiku_output *output; | ||
| 1820 | struct haiku_display_info *dpyinfo; | ||
| 1821 | Emacs_Cursor *frame_cursor; | ||
| 1822 | Emacs_Cursor *display_cursor; | ||
| 1823 | int i; | ||
| 1824 | |||
| 1825 | output = FRAME_OUTPUT_DATA (f); | ||
| 1826 | dpyinfo = FRAME_DISPLAY_INFO (f); | ||
| 1827 | |||
| 1828 | for (i = 0; i < ARRAYELTS (custom_cursors); ++i) | ||
| 1829 | { | ||
| 1830 | cursor = &custom_cursors[i]; | ||
| 1831 | frame_cursor = (Emacs_Cursor *) ((char *) output | ||
| 1832 | + cursor->output_offset); | ||
| 1833 | display_cursor = (Emacs_Cursor *) ((char *) dpyinfo | ||
| 1834 | + cursor->default_offset); | ||
| 1835 | |||
| 1836 | if (*frame_cursor != *display_cursor | ||
| 1837 | && *frame_cursor) | ||
| 1838 | { | ||
| 1839 | BCursor_delete (*frame_cursor); | ||
| 1840 | |||
| 1841 | if (output->current_cursor == *frame_cursor) | ||
| 1842 | output->current_cursor = *display_cursor; | ||
| 1843 | } | ||
| 1844 | |||
| 1845 | *frame_cursor = *display_cursor; | ||
| 1846 | } | ||
| 1847 | } | ||
| 1848 | |||
| 1849 | static void | ||
| 1850 | haiku_set_mouse_color (struct frame *f, Lisp_Object arg, Lisp_Object oldval) | ||
| 1851 | { | ||
| 1852 | struct haiku_output *output; | ||
| 1853 | Emacs_Cursor *frame_cursor, old; | ||
| 1854 | int i, n; | ||
| 1855 | |||
| 1856 | output = FRAME_OUTPUT_DATA (f); | ||
| 1857 | |||
| 1858 | /* This will also reset all the cursors back to their default | ||
| 1859 | values. */ | ||
| 1860 | haiku_free_custom_cursors (f); | ||
| 1861 | |||
| 1862 | for (i = 0; i < ARRAYELTS (custom_cursors); ++i) | ||
| 1863 | { | ||
| 1864 | frame_cursor = (Emacs_Cursor *) ((char *) output | ||
| 1865 | + custom_cursors[i].output_offset); | ||
| 1866 | old = *frame_cursor; | ||
| 1867 | |||
| 1868 | if (custom_cursors[i].lisp_cursor | ||
| 1869 | && FIXNUMP (*custom_cursors[i].lisp_cursor)) | ||
| 1870 | { | ||
| 1871 | if (!RANGED_FIXNUMP (0, *custom_cursors[i].lisp_cursor, | ||
| 1872 | 28)) /* 28 is the largest Haiku cursor ID. */ | ||
| 1873 | signal_error ("Invalid cursor", | ||
| 1874 | *custom_cursors[i].lisp_cursor); | ||
| 1875 | |||
| 1876 | n = XFIXNUM (*custom_cursors[i].lisp_cursor); | ||
| 1877 | |||
| 1878 | /* Create and set the custom cursor. */ | ||
| 1879 | block_input (); | ||
| 1880 | *frame_cursor = BCursor_from_id (n); | ||
| 1881 | unblock_input (); | ||
| 1882 | |||
| 1883 | /* This function can be called before the frame's window is | ||
| 1884 | created. */ | ||
| 1885 | if (FRAME_HAIKU_WINDOW (f)) | ||
| 1886 | { | ||
| 1887 | if (output->current_cursor == old) | ||
| 1888 | { | ||
| 1889 | output->current_cursor = *frame_cursor; | ||
| 1890 | |||
| 1891 | block_input (); | ||
| 1892 | BView_set_view_cursor (FRAME_HAIKU_VIEW (f), | ||
| 1893 | *frame_cursor); | ||
| 1894 | unblock_input (); | ||
| 1895 | } | ||
| 1896 | } | ||
| 1897 | } | ||
| 1898 | } | ||
| 1899 | |||
| 1900 | update_face_from_frame_parameter (f, Qmouse_color, arg); | ||
| 1901 | } | ||
| 1902 | |||
| 1795 | 1903 | ||
| 1796 | 1904 | ||
| 1797 | DEFUN ("haiku-set-mouse-absolute-pixel-position", | 1905 | DEFUN ("haiku-set-mouse-absolute-pixel-position", |
| @@ -2701,7 +2809,7 @@ frame_parm_handler haiku_frame_parm_handlers[] = | |||
| 2701 | gui_set_right_divider_width, | 2809 | gui_set_right_divider_width, |
| 2702 | gui_set_bottom_divider_width, | 2810 | gui_set_bottom_divider_width, |
| 2703 | haiku_set_menu_bar_lines, | 2811 | haiku_set_menu_bar_lines, |
| 2704 | NULL, /* set mouse color */ | 2812 | haiku_set_mouse_color, |
| 2705 | haiku_explicitly_set_name, | 2813 | haiku_explicitly_set_name, |
| 2706 | gui_set_scroll_bar_width, | 2814 | gui_set_scroll_bar_width, |
| 2707 | gui_set_scroll_bar_height, | 2815 | gui_set_scroll_bar_height, |
| @@ -2805,6 +2913,19 @@ syms_of_haikufns (void) | |||
| 2805 | doc: /* SKIP: real doc in xfns.c. */); | 2913 | doc: /* SKIP: real doc in xfns.c. */); |
| 2806 | Vx_cursor_fore_pixel = Qnil; | 2914 | Vx_cursor_fore_pixel = Qnil; |
| 2807 | 2915 | ||
| 2916 | DEFVAR_LISP ("x-pointer-shape", Vx_pointer_shape, | ||
| 2917 | doc: /* SKIP: real doc in xfns.c. */); | ||
| 2918 | Vx_pointer_shape = Qnil; | ||
| 2919 | |||
| 2920 | DEFVAR_LISP ("x-hourglass-pointer-shape", Vx_hourglass_pointer_shape, | ||
| 2921 | doc: /* SKIP: real doc in xfns.c. */); | ||
| 2922 | Vx_hourglass_pointer_shape = Qnil; | ||
| 2923 | |||
| 2924 | DEFVAR_LISP ("x-sensitive-text-pointer-shape", | ||
| 2925 | Vx_sensitive_text_pointer_shape, | ||
| 2926 | doc: /* SKIP: real doc in xfns.c. */); | ||
| 2927 | Vx_sensitive_text_pointer_shape = Qnil; | ||
| 2928 | |||
| 2808 | DEFVAR_LISP ("haiku-allowed-ui-colors", Vhaiku_allowed_ui_colors, | 2929 | DEFVAR_LISP ("haiku-allowed-ui-colors", Vhaiku_allowed_ui_colors, |
| 2809 | doc: /* Vector of UI colors that Emacs can look up from the system. | 2930 | doc: /* Vector of UI colors that Emacs can look up from the system. |
| 2810 | If this is set up incorrectly, Emacs can crash when encoutering an | 2931 | If this is set up incorrectly, Emacs can crash when encoutering an |
diff --git a/src/haikuterm.h b/src/haikuterm.h index cc032d03892..4b124a6ba30 100644 --- a/src/haikuterm.h +++ b/src/haikuterm.h | |||
| @@ -304,6 +304,7 @@ extern void haiku_set_cursor_type (struct frame *, Lisp_Object, Lisp_Object); | |||
| 304 | extern void haiku_set_internal_border_width (struct frame *, Lisp_Object, Lisp_Object); | 304 | extern void haiku_set_internal_border_width (struct frame *, Lisp_Object, Lisp_Object); |
| 305 | extern void haiku_change_tab_bar_height (struct frame *, int); | 305 | extern void haiku_change_tab_bar_height (struct frame *, int); |
| 306 | extern void haiku_change_tool_bar_height (struct frame *, int); | 306 | extern void haiku_change_tool_bar_height (struct frame *, int); |
| 307 | extern void haiku_free_custom_cursors (struct frame *); | ||
| 307 | 308 | ||
| 308 | extern void haiku_query_color (uint32_t, Emacs_Color *); | 309 | extern void haiku_query_color (uint32_t, Emacs_Color *); |
| 309 | 310 | ||