/*
  ┌╥─────────────────────────────────────────────────────────────────────╥┐
  │║ Macro Title: BoxIt!                                                 ║│
  │║ Version....: 0.10 for TSE 1.0 Pre-Release                           ║│
  │║ Author.....: George J. De Bruin                                     ║│
  │║ Address....: 1414 Shiloh Rd. Apt/Box 511                            ║│
  │║              Plano, TX 75074                                        ║│
  │║ Phone......: (214) 422-0266                                         ║│
  │║ BBS Contact: Qedit support conferences on the following Mail Nets:  ║│
  │║              RIME, Ilink, Intelec, Metrolink, FidoNet, EchoNet.     ║│
  │║              Also available via the Ilink Editor's Conference, and  ║│
  │║              directly on SemWare's Support BBS.                     ║│
  │╟─────────────────────────────────────────────────────────────────────╢│
  │║ This macro is hereby released as freeware.  Anyone may use          ║│
  │║ or modify it in any way they see fit.  Future versions may carry    ║│
  │║ more notices on distributing modified versions of BoxIt!            ║│
  │╟─────────────────────────────────────────────────────────────────────╢│
  │║                       R E L E A S E   N O T I C E                   ║│
  │║                                                                     ║│
  │║ This macro is officially released to SemWare for possible           ║│
  │║ distribution in conjunction with The SemWare Editor, or an ancillary║│
  │║ macro collection.                                                   ║│
  │╟─────────────────────────────────────────────────────────────────────╢│
  │║ Purpose:                                                            ║│
  │║                                                                     ║│
  │║ This is a simple macro that will draw a box around column blocked   ║│
  │║ area using TSE's internal line drawing mode.  *ONLY* column blocks  ║│
  │║ are supported at this time.                                         ║│
  └╨─────────────────────────────────────────────────────────────────────╨┘
*/

Help SideToggles
    x = 10
    Title = "BoxIt! 0.1 -- Side Toggles"

"       ╓────────────╖"
"───────╢Side Toggles╟─────────────────────────────"
"       ╙────────────╜"
""
"The Side Toggles menu is used to turn each side of"
"the box On or Off.  Each side may be set"
"individually using the Top, Bottom, Left and Right"
"toggles. Additionally, all sides may be set at the"
"same time using the Global selection."
""
"The Global selection has an extra option: Invert."
"Inverting the sides changes all settings that were"
"On to Off, and vice versa. For example, if the"
"toggles were set like this:"
""
"                ┌───────────────┐"
"                │ Global [  On] │"
"                ├───────────────┤"
"                │ Top     [Off] │"
"                │ Bottom  [Off] │"
"                │ Left    [ On] │"
"                │ Right   [ On] │"
"                └───────────────┘"
""
"After selecting the Global, Invert option, the    "
"menu would look like this:                        "
"                                                  "
"                ┌───────────────┐                 "
"                │ Global [ Inv] │                 "
"                ├───────────────┤                 "
"                │ Top     [ On] │                 "
"                │ Bottom  [ On] │                 "
"                │ Left    [Off] │                 "
"                │ Right   [Off] │                 "
"                └───────────────┘                 "
"                                                  "
"The top and bottom sides have been turned on,     "
"while the left and right sides have been turned   "
"off.  Note that the Global selection now says     "
"'Inv' next to it, indicating that you selected the"
"inversion operation.                              "
"                                                  "
"This is useful if you want to quickly draw a box  "
"where two sides have one type of line (say the top"
"and right sides), while the other sides have a    "
"different type of line.  For example:             "
"                                                  "
"                   ╓──────────┐                   "
"                   ║          │                   "
"                   ╚══════════╛                   "
"                                                  "
"Combining this feature with the user defined line "
"type opens many possibilities.                    "

End SideToggles

/* ─────────────────────────────────────────────────────────────────── */

Help GapSettings
    x = 10
    Title = "BoxIt! 0.1 -- Gap Settings"

