Fed up with Notepad? Try NovaNotes!

Miscellaneous Forums/Blitz Showcase/Fed up with Notepad? Try NovaNotes!

Okay, most Windows hacks know some of the basic merits of Notepad. It provides a clean, simple, quick-loading interface, and is perfect for writing anything that you DON'T want in Rich Text Formatting (RTF). After all, web pages are always just plain text files at heart, and let's face it; MS Word can be a bit... overcomplicated... for simplistic tasks.

Thing is, Notepad is sometimes a little TOO simplistic, to the point of frustrating. What if you want to change the color of the font or background? Or open multiple files? And gawd help anyone who wants to insert a special character... Who has time to remember all 255+ of those Alt + xxxx codes?

There's an easy answer... NovaNotes!!!

Clean and Simple.
NovaNotes has just about as many features as you need, and no more. It has customizability, but doesn't need 100 options & 250MB of valuable drive space to achieve it!

Designed for multitasking.
NovaNotes lets you have literally thousands of files open at once... Like you'd ever need that many.

A web designer's companion.
NovaNotes was built with HTML programming in mind. Eleven shortcut keys will insert the most common HTML tags, and the F5 key will quickly open a preview of your web page, right in NovaNotes! Plus, the Open/Save commands will recognize .htm and .html files as well as standard .txt files!

Use QuickText to boost your productivity.
NovaNotes has a special feature: QuickText. QuickText is a collection of ten "blocks" of text, which you can edit AND insert into your file, all at the push of a button! Imagine being able to fill in your own base template for an HTML webpage with a single keypress!

More compact than a black hole.
NovaNotes' source code has been optimized to the limit, and doesn't contain one single variable more than necessary. It's also designed to have the smallest memory footprint possible for its power. Basically, it should run on practically ANY old computer with Windows or Mac OS!

All this and more in NovaNotes, the one-month wonder project by Adam Novagen of Gigahertz Games! Plus two more reasons to try it...

It's right here... And it's FREE!!!

;OPEN IN BLITZPLUS

;NOVANOTES
;Version 1.02
;By Adam Novagen


AppTitle "NovaNotes"


Global DataFile
Global I


;If the settings datafile doesn't exist, create it with its default settings
If Not FileType("NovaNotes.dat") = 1
	Notify "NovaNotes" + Chr(10) + Chr(10) + "A super NotePad program by Adam Novagen" + Chr(10) + Chr(10) + "Edit multiple text files and web pages with ease!" + Chr(10) + Chr(10) + "Speed up your writing with QuickText, ten editable " + Chr(34) + "blocks" + Chr(34) + " of text" + Chr(10) + "that you can insert anywhere in your files with the push of a button!" + Chr(10) + Chr(10) + "Insert common HTML tags with a simple Ctrl + Key combo!" + Chr(10) + Chr(10) + "All this and more from just xxxx lines of code..." + Chr(10) + "... Eat your heart out, Microsoft! ^_^" + Chr(10) + Chr(10) +"© Copyright Adam Novagen 2008"
	RestoreDefaults()
EndIf


DataFile = ReadFile("NovaNotes.dat")


;[Block] GLOBALS
;[Block] GUI Elements
;[Block] Windows
Global MainWindow = CreateWindow("NovaNotes",GadgetWidth(Desktop()) / 2 - 400,GadgetHeight(Desktop()) / 2 - 300,800,600,0,1 + 2 + 4 + 8 + 32)
Global QuickTextWindow = CreateWindow("QuickText Editor",(GadgetWidth(Desktop()) / 2) - 200,(GadgetHeight(Desktop()) / 2) - 200,400,400,0,1 + 32)
Global SpecialCharWindow = CreateWindow("Insert Special Character",(GadgetWidth(Desktop()) / 2) - 100,(GadgetHeight(Desktop()) / 2) - 200,200,400,0,1 + 32)
;[End Block]
;[Block] Menus
;[Block] Main Menu
Global MainWindowMenu = WindowMenu(MainWindow)
;[End Block]
;[Block] File Menu
Global FileMenu = CreateMenu("&File",1000,MainWindowMenu)
CreateMenu("&New File",1001,FileMenu)
CreateMenu("&Open File...",1003,FileMenu)
CreateMenu("",0,FileMenu)
CreateMenu("&Close File",1004,FileMenu)
CreateMenu("Close All Files",1006,FileMenu)
CreateMenu("",0,FileMenu)
CreateMenu("&Save File",1007,FileMenu)
CreateMenu("Save File &As...",1008,FileMenu)
CreateMenu("Save All &Files",1010,FileMenu)
CreateMenu("",0,FileMenu)
Global FileStatsMenu = CreateMenu("File S&tatistics",1012,FileMenu)
Global RevertFileMenu = CreateMenu("&Revert File",1013,FileMenu)
CreateMenu("",0,FileMenu)
CreateMenu("E&xit",1011,FileMenu)
;[End Block]
;[Block] Insert Menu
Global InsertMenu = CreateMenu("&Insert",5000,MainWindowMenu)
Global QuickTextMenu = CreateMenu("&QuickText",5001,InsertMenu)
;[Block] QuickText
CreateMenu("Block &1",5002,QuickTextMenu)
CreateMenu("Block &2",5003,QuickTextMenu)
CreateMenu("Block &3",5004,QuickTextMenu)
CreateMenu("Block &4",5005,QuickTextMenu)
CreateMenu("Block &5",5006,QuickTextMenu)
CreateMenu("Block &6",5007,QuickTextMenu)
CreateMenu("Block &7",5008,QuickTextMenu)
CreateMenu("Block &8",5009,QuickTextMenu)
CreateMenu("Block &9",5010,QuickTextMenu)
CreateMenu("Block 1&0",5011,QuickTextMenu)
;[End Block]
CreateMenu("Special Character...",5012,InsertMenu)
;[End Block]
;[Block] View Menu
Global ViewMenu = CreateMenu("&View",2000,MainWindowMenu)
CreateMenu("&Preview HTML",2001,ViewMenu)
CreateMenu("",0,ViewMenu)
;[End Block]
;[Block] Settings Menu
Global SettingsMenu = CreateMenu("&Settings",3000,MainWindowMenu)
Global WordWrapMenu = CreateMenu("&Word Wrap",3001,SettingsMenu)
CreateMenu("&Font...",3002,SettingsMenu)
CreateMenu("&Text Color...",3003,SettingsMenu)
CreateMenu("&Background Color...",3004,SettingsMenu)
QuickTextMenu = CreateMenu("&QuickText",3005,SettingsMenu)
;[Block] QuickText
CreateMenu("Block &1",3006,QuickTextMenu)
CreateMenu("Block &2",3007,QuickTextMenu)
CreateMenu("Block &3",3008,QuickTextMenu)
CreateMenu("Block &4",3009,QuickTextMenu)
CreateMenu("Block &5",3010,QuickTextMenu)
CreateMenu("Block &6",3011,QuickTextMenu)
CreateMenu("Block &7",3012,QuickTextMenu)
CreateMenu("Block &8",3013,QuickTextMenu)
CreateMenu("Block &9",3014,QuickTextMenu)
CreateMenu("Block 1&0",3015,QuickTextMenu)
;[End Block]
CreateMenu("",0,SettingsMenu)
CreateMenu("Restore Defaults",3099,SettingsMenu)
;[End Block]
;[Block] Help Menu
Global HelpMenu = CreateMenu("&Help",4000,MainWindowMenu)
CreateMenu("&HotKeys",4001,HelpMenu)
CreateMenu("&About",4002,HelpMenu)
;[End Block]
;[End Block]
;[Block] Buttons
Global CloseFileButton = CreateButton("X",ClientWidth(MainWindow) - 23,2,21,21,MainWindow)
Global SaveQuickTextButton = CreateButton("Save Changes",2,ClientHeight(QuickTextWindow) - 23,(ClientWidth(QuickTextWindow) / 2) - 4,21,QuickTextWindow)
Global QuickTextCancelButton = CreateButton("Cancel",(ClientWidth(QuickTextWindow) / 2) + 2,ClientHeight(QuickTextWindow) - 23,(ClientWidth(QuickTextWindow) / 2) - 4,21,QuickTextWindow)
Global InsertCharButton = CreateButton("Insert",2,ClientHeight(SpecialCharWindow) - 23,(ClientWidth(SpecialCharWindow) / 2) - 4,21,SpecialCharWindow)
Global CancelCharButton = CreateButton("Cancel",(ClientWidth(SpecialCharWindow) / 2) + 2,ClientHeight(SpecialCharWindow) - 23,(ClientWidth(SpecialCharWindow) / 2) - 4,21,SpecialCharWindow)
;[End Block]
;[Block] List Boxes
Global SpecialCharList = CreateListBox((ClientWidth(SpecialCharWindow) / 2) - 45,2,90,ClientHeight(SpecialCharWindow) - 47,SpecialCharWindow)
;[End Block]
;[Block] Text Areas
Global QuickTextArea = CreateTextArea(2,2,ClientWidth(QuickTextWindow) - 4,ClientHeight(QuickTextWindow) - 27,QuickTextWindow,True)
;[End Block]
;[Block] Labels
Global FileNameLabel = CreateLabel("",0,0,ClientWidth(MainWindow) - 100,25,MainWindow)
Global SpecialCharLabel = CreateLabel("Shortcut code: Alt + 0030",2,ClientHeight(SpecialCharWindow) - 47,ClientWidth(SpecialCharWindow) - 4,21,SpecialCharWindow)
;[End Block]
;[End Block]
;[Block] GUI Vars
Global WordWrap = ReadByte(DataFile),CurrentBGRed = ReadByte(DataFile),CurrentBGGreen = ReadByte(DataFile),CurrentBGBlue = ReadByte(DataFile)
Global CurrentFont,CurrentFontRed = ReadByte(DataFile),CurrentFontGreen = ReadByte(DataFile),CurrentFontBlue = ReadByte(DataFile)
Global APPMaximized = ReadByte(DataFile)
Global QuickTextWindowOpen = False,SpecialCharWindowOpen = False
;[End Block]
;[Block] Timers
Global LastWord
;[End Block]
;[Block] Other Vars
Global NoteFileNum = 10000,CurrentNoteFile
Global SettingChanged = False
Global I2
;[End Block]
;[End Block]


