'$INCLUDE: 'QB.BI'
'$INCLUDE: 'MOUSE.BI'
TYPE MouseFlagsType
Active AS INTEGER
button AS INTEGER
Cursor AS INTEGER
END TYPE
DIM SHARED MouseFlags AS MouseFlagsType
CONST NoArg = 0
CONST FALSE = 0
CONST TRUE = NOT FALSE
'MouseBorder SUB PROGRAM
'
'
' (Quick Library) MOUSE.QLB
' (INCLUDE FILE) QB.BI, MOUSE.BI
'
SUB MouseBorder (row1%, col1%, row2%, col2%)
IF MouseReady% = FALSE THEN ERROR 68
MouseDriver 7, NoArg, col1%, col2% '
MouseDriver 8, NoArg%, row1%, row2%
END SUB
'MouseDriver SUB PROGRAM
'
'
' (Quick Library) MOUSE.QLB
' (INCLUDE FILE) QB.BI, MOUSE.BI
'
SUB MouseDriver (M0%, M1%, M2%, M3%)
DIM inreg AS RegType
DIM outreg AS RegType
inreg.ax = M0%
inreg.bx = M1%
inreg.cx = M2%
inreg.dx = M3%
INTERRUPT &H33, inreg, outreg
M0% = outreg.ax
M1% = outreg.bx
M2% = outreg.cx
M3% = outreg.dx
END SUB
'MouseHide SUB PROGRAM
'
'
' (Quick Library) MOUSE.QLB
' (INCLUDE FILE) QB.BI, MOUSE.BI
'
SUB MouseHide
IF MouseReady% = FALSE THEN ERROR 68
IF MouseFlags.Cursor THEN
MouseDriver 2, NoArg, NoArg, NoArg
MouseFlags.Cursor = FALSE
END IF
END SUB
'MouseInit SUB PROGRAM
'
'
' (Quick Library) MOUSE.QLB
' (INCLUDE FILE) QB.BI, MOUSE.BI
'
SUB MouseInit
IF MouseReady% = FALSE THEN ERROR 68
M0% = 0
MouseDriver M0%, M1%, NoArg, NoArg
MouseFlags.button = M1%
MouseFlags.Active = TRUE
END SUB
'MouseLocate SUB PROGRAM
'
'
' (Quick Library) MOUSE.QLB
' (INCLUDE FILE) QB.BI, MOUSE.BI
'
SUB MouseLocate (row%, col%)
IF MouseReady% = FALSE THEN ERROR 68
MouseDriver 4, NoArg, col%, row%
END SUB
'MouseMode SUB PROGRAM
'
'
' (Quick Library) MOUSE.QLB
' (INCLUDE FILE) QB.BI, MOUSE.BI
'
'
SUB MouseMode (Func%)
IF MouseReady% = FALSE THEN ERROR 68
MouseHide
IF Func% = FALSE THEN
MouseInit
ELSE
CLS
M0% = 10
M1% = 0
M2% = &H70FF
M3% = &H500
MouseDriver M0%, M1%, M2%, M3%
END IF
END SUB
'MousePoll SUB PROGRAM
'
'
' (Quick Library) MOUSE.QLB
' (INCLUDE FILE) QB.BI, MOUSE.BI
'
SUB MousePoll (row%, col%, lbutton%, rbutton%)
IF MouseReady% = FALSE THEN ERROR 68
MouseDriver 3, M1%, M2%, M3%
row% = M3%
col% = M2%
lbutton% = (M1% AND 1) <> 0
rbutton% = (M1% AND 2) <> 0
END SUB
'MousePush SUB PROGRAM
'
'
' (Quick Library) MOUSE.QLB
' (INCLUDE FILE) QB.BI, MOUSE.BI
'
SUB MousePush (button%, row%, col%, lbutton%, rbutton%)
IF MouseReady% = FALSE THEN ERROR 68
M0% = 5
M1% = button%
MouseDriver M0%, M1%, M2%, M3%
lbutton% = (M0% AND 1) = 1
rbutton% = (M0% AND 2) = 2
button% = M1%
col% = M2%
row% = M3%
END SUB
'
' (Quick Library) MOUSE.QLB
' (INCLUDE FILE) QB.BI, MOUSE.BI
FUNCTION MouseReady% STATIC
IF NotFirstCall% THEN
MouseReady% = NotFirstCall%
ELSE
M0% = 0
MouseDriver M0%, M1%, NoArg, NoArg
MouseFlags.button = M1%
MouseReady% = (M0% <> 0)
NotFirstCall% = (M0% <> 0)
END IF
END FUNCTION
'MouseRelease SUB PROGRAM
'
'
' (Quick Library) MOUSE.QLB
' (INCLUDE FILE) QB.BI, MOUSE.BI
'
SUB MouseRelease (button%, row%, col%, lbutton%, rbutton%)
IF MouseReady% = FALSE THEN ERROR 68
M0% = 6
M1% = button%
MouseDriver M0%, M1%, M2%, M3%
lbutton% = (M0% AND 1) = 1
rbutton% = (M0% AND 2) = 2
button% = M1%
col% = M2%
row% = M3%
END SUB
'MouseShow SUB PROGRAM
'
' (Quick Library) MOUSE.QLB
' (INCLUDE FILE) QB.BI, MOUSE.BI
'
SUB MouseShow
IF MouseReady% = FALSE THEN ERROR 68
IF NOT MouseFlags.Cursor THEN
MouseDriver 1, NoArg, NoArg, NoArg
MouseFlags.Cursor = NOT FALSE
END IF
END SUB