Just a project I was working on recently, written for a bit of fun.
TabSort.lspVersion 2.2;;--------------------=={ TabSort.lsp }==---------------------;;
;; ;;
;; A program designed with the intention to aid in the ;;
;; organisation of layout tabs in a drawing. ;;
;; ;;
;; The program enables the user to organise each layout tab ;;
;; using buttons to move the tabs up, down, to the top, and ;;
;; to the bottom of a list. ;;
;; ;;
;; The user may rename any layout by double clicking on it, ;;
;; and can also add a Prefix and/or Suffix to selected/every ;;
;; layout tab. ;;
;; ;;
;; The program offers the facility to add and delete a ;;
;; layout tab, and also sort the tabs alphabetically, ;;
;; numerically, architecturally; or reverse the order in ;;
;; which they appear. ;;
;; ;;
;; A Find and Replace function is incorporated to allow the ;;
;; user to quickly replace a text string in multiple tabs. ;;
;; ;;
;; The user can also Copy a layout tab, and set the Selected ;;
;; layout tab as the current tab. ;;
;; ;;
;; The Help Dialog can be access by pressing "H" at the Main ;;
;; Dialog. ;;
;; ;;
;;------------------------------------------------------------;;
;; ;;
;; FUNCTION SYNTAX: TABSORT ;;
;; ;;
;; Notes:- ;;
;; The Reset button will reset Tab Order and Tab Names, but ;;
;; will not affect newly created tabs and will not recreate ;;
;; deleted tabs. ;;
;; ;;
;; In the case that multiple tabs are selected, the Current ;;
;; button will set the tab with the lowest index (highest in ;;
;; the list) as the current tab. ;;
;; ;;
;;------------------------------------------------------------;;
;; Author: Lee Mac, Copyright © 2011 - www.lee-mac.com ;;
;;------------------------------------------------------------;;
;; ;;
;; With Thanks To: ;;
;; -------------------- ;;
;; Gilles Chanteau (Gile) ;;
;; ;;
;; For his fantastic contribution to the list manipulation ;;
;; required for multiple DCL selections, and effort towards ;;
;; the Architectural Sort functions. ;;
;; ;;
;;------------------------------------------------------------;;
;; Charles Alan Butler (CAB) ;;
;; ;;
;; For his excellent idea to incorporate the Help button for ;;
;; those who need it. ;;
;; ;;
;;------------------------------------------------------------;;
;; Version: ;;
;; ;;
;; 1.0 - 13th September 2009 ;;
;; ;;
;; First Release ;;
;;------------------------------------------------------------;;
;; 1.1 - 14th September 2009 ;;
;; ;;
;; Added Mnemonics to Tiles ;;
;; Added text to notify of double-click availability ;;
;; Added option to only pref/suff selected tab ;;
;;------------------------------------------------------------;;
;; 1.2 - 15th September 2009 ;;
;; ;;
;; Added Numerical Sort ;;
;; General Bug Fixes ;;
;;------------------------------------------------------------;;
;; 1.3 - 15th September 2009 ;;
;; ;;
;; Multi-tab Selection Functionality ;;
;;------------------------------------------------------------;;
;; 1.4 - 16th September 2009 ;;
;; ;;
;; Added Button to Set Current Tab ;;
;; Added Copy Tab Functionality ;;
;;------------------------------------------------------------;;
;; 1.5 - 17th September 2009 ;;
;; ;;
;; Fixed Bug to Copy Layout Plot Settings ;;
;;------------------------------------------------------------;;
;; 1.6 - 18th September 2009 ;;
;; ;;
;; Modified Action_Tile Stmts ~ Thanks VovKa ;;
;; Added Architectural Sort Button ;;
;;------------------------------------------------------------;;
;; 1.6.1 - 19th September 2009 ;;
;; ;;
;; Fixed Bugs ~ Thanks for feedback CAB ;;
;;------------------------------------------------------------;;
;; 1.7 - 20th September 2009 ;;
;; ;;
;; Added Find & Replace Functionality ;;
;; Organised buttons/Added Sort Dialog ;;
;;------------------------------------------------------------;;
;; 1.7.1 - 20th September 2009 ;;
;; ;;
;; Replaced StrBrk sub with SplitStr (Gile) ;;
;;------------------------------------------------------------;;
;; 1.8 - 21st September 2009 ;;
;; ;;
;; Added hidden Help Button (CAB) ;;
;; Added Help Dialog Definition ;;
;;------------------------------------------------------------;;
;; 1.8.1 - 22nd September 2009 ;;
;; ;;
;; General Bug Fixes ;;
;;------------------------------------------------------------;;
;; 1.8.2 - 23rd September 2009 ;;
;; ;;
;; Fixed Bug causing crash when Deleting all ;;
;; Tabs ~ thanks VovKa ;;
;;------------------------------------------------------------;;
;; 1.9 - 2nd October 2009 ;;
;; ;;
;; Modified Reverse function to only apply to selected Tabs. ;;
;; Altered Help Dialog to ok_only button ;;
;;------------------------------------------------------------;;
;; 2.0 - 22nd July 2010 ;;
;; ;;
;; Fixed Bug with Find/Replace. ;;
;;------------------------------------------------------------;;
;; 2.1 - 9th December 2010 ;;
;; ;;
;; Fixed Bug with Double Reversal ;;
;;------------------------------------------------------------;;
;; 2.2 - 16th May 2011 ;;
;; ;;
;; Program completely rewritten to update formatting. ;;
;; Upgraded Find & Replace engine to allow for ;;
;; self-referencing find and replace terms and improved ;;
;; visual feedback. ;;
;; Updated list manipulation subfunctions. ;;
;;------------------------------------------------------------;;
Program Controls:Top: Move selected Tabs to the top of the list.
Up: Move selected Tabs up one notch in the list.
Down: Move selected Tabs down one notch in the list.
Bottom: Move selected Tabs to the bottom of the list.
Sort: Opens the Sort Dialog:
Alphabetical: Sort Tabs alphabetically:
Hence ~
("A23" "C22" "B3" "E7")
Becomes ~
("A23" "B3" "C22" "E7")
Numerical: Sort Tabs numerically:
Hence ~
("A23" "C22" "B3" "E7")
Becomes ~
("B3" "E7" "C22" "A23")
Architectural: Use an Architectural Sorting Method:
Hence ~
("A-1A" "B-3" "A-10C" "B-1.2" "B-1")
Becomes ~
("A-1A" "A-10C" "B-1" "B-1.2" "B-3")
Reverse: Reverse the Tab order of Selected Tabs.
Pref/Suff: Opens the Prefix/Suffix Dialog to allow the user to add a Prefix and/or Suffix to selected/all Tabs.
Add: Add a new layout Tab.
Delete: Deletes selected Tabs.
Copy: Copies the selected Tabs.
Current: Makes the selected Tab the Current Tab.
Find: Allows the user to perform a Find & Replace:
Done: Finished sorting Tabs, will implement sorting.
Reset: Will reset Tab names and Tab order ~ will
not reset deleted/added Tabs.
Screenshot:Your comments/criticism is always welcome, and, of course, the inevitable bug reports!
Enjoy!
Lee
Full Description here