;[Block] CONSTANTS
;[Block] GUI Events
Const EventGadgetAction = $401
Const EventWindowClose = $803
Const EventMenuAction = $1001
Const EventHotKeyHit = $8001
;[End Block]
;[End Block]


;[Block] ARRAYS
Dim QuickText$(9)
;[End Block]


;[Block] TYPES
Type NoteFile
	Field ID,Content$,OrigContent$
	Field FileName$,FullName$
	Field TextArea,MenuEntry
	Field HTMLActive,HTMLWindow,HTMLRefreshButton,HTMLPreview
End Type
;[End Block]


;[Block] FINAL SETUP
;[Block] Gadget Visibility
HideGadget QuickTextWindow
HideGadget SpecialCharWindow
;[End Block]
;[Block] Menu Initialization
If WordWrap = True Then CheckMenu WordWrapMenu
DisableMenu FileStatsMenu
UpdateWindowMenu MainWindow
;[End Block]
;[Block] HotKey Setup
;[Block] Menu HotKeys
HotKeyEvent 49,2,EventMenuAction,1001;    Ctrl + N           = File -> New File
HotKeyEvent 24,2,EventMenuAction,1003;    Ctrl + O           = File -> Open File
HotKeyEvent 31,2,EventMenuAction,1007;    Ctrl + S           = File -> Save File
HotKeyEvent 31,1 + 2,EventMenuAction,1008;Ctrl + Shift + S   = File -> Save File As
HotKeyEvent 62,0,EventMenuAction,1010;    F4                 = File -> Save All Files
HotKeyEvent 65,0,EventMenuAction,1012;    F7                 = File -> File Statistics
HotKeyEvent 1,0,EventMenuAction,1011;     Esc                = File -> Exit
HotKeyEvent 63,0,EventMenuAction,2001;    F5                 = View -> Preview HTML
HotKeyEvent 59,0,EventMenuAction,4002;    F1                 = Help -> About
HotKeyEvent 60,0,EventMenuAction,4001;    F2                 = Help -> HotKeys
;[Block] QuickText
HotKeyEvent 2,1 + 2,EventMenuAction,3006; Ctrl + Shift + 1   = Settings -> QuickText -> Block 1
HotKeyEvent 3,1 + 2,EventMenuAction,3007; Ctrl + Shift + 1   = Settings -> QuickText -> Block 2
HotKeyEvent 4,1 + 2,EventMenuAction,3008; Ctrl + Shift + 1   = Settings -> QuickText -> Block 3
HotKeyEvent 5,1 + 2,EventMenuAction,3009; Ctrl + Shift + 1   = Settings -> QuickText -> Block 4
HotKeyEvent 6,1 + 2,EventMenuAction,3010; Ctrl + Shift + 1   = Settings -> QuickText -> Block 5
HotKeyEvent 7,1 + 2,EventMenuAction,3011; Ctrl + Shift + 1   = Settings -> QuickText -> Block 6
HotKeyEvent 8,1 + 2,EventMenuAction,3012; Ctrl + Shift + 1   = Settings -> QuickText -> Block 7
HotKeyEvent 9,1 + 2,EventMenuAction,3013; Ctrl + Shift + 1   = Settings -> QuickText -> Block 8
HotKeyEvent 10,1 + 2,EventMenuAction,3014;Ctrl + Shift + 1   = Settings -> QuickText -> Block 9
HotKeyEvent 11,1 + 2,EventMenuAction,3015;Ctrl + Shift + 1   = Settings -> QuickText -> Block 10
;[End Block]
;[End Block]
;[Block] Global HotKeys
HotKeyEvent 57,0,EventHotKeyHit,301;      Space              = Calculate & display typing speed
HotKeyEvent 28,0,EventHotKeyHit,301;      Enter/Return       = Ditto
;[Block] HTML Tags
HotKeyEvent 59,2,EventHotKeyHit,101;      Ctrl + F1          = <HTML>
HotKeyEvent 60,2,EventHotKeyHit,102;      Ctrl + F2          = <HEAD>
HotKeyEvent 61,2,EventHotKeyHit,103;      Ctrl + F3          = <TITLE>
HotKeyEvent 62,2,EventHotKeyHit,104;      Ctrl + F4          = <BODY>
HotKeyEvent 63,2,EventHotKeyHit,105;      Ctrl + F5          = <B>
HotKeyEvent 64,2,EventHotKeyHit,106;      Ctrl + F6          = <I>
HotKeyEvent 65,2,EventHotKeyHit,107;      Ctrl + F7          = <U>
HotKeyEvent 66,2,EventHotKeyHit,108;      Ctrl + F8          = <A HREF = "">
HotKeyEvent 67,2,EventHotKeyHit,109;      Ctrl + F9          = <TABLE>
HotKeyEvent 87,2,EventHotKeyHit,110;      Ctrl + F11         = <TR>
HotKeyEvent 88,2,EventHotKeyHit,111;      Ctrl + F12         = <TD>
HotKeyEvent 59,1 + 2,EventHotKeyHit,112;  Ctrl + Shift + F1  = </HTML>
HotKeyEvent 60,1 + 2,EventHotKeyHit,113;  Ctrl + Shift + F2  = </HEAD>
HotKeyEvent 61,1 + 2,EventHotKeyHit,114;  Ctrl + Shift + F3  = </TITLE>
HotKeyEvent 62,1 + 2,EventHotKeyHit,115;  Ctrl + Shift + F4  = </BODY>
HotKeyEvent 63,1 + 2,EventHotKeyHit,116;  Ctrl + Shift + F5  = </B>
HotKeyEvent 64,1 + 2,EventHotKeyHit,117;  Ctrl + Shift + F6  = </I>
HotKeyEvent 65,1 + 2,EventHotKeyHit,118;  Ctrl + Shift + F7  = </U>
HotKeyEvent 66,1 + 2,EventHotKeyHit,119;  Ctrl + Shift + F8  = </A>
HotKeyEvent 67,1 + 2,EventHotKeyHit,120;  Ctrl + Shift + F9  = </TABLE>
HotKeyEvent 87,1 + 2,EventHotKeyHit,121;  Ctrl + Shift + F11 = </TR>
HotKeyEvent 88,1 + 2,EventHotKeyHit,122;  Ctrl + Shift + F12 = </TD>
;[End Block]
;[Block] QuickText Blocks
HotKeyEvent 2,2,EventHotKeyHit,201;       Ctrl + 1           = Block 1
HotKeyEvent 3,2,EventHotKeyHit,202;       Ctrl + 2           = Block 2
HotKeyEvent 4,2,EventHotKeyHit,203;       Ctrl + 3           = Block 3
HotKeyEvent 5,2,EventHotKeyHit,204;       Ctrl + 4           = Block 4
HotKeyEvent 6,2,EventHotKeyHit,205;       Ctrl + 5           = Block 5
HotKeyEvent 7,2,EventHotKeyHit,206;       Ctrl + 6           = Block 6
HotKeyEvent 8,2,EventHotKeyHit,207;       Ctrl + 7           = Block 7
HotKeyEvent 9,2,EventHotKeyHit,208;       Ctrl + 8           = Block 8
HotKeyEvent 10,2,EventHotKeyHit,209;      Ctrl + 9           = Block 9
HotKeyEvent 11,2,EventHotKeyHit,210;      Ctrl + 0           = Block 10
;[End Block]
;[End Block]
;[Block] Special Character List Setup
For I = 30 To 255
	AddGadgetItem(SpecialCharList,Chr(I))
