]> git.eshelyaron.com Git - emacs.git/commitdiff
Add more cursor bitmaps on Haiku
authorPo Lu <luangruo@yahoo.com>
Fri, 13 May 2022 05:34:46 +0000 (05:34 +0000)
committerPo Lu <luangruo@yahoo.com>
Fri, 13 May 2022 05:36:02 +0000 (05:36 +0000)
* 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.

src/haikufns.c
src/haikugui.h

index e6bf60e1d90415f9276252b94f1e6fa8a4db0ab9..b628518c26f450590ee32ebf6e5b54e0deb8dc97 100644 (file)
@@ -1836,56 +1836,56 @@ struct user_cursor_info custom_cursors[] =
 
 struct user_cursor_bitmap_info cursor_bitmaps[] =
   {
-    { NULL, NULL, 0, 0, 0, 0 },                                /* text_cursor */
-    { left_ptr_bits, left_ptrmsk_bits, 16, 16, 3, 1 }, /* nontext_cursor */
-    { left_ptr_bits, left_ptrmsk_bits, 16, 16, 3, 1 }, /* modeline_cursor */
-    { NULL, NULL, 0, 0, 0, 0 },                                /* hand_cursor */
-    { NULL, NULL, 0, 0, 0, 0 },                                /* hourglass_cursor */
-    { NULL, NULL, 0, 0, 0, 0 },                                /* horizontal_drag_cursor */
-    { NULL, NULL, 0, 0, 0, 0 },                                /* vertical_drag_cursor */
-    { NULL, NULL, 0, 0, 0, 0 },                                /* left_edge_cursor */
-    { NULL, NULL, 0, 0, 0, 0 },                                /* top_left_corner_cursor */
-    { NULL, NULL, 0, 0, 0, 0 },                                /* top_edge_cursor */
-    { NULL, NULL, 0, 0, 0, 0 },                                /* top_right_corner_cursor */
-    { NULL, NULL, 0, 0, 0, 0 },                                /* right_edge_cursor */
-    { NULL, NULL, 0, 0, 0, 0 },                                /* bottom_right_corner_cursor */
-    { NULL, NULL, 0, 0, 0, 0 },                                /* bottom_edge_cursor */
-    { NULL, NULL, 0, 0, 0, 0 },                                /* bottom_left_corner_cursor */
-    { NULL, NULL, 0, 0, 0, 0 },                                /* no_cursor */
+    { ibeam_ptr_bits, ibeam_ptrmask_bits, 15, 15, 7, 7 },      /* text_cursor */
+    { left_ptr_bits, left_ptrmsk_bits, 16, 16, 3, 1 },         /* nontext_cursor */
+    { left_ptr_bits, left_ptrmsk_bits, 16, 16, 3, 1 },         /* modeline_cursor */
+    { NULL, NULL, 0, 0, 0, 0 },                                        /* hand_cursor */
+    { NULL, NULL, 0, 0, 0, 0 },                                        /* hourglass_cursor */
+    { NULL, NULL, 0, 0, 0, 0 },                                        /* horizontal_drag_cursor */
+    { NULL, NULL, 0, 0, 0, 0 },                                        /* vertical_drag_cursor */
+    { NULL, NULL, 0, 0, 0, 0 },                                        /* left_edge_cursor */
+    { NULL, NULL, 0, 0, 0, 0 },                                        /* top_left_corner_cursor */
+    { NULL, NULL, 0, 0, 0, 0 },                                        /* top_edge_cursor */
+    { NULL, NULL, 0, 0, 0, 0 },                                        /* top_right_corner_cursor */
+    { NULL, NULL, 0, 0, 0, 0 },                                        /* right_edge_cursor */
+    { NULL, NULL, 0, 0, 0, 0 },                                        /* bottom_right_corner_cursor */
+    { NULL, NULL, 0, 0, 0, 0 },                                        /* bottom_edge_cursor */
+    { NULL, NULL, 0, 0, 0, 0 },                                        /* bottom_left_corner_cursor */
+    { NULL, NULL, 0, 0, 0, 0 },                                        /* no_cursor */
   };
 
 /* Array of cursor bitmaps for each system cursor ID.  This is used to
    color in user-specified cursors.  */
 struct user_cursor_bitmap_info cursor_bitmaps_for_id[28] =
   {
-    { NULL, NULL, 0, 0, 0, 0                           },
-    { left_ptr_bits, left_ptrmsk_bits, 16, 16, 3, 1    },
-    { NULL, NULL, 0, 0, 0, 0                           },
-    { NULL, NULL, 0, 0, 0, 0                           },
-    { NULL, NULL, 0, 0, 0, 0                           },
-    { NULL, NULL, 0, 0, 0, 0                           },
-    { NULL, NULL, 0, 0, 0, 0                           },
-    { NULL, NULL, 0, 0, 0, 0                           },
-    { NULL, NULL, 0, 0, 0, 0                           },
-    { NULL, NULL, 0, 0, 0, 0                           },
-    { NULL, NULL, 0, 0, 0, 0                           },
-    { NULL, NULL, 0, 0, 0, 0                           },
-    { NULL, NULL, 0, 0, 0, 0                           },
-    { NULL, NULL, 0, 0, 0, 0                           },
-    { NULL, NULL, 0, 0, 0, 0                           },
-    { NULL, NULL, 0, 0, 0, 0                           },
-    { NULL, NULL, 0, 0, 0, 0                           },
-    { NULL, NULL, 0, 0, 0, 0                           },
-    { NULL, NULL, 0, 0, 0, 0                           },
-    { NULL, NULL, 0, 0, 0, 0                           },
-    { NULL, NULL, 0, 0, 0, 0                           },
-    { NULL, NULL, 0, 0, 0, 0                           },
-    { NULL, NULL, 0, 0, 0, 0                           },
-    { NULL, NULL, 0, 0, 0, 0                           },
-    { NULL, NULL, 0, 0, 0, 0                           },
-    { NULL, NULL, 0, 0, 0, 0                           },
-    { NULL, NULL, 0, 0, 0, 0                           },
-    { NULL, NULL, 0, 0, 0, 0                           },
+    { NULL, NULL, 0, 0, 0, 0                                   },
+    { left_ptr_bits, left_ptrmsk_bits, 16, 16, 3, 1            },
+    { ibeam_ptr_bits, ibeam_ptrmask_bits, 15, 15, 7, 7         },
+    { NULL, NULL, 0, 0, 0, 0                                   },
+    { NULL, NULL, 0, 0, 0, 0                                   },
+    { cross_ptr_bits, cross_ptrmask_bits, 30, 30, 15, 15       },
+    { NULL, NULL, 0, 0, 0, 0                                   },
+    { NULL, NULL, 0, 0, 0, 0                                   },
+    { NULL, NULL, 0, 0, 0, 0                                   },
+    { NULL, NULL, 0, 0, 0, 0                                   },
+    { NULL, NULL, 0, 0, 0, 0                                   },
+    { NULL, NULL, 0, 0, 0, 0                                   },
+    { NULL, NULL, 0, 0, 0, 0                                   },
+    { NULL, NULL, 0, 0, 0, 0                                   },
+    { NULL, NULL, 0, 0, 0, 0                                   },
+    { NULL, NULL, 0, 0, 0, 0                                   },
+    { NULL, NULL, 0, 0, 0, 0                                   },
+    { NULL, NULL, 0, 0, 0, 0                                   },
+    { NULL, NULL, 0, 0, 0, 0                                   },
+    { NULL, NULL, 0, 0, 0, 0                                   },
+    { NULL, NULL, 0, 0, 0, 0                                   },
+    { NULL, NULL, 0, 0, 0, 0                                   },
+    { NULL, NULL, 0, 0, 0, 0                                   },
+    { NULL, NULL, 0, 0, 0, 0                                   },
+    { NULL, NULL, 0, 0, 0, 0                                   },
+    { NULL, NULL, 0, 0, 0, 0                                   },
+    { NULL, NULL, 0, 0, 0, 0                                   },
+    { NULL, NULL, 0, 0, 0, 0                                   },
   };
 
 static void *
