Added trap mouse cursor toggle

This commit is contained in:
pagefault
2001-07-23 21:45:27 +00:00
parent 707eb5f842
commit ad04aa2238
5 changed files with 88 additions and 34 deletions

View File

@@ -586,6 +586,7 @@ NEWSYM TripleBufferWin, db 0
NEWSYM ExclusiveSound, db 0 NEWSYM ExclusiveSound, db 0
NEWSYM DisableScreenSaver, db 0 NEWSYM DisableScreenSaver, db 0
NEWSYM TrapMouseCursor, db 1
GUIsave equ $-GUIRAdd GUIsave equ $-GUIRAdd

View File

@@ -949,11 +949,15 @@ GUIGUIOptnsKeys:
jne .guioptn10 jne .guioptn10
xor byte[MouseWheel],1 xor byte[MouseWheel],1
.guioptn10 .guioptn10
cmp dh,'R'
jne .guioptn11
xor byte[TrapMouseCursor],1
.guioptn11
%endif %endif
cmp dh,'T' cmp dh,'T'
jne .guioptn11 jne .guioptn12
xor byte[GUIEnableTransp],1 xor byte[GUIEnableTransp],1
.guioptn11 .guioptn12
ret ret
GUISoundKeys: GUISoundKeys:

View File

@@ -2658,6 +2658,7 @@ DisplayGUIOptnsClick:
GUIClickCButton 12,178,byte[SaveMainWindowPos] GUIClickCButton 12,178,byte[SaveMainWindowPos]
GUIClickCButton 12,188,byte[AllowMultipleInst] GUIClickCButton 12,188,byte[AllowMultipleInst]
GUIClickCButton 124,33,byte[MouseWheel] GUIClickCButton 124,33,byte[MouseWheel]
GUIClickCButton 124,53,byte[TrapMouseCursor]
%endif %endif
GUIClickCButton 124,43,byte[FilteredGUI] GUIClickCButton 124,43,byte[FilteredGUI]
GUIPButtonHole 48,108,byte[CurPalSelect],0 GUIPButtonHole 48,108,byte[CurPalSelect],0

View File

