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


Hey, could someone send me a Windows EXE for this? 'Cause like I said before, I've only got the B+ demo, I can't afford the full version, and I could really use this program these days! My email's in my profile information; just click my username.

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?

Isn't this what WordPad is for? I thought Microsoft bundled both of them for this reason?

Programmers Notepad 2... But we're sliding off topic!

Hey, could someone send me a Windows EXE for this? 'Cause like I said before, I've only got the B+ demo, I can't afford the full version
o.O

What would you say if I asked you to send me Photoshop CS3 because I can't afford the full version?

What would you say if I asked you to send me Photoshop CS3 because I can't afford the full version?

I meant an EXE of NOVANOTES, not B+. XP

I know what you meant.

Ok I tried to compile it and create a new file, and I got a debug error.

Object does not exist:
ActivateGadget Notefile/TextArea


Where did the error come from? That is, what line did it show up on?

EDIT: Never mind, I found it. SOURCE CODE HAS BEEN UPDATED. Major DUH moment. *smacks forehead*

Hey, could someone send me a Windows EXE for this?

I'm not sure if that would be contravening the letter of the license, but it would certainly be contravening the spirit of the license. If you want to compile, you buy the compiler, that's how it works.

As I say, it may or may not be permitted by the letter of the license, but you're essentially asking someone to help you "get around" the restrictions which BRL have placed upon their software in order to defend their IP rights.

Ok so I tried it again, and I really like it. This will be a huge help for updating my website.

Great work!

[qoute]I can't afford the full version[/qoute]

The full version of BlitzPlus is $60 and a trip to BurgerKing is probably about $5, so thats 12 less trips to BurgerKing and you got money for the license. I don't know if you ever go to BurgerKing, but it was just an example of how one might gather the money needed by not spending it on something one might not need anyways.

I am with Gabriel and Gfk on this one, its a way around the license and its not really fair to ask someone else to compile your code. If you really cannot afford to purchase the tool, then look for freeware languages, there are a good handful of them out there.

If you do decide one day to buy a blitz product, then I can highly recomend BlitzMax instead, its way better than BlitzPlus but its $20 more, although well worth it.

A suggestion for your application is that if would be great to have the opened textfiles shown as tabs instead of having to go through the menu because you can instantly see what files are opened.

...or, of course, you could recode (and compile) this program into whichever BRL product entitled you to post in these forums in the first place. Unless it was Maplet, of course. Actually, if you could do that, it'd be worth seeing.

...or, of course, you could recode (and compile) this program into whichever BRL product entitled you to post in these forums in the first place. Unless it was Maplet, of course. Actually, if you could do that, it'd be worth seeing.

!i!i!LOL!i!i!

I, personally, don't see anything too terribly wrong with giving him one EXE of a small, little program he has made. But if it's against the rules in the license, it's against the rules in the license.

it should run on practically ANY old computer with Windows or Mac OS!
Uhh ya.. about blitzplus being windows only.. *slaps Novagen with a rather large trout*

*slaps Novagen with a rather large trout*

Aww... Couldn't you have used a salmon instead? I like salmon. ^_^
Seriously Plash, nice gotcha.

a trip to BurgerKing is probably about $5


Really??? Damn we're getting screwed in the UK, a trip to burgerking here costs about £4.50, which is about $9. That's for something like a Whopper meal with a coke, not sure if that's large or regular though.

I don't even care though cause I never go there. Or McD's either.

Anyway, another programmers notepad can never hurt, good effort and I hope you keep going and producing even larger projects in Blitz in the future.


Really??? Damn we're getting screwed in the UK, a trip to burgerking here costs about £4.50, which is about $9. That's for something like a Whopper meal with a coke, not sure if that's large or regular though.



Really??? Damn we're getting screwed here in Birmingham!, a trip to burgerking here cost me £5.20, which is about $10.40. That's for a Whopper meal with a coke, not sure if that's large or regular though.