index a6cf3a4e6ce54bfcb3e86ab6a2a7854ab43f668e..f197e718c086f0cc7656ed5f52421518b5614629 100644 (file)
@@ -95,4 +95,53 @@ typedef haiku Drawable;
 typedef haiku Window;
 typedef int Display;
 
+/* Cursor bitmaps.  These are only used to create colored cursors when
+   the user specifies a mouse color.  */
+
+MAYBE_UNUSED static unsigned char cross_ptr_bits[] =
+  {
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
+    0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80,
+    0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+    0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x07, 0xf0, 0x1f, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,
+    0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00,
+    0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80,
+    0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+  };
+
+MAYBE_UNUSED static unsigned char cross_ptrmask_bits[] =
+  {
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xc0, 0x01,
+    0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0,
+    0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00,
+    0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00,
+    0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0xfc, 0x07, 0xf0, 0x1f, 0xfe, 0x0f, 0xf8, 0x3f, 0xfc, 0x07,
+    0xf0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x80, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00,
+    0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01,
+    0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0,
+    0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+  };
+
+MAYBE_UNUSED static unsigned char ibeam_ptr_bits[] =
+  {
+    0x00, 0x00, 0x00, 0x00, 0xfc, 0x1f, 0xc0, 0x01, 0xc0, 0x01, 0xc0,
+    0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01,
+    0xc0, 0x01, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00
+  };
+
+MAYBE_UNUSED static unsigned char ibeam_ptrmask_bits[] =
+  {
+    0x00, 0x00, 0xfc, 0x1f, 0xfe, 0x3f, 0xfc, 0x1f, 0xe0, 0x03, 0xe0,
+    0x03, 0xe0, 0x03, 0xe0, 0x03, 0xe0, 0x03, 0xe0, 0x03, 0xe0, 0x03,
+    0xfc, 0x1f, 0xfe, 0x3f, 0xfc, 0x1f, 0x00, 0x00
+  };
+
 #endif /* _HAIKU_GUI_H_ */