summaryrefslogtreecommitdiff
path: root/app/doc
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff-webhosting.net>2016-12-28 16:52:56 +0100
committerJörg Frings-Fürst <debian@jff-webhosting.net>2016-12-28 16:52:56 +0100
commit7b358424ebad9349421acd533c2fa1cbf6cf3e3e (patch)
tree686678532eefed525c242fd214d0cfb2914726c5 /app/doc
Initial import of xtrkcad version 1:4.0.2-2
Diffstat (limited to 'app/doc')
-rw-r--r--app/doc/CMakeLists.txt93
-rw-r--r--app/doc/ChangeLog24
-rw-r--r--app/doc/addm.but261
-rw-r--r--app/doc/appendix.but238
-rw-r--r--app/doc/changem.but1189
-rw-r--r--app/doc/chmconf.but21
-rw-r--r--app/doc/clean-html.cmake.in6
-rw-r--r--app/doc/doc.vcproj154
-rw-r--r--app/doc/drawm.but186
-rw-r--r--app/doc/editm.but151
-rw-r--r--app/doc/filem.but374
-rw-r--r--app/doc/helpm.but65
-rw-r--r--app/doc/hhc.cmake.in10
-rw-r--r--app/doc/hotbar.but48
-rw-r--r--app/doc/intro.but.in830
-rw-r--r--app/doc/linconf.but12
-rw-r--r--app/doc/macrom.but36
-rw-r--r--app/doc/makefile.win47
-rw-r--r--app/doc/managem.but657
-rw-r--r--app/doc/navigation.but1165
-rw-r--r--app/doc/optionm.but413
-rw-r--r--app/doc/png.d/ahelix.pngbin0 -> 7606 bytes
-rw-r--r--app/doc/png.d/bcircl1.pngbin0 -> 324 bytes
-rw-r--r--app/doc/png.d/bcircl2.pngbin0 -> 340 bytes
-rw-r--r--app/doc/png.d/bcircl3.pngbin0 -> 328 bytes
-rw-r--r--app/doc/png.d/bcircle.pngbin0 -> 370 bytes
-rw-r--r--app/doc/png.d/bconnect.pngbin0 -> 307 bytes
-rw-r--r--app/doc/png.d/bcurve.pngbin0 -> 386 bytes
-rw-r--r--app/doc/png.d/bcurve1.pngbin0 -> 336 bytes
-rw-r--r--app/doc/png.d/bcurve2.pngbin0 -> 354 bytes
-rw-r--r--app/doc/png.d/bcurve3.pngbin0 -> 342 bytes
-rw-r--r--app/doc/png.d/bcurve4.pngbin0 -> 355 bytes
-rw-r--r--app/doc/png.d/bdelete.pngbin0 -> 603 bytes
-rw-r--r--app/doc/png.d/bdescrib.pngbin0 -> 292 bytes
-rw-r--r--app/doc/png.d/bdraw.pngbin0 -> 689 bytes
-rw-r--r--app/doc/png.d/beasement.pngbin0 -> 689 bytes
-rw-r--r--app/doc/png.d/belev.pngbin0 -> 296 bytes
-rw-r--r--app/doc/png.d/bflip.pngbin0 -> 267 bytes
-rw-r--r--app/doc/png.d/bgsnap.pngbin0 -> 372 bytes
-rw-r--r--app/doc/png.d/bgundo.pngbin0 -> 303 bytes
-rw-r--r--app/doc/png.d/bgzoom.pngbin0 -> 511 bytes
-rw-r--r--app/doc/png.d/bhelix.pngbin0 -> 237 bytes
-rw-r--r--app/doc/png.d/bhndldto.pngbin0 -> 285 bytes
-rw-r--r--app/doc/png.d/bitmap.pngbin0 -> 7090 bytes
-rw-r--r--app/doc/png.d/bjoin.pngbin0 -> 277 bytes
-rw-r--r--app/doc/png.d/blayer.pngbin0 -> 1620 bytes
-rw-r--r--app/doc/png.d/blockBoth.pngbin0 -> 823 bytes
-rw-r--r--app/doc/png.d/blockBottom.pngbin0 -> 835 bytes
-rw-r--r--app/doc/png.d/blockNone.pngbin0 -> 804 bytes
-rw-r--r--app/doc/png.d/blockTop.pngbin0 -> 836 bytes
-rw-r--r--app/doc/png.d/bmcircle.pngbin0 -> 1831 bytes
-rw-r--r--app/doc/png.d/bmcurved.pngbin0 -> 2283 bytes
-rw-r--r--app/doc/png.d/bmenu.pngbin0 -> 485 bytes
-rw-r--r--app/doc/png.d/bmodify.pngbin0 -> 328 bytes
-rw-r--r--app/doc/png.d/bmove.pngbin0 -> 319 bytes
-rw-r--r--app/doc/png.d/bmovedes.pngbin0 -> 377 bytes
-rw-r--r--app/doc/png.d/bnew.pngbin0 -> 793 bytes
-rw-r--r--app/doc/png.d/bnewcar.pngbin0 -> 367 bytes
-rw-r--r--app/doc/png.d/bnote.pngbin0 -> 250 bytes
-rw-r--r--app/doc/png.d/bopen.pngbin0 -> 889 bytes
-rw-r--r--app/doc/png.d/bparalle.pngbin0 -> 239 bytes
-rw-r--r--app/doc/png.d/brotate.pngbin0 -> 345 bytes
-rw-r--r--app/doc/png.d/bruler.pngbin0 -> 255 bytes
-rw-r--r--app/doc/png.d/bsave.pngbin0 -> 938 bytes
-rw-r--r--app/doc/png.d/bselect.pngbin0 -> 282 bytes
-rw-r--r--app/doc/png.d/bsplit.pngbin0 -> 286 bytes
-rw-r--r--app/doc/png.d/bstraigh.pngbin0 -> 285 bytes
-rw-r--r--app/doc/png.d/bstruct.pngbin0 -> 289 bytes
-rw-r--r--app/doc/png.d/btext.pngbin0 -> 241 bytes
-rw-r--r--app/doc/png.d/btop_bottom.pngbin0 -> 705 bytes
-rw-r--r--app/doc/png.d/btrain.pngbin0 -> 273 bytes
-rw-r--r--app/doc/png.d/btunnel.pngbin0 -> 245 bytes
-rw-r--r--app/doc/png.d/bturnout.pngbin0 -> 278 bytes
-rw-r--r--app/doc/png.d/bturntbl.pngbin0 -> 282 bytes
-rw-r--r--app/doc/png.d/carinv.pngbin0 -> 21954 bytes
-rw-r--r--app/doc/png.d/caritem.pngbin0 -> 16233 bytes
-rw-r--r--app/doc/png.d/carlist.pngbin0 -> 7930 bytes
-rw-r--r--app/doc/png.d/carpart.pngbin0 -> 16263 bytes
-rw-r--r--app/doc/png.d/carproto.pngbin0 -> 13229 bytes
-rw-r--r--app/doc/png.d/celev.pngbin0 -> 7125 bytes
-rw-r--r--app/doc/png.d/cgroup.pngbin0 -> 7967 bytes
-rw-r--r--app/doc/png.d/chelix.pngbin0 -> 18818 bytes
-rw-r--r--app/doc/png.d/cmdopt.pngbin0 -> 8213 bytes
-rw-r--r--app/doc/png.d/colorw.pngbin0 -> 8380 bytes
-rw-r--r--app/doc/png.d/custmgm.pngbin0 -> 18986 bytes
-rw-r--r--app/doc/png.d/dbench.pngbin0 -> 289 bytes
-rw-r--r--app/doc/png.d/dbox.pngbin0 -> 271 bytes
-rw-r--r--app/doc/png.d/dchgelev.pngbin0 -> 4506 bytes
-rw-r--r--app/doc/png.d/dcircle2.pngbin0 -> 296 bytes
-rw-r--r--app/doc/png.d/dcircle3.pngbin0 -> 296 bytes
-rw-r--r--app/doc/png.d/dcprofile.pngbin0 -> 8234 bytes
-rw-r--r--app/doc/png.d/dcurve1.pngbin0 -> 280 bytes
-rw-r--r--app/doc/png.d/dcurve2.pngbin0 -> 295 bytes
-rw-r--r--app/doc/png.d/dcurve3.pngbin0 -> 288 bytes
-rw-r--r--app/doc/png.d/dcurve4.pngbin0 -> 302 bytes
-rw-r--r--app/doc/png.d/ddimlin.pngbin0 -> 284 bytes
-rw-r--r--app/doc/png.d/demo.pngbin0 -> 14097 bytes
-rw-r--r--app/doc/png.d/dfilbox.pngbin0 -> 262 bytes
-rw-r--r--app/doc/png.d/dfilpoly.pngbin0 -> 316 bytes
-rw-r--r--app/doc/png.d/dflcrcl2.pngbin0 -> 303 bytes
-rw-r--r--app/doc/png.d/dflcrcl3.pngbin0 -> 297 bytes
-rw-r--r--app/doc/png.d/displayopt.pngbin0 -> 37583 bytes
-rw-r--r--app/doc/png.d/dlayer.pngbin0 -> 9268 bytes
-rw-r--r--app/doc/png.d/dlayers.pngbin0 -> 8594 bytes
-rw-r--r--app/doc/png.d/dline.pngbin0 -> 260 bytes
-rw-r--r--app/doc/png.d/dpoly.pngbin0 -> 313 bytes
-rw-r--r--app/doc/png.d/dprmfile.pngbin0 -> 12483 bytes
-rw-r--r--app/doc/png.d/dproperties.pngbin0 -> 9213 bytes
-rw-r--r--app/doc/png.d/dpropertieshighlight.pngbin0 -> 1329 bytes
-rw-r--r--app/doc/png.d/drotateangle.pngbin0 -> 4238 bytes
-rw-r--r--app/doc/png.d/dtbledge.pngbin0 -> 270 bytes
-rw-r--r--app/doc/png.d/dtipofday.pngbin0 -> 11065 bytes
-rw-r--r--app/doc/png.d/easeex1.pngbin0 -> 1814 bytes
-rw-r--r--app/doc/png.d/easeex2.pngbin0 -> 866 bytes
-rw-r--r--app/doc/png.d/easew.pngbin0 -> 5361 bytes
-rw-r--r--app/doc/png.d/exportfile.pngbin0 -> 22136 bytes
-rw-r--r--app/doc/png.d/exportfiledxf.pngbin0 -> 19413 bytes
-rw-r--r--app/doc/png.d/flip1.pngbin0 -> 1624 bytes
-rw-r--r--app/doc/png.d/flip2.pngbin0 -> 1491 bytes
-rw-r--r--app/doc/png.d/flip3.pngbin0 -> 1795 bytes
-rw-r--r--app/doc/png.d/flip4.pngbin0 -> 1504 bytes
-rw-r--r--app/doc/png.d/fonts.pngbin0 -> 16206 bytes
-rw-r--r--app/doc/png.d/grid.pngbin0 -> 6099 bytes
-rw-r--r--app/doc/png.d/hotbar.pngbin0 -> 3334 bytes
-rw-r--r--app/doc/png.d/iconnote.pngbin0 -> 479 bytes
-rw-r--r--app/doc/png.d/import.pngbin0 -> 22302 bytes
-rw-r--r--app/doc/png.d/joincrv1.pngbin0 -> 6430 bytes
-rw-r--r--app/doc/png.d/joincrv2.pngbin0 -> 6624 bytes
-rw-r--r--app/doc/png.d/joincrv3.pngbin0 -> 7224 bytes
-rw-r--r--app/doc/png.d/joincrv4.pngbin0 -> 7691 bytes
-rw-r--r--app/doc/png.d/joincrv5.pngbin0 -> 7545 bytes
-rw-r--r--app/doc/png.d/joinmove1.pngbin0 -> 1136 bytes
-rw-r--r--app/doc/png.d/joinmove2.pngbin0 -> 1172 bytes
-rw-r--r--app/doc/png.d/joinmove3.pngbin0 -> 1312 bytes
-rw-r--r--app/doc/png.d/joinmove4.pngbin0 -> 1201 bytes
-rw-r--r--app/doc/png.d/joinstrt1.pngbin0 -> 1142 bytes
-rw-r--r--app/doc/png.d/joinstrt2.pngbin0 -> 1310 bytes
-rw-r--r--app/doc/png.d/joinstrt3.pngbin0 -> 1103 bytes
-rw-r--r--app/doc/png.d/layout.pngbin0 -> 7843 bytes
-rw-r--r--app/doc/png.d/madd.pngbin0 -> 3690 bytes
-rw-r--r--app/doc/png.d/main.pngbin0 -> 36744 bytes
-rw-r--r--app/doc/png.d/main1.pngbin0 -> 37906 bytes
-rw-r--r--app/doc/png.d/maincanvas.pngbin0 -> 8919 bytes
-rw-r--r--app/doc/png.d/map.pngbin0 -> 15824 bytes
-rw-r--r--app/doc/png.d/mchange.pngbin0 -> 6461 bytes
-rw-r--r--app/doc/png.d/mdraw.pngbin0 -> 2585 bytes
-rw-r--r--app/doc/png.d/mdrawcircles.pngbin0 -> 2758 bytes
-rw-r--r--app/doc/png.d/mdrawcurve.pngbin0 -> 2570 bytes
-rw-r--r--app/doc/png.d/mdrawshapes.pngbin0 -> 2181 bytes
-rw-r--r--app/doc/png.d/mdrawstraight.pngbin0 -> 2233 bytes
-rw-r--r--app/doc/png.d/medit.pngbin0 -> 7035 bytes
-rw-r--r--app/doc/png.d/menu.pngbin0 -> 2268 bytes
-rw-r--r--app/doc/png.d/menu.xcfbin0 -> 83642 bytes
-rw-r--r--app/doc/png.d/mfile.pngbin0 -> 6016 bytes
-rw-r--r--app/doc/png.d/mhelp.pngbin0 -> 2251 bytes
-rw-r--r--app/doc/png.d/mhelpdemos.pngbin0 -> 4031 bytes
-rw-r--r--app/doc/png.d/mhelprecent.pngbin0 -> 1938 bytes
-rw-r--r--app/doc/png.d/mmacro.pngbin0 -> 1203 bytes
-rw-r--r--app/doc/png.d/mmanage.pngbin0 -> 4860 bytes
-rw-r--r--app/doc/png.d/mmanageturnoutdesign.pngbin0 -> 3742 bytes
-rw-r--r--app/doc/png.d/mmovedraw.pngbin0 -> 1037 bytes
-rw-r--r--app/doc/png.d/moptions.pngbin0 -> 3378 bytes
-rw-r--r--app/doc/png.d/mrotatealign.pngbin0 -> 2552 bytes
-rw-r--r--app/doc/png.d/mrotatefixed.pngbin0 -> 2727 bytes
-rw-r--r--app/doc/png.d/mrotatemove.pngbin0 -> 2590 bytes
-rw-r--r--app/doc/png.d/mselect.pngbin0 -> 4055 bytes
-rw-r--r--app/doc/png.d/mselected.pngbin0 -> 5004 bytes
-rw-r--r--app/doc/png.d/msplitblock.pngbin0 -> 1002 bytes
-rw-r--r--app/doc/png.d/msplitblockLR.pngbin0 -> 1025 bytes
-rw-r--r--app/doc/png.d/mtoolbar.pngbin0 -> 4568 bytes
-rw-r--r--app/doc/png.d/mtrainmanagement.pngbin0 -> 2212 bytes
-rw-r--r--app/doc/png.d/mview.pngbin0 -> 3460 bytes
-rw-r--r--app/doc/png.d/mwindow.pngbin0 -> 1587 bytes
-rw-r--r--app/doc/png.d/mzoomscale.pngbin0 -> 3635 bytes
-rw-r--r--app/doc/png.d/openwindows.pngbin0 -> 29044 bytes
-rw-r--r--app/doc/png.d/partslist.pngbin0 -> 16724 bytes
-rw-r--r--app/doc/png.d/pref.pngbin0 -> 12308 bytes
-rw-r--r--app/doc/png.d/pricelist.pngbin0 -> 15294 bytes
-rw-r--r--app/doc/png.d/print.pngbin0 -> 14306 bytes
-rw-r--r--app/doc/png.d/printset.pngbin0 -> 24825 bytes
-rw-r--r--app/doc/png.d/printset_win.pngbin0 -> 12222 bytes
-rw-r--r--app/doc/png.d/rescale.pngbin0 -> 8108 bytes
-rw-r--r--app/doc/png.d/satusbarparallel.pngbin0 -> 1617 bytes
-rw-r--r--app/doc/png.d/splitConnect.pngbin0 -> 768 bytes
-rw-r--r--app/doc/png.d/splitDisconnect.pngbin0 -> 755 bytes
-rw-r--r--app/doc/png.d/splitNotYet.pngbin0 -> 794 bytes
-rw-r--r--app/doc/png.d/statusbar.pngbin0 -> 1789 bytes
-rw-r--r--app/doc/png.d/statusbartrain.pngbin0 -> 1979 bytes
-rw-r--r--app/doc/png.d/statusbarturntable.pngbin0 -> 1593 bytes
-rw-r--r--app/doc/png.d/statustext.pngbin0 -> 1681 bytes
-rw-r--r--app/doc/png.d/sticky.pngbin0 -> 12075 bytes
-rw-r--r--app/doc/png.d/strsel.pngbin0 -> 21330 bytes
-rw-r--r--app/doc/png.d/title.pngbin0 -> 5030 bytes
-rw-r--r--app/doc/png.d/toolbar.pngbin0 -> 12627 bytes
-rw-r--r--app/doc/png.d/trainbar.pngbin0 -> 3602 bytes
-rw-r--r--app/doc/png.d/trainctrl.pngbin0 -> 6784 bytes
-rw-r--r--app/doc/png.d/trainsimulator.pngbin0 -> 2656 bytes
-rw-r--r--app/doc/png.d/turndes.pngbin0 -> 13502 bytes
-rw-r--r--app/doc/png.d/turnsel.pngbin0 -> 18373 bytes
-rw-r--r--app/doc/png.d/updttl.pngbin0 -> 6646 bytes
-rw-r--r--app/doc/png.d/xtrkcad_logo.gifbin0 -> 13482 bytes
-rw-r--r--app/doc/statusbar.but29
-rw-r--r--app/doc/upgrade.but165
-rw-r--r--app/doc/view_winm.but150
-rw-r--r--app/doc/warranty.but149
-rw-r--r--app/doc/xtrkcad_lin.css59
-rw-r--r--app/doc/xtrkcad_win.css59
207 files changed, 6591 insertions, 0 deletions
diff --git a/app/doc/CMakeLists.txt b/app/doc/CMakeLists.txt
new file mode 100644
index 0000000..dcee056
--- /dev/null
+++ b/app/doc/CMakeLists.txt
@@ -0,0 +1,93 @@
+PROJECT(doc)
+
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/intro.but.in ${CMAKE_CURRENT_BINARY_DIR}/intro.but)
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/clean-html.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/clean-html.cmake @ONLY)
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/hhc.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/hhc.cmake @ONLY)
+
+FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html)
+
+GET_TARGET_PROPERTY(HALIBUT_COMMAND halibut LOCATION)
+
+SET(HALIBUT_SOURCES
+ ${CMAKE_CURRENT_BINARY_DIR}/intro.but
+ ${CMAKE_CURRENT_SOURCE_DIR}/addm.but
+ ${CMAKE_CURRENT_SOURCE_DIR}/changem.but
+ ${CMAKE_CURRENT_SOURCE_DIR}/drawm.but
+ ${CMAKE_CURRENT_SOURCE_DIR}/editm.but
+ ${CMAKE_CURRENT_SOURCE_DIR}/filem.but
+ ${CMAKE_CURRENT_SOURCE_DIR}/helpm.but
+ ${CMAKE_CURRENT_SOURCE_DIR}/hotbar.but
+ ${CMAKE_CURRENT_SOURCE_DIR}/macrom.but
+ ${CMAKE_CURRENT_SOURCE_DIR}/managem.but
+ ${CMAKE_CURRENT_SOURCE_DIR}/optionm.but
+ ${CMAKE_CURRENT_SOURCE_DIR}/statusbar.but
+ ${CMAKE_CURRENT_SOURCE_DIR}/view_winm.but
+ ${CMAKE_CURRENT_SOURCE_DIR}/navigation.but
+ ${CMAKE_CURRENT_SOURCE_DIR}/appendix.but
+ ${help_BINARY_DIR}/messages.but
+ ${CMAKE_CURRENT_SOURCE_DIR}/upgrade.but
+ ${CMAKE_CURRENT_SOURCE_DIR}/warranty.but
+ )
+
+# Add a custom command for cleaning the HTML staging directory
+ADD_CUSTOM_TARGET(clean-html
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html
+ COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/clean-html.cmake
+ )
+
+# If we're using the GTK back-end, just generate "vanilla" HTML help files for use with gtkhtml
+IF(XTRKCAD_USE_GTK)
+
+ SET(HALIBUT_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/linconf.but ${HALIBUT_SOURCES})
+
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/html/index.html
+ DEPENDS halibut ${HALIBUT_SOURCES}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html
+ COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/clean-html.cmake
+ COMMAND ${HALIBUT_COMMAND} ${HALIBUT_SOURCES}
+ )
+
+ ADD_CUSTOM_TARGET(help-html ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/html/index.html)
+
+ INSTALL(
+ DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html
+ DESTINATION ${XTRKCAD_SHARE_INSTALL_DIR}
+ )
+
+ INSTALL(
+ DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/png.d
+ DESTINATION ${XTRKCAD_SHARE_INSTALL_DIR}/html
+ )
+
+ INSTALL(
+ FILES xtrkcad_lin.css
+ DESTINATION ${XTRKCAD_SHARE_INSTALL_DIR}/html
+ )
+
+# Otherwise, we're using the Win32 back-end, so generate a compiled HTML help file
+ELSE(XTRKCAD_USE_GTK)
+
+ SET(HALIBUT_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/chmconf.but ${HALIBUT_SOURCES})
+ FILE(GLOB IMAGE_SOURCES png.d/*)
+
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/html/xtrkcad.chm
+ DEPENDS halibut ${HALIBUT_SOURCES} ${IMAGE_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/xtrkcad_win.css
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html
+ COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/clean-html.cmake
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/png.d ${CMAKE_CURRENT_BINARY_DIR}/html/png.d
+ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/xtrkcad_win.css ${CMAKE_CURRENT_BINARY_DIR}/html
+ COMMAND ${HALIBUT_COMMAND} ${HALIBUT_SOURCES}
+ COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/hhc.cmake
+ )
+
+ ADD_CUSTOM_TARGET(help-chm ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/html/xtrkcad.chm)
+
+ INSTALL(
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/html/xtrkcad.chm
+ DESTINATION ${XTRKCAD_SHARE_INSTALL_DIR}
+ )
+
+ENDIF(XTRKCAD_USE_GTK)
+
diff --git a/app/doc/ChangeLog b/app/doc/ChangeLog
new file mode 100644
index 0000000..f04fcd6
--- /dev/null
+++ b/app/doc/ChangeLog
@@ -0,0 +1,24 @@
+Jul 25, 2009
+ ENH: Martin Fischer <m_fischer@users.sourceforge.net>
+ intro.but.in: add description of command line arguments,
+ update for new directory layout.
+
+Jun 09, 2009:
+ ENH: Martin Fischer <m_fischer@users.sourceforge.net>
+ update.but: update release description
+
+Jun 06, 2009
+ ENH: Martin Fischer <m_fischer@users.sourceforge.net>
+ intro.but.in: updated Linux installation information
+
+Mar 21, 2008
+ IMPROVEMENT: Bob Blackwell
+ updated doc for option dialogs
+
+Dec 02, 2007
+ IMPROVEMENT: Bob Blackwell
+ Spelling and formatting Corrections
+ Move messages to appendix
+ Split appendix in to individual files to allow
+ messages.but to be included during build
+
diff --git a/app/doc/addm.but b/app/doc/addm.but
new file mode 100644
index 0000000..111b188
--- /dev/null
+++ b/app/doc/addm.but
@@ -0,0 +1,261 @@
+\# Notes:
+\#
+\# The "\u000" command is used to format the output. These commands causes a blank line to appear between "bulleted" or "described" items.
+\#
+\# The "\u00B0" command gives proper format to the degree sign.
+
+\C{commandMenus} Command Menus
+
+\rule
+
+
+\H{addM}\i{Add Menu}
+
+\G{png.d/madd.png}
+
+The \f{Add Menu} has all the actions related to adding track pieces to the layout.
+
+\dd \f{Circle Track} - place a circle of track by selecting radius, tangent and or center (\K{cmdCircle}).
+
+\u000
+
+\dd \f{Curved Track} - lay curved track pieces using different modes for selecting start and endpoints and radius (\K{cmdCurve}).
+
+\u000
+
+\dd \f{Hand-laid Turnout} - lay a turnout in place on the layout.
+
+\u000
+
+\dd \f{Helix} - Add a helix.
+
+\u000
+
+\dd \f{Parallel} - create parallel track to existing flex-track, straight or curved.
+
+\u000
+
+\dd \f{Straight Track} - lay straight track pieces of arbitrary lengths
+
+\u000
+
+\dd \f{Structure} - Add a predefined structure to the layout.
+
+\u000
+
+\dd \f{Turnout} - select a turnout or a piece of fixed track and place on layout.
+
+\u000
+
+\dd \f{Turntable} - Place a turntable.
+
+\rule
+
+
+\S{cmdCircle} Circle Track
+
+\G{png.d/bcircle.png}
+
+A circle track is a special form of a curved track that extends 360\u00B0 and has no endpoints. The three methods (with their Shortcut keys) used to create a Circle Track are:
+
+\dd \G{png.d/bcircl1.png} (\c{Control-8}) Use the Fixed Radius specified on the \e{Circle Radius} control displayed on the Status Bar (\K{mainW}). Drag the Circle track into position.
+
+\u000
+
+\dd \G{png.d/bcircl2.png} (\c{Control-9}) Drag from tangent point (Edge) of the Circle track to the Center.
+
+\u000
+
+\dd \G{png.d/bcircl3.png} (\c{Control-0}) Drag from the Center of the Circle track to the edge.
+
+A drop down menu, which allows selection of the Circle Track creation method, is invoked from the down arrow button (\G{png.d/bmenu.png}) located on the right side the Circle track button. Dependent upon previous selection, the Circle Track button will look like \G{png.d/bcircl1.png}, \G{png.d/bcircl2.png} or \G{png.d/bcircl3.png}.
+
+\dd \G{png.d/bmcircle.png}
+
+\dd \e{Circle Track Button Menu}
+
+If Snap Grid (\K{cmdGrid}) is enabled then circle centers will be constrained to the grid.
+
+Circle tracks are useful for fitting curves into corners and other tight places. They're also handy when establishing an initial layout and finding out "what will fit".
+
+You can join to and from circles, after which they become curved tracks.
+
+\rule
+
+
+\S{cmdCurve} Curved Track
+
+\G{png.d/bcurve.png}
+
+Creating a curve is a two step operation. The four methods (with their Shortcut keys) used to create a Curved Track are:
+
+\dd \G{png.d/bcurve1.png} (\c{Control-4}) Drag from one endpoint in the direction of the Curve at that point and release. Click and Drag to position the second endpoint.
+
+\u000
+
+\dd \G{png.d/bcurve2.png} (\c{Control-5}) Drag from one of the endpoints to the Center of the Curved track and release. Click and Drag to position the second endpoint.
+
+\u000
+
+\dd \G{png.d/bcurve3.png} (\c{Control-6}) Drag from the Center of the Curved track to one of the endpoints and release. Click and Drag to position the second endpoint.
+
+\u000
+
+\dd \G{png.d/bcurve4.png} (\c{Control-7}) Drag from one endpoint to the other endpoint to form the Chord of the Curve and release. Click on the center of the track and Drag to form the Curve.
+
+A drop down menu, which allows selection of the Curved Track creation method, is invoked from the down arrow button (\G{png.d/bmenu.png}) located on the right side the Curved track button. Dependent upon previous selection, the Curved Track button will look like \G{png.d/bcurve1.png}, \G{png.d/bcurve2.png}, \G{png.d/bcurve3.png} or \G{png.d/bcurve4.png}.
+
+\dd \G{png.d/bmcurved.png}
+
+\dd \e{Curved Track Button Menu}
+
+In all cases, two Red arrow heads will be drawn after the first step to indicate where you can Drag to complete the second step.
+
+A straight track will be created if the second endpoint is lined up with the first endpoint.
+
+If the Snap Grid (\K{cmdGrid}) is enabled then the endpoints will be constrained to the grid.
+
+Optionally, the curve center point and radius can be displayed for the Curve. This is enabled by the Move Label (\K{cmdMoveLabel}) command.
+
+\rule
+
+
+\S{cmdHandLaidTurnout} Hand-laid Turnouts
+
+\G{png.d/bhndldto.png}
+
+Hand-laid turnouts are created by specifying 3 values:
+
+\b Position of \e{Frog}
+
+\b Angle of \e{Frog} (the frog number)
+
+\b Position of \e{Points}
+
+First select the position for the Frog (\K{generalTerms}) on an existing track and then \e{Drag} away to specify the angle of the \e{Frog}. The angle in degrees and equivalent frog number is displayed on the status bar. When you release, the line indicating the angle jumps to one side of the track to show you the center line of the new leg of the turnout.
+
+Next \e{Click} and \e{Drag} to position the Points (\K{generalTerms}) for the turnout. As you \e{Drag}, tracks will be drawn showing the turnout. When you release the turnout is created.
+
+You cannot place the \e{Frog} or \e{Points} on a turnout, circle or helix. However, you can create overlapping Hand-laid Turnouts.
+
+There are constraints on where you can place the \e{Points} in relation to the \e{Frog}. You cannot place the \e{Points} too close the \e{Frog}. When placing Hand-laid Turnout on a curved track you may get unexpected results, especially when placing the \e{Points} a long way from the \e{Frog}. Try changing the \e{Frog} angle to get different results.
+
+Note: the drawing is an approximation to show the location of the \e{Points} and \e{Frog}. The piece of track considered (by \e{XTrackCAD}) to be a Hand-laid Turnout is a short section of track located at the \e{Points} and extending toward the \e{Frogs}. Other track segments are created between the \e{Points} and \e{Frog} and a short straight segment is drawn after the \e{Frog}. These other segments are independent of the turnout and can be removed or modified, although this is probably not a good idea.
+
+\rule
+
+
+\S{cmdHelix} Helix Track
+
+\G{png.d/bhelix.png}
+
+A helix track is used to change the elevation of track in a restricted space. A helix is drawn as a circle of track, but in 3 dimensions it would resemble a cork screw or the pattern of threads on a bolt.
+
+\G{png.d/ahelix.png}
+
+A helix is defined by the number of \e{Turns} and \e{Radius}.
+
+The helix dialog allows you to calculate these values based other parameters such as the \e{Elevation Difference}, \e{Grade}, \e{Vertical Angular Separation}. \e{Angular Separation} is the difference in degrees between tracks entering and exiting the helix. Changing any of these values effects the other values. For example, increasing the \e{Radius} decreases the \e{Grade}. Changing the number of \e{Turns} affects the \e{Vertical Separation} and either the \e{Radius} or \e{Grade}.
+
+In the case where different parameters could be affected (for instance changing \e{Elevation Difference} can affect \e{Radius} or \e{Grade}) the last parameter you changed will be preserved. If you set the \e{Grade} and then \e{Elevation Difference} then the \e{Radius} will be adjusted.
+
+Changing \e{Vertical Separation} affects \e{Turns} which must be an integer value (no fractions), and this in turn affects the \e{Vertical Separation}. When you set \e{Vertical Separation} you are specifying the minimum separation which is adjusted upwards to the actual value.
+
+Note: only the \e{Radius} and \e{Turns} are used when creating the helix. After joining the helix to other tracks, you will want to establish the heights of the endpoints at each end of the helix. You can use the Elevation (\K{cmdElev}) command to do this.
+
+A helix is placed the same way as a Circle Track (\K{cmdCircle}) with the addition that you specify the number of turns as well the as the radius of the helix. Then the helix is dragged into position on the layout.
+
+You can join to a helix in the same way you join to a circle. However, once joined the helix is still drawn as a circle of track.
+
+A label for the helix is drawn at it's the center. If the elevations are set (either by a Defined Elevation point or connecting to a Defined Elevation point) for the two ends of the helix then the label contains the computed grade and vertical separation between layers as well as the number of turns and total length. The label can be moved or turned off by the Move Label (\K{cmdMoveLabel}) command.
+
+\rule
+
+
+\S{cmdParallel} Parallel Track
+
+\G{png.d/bparalle.png}
+
+You can create a new track parallel to any straight, curved or easement track.
+
+\G{png.d/satusbarparallel.png}
+
+The \f{Parallel Separation} control (Visible in the Status Bar) displays the current separation between parallel tracks. This value can be changed before selecting a track. The value must be greater than 0.0.
+
+Select the track you want to parallel, and the new parallel track will appear beside it. You control which side the new track will be on by moving the cursor from one side to the other of the selected track.
+
+This is very useful for creating sidings and yards.
+
+You cannot create tracks parallel to turnouts or sectional track.
+
+It is possible to create tracks that abut (the endpoints are very close and aligned). These endpoints will be automatically connected.
+
+\rule
+
+
+\S{cmdStraight} Straight Track
+
+\G{png.d/bstraigh.png}
+
+Straight track is a created by selecting the first endpoint then dragging the cursor to the point where you want the second endpoint to be.
+
+If the Snap Grid (\K{cmdGrid}) is enabled then the endpoints will be constrained to the grid.
+
+\rule
+
+
+\S{cmdStructure} Structure
+
+\G{png.d/bstruct.png}
+
+The \f{Structure} command places diagrams of structures (buildings, bridges and other scenic elements) on the layout. The operation is similar to the Turnout (\K{cmdTurnout}) command.
+
+\G{png.d/strsel.png}
+
+When you select a structure from the list, its diagram is drawn in the diagram canvas. The dimensions are also listed on the dialog.
+
+The \f{Structure Selection} dialog will disappear while dragging on the layout if the \f{Hide} Check Box on the dialog is set. This is useful if you have a small screen.
+
+See the Hot Bar (\K{cmdHotBar}) command for details on placing Structures on the layout.
+
+\f{Structures} are placed on the layout in same way as \f{turnouts} except that there is no \e{Active endpoint} and structures do not align with existing tracks.
+
+\rule
+
+
+\S{cmdTurnout} Turnouts
+
+\G{png.d/bturnout.png}
+
+Turnouts (and sectional track) are created by the \f{Turnout} command \I{Created by Turnout Command}. When you select the turnout command, the \f{Turnout Selection} dialog is displayed which contains a list of available turnouts and sectional track for the current scale (\K{cmdLayout}) and a diagram of the selected turnout.
+
+You can use the Parameter File Dialog (\K{cmdPrmfile}) to control what turnouts are available.
+
+\G{png.d/turnsel.png}
+
+Select a turnout from the scrolling list. A picture of the selected turnout is drawn in the diagram canvas. You can pick the Active endpoint (\K{generalTerms}) by clicking on an endpoint in the diagram. The Active endpoint (\K{generalTerms}) is indicated by a highlighted square.
+
+The \f{New} button invokes the Turnout Designer (\K{cmdTurnoutNew}) dialog. This button displays a pop-up-menu list of various types of turnouts and sectional track.
+
+The \f{Turnout Selection} window will disappear while dragging on the layout if the \f{Hide} Check Box on the dialog is set. This is useful if you have a small screen.
+
+See the Hot Bar (\K{cmdHotBar}) command for details on placing Turnouts on the layout.
+
+\rule
+
+
+\S{cmdTurntable} Turntables
+
+\G{png.d/bturntbl.png}
+
+Turntables of specified diameter are created with the \f{Turntable} command.
+
+\G{png.d/statusbarturntable.png}
+
+The \e{Turntable Diameter} control (Visible in the Status Bar) displays the current diameter of the turntable. This value can be changed before dragging the turntable into position. The value must be greater than 0.0.
+
+The \f{Modify command} (\K{cmdModify}) can be used to create turntable stall tracks. Select the turntable and drag the stall track to the proper angle and length. You can also connect to a turntable with the \f{Join command} (\K{cmdJoin}).
+
+The \f{Turntable Angle} control on the Preferences (\K{cmdPref}) dialog controls how closely you can place tracks connected to a turntable. If you want to create stall tracks every 7.5\u00B0, set the \f{Turntable Angle} control to 7.5 and place the track as close to each other as allowed. \e{XTrackCAD} makes sure they will be separated by the correct angle.
+
+\rule \ No newline at end of file
diff --git a/app/doc/appendix.but b/app/doc/appendix.but
new file mode 100644
index 0000000..3155e38
--- /dev/null
+++ b/app/doc/appendix.but
@@ -0,0 +1,238 @@
+\# Notes:
+\#
+\# The "\u000" command is used to format the output. These commands causes a blank line to appear between "bulleted" or "described" items.
+\#
+
+
+\A{faqs} Frequently Asked Questions
+
+\H{faqsTransfer} Moving from Design to Roadbed \I{printDesignToRoadbed}
+
+\f{Your design is complete and your now ready to lay track. How do you go from the computer screen to the roadbed?}
+
+The best way to move your design from computer to roadbed is to print out a full scale copy (or portions) of the layout. During the print process the orientation of the print grid can be adjusted so the printout will line up with the tracks.
+
+If you have cut-sheet printer (like a laser or ink-jet) set the Ignore Page Margins toggle on the print dialog. Normally there is an unprintable margin around the edge of the page and \e{XTrackCAD} only prints on the printable area, which means you would have to trim or overlay the pages. Setting the Ignore Page Margins toggle makes \e{XTrackCAD} ignore this margin so you can just abut the paper. Also, turn on Print Roadbed Outline and set your roadbed width.
+
+If you have a continuous form printer (like a dot matrix) you can print a series of pages to form a continuous strip as long as you need. I use an old wide carriage printer that was being thrown out and can print 8' by 13.2" strips. Accuracy is not critical, 9-pin will do fine. You may need to experiment with setting the Landscape/Portrait modes on the Printer Setup and the Print dialogs and rotating the Print Grid to get the pages in the correct orientation. In particular I've found it best to set the Printer Setup dialog to Portrait mode and select Landscape Page Format on the \e{XTrackCAD} Printer dialog.
+
+Once you have a full scale print-out of your layout (or portion, if you have a larger layout you don't want to do it all at once) you need to transfer this to the roadbed. Here's two methods that can be used:
+
+\b Use a spray adhesive (such as 3M Super 77) to glue the print-out to the roadbed. This is very messy, takes more glue than expected and is very unforgiving of mistakes. You may want to use this method only for small sections of very complicated track-work.
+
+\u000
+
+\b Tape the print-out to the roadbed then using a tracing wheel (available at Sewing shops), trace the center-line of the track and roadbed outline. At this point consider places when you'll want to widen the roadbed to support signals, switch machines, joints etc.
+
+\rule
+
+
+\H{faqsHotBar} Hot Bar Items Missing!
+
+\f{After installing XTrackCAD the Hot Bar is not active; the arrows to the left and the right of the Hot Bar are a grey colour instead of black, the Hot Bar is blank and also does not scroll.}
+
+There's nothing wrong, you just need to load a track or structure Parameter file. Open the \f{Parameter dialog} window (\f{File>Parameter}) then click on Browse. A list of \c{*.xtp} files with names like \c{atlasn55.xtp} should appear. Select whichever file or files are appropriate for your needs then click the OK button. Click OK on the Parameter File dialog and you should now have objects displayed on the Hot Bar.
+
+Notes:
+
+\n Only elements that fit the selected scale are available in the Hot Bar. Thus if you're sure the parameter file has been loaded via the \f{File>Parameter} dialog, make sure the correct scale has been selected for the layout (\f{Options>Layout}).
+
+\lcont{
+
+\u000
+
+}
+
+\n If a long list of parameter files is selected, movement within the Hot Bar can be slow. If you right-click on the Hot Bar, a list of available parameter sets is shown. By \e{Left-Click}ing the desired parameter set, the Hot Bar is immediately scrolled to the first element in that parameter set.
+
+\lcont{
+
+\u000
+
+}
+
+\n When a new layout is created or when \e{XTrackCAD} is started for the first time, the scale of the layout defaults to N scale. Do not forget to change the scale in order to see tracks from other scales in the Hot Bar!
+
+\rule
+
+
+\H{faqsPrototype} Unable to Add Cars to Inventory!
+
+\f{After installing} \e{XTrackCAD} \f{you're unable to add cars to the Car Inventory list; a message stating "No Car Prototypes are defined...." appears when you attempt to add cars to the Car Inventory list.}
+
+There's nothing wrong, you just need to load a Prototype definition file.
+
+\e{XTrackCAD} includes a parameter file which defines many common North American Prototypes. The file is named \c{protoam.xtp}. It's loaded into \e{XTrackCAD} in the same way that a track, structure or car Parameter file would be loaded.
+
+\b Open the \f{Parameter dialog} window (\f{File>Parameter}) then click on Browse. Scroll through the list of \c{*.xtp} files to locate the file named \c{protoam.xtp}. Select this file then click the OK button. Click OK on the Parameter File dialog to complete installation of the prototype file. You should now be able to add cars to the Car Inventory list.
+
+Other prototype definitions can be created using the Car Prototype dialog. Refer to \K{carprototype} for detail.
+
+\rule
+
+
+\H{faqsButtonColor} Button Bar Icons Missing or Obscure
+
+\f{Why are Button Bar icons missing or obscure?}
+
+On systems restricted to 256 colors, it's not possible to display all colors on button faces. In this case, Windows chooses the closest matching color, which may be the same as the buttons background color. When this occurs the Button Bar icon may be obscured or appear to be missing.
+
+In cases where Layer Buttons are affected the number on the button may not be visible. Although it may not be possible to view the layer number, the correct color will be used to color objects that appear on the layer.
+
+\rule
+
+
+\H{faqsJoin} How Do I Place and Join Tracks
+
+\f{How do I join tracks, place turnouts, build a yard etc?}
+
+First take a look at the help file. Then try the demos (\f{Help>Demos} menu). This should answer a lot of questions on how to use \e{XTrackCAD}. Please visit \W{http://www.xtrkcad.org/Wikka/HomePage}{The XTrackCAD Wiki} if you need help, especially if you find the documentation unclear or think some area needs improvement.
+
+
+\A{glossary} Glossary
+
+This section contains a helpful listing of Window and \e{XTrackCAD} terminology.
+
+\rule
+
+\H{windowTerms} \i{Window Terms}
+
+Menu and sub-menu items are indicated by \e{File>Open}, which means select the \e{File} menu and then select the \e{Open} menu item.
+
+\f{Balloon Help} - short help message which is displayed as you move the mouse pointer over a control.
+
+\f{Canvas} - an area within a window where objects are drawn.
+
+\f{Check Box} - a button with a small square indicator to the left of its text. A check mark appears in the indicator when the button is selected.
+
+\f{Click} - press and then release the left mouse button.
+
+\f{Drag} - press and hold down the left mouse button and move the mouse to 'drag' the cursor on the screen.
+
+\f{Dialog} - a type of window in which you input information.
+
+\f{Drop Down List} - a list-box which is only displayed when you click on the 'drop-down' button.
+
+\f{Edit Box} - an area where you can enter a String, Integer or Floating Point value.
+
+\f{Highlighted} - an area on the Canvas which is in inverse-video.
+
+\f{Left-Click} - same as \e{Click}, used in contexts where \e{Right-Click} is also used.
+
+\f{Left+Drag} - same as \e{Drag}, used in contexts where \e{Right+Drag} is also used.
+
+\f{Mouse Pointer} - is most often an arrow that is you can use to point at different objects on your screen. When the pointer is over an object, you can \e{Click} a mouse button to perform an action on that object (such as selecting the object).
+
+\f{Press} - click on a button.
+
+\f{Radio Button} - a button with a small round indicator to the left of its text. The indicator is filled when the button is selected.
+
+\f{Radio Button Group} - a group of radio buttons which indicate mutually exclusive choices.
+
+\f{Resizing Border} - a thick border around re-sizable windows that you can use to change the window size.
+
+\f{Right-Click} - press and then release the right mouse button.
+
+\f{Right Drag} - press and hold down the right mouse button and move the mouse to 'drag' the cursor on the screen.
+
+\f{Select} - click on an object to indicate you want to do something with it.
+
+\f{Shift+Left-Click} - \e{Left-Click} while holding down the \e{Shift} key.
+
+\f{Shift+Right-Click} - \e{Right-Click} while holding down the \e{Shift} key.
+
+\rule
+
+
+\H{generalTerms} \i{XTrackCAD Terms}
+
+\f{Active Endpoint} - when placing a turnout, the endpoint which is used as a 'handle' when moved along other tracks.
+
+\f{Auto-connect} - when placing turnouts (\K{cmdHotBar}) and creating parallel (\K{cmdParallel}) tracks, the new track will automatically be connected to other tracks if the tracks are aligned properly.
+
+\f{Block Gap} - provides control by dividing the layout into electrically isolated blocks, where trains can be slowed or stopped by lowering or cutting the power to a block. Dividing a layout into blocks also permits operators to run more than one train on a layout with much less risk of a fast train catching up with and hitting a slow train. Blocks can also trigger signals or other animated accessories on the layout, adding more realism (or whimsy) to the layout. Three-rail systems will often insulate one of the common rails on a section of track, and use a passing train to complete the circuit and activate an accessory.
+
+\f{DXF Format} - Abbreviation of \f{D}ata \f{E}xchange \f{F}ile, a two-dimensional graphics file format supported by virtually all PC-based CAD products. It was created by AutoDesk for the AutoCAD system.
+
+\f{Easement} - special sections of gradually curving track used to connect straight and curved tracks (or two curved tracks). Easements reduce the effects of sudden changes in track curves which can cause derailments. They also look great!
+
+\f{Endpoint} - One of the most important concepts in \e{XTrackCAD} is the endpoint. A piece of flex-track has an endpoint at each end. An endpoint has a position and an angle and it can be connected to other endpoints. The endpoints control where the track is placed and how it is connected.
+
+\b Turnouts have several endpoints (normally 3).
+
+\u000
+
+\b Turntables have a varying number.
+
+\f{Error Message} - an error message displayed in the Status Bar (\K{mainW}) accompanied by a beep.
+
+\f{Flex-track} - Prefabricated flexible sections of track used on a layout. It usually comes in straight, three-foot-long sections which can be bent or shaped as needed. This term is also used for hand-laid track.
+
+\f{Frog} - the place on a turnout track where one rail crosses the other.
+
+\f{Gauge} - The distance between the inside of the heads of track rails. Most real railroads in North America and Europe are built to a standard gauge of 4'-8 1/2". Narrow gauge means rails with a width less than standard gauge. For example, On3 means O scale trains with three scale feet between the rails.
+
+\f{Handlaid} - Track that's built with handmade ties, rail, and spikes.
+
+\f{Helix} - A rising curve which turns around an axis like a corkscrew. Used on multilevel layouts to allow trains to go from one level to another.
+
+\f{Info Message} - an informational message displayed in the Status Bar (\K{mainW}).
+
+\f{Object} - an item on the layout, such as a track segment, table edge, line, note or text.
+
+\f{Points} - the part of the Turnout that moves to select a path.
+
+\f{Reverse Curve} - a piece of track which curves in one direction then changes direction without any appreciable length of straight track between the two curves.
+
+\f{S-Curve} - a curve which bends in one direction and then the other, forming an S-like shape.
+
+\f{Sectional Track} - prefabricated track which cannot be bent, split or changed.
+
+\f{Selected Endpoint} - when selecting track for various reasons the selected endpoint is the one closest to the selection point.
+
+\f{Tangent} - A line, curve, or surface meeting another line, curve, or surface at a common point.
+
+\f{Track Segment} - any piece of flex-track, turnout or sectional track.
+
+\f{Turnout} - A piece of track that allows a train to go from one track to another. Called a switch on a real railroad. Referred to by number. For example, a no. 6 turnout spreads one unit for each six units of travel measured from the frog (the point at which two rails join to form a V).
+
+\b In \e{XTrackCAD}, \e{Turnouts} also include sectional Tracks, crossings and forms of prefabricated (non-flex) track.
+
+\f{Turnout Frog} - the place on the turnout track where one rail crosses the other.
+
+\f{Turnout Number} - the ratio of the number of units along the center line of a switch frog traversed for each unit the frog spreads to the sides. A No. 4 frog diverges 1 unit for every 4 it moves ahead; a No. 6, 1 for every 6 units. Although we usually refer to a turnout or switch number, in reality the measurement is for the frog.
+
+\f{Turnout Points} - the part of the Turnout that moves to select a path.
+
+\f{Unconnected Endpoint} - an endpoint which is not connected to another.
+
+\rule
+
+
+\A{} Messages and Explanations
+
+\H{messageType} \i{Message Types}
+
+\e{XTrackCAD} generates three types of messages:
+
+\dd \e{Notices}, which appear in their own window and require you to press a button to make a choice or dismiss them.
+
+\u000
+
+\dd \e{Error messages}, which appear in the \f{Status-bar} (\K{mainW}) and are accompanied by a beep.
+
+\u000
+
+\dd \e{Information messages}, which appear in the \f{Status-bar} (\K{mainW}) without a beep.
+
+\u000
+
+\dd \e{Notices} and \e{Error messages} that might be encounter are listed here with a explanation. The \f{Recent Messages} menu item on the \f{Help} (\K{helpM}) menu contains a list of the most recent messages. Selecting one of the entries presents information on the particular message.
+
+\u000
+
+\dd The notation \e{abc|xyx} indicates the message can appear with either of the values (\e{abc} or \e{xyz}). Items in \e{UPPERCASE} indicate numeric (such as lengths) or string (such as filenames) values.
+
+\K{messageList} provides detail explanation of each information or error message.
+
+\rule
diff --git a/app/doc/changem.but b/app/doc/changem.but
new file mode 100644
index 0000000..8327edf
--- /dev/null
+++ b/app/doc/changem.but
@@ -0,0 +1,1189 @@
+\# Notes:
+\#
+\# The "\u000" command is used to format the output. These commands causes a blank line to appear between "bulleted" or "described" items.
+\#
+\# The "\u00B0" command gives proper format to the degree sign.
+
+\H{changeM}\i{Change Menu}
+
+\G{png.d/mchange.png}
+
+The \f{Change Menu} has all functions related to modifying objects that exist on the layout drawing.
+
+\dd \f{Change Scale} - change model scale and / or gauge of layout design. (\K{cmdRescale})
+
+\u000
+
+\dd \f{Clear Elevations} - remove elevation parameters from selected track(s).
+
+\u000
+
+\dd \f{Connect Sectional Tracks} - creates a connection between sectional track pieces by slightly moving the select piece(s) and the pieces they connect to.
+
+\u000
+
+\dd \f{Elevation} - define an elevation at specified track location (\K{cmdElev}).
+
+\u000
+
+\dd \f{Flip} - turn selected object(s) over or around.
+
+\u000
+
+\dd \f{Join} - connect two separate pieces of track. This command can be used to move one of the pieces of track to the endpoint of the other or to create a connection by laying a stretch of flex-track.
+
+\u000
+
+\dd \f{Modify} - modify an existing track.
+
+\u000
+
+\dd \f{Move} - move selected object(s).
+
+\u000
+
+\dd \f{Move Description} - move the endpoint description of a track piece to another location.
+
+\u000
+
+\dd \f{Profile} - display the elevation profile of a definable stretch of track (\K{cmdProfile}).
+
+\u000
+
+\dd \f{Properties} - sets \e{XTrackCAD} into \e{Describe} mode. Whenever an object is clicked on while in this mode, the \f{Properties} dialog is opened. This dialog allows direct manipulation of settings such as the objects length, position or orientation.
+
+\u000
+
+\dd \f{Raise/Lower Elevations} - raise or lower elevation of selected tracks.
+
+\u000
+
+\dd \f{Rotate} - rotate selected object(s).
+
+\u000
+
+\dd \f{Recompute Elevations} - performs a global re-computation of dynamic elevations. It should not be necessary to issue this command as elevations are recomputed as required.
+
+\u000
+
+\dd \f{Select} - sets \e{XTrackCAD} into \e{Select} mode. Whenever an object is clicked on while in this mode, this selection state of this object is reversed. If an object was unselected it becomes selected, and vice versa. To unselect all objects press the ESC key, use \f{Deselect All} from the \f{Edit} (\K{editM}) menu or \f{Deselect All} from the \f{Pop-up} menu (\K{mouseBcmd}).
+
+\u000
+
+\dd \f{Split Track} - the \f{Split Track} command can be used in one of two ways;
+
+\lcont{
+
+\u000
+
+\b split a section of flex-track into two connected pieces at the point where a \e{Left-Click} is invoked or;
+
+\b disconnect turnouts or sectional track pieces at their point of connection.
+
+}
+
+\rule
+
+
+\S{cmdRescale} Change Scale
+
+\G{png.d/rescale.png}
+
+\f{Change Scale} is used to change the size and gauge of selected (\K{cmdSelect}) objects. The amount to resize can be specified
+
+\u000
+
+\b by the modeling scale, e.g., convert from HO to O scale
+
+\b by the modeled gauge, e.g., convert from standard gauge to narrow gauge, or
+
+\b by ratio (by 181.5%).
+
+If resizing by modeling scale then track dimensions, e.g., lengths and radii, will be changed as well. An option is available to disable the resizing of the selected objects.
+
+\rule
+
+
+\S{clrElev} Clear Elevations
+
+The \f{Clear Elevations} command is used to remove elevation points from selected track on the layout.
+
+Using the \f{Select} command, select the track that is to have its elevation settings cleared then select \f{Change>Clear Elevations} from the menu bar to clear elevations of selected track.
+
+\rule
+
+
+\S{cmdConnect} Connect Sectional Tracks
+
+\G{png.d/bconnect.png}
+
+This command is used exclusively with \e{Sectional Track}.
+
+Occasionally pieces of sectional track do not line up exactly, especially when creating figure-8's or passing sidings. When laying out the actual track you can compensate for this by adjusting the individual tracks to provide a bit of slack. This command simulates that process.
+
+Click on the endpoint of each track you're trying to connect. Tracks will move slightly in an attempt to overcome the gap. If the gap is too large, the connection will fail. If this occurs, try using other track pieces in your layout.
+
+\e{XTrackCAD} adjusts the positions of tracks connected to the tracks up to a track with more than two connections. See the Demo for details.
+
+If one (or both) the selected tracks is an adjustable section (such as Kato's Adjustable Track #20-050) then the length of the track is changed to fill the gap.
+
+You can undo the effect of the \f{Connect} command by splitting (\K{splitDisconnect}) the track to disconnect it then using the \e{Shift+Left-Click} \f{Connect} command on the unconnected endpoints to tighten connections between the tracks.
+
+\rule
+
+
+\S{cmdElev} Elevation
+
+\G{png.d/belev.png}
+
+The \f{Elevation} command changes the elevation of track endpoints. After opening this dialog, you can click on the respective endpoint to set its elevation properties. The endpoint on which you work is indicated with a big red dot.
+
+\G{png.d/celev.png}
+
+An endpoint can have one of several elevation types:
+
+\u000
+
+\b \f{None} - no elevation defined.
+
+\b \f{Defined} - a defined elevation at a specified height.
+
+\b \f{Hidden} - a defined elevation but not displayed on the layout.
+
+\b \f{Computed} - height is based on height of closest neighbors.
+
+\b \f{Grade} - grade is based on height of closest neighbors.
+
+\b \f{Ignored} - endpoint is not considered in computations.
+
+\b \f{Station} - assigns a name to the endpoint.
+
+\f{Note:} Only one of these attributes can be assigned to an endpoint. For example, an endpoint can not be defined as a Grade and a Station at the same time.
+
+When an endpoint is selected on the layout by \e{Left-Click}, it is highlighted by a large red dot and its elevation type and values are displayed in the dialog.
+
+Additionally, \f{Defined Elevation} endpoints are indicated on the layout by gold colored dots. \f{Ignored Elevation} endpoints are indicated by blue colored dots.
+
+\e{Shift+Left-Click} splits the track at the specified point and adds an elevation point.
+
+The grade at the specified endpoint is displayed next to the \f{Grade} radio button. For \f{Defined Elevation} endpoints, the grade on each side of the endpoint is displayed.
+
+\f{Defined Elevation} endpoints are used to specify fixed heights of track endpoints. Typically, this would be where a grade changes or where clearances must be maintained. \f{Computed} Elevations and \f{Grade} markers can place between \f{Defined Elevation} endpoints. These values are not entered directly but are computed dynamically based on \f{Defined Elevations} of connected tracks. This allows labeling of elevations at intermediate endpoints without having the enter specific values. \f{Computed} markers can also placed between a \f{Defined Elevation} point and the end of a track.
+
+\f{Stations} are used to provide information for the Profile (\K{cmdProfile}) command.
+
+All \f{Elevation} labels (including \f{Grade} and \f{Station}) are drawn on the layout in outlined boxes. These may be moved by the \f{Move Description} (\K{cmdMoveLabel}) command. In addition, \f{Grade} labels have an arrow indicating the upwards direction.
+
+\rule
+
+
+\S2{computeElevations} Computing Dynamic Elevations
+
+Elevations of Tracks are computed in following steps. The colors listed in each step are used as the background color of the Track Elevation Markers (if they are enabled (\K{cmdDisplay})).
+
+\b The Shortest Paths between all \e{Defined Elevations} are computed. A Path stops at \e{Ignored} or \e{Defined} endpoints. The Elevation of any Turnouts on these Paths with more than two connections are computed as the average Elevation inversely weighted by distance along the tracks to the \e{Defined Elevation} points (\e{Blue}).
+
+\u000
+
+\b The Elevation of any other tracks on the Shortest Paths are computed based on the distance along the tracks from the Turnouts computed in the first step and/or the \e{Defined Elevation} points (\e{Purple}).
+
+\u000
+
+\b The Elevation of any remaining tracks is computed based on the average Elevation of the tracks found in the first two steps that they are (directly or indirectly) connected to, inversely weighted by geometric distance (\e{Gold}).
+
+\u000
+
+\b Any remaining tracks are not connected to a \e{Defined Elevation} and do not have an Elevation.
+
+The elevation computation is performed incrementally every time the layout is changed to keep all elevations in sync. The performance of the computation is affected by the placement of the \e{Defined Elevation} endpoints and the number of Paths between them. Place the \e{Defined Elevations} at points where tracks begin to branch (such as the throat of a yard or at the ends of a siding). Also, use \e{Defined Elevations} to break the layout into areas so recomputation has fewer tracks and Paths to deal with.
+
+\rule
+
+
+\S{cmdFlip} Flip
+
+\G{png.d/bflip.png}
+
+This command turns selected objects over or around, effectively mirroring the object .
+
+\n Prior to invoking this command visualize how the selected object(s) will be flipped and determine where to draw a reference line that will act as an axis or anchor point for the flipped object(s).
+
+\lcont{
+
+\u000
+
+\dd \G{png.d/flip1.png} \G{png.d/flip2.png}
+
+\u000
+
+}
+
+\n Invoked the \f{Flip} command then \e{Left-Click} on one end of the reference line visualized in the proceeding step. Holding the \e{Left} mouse button, \e{Drag} the cursor across the layout to form the line visualized earlier.
+
+\lcont{
+
+\u000
+
+\dd \G{png.d/flip3.png} \G{png.d/flip4.png}
+
+\u000
+
+}
+
+\n Once a line of desired length and orientation appears, release the mouse button. The selected object(s) will then flip around the line as if it were a mirror.
+
+Since flipped objects are mirrored, turnout titles may be modified during the flip process. Right hand turnouts will become left hand turnouts and vice versa. Such is the case in this example.
+
+Certain turnouts, such as a Wye's, Three-Way or Crossings are symmetrical and thus titles for this type of objects are not changed. If a title change is necessary the currently loaded \f{Parameter Files} (\K{cmdPrmfile}) are searched for a turnout that matches the flipped turnout. If a match is not found, the turnout's title is prefixed with \f{Flipped}. The \f{Properties} (\K{cmdDescribe}) command be used to change the title of such turnouts.
+
+\rule
+
+
+\S{cmdJoin} Join
+
+\G{png.d/bjoin.png}
+
+The \f{Join} command is used to bring together and connect any two segments of track. During the join process, \e{XTrackCAD} ensures the connecting tracks are properly aligned.
+
+See \f{Help>Demo} (\K{cmdDemo}) for examples of how to join tracks.
+
+For detail about;
+
+\dd Using curved flex-track to join track segments refer to \K{joinTrackCurve}.
+
+\u000
+
+\dd Using straight flex-track to join track segments refer to \K{joinTrackStraight}.
+
+\u000
+
+\dd Moving one segment of track to join with another refer to \K{joinTrackMove}.
+
+\rule
+
+
+\S2{joinTrackCurve} Using Curved Flex-Track
+
+This method of joining track may be used where tracks are joined with a 'simple curve', e.g. one which uses a curve in a single direction as opposed to using reverse curves (\K{generalTerms}).
+
+\u000
+
+\dd \G{png.d/joincrv1.png}
+
+\u000
+
+\n Start the join process by clicking on the Join button (\G{png.d/bjoin.png}).
+
+\lcont{
+
+\u000
+
+\G{png.d/joincrv2.png}
+
+\u000
+
+}
+
+\n \e{Left-Click} the endpoint of one of the two tracks being joined. A red dot will appear as a reminder of which track has been selected.
+
+\lcont{
+
+\u000
+
+\G{png.d/joincrv4.png}
+
+\u000
+
+}
+
+\n Move the mouse pointer over the endpoint of the other track then \e{Left-Click} and hold the mouse button down. A track connecting the two endpoints will appear. If the track appears in black (and you are happy with the curve as its drawn), release the mouse button.
+
+\lcont{
+
+\u000
+
+\G{png.d/joincrv3.png}
+
+\u000
+
+}
+
+\n If the track appears in red, it means \e{XTrackCAD} can't determine how to connect the first track with the second. If this occurs, while holding the left mouse button, drag the mouse back toward the first track until the connecting track appears in black. If the connecting track remains red, drag the mouse in the opposite direction until the connecting track turns black. Once the connecting track turns black, release the mouse button to finalize the \e{Join} command.
+
+\lcont{
+
+\u000
+
+\G{png.d/joincrv5.png}
+
+\u000
+
+}
+
+Throughout the above, the exact shape of the curve can be adjust by dragging the mouse around while keeping the left mouse button held down.
+
+Sometimes, no matter where you drag the mouse, the curve stays red and the tracks cannot be connected. This means the resulting curve is tighter than the minimum track radius set in the \e{Preferences dialog} (\K{cmdPref}). If desired, this setting can be adjusted from the \e{Preferences dialog} using the \f{Options>Preferences} menu selection to raise the dialog. If changing the minimum track radius is not a desired option then it will be necessary to relocate one of the tracks that you're attempting to join.
+
+You may also find that \e{XTrackCAD} will not create the connecting curve in the exact shape you want. If this happens it may be necessary to either move one of the end points or draw a partial curve (or straight) and try again.
+
+If enabled, Easements (\K{cmdEasement}) will be automatically generated between tracks of differing radii. When using easements, there is a minimum radius as specified in the \e{Easement} dialog. It's not possible to join tracks with less then this radius and the connecting track's radius must be greater than the minimum radius.
+
+If any errors occur while joining tracks (such as moving beyond the end of a track or using a curve with a radius smaller than the Easement radius), then the joint track will be drawn in Red (The default colour of Exception Track errors. See \K{cmdRgbcolor} for detail). This colouring serves as visual indication for a connecting track that doesn't meet minimum specified parameters (\K{cmdPref}).
+
+Any tracks created during the \f{Join} command will have the following properties inherited from the first track: selected state, hidden state, scale, track gauge and Layer.
+
+A join can be made to or from a circle (\K{cmdCircle}) of track. Joining a track with a circle will cause the circle to be converted into a curved track.
+
+For detail about;
+
+\dd Using straight flex-track to join track segments refer to \K{joinTrackStraight}.
+
+\u000
+
+\dd Moving one segment of track to join with another refer to \K{joinTrackMove}.
+
+
+\rule
+
+
+\S2{joinTrackStraight} Using Straight Flex-Track
+
+This method of joining track may be used where the endpoints of the two tracks to be joined are on the same horizontal (\c{X}) or vertical (\c{Y}) axis.
+
+\u000
+
+\dd \G{png.d/joinstrt1.png}
+
+\u000
+
+\n Start the join process by clicking on the Join button (\G{png.d/bjoin.png}).
+
+\lcont{
+
+\u000
+
+\G{png.d/joinstrt2.png}
+
+\u000
+
+}
+
+\n \e{Left-Click} the endpoint of one of the two tracks being joined. A red dot will appear as a reminder of which track has been selected.
+
+\lcont{
+
+\u000
+
+\G{png.d/joinstrt3.png}
+
+\u000
+
+}
+
+\n Move the mouse pointer over the endpoint of the other track then \e{Left-Click}. A track connecting the two endpoints will appear.
+
+When this command is used to join;
+
+\b two flex-track endpoints, one long section of flex-track without joints will result.
+
+\b two sectional track endpoints, a section of flex-track will be created between and used to join the two sectional track endpoints.
+
+\b one flex-track endpoint with one sectional track endpoint, the section of flex-track will be extended and joined with the sectional track endpoint.
+
+Any tracks created during the \f{Join} command will have the following properties inherited from the first track: selected state, hidden state, scale, track gauge and Layer.
+
+Turnouts and Sectional (\K{cmdHotBar}) tracks can be joined to other tracks. \e{XTrackCAD} extends the selected endpoint with a straight track when making the connection.
+
+A Turntable (\K{cmdTurntable}) can be joined however it must be used as the second endpoint.
+
+For detail about;
+
+\dd Using curved flex-track to join track segments refer to \K{joinTrackCurve}.
+
+\u000
+
+\dd Moving one segment of track to join with another refer to \K{joinTrackMove}.
+
+
+\rule
+
+
+\S2{joinTrackMove} By Moving Track
+
+This method of joining track may be used to move, align and join one section of track with another.
+
+\u000
+
+\dd \G{png.d/joinmove1.png}
+
+\u000
+
+\n Before initiating the \f{Join} command, the track that will be moved, aligned then joined must be selected using the \f{Select} command (\K{cmdSelect}).
+
+\lcont{
+
+\u000
+
+\G{png.d/joinmove2.png}
+
+\u000
+
+}
+
+\n Once the track to be moved is selected, start the join process by clicking on the Join button (\G{png.d/bjoin.png}).
+
+\lcont{
+
+\u000
+
+\G{png.d/joinmove3.png}
+
+\u000
+
+}
+
+\n \e{Shift+Left-Click} the endpoint of one of the two tracks being joined. A red dot will appear as a reminder of which track has been selected.
+
+\lcont{
+
+\u000
+
+\G{png.d/joinmove4.png}
+
+\u000
+
+}
+
+\n Move the mouse pointer over the endpoint of the other track then \e{Shift+Left-Click}. The selected track will be moved, aligned then joined to the stationary section of track.
+
+For detail about;
+
+\dd Using curved flex-track to join track segments refer to \K{joinTrackCurve}.
+
+\u000
+
+\dd Using straight flex-track to join track segments refer to \K{joinTrackStraight}.
+
+\rule
+
+
+\S{cmdModify} Modify
+
+\G{png.d/bmodify.png}
+
+The \f{Modify} command is used to change characteristics of or extend existing track by adding new track. This command works with any unconnected track endpoint.
+
+The \f{Modify} command can be invoked using the \f{Change>Modify} menu item, the \f{Modify} button or the menu raised by a \e{Right-Click} over the \f{Main Canvas}.
+
+Either the left mouse button (for changing length or creating a tangent track) or the right mouse button (for extending with a new track) is used to modify the unconnected endpoint.
+
+The endpoints of a \e{Line}, \e{Dimension Line}, \e{Table Edge} or \e{Bench-work} can be dragged to new positions. A \e{Box} is treated as 4 Lines.
+
+\e{Curved Lines} are modified in same manner as curved track.
+
+Selecting a corner of a \e{Poly Line}, \e{Filled Box} or \e{Polygon} moves that corner to a new position, and if moved close to a neighboring corner will merge the two corners and delete the edge between them. Selecting an edge will create a corner that can be dragged to a new position.
+
+Any tracks created during the \f{Modify} command will have the following properties inherited from the first track: selected state, hidden state, scale, track gauge and Layer.
+
+For detail about;
+
+\dd Changing track length refer to \K{chgTrackLength}.
+
+\u000
+
+\dd Creating a tangent to a curve refer to \K{createTangent}
+
+\u000
+
+\dd Changing track radius refer to \K{chgTrackRadius}
+
+\u000
+
+\dd Extending track length refer to \K{extendTrack}
+
+\rule
+
+
+\S2{chgTrackLength} Changing Track Length
+
+\n Click the \f{Modify} button (\G{png.d/bmodify.png}) to activate the \f{Modify} function.
+
+\lcont{\u000}
+
+\n With the mouse pointer hovering over the endpoint of the object to be modified, \e{Left+Drag} (\K{windowTerms}) to change the length of the track segment, table edge, bench-work, dimension line or line.
+
+\lcont{\u000}
+
+\e{Left+Drag}ging the endpoint of a turnout (or other sectional track) causes a straight length of flex-track to be created from the selected endpoint to the cursor.
+
+\e{Left+Drag}ging the endpoint of a \f{Table Edge} (\K{cmdDraw}) allows the endpoint to be moved to a new position. If the endpoint is moved close to another \f{Table Edge} then the endpoint will be moved to it.
+
+The length of a curved track can be changed to form an almost complete circle by selecting one endpoint of the curved track then dragging the cursor to the other endpoint. Going past the other endpoint creates a very small curve. Curves greater than 360\u00B0 cannot be created.
+
+For detail about;
+
+\dd Creating a tangent to a curve refer to \K{createTangent}
+
+\u000
+
+\dd Changing track radius refer to \K{chgTrackRadius}
+
+\u000
+
+\dd Extending track length refer to \K{extendTrack}
+
+\rule
+
+
+\S2{createTangent} Creating a Tangent to a Curve
+
+\n Click the \f{Modify} button (\G{png.d/bmodify.png}) to activate the \f{Modify} function.
+
+\lcont{\u000}
+
+\n With the mouse pointer hovering over the endpoint of the object to be modified, \e{Left+Drag} (\K{windowTerms}) to change the length of the track segment.
+
+If a \e{Left+Drag} is continued beyond the radius of a curved track (\K{cmdCurve}) (not a Circle) a tangent to the curve will be created.
+
+Creation of the tangent begins when the distance from the curved track center to the cursor is greater than 110% of the radius. If the cursor is moved within the radius of the curve then the current command exits and the \e{Changing Track Length} (\K{chgTrackLength}) command is executed instead.
+
+If \f{Easements} (\K{cmdEasement}) are enabled then an easement curve will be generated (if required) to connect the old and new tracks.
+
+For detail about;
+
+\dd Changing track length refer to \K{chgTrackLength}.
+
+\u000
+
+\dd Changing track radius refer to \K{chgTrackRadius}
+
+\u000
+
+\dd Extending track length refer to \K{extendTrack}
+
+\rule
+
+
+\S2{chgTrackRadius} Changing Track Radius
+
+This command is used to change the radius of a curved track or to curve a section of straight track.
+
+\n Click the \f{Modify} button (\G{png.d/bmodify.png}) to activate the \f{Modify} function.
+
+\lcont{\u000}
+
+\n \e{Shift+Left+Drag} the unconnected endpoint of a curved track to change the radius of track segment. Alternately, \e{Shift+Left+Drag} the unconnected endpoint of a straight track to add a radius to the track segment.
+
+\lcont{
+
+\u000
+
+\b For this command to work, the endpoint opposite that being manipulated must be connected to another track.
+
+\u000
+
+}
+
+This command can be used to change straight tracks into curved track and vice versa.
+
+For detail about;
+
+\dd Changing track length refer to \K{chgTrackLength}.
+
+\u000
+
+\dd Creating a tangent to a curve refer to \K{createTangent}
+
+\u000
+
+\dd Extending track length refer to \K{extendTrack}
+
+\rule
+
+
+\S2{extendTrack} Extending Track Length
+
+This command is used to extend the length of a straight or curved section of track.
+
+\n Click the \f{Modify} button (\G{png.d/bmodify.png}) to activate the \f{Modify} function.
+
+\lcont{\u000}
+
+\n With the mouse pointer hovering over the endpoint of the object to be modified, \e{Right+Drag} (\K{windowTerms}) to extend the length of the track segment.
+
+\lcont{\u000}
+
+The selected endpoint determines the position and angle of the first endpoint of the new track. The cursor is dragged to set the second endpoint. A curved or straight track will be created, depending on the position of the second endpoint.
+
+If \f{easements} (\K{cmdEasement}) are enabled then an easement curve will be generated (if required) to connect the old and new tracks.
+
+For detail about;
+
+\dd Changing track length refer to \K{chgTrackLength}.
+
+\u000
+
+\dd Creating a tangent to a curve refer to \K{createTangent}
+
+\u000
+
+\dd Changing track radius refer to \K{chgTrackRadius}
+
+\rule
+
+
+\S{cmdMove} Move
+
+\G{png.d/bmove.png}
+
+This command is used to move selected (\K{cmdSelect}) objects around the layout.
+
+
+The \f{Move} command can be invoked using the \f{Change>Move} menu item or the \f{Move} button and from the menu that's raised by a \e{Right-Click} over the \f{Main Canvas} or by the \e{Shift+Left+Drag} command when in \f{Select} mode.
+
+Successful use of this command requires selection of the object(s) to be moved before attempting to move it. An object is selected by using the \e{Left-Click} command. A group of connected objects can be selected using the \e{Shift+Left-Click} command.
+
+A pop-up menu with commands controlling how objects are drawn during moves can be activated by entering a \e{Shift+Right-Click} command while hovering over the \f{Main Canvas}
+
+\G{png.d/mmovedraw.png}
+
+\e{Left+Drag} is used to move the selected object(s) around the layout.
+
+\f{Note:} The \f{Draw Moving Tracks} Radio box on the \f{Command Options} (\K{cmdCmdopt}) dialog can also be used to select how objects are drawn during drags to move or rotate objects. The options for this feature are:
+
+\b \f{Normal} - objects are drawn normally. This can be time-consuming when using a slow machine and moving a large number of objects.
+
+\u000
+
+\b \f{Simple} - objects are drawn using one line (instead of two when zoomed in). Structures are drawn as outlines, no endpoints or lines are drawn.
+
+\u000
+
+\b \f{Endpoints} - only the endpoints are drawn (as stars).
+
+\rule
+
+
+\S{cmdMoveLabel} Move Description
+
+\G{png.d/bmovedes.png}
+
+This command is used to move Elevation, Grade, Station (\K{cmdElev}), Curved Track (\K{cmdCurve}), Helix (\K{cmdHelix}) or Turnout (\K{cmdHotBar}) Labels.
+
+The \f{Move Description} command can be invoked using the \f{Change>Move Description} menu item, the \f{Move Description} button or the menu raised by a \e{Right-Click} over the \f{Main Canvas}.
+
+Click the \f{Move Description} button to activate the \f{Move Description} command. Use \e{Left+Drag} to move the label to a new position. Once moved, the label becomes fixed in a position relative to the object. Subsequent moves of that object will cause the label to move as well.
+
+This operation can also be invoked by \e{Ctrl+Left+Drag} when in Select mode (\K{cmdSelect}).
+
+\e{Shift+Right-Click} (\K{cmdAcclKeys}) can be used to toggle display of individual Curved Track, Helix or Turnout Labels.
+
+\rule
+
+
+\S{cmdProfile} Profile
+
+The \f{Profile} dialog draws a profile showing elevations, distances and grades for a path on the layout.
+
+\G{png.d/dcprofile.png}
+
+Choose a path by using \e{Left-Click} on endpoints. As each endpoint is chosen, the path is extended via the shortest route. Selecting the end of the path trims the path back to a last \f{Defined Elevation} point (if any, otherwise the path is cleared).
+
+If no route is possible an error message is displayed. There are several reasons why this might happen:
+
+\b The tracks are not connected. Check this by using \e{Shift+Left-Click} on one track using the \f{Select} command (\K{cmdSelect}). This selects all tracks connected (directly or indirectly). See if the other track is selected.
+
+\u000
+
+\b One of the endpoints on the route is \f{Ignored} (\K{cmdElev}). Look for blue dots on the expected path when using the Profile or \f{Elevation} (\K{cmdElev}) commands.
+
+\u000
+
+\b The only route connects to a section of track that is already on the path and is not the end of the path. Remove the end of the path until the connected track is not on the path.
+
+The path is drawn in the Profile Color (\K{cmdRgbcolor}) (default Purple) on the layout.
+
+If the shortest path is not what you want, you can choose endpoints that are closer to the end of the path. Also, you can \f{Ignore} (\K{cmdElev}) endpoints to prevent the path from choosing a route through that endpoint. Shift+Right-Click (\K{cmdAcclKeys}) displays a pop-up menu that allows you to change the specified endpoint to be a \f{Defined}, \f{Ignored} or \f{None} Elevation endpoint.
+
+Each \f{Defined Elevation} endpoint on the path is drawn as a Vertical bar, labeled with its height and distance from the beginning of the path.
+
+The \f{Grade} between points is displayed between the vertical bars. The \f{Grade} line is drawn in Blue if that portion of the path does not contain more than one Shortest Path between Defined Elevation endpoints. Otherwise it is drawn in Red, to indicate the grade is an average and the actual grade may vary for any particular track segment. See Computing Dynamic Elevation (\K{computeElevations}) for more details.
+
+\f{Stations} on the path are displayed along the bottom of the \f{Profile}.
+
+The heights of \f{Defined Elevations} can be changed by using \e{Left+Drag} on the profile window. As you \f{Drag}, the new elevation and grades to each side are displayed at the bottom of the profile dialog.
+
+The \f{Done} button closes the dialog.
+
+The \f{Clear} button preserves elevation settings established along the current profile path, removes all profile points and leaves the \f{Profile} dialog open for selection of the next set of profile points. This function is useful when there's a need to view elevations along multiple profile paths.
+
+The \f{Print} button prints the dialog. The aspect ratio is preserved on the print-out. You will probably want to print in landscape format.
+
+\rule
+
+
+\S{cmdDescribe} Properties
+
+\G{png.d/bdescrib.png}
+
+Clicking on the \f{Properties} (Describe Mode) button cancels all active commands, closes any open dialog windows and places focus on the main window.
+
+A \e{Left-Click} on an object while in \f{Properties} mode causes a properties dialog window to appear. The properties dialog contains information pertaining to the selected objects position, size, color and layer as appropriate for each type of object. Certain values can be changed to modify the object. If a track is connected to other tracks, then some values, e.g., endpoint positions, can not be changed.
+
+\G{png.d/dproperties.png}
+
+The selected object is highlighted by a grey area.
+
+\G{png.d/dpropertieshighlight.png}
+
+Most commands return to \f{Properties} mode then they terminate unless the command is sticky (\K{cmdSticky}).
+
+Note: the Default Command radio button on the \f{Command Options} (\K{cmdCmdopt}) dialog controls whether the \f{Properties} or the \f{Select} (\K{cmdSelect}) command is used as the default command.
+
+\rule
+
+
+\S{cmdRaiseElev} Raise or Lower Elevation
+
+This command allows you to raise or lower the elevation of all selected tracks.
+
+\G{png.d/dchgelev.png}
+
+The entered value is added to all Defined Elevations on the Selected tracks. A negative value will lower the Elevations.
+
+\rule
+
+
+\S{cmdRotate} Rotate
+
+\G{png.d/brotate.png}
+
+This command is used to rotate selected (\K{cmdSelect}) objects.
+
+The \f{Rotate} command can be invoked using the \f{Change>Rotate} menu item, the \f{Rotate} button, the menu raised by a \e{Right-Click} over the \f{Main Canvas} or by the \e{Shift+Right+Drag} command when in \f{Select} mode.
+
+Successful use of this command requires selection of the object(s) to be rotated before attempting to rotate it. An object is selected by using the \e{Left-Click} command. A group of connected objects can be selected using the \e{Shift+Left-Click} command.
+
+A pop-up menu with commands controlling how objects move during the \f{Rotate} function can be activated by entering a \e{Shift+Right-Click} command while hovering over the \f{Main Canvas}.
+
+\G{png.d/mrotatemove.png}
+
+Rotation can be achieved using one of the following methods;
+
+\u000
+
+\dd \e{Left+Drag} using the mouse. See \K{rotateByMouse} for detail.
+
+\u000
+
+\dd Selecting fixed or specified degrees of rotation using a \e{Right-Click} menu. See \K{rotateByMenu} for detail.
+
+\u000
+
+\dd Aligning the selected object with another object on the layout. See \K{rotateByAlign} for detail.
+
+\rule
+
+
+\S2{rotateByMouse} Using Mouse
+
+Rotate An Object Using the Mouse
+
+\n \f{Select} the object(s) to be rotated.
+
+\lcont{\u000}
+
+\n Click the \f{Rotate} button (\G{png.d/brotate.png}) to activate the \f{Rotate} function.
+
+\lcont{\u000}
+
+\n Visualize an axis point on the object that's to be rotated then place the mouse pointer over that point.
+
+\lcont{\u000}
+
+\n Click and hold the left mouse button then drag (\e{Left+Drag}) the mouse away from the axis point to create a "handle". This handle will be used to rotate the object. While continuing to hold the left mouse button, drag (\e{Left+Drag}) the handle in the desired direction of rotation. \f{Note:} If the \e{Ctrl} key is pressed in conjunction with \e{Left+Drag}, the object will rotate in increments of 15\u00B0.
+
+\lcont{\u000}
+
+\n Release the mouse key once desired rotation is obtained.
+
+\u000
+
+Rotation can also be achieved through use of one of these alternate methods;
+
+\u000
+
+\dd Selecting fixed or specified degrees of rotation using a \e{Right-Click} menu. See \K{rotateByMenu} for detail.
+
+\u000
+
+\dd Aligning the selected object with another object on the layout. See \K{rotateByAlign} for detail.
+
+\rule
+
+
+\S2{rotateByMenu} Using Degree's of Rotation
+
+Rotate An Object Using Fixed or Specified Degree's of Rotation
+
+A pop-up menu with additional menu items allows you to \f{Rotate} the selected object(s) through various predefined angles or through any angle you specify. The \f{Rotate} command is executed as follows;
+
+\n \f{Select} the object(s) to be rotated.
+
+\lcont{\u000}
+
+\n Click the \f{Rotate} button (\G{png.d/brotate.png}) to activate the \f{Rotate} function.
+
+\lcont{\u000}
+
+\n With the mouse pointer hovering over the object to be rotated, \e{Shift+Right-Click} to raise the Rotate menu then select the desired degree and direction of rotation from the list of predefined angles (180\u00B0, 90\u00B0 CW, 45\u00B0 CW, 30\u00B0 CW, 15\u00B0 CW, 15\u00B0 CCW, 30\u00B0 CCW, 45\u00B0 CCW, 90\u00B0 CCW).
+
+\lcont{
+
+\u000
+
+\G{png.d/mrotatefixed.png}
+
+\u000
+
+Alternately, any angle may be entered by \e{Left-Click}ing the \f{Enter Angle...} menu item then entering a desired angle in the Rotate dialog window that appears.
+
+\G{png.d/drotateangle.png}
+
+\u000
+
+}
+
+Rotation can also be achieved through use of one of these alternate methods;
+
+\u000
+
+\dd \e{Left+Drag} using the mouse. See \K{rotateByMouse} for detail.
+
+\u000
+
+\dd Aligning the selected object with another object on the layout. See \K{rotateByAlign} for detail.
+
+\rule
+
+
+\S2{rotateByAlign} Aligned With Another Object
+
+Rotate and Align An Object With Another Object
+
+A pop-up menu with additional menu items allows you to \f{Align} the selected object(s) with any other object on the layout. The \f{Align} command is executed as follows;
+
+\n \f{Select} the object(s) to be rotated.
+
+\lcont{\u000}
+
+\n Click the \f{Rotate} button (\G{png.d/brotate.png}) to activate the \f{Rotate} function.
+
+\lcont{\u000}
+
+\n With the mouse pointer hovering over the object to be rotated, \e{Shift+Right-Click} to raise the Rotate menu then select \f{Align}.
+
+\lcont{
+
+\u000
+
+\G{png.d/mrotatealign.png}
+
+\u000
+
+}
+
+\n \e{Left-Click} on the (selected) object that is to be rotated.
+
+\lcont{\u000}
+
+\n \e{Left-Click} on the object with which you want the selected object aligned. The selected object will rotate to align with the reference object.
+
+\u000
+
+Rotation can also be achieved through use of one of these alternate methods;
+
+\u000
+
+\dd \e{Left+Drag} using the mouse. See \K{rotateByMouse} for detail.
+
+\u000
+
+\dd Selecting fixed or specified degrees of rotation using a \e{Right-Click} menu. See \K{rotateByMenu} for detail.
+
+\rule
+
+
+\S{cmdSelect} Select
+
+\G{png.d/bselect.png}
+
+Clicking on the \f{Select} button cancels all active commands, closes any open dialog windows and places focus on the main window.
+
+In combination with the mouse, the \f{Select} command can be used as follows;
+
+\dd \e{Left-Click} - selects an object (or unselects a selected object). Selected objects appear in red (unless changed in the \f{Color} (\K{cmdRgbcolor}) dialog).
+
+\u000
+
+\dd \e{Shift+Left-Click} - selects all unselected tracks connected to the track you select. Selection stops at selected tracks. Caution: This can select all tracks on the layout.
+
+\u000
+
+\dd \e{Left+Drag} - highlights an area, and all objects within the area are selected.
+
+\u000
+
+\dd \e{Right-Click} - displays a pop-up menu of commands.
+
+\lcont{
+
+\u000
+
+\G{png.d/mselect.png} or \G{png.d/mselected.png}
+
+\u000
+
+}
+
+\u000
+
+\dd \e{Shift+Right-Click} (\K{cmdAcclKeys}) - displays a pop-up menu of options controlling how objects are drawn during moves and rotates (below). If there are selected objects then additional menu items allow you to rotate the selected objects by various angles.
+
+\u000
+
+\dd \e{Right+Drag} - highlights an area, and all objects within the area are unselected.
+
+\u000
+
+\dd \e{Shift+Left-Click+Drag} - moves the selected objects (the Move (\K{cmdMove}) command).
+
+\u000
+
+\dd \e{Shift+Right-Click+Drag} - rotates the selected objects (the \f{Rotate} (\K{cmdRotate}) command).
+
+\lcont{
+
+\b If the \e{Ctrl} key is pressed while dragging then rotation will occur in 15\u00B0 increments.
+
+}
+
+\u000
+
+\dd \e{Ctrl+Left-Click+Drag} - moves turnout and elevations labels (Also see the \f{Move Description} (\K{cmdMoveLabel}) command).
+
+\u000
+
+The following commands operate on the objects you have selected:
+
+\b \f{Move} (\K{cmdMove}) the selected objects.
+
+\b \f{Rotate} (\K{cmdRotate}) the selected objects.
+
+\b \f{Flip} (\K{cmdFlip}) (mirrors) the selected objects.
+
+\b \f{Delete} (\K{cmdDelete}) selected objects.
+
+\b \f{Hide} (or unhide) in a Tunnel (\K{cmdTunnel}).
+
+\b \f{Move} Above or Below (\K{cmdAboveBelow}).
+
+\b \f{Parts List} (\K{cmdEnum}) of the selected objects.
+
+\b \f{Change} the width of the tracks' rails.
+
+\b \f{Export} (\K{cmdExport}) the selected objects.
+
+\b Creates a structure or turnout definition from \f{Grouped} (\K{cmdGroup}) objects.
+
+\b \f{Rescale} (\K{cmdRescale}) the selected objects.
+
+The \f{Cut}, \f{Copy} and \f{Paste} commands found on the \f{Edit} (\K{editM}) menu will also operate on selected objects.
+
+Notes:
+
+\b A Filled Shape (\K{cmdDraw}) can be selected by clicking on its edge.
+
+\u000
+
+\b Connections between selected and unselected tracks will be broken when selected tracks are moved. If the Drawing Scale is 8:1 or smaller, these about-to-be broken connections are marked with a red X.
+
+\u000
+
+\b The \f{Select All} item on the Edit (\K{editM}) menu can be used to select all objects on the layout.
+
+\u000
+
+\b The Default Command radio button on the Command Options (\K{cmdCmdopt}) dialog controls whether the \e{Properties} (\K{cmdDescribe}) or \e{Select} command is used as the default command.
+
+\u000
+
+\b Pressing the \e{Escape} key will deselect all selected tracks.
+
+\rule
+
+
+\S{cmdSplitTrack} Split Track
+
+\G{png.d/bsplit.png}
+
+The \f{Split} command provides several functions. It can be used to disconnect the joint between two sections of connected track, to divide a section of track into two pieces at a selected point or to place block gaps at an existing joint.
+
+For detail about;
+
+\u000
+
+\dd Disconnecting the joint between two sections of track see \K{splitDisconnect}.
+
+\u000
+
+\dd Dividing a section of track into two connected pieces see \K{splitDivide}.
+
+\u000
+
+\dd Creating block gaps at an existing joint see \K{splitBlockGap}.
+
+\rule
+
+
+\S2{splitDisconnect} Disconnect Joint
+
+Disconnecting a joint between two pieces of connected track;
+
+\n Click the \f{Split} button (\G{png.d/bsplit.png}) to activate the \f{Split} command.
+
+\lcont{\u000}
+
+\n Place the mouse pointer over the joint between the two track endpoints then \e{Left-Click}.
+
+\lcont{\u000}
+
+\dd When the \f{Split} command completes, the joint at the two track endpoints will show three lines rather than one. The three lines represent abutted, disconnected track endpoints.
+
+\u000
+
+\dd \G{png.d/splitConnect.png}
+
+\dd \e{Joint prior to split}
+
+\u000
+
+\dd \G{png.d/splitDisconnect.png}
+
+\dd \e{Joint following split}
+
+\u000
+
+For detail about;
+
+\u000
+
+\dd Dividing a section of track into two connected pieces see \K{splitDivide}.
+
+\u000
+
+\dd Creating block gaps at an existing joint see \K{splitBlockGap}.
+
+\rule
+
+
+\S2{splitDivide} Divide Track
+
+Dividing a section of track into two connected pieces;
+
+\n Click the \f{Split} button (\G{png.d/bsplit.png}) to activate the \f{Split} command.
+
+\lcont{\u000}
+
+\n Place the mouse pointer over the point on the track where the it should be divided then \e{Left-Click}.
+
+\lcont{\u000}
+
+\dd When the \f{Split} command completes, a connected joint will appear in the track at the point of selection. To split and disconnect at a point, execute the \f{Split} track command twice. The first command will split the track, the second command will disconnect it.
+
+\u000
+
+\dd \G{png.d/splitNotYet.png}
+
+\dd \e{Track prior to split}
+
+\u000
+
+\dd \G{png.d/splitConnect.png}
+
+\dd \e{Track following split}
+
+\u000
+
+It's not possible to create a track shorter than the \e{Minimum Track Length} (\K{cmdPref}).
+
+This command is useful for placing tunnel portals or elevation points (\K{cmdElev}) at specific track locations.
+
+Normally a turnout cannot be split however, if the \e{Shift} key is held when executing this command then the turnout can be \e{trim}med. \e{Trim}ming replaces the portion of track between the split point and the turnouts endpoint with flex-track. For turnouts with more than one set of points (\K{generalTerms}), such as a slip switch or scissors crossover, a \e{trim} point cannot be selected between the \e{points} of the turnout.
+
+For detail about;
+
+\u000
+
+\dd Disconnecting the joint between two sections of track see \K{splitDisconnect}.
+
+\u000
+
+\dd Creating block gaps at an existing joint see \K{splitBlockGap}.
+
+\rule
+
+
+\S2{splitBlockGap} Adding \i{Block Gaps}
+
+The \f{Split} command can be used to add block gaps (\K{generalTerms}) at the point where two track endpoints join. Block gaps are drawn as a thick line and can be placed in either of the rails or both if total isolation is required.
+
+\dd \G{png.d/blockNone.png}
+
+\dd \e{No Block Gaps}
+
+\u000
+
+\dd \G{png.d/blockTop.png}
+
+\dd \e{Block Gap in top rail}
+
+\u000
+
+\dd \G{png.d/blockBottom.png}
+
+\dd \e{Block Gap in bottom rail}
+
+\u000
+
+\dd \G{png.d/blockBoth.png}
+
+\dd \e{Block Gaps in both rails}
+
+\u000
+
+After executing the \f{Split} command use the \e{Shift+Right-Click} command to display one of two pop-up menus which can be used to add, change or remove \e{block gaps} for the selected endpoint.
+
+\dd \G{png.d/msplitblock.png}
+
+\dd \e{This menu appears if track runs in a horizontal direction.}
+
+\u000
+
+\dd \G{png.d/msplitblockLR.png}
+
+\dd \e{This menu appears if track runs in a vertical direction.}
+
+\u000
+
+For detail about;
+
+\u000
+
+\dd Disconnecting the joint between two sections of track see \K{splitDisconnect}.
+
+\u000
+
+\dd Dividing a section of track into two connected pieces see \K{splitDivide}.
+
+\rule \ No newline at end of file
diff --git a/app/doc/chmconf.but b/app/doc/chmconf.but
new file mode 100644
index 0000000..f29f420
--- /dev/null
+++ b/app/doc/chmconf.but
@@ -0,0 +1,21 @@
+\cfg{html-leaf-level}{infinite}
+\cfg{html-leaf-contains-contents}{false}
+\cfg{html-suppress-navlinks}{true}
+\cfg{html-suppress-address}{true}
+
+\cfg{html-contents-filename}{contents.html}
+\cfg{html-template-filename}{%k.html}
+\cfg{html-template-fragment}{%k}
+
+\cfg{html-mshtmlhelp-project}{xtrkcad.hhp}
+\cfg{html-mshtmlhelp-chm}{xtrkcad.chm}
+\cfg{html-mshtmlhelp-contents}{xtrkcad.hhc}
+\cfg{html-mshtmlhelp-index}{xtrkcad.hhk}
+
+\cfg{html-contents-depth}{0}{0}
+\cfg{html-contents-depth}{1}{0}
+\cfg{html-contents-depth}{2}{0}
+\cfg{html-contents-depth}{3}{0}
+\cfg{html-contents-depth}{4}{0}
+
+\cfg{html-head-end}{<link rel="stylesheet" type="text/css" href="xtrkcad_win.css">} \ No newline at end of file
diff --git a/app/doc/clean-html.cmake.in b/app/doc/clean-html.cmake.in
new file mode 100644
index 0000000..d3b6908
--- /dev/null
+++ b/app/doc/clean-html.cmake.in
@@ -0,0 +1,6 @@
+FILE(GLOB_RECURSE ALL_FILES *)
+
+IF(ALL_FILES)
+ FILE(REMOVE ${ALL_FILES})
+ENDIF(ALL_FILES)
+
diff --git a/app/doc/doc.vcproj b/app/doc/doc.vcproj
new file mode 100644
index 0000000..095fd28
--- /dev/null
+++ b/app/doc/doc.vcproj
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8,00"
+ Name="doc"
+ ProjectGUID="{2DD6F94A-3A3C-41BF-858E-C85F7941FF15}"
+ Keyword="MakeFileProj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="0"
+ >
+ <Tool
+ Name="VCNMakeTool"
+ BuildCommandLine="nmake -f makefile.win"
+ ReBuildCommandLine=""
+ CleanCommandLine="nmake -f makefile.win clean"
+ Output="xtrkcad.chm"
+ PreprocessorDefinitions="WIN32;_DEBUG"
+ IncludeSearchPath=""
+ ForcedIncludes=""
+ AssemblySearchPath=""
+ ForcedUsingAssemblies=""
+ CompileAsManaged=""
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="0"
+ >
+ <Tool
+ Name="VCNMakeTool"
+ BuildCommandLine="nmake -f makefile.win"
+ ReBuildCommandLine=""
+ CleanCommandLine=""
+ Output="xtrkcad.chm"
+ PreprocessorDefinitions="WIN32;NDEBUG"
+ IncludeSearchPath=""
+ ForcedIncludes=""
+ AssemblySearchPath=""
+ ForcedUsingAssemblies=""
+ CompileAsManaged=""
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\addm.but"
+ >
+ </File>
+ <File
+ RelativePath=".\appendix.but"
+ >
+ </File>
+ <File
+ RelativePath=".\changem.but"
+ >
+ </File>
+ <File
+ RelativePath=".\chmconf.but"
+ >
+ </File>
+ <File
+ RelativePath=".\drawm.but"
+ >
+ </File>
+ <File
+ RelativePath=".\editm.but"
+ >
+ </File>
+ <File
+ RelativePath=".\filem.but"
+ >
+ </File>
+ <File
+ RelativePath=".\helpm.but"
+ >
+ </File>
+ <File
+ RelativePath=".\hotbar.but"
+ >
+ </File>
+ <File
+ RelativePath=".\intro.but"
+ >
+ </File>
+ <File
+ RelativePath=".\macrom.but"
+ >
+ </File>
+ <File
+ RelativePath=".\makefile.win"
+ >
+ </File>
+ <File
+ RelativePath=".\managem.but"
+ >
+ </File>
+ <File
+ RelativePath=".\navigation.but"
+ >
+ </File>
+ <File
+ RelativePath=".\optionm.but"
+ >
+ </File>
+ <File
+ RelativePath=".\statusbar.but"
+ >
+ </File>
+ <File
+ RelativePath=".\view_winm.but"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ <File
+ RelativePath=".\readme.txt"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/app/doc/drawm.but b/app/doc/drawm.but
new file mode 100644
index 0000000..dd53418
--- /dev/null
+++ b/app/doc/drawm.but
@@ -0,0 +1,186 @@
+\# Notes:
+\#
+\# The "\u000" command is used to format the output. The command causes a blank line to appear between "bulleted" or "described" items.
+\#
+
+
+\H{cmdDraw} \i{Draw Menu}
+
+\e{Draw} commands are used to draw lines, arcs and other shapes. These can be used to represent water edges, bridges and other scenic features.
+
+\G{png.d/bdraw.png}
+
+There are 4 command buttons on the tool-bar used to draw Straight Objects, Curved Lines, Circles and other Shapes. Each command button is followed by a button that changes the action (and Icon) on the command button.
+
+\G{png.d/mdraw.png}
+
+Functions for drawing basic shapes and objects like lines and curves can be accessed from this menu.
+
+\dd \f{Circle Lines} - draw empty or filled circles.
+
+\u000
+
+\dd \f{Curved Lines} - are created in the same manner as curved tracks.
+
+\u000
+
+\dd \f{Note} - attach a note icon to a specific location on the layout.
+
+\u000
+
+\dd \f{Ruler} - create ruler and set visibility (\K{cmdRuler})
+
+\u000
+
+\dd \f{Shapes} - draw boxes and poly-lines.
+
+\u000
+
+\dd \f{Straight Objects} - draw straight objects.
+
+\u000
+
+\dd \f{Text} - allows entry of text directly onto the layout.
+
+Some commands display controls on the Status Line (\K{mainW}) to change line width, color or other attributes of the object.
+
+\rule
+
+
+\S{cmdCircleL} Circles and Filled Circles
+
+\G{png.d/mdrawcircles.png}
+
+\f{Circles} and \f{Filled Circles} are created by selecting either the center position or a point on the edge of the circle and dragging to specify the radius.
+
+\dd \G{png.d/dcircle2.png} \G{png.d/dflcrcl2.png} Select a point on the edge of the circle and drag to the center.
+
+\u000
+
+\dd \G{png.d/dcircle3.png} \G{png.d/dflcrcl3.png} Select the center and drag to set the radius.
+
+\rule
+
+
+\S{cmdCurvedL} Curved Lines
+
+\G{png.d/mdrawcurve.png}
+
+\f{Curved Lines} are created in the same manner as curved tracks.
+
+\dd \G{png.d/dcurve1.png} Select the start of the curve and drag in the direction of the curve.
+
+\u000
+
+\dd \G{png.d/dcurve2.png} Select one end of the curve and drag to the center.
+
+\u000
+
+\dd \G{png.d/dcurve3.png} Select the center of the curve and drag to one end.
+
+\u000
+
+\dd \G{png.d/dcurve4.png} Drag from one end of the curve to the other to form the chord of the curve.
+
+To complete the command, drag on the red arrows to adjust the curve.
+
+\rule
+
+
+\S{cmdNote} Note
+
+\G{png.d/bnote.png}
+
+The \f{Notepad} command allows you to attach notes (\G{png.d/iconnote.png}) to selected places on the layout.
+
+Click and drag on the Main Canvas (\K{mainW}) to place the note.
+
+When you release, the \e{Note Editor} dialog is displayed. You can enter the note in the text area.
+
+When in \f{Properties} (\K{cmdDescribe}) mode, clicking on a \e{Note} will display the \e{Property Sheet} to let you read or modify the note.
+
+\rule
+
+
+\S{cmdRuler} Ruler
+
+\G{png.d/bruler.png}
+
+The \f{Ruler} command displays a ruler on the layout. Click where you want the ruler to begin and drag the cursor to measure distances from the origin. The measured length is displayed in the \f{Status-bar} (\K{mainW}).
+
+You can use the \f{Modify} (\K{cmdModify}) command to change the length of the \f{Ruler}.
+
+Subsequent clicks on the \f{Ruler} button will hide or display the ruler.
+
+\rule
+
+
+\S{cmdShapes} Shapes
+
+\G{png.d/mdrawshapes.png}
+
+Shapes are drawn by:
+
+\dd \G{png.d/dbox.png} \G{png.d/dfilbox.png} \f{Boxes} and \f{Filled Boxes} are created by selecting one corner and dragging the opposite corner. A \f{Box} is composed of four lines which may be individually deleted.
+
+\u000
+
+\dd \G{png.d/dpoly.png} \G{png.d/dfilpoly.png} \f{Poly Lines} and \f{Polygons} are created by \e{Left+Drag}, and a corner is placed when you release the left mouse button. The \f{Poly} shape is finished by pressing the \e{Space} key or by selecting another operation.
+
+\rule
+
+
+\S{cmdStraightL} Straight Objects
+
+\G{png.d/mdrawstraight.png}
+
+Straight Objects are created by a \e{Left+Drag} (\K{windowTerms}) on the layout. If \e{Draw Straight Objects} is Sticky (\K{cmdSticky}), \e{Shift+Left+Drag} will use the endpoint of the previous line as the starting point.
+
+\dd \G{png.d/dline.png} Creates a \f{Straight Line} of specified color and width.
+
+\u000
+
+\dd \G{png.d/ddimlin.png} Creates a \f{Dimension Line} of various sizes.
+
+\u000
+
+\dd \G{png.d/dbench.png} Creates \i\f{Bench-work} using different types and orientation of lumber.
+
+\u000
+
+\dd \G{png.d/dtbledge.png} Creates a \f{Table Edge}
+
+\i{Bench-work Notes}
+
+\dd Lumber is drawn using the Dressed size which is 0.25" smaller than the indicated size: a 1" x 2" actually measures 0.75" x 1.75". The drawn height of \e{Girders} is 0.5" smaller.
+
+\u000
+
+\dd \e{Girders} can be drawn in a variety of orientations: normal, inverted or rotated. \e{L-Girders} can be drawn with the flange to the Left or Right.
+
+\u000
+
+\dd When using metric units (\K{cmdPref}), a 1" x 2" is labeled 50mm x 25mm
+
+\rule
+
+
+\S{cmdText} Text
+
+\G{png.d/btext.png}
+
+The \f{Text} command lets you enter text on the layout at the selected position.
+
+\G{png.d/statustext.png}
+
+The font size can be changed by the Font Size drop list on the \f{Status-bar} (\K{mainW}). The font size is scaled along with everything else on the layout so text is always the same relative size as other layout objects.
+
+The font can be selected by the \f{Font Selection} (\K{fontSelW}) dialog invoked by the \f{Options>Fonts} menu item or by \e{Shift+Right-Click} (\K{cmdAcclKeys}).
+
+The position where text is to be placed on the layout must be selected prior to text entry. The position is select by \e{Left-Click}ing on the layout at the point where the text is to appear. Desired text is entered after the position is selected. If necessary, the location can be changed once text entry begins by \e{Left-Click+Drag}ing the text to any desired postion on the layout.
+
+The \f{Properties} (\K{cmdDescribe}) command can be used to modify the contents of existing \f{Text} objects.
+
+Note: loading fonts (or changing sizes) can take a noticeable amount of time.
+
+\rule \ No newline at end of file
diff --git a/app/doc/editm.but b/app/doc/editm.but
new file mode 100644
index 0000000..9572172
--- /dev/null
+++ b/app/doc/editm.but
@@ -0,0 +1,151 @@
+\# Notes:
+\#
+\# The "\u000" command is used to format the output. The command causes a blank line to appear between "bulleted" or "described" items.
+\#
+
+\H{editM}\i{Edit Menu}
+
+\G{png.d/medit.png}
+
+The \f{Edit Menu} shows commands affecting the \f{Main Canvas} (\K{mainW}).
+
+\dd \f{Above} - Moves selected object to foreground.
+
+\u000
+
+\dd \f{Below} - Moves selected object to background.
+
+\u000
+
+\dd \f{Copy} - Copies the selected objects to the clipboard.
+
+\u000
+
+\dd \f{Cut} - Moves the selected objects to the clipboard.
+
+\u000
+
+\dd \f{Delete} - Deletes the selected objects.
+
+\u000
+
+\dd \f{Deselect All} - unselects all objects on the layout. The same action can be achieved by pressing the ESC key.
+
+\u000
+
+\dd \f{Invert Selection} - selects all unselected objects and unselects all previously selected objects.
+
+\u000
+
+\dd \f{Move To Current Layer} - move all selected objects to the current Layer (\K{cmdLayer}).
+
+\u000
+
+\dd \f{Paste} - Copies the contents of the clipboard to the layout. The newly pasted parts are in \f{Selected} state and can easily be moved into place. Any previously selected objects are unselected.
+
+\u000
+
+\dd \f{Redo} - Undoes the last Undo command. The \f{Redo} command can also be invoked by the \f{Redo} button (\K{cmdUndo}).
+
+\u000
+
+\dd \f{Select All} - Selects all objects on the layout.
+
+\u000
+
+\dd \f{Select Current Layer} - selects all objects in the current Layer (\K{cmdLayer}).
+
+\u000
+
+\dd \f{Select Stranded Track} - selects all track pieces that are not connected to any other objects. This helps cleaning up a drawing after many changes have been made.
+
+\u000
+
+\dd \f{Thin, Medium and Thick Tracks} - set rail width of selected tracks.
+
+\u000
+
+\dd \f{Tunnel} - Hides or reveals selected tracks.
+
+\u000
+
+\dd \f{Undo} - Undoes the last command. Up to the last ten commands can be undone. If there are no commands that can be undone the \f{Undo} item is disabled. The \f{Undo} command can also be invoked by the \f{Undo} button (\K{cmdUndo}).
+
+For more information on working with selected objects, see the Select (\K{cmdSelect}) command.
+
+\rule
+
+
+\S{cmdAboveBelow} Above and Below
+
+\G{png.d/btop_bottom.png}
+
+The Above/Below commands move the selected objects (\K{cmdSelect}) into the \f{Foreground} or \f{Background} making them more or less visible or prominent.
+
+The effect is to make the objects appear in front or behind other objects. This command is most useful when dealing with filled shapes (\K{cmdDraw}).
+
+Selected objects moved to the \f{Background} become unselected.
+
+\rule
+
+
+\S{addshortcutkeys} \i{Additional Shortcut Keys}
+
+Additional Shortcut keys perform the following:
+
+\dd \e{Shift+Backspace} - Undo
+
+\u000
+
+\dd \e{Ctrl+Insert} - Copy
+
+\u000
+
+\dd \e{Shift+Insert} - Paste
+
+\u000
+
+\dd Shift+Delete - Cut
+
+\u000
+
+\dd Esc - Deselect All
+
+\rule
+
+
+\S{cmdDelete} Delete
+
+\G{png.d/bdelete.png}
+
+The \f{Delete} button is used to delete selected objects. Remember, the \f{Undo} (\K{editM} or \K{cmdUndo}) command can be used to restore a delete object.
+
+Deleting a track that is connected to an easement (\K{cmdEasement}) causes the easement to be deleted as well.
+
+The \f{Delete} key invokes the Delete command.
+
+\rule
+
+
+\S{cmdTunnel} Tunnel (Hide Tracks)
+
+\G{png.d/btunnel.png}
+
+The \f{Tunnel} command is used to hide selected (\K{cmdSelect}) tracks (as in a tunnel).
+
+Select the tracks you want to hide in a tunnel. Selecting a hidden track 'reveals' it.
+
+A tunnel portal is drawn where a hidden track connects with an 'unhidden' track. You can split (\K{cmdSplitTrack}) a track to place a tunnel portal at a particular spot.
+
+The \f{Draw Tunnels} Radio button group on the \f{Options>Display} dialog (\K{cmdDisplay}) controls whether hidden tracks are not drawn, drawn as dashed lines or drawn as normal lines.
+
+\rule
+
+
+\S{cmdUndo} Undo and Redo
+
+\G{png.d/bgundo.png}
+
+The \f{Undo} and \f{Redo} buttons invoke the same actions as the \f{Edit} menu items. The name of last command will be displayed as the Balloon Help (\K{windowTerms}) for the \e{Undo} button. The name of last undone command will be displayed as the Balloon Help for the \e{Redo} button.
+
+\rule \ No newline at end of file
diff --git a/app/doc/filem.but b/app/doc/filem.but
new file mode 100644
index 0000000..10eb969
--- /dev/null
+++ b/app/doc/filem.but
@@ -0,0 +1,374 @@
+\# Notes:
+\#
+\# The "\u000" command is used to format the output. The command causes a blank line to appear between "bulleted" or "described" items.
+\#
+
+\H{fileM} \i{File Menu}
+
+\G{png.d/mfile.png}
+
+The \f{File Menu} shows file oriented commands for loading and saving layout files.
+
+\dd \f{Exit} - Exits \e{XTrackCAD}. You will be asked to confirm your choice if there are unsaved changes.
+
+\u000
+
+\dd \f{Export} - Exports the selected objects to a file in \e{XTrackCAD} (*.xti) format. The exported file can then be imported into another layout design. Refer to the Import command listed above.
+
+\u000
+
+\dd \f{Export to Bitmap} - Creates a bitmap file (\K{cmdOutputbitmap}) of the layout.
+
+\u000
+
+\dd \f{Export to DXF} - Exports the selected objects to a file in DXF format (\K{generalTerms}). The exported file can then be imported into other CAD programs.
+
+\u000
+
+\dd \f{File List} - List of the five most recently used \e{XTrackCAD} files.
+
+\u000
+
+\dd \f{Import} - Displays the file selection dialog which allows selection of an existing \e{XTrackCAD} Import (\K{cmdExport}) file. This function can be used to transfer parts like a yard design from one layout design to another.
+
+\u000
+
+\dd \G{png.d/bnew.png} \f{New} - Clears the current layout. In case there are any unsaved changes on the current plan, a warning pop-up will be displayed and you'll have the option to cancel the operation.
+
+\u000
+
+\dd \f{Notes} - Displays a simple notepad editor which you can use to enter information about the layout. Typically this could include prototype, period, theme, layout style, height, construction, type of track and turnouts used, control system and anything else of interest. (There is also a \f{Note} command (\K{cmdNote}) which allows attaching notes to particular parts of the layout.)
+
+\u000
+
+\dd \G{png.d/bopen.png} \f{Open} - Displays the \f{File Open} dialog which allows an existing \e{XTrackCAD} file to be selected and opened. In case there are any unsaved changes on the current plan, a warning pop-up will be displayed and you'll have the option to cancel the operation.
+
+\u000
+
+\dd \f{Parameter Files} - Displays the \f{Parameter Files} dialog (\K{cmdPrmfile}) to choose parameter files.
+
+\u000
+
+\dd \f{Print Setup} - Shows the Printer Setup Dialog (\K{printSetup}).
+
+\u000
+
+\dd \f{Print} - Invokes the Print command (\K{cmdPrint}).
+
+\u000
+
+\dd \f{Revert} - Undoes all changes and returns to the last saved layout plan.
+
+\u000
+
+\dd \G{png.d/bsave.png} \f{Save} - Saves the layout under the current file name. If a filename has not yet been assigned then the \f{File Save} dialog is shown so you enter a file name.
+
+\u000
+
+\dd \f{Save As} - This command lets you make a copy of the track plan you are currently working on. It differs from the regular Save command. Save stores your data back into the folder (directory) it originally came from. "Save As" lets you give your plan a different name and/or put it in a different folder on your hard disk or floppy disk.
+
+\rule
+
+\S{cmdExport} \i{Export}
+
+This menu item displays a file selection dialog where a file name for exported objects can be entered. All selected (\K{cmdSelect}) objects are exported to the file. The export file will have an \c{xti} extension.
+
+\G{png.d/exportfile.png}
+
+Using the Import command (\k{cmdImport}), an exported file can be imported into another layout design.
+
+\rule
+
+\S{cmdOutputbitmap} \i{Export to Bitmap}
+
+This menu item creates a bitmap file of the layout.
+
+\G{png.d/bitmap.png}
+
+The \f{Bitmap} dialog specifies the style and size of the bitmap. The three check-boxes (\f{Print Titles}, \f{Print Borders} and \f{Print Centerline}) control whether the Layout Title (\K{cmdLayout}), the borders or the track centerlines are printed on the bitmap. The size of the bitmap is smaller if these are disabled.
+
+Printing the track centerlines (also seen when zoomed in 1:1) is useful when you later print the bitmap
+full size for laying out track.
+
+If the Snap Grid (\K{cmdGrid}) is visible then it will be printed on the bitmap.
+
+The \f{DPI} (or \f{DPCM} if using metric units (\K{cmdPref})) control specifies the number of pixels per inch (or centimeter) in the bitmap. You can enter values from 0.1 to 100. Larger values will result in a larger bitmap file. bitmaps must be less than 32000 pixels in height or width.
+
+The bitmap width, height and approximate file size is indicated.
+
+Note: This command can create a very large file and consume a lot of memory and time.
+
+Pressing the \f{OK} button invokes a \f{File Save} dialog so you can choose the file name for the Bitmap.
+
+The format of the file depends on the Operating System: on MS-Windows it is a Windows Bitmap (.BMP) file, on Linux it is a X11 Pixmap (.XPM) file.
+
+\rule
+
+\S{ExportDXF} \i{Export to DXF}
+
+This menu item displays a file selection dialog where a file name for exported objects can be entered. All selected (\K{cmdSelect}) objects are exported to the file. The export file will have an \c{xti} extension.
+
+\G{png.d/exportfiledxf.png}
+
+Exported files can then be imported into other CAD programs.
+
+\rule
+
+\S{cmdImport} Import
+
+Importing displays a file selection dialog to specify the file to import.
+
+\G{png.d/import.png}
+
+After importing the objects from the file, the imported objects are in selected state and therefore are drawn in red. This allows you to easily move and rotate the imported objects to their final position.
+
+\rule
+
+\S{cmdPrmfile} \i{Parameter Files}
+
+\e{Parameter Files} contain turnout, sectional track and structure definitions. Parameter Files are loaded and unloaded with the \f{Parameter Files} dialog.
+
+\G{png.d/dprmfile.png}
+
+The dialog contains a list of parameter files. Each file is preceded by a checked box. If the box is checked, the parameter file is loaded. If the box is not checked the file is unloaded.
+
+Loaded definition files associated with current scale settings appear on the \f{Hot Bar} (\K{cmdHotBar}). If you \e{unload} a file the definitions are removed from the selection lists and the \f{Hot Bar}. An unloaded file may be \e{reloaded} by selecting the \f{Reload} button (The \f{Unload} button changes to \f{Reload} when a selected file is unloaded).
+
+\e{Unloaded} files are removed from the list when \e{XTrackCAD} terminates.
+
+Files can be listed by either their file name or by their contents description. This is controlled by the \f{Show File Names} check box.
+
+The \f{Browse} button allows you to load other \e{parameter files} such as provided by other users or downloaded from the Internet.
+
+When first installed, all available parameter files are loaded. You can unload parameter files you don't use to speed up \e{XTrackCAD} startup time.
+
+The order in this list controls the order of turnouts and structures on the \f{Hot Bar} (\K{cmdHotBar}). You can move a parameter file to the end of the list by \e{Unloading} it, and then loading it via the \f{Browse} button.
+
+\rule
+
+\S{cmdPrint} \i{Printing}
+
+The \f{Print} command (\f{File>Print}) is used to print all or a portion of the layout.
+
+When the \f{Print} command is selected a grid, which represents each printed page, is drawn on the layout. Pages can be selected or unselected for printing by placing the mouse over a grid section and clicking the left mouse button.
+
+\G{png.d/print.png}
+
+The \f{Print} dialog contains a number of control areas:
+
+\dt The size of each page is controlled by:
+
+\dd \f{Scale} - up to 1:1.
+
+\u000
+
+\dd \f{Width, Height} - scaled size of each page. Values for \f{Width} and \f{Height} can be manually entered, overriding the maximum values. Values larger than the page size times the \e{Scale} cannot be entered.
+
+\u000
+
+\dd \f{Max} - sets Width and Height to the maximum for the print \e{Scale}.
+
+\u000
+
+\dd \f{Snap Shot} - adjusts the \e{Scale}, \e{Origin} and \e{Angle} to produce a one-page snap shot of the layout.
+
+\u000
+
+\dd \f{Format} - Portrait or Landscape.
+
+\u000
+
+\dt Page printing order is controlled by the \f{Print Order} option.
+
+\dd Relative to the Print Grid:
+
+\lcont{
+
+\dd \f{Normal} order is Columns first, Top to Bottom, Left to Right.
+
+\u000
+
+\dd \f{Reverse} order is Rows first, Left to Right, Bottom to Top.
+
+}
+
+Whether tracks are printed with one or two lines (representing the center line and rails) depends on the \f{Print Scale}. If this value is smaller than or equal to twice the Two Rail Scale on the Display (\K{cmdDisplay}) dialog then tracks are drawn with two lines. This corresponds to the way tracks are drawn on the main window, adjusted to account for the greater resolution of most printers. At 1:1 tracks are also drawn with a center line.
+
+\dt Other options:
+
+\dd \f{Engineering Data} - show title, user, date and other information in a box at the bottom of the printout.
+
+\u000
+
+\dd \f{Ignore Page Margins} - use the physical page size. This allows the printouts to abut without trimming.
+
+\u000
+
+\dd \f{Print Registration Marks} - at 1:1 scale, print location markers every 3" (or 10cm). This option is only enabled at 1:1. This is useful for aligning multiple pages printed at different angles.
+
+\u000
+
+\dd \f{Print Snap Grid} - if the Snap Grid (\K{cmdGrid}) is visible then it may be drawn on the printout. This option is only enabled if the \e{Snap Grid} is visible.
+
+\u000
+
+\dd \f{Print Rulers} - print rulers on all edges of the page. This option is only enabled if the \f{Angle} is \e{0.000}.
+
+\u000
+
+\dd \f{Print Roadbed Outline} - lines representing the edge of the Roadbed. The Roadbed will be printed if the \e{Width} is greater than the track gauge. Note: this option is most useful at 1:1. This option is disabled if tracks would be drawn with only one line (instead of two).
+
+\u000
+
+\dt The orientation of the print grid is controlled by:
+
+\dd \f{X} - X co-ordinate.
+
+\u000
+
+\dd \f{Y} - Y co-ordinate.
+
+\u000
+
+\dd \f{Angle} - of the grid.
+
+
+These values can be set directly or by dragging on the layout. \e{Shift+Left+Drag} moves the grid and \e{Shift+Right+Drag} rotates the grid. The \f{Reset} button resets the values to 0.
+
+The \f{Print} button prints the selected pages and closes the \f{Print} dialog. It is not enabled until you have selected some pages to print.
+
+The \f{Setup} button invokes the Printer Setup (\K{printSetup}) dialog.
+
+The \f{Clear} button unselects all selected pages.
+
+\e{Suggested Uses:}
+
+Use the \f{Snapshot} button to set the scale and orientation for a one-page printout of the layout. Also set \f{Engineering Data} to add the Layout Title, Scale and other data for a summary.
+
+Use \f{Layers} (\K{cmdLayer}) to control which tracks are visible (and printed). Put bench-work, scenery or different tracks levels in separate layers and hide the layers you are not working with.
+
+To transfer the drawing to the layout without printing at 1:1, make the Snap Grid (\K{cmdGrid}) visible and orient it to match your room or layout table.
+
+Check the \f{Print Snap Grid} toggle and use the printed grid to transfer measurements to your layout space. You may want to change the color (\K{cmdRgbcolor}) of the \f{Snap Grid} to make it more visible on the printout.
+
+When you print multiple pages you can check \f{Ignore Page Margins} so pages can be placed next to each other. The tracks will line up correctly without trimming or overlapping the pages. Note: depending on your printer there will be an unprintable margin around the edge of the page.
+
+If you print at 1:1 for direct transfer to the sub-roadbed, check \f{Print Roadbed Outline} and set \f{Width} to show lines for making cuts.
+
+If you make printouts in strips at different angles at 1:1 (to follow tracks around a curve), check \e{Print Registration Marks} to be able to align the separate strips.
+
+\rule
+
+\S{printSetup} Printer Setup
+
+\S2{Linux} \i{Linux}
+
+\G{png.d/printset.png}
+
+The \f{Printer Setup} dialog allows you to configure the application's use of the printer.
+
+The \f{Printer Setup} window contains:
+
+\dd \f{Printer} - a list to select a particular printer. The entries on this list are defined by \c{printer} lines in the \c{~/.xtrkcad/xtrkcad.rc} file. The first entry, 'File', causes printouts to be sent to a file. You will be prompted for a file name when doing a print.
+
+\u000
+
+\dd \f{Paper Size} - a list of various North American and European paper sizes.
+
+\u000
+
+\dd \f{Margins} - non-printable margins for particular printers. You can adjust these entries or select a printer type from the list. To add margins for a new printer, enter the printer's name and then enter the margin for each edge. You can use \f{Print Test Page} to determine the margins for your printer.
+
+\u000
+
+\dd The \f{Delete} button removes a printer from the margin list.
+
+\u000
+
+\dd \f{Format} - a Radio button to select either Landscape or Portrait format.
+
+\u000
+
+\dd \f{X Font} and \f{PS Font} - specifies the mapping between the displays X Font and the corresponding Postscript Font. You can change the Postscript font for a specified X Font by typing the new font name in the \f{PS Font} field. The \e{font alias} map will be printed on the \f{Print Test Page}.
+
+\u000
+
+\dd \f{Factor} - adjusts the scaling between X Font and Postscript Font sizes. Due to differences between the two font systems, text size may be of slightly different between the display and printer. This option allows you to adjust the font size. Normally only a small adjustment is required, (like 0.950).
+
+\u000
+
+\dd \f{OK} - updates the data and ends the dialog.
+
+\u000
+
+\dd \f{Cancel} - ends the dialog without update.
+
+\u000
+
+\dd \f{Print Test Page} - prints a test page you can use to determine the printer margins.
+
+\u000
+
+The formats of the \e{printer} entries are:
+
+\dd PRINTER.Iprinter-num: Iprinter-name\e{=}Icommand
+
+\u000
+
+\dd where:
+
+\lcont{
+
+\dd \c{Iprinter-num} is the next value in a sequential list (starting at \f{1}, \f{0} is reserved for \f{FILE}). \f{printer.1} is predefined as \c{lp=lpr -P%s}.
+
+\dd \c{Iprinter-name} is the name of the printer as it appears in the \f{Printer} selection list.
+
+\dd \c{Icommand} is the command to invoke where \e{%s} will be replaced by the \c{Iprinter-name}.
+
+}
+
+To add a new printer, select the next value for Iprinter-num and add the printer line with the name and print command.
+
+Printing generates Postscript data which is sent to the specified printer (or File). The names of fonts differs between the X Window System and Postscript and there is no formula to convert them. The printing system uses a \e{font alias} map to convert from X font names to Postscript font names. Font aliases for the common Postscript fonts are predefined but you must supply an alias for unknown fonts. The 'Font Alias' window will be shown whenever you are printing an unknown font. You will be asked to supply a Postscript font name for a X font. You can change the \e{font alias} mapping by using the \f{X Font} and \f{PS Font} entries on the \f{Printer Setup} dialog.
+
+\rule
+
+\S2{MS-Windows} \i{Microsoft Windows}
+
+\G{png.d/printset_win.png}
+
+The Windows \f{Printer Setup} dialog allows you to configure the application's use of the printer.
+
+The \f{Printer Setup} window contains:
+
+\dd \f{Name} - a drop down list for selection of a particular printer. Entries in this list are defined by \c{Windows}.
+
+\u000
+
+\dd \f{Status} - the current status of the selected printer.
+
+\u000
+
+\dd \f{Type} - the type and model of printer selected.
+
+\u000
+
+\dd \f{Where} - The location of the printer if it's defined in the printers properties.
+
+\u000
+
+\dd \f{Comment} - Any comments defined that are defined in the printers properties.
+
+\u000
+
+\dd \f{Paper Size} - a list of various North American and European paper sizes.
+
+\u000
+
+\dd \f{Paper Source} - a list of various paper tray locations associated with the selected printer.
+
+\u000
+
+\dd \f{Orientation} - a Radio button to select either Landscape or Portrait format.
+
+\rule \ No newline at end of file
diff --git a/app/doc/helpm.but b/app/doc/helpm.but
new file mode 100644
index 0000000..290adf5
--- /dev/null
+++ b/app/doc/helpm.but
@@ -0,0 +1,65 @@
+\# Notes:
+\#
+\# The "\u000" command is used to format the output. The command causes a blank line to appear between "bulleted" or "described" items.
+\#
+
+\H{helpM} Help Menu
+
+\G{png.d/mhelp.png}
+
+The \f{Help Menu} displays information on various topics. The contents of the menu vary depending on the operating system.
+
+\dd \G{png.d/mhelpdemos.png}
+
+\dd \e{Demo Menu}
+
+The \f{Demos} command (\K{cmdDemo}) opens a cascading menu which invokes various demonstrations of \e{XTrackCAD} features.
+
+\dd \G{png.d/mhelprecent.png}
+
+\dd \e{Recent Messages}
+
+The \f{Recent Messages} command opens a cascading menu containing recent error messages and notices you have received. Selecting one of them displays additional information about the message (\K{messageList}).
+
+\dd \G{png.d/dtipofday.png}
+
+\dd \e{Tip of The Day}
+
+The \f{Tip of the Day} item displays a useful tip about the operation of \e{XTrackCAD}. By default, a new tip is displayed each time you start the program.
+
+\rule
+
+\S{cmdDemo} Demo Mode
+
+The \f{Demos} menu item, under the \f{Help} (\K{helpM}) menu, shows a cascading menu
+of choices to demonstrate various features and commands.
+
+\G{png.d/mhelpdemos.png}
+
+In demonstration mode \e{XTrackCAD} is driven by a script file (such as created by the \f{Record} (\K{macroM}) command). The cursor is simulated on the Main Window (\K{mainW}) and the \e{XTrackCAD} windows (except the \f{Demo} window) are inactive. Also, simulated input on dialogs is indicated by a border momentarily drawn around the control.
+
+The \f{Demo} dialog is displayed which contains a number of control buttons and a text area that shows comments on the demonstration being run.
+
+\dd \G{png.d/demo.png}
+
+\b \f{Next} - skip to the next demonstration. If you hold down the \e{Shift} key then you will jump back to the previous demonstration.
+
+\u000
+
+\b \f{Quit} - quit demonstration mode.
+
+\u000
+
+\b \f{Speed} - controls the speed of the demonstration.
+
+\u000
+
+\b \f{Step} - advance to the next step of the current demonstration.
+
+The state of the layout is saved when running demonstrations.
+
+A number of options and controls (such as scale) are changed while running demonstrations. These will be restored when the demonstration is finished.
+
+You can adjust Window sizes and positions while the demonstration is running to better see what is happening.
+
+\rule \ No newline at end of file
diff --git a/app/doc/hhc.cmake.in b/app/doc/hhc.cmake.in
new file mode 100644
index 0000000..ff03282
--- /dev/null
+++ b/app/doc/hhc.cmake.in
@@ -0,0 +1,10 @@
+EXECUTE_PROCESS(
+ COMMAND @HTML_HELP_COMPILER@ xtrkcad.hhp
+ RESULT_VARIABLE RESULTS
+ OUTPUT_VARIABLE OUTPUT
+ ERROR_VARIABLE ERROR
+ )
+
+MESSAGE("${OUTPUT}")
+MESSAGE("${ERROR}")
+
diff --git a/app/doc/hotbar.but b/app/doc/hotbar.but
new file mode 100644
index 0000000..3ce82f4
--- /dev/null
+++ b/app/doc/hotbar.but
@@ -0,0 +1,48 @@
+\# Notes:
+\#
+\# The "\u000" command is used to format the output. The command causes a blank line to appear between "bulleted" or "described" items.
+\#
+
+\H{cmdHotBar} Hot Bar
+
+\G{png.d/hotbar.png}
+
+The \e{Hot Bar} is a scrolling list of all the turnouts, sectional track and structures available through the Turnout (\K{cmdTurnout}) and Structure (\K{cmdStructure}) commands. The Description and/or Part Number under each object can be displayed by enabling the \e{Hot Bar Labels} radio button on the Display (\K{cmdDisplay}) dialog.
+
+The arrow buttons on either side of the \e{Hot bar} move the list one object to the right or left. Holding down the Shift key will move the list by greater amounts. About eight Shift+Clicks are required to move the list through the entire range of objects. Also, pressing the keys \e{1} through \e{9} and \e{0} will cause the \e{Hot Bar} to jump relative spots on the list.
+
+A \e{Right-Click} over the \e{Hot Bar} will display a pop-up menu listing the contents of the \e{Hot Bar}. Selecting an item from this list causes the \e{Hot Bar} to jump to the relative spot on the list.
+
+Objects on the \e{Hot Bar} are placed on the drawing canvas by first clicking on the object, \e{Dragging} it the Main window, positioning it then pressing the \e{Space} key to set it in place.
+
+\rule
+
+
+\S{hbStructures} Structures
+
+\e{Structures} are placed on the layout in the same way as turnouts (\K{hbTurnouts}) except no active endpoint exists and they do not align with existing track.
+
+Refer to \K{cmdStructure} for information pertaining to use of the \e{Structure} dialog.
+
+\rule
+
+
+\S{hbTurnouts} Turnouts
+
+\e{Turnouts} have an active endpoint (\K{generalTerms}) which is the handle used to position the \e{Turnout}. You can change the \e{active endpoint} by a \e{Shift+Left-Click} which causes the next endpoint to become Active.
+
+If you \e{Left+Drag} a turnout onto a track, the active endpoint (\K{generalTerms}) is aligned with the selected track. On flex-track, you can flip the turnout by moving the cursor from one side of the track centerline to the other. On another turnout, the new turnout will be placed at the endpoint closest to the cursor.
+
+\e{XTrackCAD} will automatically connect the turnout's endpoints to any other tracks they are aligned with. The number of endpoints that will be connected is displayed on the Status Bar, as well as the Maximum displacement between these endpoints and the tracks they will be connected to. \e{XTrackCAD} will adjust the position of the Turnout to give you the best fit for locating the turnout. You can override this adjustment by holding down the \e{Shift} key while \e{Dragging}.
+
+\e{Right+Drag} (\K{windowTerms}) can be used to rotate the turnout on the layout. \e{Shift+Right-Click} (\K{cmdAcclKeys}) displays a pop-up menu allowing you to rotate the turnout by various angles.
+
+When you press the \e{Space} key, the turnout is positioned on the layout. Any tracks that are aligned with any of the turnout's endpoints will be connected to the turnout automatically. If you are using the Turnout (\K{cmdTurnout}) command then you can also click the \e{OK} button on the dialog.
+
+If you choose another turnout or change commands after beginning to place a turnout on the layout, the turnout will be created as if it is attached to another track. Otherwise it will be removed.
+
+If the Drawing Scale is smaller or equal to the Label Scale (\K{cmdDisplay}) then Turnouts will be labeled with their description when drawn. The individual labels can be can be turned off by the Move Description(\K{cmdMoveLabel}) command, or all Turnout labels can be disabled by using the Display (\K{cmdDisplay}) dialog. As well, the length of any connected Flex-track will be indicated at each endpoint.
+
+Refer to \K{cmdTurnout} for information pertaining to use of the \e{Turnout} dialog.
+
+\rule
diff --git a/app/doc/intro.but.in b/app/doc/intro.but.in
new file mode 100644
index 0000000..3fe5b7e
--- /dev/null
+++ b/app/doc/intro.but.in
@@ -0,0 +1,830 @@
+\# Notes:
+\#
+\# The "\u000" command is used to format the output. The command causes a blank line to appear between "bulleted" or "described" items.
+\#
+
+
+\# Identify XTrackCAD Version, Microsoft Windows software installation package name and Copyright information
+
+\define{XTCVer} Version @XTRKCAD_VERSION@
+
+\define{XTCWinPack} xtrkcad-setup-@XTRKCAD_VERSION@.exe
+
+\define{XTCRPMPack} xtrkcad-setup-@XTRKCAD_VERSION@.i386.rpm
+
+\define{XTCStgzPack} xtrkcad-setup-@XTRKCAD_VERSION@.i386.sh
+
+\define{XTCCopyRight} Copyright 2003, Sillub Technology and
+Copyright 2007, Bob Blackwell and Martin Fischer
+
+
+\# Index Groupings
+
+\IM{Bench-work}{Bench-work Notes} Bench-work
+
+\IM{Directories Overview}{Install Directory}{Working Directory} Directories
+
+\IM{Easements}{Easements and Sectional Track} Easements
+
+\IM{Export}{Export to Bitmap}{Export to DXF} Export
+
+\IM{Window Terms}{XTrackCAD Terms} Glossary
+
+\IM{Install directory}{Linux Installation}{Microsoft Windows Installation} Installation
+
+\IM{Copying and Distribution}{GNU General Public License} License
+
+\IM{Add Menu}{File Menu}{Edit Menu}{View Menu}{Change Menu}{Draw Menu}{Manage Menu}{Options Menu} Menus
+
+\IM{Entering Values}{Keyboard Shortcuts}{Main Window Overview}{Map Window}{Mouse Actions}{Shortcut Keys}{Typographic Conventions} Navigation
+
+\IM{printDesignToRoadbed}{Linux}{Microsoft Windows}{Printing} Printing
+
+\IM{Additional Shortcut Keys}{Hot Bar}{Keyboard Shortcuts}{Main Drawing Canvas}{Mouse Actions}{Shortcut Keys} Shortcut Keys
+
+\IM{Created by Turnout Command}{Easements and Sectional Track} Sectional Track
+
+
+\# >>>>>>>>>> Manual Begin's Here <<<<<<<<<<
+
+\title \e{XTrackCAD} User's Manual
+
+\G{png.d/xtrkcad_logo.gif}
+
+\e{\XTCVer}
+
+\copyright \XTCCopyRight
+
+\rule
+
+
+\C{index} Introduction To \e{XTrackCAD}
+
+\e{XTrackCAD} is a CAD (computer-aided design) program for designing Model Railroad layouts. \e{XTrackCAD} supports any scale, has libraries of popular brands of turnouts and sectional track (plus you add your own easily), can automatically use spiral transition curves when joining track and has extensive on-line help and demonstrations. \e{XTrackCAD} lets you manipulate track much like you would with actual flex-track to modify, extend and join tracks and turnouts. Additional features include tunnels, 'post-it' notes, on-screen ruler, parts list, 99 drawing layers, undo/redo commands, bench-work, 'Print to Bitmap', elevations, train simulation and car inventory.
+
+Using it, you can
+
+\b Design layouts in any scale and gauge,
+
+\u000
+
+\b Use predefined libraries for many popular brands of turnouts to help you get started easily,
+
+\u000
+
+\b Add your own favorite components,
+
+\u000
+
+\b Manipulate track much like you would with actual flex-track to modify, extend and join tracks and turnouts,
+
+\u000
+
+\b Automatically generated Spiral \e{transition curves} (easements) whenever the track radius changes.
+
+\u000
+
+\b Test your design by running trains, including picking them up and moving them with the mouse.
+
+\u000
+
+\b Print the design in a scale of your choice. When printed in 1:1 scale the printout can be used as a template for laying the track to build your dream layout.
+
+\u000
+
+New users should run the demonstrations (via the \f{Help>Demos} menu) to get an overview of the many features of the program. A number of example layout designs are also available.
+
+Be sure to visit the project web page for latest news and updates: \W{http://www.xtrkcad.org/}{\e{XTrackCAD} Fork Website}
+
+\rule
+
+
+\H{whyXTrackCAD} Why Choose \e{XTrackCAD}
+
+\f{Why Choose XTrackCAD}
+
+\f{Easy to use}
+
+As much as possible, \e{XTrackCAD} is designed to operate the same as pencil and paper: create tracks by simply dragging the mouse, place turnouts anywhere on existing tracks, use circles for initial design and create stall tracks by drawing from the turntable.
+
+You don't have to be an expert CAD user to make the most of \e{XTrackCAD}. You don't specify line lengths or angles, just draw.
+
+\e{XTrackCAD} deals with tracks as tracks, not line segments. Tracks are connected to each other and can be drawn showing endpoints of turnouts and other components. As you zoom in, both rails are drawn.
+
+On-line demonstrations show the actual operation of many of the program's features. Extensive help is available for all commands and operations.
+
+\f{Packed with features}
+
+\e{XTrackCAD} is designed from the ground up to be a complete tool for Model Railroad layout design.
+
+\dt \e{Train Simulation and Car Inventory}
+
+\dd Any number of Cars and Locomotives can be placed on your layout to check clearances, siding capacities and track layout. Trains can be animated to simulate operations and switching on your layout. But be careful you don't crash!
+
+\u000
+
+\dd The Car Inventory dialog records your cars and locomotives.
+
+\u000
+
+\dt \e{Track Manipulation}
+
+\dd Track segments can be lengthened or shortened by simple click and drag. Tangents to a curve are created by dragging away from the curve. Tracks are extended by dragging from an Endpoint, creating new straight or curved segments.
+
+\u000
+
+\dd Track circles are especially handy for determining overall designs and seeing what will fit in a given area.
+
+\u000
+
+\dd The Parallel command easily creates new straight or curved tracks, laying out yards and sidings in a few easy steps.
+
+\u000
+
+\dd The Join command links any two tracks (straight, curved, Turnouts or Turntables) with accurate aligned connecting track segments. The connected tracks are trimmed or extended as required.
+
+\u000
+
+\dd The Helix Track command computes the number of turns, radius, grade and vertical separation to based on your criteria.
+
+\u000
+
+\dt \e{Turnout Select and Placement}
+
+\dd The Turnout Hot Bar contains a scrolling list of Turnouts, Sectional Tracks and Structures available in the current Scale. Simply click on one and drag it onto the layout.
+
+\u000
+
+\dd As Turnouts are dragged over existing tracks they are automatically aligned. \e{XTrackCAD} searches for any other tracks that align with each of the Turnout's Endpoints, and shows you the number of connections that will be made and the maximum offset as you position the Turnout. Just adjust the Turnout's position to minimize the offset to ensure the best fit.
+
+\u000
+
+\dd When a turnout is placed, each Endpoint is examined to see if it aligned to an existing track. If so, the track is split to create a perfect connection to the turnout. Placing Turnouts is a 'snap'.
+
+\u000
+
+\dt \e{Layers}
+
+\dd Layers are an important feature for designing layouts of any complexity. Use one layer for the main-line and others for staging tracks, Bench-work or scenery. Multilevel designs can have groups of layers for each level.
+
+\u000
+
+\dd \e{XTrackCAD} allows up to 99 layers and the first 20 layers can have their own button to control visibility. Each layer can have a name which is displayed as the balloon help for the layer button.
+
+\u000
+
+\dd Tracks and other objects can be colored according to which layer they are in. Also, each layer can be frozen to prevent accidental changes to parts of the layout that are finalized.
+
+\u000
+
+\dt \e{Elevations and Profile}
+
+\dd Elevations are one of the most powerful features of \e{XTrackCAD}.
+
+\u000
+
+\dd Traditional layout designs (such as published in magazines) show elevations at selected spots on the layout. They may also show grades between elevations.
+
+\u000
+
+\dd \e{XTrackCAD} lets you define the elevation of any Endpoint on the layout. You can also have \e{XTrackCAD} automatically compute the elevation and grade between defined elevation points. You can define the elevation at the bottom and top of a sloped track, then have \e{XTrackCAD} compute the elevation at each riser position between.
+
+\u000
+
+\dd Once you have defined a few elevations, you can display the Elevation Profile for the layout along a path of connected track segments. The Profile display shows the length of the track, the elevation of each defined elevation point and the grades between them. You can even adjust the elevations directly on the Profile display.
+
+\u000
+
+\dt \e{Easements (Spiral Transition Curves)}
+
+\dd Easements are special sections of gradually curving track used to connect straight and curved tracks (or two curved tracks). Easements reduce the effects of sudden changes in track curves which can cause derailments. They also look great!
+
+\u000
+
+\dd \e{XTrackCAD} can use Easements anytime the radius of the track changes. The Modify and Join commands will automatically insert Easement Track segments whenever needed. Each Easement is computed based on the radius of the neighboring tracks. You don't even have to think about it!
+
+\u000
+
+\dt \e{Flexible and Powerful Printing}
+
+\dd Printing is an important part of a layout design program, and \e{XTrackCAD} has a flexible Print command to get your design onto the layout.
+
+\u000
+
+\dd Printing is used for many purposes:
+
+\lcont{
+
+\b A snapshot of the whole layout.
+
+\b Detailed closeups to examine areas of complicated track work.
+
+\b Full 1:1 for direct transfer to the layout.
+
+}
+
+\u000
+
+\dd The Print command lets you scale the printout from a one page overall view (with the handy Snap-Shot button) right up to full size 1:1.
+
+\u000
+
+\dd Multiple page printouts are easy to do. A gird representing each page is drawn over the layout and you can click on the pages you want to print. The gird can be moved and rotated to any position so the orientation of the printout matches your layout. Pages can be printed in Portrait or Landscape format.
+
+\u000
+
+\dd At 1:1, registration marks can be printed every 3" (or 10cm) to help align different sets of printouts. Also, the roadbed outline can be drawn at a user-specified width to assist cutting the roadbed from sheet material.
+
+\u000
+
+\dt \e{Turnout and Structure Creation}
+
+\dd \e{XTrackCAD} comes with Turnout, Sectional Track and Structure Parameter Files for many brands of tracks and accessories. However, your brand may not supplied. The Turnout Designer dialogs and the Group command make it easy to add your own custom definitions.
+
+\u000
+
+\dd The Turnout Editor has separate screens for designing Turnouts (Regular, Curved, Wye and 3-way), Crossings, Slip-switch, Crossovers and Sectional Track. In each dialog a few measurements are required to create a new definition. Full size printouts can be made directly from the dialog to check your design.
+
+\u000
+
+\dd The Group command can create Structure definitions from selected tracks, lines and shapes. You can make structures as simple as a rectangle or highly detailed. You can also modify existing designs to add details or make adjustments.
+
+\u000
+
+\dt \e{Lines, Shapes, Table Edges, Text and Notes}
+
+\dd Layout designs are more than track!
+
+\u000
+
+\dd The \e{XTrackCAD} Draw command is used to draw lines (straight, curved and circles) and shapes (filled boxes, circles and polygons). These can be different colors and lines can have different widths. These are useful for drawing scenic features (rivers, bridges, mountains).
+
+\u000
+
+\dd You can add Bench-work and dimension lines too.
+
+\u000
+
+\dd Special types of lines are drawn by the Table Edge command are used to represent the boundary at the edge of the layout.
+
+\u000
+
+\dd Text can be drawn on the layout too.
+
+\u000
+
+\dd Notes can be attached to particular spots on the layout. When selected they can display special information about that part of the layout, such as prototype features, construction details or operation notes.
+
+\u000
+
+\dt \e{Parts and Price Lists}
+
+\dd The Parts List command generates a list of the number of the different types of Turnouts, Sectional Track and Structures selected on the layout. You can select everything or just the areas you are working on. As well, the total length of flex-track (for each track scale/gauge used on the layout) is listed.
+
+\u000
+
+\dd You can enter the price of each type of Turnout, Sectional Track and Structure, plus the length and price of flex-track. \e{XTrackCAD} will compute the price of each types and the grand total. The total number of flex-track sections is also listed.
+
+\u000
+
+\dt \e{Support for Sectional Track}
+
+\dd Numerous Sectional Track Parameter Files are included with \e{XTrackCAD} (Atlas, Marklin, Peco, ...). The Hot Bar allows easy selection.
+
+\u000
+
+\dd The automatic alignment feature of Turnout and Sectional Track placements makes track pieces just 'snap' together.
+
+\u000
+
+\dd The Connect Track command adjusts Sectional Track to smooth out the slight gaps that can arise when working with Sectional Track.
+
+\u000
+
+Refer to \K{keyFeatures} and \K{addFeatures} for a listing of \e{XTrackCAD} features.
+
+
+\H{keyFeatures} Key \e{XTrackCAD} Features
+
+\b Annotate with text and notes
+
+\u000
+
+\b Automatic easement calculation
+
+\u000
+
+\b Create Custom Designed Turnouts and Structures
+
+\u000
+
+\b Create parallel straight and curved tracks
+
+\u000
+
+\b Delete objects
+
+\u000
+
+\b Describe objects
+
+\u000
+
+\b Draw lines, arcs and filled shapes (for showing river edges etc.)
+
+\u000
+
+\b Draw table edges, Bench-work and dimension lines
+
+\u000
+
+\b Elevations, grades and profiles
+
+\u000
+
+\b Extend (or shrink) a segment by dragging its Endpoint
+
+\u000
+
+\b Extend a segment with a curve (or straight)
+
+\u000
+
+\b Generate parts list for all or selected areas of the layout
+
+\u000
+
+\b Hand-laid Turnouts
+
+\u000
+
+\b Helix track
+
+\u000
+
+\b Hot Bar for Turnout and Structure selection
+
+\u000
+
+\b Join any two tracks
+
+\u000
+
+\b Move and rotate any group of objects
+
+\u000
+
+\b Ninety-nine drawing Layers
+
+\u000
+
+\b On-line demonstrations, extensive help, tips and error message explanations
+
+\u000
+
+\b On-screen ruler for measurements
+
+\u000
+
+\b Panning via a map window
+
+\u000
+
+\b Price lists
+
+\u000
+
+\b Printing in any scale (up to 1:1) at any position and angle
+
+\u000
+
+\b Straight and curved flex-track segments
+
+\u000
+
+\b Supports any scale
+
+\u000
+
+\b Track circles and tangent tracks
+
+\u000
+
+\b Train Simulation
+
+\u000
+
+\b Tunnels (hidden tracks)
+
+\u000
+
+\b Turnouts, crossings (and sectional track such as Atlas Snap-track)
+
+\u000
+
+\b Turntables (user defined diameter)
+
+\u000
+
+\b Undo the last ten commands
+
+\u000
+
+\b Zoom in and zoom out of the drawing area
+
+\rule
+
+
+\H{addFeatures} Additional \e{XTrackCAD} Features
+
+\e{XTrackCAD} has many other carefully selected features:
+
+\b Sections of track can be hidden, which can be drawn as dashed lines, or completely hidden. A Tunnel Portal is drawn when a hidden track connects with normal track.
+
+\u000
+
+\b Drawing Turntable stall tracks is easy, just drag from the Turntable with the Modify command. The minimum angle between tracks can be set to ensure accurate, evenly spaced tracks.
+
+\u000
+
+\b Connections to non-visible layers are marked to an arrow head to show you the track continues on another layer.
+
+\u000
+
+\b The Group command can be used to decorate custom designed Turnouts and Sectional Track with details to indicate switch machines, ground throws and power connections.
+
+\u000
+
+\b Custom designed Turnouts can be modified, renamed or deleted with the Custom Management dialog.
+
+\u000
+
+\b Flex-track connected to Turnouts is labeled with the total length to aid cutting flex-track to length.
+
+\u000
+
+\b An on-screen ruler can be user to measure arbitrary distances.
+
+\u000
+
+\b At 1:1 drawing (and printing) scale the track center line is drawn to make it easy to position roadbed and track.
+
+\u000
+
+\b The balloon help for the Undo and Redo buttons shows the command that would be Undone or Redone.
+
+\u000
+
+\b The Snap Grid can positioned at any origin and any angle. It can also be printed to help when transferring coordinates to the layout.
+
+\u000
+
+\b The Map window is used to position the Main window on the layout. It can also be used to change the drawing scale.
+
+\u000
+
+\b You can rescale and flip objects, trim turnouts and create block gaps.
+
+\rule
+
+
+\H{aboutmanual} About This Manual
+
+\i\f{Typographic Conventions}
+
+Throughout this manual the following typographic conventions are used to make finding information easier:
+
+\dd \f{Bold} - Shows menu, file or dialog item titles.
+
+\u000
+
+\dd \c{Mono-spaced} - Shows commands or text entries by user. On entry fields the spelling given has to be followed exactly.
+
+\u000
+
+\dd \e{Italic} - Marks a new expression, usually followed by a short description
+
+\u000
+
+\dd \c{Capital Key} - Usually used in a sequence of key strokes or in combination with \e{Shift, Alt or Ctrl} key.
+
+\u000
+
+\dd \c{Key+Key} - Combination of keys, e.g., \c{Ctrl+S}
+
+\u000
+
+\dd \c{Key, Key, Key} - Sequence of key strokes, e.g., \c{Alt, F, S}
+
+\u000
+
+\dd \f{Selection>Selection} - Sequence of selections from menu, e.g., \f{File>Save}
+
+\rule
+
+
+\H{installSoftware} Installation
+
+\e{XTrackCAD} is designed to operate under Linux or MS Windows. Information within this section of the manual pertains to installation of the application in either of these environments.
+
+\rule
+
+\S{MSWinInstall} \i{Microsoft Windows Installation}
+
+\e{XTrackCAD} is shipped as a self-installing self-expanding program (executable).
+
+\n Using Windows Explorer, locate the directory in which you downloaded or copied your new version of \e{XTrackCAD}.
+
+\lcont{\u000}
+
+\n Start the installation program by double clicking on the \f{\XTCWinPack} file icon.
+
+\lcont{\u000}
+
+\n Follow the steps in the installation program.
+
+\lcont{\u000}
+
+\n The installation lets you define the directory in which \e{XTrackCAD} is installed. The directory is created automatically if it doesn't already exist.
+
+\lcont{\u000}
+
+\n A program folder named \c{XTrkCad4} will be created during the installation process. The folder contains the program, documentation, parameter and example files.
+
+\rule
+
+\S{LinuxInstall} \i{Linux Installation}
+
+\e{XTrackCAD} for LINUX is shipped as a self-extracting archive (executable).
+
+\n Installing from the self-extracting archive.
+
+\lcont{
+
+\dd After downloading open a command line then
+
+\dd \c{./\XTCStgzPack --prefix=/usr/local --exclude-subdir}
+
+\dd This will install the executable in /usr/local/bin. A directory named \c{xtrkcad} will be created in
+/usr/local/share and all files will be unpacked into it.
+
+}
+
+If you install \e{XTrackCAD} into another directory, set the \c{XTRKCADLIB} environment variable to point to that directory.
+
+\rule
+
+\H{startSoftware} \i{Start the Program}
+
+The \e{XTrackCAD} executable is named xtrkcad.exe on Windows and xtrkcad on Linux.
+
+\f{Command Line}
+
+On Windows:
+
+\c xtrkcad [/c config] [/v] [/l logfile] [/d logcontrol] layoutfile
+
+On Linux:
+
+\c xtrkcad [-c config] [-v] [-l logfile] [-d logcontrol] layoutfile
+
+\f{Command line parameters}
+
+\dt \c{c config}
+
+\dd configuration to use. This allows you to have several distinct configurations (eg.
+parameter files, display options).
+
+\u000
+
+\dt \c{layoutfile}
+
+\dd filename for the layout to load.
+This parameter takes precedence over the option to resume with the last layout (\K{cmdPref}).
+
+\f{Debugging Parameters}
+
+The following parameters are for debugging purposes and are mainly of interest to the
+developers.
+
+\dt \c{v}
+
+\dd verbose mode.
+
+\u000
+
+\dt \c{d logcontrol}
+
+\dd specifies the amount of logging. The argument logcontrol has the format \c{logmodule[=level]}.
+logmodule defines the functionality that should be logged, the optional level specifies the loglevel.
+Defaults are no modules are logged and loglevel is 1 if omitted from logonctrol parameter.
+
+\u000
+
+\dt \c{l logfile}
+
+\dd set logfile, only needed in conjunction with the debug option.
+
+
+
+
+\H{introQT} Quick Tour
+
+\G{png.d/main.png}
+
+When \e{XTrackCAD} starts, it displays the \f{Main} (\K{mainW}) and \f{Map} (\K{cmdMap}) windows. The \f{Map} window is used to change the origin of the \f{Main} window when the entire layout cannot be displayed at one time.
+
+The Menu bar across the top of the \f{Main} window contains standard Windows menus. Some of these are particularly useful to the new user:
+
+\b The \f{File>Exit} menu exits \e{XTrackCAD}. You can also exit by selecting the System menu in the upper left corner of the Window.
+
+\u000
+
+\b The \f{File>Open} menu opens existing layout files. When first installed, the default directory contains some example programs you can look at.
+
+\u000
+
+\b The \f{Help} menu can be used to read the \e{XTrackCAD} Help file. Also, the \f{Help>Demos} menu selects a number of demonstrations which illustrate various features of \e{XTrackCAD}.
+
+\u000
+
+\b The \f{Options>Layout} menu specifies the working scale and overall room size.
+
+\u000
+
+\b The \f{Options>Preferences} menu specifies some less frequently changed items.
+You can use this menu to choose Metric units (\K{cmdPref}).
+
+\rule
+
+
+\H{performance} Performance Issues
+
+This section lists some things that can improve the performance of \e{XTrackCAD}.
+
+\b To speed up initialization, remove unused parameter files (See \f{Parameter Files} dialog - \K{cmdPrmfile}).
+
+\u000
+
+\b During moves and rotates, draw tracks \f{Simply} or as \f{Endpoints} (See \f{Command Options} dialog - \K{cmdCmdopt}). Also \f{Zoom In} (\K{viewM}) to reduce the number of tracks that are being displayed.
+
+\u000
+
+\b If you have to move a lot of track a large distance, create a temporary track at the destination and use the \f{Join} (\K{cmdJoin}) command to move the selected track to join with the temporary track. Then remove the temporary track.
+
+\u000
+
+\b Close the \f{Map} window if you don't need it to move about the layout. The \f{Window} (\K{windowM}) menu can be used reopen the Map window.
+
+\u000
+
+\b On the \f{Display} dialog (\K{cmdDisplay}) turn off drawing \f{Endpoints}, decrease the \f{Two Rail Scale}, increase \f{Min Grid Spacing}, set \f{Draw Ties} to \f{None} and turn off \f{Live Map}.
+
+\rule
+
+\H{directories} Files and Directories
+
+Information within this section of the manual identifies installation directory names, file names and directory and file locations.
+
+\rule
+
+\S{dirOverview} \i{Directories Overview}
+
+\e{XTrackCAD} uses two directories on your system:
+
+\b The \e{XTrackCAD Install} directory, which contains the data and parameter files used by \e{XTrackCAD}.
+
+\u000
+
+\b The \e{XTrackCAD Working} directory, which contains configuration and Check Point files.
+
+On MS Windows the \e{Install} directory is set when you install \e{XTrackCAD}. All data files (parameters,
+demos, examples) can be found in the \c{share/xtrkcad} subdirectory underneath the \e{Install} directory.
+The \e{Working} directory is in your personal profile.
+
+On Linux the \e{Install} directory is usually \c{/usr/local/lib/xtrkcad/}, but you can change this by defining the \c{XTRKCADLIB} environment variable before starting \e{XTrackCAD}. The working directory is \c{\{HOME\}/.xtrkcad/}.
+
+Layout files (\c{*.xtc}) and export (\K{cmdExport}) files (\c{*.xti}) can be saved anywhere you wish, as specified in the \f{Save File} and \f{Open File} dialogs.
+
+Example layouts can be found in the \c{example} directory under the \e{XTrackCAD} install directory.
+
+\rule
+
+\S{installDir} \i{Install Directory}
+
+\b \c{xtrkcad.xtq} is the main parameter file which contains definitions for each scale. It also includes turnout definitions for the demos and lists the playback (\e{.xtr}) files for the demos.
+
+\u000
+
+\b \c{params} directory contains \c{*.xtp} files which are the \e{XTrackCAD} Library parameter files. These files (\c{atlasn.xtp, pecon55.xtp, ...}) contain definitions for turnouts, sectional track pieces and structures. These files to be used are selected in the \f{Parameter Files (\K{cmdPrmfile})} dialog.
+
+\u000
+
+\b \c{xtrkcad.chm} (on MS-Windows) is the \e{XTrackCAD} help file.
+
+\u000
+
+\b \c{xtrkcad.exe} (MS-Windows) or \c{xtrkcad} (Linux) is the \e{XTrackCAD} program.
+
+\u000
+
+\b \c{xtrkcad.tip} contains the Tip of the Day information accessible from the \f{Help} menu or shown during startup.
+
+\u000
+
+\b \c{xtrkcad0.ini} specifies the location of the \e{XTrackCAD} working directory (MS-Windows only).
+
+\u000
+
+\b \c{demos} directory contains \c{*.xtr} which are the \e{XTrackCAD} demonstration files which can be run via the \f{Help>Demos} menu item.
+
+\u000
+
+\b \c{examples} directory contain some example \c{.xtc} files
+
+\rule
+
+\S{workDir} \i{Working Directory}
+
+\b \c{xtrkcad.ckp} are the \e{check-point} files created periodically while running \e{XTrackCAD}. If your system \e{XTrackCAD} hangs or crashes you get the choice of loading the checkpoint file and so recover (most of) your work by saving it to your current layout file.
+
+\lcont{
+
+The check-point frequency is set by the \e{Check Point} field found in the \f{Preferences} dialog (\f{Options>Preferences}).
+
+}
+
+\b The \c{xtrkcad.cus} file contains parameter information. This is mostly information created by the \f{Turnout Designer} dialogs (\K{cmdTurnoutNew}) and \f{Group} (\K{cmdGroup}) command. You can use the \f{Edit>Custom Management} dialog to manipulate these parameters.
+
+\u000
+
+\b The \c{xtrkcad.ini} (on MS-Windows) or the \c{xtrkcad.rc} (on Linux) file contains various parameter settings from each use of \e{XTrackCAD}. Most changes you make (such as scale, room size, window position) are saved in this file for the next time you use \e{XTrackCAD}.
+
+\rule
+
+\H{uninstall} \i{Removing \e{XTrackCAD}}
+
+Remove \e{XTrackCAD} by deleting the \e{XTrackCAD Install} directory, deleting any \c{xtrkcad.*} files from the \e{Working} directory, and deleting any \e{*.xtc} and \e{*.xti} files.
+
+On MS-Windows, you can also use the \f{Uninstall} icon in the \e{XTrackCAD} program group.
+
+\rule
+
+
+\H{bugs_enhancements} Bugs and Enhancements
+
+This section of the manual describes how and where to report a bug or seek an enhancement.
+
+\rule
+
+
+\S{bugs} Reporting \i{Bugs}
+
+If you encounter an unreported bug please submit detail regarding such to the \f{Bug Tracker} located at the \W{http://sourceforge.net/tracker/?group_id=151737&atid=781978}{\e{XTrackCAD} Fork Project Site}.
+
+\f{Be sure to provide the three basic elements of a bug report:} What you were doing at the time the bug occurred, what you expected to happen and what actually happened. This detail will help developers replicate the error, find and correct the offending code.
+
+\dt \f{A Sample Bug Report Follows;}
+
+\u000
+
+\dd After completing installation of \e{XTrackCAD} on a Dell Dimension PC with 128 MB of memory running Windows ME, the following error occurred when attempting to edit a Text Label;
+
+\u000
+
+\dd \c{Notice: allocateButt: Can't find 13. Do you want to save the layout?}
+
+\u000
+
+\dd Selecting either "Yes" or "No" results in a Windows error and \e{XTrackCAD} closes.
+
+\u000
+
+\dd The error can be replicated by opening the file named cascade.xtc. Set the magnification at 4:1. Attempting to move the text label named "Granville Island" located at the approximate grid coordinates of x=8", y=4' 5". Selecting the label causes the error to occur.
+
+\u000
+
+\dd The error is repeatable with other files contain text labels.
+
+\f{Always search the bug database first.} Advice so good, we'll repeat it twice. Always search the bug database first. The odds are good that if you've found a problem, someone else found it too. If you spend a few minutes of your time making sure that you're not filing a duplicate bug, that's a few more minutes someone can spend helping to fix that bug rather than sorting out duplicate bug reports.
+
+\f{If you don't understand an error message, ask for help.} Don't report an error message you don't understand as a bug. There are a lot of places you can ask for help in understanding what is going on before you can claim that an error message you do not understand is a bug. (Once you've understood the error message and have a good suggestion for a way to make the error message clearer, you might consider reporting it as a \W{http://sourceforge.net/tracker/?group_id=151737&atid=781981}{\e{XTrackCAD} Feature Request}).
+
+\f{Be brief, but don't leave any important details out.} This is a fine line to walk. But there are some general guidelines:
+
+Remember the three basics: what you were doing, what you expected to happen, and what happened.
+
+If you can recreate the problem the \f{Macro>Record} command can be used to record what happened. Try to isolate the problem by creating a minimal layout and recording as few commands as possible.
+
+\f{Don't report bugs about old versions.} Every time a new version of \e{XTrackCAD} is released, many enhancements are added and known bugs are fixed. If you're using a version of \e{XTrackCAD} that's more than two revisions older than the latest version, you should upgrade to the latest version to make sure the bug you are experiencing still exists. (It's not a bad idea to upgrade even if your version is only a version behind the most current one.)
+
+\f{Only report one problem in each bug report.} If you encounter two or more bugs that don't appear to be related create a separate bug report for each one. This makes the task of managing work assignments easier and may result in a quicker fix for the problem.
+
+\rule
+
+
+\S{enhancements} \i{Enhancement Requests}
+
+Suggestions for improvements are encouraged and welcome. Submit your suggestion to the \e{XTrackCAD} \f{Feature Tracker} located at the \W{http://sourceforge.net/tracker/?group_id=151737&atid=781981}{\e{XTrackCAD} Fork Project Site} or the \e{XTrackCAD} \f{Wikka Wish List} located at the \W{http://www.xtrkcad.org/Wikka/WishList}{\e{XTrackCAD} Wiki: WishList}.
+
+\rule
diff --git a/app/doc/linconf.but b/app/doc/linconf.but
new file mode 100644
index 0000000..c8de305
--- /dev/null
+++ b/app/doc/linconf.but
@@ -0,0 +1,12 @@
+\cfg{html-leaf-level}{infinite}
+\cfg{html-leaf-contains-contents}{false}
+\cfg{html-suppress-navlinks}{true}
+\cfg{html-suppress-address}{true}
+
+\cfg{html-contents-filename}{contents.html}
+\cfg{html-template-filename}{%k.html}
+\cfg{html-template-fragment}{%k}
+
+\cfg{html-contents-depth}{0}{2}
+
+\cfg{html-head-end}{<link rel="stylesheet" type="text/css" href="xtrkcad_lin.css">}
diff --git a/app/doc/macrom.but b/app/doc/macrom.but
new file mode 100644
index 0000000..85fed13
--- /dev/null
+++ b/app/doc/macrom.but
@@ -0,0 +1,36 @@
+\# Notes:
+\#
+\# The "\u000" command is used to format the output. The command causes a blank line to appear between "bulleted" or "described" items.
+\#
+
+\H{macroM} Macro Menu
+
+\G{png.d/mmacro.png}
+
+The \f{Macro Menu} shows commands that can be used to \f{Record} and \f{Playback} commands.
+
+\dd \f{Record} - Displays the \f{Record} dialog (after prompting for a file name). The current layout state and most subsequent actions will be saved in the recording file.
+
+\lcont{
+
+\u000
+
+\b Messages can be inserted into the recording file by pressing the \f{Message} button on the \f{Record} dialog then entering a message in the text display.
+
+\u000
+
+\b Press the \f{End} button to end entry of the message and resume recording.
+
+\u000
+
+\b Press the \f{Stop} button to stop recording.
+
+}
+
+\u000
+
+\dd \f{Playback} - Displays the \f{Playback} dialog (after prompting for a file name). This is used to playback previously recorded sessions. \f{Note:} the layout state will be saved during playbacks and restored after.
+
+The \f{Record} command is useful if it becomes necessary to report a bug in \e{XTrackCAD}.
+
+\rule \ No newline at end of file
diff --git a/app/doc/makefile.win b/app/doc/makefile.win
new file mode 100644
index 0000000..c4856a6
--- /dev/null
+++ b/app/doc/makefile.win
@@ -0,0 +1,47 @@
+# $Header: /home/dmarkle/xtrkcad-fork-cvs/xtrkcad/app/doc/makefile.win,v 1.8 2007-12-02 14:48:18 m_fischer Exp $
+#
+# Makefile for halibut based documentation
+#
+
+HALIBUT = ..\tools\halibut\halibut
+
+all: help
+
+BUTFILES = \
+ chmconf.but \
+ intro.but \
+ addm.but \
+ changem.but \
+ drawm.but \
+ editm.but \
+ filem.but \
+ helpm.but \
+ hotbar.but \
+ macrom.but \
+ managem.but \
+ optionm.but \
+ statusbar.but\
+ view_winm.but \
+ navigation.but \
+ appendix.but \
+ messages.but \
+ upgrade.but \
+ warranty.but
+
+help: xtrkcad.chm
+
+xtrkcad.chm: xtrkcad.hhp
+ -2 hhc $*
+
+xtrkcad.hhp: $(BUTFILES)
+ $(HALIBUT) $**
+
+messages.but: ..\help\messages.but
+ copy ..\help\messages.but messages.but
+
+clean:
+ del *.html
+ del xtrkcad.hhp
+ del xtrkcad.hhc
+ del xtrkcad.chm
+
diff --git a/app/doc/managem.but b/app/doc/managem.but
new file mode 100644
index 0000000..65a20c0
--- /dev/null
+++ b/app/doc/managem.but
@@ -0,0 +1,657 @@
+\# Notes:
+\#
+\# The "\u000" command is used to format the output. These commands causes a blank line to appear between "bulleted" or "described" items.
+\#
+\# The "\u00B0" command gives proper format to the degree sign.
+
+\H{manageM}\i{Manage Menu}
+
+\G{png.d/mmanage.png}
+
+The \f{Manage Menu} shows commands affecting the \f{Main Canvas} (\K{mainW}).
+
+\dd \f{Car Inventory} - displays the dialog (\K{cmdCarinv}) to update your list of cars and locomotives.
+
+\u000
+
+\dd \f{Custom Management} - displays the \f{Custom Management} (\K{cmdCustmgm}) dialog to manipulate custom turnout, structure and rolling stock designs.
+
+\u000
+
+\dd \f{Group} - creates a \f{Structure} or \f{Turnout} definition from the selected (\K{cmdSelect}) objects. See the \f{Group} command (\K{cmdGroup}) for details.
+
+\u000
+
+\dd \f{Layers} - displays the Layer (\K{cmdLayer}) dialog.
+
+\u000
+
+\dd \f{Parts List} - Invokes the Parts List (\K{cmdEnum}) command. This command produces a list of all selected turnouts and sectional tracks and the total length of flex-track.
+
+\u000
+
+\dd \f{Price List} - Displays the \f{Price List} (\K{cmdPricelist}) dialog to specify prices for tracks and structures.
+
+\u000
+
+\dd \f{Train} - Run trains on the designed layout
+
+\u000
+
+\dd \f{Turnout Designer} - displays a menu list of Turnout Designer (\K{cmdTurnoutNew}) dialogs.
+
+\u000
+
+\dd \f{Ungroup} - breaks apart any selected (\K{cmdSelect}) turnouts and structures into their basic lines (\K{cmdDraw}) and track segments.
+
+\u000
+
+\dd \f{Update Turnout and Structures} - replaces (\K{cmdRefreshSpecial}) any selected (\K{cmdSelect}) \f{Turnouts} and \f{Structures} with the definitions from updated \f{parameter files} (\K{cmdPrmfile}).
+
+\rule
+
+\S{cmdCarinv} Car Inventory
+
+This dialog is used to manage your list of cars and locomotives.
+
+\G{png.d/carinv.png}
+
+The main part of this dialog contains a detailed list of each car and locomotive in your inventory. The list can be sorted on different columns by selecting column names in the \f{Sort Drop Down Lists} along the top of the dialog. The width of the columns can be adjusted by \e{Left+Drag} on the lines between the column titles.
+
+Cars are placed on the layout by using the \f{Train Simulation} (\K{cmdTrain}) command.
+
+The \f{Find} button will center the \f{Main Window} (\K{mainW}) on the selected car. This button is only enabled for cars which are on the Layout (indicated by \f{Layout} in the Location column). If the car on a track that is hidden and \f{Trains on Hidden Track} (\K{cmdDisplay}) is set to \f{Hide}, then the car (and any attached cars) will be made visible.
+
+The \f{Edit} button invokes the \f{Car} dialog (\K{cmdCarpart}) to modify the selected car. This button is disabled if more than one (or no) car is selected or if the selected car is on the Layout. This dialog is also used to \f{Add} a new Car. Refer to \K{faqsPrototype} if an error occurs when attempting to add inventory to this list.
+
+The \f{Delete} button removes the selected cars from your inventory. This button is disabled if any of the selected cars are on the layout.
+
+The \f{Import} and \f{Export} buttons read and write a \e{Comma-Separated-Value (CSV)} file. This file format can be read and written by many applications. It can be used to transfer car inventory data between different applications. This file contains the following columns (the first four are required when Importing):
+
+\dd \e{Scale} - example: HO, HOn3, N, O etc
+
+\u000
+
+\dd \e{Manufacturer} and \e{Partno}
+
+\u000
+
+\dd \e{Prototype} - example: GP40
+
+\u000
+
+\dd \e{Index} - an unique numeric identifier (optional)
+
+\u000
+
+\dd \e{Roadname}, \e{Repmark} and \e{Number} - example: Burlington Northern, BN, 1234
+
+\u000
+
+\dd \e{Type} - enter one of the following:
+
+\lcont{
+
+\b 10101(Diesel),
+
+\b 10201(Steam),
+
+\b 10301(Electric),
+
+\b 30100(Freight),
+
+\b 50100(Passenger),
+
+\b 70100(M-O-W) or;
+
+\b 90100(Other)
+
+}
+
+\u000
+
+\dd \e{Options} - 2 (Locomotives), 4 (Body Mounted Couplers)
+
+\u000
+
+\dd \e{CarLength}, \e{CarWidth}, \e{CoupledLength} and \e{TruckCenter} - car dimensions in inches
+
+\u000
+
+\dd \e{Color} - encoded as (Red * 65535 + Green * 256 + Blue)
+
+\u000
+
+\dd \e{PurchPrice}, \e{CurrPrice}, \e{PurchDate} and \e{ServiceDate} - numeric values
+
+\u000
+
+\dd \e{Condition} - enter one of the following:
+
+\lcont{
+
+\b 100(Mint),
+
+\b 80(Excellent),
+
+\b 60(Good),
+
+\b 40(Fair),
+
+\b 20(Poor) or;
+
+\b 0(N/A)
+
+}
+
+\u000
+
+\dd \e{Notes} - free form text
+
+The \f{List} button creates a text file listing your inventory.
+
+\rule
+
+\S2{cmdCarpart} Car Item Dialog
+
+This dialog is invoked from the \f{Car Inventory} (\K{cmdCarinv}) and the \f{Custom Management} (\K{cmdCustmgm}) dialogs.
+
+The dialog can be displayed in three different ways and is used to create or edit \f{Car Items}, \f{Car Part} definitions or \f{Prototype} definitions.
+
+The \f{Add} button creates a new definition. The dialog remains open so you can enter multiple definitions. You can \f{Close} the dialog when you are finished. If you are editing an existing definition then the \f{Add} button will be replaced by the \f{Update} button which updates the selected definition and closes the dialog.
+
+The \f{New} button on the \f{Car Item} dialog invokes the \f{Car Part} or \f{Car Prototype} dialog which you can use to create new part or prototype definitions for your cars. The \f{New} button on the \f{Car Part} dialog invokes the \f{Car Prototype} dialog.
+
+\f{Car Item Dialog}
+
+\G{png.d/caritem.png}
+
+The dialog contains:
+
+\dd \f{Car Description} which contains lists of \f{Manufacturer}, \f{Prototype} and \f{Part Number} which are used to select the Car Part. The \f{Manufacturer} list contains the entries \f{Custom} and \f{Unknown} for special Car Parts. For these entries you can enter the \f{Part Number} and \f{Description} fields.
+
+\lcont{
+
+\u000
+
+\b If the manufacturer of your car is not listed in the \f{Manufacturer} list you can type in the new name. Also, if the \f{Part} is not listed you can enter a new part number. The new part will be added to the list of Custom Car Parts (\K{cmdCustmgm}).
+
+}
+
+\u000
+
+\dd The \f{Mode} Radio button group lets you choose between the \f{Information} controls described here or the \f{Customize} controls described in the next section. You would use the \f{Customize} option to change Road name, Number or Color if you have repainted the car or to adjust the dimensions.
+
+\u000
+
+\dd Details about the individual car item such as \f{Index}, \f{Price} and \f{Condition}, \f{Dates} and \f{Notes}. The \f{Index} value must be unique for all car items.
+
+\lcont{
+
+\u000
+
+\b To enter multiple \f{New Cars} you can set the \f{Quantity} field to a value greater than one. The \f{Numbers} Radio button group specifies whether the new car's numbers will be sequential (such as 1234, 1235, ...) or repeated.
+
+}
+
+\u000
+
+\dd \f{Message Line} which will contain instructions if there any fields that need to be completed.
+
+\rule
+
+\S2{carpart} \f{Car Part Dialog}
+
+This dialog is similar the the \f{Car Item} dialog except that the \f{Car Item Information} section is not displayed. The \f{Manufacturer} Drop Down List is editable so you can enter a new manufacturer, and you must enter a \f{Part Number}. If you are adding a new car part, the \f{Part Number} field will be incremented (if it is a numeric value) so you can enter a number of car parts.
+
+\G{png.d/carpart.png}
+
+The middle section contains:
+
+\dd The \f{Road}, \f{Reporting Mark}, \f{Number} and \f{Color}. You can choose a \f{Road name} from the list of known road names or enter a new value. If known, the \e{reporting mark} (road name abbreviation) is filled in.
+
+\u000
+
+\dd \f{Car Dimensions} which contain the major dimensions of the car and how the coupler is mounted on the car. The \f{Coupler Length} is measured from the edge of the car body to the pulling face of the coupler. It is equivalent to half the separation between two coupled cars.
+
+\lcont{
+
+\u000
+
+\b When entering values, the \c{p} key will convert a prototype measurement to a scale measurement.
+
+\u000
+
+\b The length dimension has the following relationship, so changing one value will affect the others:
+
+\lcont{
+
+\u000
+
+\dd \f{Coupled Length = Car Length + 2 * Coupler Length}
+
+}
+
+}
+
+\u000
+
+\dd A diagram showing the position of the trucks and couplers.
+
+\rule
+
+\S2{carprototype} \f{Car Prototype Dialog}
+
+This dialog is used to create or edit prototype definitions.
+
+\G{png.d/carproto.png}
+
+The first section contains the name of the \f{Prototype} and its \f{Type}.
+
+If this dialog was invoked from the \f{Car Item} or \f{Car Part} dialog then the prototype diagram will be copied from the selected part. Otherwise, the prototype is drawn as the default image which is a simple blue rectangle or, if it is a locomotive, with one end angled.
+
+The \f{Import} button creates a prototype definition from the selected (\K{cmdSelect}) lines and shapes. To use this, first create a set of shapes (\f{Filled Rectangles, Polygons, Circles, Lines} etc) using the Draw (\K{cmdDraw}) commands on the main canvas. \f{Select} the shapes and use the \f{Import} button.
+
+The \f{Reset} button will reset the figure to the default image.
+
+If this dialog is invoked by the \f{New} button on the \f{Car} or \f{Car Part} dialog then the initial image will be copied from the prototype displayed on those dialogs. You can use this to make variations of existing prototypes.
+
+The \f{Color} control on the \f{Car Part} dialog will replace any color of the \f{Imported} shapes which is not Black or a shade of gray with the selected hue.
+
+The \f{Flip} button flips the diagram horizontally. For locomotives, the forward direction is to the right.
+
+Unlike the other dialogs, dimensions in this dialog are in prototype units. When entering values, the \c{s} key will convert a scale measurement to a prototype measurement.
+
+\rule
+
+\S{cmdCustmgm} Custom Management
+
+The \f{Custom Management} dialog allows you change the properties of turnouts, sectional track, structures, car parts and prototypes you have designed with the \f{Turnout Designer} (\K{cmdTurnoutNew}), \f{Group} (\K{cmdGroup}) or \f{Car} (\K{cmdCarpart}) commands. You can also move selected objects to a \f{Parameter File} (\K{cmdPrmfile}).
+
+\G{png.d/custmgm.png}
+
+The \f{Edit} button invokes the appropriate designer or editor dialog for the selected item. This button is disabled if more than one (or no) object is selected.
+
+\dd The \f{Turnout Designer} (\K{cmdTurnoutNew}) is used to modify the selected turnout design. If you wish to modify cosmetic details on a turnout or sectional track use the \f{Group} (\K{cmdGroup}) command to add them to an existing definition.
+
+\u000
+
+\dd \f{Structures} and old \f{Turnout Designs} use the \f{Rename Dialog} to change the Manufacturer, Description or Part Number values. For these objects the \f{Edit} button's label changes to \f{Rename}. \f{Structures} are not edited using this dialog but by using the \f{Ungroup} (\K{cmdUngroup}) and \f{Group} (\K{cmdGroup}) commands.
+
+\u000
+
+\dd The \f{Car} (\K{cmdCarpart}) dialog is used to modify \f{Car Prototype} and \f{Car Parts}.
+
+The \f{Delete} button removes the selected entries from the \c{xtrkcad.cus} (\K{directories}) file when you exit the dialog.
+
+The \f{Move To} button moves the selected entries to a \f{Parameter File} (\K{cmdPrmfile}). If the \f{Parameter File} does not currently exist than you will be prompted to supply a contents description line for the file. In case the parameter file already exists, the selected entries are appended to this file.
+
+The \f{New} buttons invokes the Car (\K{cmdCarpart}) dialog to create a new \f{Car Prototype} or \f{Car Part}.
+
+\rule
+
+\S{cmdGroup} Group Dialog
+
+The \f{Group} command combines the selected (\K{cmdSelect}) Lines and Shapes (\K{cmdDraw}) to create structures (\K{cmdHotBar}). You can give the structure (\K{cmdHotBar}) a title consisting of Manufacturer, Description and Part Number on the \f{Group} dialog.
+
+\G{png.d/cgroup.png}
+
+The title will be pre-populated with the title of the last \f{Structure} you \f{ungrouped} (\K{manageM}).
+
+You can include \f{Turnouts}, \f{Sectional}, \f{Straight} or \f{Curved} tracks in the selected objects which allows you to add cosmetic details to a \f{Turnout} definitions, or create a new \f{Turnout} definition. This can also be used to if there are fixed track locations on a structure, like on an engine shed.
+
+To modify a \f{Structure} or \f{Turnout} definition, first place the object on the layout, select and then \f{Ungroup} the object. Now the parts of the object can be edited using the \f{Modify} (\K{cmdModify}), \f{Draw} (\K{cmdDraw}) or other commands. Once completed, select the object parts and use the \f{Group} command to update the definition (or create a new one by changing the title).
+
+The \f{Group} dialog shows the Manufacturer, Description and part number (Title) of the new definition. Initial values are based on selected turnouts and structures or on the last \f{Ungroup}ed object (\K{cmdUngroup}). The dialog also contains a toggle button (\f{Replace with new group}?), which is used if you want to replace the selected objects with the new definition. All fields listed in this dialog window must contain data.
+
+The definition data will be added to the \c{xtrkcad.cus} (\K{directories}) file for later use. Please consider contributing this information for others to use.
+
+If you modify a definition from a \e{XTrackCAD} Library parameter file, the new definition will replace the existing definition on the \f{Hot Bar} (\K{cmdHotBar}), otherwise it will be added to the end of the \f{Hot Bar}. You can use the \f{Custom Management} (\K{cmdCustmgm}) dialog to change the title or delete custom definitions.
+
+\f{Note:} There is a limit of 128 track segments in a group.
+
+\rule
+
+\S{cmdLayer} Layers Dialog
+
+Each object is contained in a layer. Objects which are created independently of other objects (such as straight tracks (\K{cmdStraight}) or text (\K{cmdText})) are created in the current layer. Objects which are associated with other objects (such as tracks created by the \f{Modify} (\K{cmdModify}) or \f{Join} (\K{cmdJoin}) commands) are created in the same layer as the associated object(s).
+
+The \f{Layers} dialog allows you to change various attributes of each of the 99 possible \f{layers}.
+
+Attributes associated with a layout are stored within the associated layout file and apply only to the layout that's open at the time of a change. It is possible to apply attributes from one layout file to another using the \f{Load} and \f{Save} buttons.
+
+\G{png.d/dlayers.png}
+
+The drop down list at the top of the dialog selects the \f{Layer} you are interested in. Non-empty layers are preceded by a \c{+}.
+
+The \f{Name} edit box contains the name of the \f{Layer}. This name is listed in the \f{Current Layer} drop down list on the \f{Tool-bar} (\K{mainW}). Also the \f{Name} is displayed as the balloon help for the corresponding \f{Layer Button}.
+
+The \f{Color} button specifies the color of tracks if \f{Color Layers} (\K{cmdDisplay}) radio button on the \f{Display} dialog is checked.
+
+The \f{Visible} check-box controls whether the \f{Layer} is drawn on the Main (\K{mainW}) window.
+
+The \f{Frozen} check-box indicates that tracks in that \f{Layer} can not be modified or deleted.
+
+The \f{On Map} check-box controls whether the \f{Layer} is drawn on the Map (\K{cmdMap}) window.
+
+You cannot uncheck \f{Visible} or check \f{Frozen} for the \f{Current Layer}.
+
+The \f{Count} field displays the number of objects in the selected Layer.
+
+The \f{Save} button stores layer attributes in the \c{xtrkcad.ini} file so they may be loaded into an existing or new file. Once saved and unless reset to \e{XTrackCAD} \f{Default}, modified layer information is applied to each new file.
+
+The \f{Load} button reads layer attributes from the \c{xtrkcad.ini} file then applies it to each layer of the current layout file.
+
+The \f{Defaults} button restores layer attributes to default \e{XTrackCAD} settings.
+
+The bottom of the dialog contains the \f{Number of Layer Buttons} integer edit box. This controls the number of \f{Layer Buttons} displayed on the \f{Tool-bar} (\K{mainW}). These buttons make it easy to switch between layers. The maximum number of \f{Layer Buttons} that can be displayed is 20. Therefore you should use layers one to twenty for objects which you will be showing and hiding frequently.
+
+\G{png.d/blayer.png}
+
+The \f{Layer Buttons} on the Tool-bar (\K{mainW}) control which layer is the \f{current Layer} and which \f{Layers} are displayed on the Main Canvas. These buttons are a short cut for the \f{Visible} check-box on the \f{Layers} dialog for the corresponding layer.
+
+The current layer is selected by picking a value from the drop down layer list. If the Layer you've selected was not visible, it will be shown.
+
+You can hide (or show if not visible) the different layers by pushing one of the \f{Layer Buttons} on the Tool-bar (if you have configured the tool-bar (\K{toolbarM}) to show the Layer buttons). If a layer is not visible then the corresponding layer button will be raised. The active or current layer cannot be hidden.
+
+The color of each layer button shows the color that will be used to draw tracks in that layer, if you select \f{Color Layers} (\K{cmdDisplay}) on the \f{Display} dialog.
+
+Any selected objects are unselected when the Layer is set to not visible. If a layer is not visible, you cannot select objects in the Layer. It is as if the objects do not exist until you show the layer again.
+
+The \f{Move To Current Layer} command on Edit menu (\K{editM}) will move all selected (\K{cmdSelect}) tracks to the current Layer.
+
+Objects are drawn on the map window, if the Layer they are on has \f{On Map} checked.
+
+\rule
+
+\S{cmdEnum} Parts List
+
+The \f{Parts List} command produces a list of all selected (\K{cmdSelect}) turnouts, sectional track and bench-work. It also computes total length of selected flex-track.
+
+\G{png.d/partslist.png}
+
+The \f{Save As...} button opens a \e{File Save} dialog window that's used to name and save the parts list to a file.
+
+The \f{Print} button opens the \e{Print} dialog which is used to facilitate printing of the parts list.
+
+The \f{Close} button terminates the \f{Parts List} command.
+
+The \f{Parts List} dialog will list pricing for selected objects if the \e{Prices} check box is checked. Prices are set using the Price List (\K{cmdPricelist}) dialog.
+
+Hint: use the \f{Parts List} command to measure the length of selected flex-track.
+
+\rule
+
+\S{cmdPricelist} Price List
+
+The \f{Price List} dialog allows entry of prices for Turnouts, Sectional Track and Structures. Only those objects from loaded Parameter Files (\K{cmdPrmfile}) or \e{Custom Designs} for the current Scale (\K{cmdLayout}) are listed.
+
+\G{png.d/pricelist.png}
+
+The price of a selected object can be changed in the \e{Cost} edit box that's located above the "Price" column.
+
+The price of a length of \e{Flex Track} for the current Scale (\K{cmdLayout}) is listed at the bottom of the dialog. You can specify the \e{Length} in \e{Inches} or \e{Centimeters}. To specify the price for other \e{Scales} change Scale (\K{cmdLayout}) on the Layout (\K{cmdLayout}) window.
+
+The Parts List (\K{cmdEnum}) dialog lists prices for selected objects if the \e{Prices} check box on the dialog window is selected.
+
+\rule
+
+\S{cmdTrain} Train
+
+\G{png.d/btrain.png} The \f{Train} command lets you place and run Trains on the layout.
+
+\I{Run Trains}During this command, the Tool Bar and Hot Bar are changed. Most of the Tool Bar buttons are replaced by the \e{Go/Stop} and \e{Exit} buttons. The \e{Go/Stop} button toggles between Pausing all Trains and allowing Trains to Run. The \e{Exit} button terminates the Train Simulation and returns to Layout Design mode.
+
+\G{png.d/trainbar.png}
+
+\u000
+
+\dt \e{Selecting New Cars}
+
+\dd The Hot Bar contains the Cars and Locomotives which are have not been placed on the Layout. Cars are created and managed using the Car Inventory (\K{cmdCarinv}) dialog.
+
+\u000
+
+\dd Each item on the Hot Bar can represent a group of Cars. Cars can be grouped by Prototype, Manufacturer and/or Part Number. They can also be listed as individual Car Items. This grouping is controlled by \e{Car Labels} Drop Down List on the Display (\K{cmdDisplay}) dialog.
+
+\u000
+
+\dd To place a Car, select it from the Hot Bar. If the Hot Bar is displaying Cars in groups (and not as individual Car Items) then a Drop Down List is displayed on the Status Bar (\K{mainW}) containing the individual Car Items in that group.
+
+\u000
+
+\dd If you are not displaying the Hot Bar, then the \e{New Car} button (\G{png.d/bnewcar.png}) will be shown on the Tool Bar. Pressing this button will display the Drop Down List on the Status Bar (\K{mainW}) containing all of your Car Items that have not yet been placed on the layout.
+
+\u000
+
+\dd \G{png.d/trainsimulator.png}
+
+\u000
+
+\dd \G{png.d/statusbartrain.png}
+
+\u000
+
+\dd \G{png.d/carlist.png}
+
+\u000
+
+\dt \e{Placing Cars}
+
+\dd Once you have selected a new Car, or have selected an existing Car on the Layout, you can position it by using the mouse to drag it around the Layout. If the Car is coupled to other Cars then the whole set of Cars is moved. If you place the Car on a Track, that Car (and the other coupled Cars) will be aligned along the track.
+
+\u000
+
+\dd \f{Note:} If you move the tracks but not the cars (or vice-versa) using the Move (\K{cmdMove}) or Rotate (\K{cmdRotate}) commands the cars will not remain attached to the tracks. If the cars are moved close to a track, then they will be aligned when the \e{Train Simulation} command is next invoked.
+
+\u000
+
+\dt \e{Coupling Cars}
+
+\dd If a Car is moved along a track to another Car then the Cars will be coupled together.
+
+\u000
+
+\dt \e{Uncoupling Cars}
+
+\dd To uncouple Cars, Right-Click between the Cars then select \e{Uncouple} from the pop-up menu.
+
+\u000
+
+\dd \G{png.d/mtrainmanagement.png}
+
+\u000
+
+\dt \e{Change Train or Car Orientation}
+
+\dd The orientation of a Train or Car can be reversed by Right-Click over the appropriate object then selecting either \e{Flip Train} or \e{Flip Car} from the pop-up menu.
+
+\u000
+
+\dt \e{Remove Train or Car From Layout}
+
+\dd To remove a Train or Car from the layout, Right-Click over the appropriate object then select either \e{Remove Train} or \e{Remove Car} from the pop-up menu.
+
+\u000
+
+\dt \e{Trains}
+
+\dd A Train consists of one or more Locomotives coupled to other Cars. One Locomotive will be the \e{MU Master} for the Train. The \e{MU Master} can be changed by Right-Clicking on a Locomotive and selecting \e{MU Master} from the pop-up menu. The \e{MU Master} is drawn with a solid Yellow head light indicating the direction is moving. If a Train is split by uncoupling between Locomotives, then two Trains will be created, each with their own \e{MU Master}.
+
+\u000
+
+\dt \e{Train Control}
+
+\dd \G{png.d/trainctrl.png}
+
+\u000
+
+\dd The \e{Train Control} dialog is used to set the speed and direction of Trains. The dialog contains a list of Trains (listed by their \e{MU Master} Locomotive). Before each Train on the list is either a Red circle (indicating the Train is stopped) or a Green circle (indicating the Train is moving).
+
+\u000
+
+\dd Any number of Trains can be running, although it might be difficult to keep track of more than a few.
+
+\u000
+
+\dd For the selected Train, the Train Control dialog lists
+
+\lcont{
+
+\dd Train status: indicating that the Train is moving, is paused or the reason if the Train is stopped.
+
+\u000
+
+\dd The position of the Train
+
+\u000
+
+\dd A slider which controls the speed of the Train in Scale Miles-Per-Hour or Kilometers-Per-Hour.
+
+\u000
+
+\dd The Odometer which measures the total distance travelled by the train, which can be reset by pressing the \e{0} button.
+
+\u000
+
+\dd The \e{Find} button which positions the Main Window (\K{mainW}) to show the Train. If the Trains on a track that's hidden and Hide Trains on Hidden Track (\K{cmdDisplay}) is \e{Enabled} then the Train will be made visible until the next time it moves.
+
+\u000
+
+\dd The \e{Follow} toggle button which causes the Main Window (\K{mainW}) to follow the Train as it moves. The \e{Follow} toggle can only be set on one Train at a time, and it is cleared if you press the \e{Find} button or otherwise manually move the main canvas.
+
+\u000
+
+\dd The \e{Auto Reverse} toggle button which causes the Train to change direction when it hits the end of a track.
+
+\u000
+
+\dd The Direction radio button group which controls the direction (\e{Forward} or \e{Reverse}) of the Train.
+
+\u000
+
+\dd The \e{Stop} button which sets the Trains speed to 0.
+
+}
+
+\u000
+
+\dt \e{Train Operation}
+
+\dd Once a Train is moving, it will continue to move until it is Stopped manually, hits the end of track or an open Turnout. If the Train 'runs into' other Cars, those Cars will be coupled to the Train. If Trains speed is faster than the Max Coupling Speed (\K{cmdPref}) then the Train will crash and must be manually moved back onto the track.
+
+\u000
+
+\dd If two Trains are coupled, one of the two \e{MU Masters} will be chosen as the \e{MU Master} for the combined Train.
+
+\u000
+
+\dd The motion of all Trains can be Paused by clicking the \e{Go/Stop} button on the Main Window Tool Bar. Pressing the \e{Escape} key has the same effect as clicking on the \e{Stop} button. This allows you set Turnout positions or make other changes. When Train command starts, the \e{Go/Stop} button is in the \e{Stop} position and must be clicked before Trains move.
+
+\u000
+
+\dt \e{Turnouts and Turntables}
+
+\dd Turnout positions are indicated by Red lines connecting the endpoints on the route through the Turnout. Trains will follow this route through the Turnout. If you \e{Shift+Left-Click} on the Turnout, the next position will used and Red line changed to indicate the new position.
+
+\u000
+
+\dd Turntables can be turned by using \e{Shift+Left-Click} on the endpoint you want the Turntable to move to. To turn the Turntable 180\u00B0, \e{Shift+Left-Click} on the endpoint again.
+
+\rule
+
+\S{cmdTurnoutNew} Turnout Designer
+
+The \f{Turnout Designer} allows you to define new turnouts and sectional track pieces.
+
+\G{png.d/mmanageturnoutdesign.png}
+
+The Turnout Designer sub-menu is pictured above. As demonstrated by the sub-menu a number of different dialogs are available for creation of custom turnout and sectional track components. New turnouts and sectional track is added to Custom Management (\K{cmdCustmgm}) and Turnout Manager (\K{cmdTurnout}) using the \f{Turnout Designer}.
+
+The follow dialog is for a regular turnout.
+
+\G{png.d/turndes.png}
+
+Each dialog shows a diagram of the turnout and has fields to enter dimensions. The dimensions should be as accurate as possible. The various types of dimensions are:
+
+\dd \f{Length} - measured from the base of the turnout to the centerline at the end of the turnout. Length is measured parallel to the centerline of the straight leg of the turnout. For track that ends on a curve (such as the curved leg of a regular turnout) measure the distance from the base to each rail and average the values.
+
+\u000
+
+\dd \f{Offset} - measured from the centerline of the straight leg of the turnout to the centerline of the track at the end of the turnout.
+
+\u000
+
+\dd \f{Angle} - angle at the end of turnout to the centerline of the straight leg of the turnout. This angle may not be the same as the \e{Frog} angle of the turnout if the rails curve past the \e{Frog}. The \f{Frog Number|Degrees} Radio button group controls whether the value is expressed in Frog Number or Degrees.
+
+\u000
+
+\dd \f{Manufacturer} - name of the Manufacturer
+
+\u000
+
+\dd \f{Description} - description of the turnout including size and rail code number, e.g., 'Left Hand #4'. This information is shown when a place the mouse pointer over the respective symbol on th \f{Tool-bar}. Therefor it should be made sure that the data entered here are helpful in finding the correct turnout.
+
+\u000
+
+\dd \f{#} - part number, e.g., '999-123'.
+
+\u000
+
+\dd \f{Roadbed Width} - if greater than the track gauge then lines are drawn along the edges of the turnout to represent the attached roadbed available on some types of sectional track and turnouts.
+
+\u000
+
+\dd \f{Line Width} - the width of the roadbed lines, measured in pixels when the layout drawing scale (\K{viewM}) is 1:1.
+
+\u000
+
+\dd \f{Color} - color of the roadbed lines.
+
+\u000
+
+The rail height (\e{Code}) can be added to the \f{Manufacturer}, e.g., Peco-55, or the \f{Description}, e.g., Medium Right, Code 55.
+
+The scale is the current scale from the \f{Scale Drop Down List} on the \f{Layout} dialog (\K{cmdLayout}).
+
+\f{Manufacturer}, \f{Description} and \f{Part Number (#)} comprise the title of the turnout. These values are used in the \f{Turnout Selection dialog} (\K{cmdTurnout}) and the \f{Parts List} (\K{cmdEnum}). For regular and curved turnouts there are separate \f{Descriptions} and \f{Part Numbers} for the right and left hand turnouts.
+
+The \f{Print} button prints a full size diagram of the turnout. You can use this to check your dimensions and make any required changes. You should expect to make several printouts as you refine your dimensions.
+
+The \f{OK} button completes the design. The new turnout is added to the list in the \f{Turnout Selection} dialog. The turnout data is saved in the \c{xtrkcad.cus} (\K{directories}) file for the next time you use \e{XTrackCAD}. Please consider contributing this information for others to use via the on-line addresses. You can change the Parameters or Title of existing designs by using the \f{Custom Management} (\K{cmdCustmgm}) dialog.
+
+The \f{Cancel} button removes the \f{Turnout Designer} dialog.
+
+\e{Creating \i{Turnout Designs}}
+
+\b It is best to start by marking the endpoints of the turnout on a piece of paper. Extend the curved leg of the turnout (try attaching a straight sectional track) and measure the angle. Frog numbers are easiest to calculate.
+
+\u000
+
+\b Enter your data and press \f{Print}, if you have an accurate printer. Check the dimensions of the turnout against the printout and make adjustments as necessary. Concentrate on the lengths and offsets first, then adjust the angles.
+
+\u000
+
+\b The resulting turnout is an approximation. In particular the curves will not be correct, but this is not important for placing turnouts.
+
+\u000
+
+\b The Group (\K{cmdGroup}) command can be used to add cosmetic details to \f{Turnout} definitions.
+
+\rule
+
+\S{cmdRefreshSpecial} Update Turnouts and Structures
+
+This command updates (or refreshes) selected turnouts, sectional tracks and structures on your layout with the current definitions from the loaded parameter files (\K{cmdPrmfile}). Each selected object that is found in a parameter file is updated with the current definition.
+
+If an object can not be found or if the new definition does not fit (same number of endpoints and all the endpoints have the same position and angle) then a dialog is displayed which contains suitable definitions that you can choose from. You can \f{Skip} the current object or \f{Cancel} to skip all the remaining objects.
+
+If an object has been updated then it is unselected, otherwise it will remain selected at the end of this command.
+
+\rule
+
+\S{cmdUngroup} Ungroup
+
+\f{Ungroup} allows existing definitions to be modified and the resulting objects recombined with the \f{Group} (\K{cmdGroup}) command to update the definition. Turnouts are composed of individual straight and curved segments. Segments that form the points (\K{generalTerms}) of the turnout remain combined as an \e{Ungrouped Turnout}, and the other segments are replaced by straight and curved tracks.
+
+\rule \ No newline at end of file
diff --git a/app/doc/navigation.but b/app/doc/navigation.but
new file mode 100644
index 0000000..c2c492b
--- /dev/null
+++ b/app/doc/navigation.but
@@ -0,0 +1,1165 @@
+\# Notes:
+\#
+\# The "\u000" command is used to format the output. The command causes a blank line to appear between "bulleted" or "described" items.
+\#
+\# The "\u00B0" command gives proper format to the degree sign.
+
+\C{navigation} Navigation
+
+The Main Window includes a title bar along the top that describes the contents of the window, followed by a tool bar that contains user interface buttons. Most of the window's remaining area is used to display the layout.
+
+Most windows can be opened, closed, resized, minimized, and moved around the screen. The close, minimize, and zoom buttons are located on the right side of the title bar. Minimizing a window will close the contents of the window, but store a reference to it in the Task bar. Closing a window will make it disappear completely (so you may be asked to save your changes first). To move a window, click on the title bar and drag the window where you want it. To resize a window, either click the Zoom button
+
+
+\H{mainW} \i{Main Window Overview}
+
+\dt Main Window Overview
+
+\u000
+
+\dd \G{png.d/main1.png}
+
+\u000
+
+\dd The size of the main window can be changed by dragging on the resizing borders.
+
+\u000
+
+\dd Minimizing the \e{Main Window} will minimize all \e{XTrackCAD} windows.
+
+\u000
+
+\dt The \f{Main Window} contains (from the top down):
+
+\u000
+
+\dt \e{Title bar}
+
+\dd \G{png.d/title.png}
+
+\u000
+
+\dd Current filename, \e{XTrackCAD} version number, and window manager buttons. An asterisk (*) after the filename indicates that there are unsaved changes.
+
+\u000
+
+\dt \e{Menu Bar}
+
+\dd \G{png.d/menu.png}
+
+\u000
+
+\dd Contains from left to right;
+
+\lcont{
+
+\b File (\K{fileM})
+
+\b Edit (\K{editM})
+
+\b View (\K{viewM})
+
+\b Add (\K{addM})
+
+\b Change (\K{changeM})
+
+\b Draw (\K{cmdDraw})
+
+\b Manage (\K{manageM})
+
+\b Options (\K{optionM})
+
+\b Macro (\K{macroM})
+
+\b Window (\K{windowM}) and;
+
+\b Help (\K{helpM}) menu buttons.
+
+}
+
+\u000
+
+\dt \e{Tool Bar}
+
+\dd \G{png.d/toolbar.png}
+
+\u000
+
+\dd Manipulate track and other objects
+
+\u000
+
+\dt \e{Hot Bar} (\K{cmdHotBar})
+
+\dd \G{png.d/hotbar.png}
+
+\u000
+
+\dd Scrolling list of Turnouts and Structures
+
+\u000
+
+\dt \e{Main Canvas}
+
+\dd \G{png.d/maincanvas.png}
+
+\u000
+
+\dd Main drawing area with rulers along each side.
+
+\u000
+
+\dd The \f{Main Canvas} is where all tracks and objects are drawn.
+
+\u000
+
+\dd The scale of the \f{Main Canvas} can be changed using the;
+
+\lcont{
+
+\b \f{Zoom} selections (\K{cmdZoom}) under the \f{View} (\K{viewM}) menu
+
+\b \f{Zoom} buttons on the \f{Tool-bar}
+
+\b Mouse Wheel
+
+\b PAGE UP and PAGE DOWN keys.
+
+}
+
+\u000
+
+\dd Tracks will be drawn with two lines and ties if you zoom in. When the drawing scale is 1:1 a dashed centerline is also drawn for each track.
+
+\u000
+
+\dd The ARROW keys move the \f{Canvas} left, right, up or down.
+
+\u000
+
+\dt \e{Map Window}
+
+\dd \G{png.d/map.png}
+
+\u000
+
+\dd You can change which portion of the layout is displayed by using the \f{Map Window} (\K{cmdMap}).
+
+\u000
+
+\dt \e{Status Bar}
+
+\dd \G{png.d/statusbar.png}
+
+\u000
+
+\dd Contains from left to right;
+
+\lcont{
+
+\b Drawing scale of the Main Canvas,
+
+\b X position of the cursor,
+
+\b Y position of the cursor,
+
+\b Status and informational messages
+
+}
+
+\rule
+
+
+\H{generaloperation} General Operation \I{Dialogs}
+
+Most Windows open with three standard dialog buttons:
+
+\dd \f{Cancel} - Cancels dialog. Layout reverts back to its previous state.
+
+\u000
+
+\dd \f{Help} - Invokes on-line help for current command or dialog.
+
+\u000
+
+\dd \f{OK} - Completes the dialog action. Layout is updated with current changes.
+
+\rule
+
+
+\S{enterValue} \i{Entering Values}
+
+Lengths and Distances can be entered in a variety of formats;
+
+\dd \e{12ft 4 1/2in, 12' 4.5", 148.500, 1.234m, 123.4cm or 1234mm} are all valid values.
+
+\u000
+
+\dd Pressing the Equal Sign (\c{=}) key after an entry will reformat the value entered to your preferred length format (\K{cmdPref}).
+
+\u000
+
+\dd Pressing the "\c{p}" key after an entry will convert a prototype measurement to a scale measurement by dividing the value entered by the ratio for the current scale.
+
+\u000
+
+\dd Pressing the "\c{s}" key after an entry will convert a scale measurement to a prototype measurement.
+
+\rule
+
+\S{cmdMap} \i{Map Window}
+
+\G{png.d/map.png}
+
+The \e{Map Window} area shows the complete layout at a reduced scale. A highlighted (reverse video) area shows what portion is visible in the Main Window (\K{mainW}). The highlighted area can be Left+Dragged (\K{windowTerms}) around the layout to change the origin of the Main Canvas. The highlighted area changes size as Zoom In (\K{viewM}) and Zoom Out (\K{viewM}) are selected.
+
+You can also Right+Drag (\K{windowTerms}) on the Map window to set the origin and scale of the Main Canvas.
+
+The size of the \e{Map Window} changes when you change the Room Size (see \K{cmdLayout}). You can also change the Map Scale (\K{cmdDisplay}) on the Display (\K{cmdDisplay}) dialog to change the size of the \e{Map Window}.
+
+If you close the \e{Map Window}, you can reopen it by the \e{Window} menu.
+
+\rule
+
+
+\H{kbshortcuts} \i{Keyboard Shortcuts} \I{Shortcut Keys}
+
+The term Shortcut key refers to specific key combinations which are used to accomplish an action which otherwise would be accomplished by moving a MOUSE and /or selecting from a Menu. Shortcut keys are often key combinations consisting of the letter key pressed along with the Alt or Ctrl key.
+
+Instead of using the menus or the buttons on the \f{Tool-bar} (\K{mainW}), most \e{XTrackCAD} commands may be invoked through use of Shortcut keys.
+
+\dd The \c{RETURN} key has the same effect as pressing the \f{OK} button on the current dialog.
+
+\u000
+
+\dd The \c{ESCAPE} key cancels the current command. All selected tracks are unselected. The \f{Properties} (\K{cmdDescribe}) or \f{Select} (\K{cmdSelect}) command becomes the current command.
+
+\u000
+
+\dd The \c{PAGE UP} and \c{PAGE DOWN} keys will zoom out or zoom in.
+
+\u000
+
+\dd The \c{ARROWS} key will pan the canvas right, left, up and down.
+
+\u000
+
+\dd The \c{DELETE} key invokes the \f{Delete} (\K{cmdDelete}) command.
+
+Several Shortcut key commands are used in conjunction with the mouse. These commands are listed in \K{cmdAcclKeys}.
+
+\rule
+
+
+\S{cmdAdd} Add Commands
+
+\dt Add Commands
+
+\u000
+
+\dd Create
+
+\lcont{
+
+\b Circle track from
+
+\lcont{
+
+\b center - \e{Ctrl+0}
+
+\b fixed radius circle - \e{Ctrl+8}
+
+\b tangent - \e{Ctrl+9}
+
+}
+
+\b Curve track from
+
+\lcont{
+
+\b center - \e{Ctrl+6}
+
+\b chord - \e{Ctrl+7}
+
+\b endpoint - \e{Ctrl+4}
+
+\b tangent - \e{Ctrl+5}
+
+}
+
+\b Hand laid turnout - \e{Ctrl+Shift+I}
+
+\b Straight track - \e{Ctrl+G}
+
+\b Turntable - \e{Ctrl+Shift+N}
+
+}
+
+\u000
+
+\dd Helix dialog and construction tool - \e{Ctrl+Shift+H}
+
+\u000
+
+\dd Structure dialog - \e{Ctrl+Shift+C}
+
+\u000
+
+\dd Turnout dialog - \e{Ctrl+T}
+
+\u000
+
+\rule
+
+
+\S{cmdChange} Change Commands
+
+\dt Change Commands
+
+\u000
+
+\dd Connect two sectional tracks - \e{Ctrl+Shift+J}
+
+\u000
+
+\dd Elevation dialog - \e{Ctrl+Shift+E}
+
+\u000
+
+\dd Join two tracks - \e{Ctrl+J}
+
+\u000
+
+\dd Properties dialog - \e{Ctrl+?}
+
+\u000
+
+\dd Modify or extend track - \e{Ctrl+M}
+
+\u000
+
+\dd Move
+
+\lcont{
+
+\b description - \e{Ctrl+Shift+Z}
+
+\b selected object - \e{Ctrl+Shift+M}
+
+\u000
+
+}
+
+\dd Profile dialog - \e{Ctrl+Shift+F}
+
+\u000
+
+\dd Rotate selected object - \e{Ctrl+Shift+R}
+
+\u000
+
+\dd Select tool - \e{Ctrl+E}
+
+\u000
+
+\dd Split flex track - \e{Ctrl+Shift+S}
+
+\u000
+
+\rule
+
+
+\S{kbshortcutdraw} Draw Commands
+
+\S2{addText} Add Text
+
+Add Text
+
+\dd Add Text to drawing area - \e{Ctrl+Shift+X}
+
+\rule
+
+
+\S2{cmdDrawCircle} Draw Circles
+
+Draw Circles
+
+\dd Draw circle outline from
+
+\lcont{
+
+\b center to tangent point (Edge) - \e{Ctrl+Shift+0}
+
+\b tangent point (Edge) to center - \e{Ctrl+Shift+9}
+
+}
+
+\u000
+
+\dd Draw circle filled from
+
+\lcont{
+
+\b center to tangent point (Edge) - \e{Ctrl+Alt+0}
+
+\b tangent point (Edge) to center - \e{Ctrl+Alt+9}
+
+}
+
+\rule
+
+
+\S2{cmdDrawCurve} Draw Curved Lines
+
+Draw Curved Lines
+
+\dd Draw curved lines from;
+
+\lcont{
+
+\b center to endpoint - \e{Ctrl+Shift+6}
+
+\b chord - \e{Ctrl+Shift+7}
+
+\b endpoint in direction of curve - \e{Ctrl+Shift+4}
+
+\b endpoint to center - \e{Ctrl+Shift+5}
+
+}
+
+\rule
+
+
+\S2{cmdDrawShape} Draw Shapes
+
+Draw Shapes
+
+\dd Draw shape
+
+\lcont{
+
+\b Box outline - \e{Ctrl+Shift+[}
+
+\b Filled Box - \e{Ctrl+Alt+[}
+
+\b Filled Polygon - \e{Ctrl+Alt+2}
+
+\b Poly-line - \e{Ctrl+Shift+2}
+
+}
+
+\rule
+
+
+\S2{cmdDrawStraight} Draw Straight Objects
+
+Draw Straight Objects
+
+\dd Draw straight object
+
+\lcont{
+
+\b \i{Bench-work} - \e{Ctrl+B}
+
+\b Dimension Line - \e{Ctrl+Shift+D}
+
+\b Straight Line - \e{Ctrl+Shift+1}
+
+\b Table Edge - \e{Ctrl+Shift+)}
+
+}
+
+\rule
+
+
+\S2{NoteDialog} Note Dialog
+
+Note Dialog
+
+\dd Note dialog (\K{cmdNote}) - \e{Ctrl+Alt+N}
+
+\rule
+
+
+\S{cmdEdit} Edit Commands
+
+\dt Edit Commands
+
+\u000
+
+\dd Copy select objects to the clipboard - \e{Ctrl+C} or \e{Ctrl+Insert}
+
+\u000
+
+\dd Cut select objects - \e{Ctrl+X} or \e{Shift+Delete}
+
+\u000
+
+\dd Draw selected tracks with
+
+\lcont{
+
+\b thin lines - \e{Ctrl+1}
+
+\b medium lines - \e{Ctrl+2}
+
+\b thick lines - \e{Ctrl+3}
+
+\u000
+
+}
+
+\dd Delete selected object(s) - \e{Delete} or \e{Ctrl+D}
+
+\u000
+
+\dd Deselect all objects - \e{Alt+Shift+A} or \e{Esc}
+
+\u000
+
+\dd Hide selected tracks in a Tunnel - \e{Ctrl+Shift+T}
+
+\u000
+
+\dd Move Selected tracks
+
+\lcont{
+
+\b above others - \e{Ctrl+Shift+B}
+
+\b below others - \e{Ctrl+Shift+W}
+
+\u000
+
+}
+
+\dd Paste from clipboard to layout - \e{Ctrl+V} or \e{Shift+Insert}
+
+\u000
+
+\dd Redo last undone command - \e{Ctrl+R}
+
+\u000
+
+\dd Select all objects - \e{Ctrl+Shift+A}
+
+\u000
+
+\dd Undo last command - \e{Ctrl+Z} or \e{Shift+Backspace}
+
+\rule
+
+
+\S{cmdFile} File Commands
+
+\dt File Commands
+
+\u000
+
+\dd Create a new layout - \e{Ctrl+N}
+
+\u000
+
+\dd Edit layout description Note (\K{cmdNote}) - \e{Ctrl+Alt+T}
+
+\u000
+
+\dd Export
+
+\lcont{
+
+\b Selected objects to a \e{.xti} file - \e{Ctrl+Alt+X}
+
+\b To Bitmap (\K{cmdOutputbitmap}) - \e{Ctrl+Shift+Q}
+
+\u000
+
+}
+
+\dd Import from a \e{.xti} file - \e{Ctrl+Alt+I}
+
+\u000
+
+\dd Manipulate Parameter Files (\K{cmdPrmfile}) - \e{Ctrl+Alt+S}
+
+\u000
+
+\dd Open layout file - \e{Ctrl+O}
+
+\u000
+
+\dd Print Command (\K{cmdPrint}) - \e{Ctrl+P}
+
+\u000
+
+\dd Save As another file - \e{Ctrl+A}
+
+\u000
+
+\dd Save the current layout - \e{Ctrl+S}
+
+\rule
+
+
+\S{kbshortcutHotBar} \i{Hot Bar}
+
+\dt Hot Bar
+
+\u000
+
+\dd These actions take effect if the Hot Bar has keyboard focus.
+
+\lcont{
+
+\b Move Hot Bar multiple entries
+
+\lcont{
+
+\b left - \e{Shift+Left Arrow}
+
+\b right - \e{Shift+Right Arrow}
+
+\u000
+
+}
+
+\b Move Hot Bar one entry
+
+\lcont{
+
+\b left - \e{Left Arrow}
+
+\b right - \e{Right Arrow}
+
+\u000
+
+}
+
+\b Pop-up menu of Hot Bar contents - \e{Right-Click}
+
+\u000
+
+\b Set relative position of Hot Bar - \e{1, 2 ... 9, 0}
+
+}
+
+
+\S{cmdMacro} Macro Commands
+
+\dt Macro Commands
+
+\u000
+
+\dd Play Back a macro file (\K{macroM}) - \e{Ctrl+Alt+B}
+
+\u000
+
+\dd Record a macro file (\K{macroM}) - \e{Ctrl+Alt+R}
+
+\u000
+
+\rule
+
+
+\S{kbshortcutMainCanvas} \i{Main Drawing Canvas}
+
+\dt Main Drawing Canvas
+
+\u000
+
+\dd These actions take effect if the Main Drawing Canvas has keyboard focus.
+
+\lcont{
+
+\u000
+
+\dd Move Canvas:
+
+\lcont{
+
+\b Down - \e{Down Arrow}
+
+\b Left - \e{Left Arrow}
+
+\b Right - \e{Right Arrow}
+
+\b Up - \e{Up Arrow}
+
+}
+
+}
+
+\rule
+
+\S{cmdManage} Manage Commands
+
+\dt Manage Commands
+
+\u000
+
+\dd Car Inventory dialog - \e{Ctrl+Alt+V}
+
+\u000
+
+\dd Custom Management dialog (\K{cmdCustmgm}) - \e{Ctrl+Alt+U}
+
+\u000
+
+\dd Generate a Parts List (\K{cmdEnum}) - \e{Ctrl+Alt+L}
+
+\u000
+
+\dd Group objects (\K{cmdGroup}) - \e{Ctrl+Shift+G}
+
+\u000
+
+\dd Layers dialog (\K{cmdLayer}) - \e{Ctrl+Alt+Y}
+
+\u000
+
+\dd Ungroup objects (\K{cmdGroup}) - \e{Ctrl+Shift+U}
+
+\u000
+
+\dd Update Prices (\K{cmdPricelist}) - \e{Ctrl+Alt+Q}
+
+\rule
+
+
+\S{cmdOption} Option Commands
+
+\dt Options Commands
+
+\u000
+
+\dd Colors dialog (\K{cmdRgbcolor}) - \e{Ctrl+Alt+C}
+
+\u000
+
+\dd Command Options dialog (\K{cmdCmdopt}) - \e{Ctrl+Alt+M}
+
+\u000
+
+\dd Display dialog (\K{cmdDisplay}) - \e{Ctrl+Alt+D}
+
+\u000
+
+\dd Easement Options dialog - \e{Ctrl+Alt+E}
+
+\u000
+
+\dd Font dialog (\K{fontSelW}) - \e{Ctrl+Alt+F}
+
+\u000
+
+\dd Layout dialog (\K{cmdLayout}) - \e{Ctrl+Alt+A}
+
+\u000
+
+\dd Preferences dialog (\K{cmdPref}) - \e{Ctrl+Alt+P}
+
+\u000
+
+\dd Sticky commands dialog (\K{cmdSticky}) - \e{Ctrl+Alt+K}
+
+\rule
+
+\S{cmdView} View Commands
+
+\dt View Commands
+
+\u000
+
+\dd Redraw
+
+\lcont{
+
+\b all - \e{Ctrl+Shift+L}
+
+\b main window - \e{Ctrl+L}
+
+}
+
+\u00
+
+\dd Snap Grid dialog (\K{cmdGrid}) - \e{Ctrl+Alt+G}
+
+\u00
+
+\dd Zoom
+
+\lcont{
+
+\b in - \e{Ctrl++, Page Down}
+
+\b out - \e{Ctrl+-, Page Up}
+
+}
+
+\rule
+
+
+\H{cmdAcclKeys} \i{Mouse Actions}
+
+\dt \e{XTrackCAD} uses the left and right mouse buttons when manipulating tracks and other objects on the layout. Their meaning depends on the particular command but in general:
+
+\u00
+
+\dd \e{Left-Click} - selects an object or an endpoint.
+
+\u00
+
+\dd \e{Left+Drag} - modifies an object, such as extending it.
+
+\u00
+
+\dd \e{Right-Click} - displays a pop-up menu of commands.
+
+\u00
+
+\dd \e{Shift+Right-Click} - displays a pop-up menu of command options (for some commands).
+
+\u00
+
+\dd \e{Rotate Wheel} - zooms drawing area in and out.
+
+\u000
+
+\u000
+
+\dt When Moving and Rotating ( Placing Turnouts and Structures, Moving the Print and Snap Grids, ... ):
+
+\u00
+
+\dd \e{(Left+Drag)} - moves the objects or grid.
+
+\u00
+
+\dd \e{(Right+Drag)} - rotates the objects or grid about the pivot point, which is
+the point you started the drag operation.
+
+Some commands use the \c{Shift} or \c{Ctrl} key to modify the meaning of button presses.
+
+\rule
+
+
+\S{mouseBcmd} Context Sensitive Menus
+
+For all commands listed below, a \e{Right-Click} will display a context sensitive pop-up command list menu. For some commands (noted below), a \e{Shift+Right-Click} will display a context sensitive pop-up command options menu. The operation of \e{Right-Click} and \e{Shift+Right-Click} can be reversed by an item on the Command Options (\K{cmdCmdopt}) dialog.
+
+The Shortcut key for each command is listed after the command name.
+
+
+\dt Circle Track Command (\K{cmdCircle})
+
+\dd Drag from
+
+\lcont{
+
+\b center to circle tangent point (Edge) - \e{Ctrl+0}
+
+\b circle tangent point (Edge) to center - \e{Ctrl+9}
+
+}
+
+\dd Position fixed radius circle - \e{Ctrl+8}
+
+\u000
+
+
+\dt Connect Command (\K{cmdConnect}) - \e{Ctrl+Shift+J}
+
+\dd Remove adjustments starting from an unconnected endpoint - \e{Shift+Left-Click}
+
+\dd Select endpoints to connect - \e{Left-Click}
+
+\u000
+
+
+\dt Curved Track Commands (\K{cmdCurve})
+
+\dd Drag from 1st endpoint
+
+\lcont{
+
+\b in curve direction - \e{Ctrl+4}
+
+\b to Center - \e{Ctrl+5}
+
+\b to 2nd endpoint (Chord) - \e{Ctrl+7}
+
+}
+
+\dd Drag from Center to 1st endpoint - \e{Ctrl+6}
+
+\u000
+
+
+\dt Properties Command (\K{cmdDescribe}) - \e{Ctrl+?}
+
+\dd Display property sheet for the object - \e{Left-Click}
+
+\u000
+
+
+\dt Elevation Command (\K{cmdElev}) - \e{Ctrl+Shift+E}
+
+\dd Choose endpoint - \e{Left-Click}
+
+\dd Move Elevation Marker - \e{Right+Drag}
+
+\dd Split track and choose endpoint - \e{Shift+Left-Click}
+
+\u000
+
+
+\dt Flip Command (\K{cmdFlip})
+
+\dd Draw Mirror line - \e{Left+Drag}
+
+\u000
+
+
+\dt Hand-laid Turnout Command (\K{cmdHandLaidTurnout}) - \e{Ctrl+Shift+I}
+
+\dd Define
+
+\lcont{
+
+\b frog position and angle - \e{(1st Left+Drag)}
+
+\b points position - \e{(2nd Left+Drag)}
+
+}
+
+\u000
+
+
+\dt Helix Track Command (\K{cmdHelix}) - \e{Ctrl+Shift+H}
+
+\dd Position Helix - \e{(Left+Drag)}
+
+\u000
+
+
+\dt Join Command (\K{cmdJoin}) - \e{Ctrl+J}
+
+\dd Join tracks - \e{(Left+Drag)}
+
+\dd Move selected tracks to join with unselected endpoint - \e{Shift+Left-Click}
+
+\u000
+
+
+\dt Modify Command (\K{cmdModify}) - \e{Ctrl+M}
+
+\dd Change
+
+\lcont{
+
+\b length or make tangent to curve - \e{Left+Drag}
+
+\b radius - \e{Shift+Left+Drag}
+
+}
+
+\dd Extend track - \e{Right+Drag}
+
+\u000
+
+
+\dt Move Command (\K{cmdMove}) - \e{Ctrl+Shift+M}
+
+\dd Command Options: how to draw moving objects (\K{cmdAcclKeys}) - \e{Shift+Right-Click}
+
+\dd Move Selected objects - \e{Left+Drag}
+
+\u000
+
+
+\dt Move Description Command (\K{cmdMoveLabel}) - \e{Ctrl+Shift+Z}
+
+\dd Move Description - \e{Left+Drag}
+
+\dd Toggle Label display for Curved, Helix and Turnout tracks (\K{cmdAcclKeys}). - \e{Shift+Right-Click}
+
+\u000
+
+
+\dt Note Command (\K{cmdNote}) - \e{Ctrl+Alt+N}
+
+\dd Position Note - \e{Left+Drag}
+
+\u000
+
+
+\dt Parallel Command (\K{cmdParallel}) - \e{Ctrl+Shift+P}
+
+\dd Position Parallel track relative to selected track - \e{(Left+Drag)}
+
+\u000
+
+
+\dt Print Command (\K{cmdPrint}) - \e{Ctrl+P}
+
+\dd Command Options: rotate by specified amount (\K{cmdAcclKeys}) - \e{(Shift+Right-Click)}
+
+\dd Move Print grid - \e{Shift+Left+Drag}
+
+\dd Rotate Print grid - \e{Shift+Right+Drag}
+
+\dd Select or unselect pages - \e{Left-Click}
+
+\u000
+
+
+\dt Profile Command (\K{cmdProfile}) - \e{Ctrl+Shift+F}
+
+\dd Add tracks to path from path end to chosen endpoint - \e{(Left-Click)}
+
+\dd Command Options: change Elevation type - \e{(Shift+Right-Click)} (\K{cmdAcclKeys})
+
+\u000
+
+
+\dt Rotate Command (\K{cmdRotate}) - \e{Ctrl+Shift+R}
+
+\dd Command Options: how to draw moving objects and rotate by specified amount (\K{cmdAcclKeys}) - \e{Shift+Right-Click}
+
+\dd Rotate Selected objects - \e{Left+Drag}
+
+\lcont{
+
+\b in increments of 15\u00B0 - \e{Ctrl+Left+Drag}
+
+}
+
+\u000
+
+
+\dt Ruler Command (\K{cmdRuler})
+
+\dd Position Ruler - \e{Left+Drag}
+
+\u000
+
+
+\dt Select Command (\K{cmdSelect}) - \e{Ctrl+E}
+
+\dd Command Options: how to draw moving objects and rotate by specified amount (\K{cmdAcclKeys}) - \e{Shift+Right-Click}
+
+\dd Move
+
+\lcont{
+
+\b selected objects - \e{Shift+Left+Drag}
+
+\b labels - \e{Ctrl+Left+Drag}
+
+}
+
+\dd Unselect all objects within the highlighted area - \e{Right+Drag}
+
+\dd Rotate selected objects - \e{Shift+Right+Drag}
+
+\lcont{
+
+\b in increments of 15\u00B0 - \e{Ctrl+Shift+Right+Drag}
+
+}
+
+\dd Select (or unselect) the object - \e{Left-Click}
+
+\dd Select all objects
+
+\lcont{
+
+\b connected to object - \e{Shift+Left+Click}
+
+\b within the highlighted area - \e{Left+Drag}
+
+}
+
+\u000
+
+
+\dt Snap Grid Command (\K{cmdGrid}) - \e{Ctrl+Alt+G}
+
+\dd Command Options: rotate by specified amount (\K{cmdAcclKeys}) - \e{Shift+Right-Click}
+
+\dd Move Snap Grid - \e{Left+Drag}
+
+\dd Rotate Snap Grid - \e{Right+Drag}
+
+\u000
+
+
+\dt Split Track Command (\K{cmdSplitTrack}) - \e{Ctrl+Shift+S}
+
+\dd As above, plus trim turnouts - \e{Shift+Left-Click}
+
+\dd Change block gaps (\K{cmdAcclKeys}) - \e{Shift+Right-Click}
+
+\dd If at endpoint: disconnect track, otherwise: split track - \e{Left-Click}
+
+\u000
+
+
+\dt \i{Straight Track} Command (\K{cmdStraight}) - \e{Ctrl+G}
+
+\dd Place 1st and 2nd endpoints - \e{Left+Drag}
+
+\u000
+
+
+\dt Structure Command (\K{cmdStructure}) - \e{Ctrl+Shift+C}
+
+\dd Command Options: rotate by specified amount (\K{cmdAcclKeys}) - \e{Shift+Right-Click}
+
+\dd Place Structure - \e{Left+Drag}
+
+\dd Rotate - \e{Right+Drag}
+
+\u000
+
+
+\dt Text Command (\K{cmdText}) - \e{Ctrl+Shift+X}
+
+\dd Command Options: change Font (\K{cmdAcclKeys}) - \e{Shift+Right-Click}
+
+\dd Position text - \e{Left+Drag}
+
+\u000
+
+
+\dt Train Simulation Command (\K{cmdTrain})
+
+\dd Command Options: uncouple car, flip or remove cars or Trains, set MU Master - \e{Right-Click}
+
+\dd Move a Car or Train - \e{Left+Drag}
+
+\dd Switch a \e{Turnout} or rotate a \e{Turntable} - \e{Shift+Left-Click}
+
+\u000
+
+
+\dt Turntable Command (\K{cmdTurntable}) - \e{Ctrl+Shift+N}
+
+\dd Position Turntable - \e{Left+Drag}
+
+\u000
+
+
+\dt Turnout Command (\K{cmdTurnout}) - \e{Ctrl+T}
+
+\dd Choose next Active endpoint when placing Turnouts - \e{Shift+Left-Click}
+
+\dd Command Options: rotate by specified amount (\K{cmdAcclKeys}) - \e{Shift+Right-Click}
+
+\dd Place Turnout - \e{Left+Drag}
+
+\dd Rotate - \e{Right+Drag}
+
+\dd Suppress auto-adjustment positioning when placing Turnouts - \e{Shift+Left+Drag}
+
+\rule \ No newline at end of file
diff --git a/app/doc/optionm.but b/app/doc/optionm.but
new file mode 100644
index 0000000..e6d49e0
--- /dev/null
+++ b/app/doc/optionm.but
@@ -0,0 +1,413 @@
+\# Notes:
+\#
+\# The "\u000" command is used to format the output. The command causes a blank line to appear between "bulleted" or "described" items.
+\#
+\# The "\u00B0" command gives proper format to the degree sign.
+
+\H{optionM}\i{Options Menu}
+
+\G{png.d/moptions.png}
+
+The \f{Options Menu} shows commands to change configuration options.
+
+\dd \f{Colors} - Displays the Colors (\K{cmdRgbcolor}) dialog.
+
+\u000
+
+\dd \f{Command} - Displays the Command Options (\K{cmdCmdopt}) dialog.
+
+\u000
+
+\dd \f{Display} - Displays the Display (\K{cmdDisplay}) dialog.
+
+\u000
+
+\dd \f{Easement} - Displays the easement (\K{cmdEasement}) dialog which controls how easements (spiral transition curves) are used to join tracks.
+
+\u000
+
+\dd \f{Fonts} - Displays the font selection (\K{fontSelW}) dialog which selects the font used by the text (\K{cmdText}) command. This command is only available on UNIX based systems.
+
+\u000
+
+\dd \f{Layout} - Displays the layout (\K{cmdLayout}) dialog.
+
+\u000
+
+\dd \f{Preferences} - Displays the Preferences (\K{cmdPref}) dialog.
+
+\u000
+
+\dd \f{Sticky} - Displays the Sticky Commands (\K{cmdSticky}) dialog.
+
+\rule
+
+
+\S{cmdRgbcolor} Colors Dialog
+
+The \f{Colors} dialog is invoked from the Options (\K{optionM}) menu
+
+\G{png.d/colorw.png}
+
+The \f{Colors} dialog controls the color that various objects are drawn.
+
+\dd \f{Border} - Sets color of Rulers, Room Boundaries and Table Edges.
+
+\u000
+
+\dd \f{Exception Track} - Sets color of \e{Exceptional Tracks} (\K{cmdLayout}). Those which exceed the specified grade or are have a radius smaller than the minimum set.
+
+\u000
+
+\dd \f{Marker} - Sets color of short lines drawn on the Ruler of the Main (\K{mainW}) window to indicate cursor position.
+
+\u000
+
+\dd \f{Normal Tracks} - Sets color of normal track.
+
+\u000
+
+\dd \f{Primary Axis} - Sets color of the large cross displayed when positioning the \f{Snap Grid} (\K{cmdGrid}) or the \f{Print Grid} (\K{cmdPrint}).
+
+\u000
+
+\dd \f{Profile Path} - color of the path when using the \f{Profile} (\K{cmdProfile}) command.
+
+\u000
+
+\dd \f{Secondary Axis} - Sets color of the large cross displayed when positioning the \f{Snap Grid} (\K{cmdGrid}) or the \f{Print Grid} (\K{cmdPrint}).
+
+\u000
+
+\dd \f{Selected Tracks} - Sets color of Selected track.
+
+\u000
+
+\dd \f{Snap Grid} - the Grid displayed by the \f{Snap Grid} (\K{cmdGrid}) dialog.
+
+\u000
+
+\dd \f{Track Ties} - color of ties (if drawn).
+
+\rule
+
+
+\S{cmdCmdopt} Command Option Dialog
+
+The \f{Command Option} dialog is invoked from the Options (\K{optionM}) menu
+
+\G{png.d/cmdopt.png}
+
+The \f{Command Option} dialog contains items which control the behavior of some commands.
+
+\dd \f{Draw Moving Tracks} - how to draw tracks during move and rotate operations. See \K{cmdSelect} and \K{cmdMove} for additional detail.
+
+\u000
+
+\dd \f{Default Command} - selects the \f{Properties} (\K{cmdDescribe}) or \f{Select} (\K{cmdSelect}) as the default command which is invoked when any other command (if not \f{Sticky} (\K{cmdSticky})) is canceled or completed.
+
+\u000
+
+\dd \e{Right-Click} - will either display a pop-up menu of available commands or command-specific options depending on whether the \e{Shift} key is being held down or not. This option allows you to choose which operation occurs.
+
+\rule
+
+
+\S{cmdDisplay} Display Dialog
+
+The \f{Display} dialog is invoked from the Options (\K{optionM}) menu
+
+\G{png.d/displayopt.png}
+
+The \f{Display} dialog contains items which control the display of objects on the Main window.
+
+\dd \f{Auto Pan} - if enabled, dragging near the edge of the Main Canvas (\K{mainW}) will cause the canvas to move to follow the mouse.
+
+\u000
+
+\dd \f{Car Labels} - controls the grouping and display of \f{Cars} on the \f{Hot Bar} (\K{cmdHotBar}) during the \f{Train} (\K{cmdTrain}) command. This can be a combination of \f{Prototype}, \f{Manufacturer}, \f{Part Number} and \f{Item}.
+
+\u000
+
+\dd \f{Color Layers} - when set, tracks and/or non-tracks (lines, table edges and structures) are drawn with color of the layer (\K{cmdLayer}) they belong to.
+
+\u000
+
+\dd \f{Draw EndPts} - when to draw endpoints between connected track: never, only for turnouts or for all tracks.
+
+\u000
+
+\dd \f{Draw Ties} - how to draw ties under the rails when the drawing Scale is smaller than half of the \f{Two Rail Scale}.
+
+\u000
+
+\dd \f{Draw Centers} - enable or disable drawing of center markings (ie. crosshairs) for curved track.
+
+\u000
+
+\dd \f{Draw Tunnel} - how to draw hidden tracks (\K{cmdTunnel}), either not at all, as dashed lines or as normal solid lines (which might be faster).
+
+\u000
+
+\dd \f{Hide Trains On Hidden Track} - controls whether trains (\K{cmdTrain}) on invisible layers (\K{cmdLayer}) or hidden tracks (\K{cmdTunnel}) (if hidden tracks are not drawn) are displayed.
+
+\u000
+
+\dd \f{Hot Bar Labels} - controls the format of titles for objects on the \f{Hot Bar} (\K{cmdHotBar}).
+
+\u000
+
+\dd \f{Label Enable} - individual control over whether to display various types of labels. You may want to turn some of these off if your layout is too cluttered.
+
+\lcont{
+
+\u000
+
+\b \e{Cars} - Reporting mark labels on cars.
+
+\b \e{EndPt Elevations} - Elevation markers attached to endpoints.
+
+\b \e{Lengths} - Length of flex-track attached to ends of turnouts.
+
+\b \e{Track Descriptions} - Title of each turnout and sectional track.
+
+\b \e{Track Elevations} - Computed elevations at the center of each track.
+
+}
+
+\u000
+
+\dd \f{Label Font Size} - controls font size for Labels on layout.
+
+\u000
+
+\dd \f{Layout Labels} - controls the format of titles for turnouts and structures displayed on the Layout.
+
+\u000
+
+\dd \f{Label Scale} - draw labels only when the drawing Scale is smaller or equal to this value.
+
+\u000
+
+\dd \f{List Labels} - controls the format of titles for turnouts and structures displayed in lists (such as the \f{Parts List} (\K{cmdEnum})).
+
+\u000
+
+\dd \f{Live Map} - if checked then the Main Window (\K{mainW}) will be updated as you drag on the \f{Map Window} (\K{cmdMap}). Note that this can be slow.
+
+\u000
+
+\dd \f{Map Scale} - scale of the Map (\K{cmdMap}) window. Increase this value to make the \f{Map} window smaller when working with large layouts. \f{Note:} you cannot make the \f{Map} window larger than the screen.
+
+\u000
+
+\dd \f{Train Update Delay} - number of milliseconds between updates in the \f{Train Simulation} (\K{cmdTrain}) mode. A lower value will generate a smoother display but reduces system responsiveness.
+
+\u000
+
+\dd \f{Two Rail Scale} - draw tracks using two lines when the drawing Scale is smaller than this value.
+
+\rule
+
+
+\S{cmdEasement} \i{Easements}
+
+Easements are special sections of gradually curving track used to connect straight and curved tracks (or two curved tracks). Easements reduce the effects of sudden changes in track curves which can cause jerky motion and derailments.
+
+Easements can be created every time you \f{Join} (\K{cmdJoin}) tracks, \f{Extend} (\K{extendTrack}) a track or create a \f{Tangent} (\K{createTangent}) track.
+
+When using easements, an error message will be generated if tracks have a radius that is too small or are too short for the transition curve.
+
+The \f{Easement} dialog is invoked from the Options (\K{optionM}) menu.
+
+\dd \G{png.d/easew.png}
+
+\u000
+
+\dd \f{Value} - allows fine tuning of the easement parameters (restricted to values >= 0.5).
+
+\u000
+
+\dd \f{R} - minimum radius of the curved track.
+
+\u000
+
+\dd \f{X} - offset between a straight and curved track.
+
+\u000
+
+\dd \f{L} - length of the transition track.
+
+\u000
+
+\dd Radio button group with \f{None}, \f{Sharp}, \f{Normal} and \f{Broad}. Corresponding \f{Value}s for these buttons are 0, 0.5, 1.0 and 2.0. Select \f{None} to turn easements off.
+
+The values \f{R}, \f{X} and \f{L} are read-only.
+
+These values indicate the worst case of joining a straight track with a curve of radius \f{R}. The two tracks are separated by the offset \f{X} while the easement curve extends for \f{L/2} inches or centimeters to each side of the endpoints.
+
+The formula used to draw easements is:
+
+\c x = l * l * l / (6 * R * L)
+\e b b
+\c r = L * R/l
+\e b b
+
+where
+
+\b \f{l} is the distance along the tangent to the easement.
+
+\b \f{R} is the final radius of the easement.
+
+\b \f{L} is the total length of the easement along the tangent.
+
+\b \f{x} is the offset from the tangent at \f{l}.
+
+\b \f{r} is the radius of easement curve at \f{l}.
+
+The Easement Button (\G{png.d/beasement.png}) on the Main Window (\K{mainW}) changes its label to indicate the current easement value.
+
+The following diagrams illustrates the \f{R}, \f{X} and \f{L} values and the resulting easement curve.
+
+\G{png.d/easeex1.png}
+
+\G{png.d/easeex2.png}
+
+If curves with a radius larger than \f{R} or two curves (that bend in the same direction) are being connecting then the easement curve will be shorter and the offset smaller. If the computed offset is small then no easement is generated.
+
+A curved track that bends in one direction and then bends in the opposite direction is an \e{S-curve}. This will generate the worst case easement which is two easement curves placed end to end.
+
+Refer to instruction in \k{EasementsSectional} when using sectional track.
+
+\rule
+
+
+\S2{EasementsSectional} \i{Easements and Sectional Track}
+
+Easements require the possibility of creating track with arbitrary radii. Therefore easements are not possible if sectional track is used. It is best to turn \f{Easements} off when using sectional track.
+
+\rule
+
+
+\S{fontSelW} Font Selection
+
+The font selection dialog allows selection of the font used by the text (\K{cmdText}) command. This command is valid only on UNIX based systems.
+
+\G{png.d/fonts.png}
+
+\rule
+
+
+\S{cmdLayout} Layout Dialog
+
+The \f{Layout Options} dialog, displayed by the Options (\K{optionM}) menu, contains items controlling the current layout.
+
+\dd \G{png.d/layout.png}
+
+\u000
+
+\dd \f{Gauge} - Drop down menu used to select track gauge.
+
+\u000
+
+\dd \f{Height} - Height of layout drawing which, depending on the \f{Unit} setting (English or Metric) established in the \f{Preferences} dialog (\K{cmdPref}), is measured in inches or centimeters.
+
+\u000
+
+\dd \f{Room Width} - Width of layout drawing which, depending on the \f{Unit} setting (English or Metric) established in the \f{Preferences} dialog (\K{cmdPref}), is measured in inches or centimeters.
+
+\u000
+
+\dd \f{Scale} - Drop down menu used to select track scale.
+
+\u000
+
+\dd \f{Title} - Two lines that can be used to enter title and subtitle descriptions for the layout. Information entered in these fields will be shown on any printout of your layout design.
+
+\u000
+
+\dd \f{Maximum Track Grade} - Specifies maximum track elevation expressed as a percent (%). Tracks with a larger elevation are considered exceptional and drawn in the exception (\K{cmdRgbcolor}) color.
+
+\u000
+
+\dd \f{Minimum Track Radius} - Specifies minimum track radius (in inches or centimeters). Curved tracks with a smaller radius are considered exceptional and drawn in the exception (\K{cmdRgbcolor}) color.
+
+\rule
+
+
+\S{cmdPref} Preferences Dialog
+
+This dialog controls some parameters which likely will not be changed frequently.
+
+\dd \G{png.d/pref.png}
+
+\u000
+
+\dd \f{Angles} - controls the angle system. \f{Polar}: 0\u00B0 is up and angles are measured clockwise, or \f{Cartesian}: 0\u00B0 is to the right and angles are measured counter-clockwise.
+
+\u000
+
+\dd \f{Balloon Help} - disables the display of \f{Balloon Help} (\K{windowTerms}) which usually is shown when the cursor is placed over a control.
+
+\u000
+
+\dd \f{Check Point} - specifies the Check Point frequency; the number of modifications made to the layout since the last save. The layout is automatically saved to the Check Point file (\K{workDir}) when the Check Point frequency is reached. Setting this value to 0 disables use of the Checkpoint file.
+
+\u000
+
+\dd \f{Connection Angle} - as below for Connection Distance for the angle between endpoints.
+
+\u000
+
+\dd \f{Connection Distance} - the maximum distance between endpoints that can be connected. This affects the \f{Join} (\K{cmdJoin}) command and auto-connection during \f{Parallel} (\K{cmdParallel}) commands and placing \f{Turnouts} (\K{cmdHotBar}). The default value for this field is 0.100 inches or 0.254 CM. Changing this value is not recommended.
+
+\u000
+
+\dd \f{Drag Distance} - controls how far you can move the cursor (in pixels) before \e{XTrackCAD} considers the action to be a drag instead of a click.
+
+\u000
+
+\dd \f{Drag Timeout} - controls how long you can hold a mouse button down (in milliseconds) before \e{XTrackCAD} considers the action to be a drag instead of a click.
+
+\u000
+
+\dd \f{Length Format} - controls how lengths are displayed. Combinations of feet and inches (or meters, centimeters and millimeters) with support for decimal or fractional measures. \f{Note:} lengths can be entered in any format and are converted on entry.
+
+\u000
+
+\dd \f{Max Coupling Speed} - trains (\K{cmdTrain}) moving faster than this speed will crash when running into other trains or hitting the end of a track or an open turnout. Crashed trains must be manually moved back onto the track.
+
+\u000
+
+\dd \f{Min Grid Spacing} - minimum distance between \f{Grid} (\K{cmdGrid}) lines (in pixels). If the grid lines are closer then drawing them is suppressed.
+
+\u000
+
+\dd \f{Min Track Length} - specifies the minimum length of a track. Shorter tracks will not be created.
+
+\u000
+
+\dd \f{On Program Startup} - if set to \q{Load Last Layout}, \e{XTrackCAD} will automatically re-open the layout file that was open when \e{XTrackCAD} last closed. Selecting \q{Start New Layout} opens a blank layout canvas.
+
+\u000
+
+\dd \f{Turntable Angle} - minimum angle between adjacent tracks connected to a \f{Turntable} (\K{cmdTurntable}).
+
+\u000
+
+\dd \f{Units} - choose between English (inches) or Metric (centimeters) measurements.
+
+\rule
+
+
+\S{cmdSticky} Sticky Dialog
+
+By default, when commands complete, the defined \f{Default Command} (\K{cmdCmdopt}) becomes active. If a command is \f{sticky}, the defined \f{Default Command} is ignored and the current command remains active after completion.
+
+The \f{Sticky} dialog controls which commands remain active after completion.
+
+\G{png.d/sticky.png}
+
+Selecting a command makes it \f{sticky}. Un-selecting a command causes the defined \f{Default Command} to become active after command completion.
+
+\rule
diff --git a/app/doc/png.d/ahelix.png b/app/doc/png.d/ahelix.png
new file mode 100644
index 0000000..786f4e1
--- /dev/null
+++ b/app/doc/png.d/ahelix.png
Binary files differ
diff --git a/app/doc/png.d/bcircl1.png b/app/doc/png.d/bcircl1.png
new file mode 100644
index 0000000..aa53512
--- /dev/null
+++ b/app/doc/png.d/bcircl1.png
Binary files differ
diff --git a/app/doc/png.d/bcircl2.png b/app/doc/png.d/bcircl2.png
new file mode 100644
index 0000000..1df9bfc
--- /dev/null
+++ b/app/doc/png.d/bcircl2.png
Binary files differ
diff --git a/app/doc/png.d/bcircl3.png b/app/doc/png.d/bcircl3.png
new file mode 100644
index 0000000..4e7a34c
--- /dev/null
+++ b/app/doc/png.d/bcircl3.png
Binary files differ
diff --git a/app/doc/png.d/bcircle.png b/app/doc/png.d/bcircle.png
new file mode 100644
index 0000000..3fecbe3
--- /dev/null
+++ b/app/doc/png.d/bcircle.png
Binary files differ
diff --git a/app/doc/png.d/bconnect.png b/app/doc/png.d/bconnect.png
new file mode 100644
index 0000000..840fa82
--- /dev/null
+++ b/app/doc/png.d/bconnect.png
Binary files differ
diff --git a/app/doc/png.d/bcurve.png b/app/doc/png.d/bcurve.png
new file mode 100644
index 0000000..8cb3ae7
--- /dev/null
+++ b/app/doc/png.d/bcurve.png
Binary files differ
diff --git a/app/doc/png.d/bcurve1.png b/app/doc/png.d/bcurve1.png
new file mode 100644
index 0000000..f6e594c
--- /dev/null
+++ b/app/doc/png.d/bcurve1.png
Binary files differ
diff --git a/app/doc/png.d/bcurve2.png b/app/doc/png.d/bcurve2.png
new file mode 100644
index 0000000..6ad7001
--- /dev/null
+++ b/app/doc/png.d/bcurve2.png
Binary files differ
diff --git a/app/doc/png.d/bcurve3.png b/app/doc/png.d/bcurve3.png
new file mode 100644
index 0000000..1e84751
--- /dev/null
+++ b/app/doc/png.d/bcurve3.png
Binary files differ
diff --git a/app/doc/png.d/bcurve4.png b/app/doc/png.d/bcurve4.png
new file mode 100644
index 0000000..87fb172
--- /dev/null
+++ b/app/doc/png.d/bcurve4.png
Binary files differ
diff --git a/app/doc/png.d/bdelete.png b/app/doc/png.d/bdelete.png
new file mode 100644
index 0000000..75038e7
--- /dev/null
+++ b/app/doc/png.d/bdelete.png
Binary files differ
diff --git a/app/doc/png.d/bdescrib.png b/app/doc/png.d/bdescrib.png
new file mode 100644
index 0000000..f501f13
--- /dev/null
+++ b/app/doc/png.d/bdescrib.png
Binary files differ
diff --git a/app/doc/png.d/bdraw.png b/app/doc/png.d/bdraw.png
new file mode 100644
index 0000000..540cce9
--- /dev/null
+++ b/app/doc/png.d/bdraw.png
Binary files differ
diff --git a/app/doc/png.d/beasement.png b/app/doc/png.d/beasement.png
new file mode 100644
index 0000000..1e4bd1a
--- /dev/null
+++ b/app/doc/png.d/beasement.png
Binary files differ
diff --git a/app/doc/png.d/belev.png b/app/doc/png.d/belev.png
new file mode 100644
index 0000000..6ecb86a
--- /dev/null
+++ b/app/doc/png.d/belev.png
Binary files differ
diff --git a/app/doc/png.d/bflip.png b/app/doc/png.d/bflip.png
new file mode 100644
index 0000000..cdf548a
--- /dev/null
+++ b/app/doc/png.d/bflip.png
Binary files differ
diff --git a/app/doc/png.d/bgsnap.png b/app/doc/png.d/bgsnap.png
new file mode 100644
index 0000000..1cf93fa
--- /dev/null
+++ b/app/doc/png.d/bgsnap.png
Binary files differ
diff --git a/app/doc/png.d/bgundo.png b/app/doc/png.d/bgundo.png
new file mode 100644
index 0000000..25dcac1
--- /dev/null
+++ b/app/doc/png.d/bgundo.png
Binary files differ
diff --git a/app/doc/png.d/bgzoom.png b/app/doc/png.d/bgzoom.png
new file mode 100644
index 0000000..9de3726
--- /dev/null
+++ b/app/doc/png.d/bgzoom.png
Binary files differ
diff --git a/app/doc/png.d/bhelix.png b/app/doc/png.d/bhelix.png
new file mode 100644
index 0000000..fab3d1a
--- /dev/null
+++ b/app/doc/png.d/bhelix.png
Binary files differ
diff --git a/app/doc/png.d/bhndldto.png b/app/doc/png.d/bhndldto.png
new file mode 100644
index 0000000..7b362c2
--- /dev/null
+++ b/app/doc/png.d/bhndldto.png
Binary files differ
diff --git a/app/doc/png.d/bitmap.png b/app/doc/png.d/bitmap.png
new file mode 100644
index 0000000..33471c8
--- /dev/null
+++ b/app/doc/png.d/bitmap.png
Binary files differ
diff --git a/app/doc/png.d/bjoin.png b/app/doc/png.d/bjoin.png
new file mode 100644
index 0000000..57e0d36
--- /dev/null
+++ b/app/doc/png.d/bjoin.png
Binary files differ
diff --git a/app/doc/png.d/blayer.png b/app/doc/png.d/blayer.png
new file mode 100644
index 0000000..1712726
--- /dev/null
+++ b/app/doc/png.d/blayer.png
Binary files differ
diff --git a/app/doc/png.d/blockBoth.png b/app/doc/png.d/blockBoth.png
new file mode 100644
index 0000000..a68161f
--- /dev/null
+++ b/app/doc/png.d/blockBoth.png
Binary files differ
diff --git a/app/doc/png.d/blockBottom.png b/app/doc/png.d/blockBottom.png
new file mode 100644
index 0000000..8c47b09
--- /dev/null
+++ b/app/doc/png.d/blockBottom.png
Binary files differ
diff --git a/app/doc/png.d/blockNone.png b/app/doc/png.d/blockNone.png
new file mode 100644
index 0000000..cd28340
--- /dev/null
+++ b/app/doc/png.d/blockNone.png
Binary files differ
diff --git a/app/doc/png.d/blockTop.png b/app/doc/png.d/blockTop.png
new file mode 100644
index 0000000..765d8a2
--- /dev/null
+++ b/app/doc/png.d/blockTop.png
Binary files differ
diff --git a/app/doc/png.d/bmcircle.png b/app/doc/png.d/bmcircle.png
new file mode 100644
index 0000000..fc26dbf
--- /dev/null
+++ b/app/doc/png.d/bmcircle.png
Binary files differ
diff --git a/app/doc/png.d/bmcurved.png b/app/doc/png.d/bmcurved.png
new file mode 100644
index 0000000..0feef79
--- /dev/null
+++ b/app/doc/png.d/bmcurved.png
Binary files differ
diff --git a/app/doc/png.d/bmenu.png b/app/doc/png.d/bmenu.png
new file mode 100644
index 0000000..75cc557
--- /dev/null
+++ b/app/doc/png.d/bmenu.png
Binary files differ
diff --git a/app/doc/png.d/bmodify.png b/app/doc/png.d/bmodify.png
new file mode 100644
index 0000000..c33196a
--- /dev/null
+++ b/app/doc/png.d/bmodify.png
Binary files differ
diff --git a/app/doc/png.d/bmove.png b/app/doc/png.d/bmove.png
new file mode 100644
index 0000000..311d9aa
--- /dev/null
+++ b/app/doc/png.d/bmove.png
Binary files differ
diff --git a/app/doc/png.d/bmovedes.png b/app/doc/png.d/bmovedes.png
new file mode 100644
index 0000000..fcff047
--- /dev/null
+++ b/app/doc/png.d/bmovedes.png
Binary files differ
diff --git a/app/doc/png.d/bnew.png b/app/doc/png.d/bnew.png
new file mode 100644
index 0000000..7ffeb65
--- /dev/null
+++ b/app/doc/png.d/bnew.png
Binary files differ
diff --git a/app/doc/png.d/bnewcar.png b/app/doc/png.d/bnewcar.png
new file mode 100644
index 0000000..a83f9da
--- /dev/null
+++ b/app/doc/png.d/bnewcar.png
Binary files differ
diff --git a/app/doc/png.d/bnote.png b/app/doc/png.d/bnote.png
new file mode 100644
index 0000000..d48173b
--- /dev/null
+++ b/app/doc/png.d/bnote.png
Binary files differ
diff --git a/app/doc/png.d/bopen.png b/app/doc/png.d/bopen.png
new file mode 100644
index 0000000..247fe38
--- /dev/null
+++ b/app/doc/png.d/bopen.png
Binary files differ
diff --git a/app/doc/png.d/bparalle.png b/app/doc/png.d/bparalle.png
new file mode 100644
index 0000000..5634f3f
--- /dev/null
+++ b/app/doc/png.d/bparalle.png
Binary files differ
diff --git a/app/doc/png.d/brotate.png b/app/doc/png.d/brotate.png
new file mode 100644
index 0000000..b2bdd6e
--- /dev/null
+++ b/app/doc/png.d/brotate.png
Binary files differ
diff --git a/app/doc/png.d/bruler.png b/app/doc/png.d/bruler.png
new file mode 100644
index 0000000..85184dd
--- /dev/null
+++ b/app/doc/png.d/bruler.png
Binary files differ
diff --git a/app/doc/png.d/bsave.png b/app/doc/png.d/bsave.png
new file mode 100644
index 0000000..deb9d7c
--- /dev/null
+++ b/app/doc/png.d/bsave.png
Binary files differ
diff --git a/app/doc/png.d/bselect.png b/app/doc/png.d/bselect.png
new file mode 100644
index 0000000..b47a3f4
--- /dev/null
+++ b/app/doc/png.d/bselect.png
Binary files differ
diff --git a/app/doc/png.d/bsplit.png b/app/doc/png.d/bsplit.png
new file mode 100644
index 0000000..f9ea955
--- /dev/null
+++ b/app/doc/png.d/bsplit.png
Binary files differ
diff --git a/app/doc/png.d/bstraigh.png b/app/doc/png.d/bstraigh.png
new file mode 100644
index 0000000..5b556c0
--- /dev/null
+++ b/app/doc/png.d/bstraigh.png
Binary files differ
diff --git a/app/doc/png.d/bstruct.png b/app/doc/png.d/bstruct.png
new file mode 100644
index 0000000..7ec6620
--- /dev/null
+++ b/app/doc/png.d/bstruct.png
Binary files differ
diff --git a/app/doc/png.d/btext.png b/app/doc/png.d/btext.png
new file mode 100644
index 0000000..253a810
--- /dev/null
+++ b/app/doc/png.d/btext.png
Binary files differ
diff --git a/app/doc/png.d/btop_bottom.png b/app/doc/png.d/btop_bottom.png
new file mode 100644
index 0000000..6f3300f
--- /dev/null
+++ b/app/doc/png.d/btop_bottom.png
Binary files differ
diff --git a/app/doc/png.d/btrain.png b/app/doc/png.d/btrain.png
new file mode 100644
index 0000000..2e39236
--- /dev/null
+++ b/app/doc/png.d/btrain.png
Binary files differ
diff --git a/app/doc/png.d/btunnel.png b/app/doc/png.d/btunnel.png
new file mode 100644
index 0000000..4f4a81f
--- /dev/null
+++ b/app/doc/png.d/btunnel.png
Binary files differ
diff --git a/app/doc/png.d/bturnout.png b/app/doc/png.d/bturnout.png
new file mode 100644
index 0000000..a63d6d5
--- /dev/null
+++ b/app/doc/png.d/bturnout.png
Binary files differ
diff --git a/app/doc/png.d/bturntbl.png b/app/doc/png.d/bturntbl.png
new file mode 100644
index 0000000..9561901
--- /dev/null
+++ b/app/doc/png.d/bturntbl.png
Binary files differ
diff --git a/app/doc/png.d/carinv.png b/app/doc/png.d/carinv.png
new file mode 100644
index 0000000..5cc1981
--- /dev/null
+++ b/app/doc/png.d/carinv.png
Binary files differ
diff --git a/app/doc/png.d/caritem.png b/app/doc/png.d/caritem.png
new file mode 100644
index 0000000..3ba7dda
--- /dev/null
+++ b/app/doc/png.d/caritem.png
Binary files differ
diff --git a/app/doc/png.d/carlist.png b/app/doc/png.d/carlist.png
new file mode 100644
index 0000000..4f514aa
--- /dev/null
+++ b/app/doc/png.d/carlist.png
Binary files differ
diff --git a/app/doc/png.d/carpart.png b/app/doc/png.d/carpart.png
new file mode 100644
index 0000000..ae54364
--- /dev/null
+++ b/app/doc/png.d/carpart.png
Binary files differ
diff --git a/app/doc/png.d/carproto.png b/app/doc/png.d/carproto.png
new file mode 100644
index 0000000..0b3298f
--- /dev/null
+++ b/app/doc/png.d/carproto.png
Binary files differ
diff --git a/app/doc/png.d/celev.png b/app/doc/png.d/celev.png
new file mode 100644
index 0000000..bf312ef
--- /dev/null
+++ b/app/doc/png.d/celev.png
Binary files differ
diff --git a/app/doc/png.d/cgroup.png b/app/doc/png.d/cgroup.png
new file mode 100644
index 0000000..c42df49
--- /dev/null
+++ b/app/doc/png.d/cgroup.png
Binary files differ
diff --git a/app/doc/png.d/chelix.png b/app/doc/png.d/chelix.png
new file mode 100644
index 0000000..5965fb1
--- /dev/null
+++ b/app/doc/png.d/chelix.png
Binary files differ
diff --git a/app/doc/png.d/cmdopt.png b/app/doc/png.d/cmdopt.png
new file mode 100644
index 0000000..58dfa2b
--- /dev/null
+++ b/app/doc/png.d/cmdopt.png
Binary files differ
diff --git a/app/doc/png.d/colorw.png b/app/doc/png.d/colorw.png
new file mode 100644
index 0000000..ffe5347
--- /dev/null
+++ b/app/doc/png.d/colorw.png
Binary files differ
diff --git a/app/doc/png.d/custmgm.png b/app/doc/png.d/custmgm.png
new file mode 100644
index 0000000..acb04ae
--- /dev/null
+++ b/app/doc/png.d/custmgm.png
Binary files differ
diff --git a/app/doc/png.d/dbench.png b/app/doc/png.d/dbench.png
new file mode 100644
index 0000000..862f162
--- /dev/null
+++ b/app/doc/png.d/dbench.png
Binary files differ
diff --git a/app/doc/png.d/dbox.png b/app/doc/png.d/dbox.png
new file mode 100644
index 0000000..7f11d4c
--- /dev/null
+++ b/app/doc/png.d/dbox.png
Binary files differ
diff --git a/app/doc/png.d/dchgelev.png b/app/doc/png.d/dchgelev.png
new file mode 100644
index 0000000..18381da
--- /dev/null
+++ b/app/doc/png.d/dchgelev.png
Binary files differ
diff --git a/app/doc/png.d/dcircle2.png b/app/doc/png.d/dcircle2.png
new file mode 100644
index 0000000..9080eaf
--- /dev/null
+++ b/app/doc/png.d/dcircle2.png
Binary files differ
diff --git a/app/doc/png.d/dcircle3.png b/app/doc/png.d/dcircle3.png
new file mode 100644
index 0000000..31043e3
--- /dev/null
+++ b/app/doc/png.d/dcircle3.png
Binary files differ
diff --git a/app/doc/png.d/dcprofile.png b/app/doc/png.d/dcprofile.png
new file mode 100644
index 0000000..359e64f
--- /dev/null
+++ b/app/doc/png.d/dcprofile.png
Binary files differ
diff --git a/app/doc/png.d/dcurve1.png b/app/doc/png.d/dcurve1.png
new file mode 100644
index 0000000..c0ca63b
--- /dev/null
+++ b/app/doc/png.d/dcurve1.png
Binary files differ
diff --git a/app/doc/png.d/dcurve2.png b/app/doc/png.d/dcurve2.png
new file mode 100644
index 0000000..7a4f75d
--- /dev/null
+++ b/app/doc/png.d/dcurve2.png
Binary files differ
diff --git a/app/doc/png.d/dcurve3.png b/app/doc/png.d/dcurve3.png
new file mode 100644
index 0000000..a68aebf
--- /dev/null
+++ b/app/doc/png.d/dcurve3.png
Binary files differ
diff --git a/app/doc/png.d/dcurve4.png b/app/doc/png.d/dcurve4.png
new file mode 100644
index 0000000..d337fa1
--- /dev/null
+++ b/app/doc/png.d/dcurve4.png
Binary files differ
diff --git a/app/doc/png.d/ddimlin.png b/app/doc/png.d/ddimlin.png
new file mode 100644
index 0000000..adc471d
--- /dev/null
+++ b/app/doc/png.d/ddimlin.png
Binary files differ
diff --git a/app/doc/png.d/demo.png b/app/doc/png.d/demo.png
new file mode 100644
index 0000000..dbb6643
--- /dev/null
+++ b/app/doc/png.d/demo.png
Binary files differ
diff --git a/app/doc/png.d/dfilbox.png b/app/doc/png.d/dfilbox.png
new file mode 100644
index 0000000..4e75f0b
--- /dev/null
+++ b/app/doc/png.d/dfilbox.png
Binary files differ
diff --git a/app/doc/png.d/dfilpoly.png b/app/doc/png.d/dfilpoly.png
new file mode 100644
index 0000000..36893ad
--- /dev/null
+++ b/app/doc/png.d/dfilpoly.png
Binary files differ
diff --git a/app/doc/png.d/dflcrcl2.png b/app/doc/png.d/dflcrcl2.png
new file mode 100644
index 0000000..cd57434
--- /dev/null
+++ b/app/doc/png.d/dflcrcl2.png
Binary files differ
diff --git a/app/doc/png.d/dflcrcl3.png b/app/doc/png.d/dflcrcl3.png
new file mode 100644
index 0000000..34942cd
--- /dev/null
+++ b/app/doc/png.d/dflcrcl3.png
Binary files differ
diff --git a/app/doc/png.d/displayopt.png b/app/doc/png.d/displayopt.png
new file mode 100644
index 0000000..59cc211
--- /dev/null
+++ b/app/doc/png.d/displayopt.png
Binary files differ
diff --git a/app/doc/png.d/dlayer.png b/app/doc/png.d/dlayer.png
new file mode 100644
index 0000000..ebb5be7
--- /dev/null
+++ b/app/doc/png.d/dlayer.png
Binary files differ
diff --git a/app/doc/png.d/dlayers.png b/app/doc/png.d/dlayers.png
new file mode 100644
index 0000000..a965062
--- /dev/null
+++ b/app/doc/png.d/dlayers.png
Binary files differ
diff --git a/app/doc/png.d/dline.png b/app/doc/png.d/dline.png
new file mode 100644
index 0000000..11ad69f
--- /dev/null
+++ b/app/doc/png.d/dline.png
Binary files differ
diff --git a/app/doc/png.d/dpoly.png b/app/doc/png.d/dpoly.png
new file mode 100644
index 0000000..7998634
--- /dev/null
+++ b/app/doc/png.d/dpoly.png
Binary files differ
diff --git a/app/doc/png.d/dprmfile.png b/app/doc/png.d/dprmfile.png
new file mode 100644
index 0000000..483eb92
--- /dev/null
+++ b/app/doc/png.d/dprmfile.png
Binary files differ
diff --git a/app/doc/png.d/dproperties.png b/app/doc/png.d/dproperties.png
new file mode 100644
index 0000000..e1677cc
--- /dev/null
+++ b/app/doc/png.d/dproperties.png
Binary files differ
diff --git a/app/doc/png.d/dpropertieshighlight.png b/app/doc/png.d/dpropertieshighlight.png
new file mode 100644
index 0000000..2fed5a2
--- /dev/null
+++ b/app/doc/png.d/dpropertieshighlight.png
Binary files differ
diff --git a/app/doc/png.d/drotateangle.png b/app/doc/png.d/drotateangle.png
new file mode 100644
index 0000000..b62e03b
--- /dev/null
+++ b/app/doc/png.d/drotateangle.png
Binary files differ
diff --git a/app/doc/png.d/dtbledge.png b/app/doc/png.d/dtbledge.png
new file mode 100644
index 0000000..52eb1ed
--- /dev/null
+++ b/app/doc/png.d/dtbledge.png
Binary files differ
diff --git a/app/doc/png.d/dtipofday.png b/app/doc/png.d/dtipofday.png
new file mode 100644
index 0000000..d08b42d
--- /dev/null
+++ b/app/doc/png.d/dtipofday.png
Binary files differ
diff --git a/app/doc/png.d/easeex1.png b/app/doc/png.d/easeex1.png
new file mode 100644
index 0000000..f35c86d
--- /dev/null
+++ b/app/doc/png.d/easeex1.png
Binary files differ
diff --git a/app/doc/png.d/easeex2.png b/app/doc/png.d/easeex2.png
new file mode 100644
index 0000000..107200c
--- /dev/null
+++ b/app/doc/png.d/easeex2.png
Binary files differ
diff --git a/app/doc/png.d/easew.png b/app/doc/png.d/easew.png
new file mode 100644
index 0000000..3b2b93d
--- /dev/null
+++ b/app/doc/png.d/easew.png
Binary files differ
diff --git a/app/doc/png.d/exportfile.png b/app/doc/png.d/exportfile.png
new file mode 100644
index 0000000..0608fba
--- /dev/null
+++ b/app/doc/png.d/exportfile.png
Binary files differ
diff --git a/app/doc/png.d/exportfiledxf.png b/app/doc/png.d/exportfiledxf.png
new file mode 100644
index 0000000..7612fba
--- /dev/null
+++ b/app/doc/png.d/exportfiledxf.png
Binary files differ
diff --git a/app/doc/png.d/flip1.png b/app/doc/png.d/flip1.png
new file mode 100644
index 0000000..27abc90
--- /dev/null
+++ b/app/doc/png.d/flip1.png
Binary files differ
diff --git a/app/doc/png.d/flip2.png b/app/doc/png.d/flip2.png
new file mode 100644
index 0000000..997f4d6
--- /dev/null
+++ b/app/doc/png.d/flip2.png
Binary files differ
diff --git a/app/doc/png.d/flip3.png b/app/doc/png.d/flip3.png
new file mode 100644
index 0000000..7d882ba
--- /dev/null
+++ b/app/doc/png.d/flip3.png
Binary files differ
diff --git a/app/doc/png.d/flip4.png b/app/doc/png.d/flip4.png
new file mode 100644
index 0000000..2321f2b
--- /dev/null
+++ b/app/doc/png.d/flip4.png
Binary files differ
diff --git a/app/doc/png.d/fonts.png b/app/doc/png.d/fonts.png
new file mode 100644
index 0000000..1205c58
--- /dev/null
+++ b/app/doc/png.d/fonts.png
Binary files differ
diff --git a/app/doc/png.d/grid.png b/app/doc/png.d/grid.png
new file mode 100644
index 0000000..8771cd2
--- /dev/null
+++ b/app/doc/png.d/grid.png
Binary files differ
diff --git a/app/doc/png.d/hotbar.png b/app/doc/png.d/hotbar.png
new file mode 100644
index 0000000..8bb4781
--- /dev/null
+++ b/app/doc/png.d/hotbar.png
Binary files differ
diff --git a/app/doc/png.d/iconnote.png b/app/doc/png.d/iconnote.png
new file mode 100644
index 0000000..b4d3a7f
--- /dev/null
+++ b/app/doc/png.d/iconnote.png
Binary files differ
diff --git a/app/doc/png.d/import.png b/app/doc/png.d/import.png
new file mode 100644
index 0000000..e68363e
--- /dev/null
+++ b/app/doc/png.d/import.png
Binary files differ
diff --git a/app/doc/png.d/joincrv1.png b/app/doc/png.d/joincrv1.png
new file mode 100644
index 0000000..d1dac5a
--- /dev/null
+++ b/app/doc/png.d/joincrv1.png
Binary files differ
diff --git a/app/doc/png.d/joincrv2.png b/app/doc/png.d/joincrv2.png
new file mode 100644
index 0000000..7c4c50b
--- /dev/null
+++ b/app/doc/png.d/joincrv2.png
Binary files differ
diff --git a/app/doc/png.d/joincrv3.png b/app/doc/png.d/joincrv3.png
new file mode 100644
index 0000000..cb20729
--- /dev/null
+++ b/app/doc/png.d/joincrv3.png
Binary files differ
diff --git a/app/doc/png.d/joincrv4.png b/app/doc/png.d/joincrv4.png
new file mode 100644
index 0000000..29535f3
--- /dev/null
+++ b/app/doc/png.d/joincrv4.png
Binary files differ
diff --git a/app/doc/png.d/joincrv5.png b/app/doc/png.d/joincrv5.png
new file mode 100644
index 0000000..f20e770
--- /dev/null
+++ b/app/doc/png.d/joincrv5.png
Binary files differ
diff --git a/app/doc/png.d/joinmove1.png b/app/doc/png.d/joinmove1.png
new file mode 100644
index 0000000..d7cef7e
--- /dev/null
+++ b/app/doc/png.d/joinmove1.png
Binary files differ
diff --git a/app/doc/png.d/joinmove2.png b/app/doc/png.d/joinmove2.png
new file mode 100644
index 0000000..9607f37
--- /dev/null
+++ b/app/doc/png.d/joinmove2.png
Binary files differ
diff --git a/app/doc/png.d/joinmove3.png b/app/doc/png.d/joinmove3.png
new file mode 100644
index 0000000..ea529f7
--- /dev/null
+++ b/app/doc/png.d/joinmove3.png
Binary files differ
diff --git a/app/doc/png.d/joinmove4.png b/app/doc/png.d/joinmove4.png
new file mode 100644
index 0000000..52ced27
--- /dev/null
+++ b/app/doc/png.d/joinmove4.png
Binary files differ
diff --git a/app/doc/png.d/joinstrt1.png b/app/doc/png.d/joinstrt1.png
new file mode 100644
index 0000000..2c15225
--- /dev/null
+++ b/app/doc/png.d/joinstrt1.png
Binary files differ
diff --git a/app/doc/png.d/joinstrt2.png b/app/doc/png.d/joinstrt2.png
new file mode 100644
index 0000000..63e9d04
--- /dev/null
+++ b/app/doc/png.d/joinstrt2.png
Binary files differ
diff --git a/app/doc/png.d/joinstrt3.png b/app/doc/png.d/joinstrt3.png
new file mode 100644
index 0000000..6d08ec4
--- /dev/null
+++ b/app/doc/png.d/joinstrt3.png
Binary files differ
diff --git a/app/doc/png.d/layout.png b/app/doc/png.d/layout.png
new file mode 100644
index 0000000..25db34f
--- /dev/null
+++ b/app/doc/png.d/layout.png
Binary files differ
diff --git a/app/doc/png.d/madd.png b/app/doc/png.d/madd.png
new file mode 100644
index 0000000..15a1426
--- /dev/null
+++ b/app/doc/png.d/madd.png
Binary files differ
diff --git a/app/doc/png.d/main.png b/app/doc/png.d/main.png
new file mode 100644
index 0000000..fc70899
--- /dev/null
+++ b/app/doc/png.d/main.png
Binary files differ
diff --git a/app/doc/png.d/main1.png b/app/doc/png.d/main1.png
new file mode 100644
index 0000000..47cc8fc
--- /dev/null
+++ b/app/doc/png.d/main1.png
Binary files differ
diff --git a/app/doc/png.d/maincanvas.png b/app/doc/png.d/maincanvas.png
new file mode 100644
index 0000000..4e6b3ae
--- /dev/null
+++ b/app/doc/png.d/maincanvas.png
Binary files differ
diff --git a/app/doc/png.d/map.png b/app/doc/png.d/map.png
new file mode 100644
index 0000000..ddcb2ae
--- /dev/null
+++ b/app/doc/png.d/map.png
Binary files differ
diff --git a/app/doc/png.d/mchange.png b/app/doc/png.d/mchange.png
new file mode 100644
index 0000000..ef5334e
--- /dev/null
+++ b/app/doc/png.d/mchange.png
Binary files differ
diff --git a/app/doc/png.d/mdraw.png b/app/doc/png.d/mdraw.png
new file mode 100644
index 0000000..a23c208
--- /dev/null
+++ b/app/doc/png.d/mdraw.png
Binary files differ
diff --git a/app/doc/png.d/mdrawcircles.png b/app/doc/png.d/mdrawcircles.png
new file mode 100644
index 0000000..30f9f00
--- /dev/null
+++ b/app/doc/png.d/mdrawcircles.png
Binary files differ
diff --git a/app/doc/png.d/mdrawcurve.png b/app/doc/png.d/mdrawcurve.png
new file mode 100644
index 0000000..20501f0
--- /dev/null
+++ b/app/doc/png.d/mdrawcurve.png
Binary files differ
diff --git a/app/doc/png.d/mdrawshapes.png b/app/doc/png.d/mdrawshapes.png
new file mode 100644
index 0000000..d7a8a30
--- /dev/null
+++ b/app/doc/png.d/mdrawshapes.png
Binary files differ
diff --git a/app/doc/png.d/mdrawstraight.png b/app/doc/png.d/mdrawstraight.png
new file mode 100644
index 0000000..c0767a3
--- /dev/null
+++ b/app/doc/png.d/mdrawstraight.png
Binary files differ
diff --git a/app/doc/png.d/medit.png b/app/doc/png.d/medit.png
new file mode 100644
index 0000000..3b69b83
--- /dev/null
+++ b/app/doc/png.d/medit.png
Binary files differ
diff --git a/app/doc/png.d/menu.png b/app/doc/png.d/menu.png
new file mode 100644
index 0000000..e85bbbf
--- /dev/null
+++ b/app/doc/png.d/menu.png
Binary files differ
diff --git a/app/doc/png.d/menu.xcf b/app/doc/png.d/menu.xcf
new file mode 100644
index 0000000..efd9e70
--- /dev/null
+++ b/app/doc/png.d/menu.xcf
Binary files differ
diff --git a/app/doc/png.d/mfile.png b/app/doc/png.d/mfile.png
new file mode 100644
index 0000000..4bbd678
--- /dev/null
+++ b/app/doc/png.d/mfile.png
Binary files differ
diff --git a/app/doc/png.d/mhelp.png b/app/doc/png.d/mhelp.png
new file mode 100644
index 0000000..e06e37d
--- /dev/null
+++ b/app/doc/png.d/mhelp.png
Binary files differ
diff --git a/app/doc/png.d/mhelpdemos.png b/app/doc/png.d/mhelpdemos.png
new file mode 100644
index 0000000..1b935bc
--- /dev/null
+++ b/app/doc/png.d/mhelpdemos.png
Binary files differ
diff --git a/app/doc/png.d/mhelprecent.png b/app/doc/png.d/mhelprecent.png
new file mode 100644
index 0000000..cb0ca96
--- /dev/null
+++ b/app/doc/png.d/mhelprecent.png
Binary files differ
diff --git a/app/doc/png.d/mmacro.png b/app/doc/png.d/mmacro.png
new file mode 100644
index 0000000..4bb4203
--- /dev/null
+++ b/app/doc/png.d/mmacro.png
Binary files differ
diff --git a/app/doc/png.d/mmanage.png b/app/doc/png.d/mmanage.png
new file mode 100644
index 0000000..931d065
--- /dev/null
+++ b/app/doc/png.d/mmanage.png
Binary files differ
diff --git a/app/doc/png.d/mmanageturnoutdesign.png b/app/doc/png.d/mmanageturnoutdesign.png
new file mode 100644
index 0000000..9a1fbec
--- /dev/null
+++ b/app/doc/png.d/mmanageturnoutdesign.png
Binary files differ
diff --git a/app/doc/png.d/mmovedraw.png b/app/doc/png.d/mmovedraw.png
new file mode 100644
index 0000000..579735d
--- /dev/null
+++ b/app/doc/png.d/mmovedraw.png
Binary files differ
diff --git a/app/doc/png.d/moptions.png b/app/doc/png.d/moptions.png
new file mode 100644
index 0000000..3548abf
--- /dev/null
+++ b/app/doc/png.d/moptions.png
Binary files differ
diff --git a/app/doc/png.d/mrotatealign.png b/app/doc/png.d/mrotatealign.png
new file mode 100644
index 0000000..b62443d
--- /dev/null
+++ b/app/doc/png.d/mrotatealign.png
Binary files differ
diff --git a/app/doc/png.d/mrotatefixed.png b/app/doc/png.d/mrotatefixed.png
new file mode 100644
index 0000000..0bc48f7
--- /dev/null
+++ b/app/doc/png.d/mrotatefixed.png
Binary files differ
diff --git a/app/doc/png.d/mrotatemove.png b/app/doc/png.d/mrotatemove.png
new file mode 100644
index 0000000..3977e13
--- /dev/null
+++ b/app/doc/png.d/mrotatemove.png
Binary files differ
diff --git a/app/doc/png.d/mselect.png b/app/doc/png.d/mselect.png
new file mode 100644
index 0000000..3d0f78a
--- /dev/null
+++ b/app/doc/png.d/mselect.png
Binary files differ
diff --git a/app/doc/png.d/mselected.png b/app/doc/png.d/mselected.png
new file mode 100644
index 0000000..c6ac4a3
--- /dev/null
+++ b/app/doc/png.d/mselected.png
Binary files differ
diff --git a/app/doc/png.d/msplitblock.png b/app/doc/png.d/msplitblock.png
new file mode 100644
index 0000000..e7e69b0
--- /dev/null
+++ b/app/doc/png.d/msplitblock.png
Binary files differ
diff --git a/app/doc/png.d/msplitblockLR.png b/app/doc/png.d/msplitblockLR.png
new file mode 100644
index 0000000..d066d70
--- /dev/null
+++ b/app/doc/png.d/msplitblockLR.png
Binary files differ
diff --git a/app/doc/png.d/mtoolbar.png b/app/doc/png.d/mtoolbar.png
new file mode 100644
index 0000000..e54424e
--- /dev/null
+++ b/app/doc/png.d/mtoolbar.png
Binary files differ
diff --git a/app/doc/png.d/mtrainmanagement.png b/app/doc/png.d/mtrainmanagement.png
new file mode 100644
index 0000000..0ffa218
--- /dev/null
+++ b/app/doc/png.d/mtrainmanagement.png
Binary files differ
diff --git a/app/doc/png.d/mview.png b/app/doc/png.d/mview.png
new file mode 100644
index 0000000..1593954
--- /dev/null
+++ b/app/doc/png.d/mview.png
Binary files differ
diff --git a/app/doc/png.d/mwindow.png b/app/doc/png.d/mwindow.png
new file mode 100644
index 0000000..5784168
--- /dev/null
+++ b/app/doc/png.d/mwindow.png
Binary files differ
diff --git a/app/doc/png.d/mzoomscale.png b/app/doc/png.d/mzoomscale.png
new file mode 100644
index 0000000..175156d
--- /dev/null
+++ b/app/doc/png.d/mzoomscale.png
Binary files differ
diff --git a/app/doc/png.d/openwindows.png b/app/doc/png.d/openwindows.png
new file mode 100644
index 0000000..8a3898f
--- /dev/null
+++ b/app/doc/png.d/openwindows.png
Binary files differ
diff --git a/app/doc/png.d/partslist.png b/app/doc/png.d/partslist.png
new file mode 100644
index 0000000..cb2258e
--- /dev/null
+++ b/app/doc/png.d/partslist.png
Binary files differ
diff --git a/app/doc/png.d/pref.png b/app/doc/png.d/pref.png
new file mode 100644
index 0000000..e72b459
--- /dev/null
+++ b/app/doc/png.d/pref.png
Binary files differ
diff --git a/app/doc/png.d/pricelist.png b/app/doc/png.d/pricelist.png
new file mode 100644
index 0000000..d8f0c3c
--- /dev/null
+++ b/app/doc/png.d/pricelist.png
Binary files differ
diff --git a/app/doc/png.d/print.png b/app/doc/png.d/print.png
new file mode 100644
index 0000000..368e272
--- /dev/null
+++ b/app/doc/png.d/print.png
Binary files differ
diff --git a/app/doc/png.d/printset.png b/app/doc/png.d/printset.png
new file mode 100644
index 0000000..27e7770
--- /dev/null
+++ b/app/doc/png.d/printset.png
Binary files differ
diff --git a/app/doc/png.d/printset_win.png b/app/doc/png.d/printset_win.png
new file mode 100644
index 0000000..714d165
--- /dev/null
+++ b/app/doc/png.d/printset_win.png
Binary files differ
diff --git a/app/doc/png.d/rescale.png b/app/doc/png.d/rescale.png
new file mode 100644
index 0000000..fdd0b87
--- /dev/null
+++ b/app/doc/png.d/rescale.png
Binary files differ
diff --git a/app/doc/png.d/satusbarparallel.png b/app/doc/png.d/satusbarparallel.png
new file mode 100644
index 0000000..50bd6ab
--- /dev/null
+++ b/app/doc/png.d/satusbarparallel.png
Binary files differ
diff --git a/app/doc/png.d/splitConnect.png b/app/doc/png.d/splitConnect.png
new file mode 100644
index 0000000..8d67459
--- /dev/null
+++ b/app/doc/png.d/splitConnect.png
Binary files differ
diff --git a/app/doc/png.d/splitDisconnect.png b/app/doc/png.d/splitDisconnect.png
new file mode 100644
index 0000000..0b90035
--- /dev/null
+++ b/app/doc/png.d/splitDisconnect.png
Binary files differ
diff --git a/app/doc/png.d/splitNotYet.png b/app/doc/png.d/splitNotYet.png
new file mode 100644
index 0000000..39bdc91
--- /dev/null
+++ b/app/doc/png.d/splitNotYet.png
Binary files differ
diff --git a/app/doc/png.d/statusbar.png b/app/doc/png.d/statusbar.png
new file mode 100644
index 0000000..b5b38a8
--- /dev/null
+++ b/app/doc/png.d/statusbar.png
Binary files differ
diff --git a/app/doc/png.d/statusbartrain.png b/app/doc/png.d/statusbartrain.png
new file mode 100644
index 0000000..abca2f9
--- /dev/null
+++ b/app/doc/png.d/statusbartrain.png
Binary files differ
diff --git a/app/doc/png.d/statusbarturntable.png b/app/doc/png.d/statusbarturntable.png
new file mode 100644
index 0000000..4c7fe96
--- /dev/null
+++ b/app/doc/png.d/statusbarturntable.png
Binary files differ
diff --git a/app/doc/png.d/statustext.png b/app/doc/png.d/statustext.png
new file mode 100644
index 0000000..6435000
--- /dev/null
+++ b/app/doc/png.d/statustext.png
Binary files differ
diff --git a/app/doc/png.d/sticky.png b/app/doc/png.d/sticky.png
new file mode 100644
index 0000000..fbc2316
--- /dev/null
+++ b/app/doc/png.d/sticky.png
Binary files differ
diff --git a/app/doc/png.d/strsel.png b/app/doc/png.d/strsel.png
new file mode 100644
index 0000000..bcc43f2
--- /dev/null
+++ b/app/doc/png.d/strsel.png
Binary files differ
diff --git a/app/doc/png.d/title.png b/app/doc/png.d/title.png
new file mode 100644
index 0000000..2616e4b
--- /dev/null
+++ b/app/doc/png.d/title.png
Binary files differ
diff --git a/app/doc/png.d/toolbar.png b/app/doc/png.d/toolbar.png
new file mode 100644
index 0000000..3d9a8a9
--- /dev/null
+++ b/app/doc/png.d/toolbar.png
Binary files differ
diff --git a/app/doc/png.d/trainbar.png b/app/doc/png.d/trainbar.png
new file mode 100644
index 0000000..d345bfd
--- /dev/null
+++ b/app/doc/png.d/trainbar.png
Binary files differ
diff --git a/app/doc/png.d/trainctrl.png b/app/doc/png.d/trainctrl.png
new file mode 100644
index 0000000..3117eab
--- /dev/null
+++ b/app/doc/png.d/trainctrl.png
Binary files differ
diff --git a/app/doc/png.d/trainsimulator.png b/app/doc/png.d/trainsimulator.png
new file mode 100644
index 0000000..0c49178
--- /dev/null
+++ b/app/doc/png.d/trainsimulator.png
Binary files differ
diff --git a/app/doc/png.d/turndes.png b/app/doc/png.d/turndes.png
new file mode 100644
index 0000000..0ae77a4
--- /dev/null
+++ b/app/doc/png.d/turndes.png
Binary files differ
diff --git a/app/doc/png.d/turnsel.png b/app/doc/png.d/turnsel.png
new file mode 100644
index 0000000..b2e1b6d
--- /dev/null
+++ b/app/doc/png.d/turnsel.png
Binary files differ
diff --git a/app/doc/png.d/updttl.png b/app/doc/png.d/updttl.png
new file mode 100644
index 0000000..f18006b
--- /dev/null
+++ b/app/doc/png.d/updttl.png
Binary files differ
diff --git a/app/doc/png.d/xtrkcad_logo.gif b/app/doc/png.d/xtrkcad_logo.gif
new file mode 100644
index 0000000..546767d
--- /dev/null
+++ b/app/doc/png.d/xtrkcad_logo.gif
Binary files differ
diff --git a/app/doc/statusbar.but b/app/doc/statusbar.but
new file mode 100644
index 0000000..61af8fc
--- /dev/null
+++ b/app/doc/statusbar.but
@@ -0,0 +1,29 @@
+\# Notes:
+\#
+\# The "\u000" command is used to format the output. The command causes a blank line to appear between "bulleted" or "described" items.
+\#
+
+\H{cmdStatusbar} Status Bar
+
+The \e{Status Bar} contains:
+
+\dd The Line Width and Color for \e{Straight Line}, \e{Curved Line}, \e{Circle}, \e{Box} or \e{Poly Line} objects. The Line Width is specified in pixels for the current Drawing Scale. Zooming (\K{viewM}) in or out causes the lines to be drawn wider or narrower.
+
+\u000
+
+\dd The Color for \e{Filled Circles} or \e{Polygons}.
+
+\u000
+
+\dd The size of a \e{Dimension Line} (\e{Tiny}, \e{Small}, \e{Medium} or \e{Large})
+
+\u000
+
+\dd The type, size and orientation of lumber used for \e{Bench-work} (regular rectangular, L-Girder or T-Girder).
+
+
+\u000
+
+If the \e{Ctrl} key is held down while creating or modifying lines and shapes then the cursor will be attracted to other objects.
+
+\rule \ No newline at end of file
diff --git a/app/doc/upgrade.but b/app/doc/upgrade.but
new file mode 100644
index 0000000..a88f8ce
--- /dev/null
+++ b/app/doc/upgrade.but
@@ -0,0 +1,165 @@
+\# Notes:
+\#
+\# The "\u000" command is used to format the output. The command causes a blank line to appear between "bulleted" or "described" items.
+\#
+
+\A{upgrades} Upgrade From Earlier \e{XTrackCAD} Version
+
+This section contains helpful information regarding program changes and the effects such may have with respect to layout files made with previous versions of \e{XTrackCAD}.
+
+\rule
+
+\H{cmdUpdatetitle} Version 2.x
+
+\f{Updated Titles}
+
+\G{png.d/updttl.png}
+
+Version 2.0.0 of \e{XTrkCad} introduced a change in the way Turnouts and Structures are named. The new method splits the title into 3 parts: Manufacturer, Description and Part Number.
+
+To help you when upgrading to the new version, when loading an old \e{XTrkCad} layout file, \e{XTrackCAD} detects if the layout uses Turnouts and Structures that have titles in the old format. If so this dialog is displayed which allows you to change the titles in your layout to the new format.
+
+The title of each different type of Turnout is collected and presented in this dialog. Simply select the Turnout on the list that matches the one displayed and click 'Update'. Repeat for each type of Turnout in your layout.
+
+If there is no matching Turnout, click on Ignore. The Turnout will retain the old name as the Description, with a blank Manufacturer and Part Number.
+
+Click Cancel to continue loading the file without updating the titles.
+
+If you Save your file without updating all the titles you will not be able to update the titles later.
+
+If you are looking at old files without making changes then Click on Cancel to load the file without Updates.
+
+Not updating the titles prevents the customization of the way titles are presented in various lists and on the layout. Basic operation of \e{XTrackCAD} is not affected.
+
+\rule
+
+
+\H{v4.0.x_revisions} Version 4.0.x
+
+\f{Check-point Files}
+
+Version 4 of \e{XTrkCad} introduces a new way of handling check-point files. This will allow resuming your work after a system crash much easier than before.
+
+If you start \e{XTrkCad} V.4.0.x the first time after an upgrade from a earlier version, a pop-up with the question: "Program was not terminated properly. Do you want to resume working on the
+previous track plan?"
+
+Select "Ignore" only if you're sure that the work from your last session has been correctly saved. If uncertain or restarting after an earlier failure select "Resume".
+
+\u000
+
+\f{Help System}
+
+The built in help system has been converted to a much more flexible and widely used HTML format. With many new graphics and extensively rewritten text the help information is now up-to-date with recent development.
+
+\f{Layer Colour Settings}
+
+Your personal layer color settings are now stored in your preferences. This allows you to apply the same settings to other layouts you design.
+
+\f{Parameter Files Updated}
+
+Thanks to Ralph Boyd, Dwayne Ward, Casey Sterbenz and others, many new and updated parameter files were added to this release.
+
+\f{Wheel mouse}
+
+The wheel on a wheel mouse can now be used to zoom in and out on a layout design.
+
+\rule
+
+
+\H{v4.0.3_revisions} Version 4.0.3
+
+\f{Internationalization}
+
+Internationalization or the ability to localize \e{XTrackCAD} for use with various languages was adopted during this version upgrade. \e{XTrackCAD} is now available with balloon help and daily tips written in US English, Finnish and German. The \e{XTrackCAD} development team welcomes anyone who wishes to volunteer with translation of various support files. Let them know by submitting an offer to assist to the \e{XTrackCAD} \f{Feature Tracker} located at the \W{http://sourceforge.net/tracker/?group_id=151737&atid=781981}{\e{XTrackCAD} Fork Project Site} or the \e{XTrackCAD} \f{Wikka Wish List} located at the \W{http://www.xtrkcad.org/Wikka/WishList}{\e{XTrackCAD} Wiki: WishList}.
+
+\f{Minor Fixes and Enhancements}
+
+\b Thanks to Martin Fischer, the Button Bar has a much cleaner and sharper look.
+
+\u000
+
+\b Several selections within various Option Menus (Layout, Display, Command and Preferences) have been re-arranged. In some case the order or grouping of menu items changed. In other cases menu items were move to a different menu; still within the sub-set of Option Menus. Our hope is that we've made it easier to locate parameter settings that in past were difficult to locate.
+
+\u000
+
+\b An new option that allows \e{XTrackCAD} to automatically re-open the last layout file has been added to the \f{Options>Preferences} menu. For detail refer to the \q{On Program Startup} item found in \K{cmdPref}.
+
+\u000
+
+\b Significant updates were made to the Atlas N and HO scale parameter files. Diesel engine and freight car information is now contained in four separate parameter files; Atlas HO Scale Cars (\e{atlascho.xtp}), Atlas HO Scale Diesel Engines (\e{atlaseho.xtp}), Atlas N Scale Cars (\e{atlascn.xtp}) and Atlas N Scale Diesel Engines (\e{atlasen.xtp}).
+
+\u000
+
+\b Twenty-one prototypes were added to the American Prototype parameter file (\e{protoam.xtp}). The additional prototypes are;
+
+\lcont{
+
+\u000
+
+\b Diesel Engines
+
+\lcont{
+
+\b Dash 8-32BWH, Dash 8-40B, Dash 8-40BW, Dash 8-40C
+
+\b FP7A
+
+\b H15-44, H16-44, H15/16-44
+
+\b RS4/5
+
+\b RSD12
+
+\b S1, S2, S3, S4
+
+\b SD35, SDP35
+
+}
+
+\u000
+
+\b Freight Cars
+
+\lcont{
+
+\b Caboose, NE-6
+
+\b Flat, 42'
+
+\b Tank, 55' and Tank, 65'
+
+\b Reefer, 36'
+
+}
+
+}
+
+\u000
+
+\b \e{XTrackCAD} users reported difficulty when attempting to activate grid lines in version 4.02. The problem was noticeable only on new installations. A default grid size of zero was found to be the cause of the problem. The default grid size has been changed to 1 thus eliminating the problem.
+
+\u000
+
+\b A small bug preventing Zooms of less than 1:1 (Refer to \K{cmdZoom} for detail.) was accidentally introduced in version 4.0.1. This problem has been corrected in version 4.0.3.
+
+\u000
+
+\b When new scale definitions were added to XTrkCad 4.0.2, a small bug broke the file format for some scales (eg., N UK). This problem has been corrected in version 4.0.3.
+
+\u000
+
+\b Some users of the Linux based application reported the \e{Sticky Commands} menu would exceed screen length. Spacing between \e{Sticky Commands} options has been improved in order to prevent this problem.
+
+\u000
+
+\b We've no idea when certain demo's broke however thanks to the work of Mikko Nissinen, many broken demos are now fixed.
+
+\u000
+
+\f{Name Change}
+
+With release of this version of \e{XTrackCAD} there's been a subtle change in the spelling and punctuation of the applications name. From this version forward, the application will be know as \e{XTrackCAD}. Please note the spelling and capitalization of the name.
+
+Why was the name changed? This release gives \e{XTrackCAD} developers an opportunity to included a much sought after feature; Internationalization (Through i18n). On the surface this doesn't sound that big however having the ability to internationalize or localize the product has great advantages for all users. Not only is there great potential for the application to become available to a larger audience, our hope it that the developer pool will expand which should result in more features being added to the application.
+
+\rule \ No newline at end of file
diff --git a/app/doc/view_winm.but b/app/doc/view_winm.but
new file mode 100644
index 0000000..f1cee8d
--- /dev/null
+++ b/app/doc/view_winm.but
@@ -0,0 +1,150 @@
+\# Notes:
+\#
+\# The "\u000" command is used to format the output. The command causes a blank line to appear between "bulleted" or "described" items.
+\#
+
+\H{viewM} \i{View Menu}
+
+\G{png.d/mview.png}
+
+The \f{View Menu} shows commands affecting the display of the \f{Main Canvas} (\K{mainW}).
+
+\dd \f{Change Grid} - Displays the \f{Snap Grid} dialog. The \f{Snap Grid} forces the cursor (for some commands) to be on a grid to control track placement.
+
+\u000
+
+\dd \f{Enable SnapGrid} - Enables (or disables) the \f{Snap Grid} (\K{cmdGrid}).
+
+\u000
+
+\dd \f{Redraw} - Redraws the \f{Main Canvas}.
+
+\u000
+
+\dd \f{Redraw All} - Redraws the \f{Main Canvas} and the \f{Map Window} (\K{cmdMap}).
+
+\u000
+
+\dd \f{Show Snap-Grid} - Toggles display of the \f{Snap Grid} on and off.
+
+\u000
+
+\dd \f{Tool-bar} - Command button groups displayed on the \f{Tool-bar} are selected using the Tool-bar Configuration Menu (\K{toolbarM}).
+
+\u000
+
+\dd \G{png.d/mzoomscale.png}
+
+\u000
+
+\dd \f{Zoom} - This sub-menu is used to select a specific drawing scale ratio for the \f{Main Canvas}.
+
+\u000
+
+\dd \f{Zoom In} - Increases magnification of the \f{Main Canvas}.
+
+\u000
+
+\dd \f{Zoom Out} - Decreases magnification of the \f{Main Canvas}.
+
+\u000
+
+When zooming in or out, the corresponding highlighted area of the \f{Map Window} (\K{cmdMap}) changes size to match that which appears on the \f{Main Canvas} (\K{mainW}).
+
+\rule
+
+\S{cmdGrid} Grid Dialog
+
+The \f{Grid} dialog, displayed by \f{Change Grid} on the View (\K{viewM}) menu, specifies the origin, angle and other parameters of the Snap Grid. The Snap Grid controls the position of the cursor during the \f{Curve} (\K{cmdCurve}), \f{Circle} (\K{cmdCircle}), \f{Modify} (\K{cmdModify}), \f{Straight} (\K{cmdStraight}), \f{Line Drawing} (\K{cmdDraw}) and \f{Turntable} (\K{cmdTurntable}) commands.
+
+\G{png.d/grid.png}
+
+The \f{Grid} dialog contains controls affecting the horizontal and vertical snap grid lines. Each dimension can be independently controlled.
+
+\dd The \f{Spacing} value specifies the distance between major grid lines, which are drawn as solid lines on the layout.
+
+\u000
+
+\dd The \f{Divisions} value adds the minor Grid lines between the major Grid lines, which are drawn as a series of dots on the layout. Specifying a value of 0 or 1 as the division value removes the minor grid lines.
+
+\u000
+
+\dd The Grid can be enabled or disabled in each dimension via the \f{Enable} check box.
+
+\u000
+
+\dd The \f{X} and \f{Y} coordinates relate to the anchor point of the X and Y Axis. Default values for \f{X} and \f{Y} are zero (0). Entering a value of one for \f{X} causes the Main grid line on the Drawing Canvas to shift left one unit. Entering a value of two causes the Main grid line to shift by two units and so on. The \f{Y} axis is affected in the similar manner except the grid moves down rather than left.
+
+\u000
+
+\dd Negative values can be used for X and Y values. Using such cause the Main Grid to shift right for the X Axis and up for the Y Axis.
+
+\u000
+
+\dd The A coordinate relates to the Angle of grid rotation. The default value for this coordinate is zero. Entering a value greater than 0 and less than 90 will cause the Main Grid to rotate clockwise by the number of degrees entered. Entering a negative value causes the grid to rotate counter-clockwise.
+
+The origin and angle of the Grid can be adjusted directly or by dragging on the layout. \e{Left+Drag} moves the origin of the Grid, and \e{Right+Drag} rotates the grid. \e{Shift+Right-Click} (\K{cmdAcclKeys}) displays a pop-up menu allowing rotation of the grid by various predefined angles.
+
+Whether the Snap Grid is drawn is controlled by the \f{Show} check-box. Also, if the layout is Zoomed Out (\K{cmdZoom}) the minor and major grid lines may be too close together to be drawn. The minimum pixel distance between grid lines is controlled by the \f{Min Grid Spacing} value on the \f{Preferences} (\K{cmdPref}) dialog.
+
+\f{Note:} on slow machines drawing the Grid can take noticeable time. Performance can be improved by selecting a larger value for \f{Min Grid Spacing}.
+
+\G{png.d/bgsnap.png} \f{Grid Buttons} on the Tool-bar (\K{mainW}) can be used to Enable/Disable and to Show/Hide the Snap Grid.
+
+\rule
+
+\S{toolbarM}Tool-bar Configuration
+
+\G{png.d/mtoolbar.png}
+
+Command button groups displayed on the \f{Tool-bar} are selected using the Tool-bar Configuration Menu (\K{toolbarM}). If none of the command button groups are selected, the \f{Tool-bar} is not shown.
+
+\rule
+
+
+\S{cmdZoom} \i{Zoom}
+
+\G{png.d/bgzoom.png}
+
+The \f{Zoom In} and \f{Zoom Out} actions can also be accessed using buttons on the Tool Bar. The Mouse Wheel, PAGE DOWN and PAGE UP keys can also be used to zoom in and out.
+
+Holding down the Shift key while clicking the \f{Zoom In} or \f{Zoom Out} buttons sets the Drawing Scale to a \e{Programmed Zoom} value.
+
+\dd \e{\i{Programmed Zoom}}
+
+\lcont{
+
+\u000
+
+\b The \e{Programmed Zoom} value for the \f{Zoom In} button is set to the current Drawing Scale by holding down the Shift and Ctrl keys while clicking on the \f{Zoom In} button.
+
+\u000
+
+\b The \e{Programmed Zoom} value for the \f{Zoom Out} button is set to the current Drawing Scale by holding down the Shift and Ctrl keys while clicking on the \f{Zoom Out} button.
+
+}
+
+Normally a zoom in more of more than 1:1 is not possible, however if the Ctrl key is held down while the \f{Zoom In} button is pressed a zoom less that 1:1 can be achieved. This function is useful when working on detail.
+
+Pressing the middle Zoom button on the Tool Bar pop-ups a list of Zoom factors that can be select from.
+
+\rule
+
+
+\H{windowM} Window Menu
+
+\G{png.d/mwindow.png}
+
+The \f{Window Menu} typically contains selections for bringing any open window into view. It's used as follows;
+
+\dd \e{XTrackCAD} permits multiple dialog windows to be open at any one time. When a large number of windows are open it can become difficult to locate and bring a specific window into focus. Use the \f{Window Menu} function to select and bring the desired window to the top of the screen.
+
+\u000
+
+\dd \G{png.d/openwindows.png}
+
+\u000
+
+\dd Apart from bringing the \f{Map Window} (\K{cmdMap}) to the foreground, the \f{Map} menu item can also be used to re-opened a closed \f{Map Window}.
+
+\rule \ No newline at end of file
diff --git a/app/doc/warranty.but b/app/doc/warranty.but
new file mode 100644
index 0000000..9c4e909
--- /dev/null
+++ b/app/doc/warranty.but
@@ -0,0 +1,149 @@
+\A{warrantyLicenseCopy} Warranty, License and Copying
+
+\e{XTrackCAD} is \XTCCopyRight.
+
+Some icons are taken from the \W{http://tango.freedesktop.org/}{Tango Free Desktop} project and are
+covered by the Creative Commons Attribution-ShareAlike 2.5 License Agreement.
+
+
+\rule
+
+\H{warranty} Warranty
+
+\e{XTrackCAD} is provided "as is" without warranty of any kind, either express or implied, including, but not limited to warranties of merchantability or fitness for a particular purpose. In no event will Sillub Technology be liable for any damages, including incidental or consequential damages, arising out of the use of the program, even if advised of the possibility of such damages.
+
+\rule
+
+
+\H{copydist} \ii{Copying and Distribution}
+
+\e{XTrackCAD} is a powerful CAD program for designing Model Railroad layouts.
+
+\e{XTrackCAD} is \XTCCopyRight and licensed as free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
+
+You should have received a copy of the GNU General Public License along with this program; see the file named COPYING or refer to \K{GNUGPLicense}. If not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+\e{XTrackCAD} Fork is a project for further development of the original \e{XTrackCAD} software. Refer to the project homepage at http://www.xtrkcad.org/ for news and current releases.
+
+\rule
+
+
+\H{GNUGPLicense} \ii{GNU General Public License}
+
+\dd GNU GENERAL PUBLIC LICENSE
+
+\dd Version 2, June 1991
+
+\u000
+
+\dd Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+
+\dd 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
+
+\e{Preamble}
+
+The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their
+rights.
+
+We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and modification follow.
+
+GNU GENERAL PUBLIC LICENSE
+
+\f{TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION}
+
+0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.
+
+1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
+
+\dd a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
+
+\u000
+
+\dd b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
+
+\u000
+
+\dd c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
+
+3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:
+
+\dd a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
+
+\u000
+
+\dd b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
+
+\u000
+
+\dd c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)
+
+
+The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
+
+If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
+
+7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
+
+This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.
+
+10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
+
+NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+\f{END OF TERMS AND CONDITIONS}
+
+\rule
diff --git a/app/doc/xtrkcad_lin.css b/app/doc/xtrkcad_lin.css
new file mode 100644
index 0000000..eae28c7
--- /dev/null
+++ b/app/doc/xtrkcad_lin.css
@@ -0,0 +1,59 @@
+/************************************************************************************
+LINUX Help File colour and fonts are done here. Halibut controls margins, line spacing and indents.
+*************************************************************************************/
+
+BODY {
+ background: white;
+ font-family: "Trebuchet MS", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Tahoma, sans-serif;
+ font-size: 100%;
+ color: #333;
+ font-weight: normal;
+ line-height: 1.4em;
+}
+
+A:link {
+ text-decoration: none;
+ color: #7DA1BF;
+ font-weight: bold;
+} /* unvisited link */
+
+A:visited {
+ text-decoration: none;
+ color: #1d4e89;
+ font-weight: bold;
+} /* visited links */
+
+A:active {
+ text-decoration: none;
+ font-weight: bold;
+ color: red;
+ } /* active links */
+
+a:hover {
+ text-decoration: underline;
+ color: #F69256;
+ }
+
+H1 {
+ text-align: left;
+ font-size: large;
+ font-style: italic;
+ font-weight: bold;
+ padding: 3px 6px;
+}
+
+H2 {
+ text-align: left;
+ font-size: medium;
+ font-style: italic;
+ font-weight: bold;
+ padding: 3px 6px;
+}
+
+H3 {
+ text-align: left;
+ font-size: small;
+ font-style: italic;
+ font-weight: bold;
+ padding: 3px 6px;
+}
diff --git a/app/doc/xtrkcad_win.css b/app/doc/xtrkcad_win.css
new file mode 100644
index 0000000..b2115e4
--- /dev/null
+++ b/app/doc/xtrkcad_win.css
@@ -0,0 +1,59 @@
+/************************************************************************************
+Window Help File colour and fonts are done here. Halibut controls margins, line spacing and indents.
+*************************************************************************************/
+
+BODY {
+ background: white;
+ font-family: "Trebuchet MS", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Tahoma, sans-serif;
+ font-size: 9pt;
+ color: #333;
+ font-weight: normal;
+ line-height: 1.4em;
+}
+
+A:link {
+ text-decoration: none;
+ color: #7DA1BF;
+ font-weight: bold;
+} /* unvisited link */
+
+A:visited {
+ text-decoration: none;
+ color: #1d4e89;
+ font-weight: bold;
+} /* visited links */
+
+A:active {
+ text-decoration: none;
+ font-weight: bold;
+ color: red;
+ } /* active links */
+
+a:hover {
+ text-decoration: underline;
+ color: #F69256;
+ }
+
+H1 {
+ text-align: left;
+ font-size: large;
+ font-style: italic;
+ font-weight: bold;
+ padding: 3px 6px;
+}
+
+H2 {
+ text-align: left;
+ font-size: medium;
+ font-style: italic;
+ font-weight: bold;
+ padding: 3px 6px;
+}
+
+H3 {
+ text-align: left;
+ font-size: small;
+ font-style: italic;
+ font-weight: bold;
+ padding: 3px 6px;
+} \ No newline at end of file