CTL+L - convert to lowercase
CTL+U - convert to uppercase
CTL+K - invert the case (e.g. "The Big Dog" becomes "tHE bIG dOG")
SHIFT+CTL+K - convert to capitalized (e.g. "the big dog" becomes "The Big Dog")
SHIFT+CTL+U - convert to sentence case
Unfortunately, anytime I am creating text but not using NoteTab, (for example, at the present time, when I am preparing this post to write to this message board - I'm using some editor that is built into this particular message board) or I'm using a word processor or another editor, I find myself often needing to use these features. But they aren't available anywhere other than the editor NoteTab and I have to either convert the text manually or copy it into NoteTab, convert it there and then copy it back.
So, I wrote a similar set of features using AutoHotkey and they can be used in any editor or word processor. The way they work is that you copy the text into the clipboard, then press one of the hotkeys to convert it, then you can position the cursor anywhere you like and then send the text to that position. There is no real reason why I wrote the code this way. I suppose I could have equally well written it to perform in the same way as the code in NoteTab. The advantage to this method is that you don't have to convert the text in place. Once you copy it into the clipboard, you can move the cursor anywhere and produce the text at that point.
I find it so amazing that the original author of NoteTab probably spent many hours to write and debug this code, whereas it only took me an hour to write it using AutoHotkey. Here are the hotkeys. It's interesting that they all are pretty straightforward except for "invert text" which is a little complex:
^u:: ; Convert text to upper StringUpper Clipboard, Clipboard Send %Clipboard% RETURN ^l:: ; Convert text to lower StringLower Clipboard, Clipboard Send %Clipboard% RETURN +^k:: ; Convert text to capitalized StringUpper Clipboard, Clipboard, T Send %Clipboard% RETURN ^k:: ; Convert text to inverted Lab_Invert_Char_Out:= "" Loop % Strlen(Clipboard) { Lab_Invert_Char:= Substr(Clipboard, A_Index, 1) if Lab_Invert_Char is upper Lab_Invert_Char_Out:= Lab_Invert_Char_Out Chr(Asc(Lab_Invert_Char) + 32) else if Lab_Invert_Char is lower Lab_Invert_Char_Out:= Lab_Invert_Char_Out Chr(Asc(Lab_Invert_Char) - 32) else Lab_Invert_Char_Out:= Lab_Invert_Char_Out Lab_Invert_Char } Send %Lab_Invert_Char_Out% RETURN