try this:
Blitz Pus
;
; EdzUpHTMLEditor - Copyright (C)EdzUp
; Coded by Ed Upton
;
;
; TODO:Make it so it changes to the directory that the file is loaded from
;
;
Global HTMLFont = LoadFont( "System", 6 )
Global MainWindow = CreateWindow( "EdzUp HTML Editor", 0, 0, ClientWidth( Desktop() ), ClientHeight( Desktop() ) )
Global Tabber = CreateTabber( 0, 0, ClientWidth( MainWindow ), ClientHeight( MainWindow ), MainWindow )
AddGadgetItem Tabber, "HTML Source", True
Global HTMLArea = CreateTextArea( 0, 0, ClientWidth( Tabber ), ClientHeight( Tabber ), Tabber )
SetGadgetFont HTMLArea, HTMLFont
AddGadgetItem Tabber, "HTML View"
Global HTMLView = CreateHtmlView( 0, 0, ClientWidth( Tabber ), ClientHeight( Tabber ), Tabber )
HideGadget HTMLView
;-------- MENUS --------
Global Menus= WindowMenu( MainWindow )
Global FileMenu = CreateMenu( "&File", 1, Menus )
CreateMenu( "&New", 9, FileMenu )
CreateMenu( "&Load", 10, FileMenu )
CreateMenu( "&Save", 11, FileMenu )
CreateMenu( "", 12, FileMenu )
CreateMenu( "&Quit", 13, FileMenu )
UpdateWindowMenu MainWindow
Global HTMLDir$=""
While Not KeyDown( 1 )
Event = WaitEvent()
Select Event
Case $401: Select EventSource()
Case Tabber:UpdateTabber()
End Select
Case $1001: Select EventData()
Case 9 : SetGadgetText HTMLArea, ""
Case 10 : Request$ = RequestFile$( "Load file", "html,htm", False )
If Request$<>""
SetGadgetText HTMLArea, ""
LoadFile( Request$ )
UpdateTabber()
EndIf
Case 11 : Request$ = RequestFile$( "Save file", "html,htm", True )
If Request$<>"" Then SaveTemp( Request$ )
Case 13 : If Confirm( "Quit: Are you sure?" )=True Then End
End Select
Case $803: If Confirm( "Quit: Are you sure?" )=True Then End
End Select
Wend
End
Function UpdateTabber()
If SelectedGadgetItem( Tabber )=0
HideGadget HTMLView
ShowGadget HTMLArea
ActivateGadget HTMLArea
Else
SaveTemp()
HideGadget HTMLArea
ShowGadget HTMLView
HtmlViewGo HTMLView, HTMLDir$+"Temp.dat"
ActivateGadget HTMLView
EndIf
End Function
Function LoadFile( Filename$ )
Local FileHand = ReadFile( Filename$ )
Local st$=""
If FileHand<>0
;extract files directory
FP=Len( FileName$ )+1
Repeat
FP= FP -1
Until Mid$( Filename$, FP, 1 )="" Or FP<1
HTMLDir$ = Left$( Filename$, FP )
SetStatusText MainWindow, HTMLDir$
ChangeDir HTMLDir$
;load in HTML File
Repeat
st$ = ReadLine$( FileHand )
AddTextAreaText HTMLArea, St$+Chr$(10)
Until Eof( FileHand )<>0
CloseFile FileHand
EndIf
End Function
Function SaveTemp( Filename$="" )
If FileName$ = "" Then FileName$ = HTMLDir$+"Temp.dat"
Local FileHand = WriteFile( FileName$ )
If FileHand<>0
WriteLine FileHand, TextAreaText$( HTMLArea )
CloseFile FileHand
Else
EndIf
End Function
And BlitzMax with BlitzGUI
'
' EdzUpHTMLEditor - Copyright (C)EdzUp
' Coded by Ed Upton
'
'
' TODO:Make it so it changes To the directory that the file is loaded from
'
'
Strict
'FormatTextAreaText( textarea:TGadget,r,g,b,flags,pos=0,length=-1,units=1 )
Global HTMLFont:TGUIFont = LoadGuiFont( "System", 6 )
Global MainWindow:TGadget = CreateWindow( "EdzUp HTML Editor", 0, 0, ClientWidth( Desktop() ), ClientHeight( Desktop() ) )
Global Tabber:TGadget = CreateTabber( 0, 0, ClientWidth( MainWindow ), ClientHeight( MainWindow ), MainWindow )
AddGadgetItem( Tabber, "HTML Source" )
Global HTMLArea:TGadget = CreateTextArea( 0, 0, ClientWidth( Tabber ), ClientHeight( Tabber ), Tabber )
SetGadgetFont( HTMLArea, HTMLFont )
AddGadgetItem( Tabber, "HTML View" )
Global HTMLView = CreateHTMLView( 0, 0, ClientWidth( Tabber ), ClientHeight( Tabber ), Tabber )
HideGadget( HTMLView )
ActivateGadget( HTMLArea )
'-------- MENUS --------
Global Menus:TGadget= WindowMenu( MainWindow )
Global FileMenu:TGadget = CreateMenu( "&File", 1, Menus )
Global NewMenu:TGadget = CreateMenu( "&New", 9, FileMenu )
Global LoadMenu:TGadget = CreateMenu( "&Load", 10, FileMenu )
Global SaveMenu:TGadget = CreateMenu( "&Save", 11, FileMenu )
Global SaveAsMenu:TGadget = CreateMenu( "Save &As", 12, FileMenu )
CreateMenu( "", 15, FileMenu )
Global QuitMenu:TGadget = CreateMenu( "&Quit", 13, FileMenu )
UpdateWindowMenu( MainWindow )
Global HTMLDir:String =""
Global Request:String =""
Global MainFile:String = "Untitled.html"
Rename( MainFile )
While Not KeyDown( 1 )
If PollEvent()<>Null
Select EventID()
Case EVENT_MENUACTION
Select EventData()
Case 9
SetGadgetText HTMLArea, ""
MainFile = "Untitled.html"
Rename( MainFile )
Case 10
Request = RequestFile$( "Load file", "Internet files:html,htm;All files:*", False )
If Request$<>""
SetGadgetText HTMLArea, ""
LoadFile( Request$ )
UpdateTabber()
Rename( Request$ )
MainFile = Request$
Tokenise()
EndIf
Case 11
If MainFile="Untitled.html"
Request$ = RequestFile$( "Save As", "Internet files:html,htm;All files:*", True )
If Request$<>""
SaveTemp( Request$ )
MainFile = Request$
Rename( MainFile )
EndIf
Else
SaveTemp( MainFile )
EndIf
Case 12
Request$ = RequestFile$( "Save file", "Internet files:html,htm;All files:*", True )
If Request$<>""
SaveTemp( Request$ )
MainFile = Request$
Rename( MainFile )
EndIf
Case 13
If Confirm( "Quit: Are you sure?" )=True Then ShutdownEngine()
End Select
Case EVENT_GADGETACTION
Select EventSource()
Case Tabber
UpdateTabber()
End Select
Case EVENT_WINDOWCLOSE
If Confirm( "Quit: Are you sure?" )=True Then ShutdownEngine()
End Select
EndIf
Wend
End
Function Tokenise()
Local TP:Int =0
Local On=0
Local OldOn=0
Local TAT:String = TextAreaText$( HTMLArea, 0 )
Local Prev:Int = 0
For TP=1 To Len( TAT )
If Mid$( TAT, TP, 1 )="<" And On=0
FormatTextAreaText( HTMLArea, 255, 0, 0, 0, TP-1, 1 )
Prev = On
On=1
EndIf
If Mid$( TAT, TP, 1 )=">" And On=1
On=Prev
Prev=0
EndIf
If Asc( Mid$( TAT, TP, 1 ) )=34 And On<>2
FormatTextAreaText( HTMLArea, 0, 0, 255, 0, TP-1, 1 )
OldOn=On
Prev = On
On=2
ElseIf Asc( Mid$( TAT, TP, 1 ) )=34 And On=2
On=OldOn
On=Prev
Prev = 0
EndIf
Select On
Case 1
FormatTextAreaText( HTMLArea, 255, 0, 0, 0, TP, 1 )
Case 2
FormatTextAreaText( HTMLArea, 0, 0, 255, 0, TP, 1 )
Default
FormatTextAreaText( HTMLArea, 0, 0, 0, 0, TP, 1 )
End Select
Next
End Function
Function Rename( NewName:String )
SetGadgetText( MainWindow, "EdzUp HTML Editor - "+NewName )
End Function
Function ShutdownEngine()
FreeMenu( Menus )
FreeGadget( HTMLView )
FreeGadget( HTMLArea )
FreeGadget( Tabber )
FreeGadget( MainWindow )
End
End Function
Function UpdateTabber()
If SelectedGadgetItem( Tabber )=0
HideGadget HTMLView
ShowGadget HTMLArea
ActivateGadget HTMLArea
Tokenise()
Else
SaveTemp()
HideGadget HTMLArea
ShowGadget HTMLView
HtmlViewGo HTMLView, HTMLDir$+"Temp.dat"
ActivateGadget HTMLView
Tokenise()
EndIf
End Function
Function LoadFile( Filename:String )
Local FileHand:TStream = ReadFile( Filename$ )
Local st:String=""
Local FP:Int
If Not FileHand
Else
'extract files directory
FP=Len( FileName$ )+1
Repeat
FP= FP -1
Until Mid$( Filename$, FP, 1 )="" Or FP<1
HTMLDir$ = Left$( Filename$, FP )
SetStatusText MainWindow, HTMLDir$
ChangeDir HTMLDir$
'load in HTML File
Repeat
st$ = ReadLine$( FileHand )
AddTextAreaText HTMLArea, St$+Chr$(10)
Until Eof( FileHand )<>0
CloseFile FileHand
EndIf
End Function
Function SaveTemp( Filename:String ="" )
If FileName$ = "" Then FileName$ = HTMLDir$+"Temp.dat"
Local FileHand = WriteFile( FileName$ )
If FileHand<>0
WriteLine FileHand, TextAreaText$( HTMLArea )
CloseFile FileHand
Else
EndIf
End Function
Hope it helps, im working on a multi page interface for it at the moment so you can have loads of source open at once but that is still in progress.