@hyperguide UniView.hguide
@author "Stefan Ruppert"
@annotation Is part of the HTDS-Shareware licence
@$VER: UniView.hguide 40.4 (19.01.98)
@copyright © 1996-1998 by Stefan Ruppert
@smartwrap
@macro m_code "@{code}@{fixedfont}$1@{body}@{deffont}"
@macro m_name "@{pari -3}@{lindent 6}@{par}@{sectfont}@{b}$1@{ub}@{deffont}@{line}@{pari 0}"
@listindent 6
@path /author
@node Main "UniView Documentation"

@{jcenter}@{titlefont}@{b}UniView@{ub} - a MultiView replacement@{deffont}@{line}

@{subtitlefont}@{fg highlight}Written by Stefan Ruppert (C) 1996-1998. All rights reserved!@{deffont}@{fg text}@{line}@{jleft}
@{settabs 30}

@{m_name Menu}
@{" Copyright "    Link "Copyright"    }@{tab}Some legal stuff@{line}
@{" Introduction " Link "Introduction" }@{tab}Why a replacement for MultiView ?@{line}
@{" Feature List " Link "FeatureList"  }@{tab}an overview@{line}
@{" Restrictions " Link "Restrictions" }@{tab}of the unregistered Version@{line}
@{" Installation " Link "Installation" }@{tab}Installation@{line}
@{" Invocation "   Link "Invocation"   }@{tab}Command line options / ToolTypes@{line}
@{" Configuration " Link "Configuration"}@{tab}Adapt to your needs@{line}
@{" Using "        Link "Using"        }@{tab}Keybindings and menus@{line}
@{" ARexx "        Link "DTWindowRexx.hguide/main"}@{tab}ARexx commands@{line}
@{" To Do "        Link "ToDo"         }@{tab}Future plans@{line}
@{" Address "      Link "SR.hguide/main"}@{tab}How you can reach me@{line}

@{separator}@{b}Note:@{ub} For viewing hypertext and text files with my
hypertext.datatype UniView requires version 40.24 or above of the
hypertext.datatype. Earlier versions of this datatype may crash with UniView.
Sorry!
@endnode
@node Copyright "UniView.hguide/Copyright"

@{m_name "Legal stuff"}
UniView and dtwindow.class is part of the @{"HTDS" Link HTDS.hguide/main}-Shareware licence.
If you want full functionality you have to register. Otherwise you can use the
@{"unregistered" Link Restrictions} version without pay the Shareware fee, if you send
me an @{"email" Link SR.hguide/Addresses} or a @{"postcard" Link SR.hguide/Addresses}.


Permission is hereby granted to distribute the program's archive
containing the executable's and documentation for non-commercial
purposes as long as the archive and its contents are not modified in
any way.


It is forbidden to include this archive in any kind of software
collection except the Fish Amiga-Library, Meeting Pearls CD's,
Aminet FileServer or BBS fileareas or by a explicit permission
from the author !


No guarantee of any kind is given that the programs described in
this document are 100% reliable. You are using this material at your
own risk. The author takes no responsibility for any damage which is
caused by using these programs.


Stefan


Copyright (C) 1996-1998 by @{"Stefan Ruppert" Link SR.hguide/main}

@endnode
@node Introduction "UniView.hguide/Introduction"

@{m_name "Introduction"}
Why a replacement for MultiView some can ask? Well, here is a short list of
my reasons :

MultiView ...
@{itemize}
@{item}has several bugs. For example the left and top values aren't consistent
handled by mouse and keyboard.
@{item}doesn't support standard datatypes attributes like author, copyright and such.
@{item}isn't configureable at all.
@{item}can't run arexx scripts.
@{enditemize}

Ok, UniView isn't perfect right now, but it gives more power to the user I think.
@endnode
@node FeatureList "UniView.hguide/Feature List"

