'$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