(lol, I don't do fast food but was forced to just yesterday, Horrible!)

trip to BurgerKing is probably about $5
Close to $10 here in the USA. I usually spend close to $20 for just myself, but I am a big eater.

Hi all,

Okay, I've been doing some good, hard thinking about this EXE issue, and I've finally sorted out the ramifications in my head.

I can understand why you would refuse to compile this code into an EXE for me: after all, if people did that sort of thing all the time, Blitz Research Ltd would soon go out of business. Also, it's morally wrong for me to expect to get a money-maker for free, when it's not supposed to be free.

That's the thing though: NovaNotes isn't a money-maker in any way, shape or form. See, with NovaNotes finished, I don't intend to use B+ again for a long time, if at all. The only reason I used it now was to create NovaNotes, and that's all.

So basically, you're telling me to pay $60 to use my own program, which I wouldn't pay $5 for; that's why I'm sharing it here for free. I'm not going to get any money out of NovaNotes. I can't use it to make games, or even media for games. I'm not going to sell any stories I write on it, just post them free on the web like everything else. So telling me to pay $60 to use a program of my own design that's technically freeware is a bit... Goofy.

BUT. There is one other side to this issue. Like I said earlier, Blitz would soon go bankrupt if no one had to bother buying their products anymore. And if I can get people to compile my programs for free, where's it going to stop? All it would take is a good con artist's story, and bam! Unlicensed Blitz APPs start popping up everywhere.

So, bottom line, I think we're all right; morally (and financially) speaking, I don't think there's anything wrong with me getting an EXE of NovaNotes. Practically speaking, however, if one person breaks (or even bends) the rules, more will follow. I will not be that one. Therefore, I won't ask for any more EXEs. If I decide to make more Blitz stuff in future, I'll buy it myself; until then, I'll live with the demo, while it lasts. I'd like to thank you all for your mature, well thought out responses; I respect you more all the time.

Thanks everyone!

Oh, and glad it helps, Sauer! Enjoy!

... but you've been using B+ for more than a year. That's what you would be paying the $60 for and not the compilation to a single .exe.
In addition, whether you're creating things to be sold for profit is irrelevant to the cost of B+. I don't expect to be able to use BRL products for free because I don't sell anything.

So basically, you're telling me to pay $60 to use my own program
Not at all. You can use it whenever you like from within Blitz.

Yeah, but I've only got 20 runs left... Otherwise there'd be no problem. T_T

:O Wheres the community spirit going?!?

Sorry but im with adam on this, seeing as his source is offered free to the community its not much to ask in return. He must have bought a blitz product to be here, so why the self-righteous flame? If a friend or family member gives you a text file (they wrote) to spice up and print for them is that wrong & would you say;
"No!! go buy your own copy of word and a printer!" ? (or.. would you?)

(Although if they did it "too much" then I probably would :)

There would be absolutely NOTHING against the license of bb legally (or morally) for someone to compile some freely available source (or any source with permission) and release the resulting EXE for everyones benefit. We do it all the time each time we release a product, if that were the case then all our customers would need to buy the compiler too. Its not as if he is trying to make a sneaky exe of a private closed source product which would be a moral grey area (weather for sale or not)

Once again a mountain out of a molehill.

It's not self-righteous flaming, it is people's opinion
<edit> ... and moral judgement.

You have some really good features in that program. I might exchange notepad for it. Notepad has always been the No. 1 program I use for quick notes.

Hey, thanks xmlspy! Glad to hear you like it!

Is there an EXE of this around so I can try?

Is there an EXE of this around so I can try?

!i!i!LOL!i!i!

LOL

Yes, I want an EXE of it too. I use BlitzMax, not Plus.

Someone post an EXE, and Adam, promise not to download it. ;)

I'm telling Mark!!! :)

Ill have a copy too if someone can "release their own binary" of this "open source" program.

what the hell? So if i created a paint app in blitz3d posted an exe and gave it out free, even to non-blitz3D owners, that creates a problem? Don't think so!

Hey Adam, what blitz product DID you buy? Because there's plenty of win32 GUI libs around:

Blitzplus - built in
Blitz3D - WinB3D
BlitzMax - wxMax

Oh, SWEET! I didn't realize there was a GUI Lib for B3D! (My purchase.) I'll look for that right away!

Thanks Yahfree!

Here ya go Adam. Let me know if that's okay.

http://blitzmirror.fortunecity.com/