Next
SelectGadgetItem SpecialCharList,0
;[End Block]
;[End Block]
;[Block] Array Setup
For I = 0 To 9
	Local BlockSize = ReadInt(DataFile)
	For I2 = 1 To BlockSize
		QuickText(I) = QuickText(I) + Chr(ReadByte(DataFile))
	Next
Next
;[End Block]
CloseFile DataFile
SetGadgetLayout FileNameLabel,1,1,1,0
If APPMaximized = 1 Then MaximizeWindow MainWindow
;[Block] check for files to be opened
If Len(CommandLine()) > 0 And FileType(Left(Right(CommandLine(),Len(CommandLine()) - 1),Len(CommandLine()) - 2)) = 1
	AddFile(Left(Right(CommandLine(),Len(CommandLine()) - 1),Len(CommandLine()) - 2))
EndIf
;[End Block]
;[End Block]


Repeat


If APPMaximized <> WindowMaximized(MainWindow);if the window status changes
	APPMaximized = WindowMaximized(MainWindow)
	SettingChanged = True
EndIf


Select WaitEvent()
	Case EventGadgetAction
		Select EventSource()
			Case CloseFileButton
				RemoveFile(CurrentNoteFile)
			Case SaveQuickTextButton
				QuickText(Right(GadgetText(QuickTextWindow),1)) = TextAreaText(QuickTextArea)
				SettingChanged = True
				SetTextAreaText QuickTextArea,""
				HideGadget QuickTextWindow
				QuickTextWindowOpen = False
			Case QuickTextCancelButton
				SetTextAreaText QuickTextArea,""
				HideGadget QuickTextWindow
				QuickTextWindowOpen = False
			Case InsertCharButton
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,Chr(SelectedGadgetItem(SpecialCharList) + 30) + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),1),TextAreaCursor(NoteFile\TextArea),1
					EndIf
				Next
				HideGadget SpecialCharWindow
				SpecialCharWindowOpen = False
			Case CancelCharButton
				HideGadget SpecialCharWindow
				SpecialCharWindowOpen = False
			Case SpecialCharList
				If Len(Str((SelectedGadgetItem(SpecialCharList) + 30))) = 3
					SetGadgetText SpecialCharLabel,"Shortcut code: Alt + 0" + (SelectedGadgetItem(SpecialCharList) + 30)
				Else
					SetGadgetText SpecialCharLabel,"Shortcut code: Alt + 00" + (SelectedGadgetItem(SpecialCharList) + 30)
				EndIf
			Default
				For NoteFile.NoteFile = Each NoteFile
					If EventSource() = NoteFile\HTMLRefreshButton
						Local File = WriteFile("C:\NovaNotes_temp_html_preview_" + NoteFile\ID + ".html")
						WriteLine File,TextAreaText(NoteFile\TextArea)
						CloseFile File
						HtmlViewGo NoteFile\HTMLPreview,"C:\NovaNotes_temp_html_preview_" + NoteFile\ID + ".html"
						DeleteFile CurrentDir() + "NovaNotes_temp_html_preview_" + NoteFile\ID + ".html"
					EndIf
				Next
		End Select
	Case EventWindowClose
		If EventSource() = MainWindow
			RemoveAllFiles()
			End
		ElseIf EventSource() <> QuickTextWindow And EventSource() <> SpecialCharWindow
			For NoteFile.NoteFile = Each NoteFile
				If EventSource() = NoteFile\HTMLWindow
					FreeGadget NoteFile\HTMLPreview
					FreeGadget NoteFile\HTMLRefreshButton
					FreeGadget NoteFile\HTMLWindow
					DeleteFile CurrentDir() + "NovaNotes_temp_html_preview_" + NoteFile\ID + ".html"
					NoteFile\HTMLActive = False
				EndIf
			Next
		EndIf
	Case EventMenuAction
		Select EventData()
			Case 1001;File -> New File
				AddFile()
			Case 1003;File -> Open File
				AddFile(RequestFile("Select a file","txt,htm,html,*"))
			Case 1004;File -> Close File
				RemoveFile(CurrentNoteFile)
			Case 1006;File -> Close All Files
				RemoveAllFiles()
			Case 1007;File -> Save File
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						If NoteFile\FullName = "\?";unnamed file
							NoteFile\FullName = RequestFile("Save file as...","txt,htm,html,*",True,"New File.txt")
						EndIf
						If NoteFile\FullName = "" Then Goto NextLoop
						For I = Len(NoteFile\FullName) To 0 Step -1
							If Mid(NoteFile\FullName,I,1) = ""
								NoteFile\FileName = Right(NoteFile\FullName,Len(NoteFile\FullName) - I)
								Exit
							EndIf
						Next
						SetGadgetText FileNameLabel,NoteFile\FileName
						SetMenuText NoteFile\MenuEntry,NoteFile\FileName
						UpdateWindowMenu MainWindow
						NoteFile\Content = TextAreaText(NoteFile\TextArea)
						SaveFile(NoteFile\FileName,NoteFile\FullName,TextAreaLen(NoteFile\TextArea),TextAreaText(NoteFile\TextArea))
						ActivateGadget NoteFile\TextArea
					EndIf
				Next
			Case 1008;File -> Save File As...
				For NoteFile.NoteFile = Each NoteFile
					NoteFile\FullName = RequestFile("Save file as...","txt,htm,html,*",True,"New File.txt")
					If NoteFile\FullName = "" Then Goto NextLoop
					For i = Len(NoteFile\FullName) To 0 Step -1
						If Mid(NoteFile\FullName,i,1) = ""
							NoteFile\FileName = Right(NoteFile\FullName,Len(NoteFile\FullName) - i)
							Exit
						EndIf
					Next
					SetGadgetText FileNameLabel,NoteFile\FileName
					SetMenuText NoteFile\MenuEntry,NoteFile\FileName
					UpdateWindowMenu MainWindow
					NoteFile\Content = TextAreaText(NoteFile\TextArea)
					SaveFile(NoteFile\FileName,NoteFile\FullName,TextAreaLen(NoteFile\TextArea),TextAreaText(NoteFile\TextArea))
					ActivateGadget NoteFile\TextArea
				Next
			Case 1010;File -> Save All Files
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\FullName = "\?"
						NoteFile\FullName = RequestFile("Save file as...","txt,htm,html,*",True,"New File.txt")
					EndIf
					If NoteFile\FullName = "" Then Goto NextLoop
					NoteFile\Content = TextAreaText(NoteFile\TextArea)
					SaveFile(NoteFile\FileName,NoteFile\FullName,TextAreaLen(NoteFile\TextArea),TextAreaText(NoteFile\TextArea))
					ActivateGadget NoteFile\TextArea
				Next
			Case 1011;File -> Exit
				RemoveAllFiles()
				End
			Case 1012;File -> File Statistics
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						If Right(NoteFile\FileName,4) = ".txt"
							Local NoteFileType$ = "Plain Text Document"
						ElseIf Right(NoteFile\Filename,4) = ".htm" Or Right(NoteFile\FileName,5) = ".html"
							NoteFileType = "HTML Web Page"
						Else
							NoteFileType = "Unknown"
						EndIf
						Local NoteFileSize = Len(TextAreaText(NoteFile\TextArea))
						If NoteFileSize > 2048
							Local NoteFileByteSize$ = "about " + (NoteFileSize / 1024) + " kilobytes"
						Else
							NoteFileByteSize$ = NoteFileSize + " bytes"
						EndIf
						Notify "File Statistics for " + Chr(34) + NoteFile\FileName + Chr(34) + Chr(10) + Chr(10) + "Size: " + NoteFileSize + " characters (" + NoteFileByteSize + ")" + Chr(10) + Chr(10) + "Type of file: " + NoteFileType
					EndIf
				Next
			Case 1013;File -> Revert File
				If Proceed("This will erase any changes you made since you opened this file." + Chr(10) + Chr(10) + "Are you sure you want to proceed?",True) = 1
					For NoteFile.NoteFile = Each NoteFile
						If NoteFile\ID = CurrentNoteFile
							SetTextAreaText NoteFile\TextArea,NoteFile\OrigContent
						EndIf
					Next
				EndIf
			Case 2001;View -> Preview HTML
				PreviewHTML(CurrentNoteFile)
			Case 3001;Settings -> Word Wrap
				If WordWrap = True
					WordWrap = False
					UncheckMenu WordWrapMenu
				Else
					WordWrap = True
					CheckMenu WordWrapMenu
				EndIf
				UpdateWindowMenu MainWindow
				For NoteFile.NoteFile = Each NoteFile
					Local NoteFileContent$ = TextAreaText(NoteFile\TextArea)
					FreeGadget NoteFile\TextArea
					NoteFile\TextArea = CreateTextArea(0,25,ClientWidth(MainWindow),ClientHeight(MainWindow) - 25,MainWindow,WordWrap)
					SetTextAreaText NoteFile\TextArea,NoteFileContent
					NoteFileContent = ""
					SetTextAreaFont NoteFile\TextArea,CurrentFont
					SetTextAreaColor NoteFile\TextArea,CurrentFontRed,CurrentFontGreen,CurrentFontBlue,False
					SetTextAreaColor NoteFile\TextArea,CurrentBGRed,CurrentBGGreen,CurrentBGBlue,True
					If NoteFile\ID = CurrentNoteFile
						ShowGadget NoteFile\TextArea
					Else
						HideGadget NoteFile\TextArea
					EndIf
				Next
				SettingChanged = True
			Case 3002;Settings -> Font
				CurrentFont = RequestFont()
				For NoteFile.NoteFile = Each NoteFile
					SetTextAreaFont NoteFile\TextArea,CurrentFont
					SetTextAreaColor NoteFile\TextArea,CurrentFontRed,CurrentFontGreen,CurrentFontBlue
				Next
			Case 3003;Settings -> Font Color
				RequestColor(CurrentFontRed,CurrentFontGreen,CurrentFontBlue)
				CurrentFontRed = RequestedRed()
				CurrentFontGreen = RequestedGreen()
				CurrentFontBlue = RequestedBlue()
				For NoteFile.NoteFile = Each NoteFile
					SetTextAreaColor NoteFile\TextArea,CurrentFontRed,CurrentFontGreen,CurrentFontBlue,False
				Next
				SettingChanged = True
			Case 3004;Settings -> Background Color
				RequestColor(CurrentBGRed,CurrentBGGreen,CurrentBGBlue)
				CurrentBGRed = RequestedRed()
				CurrentBGGreen = RequestedGreen()
				CurrentBGBlue = RequestedBlue()
				For NoteFile.NoteFile = Each NoteFile
					SetTextAreaColor NoteFile\TextArea,CurrentBGRed,CurrentBGGreen,CurrentBGBlue,True
				Next
				SettingChanged = True
			Case 3006;Settings -> QuickText -> Block 1
				If QuickTextWindowOpen = False
					ShowGadget QuickTextWindow
					SetGadgetText QuickTextWindow,"QuickText Editor - Block 1"
					SetTextAreaText QuickTextArea,QuickText(1)
					QuickTextWindowOpen = True
				EndIf
			Case 3007;Settings -> QuickText -> Block 2
				If QuickTextWindowOpen = False
					ShowGadget QuickTextWindow
					SetGadgetText QuickTextWindow,"QuickText Editor - Block 2"
					SetTextAreaText QuickTextArea,QuickText(2)
					QuickTextWindowOpen = True
				EndIf
			Case 3008;Settings -> QuickText -> Block 3
				If QuickTextWindowOpen = False
					ShowGadget QuickTextWindow
					SetGadgetText QuickTextWindow,"QuickText Editor - Block 3"
					SetTextAreaText QuickTextArea,QuickText(3)
					QuickTextWindowOpen = True
				EndIf
			Case 3009;Settings -> QuickText -> Block 4
				If QuickTextWindowOpen = False
					ShowGadget QuickTextWindow
					SetGadgetText QuickTextWindow,"QuickText Editor - Block 4"
					SetTextAreaText QuickTextArea,QuickText(4)
					QuickTextWindowOpen = True
				EndIf
			Case 3010;Settings -> QuickText -> Block 5
				If QuickTextWindowOpen = False
					ShowGadget QuickTextWindow
					SetGadgetText QuickTextWindow,"QuickText Editor - Block 5"
					SetTextAreaText QuickTextArea,QuickText(5)
					QuickTextWindowOpen = True
				EndIf
			Case 3011;Settings -> QuickText -> Block 6
				If QuickTextWindowOpen = False
					ShowGadget QuickTextWindow
					SetGadgetText QuickTextWindow,"QuickText Editor - Block 6"
					SetTextAreaText QuickTextArea,QuickText(6)
					QuickTextWindowOpen = True
				EndIf
			Case 3012;Settings -> QuickText -> Block 7
				If QuickTextWindowOpen = False
					ShowGadget QuickTextWindow
					SetGadgetText QuickTextWindow,"QuickText Editor - Block 7"
					SetTextAreaText QuickTextArea,QuickText(7)
					QuickTextWindowOpen = True
				EndIf
			Case 3013;Settings -> QuickText -> Block 8
				If QuickTextWindowOpen = False
					ShowGadget QuickTextWindow
					SetGadgetText QuickTextWindow,"QuickText Editor - Block 8"
					SetTextAreaText QuickTextArea,QuickText(8)
					QuickTextWindowOpen = True
				EndIf
			Case 3014;Settings -> QuickText -> Block 9
				If QuickTextWindowOpen = False
					ShowGadget QuickTextWindow
					SetGadgetText QuickTextWindow,"QuickText Editor - Block 9"
					SetTextAreaText QuickTextArea,QuickText(9)
					QuickTextWindowOpen = True
				EndIf
			Case 3015;Settings -> QuickText -> Block 10
				If QuickTextWindowOpen = False
					ShowGadget QuickTextWindow
					SetGadgetText QuickTextWindow,"QuickText Editor - Block 10"
					SetTextAreaText QuickTextArea,QuickText(0)
					QuickTextWindowOpen = True
				EndIf
			Case 3099;Setting -> Restore Defaults
				If Proceed("This will reset all custom settings to their original state, INCLUDING ALL QUICKTEXT BLOCKS." + Chr(10) + Chr(10) + "Are you sure you want to proceed?") = 1
					For NoteFile.NoteFile = Each NoteFile
						NoteFileContent = TextAreaText(NoteFile\TextArea)
						FreeGadget NoteFile\TextArea
						NoteFile\TextArea = CreateTextArea(0,25,ClientWidth(MainWindow),ClientHeight(MainWindow) - 25,MainWindow,WordWrap)
						SetTextAreaText NoteFile\TextArea,NoteFileContent
						NoteFileContent = ""
						SetTextAreaFont NoteFile\TextArea,CurrentFont
						SetTextAreaColor NoteFile\TextArea,CurrentFontRed,CurrentFontGreen,CurrentFontBlue,False
						SetTextAreaColor NoteFile\TextArea,CurrentBGRed,CurrentBGGreen,CurrentBGBlue,True
						If NoteFile\ID = CurrentNoteFile
							ShowGadget NoteFile\TextArea
						Else
							HideGadget NoteFile\TextArea
						EndIf
					Next
					WordWrap = True
					CheckMenu WordWrapMenu
					UpdateWindowMenu MainWindow
					For NoteFile.NoteFile = Each NoteFile
						SetTextAreaColor NoteFile\TextArea,255,255,255,True
						SetTextAreaColor NoteFile\TextArea,0,0,0,False
					Next
					CurrentBGRed = 255
					CurrentBGGreen = 255
					CurrentBGBlue = 255
					CurrentFontRed = 0
					CurrentFontGreen = 0
					CurrentFontBlue = 0
					RestoreDefaults()
				EndIf
			Case 4001;Help -> HotKeys
				Notify "KEYBOARD SHORTCUTS (HotKeys), PAGE 1 OF 3: Menu Operations" + Chr(10) + Chr(10) + "Ctrl + N = New File" + Chr(10) + "Ctrl + O = Open File" + Chr(10) + "Ctrl + S = Save File" + Chr(10) + "Ctrl + Shift + S = Save File As" + Chr(10) + "F4 = Save All Files" + Chr(10) + "F7 = File Statistics" + Chr(10) + "F5 = Preview HTML" + Chr(10) + "F2 = HotKey Help" + Chr(10) + "F1 = About NovaNotes"
				Notify "KEYBOARD SHORTCUTS (HotKeys), PAGE 2 OF 3: HTML Tags" + Chr(10) + Chr(10) + "Ctrl + F1 = <HTML>" + Chr(10) + "Ctrl + F2 = <HEAD>" + Chr(10) + "Ctrl + F3 = <TITLE>" + Chr(10) + "Ctrl + F4 = <BODY>" + Chr(10) + "Ctrl + F5 = <B>" + Chr(10) + "Ctrl + F6 = <I>" + Chr(10) + "Ctrl + F7 = <U>" + Chr(10) + "Ctrl + F8 = <A HREF = " + Chr(34) + Chr(34) + ">" + Chr(10) + "Ctrl + F9 = <TABLE>" + Chr(10) + "Ctrl + F11 = <TR>" + Chr(10) + "Ctrl + F12 = <TD>" + Chr(10) + "Ctrl + Shift + F1 = </HTML>" + Chr(10) + "Ctrl + Shift + F2 = </HEAD>" + Chr(10) + "Ctrl + Shift + F3 = </TITLE>" + Chr(10) + "Ctrl + Shift + F4 = </BODY>" + Chr(10) + "Ctrl + Shift + F5 = </B>" + Chr(10) + "Ctrl + Shift + F6 = </I>" + Chr(10) + "Ctrl + Shift + F7 = </U>" + Chr(10) + "Ctrl + Shift + F8 = </A>" + Chr(10) + "Ctrl + Shift + F9 = </TABLE>" + Chr(10) + "Ctrl + Shift + F11 = </TR>" + Chr(10) + "Ctrl + Shift + F12 = </TD>"
				Notify "KEYBOARD SHORTCUTS (HotKeys), PAGE 3 OF 3: QuickText" + Chr(10) + Chr(10) + "Ctrl + 1 = Insert QuickText Block 1" + Chr(10) + "Ctrl + 2 = Insert QuickText Block 2" + Chr(10) + "Ctrl + 3 = Insert QuickText Block 3" + Chr(10) + "Ctrl + 4 = Insert QuickText Block 4" + Chr(10) + "Ctrl + 5 = Insert QuickText Block 5" + Chr(10) + "Ctrl + 6 = Insert QuickText Block 6" + Chr(10) + "Ctrl + 7 = Insert QuickText Block 7" + Chr(10) + "Ctrl + 8 = Insert QuickText Block 8" + Chr(10) + "Ctrl + 9 = Insert QuickText Block 9" + Chr(10) + "Ctrl + 0 = Insert QuickText Block 10" + Chr(10) + "Ctrl + Shift + 1 = Edit QuickText Block 1" + Chr(10) + "Ctrl + Shift + 2 = Edit QuickText Block 2" + Chr(10) + "Ctrl + Shift + 3 = Edit QuickText Block 3" + Chr(10) + "Ctrl + Shift + 4 = Edit QuickText Block 4" + Chr(10) + "Ctrl + Shift + 5 = Edit QuickText Block 5" + Chr(10) + "Ctrl + Shift + 6 = Edit QuickText Block 6" + Chr(10) + "Ctrl + Shift + 7 = Edit QuickText Block 7" + Chr(10) + "Ctrl + Shift + 8 = Edit QuickText Block 8" + Chr(10) + "Ctrl + Shift + 9 = Edit QuickText Block 9" + Chr(10) + "Ctrl + Shift + 0 = Edit QuickText Block 10"
			Case 4002;Help -> About
				Notify "NovaNotes" + Chr(10) + Chr(10) + "A super NotePad program by Adam Novagen" + Chr(10) + Chr(10) + "Edit multiple text files and web pages with ease!" + Chr(10) + Chr(10) + "Speed up your writing with QuickText, ten editable " + Chr(34) + "blocks" + Chr(34) + " of text" + Chr(10) + "that you can insert anywhere in your files with the push of a button!" + Chr(10) + Chr(10) + "Insert common HTML tags with a simple Ctrl + Key combo!" + Chr(10) + Chr(10) + "All this and more from just over 1000 lines of code..." + Chr(10) + "... Eat your heart out, Microsoft! ^_^" + Chr(10) + Chr(10) +"© Copyright Adam Novagen 2008"
			Case 5002;Insert -> QuickText -> Block 1
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,QuickText(1) + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),Len(QuickText(1))),TextAreaCursor(NoteFile\TextArea),Len(QuickText(1))
					EndIf
				Next
			Case 5003;Insert -> QuickText -> Block 2
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,QuickText(2) + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),Len(QuickText(2))),TextAreaCursor(NoteFile\TextArea),Len(QuickText(2))
					EndIf
				Next
			Case 5004;Insert -> QuickText -> Block 3
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,QuickText(3) + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),Len(QuickText(3))),TextAreaCursor(NoteFile\TextArea),Len(QuickText(3))
					EndIf
				Next
			Case 5005;Insert -> QuickText -> Block 4
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,QuickText(4) + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),Len(QuickText(4))),TextAreaCursor(NoteFile\TextArea),Len(QuickText(4))
					EndIf
				Next
			Case 5006;Insert -> QuickText -> Block 5
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,QuickText(5) + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),Len(QuickText(5))),TextAreaCursor(NoteFile\TextArea),Len(QuickText(5))
					EndIf
				Next
			Case 5007;Insert -> QuickText -> Block 6
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,QuickText(6) + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),Len(QuickText(6))),TextAreaCursor(NoteFile\TextArea),Len(QuickText(6))
					EndIf
				Next
			Case 5008;Insert -> QuickText -> Block 7
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,QuickText(7) + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),Len(QuickText(7))),TextAreaCursor(NoteFile\TextArea),Len(QuickText(7))
					EndIf
				Next
			Case 5009;Insert -> QuickText -> Block 8
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,QuickText(8) + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),Len(QuickText(8))),TextAreaCursor(NoteFile\TextArea),Len(QuickText(8))
					EndIf
				Next
			Case 5010;Insert -> QuickText -> Block 9
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,QuickText(9) + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),Len(QuickText(9))),TextAreaCursor(NoteFile\TextArea),Len(QuickText(9))
					EndIf
				Next
			Case 5011;Insert -> QuickText -> Block 10
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,QuickText(0) + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),Len(QuickText(0))),TextAreaCursor(NoteFile\TextArea),Len(QuickText(0))
					EndIf
				Next
			Case 5012;Insert -> Special Character...
				If SpecialCharWindowOpen = False
					ShowGadget SpecialCharWindow
					SpecialCharWindowOpen = True
				EndIf
			Default
				For NoteFile.NoteFile = Each NoteFile
					If EventData() = NoteFile\ID
						CheckMenu NoteFile\MenuEntry
						ShowGadget NoteFile\TextArea
						EnableGadget NoteFile\TextArea
						ActivateGadget NoteFile\TextArea
						UpdateWindowMenu MainWindow
						CurrentNoteFile = NoteFile\ID
						SetGadgetText FileNameLabel,NoteFile\FileName
					Else
						UncheckMenu NoteFile\MenuEntry
						HideGadget NoteFile\TextArea
						DisableGadget NoteFile\TextArea
						UpdateWindowMenu MainWindow
					EndIf
				Next
		End Select
	Case EventHotKeyHit
		Select EventData()
			Case 101;<HTML>
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,"<HTML>" + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),6),TextAreaCursor(NoteFile\TextArea),6
					EndIf
				Next
			Case 102;<HEAD>
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,"<HEAD>" + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),6),TextAreaCursor(NoteFile\TextArea),6
					EndIf
				Next
			Case 103;<TITLE>
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,"<TITLE>" + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),7),TextAreaCursor(NoteFile\TextArea),7
					EndIf
				Next
			Case 104;<BODY>
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,"<BODY>" + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),6),TextAreaCursor(NoteFile\TextArea),6
					EndIf
				Next
			Case 105;<B>
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,"<B>" + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),3),TextAreaCursor(NoteFile\TextArea),3
					EndIf
				Next
			Case 106;<I>
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,"<I>" + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),3),TextAreaCursor(NoteFile\TextArea),3
					EndIf
				Next
			Case 107;<U>
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,"<U>" + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),3),TextAreaCursor(NoteFile\TextArea),3
					EndIf
				Next
			Case 108;<A HREF = "">
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,"<A HREF = " + Chr(34) + Chr(34) + ">" + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),13),TextAreaCursor(NoteFile\TextArea),13
					EndIf
				Next
			Case 109;<TABLE>
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,"<TABLE>" + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),7),TextAreaCursor(NoteFile\TextArea),7
					EndIf
				Next
			Case 110;<TR>
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,"<TR>" + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),4),TextAreaCursor(NoteFile\TextArea),4
					EndIf
				Next
			Case 111;<TD>
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,"<TD>" + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),4),TextAreaCursor(NoteFile\TextArea),4
					EndIf
				Next
			Case 112;</HTML>
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,"</HTML>" + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),7),TextAreaCursor(NoteFile\TextArea),7
					EndIf
				Next
			Case 113;</HEAD>
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,"</HEAD>" + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),7),TextAreaCursor(NoteFile\TextArea),7
					EndIf
				Next
			Case 114;</TITLE>
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,"</TITLE>" + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),8),TextAreaCursor(NoteFile\TextArea),8
					EndIf
				Next
			Case 115;</BODY>
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,"</BODY>" + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),7),TextAreaCursor(NoteFile\TextArea),7
					EndIf
				Next
			Case 116;</B>
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,"</B>" + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),4),TextAreaCursor(NoteFile\TextArea),4
					EndIf
				Next
			Case 117;</I>
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,"</I>" + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),4),TextAreaCursor(NoteFile\TextArea),4
					EndIf
				Next
			Case 118;</U>
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,"</U>" + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),4),TextAreaCursor(NoteFile\TextArea),4
					EndIf
				Next
			Case 119;</A>
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,"</A>" + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),4),TextAreaCursor(NoteFile\TextArea),4
					EndIf
				Next
			Case 120;</TABLE>
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,"</TABLE>" + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),8),TextAreaCursor(NoteFile\TextArea),8
					EndIf
				Next
			Case 121;</TR>
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,"</TR>" + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),5),TextAreaCursor(NoteFile\TextArea),5
					EndIf
				Next
			Case 122;</TD>
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,"</TD>" + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),5),TextAreaCursor(NoteFile\TextArea),5
					EndIf
				Next
			Case 201;QuickText block 1
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,QuickText(1) + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),Len(QuickText(1))),TextAreaCursor(NoteFile\TextArea),Len(QuickText(1))
					EndIf
				Next
			Case 202;QuickText block 2
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,QuickText(2) + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),Len(QuickText(2))),TextAreaCursor(NoteFile\TextArea),Len(QuickText(2))
					EndIf
				Next
			Case 203;QuickText block 3
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,QuickText(3) + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),Len(QuickText(3))),TextAreaCursor(NoteFile\TextArea),Len(QuickText(3))
					EndIf
				Next
			Case 204;QuickText block 4
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,QuickText(4) + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),Len(QuickText(4))),TextAreaCursor(NoteFile\TextArea),Len(QuickText(4))
					EndIf
				Next
			Case 205;QuickText block 5
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,QuickText(5) + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),Len(QuickText(5))),TextAreaCursor(NoteFile\TextArea),Len(QuickText(5))
					EndIf
				Next
			Case 206;QuickText block 6
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,QuickText(6) + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),Len(QuickText(6))),TextAreaCursor(NoteFile\TextArea),Len(QuickText(6))
					EndIf
				Next
			Case 207;QuickText block 7
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,QuickText(7) + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),Len(QuickText(7))),TextAreaCursor(NoteFile\TextArea),Len(QuickText(7))
					EndIf
				Next
			Case 208;QuickText block 8
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,QuickText(8) + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),Len(QuickText(8))),TextAreaCursor(NoteFile\TextArea),Len(QuickText(8))
					EndIf
				Next
			Case 209;QuickText block 9
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,QuickText(9) + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),Len(QuickText(9))),TextAreaCursor(NoteFile\TextArea),Len(QuickText(9))
					EndIf
				Next
			Case 210;QuickText block 10
				For NoteFile.NoteFile = Each NoteFile
					If NoteFile\ID = CurrentNoteFile
						SetTextAreaText NoteFile\TextArea,QuickText(0) + TextAreaText(NoteFile\TextArea,TextAreaCursor(NoteFile\TextArea),Len(QuickText(0))),TextAreaCursor(NoteFile\TextArea),Len(QuickText(0))
					EndIf
				Next
			Case 301;Calculate typing speed
				GetTypingSpeed()
		End Select
