aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPo Lu2022-05-13 05:34:46 +0000
committerPo Lu2022-05-13 05:36:02 +0000
commit1bf3afba23799615aecefa7cbfd63fa548187bc1 (patch)
tree9e331ae34a5344b6d0056e7e4214f7555179c5db /src
parent78996a113e3b70305afbec1e4220afe27ac8da92 (diff)
downloademacs-1bf3afba23799615aecefa7cbfd63fa548187bc1.tar.gz
emacs-1bf3afba23799615aecefa7cbfd63fa548187bc1.zip
Add more cursor bitmaps on Haiku
* src/haikufns.c (cursor_bitmaps, cursor_bitmaps_for_id): Register crosshair and xterm cursors. * src/haikugui.h (cross_ptr_bits, cross_ptrmask_bits) (ibeam_ptr_bits, ibeam_ptrmask_bits): New cursor bitmaps.
Diffstat (limited to 'src')
-rw-r--r--src/haikufns.c88
-rw-r--r--src/haikugui.h49
2 files changed, 93 insertions, 44 deletions
diff --git a/src/haikufns.c b/src/haikufns.c
index e6bf60e1d90..b628518c26f 100644
--- a/src/haikufns.c
+++ b/src/haikufns.c
@@ -1836,56 +1836,56 @@ struct user_cursor_info custom_cursors[] =
1836 1836
1837struct user_cursor_bitmap_info cursor_bitmaps[] = 1837struct user_cursor_bitmap_info cursor_bitmaps[] =
1838 { 1838 {
1839 { NULL, NULL, 0, 0, 0, 0 }, /* text_cursor */ 1839 { ibeam_ptr_bits, ibeam_ptrmask_bits, 15, 15, 7, 7 }, /* text_cursor */
1840 { left_ptr_bits, left_ptrmsk_bits, 16, 16, 3, 1 }, /* nontext_cursor */ 1840 { left_ptr_bits, left_ptrmsk_bits, 16, 16, 3, 1 }, /* nontext_cursor */
1841 { left_ptr_bits, left_ptrmsk_bits, 16, 16, 3, 1 }, /* modeline_cursor */ 1841 { left_ptr_bits, left_ptrmsk_bits, 16, 16, 3, 1 }, /* modeline_cursor */
1842 { NULL, NULL, 0, 0, 0, 0 }, /* hand_cursor */ 1842 { NULL, NULL, 0, 0, 0, 0 }, /* hand_cursor */
1843 { NULL, NULL, 0, 0, 0, 0 }, /* hourglass_cursor */ 1843 { NULL, NULL, 0, 0, 0, 0 }, /* hourglass_cursor */
1844 { NULL, NULL, 0, 0, 0, 0 }, /* horizontal_drag_cursor */ 1844 { NULL, NULL, 0, 0, 0, 0 }, /* horizontal_drag_cursor */
1845 { NULL, NULL, 0, 0, 0, 0 }, /* vertical_drag_cursor */ 1845 { NULL, NULL, 0, 0, 0, 0 }, /* vertical_drag_cursor */
1846 { NULL, NULL, 0, 0, 0, 0 }, /* left_edge_cursor */ 1846 { NULL, NULL, 0, 0, 0, 0 }, /* left_edge_cursor */
1847 { NULL, NULL, 0, 0, 0, 0 }, /* top_left_corner_cursor */ 1847 { NULL, NULL, 0, 0, 0, 0 }, /* top_left_corner_cursor */
1848 { NULL, NULL, 0, 0, 0, 0 }, /* top_edge_cursor */ 1848 { NULL, NULL, 0, 0, 0, 0 }, /* top_edge_cursor */
1849 { NULL, NULL, 0, 0, 0, 0 }, /* top_right_corner_cursor */ 1849 { NULL, NULL, 0, 0, 0, 0 }, /* top_right_corner_cursor */
1850 { NULL, NULL, 0, 0, 0, 0 }, /* right_edge_cursor */ 1850 { NULL, NULL, 0, 0, 0, 0 }, /* right_edge_cursor */
1851 { NULL, NULL, 0, 0, 0, 0 }, /* bottom_right_corner_cursor */ 1851 { NULL, NULL, 0, 0, 0, 0 }, /* bottom_right_corner_cursor */
1852 { NULL, NULL, 0, 0, 0, 0 }, /* bottom_edge_cursor */ 1852 { NULL, NULL, 0, 0, 0, 0 }, /* bottom_edge_cursor */
1853 { NULL, NULL, 0, 0, 0, 0 }, /* bottom_left_corner_cursor */ 1853 { NULL, NULL, 0, 0, 0, 0 }, /* bottom_left_corner_cursor */
1854 { NULL, NULL, 0, 0, 0, 0 }, /* no_cursor */ 1854 { NULL, NULL, 0, 0, 0, 0 }, /* no_cursor */
1855 }; 1855 };
1856 1856
1857/* Array of cursor bitmaps for each system cursor ID. This is used to 1857/* Array of cursor bitmaps for each system cursor ID. This is used to
1858 color in user-specified cursors. */ 1858 color in user-specified cursors. */
1859struct user_cursor_bitmap_info cursor_bitmaps_for_id[28] = 1859struct user_cursor_bitmap_info cursor_bitmaps_for_id[28] =
1860 { 1860 {
1861 { NULL, NULL, 0, 0, 0, 0 }, 1861 { NULL, NULL, 0, 0, 0, 0 },
1862 { left_ptr_bits, left_ptrmsk_bits, 16, 16, 3, 1 }, 1862 { left_ptr_bits, left_ptrmsk_bits, 16, 16, 3, 1 },
1863 { NULL, NULL, 0, 0, 0, 0 }, 1863 { ibeam_ptr_bits, ibeam_ptrmask_bits, 15, 15, 7, 7 },
1864 { NULL, NULL, 0, 0, 0, 0 }, 1864 { NULL, NULL, 0, 0, 0, 0 },
1865 { NULL, NULL, 0, 0, 0, 0 }, 1865 { NULL, NULL, 0, 0, 0, 0 },
1866 { NULL, NULL, 0, 0, 0, 0 }, 1866 { cross_ptr_bits, cross_ptrmask_bits, 30, 30, 15, 15 },
1867 { NULL, NULL, 0, 0, 0, 0 }, 1867 { NULL, NULL, 0, 0, 0, 0 },
1868 { NULL, NULL, 0, 0, 0, 0 }, 1868 { NULL, NULL, 0, 0, 0, 0 },
1869 { NULL, NULL, 0, 0, 0, 0 }, 1869 { NULL, NULL, 0, 0, 0, 0 },
1870 { NULL, NULL, 0, 0, 0, 0 }, 1870 { NULL, NULL, 0, 0, 0, 0 },
1871 { NULL, NULL, 0, 0, 0, 0 }, 1871 { NULL, NULL, 0, 0, 0, 0 },
1872 { NULL, NULL, 0, 0, 0, 0 }, 1872 { NULL, NULL, 0, 0, 0, 0 },
1873 { NULL, NULL, 0, 0, 0, 0 }, 1873 { NULL, NULL, 0, 0, 0, 0 },
1874 { NULL, NULL, 0, 0, 0, 0 }, 1874 { NULL, NULL, 0, 0, 0, 0 },
1875 { NULL, NULL, 0, 0, 0, 0 }, 1875 { NULL, NULL, 0, 0, 0, 0 },
1876 { NULL, NULL, 0, 0, 0, 0 }, 1876 { NULL, NULL, 0, 0, 0, 0 },
1877 { NULL, NULL, 0, 0, 0, 0 }, 1877 { NULL, NULL, 0, 0, 0, 0 },
1878 { NULL, NULL, 0, 0, 0, 0 }, 1878 { NULL, NULL, 0, 0, 0, 0 },
1879 { NULL, NULL, 0, 0, 0, 0 }, 1879 { NULL, NULL, 0, 0, 0, 0 },
1880 { NULL, NULL, 0, 0, 0, 0 }, 1880 { NULL, NULL, 0, 0, 0, 0 },
1881 { NULL, NULL, 0, 0, 0, 0 }, 1881 { NULL, NULL, 0, 0, 0, 0 },
1882 { NULL, NULL, 0, 0, 0, 0 }, 1882 { NULL, NULL, 0, 0, 0, 0 },
1883 { NULL, NULL, 0, 0, 0, 0 }, 1883 { NULL, NULL, 0, 0, 0, 0 },
1884 { NULL, NULL, 0, 0, 0, 0 }, 1884 { NULL, NULL, 0, 0, 0, 0 },
1885 { NULL, NULL, 0, 0, 0, 0 }, 1885 { NULL, NULL, 0, 0, 0, 0 },
1886 { NULL, NULL, 0, 0, 0, 0 }, 1886 { NULL, NULL, 0, 0, 0, 0 },
1887 { NULL, NULL, 0, 0, 0, 0 }, 1887 { NULL, NULL, 0, 0, 0, 0 },
1888 { NULL, NULL, 0, 0, 0, 0 }, 1888 { NULL, NULL, 0, 0, 0, 0 },
1889 }; 1889 };
1890 1890
1891static void * 1891static void *
diff --git a/src/haikugui.h b/src/haikugui.h
index a6cf3a4e6ce..f197e718c08 100644
--- a/src/haikugui.h
+++ b/src/haikugui.h
@@ -95,4 +95,53 @@ typedef haiku Drawable;
95typedef haiku Window; 95typedef haiku Window;
96typedef int Display; 96typedef int Display;
97 97
98/* Cursor bitmaps. These are only used to create colored cursors when
99 the user specifies a mouse color. */
100
101MAYBE_UNUSED static unsigned char cross_ptr_bits[] =
102 {
103 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
104 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80,
105 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
106 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,
107 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
108 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x07, 0xf0, 0x1f, 0x00, 0x00,
109 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
110 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,
111 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00,
112 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80,
113 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
114 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
115 };
116
117MAYBE_UNUSED static unsigned char cross_ptrmask_bits[] =
118 {
119 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xc0, 0x01,
120 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0,
121 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00,
122 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00,
123 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
124 0x00, 0xfc, 0x07, 0xf0, 0x1f, 0xfe, 0x0f, 0xf8, 0x3f, 0xfc, 0x07,
125 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
126 0x80, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00,
127 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01,
128 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0,
129 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
130 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
131 };
132
133MAYBE_UNUSED static unsigned char ibeam_ptr_bits[] =
134 {
135 0x00, 0x00, 0x00, 0x00, 0xfc, 0x1f, 0xc0, 0x01, 0xc0, 0x01, 0xc0,
136 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01,
137 0xc0, 0x01, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00
138 };
139
140MAYBE_UNUSED static unsigned char ibeam_ptrmask_bits[] =
141 {
142 0x00, 0x00, 0xfc, 0x1f, 0xfe, 0x3f, 0xfc, 0x1f, 0xe0, 0x03, 0xe0,
143 0x03, 0xe0, 0x03, 0xe0, 0x03, 0xe0, 0x03, 0xe0, 0x03, 0xe0, 0x03,
144 0xfc, 0x1f, 0xfe, 0x3f, 0xfc, 0x1f, 0x00, 0x00
145 };
146
98#endif /* _HAIKU_GUI_H_ */ 147#endif /* _HAIKU_GUI_H_ */