So if i created a paint app in blitz3d posted an exe and gave it out free, even to non-blitz3D owners, that creates a problem?

Nope but that's not the situation here.
The demo is restricted in that it can't create an exe. To create an exe the full product needs to be purchased.
Using the demo and getting somebody else to create the exe is akin to putting the PC clock back to get over a 30 day demo limit.
I think this is out of order but others don't.

I guess it is hard to come up with an analogy for this debate. Since BRL is the sole owners of Blitz compilers. You can't really compare this to writing C++ code and having someone compile it on MS VC...

But, what about VB code. Would it be illegal for me to write VB code and ask someone who owned VB to compile it for me? I am not trying to be contrary, just wanting to discuss the issue here at hand. What about any other language where there is no free compilers. Delphi maybe?

I guess it is a tough issue to debate. I understand the idea that purchasing the compiler give you the right to compile the apps, and it is pretty much the only thing you get for the purchase, but is it really illegal (or morally wrong) to write code for the compiler if you do not own it?

Hmmm, this is a tough one...

I guess it'd need BRL to say whether they're happy for somebody to compile for a demo user.
Disclaimer : None of the below is referring to Adam's particular situation.
It seems a short step from either somebody offering a compile service or a team ganging together to buy one license and use it between them to create executables.
OK, there might be a slight delay getting the .exe back but so what. It's only another short-step for that team to think 'Hold on, why don't we just all install the purchased copy and then we don't need to fanny about!" .

Actually, it is probably better that they don't say. If they don't chime in here and say STOP, then it is better that they just ignore it.

That way, they have not cemented themselves with a decision, so if somebody does come along and do something they don't like, they CAN say stop.

No one can say, but you said it was OK. We saw your post that said we could have someone else compile for us.

Adam, I just added a public domain license statement to your code. Should clear up any confusion.

Needs tabbers for the open files.

No edit menu?

http://www.whitegatesoftware.com/winblitz3d.zip

WB3D download if you didn't find it.

Notepad++ is the best. And open source. Google is your friend :)

So, winblitz3d is an add-on that permits running Blitz+ programs such as this one on Blitz3d as per windows, buttons and menu widgets are concerned? I might try it out later then.

markcw, thank you so much for that EXE. Hey, I made a small update to the source code recently to allow NovaNotes to open files from its command line at startup; feel free to update the EXE.

Yahfree, thanks SO MUCH for that WinB3D link; that is going to be a huge help to me. Cheers mate!

NOVANOTES SOURCE CODE HAS BEEN UPDATED!

>So, winblitz3d is an add-on that permits running Blitz+ programs such as this one on Blitz3d as per windows, buttons and menu widgets are concerned? I might try it out later then.

It has similar functionality to blitzplus' built in win32 gui, but different syntax, so it wouldnt run blitzplus code right off the bat..

Thanks for uploading the code, Adam!
I got an error message when I run the program for the first time ("Array index out of bounds...")
But after that, it worked just fine...
And there is one little thing I noticed:
When you want to exit and are asked whether you would like to save changes, the program closes, even though you click the "Chancel"-Button. I think this behaviour is unusual, you may want to fix that...
Nice program!

NovaNotes 1.02 compiled:
http://www.freewebs.com/grasshopperinteractive/OtherFiles/NovaNotes.rar



I got an error message when I run the program for the first time ("Array index out of bounds...")

Same here.

gha i hate rar files cos i had to install a trail of it for one bloody file and then got nagged for a bit about registering it
i only wanted it for one file (windows handles zips nativly so why not use that? its not as if b+ exes work on linux or mac os to warrant rar)

and as this is an old thread mostly about the morals of exe making for someone else
as its posted in this thread (perhaps even the code archive?) in its entirety giving any b+ user the ability to compile to exe it wouldnt surprise me if it ends up on some website or other credited to adam or not

and unless you are on pocket money or giro skint its not a biggie on the wallet (even if you have to save a fiver here and there)

Just get 7zip. It's better than WinRAR.

Sorry 'bout that. Hadn't realized the rest of the posts were 4 months old.

Get IZArc for all the compressed files. It's free fast and opens almost every file.

http://www.izarc.org/