"       ╓────────────╖                             "
"───────╢Gap Settings╟─────────────────────────────"
"       ╙────────────╜                             "
"                                                  "
"The Gap Settings menu is used to adjust the amount"
"of space between your marked block and the box    "
"BoxIt will draw for you.  Each side may be set    "
"individually using the Top, Bottom, Left and Right"
"options.  Additionally, the gap may be set for all"
"sides at once using the Global option.            "
"                                                  "
"For example, if the Gap Settings menu looked like "
"this:                                             "
"                                                  "
"                 ┌──────────────┐                 "
"                 │Global [    0]│                 "
"                 ├──────────────┤                 "
"                 │Top    [    2]│                 "
"                 │Bottom [    2]│                 "
"                 │Left   [    1]│                 "
"                 │Right  [    1]│                 "
"                 └──────────────┘                 "
"                                                  "
"You would get a box that looks like this (assuming"
"the inner box was the column block):              "
"                                                  "
"                 ╔══════════════╗                 "
"                 ║              ║                 "
"                 ║┌────────────┐║                 "
"                 ║│            │║                 "
"                 ║│            │║                 "
"                 ║│            │║                 "
"                 ║└────────────┘║                 "
"                 ║              ║                 "
"                 ╚══════════════╝                 "
"                                                  "
"Not that there is only 1 space between the block  "
"and the box.  This is the way BoxIt! works.  Just "
"remember this short table:                        "
"                                                  "
"             ┌─────────────────────┐              "
"             │        Lines Between│              "
"             │Gap     Box and Block│              "
"             ├─────────────────────┤              "
"             │ 0      Within Block │              "
"             │ 1           0       │              "
"             │ 2           1       │              "
"             │ 3           2       │              "
"             │...         ...      │              "
"             └─────────────────────┘              "
"                                                  "
"Now, assuming we wanted all of the gaps set to 1, "
"we would use the global option to set them:       "
"                                                  "
"                 ┌──────────────┐                 "
"                 │Global [    1]│                 "
"                 ├──────────────┤                 "
"                 │Top    [    1]│                 "
"                 │Bottom [    1]│                 "
"                 │Left   [    1]│                 "
"                 │Right  [    1]│                 "
"                 └──────────────┘                 "
"                                                  "
"And our box would look like this (again, assuming "
"the inner box was our block):                     "
"                                                  "
"                 ╔══════════════╗                 "
"                 ║┌────────────┐║                 "
"                 ║│            │║                 "
"                 ║│            │║                 "
"                 ║│            │║                 "
"                 ║└────────────┘║                 "
"                 ╚══════════════╝                 "

End GapSettings

/* ─────────────────────────────────────────────────────────────────── */
Help LineSettings
    x = 10
    Title = "BoxIt! 0.1 -- Line Settings"

"       ╓─────────────╖                            "
"───────╢Line Settings╟────────────────────────────"
"       ╙─────────────╜                            "
"                                                  "
"The Line Settings menu allows you to chose the    "
"style of line that you want to draw your box with."
"This features uses the standard line type settings"
"supported by TSE:                                 "
"                                                  "
"    Single:       ┌────┐                          "
"                                                  "
"    Double Top:   ╒════╕                          "
"                                                  "
"    Double Side:  ╓────╖                          "
"                                                  "
"    Double Both:  ╔════╗                          "
"                                                  "
"    ASCII:        +-|                             "
"                                                  "
"    Eraser                                        "
"                                                  "
"    User-defined: [■]                             "
"                                                  "
"The user defined selection can be set to any      "
"character you wish to draw your box with.         "
"                                                  "
"You can use the Eraser option to remove boxes that"
"you have drawn.  The easiest way to accomplish    "
"this is to                                        "
"                                                  "
"    (1) Select the box with a column block.       "
"    (2) Set the Line Type to Eraser.              "
"    (3) Set Global Gaps to 0.                     "
"    (4) Set Global Side Toggles ON.               "
"                                                  "
"Then execute BoxIt.                               "

End LineSettings

/* ─────────────────────────────────────────────────────────────────── */
Help QuickKeyRef
    x = 10
    Title = "BoxIt! 0.1 -- Quick Key Reference"

"       ╓───────────────────╖                      "
"───────╢Quick Key Reference╟──────────────────────"
"       ╙───────────────────╜                      "
"                                                  "
"Below is a short chart of the keys used by BoxIt: "
"                                                  "
"<Alt F1>         BoxIt! Menu Bar                  "
"<Ctrl F1>        Execute BoxIt! (Draw Box)        "
"                                                  "
"These keys are provided as short-cuts to          "
"navigating the menus:                             "
"                                                  "
"<Ctrl G><G>      Set Global Gap                   "
"<Ctrl G><T>      Set Top Gap                      "
"<Ctrl G><B>      Set Bottom Gap                   "
"<Ctrl G><L>      Set Left Gap                     "
"<Ctrl G><R>      Set Right Gap                     "
"                                                  "
"<Ctrl S><G>      Side Global Setting              "
"<Ctrl S><T>      Side Top Toggle                  "
"<Ctrl S><B>      Side Bottom Toggle               "
"<Ctrl S><L>      Side Left Toggle                 "
"<Ctrl S><R>      Side Right Toggle                "

