;============================================================================== ; NOTES.LSP ;============================================================================== ; Copywrite 2008 ; A'cad Solutions ; Alan R. Henderson ; 3642 South Creek Road ; Knoxville, TN 37920 ; 2008@acadsolutions.biz ; Rev.1.0 - 04/11/05 Initial code written ;============================================================================== ; Insert Notes from Notes-???.txt files ;N = insert Notes from Notes-???.txt files (defun C:N (/ LIST_NOTE_TEXT BUTTONNAME BUTTONTEXT DCL_ID DCL_EXIT NOTETEXT USERTEXT VALUES_OK LIST_NOTE_TEXT GROUPNAME) ;--subroutines--------------------------------------------------------- ; get note group and show notes (defun NOTE_GROUP () (setq LIST_NOTE_TEXT (cadr (assoc GROUPNAME LIST_NOTES))) (start_list "NOTETEXT") (mapcar 'add_list LIST_NOTE_TEXT) (end_list) (setq VALUES_OK nil) (done_dialog 1) ) ; get data and check (defun NOTE_CLOSE_OK () (setq NOTETEXT (get_tile "NOTETEXT")) (setq USERTEXT (get_tile "USERTEXT")) (if (and (= NOTETEXT "") (= USERTEXT "")) (setq VALUES_OK nil) (setq VALUES_OK T) ) (done_dialog 1) ) ; cancel input (defun NOTE_CANCEL_OK () (done_dialog 0) (setq VALUES_OK T) ) ; get notes from files (if (not LIST_NOTES) (C:SN)) ; remember last user input text (if (or (not LUSERTEXT) (/= (type LUSERTEXT) 'STR)) (setq LUSERTEXT "")) ; set initial note text list to blank (setq LIST_NOTE_TEXT (list "")) (setq VALUES_OK nil) ; run dialob box (while (not VALUES_OK) (setq DCL_ID (load_dialog "MyNotes.dcl")) (if (not (new_dialog "MyNotes" DCL_ID)) (exit) (progn ; display note text (start_list "NOTETEXT") (mapcar 'add_list LIST_NOTE_TEXT) (end_list) ; display user input text (set_tile "USERTEXT" LUSERTEXT) ; build dynamic button action tiles (foreach GROUPS LIST_NOTES (setq BUTTONNAME (strcat "NOTE_" (strcase (car GROUPS)))) (setq BUTTONTEXT (strcat "(progn (setq GROUPNAME \"" (car GROUPS) "\")" "(NOTE_GROUP))")) (action_tile BUTTONNAME BUTTONTEXT) ) (action_tile "accept" "(NOTE_CLOSE_OK)") (action_tile "cancel" "(NOTE_CANCEL_OK)") (setq DCL_EXIT (start_dialog)) ) ) (unload_dialog DCL_ID) ) (if (= DCL_EXIT 1) (progn ; here is where you create your note text/leader (if (/= NOTETEXT "") (princ (strcat "\nNoteText=" (nth (atoi NOTETEXT) LIST_NOTE_TEXT) "=")) (progn (princ (strcat "\nUserText=" USERTEXT "=")) (if USERTEXT (setq LUSERTEXT USERTEXT)) ) ) ) (princ "\nInput Note Text program cancelled..") ) (princ) ) ;---------------------------------------------------------------------- ;SN = get note text from Notes-???.txt files to insert (defun C:SN (/ NOTE_FOLDER LIST_FILES GROUP NOTES F1 RL C34 FD1) ; folder with note files (setq NOTE_FOLDER "K:") ; get list of note files (setq LIST_FILES (vl-directory-files NOTE_FOLDER "Notes-*.txt" 1)) (setq LIST_NOTES nil) ; read each note file and add to LIST_NOTES (foreach FN LIST_FILES (setq GROUP (substr (vl-filename-base FN) 7)) (setq NOTES nil) (setq F1 (open (strcat NOTE_FOLDER FN) "r")) (if F1 (progn ; read note file (setq RL (read-line F1)) (while RL (setq NOTES (append NOTES (list RL))) (setq RL (read-line F1)) ) (close F1) ; save notes to list (setq LIST_NOTES (append LIST_NOTES (list (list GROUP NOTES)))) ) (progn (alert (strcat "\nERROR - Problems opening [" FN "].")) (exit) ) ) ) ;--build dialog box--------------------------------------------------- (setq C34 (chr 34)) (setq FD1 (open (strcat NOTE_FOLDER "MyNotes.dcl") "w")) (if FD1 (progn (write-line "MyNotes :dialog{" FD1) (write-line (strcat " label=" C34 "Notes" C34 ";") FD1) (write-line (strcat " :row{") FD1) (write-line (strcat " :boxed_column{") FD1) (write-line (strcat " label=" C34 "Select Group" C34 ";") FD1) (foreach GROUP LIST_NOTES (write-line (strcat " :button{") FD1) (write-line (strcat " label=" C34 (car GROUP) C34 ";") FD1) (write-line (strcat " key=" C34 "NOTE_" (strcase (car GROUP)) C34 ";") FD1) (write-line (strcat " }") FD1) ) (write-line (strcat " fixed_height=true;") FD1) (write-line (strcat " alignment=top;") FD1) (write-line (strcat " }") FD1) (write-line (strcat " :column{") FD1) (write-line (strcat " label=" C34 "Select Note" C34 ";") FD1) (write-line (strcat " :list_box{") FD1) (write-line (strcat " key=" C34 "NOTETEXT" C34 ";") FD1) (write-line (strcat " fixed_height=true;") FD1) (write-line (strcat " fixed_width=false;") FD1) (write-line (strcat " width=50;") FD1) (write-line (strcat " height=32;") FD1) (write-line (strcat " allow_accept=true;") FD1) (write-line (strcat " }") FD1) (write-line (strcat " :text{") FD1) (write-line (strcat " label=" C34 "User Input Note Text:" C34 ";") FD1) (write-line (strcat " }") FD1) (write-line (strcat " :edit_box{") FD1) (write-line (strcat " key=" C34 "USERTEXT" C34 ";") FD1) (write-line (strcat " }") FD1) (write-line (strcat " }") FD1) (write-line (strcat " }") FD1) (write-line (strcat " ok_cancel;") FD1) (write-line (strcat "}") FD1) (close FD1) ) (progn (alert "\nERROR - Problems creating MyNotes.dcl File") (exit) ) ) (princ) ) (princ)