@{m_name "Feature List"}
@{itemize}
@{item}MultiView compatible
@{item}Complete Object-Orientated using BOOPSI (startup.class, dtwindow.class)
@{item}Configureable @{"menus" link Using#menus} through resource files
@{item}AppWindow/AppIcon support
@{item}Datatype @{"object dependent menu" link Using#dependent}
@{item}Document menu (See @{"restrictions" link Restrictions})
@{item}Many @{"ARexx" Link DTWindowRexx.hguide/main} commands
@{item}Able to run ARexx scripts (See @{"restrictions" Link Restrictions}).
@{item}Uses StartUp class for startup procedure
@{item}Numeric pad support
@{enditemize}

@endnode
@node Restrictions "UniView.hguide/Restrictions"

@{m_name "Restrictions of unregistered Version"}
The following functions are only available in the @{"registered" Link Registration} version.

@{enumerate}
@{item}The document menu :@{line}
This menu enables you fast access to often needed documents. It scans the
@{"PROGDIR:Documents/" link PROGDIR:Documents/main} directory and creates
a menu item for each directory entry. You can also use a link to a document.


@{item}Running ARexx scripts :@{line}
The RX command is used to launch ARexx scripts
@{endenumerate}

@endnode
@node Installation "UniView.hguide/Installation"

@{m_name "Installation"}
@{enumerate}
@{item}Copy `classes/startup.class' and `classes/dtwindow.class' to `Sys:Classes'


@{item}Install all other Files to a place of your choice.


@{item}If you have the HTDS.key file, create `ENVARC:DataTypes/dtwindow.prefs' and
`ENV:DataTypes/dtwindow.prefs' with the following contents :@{line}
KEYFILE <full-keyfile-path> or place the HTDS.key into the KeyFiles: or KeyPath:
directory.
@{endenumerate}

@endnode
@node Invocation "UniView.hguide/Command line options / ToolTypes"

@{m_name "Command line options / ToolTypes"}
The command line options and ToolTypes are exactly the same, because of the
usage of the startup.class. The class provides for the client program one
interface of these to startup methods. It uses the normal AmigaDOS template
string.

@{m_name "Template"}
FILE,NODE/K,CLIPBOARD/S,CLIPUNIT/N/K,SCREEN/S,PUBSCREEN/K,REQUESTER/S,
BOOKMARK/S,FONTNAME/K,FONTSIZE/N/K,BACKDROP/S,WINDOW/S,PORTNAME/K

@{definition}
@{defterm}FILE
@{defdata}file to open

@{defterm}NODE
@{defdata}If the file consists fo several nodes, open the node given here

@{defterm}CLIPBOARD (not yet implemented)
@{defdata}indicate that the clipboard should be used instead of a file

@{defterm}CLIPUNIT (not yet implemented)
@{defdata}specifies the clipboard unit

@{defterm}SCREEN
@{defdata}specifies that a own screen should be opened

@{defterm}PUBSCREEN
@{defdata}the window should be opened on the specified public screen.

@{defterm}REQUESTER (not yet implemented)
@{defdata}is there for MultiView compatiblity. But what does it ?

@{defterm}BOOKMARK
@{defdata}tries to open the bookmark file (PROGIDR:Bookmarks)

@{defterm}FONTNAME
@{defdata}specifies the name of the font used for the object

@{defterm}FONTSIZE
@{defdata}specifies the height of the font used for the object

@{defterm}BACKDROP
@{defdata}opens the window in backdrop mode

@{defterm}WINDOW
@{defdata}opens the window without the need of specifying a file

@{defterm}PORTNAME
@{defdata}use the given name as the ARexx port

@{enddefinition}
@endnode
@node Configuration "UniView.hguide/Adapt to your needs"

@{m_name "Adapt to your needs"}
@{enumerate}
@{item}dtwindow.class :@{line}@{line}
The behaviour of this class can be controlled through the preference
file 'Env:DataTypes/dtwindow.prefs'. You can specify some options according
to the following ReadArgs() templates :

@{definition}
@{defterm}KEYFILE/K/A
@{defdata}The KEYFILE template specifies the full filename to the
dtwindow.class/HTDS keyfile. This file enables the full functionality of
dtwindow.class and HTDS.

@{defterm}ASL/S,LEFT/N/K,TOP/N/K,WIDTH/N/K,HEIGHT/N/K
@{defdata}The ASL template is used to define the intial dimensions of the Asl
file requester.

@{defterm}WINDOW/S,LEFT/N/K,TOP/N/K,WIDTH/N/K,HEIGHT/N/K
@{defdata}The WINDOW template is used to define the initial dimensions of the
datatype window its5elf.

@{defterm}FLAGS/S,APPICON/S,NUMPAD/S,BACKDROP/S
@{defdata}The FLAGS template specifies some flags for the datatype window.
Currently only the APPICON flag is available. If set the dtwindow.class creates
a AppIcon on the workbench screen if the window is opened on an own or public
screen. The NUMPAD flag enables the usage of the numeric pad keys. BACKDROP is
used to open the window as a backdrop window as default.
@{enddefinition}

@{item}UniView :@{line}@{line}
UniView searches for configuration files within the following directories :
`PROGDIR:Prefs' and `Env:UniView'. It tries to open a file with the name of
the public screen the window should open. This file is created if you chose
the 'Save as default' menu item in the `Preference' menu.@{line}
So if you run
@{line}@{line}
@{m_code "UniView S:Startup-Sequence PUBSCREEN=ShowDVI-PubScr"}
@{line}@{line}
UniView will try to open a preference file called `ShowDVI-PubScr'.
@{line}@{line}
This file contains the same preferences as the global `dtwindow.prefs' file
without the KEYFILE template.
@{endenumerate}

@endnode
@node Using "UniView.hguide/Keybindings and menus"
@next ToDo

@{m_name "Keybindings"}
@{settabs 20}
Key   @{tab}Description@{line}@{code}
@{separator}
ESC   @{tab}quits the window
Space @{tab}show next page
@{body}@{cleartabs}

@{label menus}
@{m_name "Menus"}
The described menu here is only the default menu configuration, which is part
in the standard distribution archive. Because of the configureable menu system,
this may differ from the current settings. See @{"writing own menu entries" link MenuFiles}


@{settabs 15 30 45}
menu@{tab}item@{tab}subitem@{tab}command@{line}@{code}
@{separator}
Project
@{tab}Open ...   @{tab}@{tab}@{"OPEN" link DTWindowRexx.hguide/OPEN}
@{tab}ReOpen     @{tab}@{tab}@{"RELOAD" link DTWindowRexx.hguide/RELOAD}
@{tab}~~~~~~~~~~~~~~
@{tab}Save As ...@{tab}@{tab}@{"SAVEAS" link DTWindowRexx.hguide/SAVEAS}
@{tab}Print      @{tab}@{tab}@{"PRINT" link DTWindowRexx.hguide/PRINT}
@{tab}~~~~~~~~~~~~~~
@{tab}About     »@{tab}@{tab}@{"ABOUT" link DTWindowRexx.hguide/ABOUT}
@{tab}@{tab}Program@{tab}@{"ABOUT PROGRAM" link DTWindowRexx.hguide/ABOUT}
@{tab}@{tab}Object @{tab}@{"ABOUT OBJECT" link DTWindowRexx.hguide/ABOUT}
@{tab}@{tab}User   @{tab}@{"ABOUT USER" link DTWindowRexx.hguide/ABOUT}
@{tab}~~~~~~~~~~~~~~
@{tab}Quit       @{tab}@{tab}@{"QUIT" link DTWindowRexx.hguide/QUIT}
Edit
@{tab}Mark       @{tab}@{tab}@{"MARK" link DTWindowRexx.hguide/MARK}
@{tab}Copy       @{tab}@{tab}@{"COPY" link DTWindowRexx.hguide/COPY}
@{tab}~~~~~~~~~~~~~~
@{tab}Select all @{tab}@{tab}@{"MARK ALL" link DTWindowRexx.hguide/MARK}
@{tab}Clear selected@{tab}@{tab}@{"CLEARSELECTED" link DTWindowRexx.hguide/CLEARSELECTED}
Window
@{tab}Use own screen@{tab}@{tab}@{"SCREEN" link DTWindowRexx.hguide/SCREEN}
@{tab}~~~~~~~~~~~~~~
@{tab}Minimal   @{tab}@{tab}@{"WINDOW MIN" link DTWindowRexx.hguide/WINDOW}
@{tab}Normal    @{tab}@{tab}@{"WINDOW NORM" link DTWindowRexx.hguide/WINDOW}
@{tab}Maximal   @{tab}@{tab}@{"WINDOW MAX" link DTWindowRexx.hguide/WINDOW}
@{tab}~~~~~~~~~~~~~~
@{tab}Zoom      @{tab}@{tab}@{"WINDOW ZOOM" link DTWindowRexx.hguide/WINDOW}
@{tab}Unzoom    @{tab}@{tab}@{"WINDOW UNZOOM" link DTWindowRexx.hguide/WINDOW}
@{tab}~~~~~~~~~~~~~~
@{tab}Foreground@{tab}@{tab}@{"WINDOW FRONT" link DTWindowRexx.hguide/WINDOW}
@{tab}Background@{tab}@{tab}@{"WINDOW BACK" link DTWindowRexx.hguide/WINDOW}
Preference
@{tab}Save as default@{tab}@{tab}   @{"SNAPSHOT" link DTWindowRexx.hguide/SNAPSHOT}
@{tab}~~~~~~~~~~~~~~~
@{tab}NumPad         @{tab}@{tab}   @{"NUMPAD" link DTWindowRexx.hguide/NUMPAD}
@{tab}Backdrop       @{tab}@{tab}   @{"BACKDROP" link DTWindowRexx.hguide/BACKDROP}
Files
@{tab}Startup-Sequence@{tab}@{tab}   @{"OPEN 'S:Startup-Sequence'" link DTWindowRexx.hguide/OPEN}
@{body}@{cleartabs}

@{label dependent}
@{m_name "Datatype object dependent menu"}
This menu is created by loading a menu resource file for each derived class.
For example a menu for a ILBM picture is created by loading the menu resource
files : ilbm, picture and datatypesclass.

@{m_name "Document menu"}
This menu is created by scanning the document dir (PROGDIR:Documents) and add a
menu item for each file within this directory. Thus you can creat a list of
favorite documents, which can easily reached.

@endnode
@node MenuFiles "UniView.hguide/Menu resource files"

@{m_name "Menu resource files"}
All menu resource files are placed in the @{"PROGDIR:Menu/<Language>" link PROGDIR:Menu/main}
directory. The main menu resource file is the `Default' file, which contains the default menu
definitions.

@{par}If you have a registered version of UniView a datatype object dependend menu is created
by loading the menu resource file for each derived class of the object. Thus if you view a
directory object, a menu will be created by loading the menu resource files : `directory',
`hypertext' and `datatypesclass'.

@{m_name "Structure of a menu resource file"}
Each menu resource file is parsed using the @{"ReadArgs()" link dos/ReadArgs()} function.
The following template is used for this :

@{m_code "MENU/A/K,LABEL/K/A,COMMKEY/K,DISABLED/S,TOGGLE/S,CHECKIT/S,CHECKED/S,EXCLUDE/S,FUNCTION/K/F"}

@{definition}
@{defterm}MENU
@{defdata}defines the type of the menu entry. This can be one of the following three :
@{definition}
@{defterm}TITLE@{defdata}Defines a title menu entry
@{defterm}ITEM@{defdata}Defines a menu item entry
@{defterm}SUB@{defdata}Defines a sub menu item entry
@{enddefinition}
@{defterm}LABEL
@{defdata}is used to specify the text for this menu entry
@{defterm}COMMKEY
@{defdata}is used to specify the menu shortcut for this menu entry
@{defterm}DISABLED
@{defdata}is used to initially disable the menu entry
@{defterm}TOGGLE
@{defdata}if this is specified the menu entry should be toggled
@{defterm}CHECKIT
@{defdata}if this is specified the menu entry has a check mark
@{defterm}CHECKED
@{defdata}if this is specified the menu entry is initially checked
@{defterm}EXCLUDE
@{defdata}defines a mutual exclusive menu entry
@{defterm}FUNCTION
@{defdata}is used to specify the @{"ARexx command" link DTWindowRexx.hguide/main} to be executed if this menu entry was selected
@{enddefinition}
@endnode
@node ToDo "UniView.hguide/To Do"
@prev Using

@{m_name "Future plans"}
@{itemize}
@{item}Fixing bugs (never written a bug free program, I think)

@{item}More and better documentation. Please feel free to send me
some suggestions or corrections

@{item}More datatype dependent menus and ARexx scripts.
@{enditemize}
@endnode

