micromicros/pc/settings/SHARED.BAS
2024-09-28 18:17:05 -05:00

132 lines
2.4 KiB
QBasic

'$FORM frmMain
'$FORM frmDialog
' $INCLUDE: 'MM_SETUP.BI'
SUB centerForm (who AS FORM)
' Center us on the screen.
who.Left = ((SCREEN.Width - who.Width) / 2)
who.Top = ((SCREEN.Height - who.Height) / 2)
END SUB
SUB dialogClose ()
frmDialog.HIDE
UNLOAD frmDialog
END SUB
SUB dialogOpen (titleBar AS STRING, message AS STRING)
frmDialog.Caption = titleBar
frmDialog.lblMessage.Caption = message
frmDialog.SHOW
END SUB
SUB getList (f AS INTEGER, who AS CONTROL)
DIM line$
WHILE who.ListCount
who.REMOVEITEM 0
WEND
DO
LINE INPUT #f, line$
IF (line$ = "---") THEN EXIT DO
who.ADDITEM line$
LOOP WHILE TRUE
IF (who.ListCount > 0) THEN who.ListIndex = 0
END SUB
FUNCTION getSetting (f AS INTEGER) AS STRING
' Load a single line setting from file.
' If setting is "---" return nothing.
' If setting is not "---", read until we get "---".
DIM line$
getSetting = ""
LINE INPUT #f, line$
IF (line$ = "---") THEN EXIT FUNCTION
getSetting = line$
DO
LINE INPUT #f, line$
LOOP UNTIL (line$ = "---")
END FUNCTION
SUB loadSettings ()
DIM f
DIM line$
' We load all the settings into frmMain,
' even if it's not going to be displayed.
frmMain.HIDE
ON LOCAL ERROR RESUME NEXT
f = FREEFILE
OPEN "GETINFO.OUT" FOR INPUT AS f
IF ERR = 0 THEN
ON LOCAL ERROR GOTO 0
' Hostname
frmMain.txtHostname.Text = getSetting(f)
' IPs
getList f, frmMain.cmbCurrentIPs
' Timezone
getList f, frmMain.cmbTimezone
setList frmMain.cmbTimezone, getSetting(f)
' WiFi Country
getList f, frmMain.cmbWiFiCountry
setList frmMain.cmbWiFiCountry, getSetting(f)
' WiFi Network
getList f, frmMain.cmbWiFiNetwork
setList frmMain.cmbWiFiNetwork, getSetting(f)
' Bluetooth
line$ = getSetting(f)
' Volume
frmMain.hsbVolume.Value = VAL(getSetting(f))
' Audio Device
getList f, frmMain.cmbAudioDevice
setList frmMain.cmbAudioDevice, getSetting(f)
CLOSE f
END IF
ERR = 0
ON LOCAL ERROR GOTO 0
END SUB
SUB setList (who AS CONTROL, what AS STRING)
DIM x
FOR x = 0 TO who.ListCount - 1
IF (LEFT$(who.List(x), LEN(what)) = what) THEN
who.ListIndex = x
EXIT FOR
END IF
NEXT x
END SUB