End Select


.NextLoop;aborts any current operations


DisableMenu FileStatsMenu
DisableMenu RevertFileMenu
For NoteFile.NoteFile = Each NoteFile;check to see if any files are open
	EnableMenu FileStatsMenu
	EnableMenu RevertFileMenu
Next
UpdateWindowMenu MainWindow


If SettingChanged = True;update settings file
	DataFile = WriteFile("NovaNotes.dat")
	WriteByte DataFile,WordWrap
	WriteByte DataFile,CurrentBGRed
	WriteByte DataFile,CurrentBGGreen
	WriteByte DataFile,CurrentBGBlue
	WriteByte DataFile,CurrentFontRed
	WriteByte DataFile,CurrentFontGreen
	WriteByte DataFile,CurrentFontBlue
	WriteByte DataFile,APPMaximized
	For I = 0 To 9
		WriteInt DataFile,Len(QuickText(I))
		For I2 = 1 To Len(QuickText(I))
			WriteByte DataFile,Asc(Mid(QuickText(I),I2,1))
		Next
	Next
	CloseFile DataFile
	SettingChanged = False
EndIf


Forever;IT'S THE LOOP THAT WOULDN'T DIE!!! EYAAAAAAAAAAAAAAGH!!!!!!!! @_@


Function RemoveFile(NoteFileID)


