From 2695ac3da10c807bb1a0d2a4d0e49941ff542a33 Mon Sep 17 00:00:00 2001
From: Andrew Hodgkinson <ahodgkin@gitlab.riscosopen.org>
Date: Tue, 2 Sep 1997 09:24:48 +0000
Subject: [PATCH] Couple of extra pointer types for autoscroll in the Hotlist

---
 c/Mouse | 164 ++++++++++++++++++++++++++++++++------------------------
 h/Mouse |  18 ++++---
 2 files changed, 105 insertions(+), 77 deletions(-)

diff --git a/c/Mouse b/c/Mouse
index 7b23cfc..bd9dfff 100644
--- a/c/Mouse
+++ b/c/Mouse
@@ -208,88 +208,114 @@ void mouse_set_pointer_shape(int shape)
 
     default: /* Catchall - use normal pointer, so no 'break' */
 
-    case Mouse_Shape_Normal:   _swix(OS_CLI,
-                                     _IN(0),
+    case Mouse_Shape_Normal:    _swix(OS_CLI,
+                                      _IN(0),
 
-                                     "Pointer 1");
+                                      "Pointer 1");
     break;
 
-    case Mouse_Shape_Link:     _swix(OS_SpriteOp,
-                                     _INR(0,7),
-
-                                     292,
-                                     sprite_block,
-                                     "ptr_link",
-                                     2,
-                                     fixed.ptrlnkactvx,
-                                     fixed.ptrlnkactvy,
-                                     0,
-                                     0);
+    case Mouse_Shape_Link:      _swix(OS_SpriteOp,
+                                      _INR(0,7),
+
+                                      292,
+                                      sprite_block,
+                                      "ptr_link",
+                                      2,
+                                      fixed.ptrlnkactvx,
+                                      fixed.ptrlnkactvy,
+                                      0,
+                                      0);
     break;
 
-    case Mouse_Shape_Map:      _swix(OS_SpriteOp,
-                                     _INR(0,7),
-
-                                     292,
-                                     sprite_block,
-                                     "ptr_map",
-                                     2,
-                                     fixed.ptrmapactvx,
-                                     fixed.ptrmapactvy,
-                                     0,
-                                     0);
+    case Mouse_Shape_Map:       _swix(OS_SpriteOp,
+                                      _INR(0,7),
+
+                                      292,
+                                      sprite_block,
+                                      "ptr_map",
+                                      2,
+                                      fixed.ptrmapactvx,
+                                      fixed.ptrmapactvy,
+                                      0,
+                                      0);
     break;
 
-    case Mouse_Shape_UD:       _swix(OS_SpriteOp,
-                                     _INR(0,7),
-
-                                     292,
-                                     sprite_block,
-                                     "ptr_ud",
-                                     2,
-                                     fixed.ptrmapactvx,
-                                     fixed.ptrmapactvy,
-                                     0,
-                                     0);
+    case Mouse_Shape_UD:        _swix(OS_SpriteOp,
+                                      _INR(0,7),
+
+                                      292,
+                                      sprite_block,
+                                      "ptr_ud",
+                                      2,
+                                      fixed.ptrmapactvx,
+                                      fixed.ptrmapactvy,
+                                      0,
+                                      0);
     break;
 
-    case Mouse_Shape_LR:       _swix(OS_SpriteOp,
-                                     _INR(0,7),
-
-                                     292,
-                                     sprite_block,
-                                     "ptr_lr",
-                                     2,
-                                     fixed.ptrmapactvx,
-                                     fixed.ptrmapactvy,
-                                     0,
-                                     0);
+    case Mouse_Shape_LR:        _swix(OS_SpriteOp,
+                                      _INR(0,7),
+
+                                      292,
+                                      sprite_block,
+                                      "ptr_lr",
+                                      2,
+                                      fixed.ptrmapactvx,
+                                      fixed.ptrmapactvy,
+                                      0,
+                                      0);
     break;
 
-    case Mouse_Shape_UDLR:     _swix(OS_SpriteOp,
-                                     _INR(0,7),
-
-                                     292,
-                                     sprite_block,
-                                     "ptr_udlr",
-                                     2,
-                                     fixed.ptrmapactvx,
-                                     fixed.ptrmapactvy,
-                                     0,
-                                     0);
+    case Mouse_Shape_UDLR:      _swix(OS_SpriteOp,
+                                      _INR(0,7),
+
+                                      292,
+                                      sprite_block,
+                                      "ptr_udlr",
+                                      2,
+                                      fixed.ptrmapactvx,
+                                      fixed.ptrmapactvy,
+                                      0,
+                                      0);
     break;
 
-    case Mouse_Shape_NoResize: _swix(OS_SpriteOp,
-                                     _INR(0,7),
-
-                                     292,
-                                     sprite_block,
-                                     "ptr_noresize",
-                                     2,
-                                     fixed.ptrmapactvx,
-                                     fixed.ptrmapactvy,
-                                     0,
-                                     0);
+    case Mouse_Shape_NoResize:  _swix(OS_SpriteOp,
+                                      _INR(0,7),
+
+                                      292,
+                                      sprite_block,
+                                      "ptr_noresize",
+                                      2,
+                                      fixed.ptrmapactvx,
+                                      fixed.ptrmapactvy,
+                                      0,
+                                      0);
+    break;
+
+    case Mouse_Shape_ToScroll:  _swix(OS_SpriteOp,
+                                      _INR(0,7),
+
+                                      292,
+                                      sprite_block,
+                                      "ptr_ud",
+                                      2,
+                                      fixed.ptrmapactvx,
+                                      fixed.ptrmapactvy,
+                                      0,
+                                      0);
+    break;
+
+    case Mouse_Shape_Scrolling: _swix(OS_SpriteOp,
+                                      _INR(0,7),
+
+                                      292,
+                                      sprite_block,
+                                      "ptr_udlr",
+                                      2,
+                                      fixed.ptrmapactvx,
+                                      fixed.ptrmapactvy,
+                                      0,
+                                      0);
     break;
   }
 }
diff --git a/h/Mouse b/h/Mouse
index 90871bd..cb84448 100644
--- a/h/Mouse
+++ b/h/Mouse
@@ -25,14 +25,16 @@
 
 /* Shape definitions */
 
-#define Mouse_Shape_Off      0
-#define Mouse_Shape_Normal   1
-#define Mouse_Shape_Link     2
-#define Mouse_Shape_Map      3
-#define Mouse_Shape_UD       4
-#define Mouse_Shape_LR       5
-#define Mouse_Shape_UDLR     6
-#define Mouse_Shape_NoResize 7
+#define Mouse_Shape_Off       0
+#define Mouse_Shape_Normal    1
+#define Mouse_Shape_Link      2
+#define Mouse_Shape_Map       3
+#define Mouse_Shape_UD        4
+#define Mouse_Shape_LR        5
+#define Mouse_Shape_UDLR      6
+#define Mouse_Shape_NoResize  7
+#define Mouse_Shape_ToScroll  8
+#define Mouse_Shape_Scrolling 9
 
 /* Function prototypes */
 
-- 
GitLab