2 * $Source: /cvs/cvsroot/d2x/arch/ggi/mouse.c,v $
5 * $Date: 2001-10-24 09:25:05 $
9 * $Log: not supported by cvs2svn $
10 * Revision 1.4 2001/01/29 14:03:57 bradleyb
11 * Fixed build, minor fixes
35 #define MOUSE_MAX_BUTTONS 3
37 static struct mouseinfo {
38 struct mousebutton buttons[MOUSE_MAX_BUTTONS];
39 //added on 10/17/98 by Hans de Goede for mouse functionality
48 if (Mouse.x < Mouse.min_x)
49 Mouse.x = Mouse.min_x;
50 else if (Mouse.x > Mouse.max_x)
51 Mouse.x = Mouse.max_x;
52 if (Mouse.y < Mouse.min_y)
53 Mouse.y = Mouse.min_y;
54 else if (Mouse.y > Mouse.max_y)
55 Mouse.y = Mouse.max_y;
58 void mouse_handler_absolute(int x, int y)
60 Mouse.delta_x += (x - Mouse.x);
61 Mouse.delta_y += (y - Mouse.y);
67 void mouse_handler_relative(int x, int y)
76 void mouse_handler_button(int button, ubyte state)
78 if (!Mouse.buttons[button].pressed && state)
80 Mouse.buttons[button].time_went_down = timer_get_fixed_seconds();
81 Mouse.buttons[button].num_downs++;
83 else if (Mouse.buttons[button].pressed && !state)
85 Mouse.buttons[button].num_ups++;
88 Mouse.buttons[button].pressed = state;
91 void Mouse_close(void)
97 memset(&Mouse, 0, sizeof(Mouse));
101 mouse_set_limits( int x1, int y1, int x2, int y2 )
109 void mouse_flush() // clears all mice events...
117 //========================================================================
118 void mouse_get_pos( int *x, int *y)
125 void mouse_get_delta( int *dx, int *dy )
139 for (i = 0; i < MOUSE_MAX_BUTTONS; i++)
140 buttons |= (Mouse.buttons[i].pressed << i);
144 void mouse_set_pos( int x, int y)
150 void mouse_get_cyberman_pos( int *x, int *y )
154 // Returns how long this button has been down since last call.
155 fix mouse_button_down_time(int button)
157 if (Mouse.buttons[button].pressed)
158 return (timer_get_fixed_seconds() - Mouse.buttons[button].time_went_down);
163 // Returns how many times this button has went down since last call
164 int mouse_button_down_count(int button)
166 int count = Mouse.buttons[button].num_downs;
167 Mouse.buttons[button].num_downs = 0;
171 // Returns 1 if this button is currently down
172 int mouse_button_state(int button)
174 return Mouse.buttons[button].pressed;