For NoteFile.NoteFile = Each NoteFile
	UncheckMenu NoteFile\MenuEntry
	DisableGadget NoteFile\TextArea
	If NoteFile\ID = NoteFileID
		If TextAreaText(NoteFile\TextArea) <> NoteFile\Content;if file has been altered
			Select Proceed("The file " + NoteFile\FileName + " has been altered since you last saved it." + Chr(10) + Chr(10) + "Would you like to save these changes?",True)
				Case 1;yes
					If NoteFile\FullName = "\?";illegal file name, designating a new file
						NoteFile\FullName = RequestFile("Save file as...","txt,htm,html,*",True,"New File.txt")
					EndIf
					If NoteFile\FullName = "";canceled "Save" operation
						EnableGadget NoteFile\TextArea
						Return
					EndIf
					SaveFile(NoteFile\FileName,NoteFile\FullName,TextAreaLen(NoteFile\TextArea),TextAreaText(NoteFile\TextArea))
				Case 0;no
					Goto DeleteNoteFile
				Default;cancel
					EnableGadget NoteFile\TextArea
					Return
			End Select
		EndIf
		.DeleteNoteFile
		HideGadget NoteFile\TextArea
		FreeGadget NoteFile\TextArea
		SetMenuText NoteFile\MenuEntry,NoteFile\FileName + " (closed)"
		DisableMenu NoteFile\MenuEntry
		If NoteFile\HTMLActive = True
			FreeGadget NoteFile\HTMLPreview
			FreeGadget NoteFile\HTMLRefreshButton
			FreeGadget NoteFile\HTMLWindow
		EndIf
		Delete NoteFile
		NoteFile.NoteFile = First NoteFile
			If Not NoteFile = Null
				CurrentNoteFile = NoteFile\ID
				ShowGadget NoteFile\TextArea
				EnableGadget NoteFile\TextArea
				ActivateGadget NoteFile\TextArea
				SetGadgetText FileNameLabel,NoteFile\FileName
				CheckMenu NoteFile\MenuEntry
			Else
				SetGadgetText FileNameLabel,""
			EndIf
			UpdateWindowMenu MainWindow
			Return
	EndIf