End QuickKeyRef

/* ─────────────────────────────────────────────────────────────────── */
Help ErrorMsgs
    x = 10
    Title = "BoxIt! 0.1 -- Error Messages"

"       ╓──────────────╖                           "
"───────╢Error Messages╟───────────────────────────"
"       ╙──────────────╜                           "
"                                                  "
"BoxIt! has a grand total of 3 error messages.     "
"Below is a short explanation of them:             "
"                                                  "
"No Column Block In File                           "
"═══════════════════════                           "
"    Currently BoxIt! only supports column blocks  "
"    (<ALT K> in TSE's standard interface).        "
"                                                  "
"    This message appears when there is either no  "
"    column block in the current file, or if there "
"    is no block in the current file.              "
"                                                  "
"    BoxIt aborts in this condition.  All settings "
"    are left as they were, and the block (if there"
"    was one) is still marked.                     "
"                                                  "
"                                                  "
"Cursor Not In Block                               "
"═══════════════════                               "
"    The cursor needs to be placed somewhere inside"
"    the marked area.                              "
"                                                  "
"    This is an adopted standard among the TSE   "
"    Beta testers and macro authors.  It's primary "
"    purpose is to keep users from accidentally      "
"    performing an action they didn't mean to.     "
"                                                  "
"    BoxIt aborts in this condition.  All settings "
"    are left as they were, and the block is still "
"    marked.                                       "
"                                                  "
"                                                  "
"Cannot Insert Box At or Before Beginning of Line   "
"═══════════════════════════════════════════════   "
"    This error occurs most often when the left    "
"    column of the block - left gap is < 1.         "
"    Currently, BoxIt! does *not* insert spaces    "
"    at the beginning of a line if it needs to.    "
"                                                  "
"    A later version may support this.             "
"                                                  "
"    BoxIt aborts in this condition.  All settings "
"    are left as they were, and the block is still "
"    marked.                                       "

End ErrorMsgs

/* ─────────────────────────────────────────────────────────────────── */
Help UsingBoxIt
    x = 10
    Title = "BoxIt! 0.1 -- Using"

"       ╓────────────╖                             "
"───────╢Using BoxIt!╟─────────────────────────────"
"       ╙────────────╜                             "
"                                                  "
"Using BoxIt! is easy.  Just follow these steps:   "
"                                                  "
"    (1) Column mark where you want the box.       "
"                                                  "
"    (2) Pull up the BoxIt! Menu (<ALT F1>).       "
"                                                  "
"    (3) Set the Side Toggles, Gaps Settings, and  "
"        Line Type to your preferences.            "
"                                                  "
"    (4) Select BoxIt! from the menu.              "
"                                                  "
"To draw another box using the same settings:      "
"                                                  "
"    (1) Column mark where you want the box.       "
"                                                  "
"    (2) Press <Ctrl F1>.                          "
"                                                  "
"More information on specific options can be found "
"in the help system, or the documentation.         "

End UsingBoxIt

/* ─────────────────────────────────────────────────────────────────── */
Help History
    x = 10
    Title = "BoxIt! 0.1 -- History"