@@ -4743,14 +4743,6 @@ DisplayGUIOptns:
mov dword[GUITemp],GUIIconDataCheckBoxC mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckt .nocheckt
GUIDisplayIconWin 10,124,23,[GUITemp] GUIDisplayIconWin 10,124,23,[GUITemp]
%ifdef __WIN32__
mov dword[GUITemp],GUIIconDataCheckBoxUC
cmp byte[MouseWheel],1
jne .nocheckr
mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckr
GUIDisplayIconWin 10,124,33,[GUITemp]
%endif
mov dword[GUITemp],GUIIconDataCheckBoxUC mov dword[GUITemp],GUIIconDataCheckBoxUC
cmp byte[FilteredGUI],1 cmp byte[FilteredGUI],1
jne .nocheckfg jne .nocheckfg
@@ -4807,22 +4799,28 @@ DisplayGUIOptns:
GUIDisplayIconWin 10,12,93,[GUITemp] GUIDisplayIconWin 10,12,93,[GUITemp]
%ifdef __WIN32__ %ifdef __WIN32__
mov dword[GUITemp],GUIIconDataCheckBoxUC mov dword[GUITemp],GUIIconDataCheckBoxUC
cmp byte[AlwaysOnTop],1 cmp byte[MouseWheel],1
jne .nocheck9 jne .nocheck9
mov dword[GUITemp],GUIIconDataCheckBoxC mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheck9 .nocheck9
GUIDisplayIconWin 10,124,33,[GUITemp]
mov dword[GUITemp],GUIIconDataCheckBoxUC
cmp byte[AlwaysOnTop],1
jne .nocheck10
mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheck10
GUIDisplayIconWin 10,12,168,[GUITemp] GUIDisplayIconWin 10,12,168,[GUITemp]
mov dword[GUITemp],GUIIconDataCheckBoxUC mov dword[GUITemp],GUIIconDataCheckBoxUC
cmp byte[SaveMainWindowPos],1 cmp byte[SaveMainWindowPos],1
jne .nocheck10 jne .nocheck10
mov dword[GUITemp],GUIIconDataCheckBoxC mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheck10 .nocheck11
GUIDisplayIconWin 10,12,178,[GUITemp] GUIDisplayIconWin 10,12,178,[GUITemp]
mov dword[GUITemp],GUIIconDataCheckBoxUC mov dword[GUITemp],GUIIconDataCheckBoxUC
cmp byte[AllowMultipleInst],1 cmp byte[AllowMultipleInst],1
jne .nocheck11 jne .nocheck12
mov dword[GUITemp],GUIIconDataCheckBoxC mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheck11 .nocheck12
GUIDisplayIconWin 10,12,188,[GUITemp] GUIDisplayIconWin 10,12,188,[GUITemp]
%endif %endif
mov al,[GUIWincol] mov al,[GUIWincol]
@@ -4831,6 +4829,12 @@ DisplayGUIOptns:
GUIOuttextwin2 10,6,16,GUIGUIOptnsText5 GUIOuttextwin2 10,6,16,GUIGUIOptnsText5
%ifdef __WIN32__ %ifdef __WIN32__
GUIOuttextwin2 10,6,160,GUIGUIOptnsTextD GUIOuttextwin2 10,6,160,GUIGUIOptnsTextD
mov dword[GUITemp],GUIIconDataCheckBoxUC
cmp byte[TrapMouseCursor],1
jne .nocheck13
mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheck13
GUIDisplayIconWin 10,124,53,[GUITemp]
%endif %endif
mov byte[GUItextcolor],163 mov byte[GUItextcolor],163
cmp byte[GUIWincoladd],0 cmp byte[GUIWincoladd],0
@@ -4866,6 +4870,7 @@ DisplayGUIOptns:
GUIOuttextwin2u 10,26,183,GUIGUIOptnsTextF,2 GUIOuttextwin2u 10,26,183,GUIGUIOptnsTextF,2
GUIOuttextwin2u 10,138,38,GUIGUIOptnsTextK,1 GUIOuttextwin2u 10,138,38,GUIGUIOptnsTextK,1
GUIOuttextwin2u 10,26,193,GUIGUIOptnsTextL,1 GUIOuttextwin2u 10,26,193,GUIGUIOptnsTextL,1
GUIOuttextwin2u 10,138,58,GUIGUIOptnsTextN,1
%endif %endif
mov byte[GUIGUIOptnsText6],'R' mov byte[GUIGUIOptnsText6],'R'
GUIOuttextwin2 10,16,123,GUIGUIOptnsText6 GUIOuttextwin2 10,16,123,GUIGUIOptnsText6
@@ -4892,6 +4897,7 @@ DisplayGUIOptns:
GUIOuttextwin2 10,25,182,GUIGUIOptnsTextF GUIOuttextwin2 10,25,182,GUIGUIOptnsTextF
GUIOuttextwin2 10,137,37,GUIGUIOptnsTextK GUIOuttextwin2 10,137,37,GUIGUIOptnsTextK
GUIOuttextwin2 10,25,192,GUIGUIOptnsTextL GUIOuttextwin2 10,25,192,GUIGUIOptnsTextL
GUIOuttextwin2 10,137,57,GUIGUIOptnsTextN
%endif %endif
mov byte[GUIGUIOptnsText6],'R' mov byte[GUIGUIOptnsText6],'R'
GUIOuttextwin2 10,15,122,GUIGUIOptnsText6 GUIOuttextwin2 10,15,122,GUIGUIOptnsText6
@@ -4986,6 +4992,7 @@ GUIGUIOptnsTextJ db 'TRANSPARENT MSGS',0
GUIGUIOptnsTextK db 'WHEEL MOUSE',0 GUIGUIOptnsTextK db 'WHEEL MOUSE',0
GUIGUIOptnsTextL db 'ALLOW MULTIPLE INSTANCES',0 GUIGUIOptnsTextL db 'ALLOW MULTIPLE INSTANCES',0
GUIGUIOptnsTextM db 'FILTERED GUI',0 GUIGUIOptnsTextM db 'FILTERED GUI',0
GUIGUIOptnsTextN db 'TRAP MOUSE CURSOR',0
DisplayGUIAbout: DisplayGUIAbout:
; cmp byte[OSPort],3 ; cmp byte[OSPort],3

View File

