Here's the latest and greatest, for anyone who's still following this project.
This version is fully configurable by the user, at least so far as the items in that listbox (the "tool list", I call it) goes. There's an attached configuration file that's read on startup; the tool list is populated from this file. All seems to work well at this point. I'll be posting some source code soon.
There are 3 sections to the tool list:
- "[Inserts]" (click on the listbox item and that item gets inserted into the edit text)
- "[Goodies]" (click on the "Goodies" listbox item and a dialog opens; click on any item in the mcListbox* control to select it.
- "[Cubbyholes]": hold text for copying/pasting/searching
The sections can be arranged in any order, so you can have the "cubbyholes" where you prefer them. Currently the listbox doesn't scroll; that's coming soon, to be able to handle a long list.
Currently you can copy and paste. Search is not yet implemented. (That'll happen when I switch to a RichEdit control.) Select text, click one of the "C" buttons to copy text to the cubbyhole; click the "P" button to paste that text. (This is separate from the edit control's cut/copy/paste functionality, which works as well.)
You need to have the config file in the same folder as the program (the program should find it wherever you run it from). If there's a parsing error, only the cubbyholes will be created. You can play around with the config file, add the items you like (there's a text file explaining the config file format, which is pretty simple).
I'm particularly happy with my parser here: it's robust, simple (no spaghetti tangle of conditionals & jumps), and handles text well: it preserves the content of your "insert" text: CR, LF, tabs all come through. Allows embedded quotation marks in text (use double double-quotes, like "This ""text"" has embedded quotes"). And it allows comments! (starting with ';', since it's an ASM editor).
* The mcListbox (multi-column listbox) is my custom control used in the Goodies dialog. Still under development but works well.