Next


End Function


Function RemoveAllFiles()


For NoteFile.NoteFile = Each NoteFile UncheckMenu NoteFile\MenuEntry Next


For NoteFile.NoteFile = Each NoteFile
	UncheckMenu NoteFile\MenuEntry
	DisableGadget NoteFile\TextArea
	If TextAreaText(NoteFile\TextArea) <> NoteFile\Content
		Select Proceed("The file " + NoteFile\FileName + " has been altered since you last saved it." + Chr(10) + Chr(10) + "Would you like to save these changes?",True)
			Case 1;yes
				If NoteFile\FullName = "\?"
					NoteFile\FullName = RequestFile("Save file as...","txt,htm,html,*",True,"New File.txt")
				EndIf
				If NoteFile\FullName = ""
					EnableGadget NoteFile\TextArea
					Return
				EndIf
				SaveFile(NoteFile\FileName,NoteFile\FullName,TextAreaLen(NoteFile\TextArea),TextAreaText(NoteFile\TextArea))
			Case 0;no
				Goto DeleteNoteFile2
			Default;cancel
				UpdateWindowMenu MainWindow
				Return
		End Select
	EndIf
	.DeleteNoteFile2
	FreeGadget NoteFile\TextArea
	SetMenuText NoteFile\MenuEntry,NoteFile\FileName + " (closed)"
	DisableMenu NoteFile\MenuEntry
	If NoteFile\HTMLActive = True
		FreeGadget NoteFile\HTMLPreview
		FreeGadget NoteFile\HTMLRefreshButton
		FreeGadget NoteFile\HTMLWindow
	EndIf
	Delete NoteFile
	.NextNoteFile
