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!!!
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