' CETweak by Mark Gamber using NS Basic
' This is a useful example of the registry and HTML
' controls. The program sets a couple useful flags
' in the registry to enable / disable window animation
' and if the \Network folder is visible from the root
' directory. Also, the system, menu bar and popup
' menu fonts may be specified, the interface to the
' three types handled by a tabstrip and HTML
' control. The HTML control uses a form to obtain
' data which is picked apart in basic and saved.
' Changes will take effect after the next soft reset.
Option Explicit
' Create the various objects
addobject "MGCEWin32.Registry", "reg"
addobject "Label", "lbl1", 2, 2, 120, 16
addobject "Checkbox", "AniChk", 124, 2, 16, 16
addobject "Label", "lbl2", 2, 20, 120, 16
addobject "Checkbox", "NetChk", 124, 20, 16, 16
addobject "CETabStrip.TabStrip.1", "Tab", 2, 41, 240, 20
addobject "MGCENet.HTML", "html", 2, 60, 239, output.height - 62
reg.Key = 2 ' We never leave HKEY_LOCAL_MACHINE in this app, so set it now
lbl1.BackColor = output.BackColor ' Initialize the rest of the controls
lbl1.Caption = "Window Animation:"
lbl2.BackColor = output.BackColor
lbl2.Caption = "Network Folder:"
Tab.tabs.Add 1,, "System Font" ' Add some stuff to the tabstrip
Tab.tabs.Add 2,, "Menu Font"
Tab.tabs.Add 3,, "Popup Font"
Tab.tabs.Remove 4
html.SetText GetSystemFont( 1 ) ' Initialize HTML by feeding it the system font form
reg.Path = "System\GWE" ' HKLM\System\GWE\Animate is first flag
reg.Name = "Animate" ' and it may not be there
on error resume next
i = reg.Value
if Err.number <> 0 then ' If the entry is missing, it's enabled
AniChk.Value = TRUE
else
if CInt( i ) = 1 then ' Otherwise, check it's value
AniChk.Value = TRUE
end if
end if
Err.Clear
reg.Path = "Comm\Redir"
reg.Name = "RegisterFSRoot" ' Looking for network folder flag
i = reg.Value
if Err.number = 0 then ' It's off by default, so it can only be on if it's there
if CInt( i ) <> 0 then NetChk.Value = TRUE
end if
sub Tab_click ' Select HTML form based on selected tab
if Tab.SelectedItem.Caption = "System Font" then html.SetText GetSystemFont( 1 )
if Tab.SelectedItem.Caption = "Menu Font" then html.SetText GetSystemFont( 2 )
if Tab.SelectedItem.Caption = "Popup Font" then html.SetText GetSystemFont( 3 )
end sub
function GetSystemFont( fType )
Dim s
s = ""
GetSystemFont = s
end function
sub AniChk_Click
reg.Path = "System\GWE"
reg.Name = "Animate"
reg.ValueType = 4
reg.Value = AniChk.Value
end sub
sub NetChk_Click
reg.Path = "Comm\Redir"
reg.CreatePath
reg.Name = "RegisterFSRoot"
reg.ValueType = 4
reg.Value = NetChk.Value
end sub
sub html_Click( url, data )
Dim i, j, s, sName, sSize
if url = "1" then reg.Path = "System\GDI\SYSFNT"
if url = "2" then reg.Path = "System\GWE\Menu\BarFnt"
if url = "3" then reg.Path = "System\GWE\Menu\PopFnt"
i = InStr( 1, data, "FontName=" )
if i = 0 then
MsgBox "You need to specify a font name!", vbOKOnly, "Error"
exit sub
end if
i = i + 9
j = InStr( i, data, "&" ) - i
sName = Trim( Mid( data, i, j ) )
if Len( sName ) < 1 then
MsgBox "You need to specify a font name!", vbOKOnly, "Error"
exit sub
end if
i = InStr( 1, data, "FontSize=" )
if i = 0 then
MsgBox "You need to specify a font size!", vbOKOnly, "Error"
exit sub
end if
i = i + 9
j = InStr( i, data, "&" )
if j > 0 then
sSize = Trim( Mid( data, i, j - i ) )
else
sSize = Trim( Mid( data, i ) )
end if
if Len( sSize ) < 1 then
MsgBox "You need to specify a font size!", vbOKOnly, "Error"
exit sub
end if
reg.ValueType = 1
reg.Name = "Nm"
reg.Value = sName
reg.Name = "Ht"
reg.ValueType = 4
MsgBox sSize
reg.Value = sSize
i = InStr( 1, data, "FontBold=" )
reg.Name = "Wt"
if i > 0 then
reg.Value = 700
else
reg.Value = 400
end if
i = InStr( 1, data, "FontItal=" )
reg.Name = "It"
if i > 0 then
reg.Value = 1
else
reg.Value = 0
end if
end sub