Next


SetGadgetText FileNameLabel,""
UpdateWindowMenu MainWindow


End Function


Function AddFile(FileName$ = "\?");neither "" nor "?" can appear in a legal filename


If FileName = "" Then Return;"" signifies a canceled "Open" operation


NoteFileNum = NoteFileNum + 1
CurrentNoteFile = NoteFileNum


NoteFile.NoteFile = New NoteFile
NoteFile\ID = NoteFileNum
NoteFile\FullName = FileName
NoteFile\TextArea = CreateTextArea(0,25,ClientWidth(MainWindow),ClientHeight(MainWindow) - 25,MainWindow,WordWrap)
SetTextAreaFont NoteFile\TextArea,CurrentFont
SetTextAreaColor NoteFile\TextArea,CurrentFontRed,CurrentFontGreen,CurrentFontBlue,False
SetTextAreaColor NoteFile\TextArea,CurrentBGRed,CurrentBGGreen,CurrentBGBlue,True
SetGadgetLayout NoteFile\TextArea,1,1,1,1


If FileName = "\?"
	NoteFile\FileName = "New File"
	SetGadgetText FileNameLabel,NoteFile\FileName
	NoteFile\MenuEntry = CreateMenu("New File",NoteFile\ID,ViewMenu)
	For NoteFile.NoteFile = Each NoteFile
		If NoteFile\ID = NoteFileNum;newly created NoteFile
			CheckMenu NoteFile\MenuEntry
			ActivateGadget NoteFile\TextArea
		Else
			UncheckMenu NoteFile\MenuEntry
			HideGadget NoteFile\TextArea
		EndIf
	Next
	UpdateWindowMenu MainWindow
	Return