@@ -325,6 +325,7 @@ extern BYTE SaveMainWindowPos;
extern BYTE AlternateTimer; extern BYTE AlternateTimer;
extern BYTE AllowMultipleInst; extern BYTE AllowMultipleInst;
extern BYTE DisableScreenSaver; extern BYTE DisableScreenSaver;
extern BYTE TrapMouseCursor;
extern signed short int MainWindowX; extern signed short int MainWindowX;
extern signed short int MainWindowY; extern signed short int MainWindowY;
extern int CurKeyPos; extern int CurKeyPos;
@@ -2532,51 +2533,91 @@ void WinUpdateDevices()
int GetMouseX(void) int GetMouseX(void)
{ {
InputRead(); InputRead();
MouseX+=MouseMoveX; MouseX += MouseMoveX;
if (MouseX>MouseMaxX)
if (MouseX > MouseMaxX)
{ {
if (abs(MouseMoveX)>10&&T36HZEnabled&&(FullScreen==0)) MouseX = MouseMaxX;
if (TrapMouseCursor == 1 && FullScreen == 0)
{
if (abs(MouseMoveX) > 10 && T36HZEnabled)
{
MouseInput->Unacquire();
SetCursorPos(X + WindowWidth + 32, Y + (MouseY * WindowHeight / 224));
}
}
else
{ {
MouseInput->Unacquire(); MouseInput->Unacquire();
SetCursorPos(X+WindowWidth+32,Y+(MouseY*WindowHeight/224)); SetCursorPos(X + WindowWidth + 1, Y + (MouseY * WindowHeight / 224));
} }
MouseX=MouseMaxX;
} }
if (MouseX<MouseMinX) if (MouseX < MouseMinX)
{ {
if (abs(MouseMoveX)>10&&T36HZEnabled&&(FullScreen==0)) MouseX = MouseMinX;
if (TrapMouseCursor == 1 && FullScreen == 0)
{
if (abs(MouseMoveX) > 10 && T36HZEnabled)
{
MouseInput->Unacquire();
SetCursorPos(X - 32, Y + (MouseY * WindowHeight / 224));
}
}
else
{ {
MouseInput->Unacquire(); MouseInput->Unacquire();
SetCursorPos(X-32,Y+(MouseY*WindowHeight/224)); SetCursorPos(X - 1, Y + (MouseY * WindowHeight / 224));
} }
MouseX=MouseMinX;
} }
return((int)MouseX); return((int) MouseX);
} }
int GetMouseY(void) int GetMouseY(void)
{ {
MouseY+=MouseMoveY; MouseY += MouseMoveY;
if (MouseY>MouseMaxY)
if (MouseY > MouseMaxY)
{ {
MouseY=MouseMaxY; MouseY = MouseMaxY;
if (abs(MouseMoveY)>10&&T36HZEnabled&&(FullScreen==0))
if (TrapMouseCursor == 1 && FullScreen == 0)
{
if (abs(MouseMoveY) > 10 && T36HZEnabled)
{
MouseInput->Unacquire();
SetCursorPos(X+(MouseX * WindowWidth / 256), Y + WindowHeight + 32);
}
}
else
{ {
MouseInput->Unacquire(); MouseInput->Unacquire();
SetCursorPos(X+(MouseX*WindowWidth/256), Y+WindowHeight+32); SetCursorPos(X+(MouseX * WindowWidth / 256), Y + WindowHeight + 1);
} }
} }
if (MouseY<MouseMinY)
if (MouseY < MouseMinY)
{ {
MouseY=MouseMinY; MouseY = MouseMinY;
if (abs(MouseMoveY)>10&&T36HZEnabled&&(FullScreen==0))
if (TrapMouseCursor == 1 && FullScreen == 0)
{
if (abs(MouseMoveY) > 10 && T36HZEnabled)
{
MouseInput->Unacquire();
SetCursorPos(X + (MouseX * WindowWidth / 256), Y - 32);
}
}
else
{ {
MouseInput->Unacquire(); MouseInput->Unacquire();
SetCursorPos(X+(MouseX*WindowWidth/256), Y-32); SetCursorPos(X + (MouseX * WindowWidth / 256), Y - 1);
} }
} }
return((int)MouseY);
return((int) MouseY);
} }
int GetMouseMoveX(void) int GetMouseMoveX(void)