RBEdit Development Strategy Checklist --------------------------------------------------------------------------- STATUS ------ Data structure implementation, memory management done design/implementation (text, line index, and state var segments) Creation and Destruction of the edit window, first done DLL build process, simple WM_PAINT handler Navigation I (scolling via scrollbars) done Caret placement / management done WM_KEYDOWN handler I (function key recognition / dispatch) done WM_SETTEXT handler done Navigation II (cursor positioning via keyboard) done - arrows, HOME, END, PgUP/PgDN, etc. WM_PAINT handler II (painting the selection) done Selection I (selecting text via keyboard) done "Active Line Edit" support functions done - copy from main edit text done - copy to main edit text done - shifting of main edit text done - shifting of line index table done - line size checking done - text size checking done Edit support functions - Deletion of selection - Replacement of selection (char) done - Replacement of selection (stream) - Replacement of selection (clipboard) Edit I (simple char insertion) done Edit II (CR handler) Edit III (backspace handler) done Edit IV (line delete handler) done Edit V (TAB handler) done - tab expansion done - multiline selection tab/shift-tab (block indent) done Edit VI (DELETE handler) done Edit VII (Stream insertion) Nagivation III (cursor positioning via mouse) done Selection II (selecting text via mouse) done Clipboard I (copy) Clipboard II (cut) Clipboard III (paste) Undo (???) Client-interaction messages - WM_GETTEXT handler - WM_SETTEXT handler done - EM_GETHANDLE handler - EM_GETLINE handler - EM_GETLINECOUNT handler - WM_GETTEXTLENGTH handler - EM_GETSEL handler - EM_SETSEL handler - EM_REPLACESEL handler - EM_GETMODIFY handler - EM_SETMODIFY handler - EM_SETTABSTOPS handler - EM_LINEFROMCHAR handler done - EM_LINEINDEX handler - EM_LINELENGTH handler - RBEdit-specific interaction messages (TBD) Notification messages - EN_CHANGE - EN_ERRSPACE - EN_HSCROLL - EN_KILLFOCUS - EN_MAXTEXT - EN_SETFOCUS - EN_UPDATE - EN_VSCROLL