"       ╓───────────────╖                          "
"───────╢History / About╟──────────────────────────"
"       ╙───────────────╜                          "
"                                                  "
"BoxIt! is a macro for The SemWare Editor 1.0      "
"Pre-Release that draws a box around a column      "
"block.  This is a simple feature found in many    "
"text editors, that TSE didn't have.  Originally, I"
"thought no one used that feature, but after       "
"talking to a few people I found that they did use "
"it.  So I implemented it for TSE, and added in a  "
"few extra features.                               "
"                                                  "
"Below is a short history of BoxIt! release        "
"versions:                                         "
"                                                  "
"                                                  "
"Version     Date        Comments                  "
"──────────────────────────────────────────────────"
"                                                  "
"0.01        03/22/93  ∙ Initial coding of macro.  "
"                        Very simple implementation"
"                                                  "
"0.02        03/24/93  ∙ Fixed bug that affects    "
"                        using macro in overwrite  "
"                        mode.  Insert is now set  "
"                        to On when macro is       "
"                        executed, and reset on    "
"                        exit.                     "
"                      ∙ Added: Side Toggles for   "
"                        Top, Bottom, Left and     "
"                        Right sides.              "
"                      ∙ Added: Box Gap to all     "
"                        adjusting space between   "
"                        the block and the box.    "
"                      ∙ Added: Menu.  Allows      "
"                        setting all of the        "
"                        options, including the    "
"                        line pattern.  Also allows"
"                        calling BoxIt.            "
"                      ∙ Added: Global Variables   "
"                        for Box edge toggles and  "
"                        Box gap.                  "
"                                                  "
"0.03        06/10/93  ∙ First public release of   "
"                        BoxIt!                    "
"                      ∙ Changed names of several  "
"                        procedures to resolve     "
"                        conflicts with internal   "
"                        TSE procedures.           "
"                                                  "
"0.04 - 0.09 Were *not* released at all.           "
"                                                  "
"0.10        06/24/93  ∙ Fixed bug that caused     "
"                        total lock-up of TSE when "
"                        current row - gap < 1.    "
"                      ∙ BoxIt! now inserts as many"
"                        lines as needed at the    "
"                        beginning and end of a    "
"                        buffer.                   "
"                      ∙ Fixed bug that caused     "
"                        total lock-up of TSE when "
"                        current column - gap < 1."
"                        Boxit! now returns an     "
"                        error message 'Cannot     "
"                        Insert Box At or Before   "
"                        Beginning of Line.'        "
"                      ∙ Changed to menu-bar       "
"                        structure.                "
"                      ∙ All menu items have a help"
"                        line message attatched.   "
"                      ∙ Added: About menu.  Select"
"                        '≡' from menu bar.        "
"                      ∙ Added: Help screen(s).    "
"                        Select 'Help' from menu   "
"                        bar.                      "
"                      ∙ Added: Gap settings for   "
"                        each side of box.         "
"                      ∙ Added: Global gap setting."
"                      ∙ Added: Global sides on/off"
"                        toggle.                   "
"                      ∙ Documentation over-haul.  "
"                      ∙ Source code split into    "
"                        four files:               "
"                         BOXIT.S  : The main     "
"                                     source code. "
"                         BOXIT.MNU: The menus.   "
"                         BOXIT.HLP: Help Screens."
"                         BOXIT.KEY: Key Bindings."
"                                                  "
"More information about the plans for future       "
"versions can be found at the end of the BoxIt     "
"documentation file.                                "

End History

/* ─────────────────────────────────────────────────────────────────── */
Help Author
    x = 10
    Title = "BoxIt! 0.1 -- Author"

"       ╓─────────────────────────╖                "
"───────╢Author: Bio. & Contacting╟────────────────"
"       ╙─────────────────────────╜                "
"                                                  "
"George J. De Bruin has been a beta tester for the "
"SemWare Editor for over a year and a half, and    "
"has hosted the Ilink Editors Conference for over  "
"two years.                                        "
"                                                  "
"Contact Points                                    "
"══════════════                                    "
"                                                  "
"George may be reached on the following networks in"
"the conferences listed:                           "
"                                                  "
"RIME:       Qedit                                 "
"Ilink:      Qedit, Editors, Shareware             "
"Fido:       Qedit                                 "
"Intelec:    Qedit, Word Processing                "
"PlanoNet:   Reviews                               "
"SmartNet:   Qedit                                 "
"MetroLink:  Qedit                                 "
"EchoNet:    Qedit                                 "
"                                                  "
"In addition, he may be reached at the following   "
"places:                                           "
"                                                  "
"    The SemWare BBS -- (404) 641-8968             "
"    Conference #4, TSE Questions.                 "
"    Send Mail To: George De Bruin                 "
"                                                  "
"    The Lunatic Fringe BBS -- (214) 235-5288      "
"    Conference #141, Get-Mo!                      "
"    Send private message to: George De Bruin.     "
"                                                  "
"    Exec-PC -- (414) 789-4210                     "
"    Send Email to: George De_Bruin                "
"                                                  "
"He may also be reached via the U.S. Postal Service"
"at:                                               "
"                                                  "
"    George J. De Bruin                            "
"    1414 Shiloh Rd. Box 511                       "
"    Plano, TX 75074                               "
"                                                  "
"He will also accept voice phone calls at:         "
"                                                  "
"    (214) 422-0266                                "
"                                                  "
"during reasonable hours (Central Time Zone).      "
"Because of an ever changing work schedule he      "
"cannot commit to hours when he will be available. "
"                                                  "
"He is also unable to accept collect calls, or     "
"return calls.                                     "

End Author