Else
	For I = Len(FileName) To 0 Step -1;remove directory path from filename
		If Mid(FileName,I,1) = ""
			NoteFile\FileName = Right(FileName,Len(FileName) - I)
			Exit
		EndIf
	Next
EndIf


Local CurrentLine$ = ""
Local LoadingBarWindow = CreateWindow("Loading " + NoteFile\FileName + "...",(GadgetWidth(Desktop()) / 2) - 125,(GadgetHeight(Desktop()) / 2) - 50,250,100,MainWindow,1 + 32)
Local FileLoadingBar = CreateProgBar(0,25,250,50,LoadingBarWindow)
Local FileLoadingLabel = CreateLabel("0 of " + (FileSize(NoteFile\FullName) / 1024) + " Kilobytes loaded",0,0,ClientWidth(LoadingBarWindow),50,LoadingBarWindow)


Local File = ReadFile(FileName)
Local BytePos
While Not Eof(File)
BytePos = BytePos + 1
CurrentLine = CurrentLine + Chr(ReadByte(File))
;update the progress bar only at every 1024th byte - boosts loading speed
If BytePos => 1024
	BytePos = 0
	SetGadgetText FileLoadingLabel,(FilePos(File) / 1024) + " of " + (FileSize(NoteFile\FullName) / 1024) + " Kilobytes loaded"
	UpdateProgBar FileLoadingBar,Float(Percent(FilePos(File),FileSize(FileName)) / 100)
EndIf
Wend
CloseFile File
NoteFile\OrigContent = CurrentLine
NoteFile\Content = CurrentLine
SetGadgetText NoteFile\TextArea,CurrentLine
ActivateGadget NoteFile\TextArea


SetGadgetText FileNameLabel,NoteFile\FileName
NoteFile\MenuEntry = CreateMenu(NoteFile\FileName,NoteFile\ID,ViewMenu)
For NoteFile.NoteFile = Each NoteFile
	If NoteFile\ID = NoteFileNum;newly created NoteFile
		CheckMenu NoteFile\MenuEntry
	Else
		UncheckMenu NoteFile\MenuEntry
		HideGadget NoteFile\TextArea
	EndIf
Next
UpdateWindowMenu MainWindow


FreeGadget FileLoadingBar
FreeGadget LoadingBarLabel
FreeGadget LoadingBarWindow


End Function


Function Percent#(Part#,Whole#);determines what percent Part is of Whole


Return Part * (100 / Whole)


End Function


Function PreviewHTML(NoteFileID)


For NoteFile.NoteFile = Each NoteFile
	If NoteFile\ID = NoteFileID
		If NoteFile\HTMLActive = False
			NoteFile\HTMLWindow = CreateWindow("NovaNotes HTML Preview - " + NoteFile\FileName,(GadgetWidth(Desktop()) / 2) - 400,(GadgetHeight(Desktop()) / 2) - 300,800,600,0,1 + 2 + 32)
			NoteFile\HTMLRefreshButton = CreateButton("Refresh",0,0,ClientWidth(NoteFile\HTMLWindow),25,NoteFile\HTMLWindow)
			NoteFile\HTMLPreview = CreateHtmlView(0,25,ClientWidth(NoteFile\HTMLWindow),ClientHeight(NoteFile\HTMLWindow) - 25,NoteFile\HTMLWindow)
			SetGadgetLayout NoteFile\HTMLPreview,1,1,1,1
			SetGadgetLayout NoteFile\HTMLRefreshButton,1,1,1,0
			Local File = WriteFile(CurrentDir() + "NovaNotes_temp_html_preview_" + NoteFile\ID + ".html")
			WriteLine File,TextAreaText(NoteFile\TextArea)
			CloseFile File
			HtmlViewGo NoteFile\HTMLPreview,CurrentDir() + "NovaNotes_temp_html_preview_" + NoteFile\ID + ".html"
			DeleteFile CurrentDir() + "NovaNotes_temp_html_preview_" + NoteFile\ID + ".html"
			NoteFile\HTMLActive = True
		Else
			ActivateGadget(NoteFile\HTMLWindow)
			File = WriteFile(CurrentDir() + "NovaNotes_temp_html_preview_" + NoteFile\ID + ".html")
			WriteLine File,TextAreaText(NoteFile\TextArea)
			CloseFile File
			HtmlViewGo NoteFile\HTMLPreview,CurrentDir() + "NovaNotes_temp_html_preview_" + NoteFile\ID + ".html"
			DeleteFile CurrentDir() + "NovaNotes_temp_html_preview_" + NoteFile\ID + ".html"
		EndIf
	EndIf
Next


End Function


Function GetTypingSpeed()


;WPM = 60,000 milliseconds (one minute) divided by the time since the last word
Local TypingSpeed = 60000 / (MilliSecs() - LastWord)


LastWord = MilliSecs();reset the timer


SetStatusText MainWindow,"Current typing speed: " + TypingSpeed + " WPM (Words Per Minute)"


End Function


Function RestoreDefaults()


DataFile = WriteFile("NovaNotes.dat")
WriteByte DataFile,1;word wrap
WriteByte DataFile,255;bg red
WriteByte DataFile,255;bg green
WriteByte DataFile,255;bg blue
WriteByte DataFile,0;font red
WriteByte DataFile,0;font green
WriteByte DataFile,0;font blue
WriteByte DataFile,0;window maximization
For I = 0 To 9
	QuickText(I) = "QuickText!"
	WriteInt DataFile,10
	WriteByte DataFile,Asc("Q")
	WriteByte DataFile,Asc("u")
	WriteByte DataFile,Asc("i")
	WriteByte DataFile,Asc("c")
	WriteByte DataFile,Asc("k")
	WriteByte DataFile,Asc("T")
	WriteByte DataFile,Asc("e")
	WriteByte DataFile,Asc("x")
	WriteByte DataFile,Asc("t")
	WriteByte DataFile,Asc("!")
Next
CloseFile DataFile


End Function


Function SaveFile(FileName$,FullName$,OutFileSize,Content$)


Local BytePos
Local LoadingBarWindow = CreateWindow("Saving " + FileName + "...",(GadgetWidth(Desktop()) / 2) - 125,(GadgetHeight(Desktop()) / 2) - 50,250,100,MainWindow,1 + 32)
Local FileLoadingBar = CreateProgBar(0,25,250,50,LoadingBarWindow)
Local FileLoadingLabel = CreateLabel("0 of " + (FileSize(FullName) / 1024) + " Kilobytes saved",0,0,ClientWidth(LoadingBarWindow),50,LoadingBarWindow)
File = WriteFile(FullName)
For I = 1 To OutFileSize
	BytePos = BytePos + 1
	WriteByte File,Asc(Mid(Content,I,1))
	If BytePos => 1024
		BytePos = 0
		SetGadgetText FileLoadingLabel,(I / 1024) + " of " + (OutFileSize / 1024) + " Kilobytes saved"
		UpdateProgBar FileLoadingBar,Float(Percent(I,OutFileSize) / 100)
	EndIf
Next
CloseFile File
FreeGadget FileLoadingBar
FreeGadget LoadingBarLabel
FreeGadget LoadingBarWindow


End Function


;THE END!!! =D