home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Computer Club Elmshorn Atari PD
/
CCE_PD.iso
/
mac
/
1000
/
CCE_1049.ZIP
/
CCE_1049.PD
/
APPMAN
/
APPMAN.TXT
< prev
next >
Wrap
Text File
|
1995-02-11
|
42KB
|
1,004 lines
@(#)appman.txt, v0.89 Appman Manual (c) 1994,1995 Jerry G Geiger
Reference Manual to Application manager Appman
This documentation isn't complete at all. But together with the
example *inf file it should help you using the program.
The usage of Gemini is recommanded, as well as Let'em Fly's - if you
don't run Appman under MagiC -, though it works without, (without Gemini
at least partly) too.
Contents:
1. The Application Manager - link classes of filenames
to applications
2. The Icon Window of Appman
3. How To Install And Details
1. Application Manager
The Application manager handles applications attached to
sort of classes of filenames. In some way it knows how to deal with
a file classified by it's name or name's extension. Cause I think the
main actions performed on a file is editing, viewing or kind of
executing it, it distinguishes these three main actions.
1.1 The Way it Works - some general remarks
1.2 The Usage - the popup menu
1.3 The Configuration File appman.inf
How The Application Manager Works
In the configuration file 'appman.inf' you can attach programs
to classes of filenames or single files. There are three actions to
be performed by Appman which are show, edit and execute. Depending on
the filename's extension 'execute' will have other names in the popup.
For each of this actions you can attach a program to a 'class
of filenames' to be executed after a double click and the selection in
the popup. See Appman Popup.
Appman will get a message from the Desktop if you double
clicked an Icon there. (Of course other programs can send this
message as well.) If the name of the object in the message fits in one
of the classes in 'appman.inf' the specified program is executed by
the Desktop (e.g. Gemini) or by Appman itself - if AES version allows
this (see 'CON' in internal options).
If the name doesn't fit in any specified class for the provided
action a default application can get executed.
The Usage of The Application Manager
After Appman got a message about the selected filename it will
display one of the following popups, or perform some action at once.
This depends on the configuration of the double click and [Shift] key
combinations in the 'appman.inf' file.
The popup will not appear if the selected object is an 680x0
executable (recognized by the extension, see EXECSUFFIX), or it's name
has an extension mentioned in SAPPSUFFIX list. Gemini won't
send a message if you double click an 'executable' object without
pressing a [Shift] key, or it does not at all. (This goes for it's
'gin' files, too.)
If Appman can't find a commandline for the selected object, you
can select a program to run on that object or use a standard
application for the provided action.
configure the actions after double clicks
the appman popup menu
the default application dialog
If the [Alt] key is pressed while double clicking - long enough for
Appman to detect it - Gemini or the Desktop should open a directory
window with the path the selected file is in. Gemini 1.999e will open
a window with 'appman.acc', though this is not very usefull at all. :-)
Configure Double Clicks and Actions
Double Clicks, in a Desktop window of objects together with a
[Shift] key hold down or not, will force Appman to perform some action:
Either run a program at once or display the popup menu to let you
select some action.
You can configure this in the appman.inf file.
Here is the list with the default settings:
Dclick display popup
[Shift]Dclick 'show' object
[Shift][Control]Dclick 'edit' object
[Shift][Alternate]Dclick 'pack' object
For changes (e.g. 'show' with double click and 'display popup' with
[Shift]) see the variables 'DCLACT' etc. in the appman.inf file
description.
Appman Popup
These are the popup menues Appman will display to let you select
some action to be performed on the selected object.
show show show
edit edit edit
execute print extract
------- ------ ------
pack pack pack
Which one is displayed depends on the filename's extension, it
depends on wether the file is an archive or an executable one.
Which program is started after clicking on one of the action entries
depends again on the configuration in 'appman.inf'.
If no pattern matches, the default application dialog
is displayed.
With the default 'pack' application 'gzip', the object is unpacked
if it is a packed one or packed if not. This is a feature of gzip, and
not of Appman.
The popup works with keys, see MENUS in special keywords.
Together with Let'em Fly you can move it around using the disabled item.
Default Application Dialog
With this dialog you can select a program to run on an object
appman don't knows to handle (from the appman.inf file), or use a
standard application for the provided action.
You can change the default button in this dialog with the 'DFL1'
variable in your appman.inf file.
To get rid of the default application dialog for some 'action',
just specify a 'default' application's commandline for all files as
last entry for this action in your appman.inf file.
example:
+* 1stview.acc@1STVIEW GEMIVA
This as last! '+' (show) entry will always make 1stview.acc show
all files that didn't match any entry before.
You can set the REQUEST variable to a value, so that this dialog
will never appear, this means a 'cancel'.
- to be continued
Configuration File appman.inf
The file 'appman.inf' is appman's configuration file. It is
read in right after starting of the accessory and after the ^L key
command. For location see section paths. It is an plain ASCII file.
A line may have more than 1024 characters and its end (LF) is
the main delimiter.
Comment lines start with an '%' sign. You are recommended to edit the
example appman.inf file from the distribution according to your
environment. There you will find some BNF similiar description of the
syntax, too.
special keywords (variables) for general configuration
the significant extensions
the default applications
classes of filenames and actions performed on them
- to be continued
Special Keywords/Variables
Some values are bitfields. To set them add the values for the
functions you want to select and use the sum for the new
variable's value.
MSGDELAY '0' to '6000'
hundreth of a second delay on a reply to the AES message
'AC_CLOSE' to prevent the message queue run over. You
shouldn't need this in MultiTOS but elder TOS versions.
WOPEN '0' to '7', bitfield
A bitfield for auto opening of the Icon Window. The values'
description:
1 Gemini opens and reopens the Appman window with the
status message or not.
2 Appman should open the window always if it can find any
AVserver running.
4 Appman should open it's window at start and if no other
value is added after every AC_CLOSE by itself.
So if Appman doesn't open it's window after getting started
via an Gemini message set the WOPEN variable to 5.
ICONFLAGS '0' to '7', bitfield
A bitfield to set some flags for the Icon Window. The values'
description:
1 The icon text should be centered in the icons' text boxes.
2 The length of the icons' text boxes is the full icon text
length (20 characters).
4 The icon window's minimum width is the icon image's size, if
unset it will be the complete icon's size.
The default values differ in 'appman.acc' (5) and 'appman2.acc'
(6) cause of different icons there.
MOUSEBGTIMER '0' to '6000'
hundreth of a second - timer event to catch mouse
clicks in an untopped icon window, default
is 100 (one second), 0 means no timer event at all.
If your OS supports actions in untopped windows this
variable should be '0'. For MultiTOS and MagiC this is
set by Appman itself as default.
see background usage
DFL1 '0' to '3'
The number of the default button in the
'default application dialog'.
DFLCP '0' to '2'
The same in the copy dialog (after icon dragging).
DFLEXE '0' to '2'
The same in the 'run' dialog (after icon dragging).
AESPOPUP '1' or '0'
Set the MENUS switch in bit 0 to value 1 or 0 (default)
It only sets this switch without effect on values 2 or 4
MENUS '0' to '7'
A bitfield to set menu related switches:
1 Use the AES's popup menu function if possible (MultiTOS,
MagiC) to display the Appman popup menu.
If 0 the builtin popup menu is used always.
(this is default, you may want this, e.g. for key support)
2 (default for Accessories and 'appman*.acc' binaries)
insert an 'Appman' entry into the Accessory menu
If unset there will be no menu entry if started as ACC
under MagiC.
The following value is not supported by 'appman*.acc' binaries.
(use 'what' if you forgot the binary's orignal name)
4 only if run as APP, then default value
Appman should have a menubar; if unset there will be no
menubar even if started as APP: you won't need any cause
you can have a menu entry with value 2 or no entry at all
and open the Appman window with a double click on an Appman
icon in the desktop if Appman is already running.
WOPEN maybe set so that the window opens automatically.
CASESENSITIVE '0' to '15'
A bitfield for some casesensitive flags, the values:
(default is 0)
1 Handle object's names and extensions and wildcards case
sensitive when comparing or not (default is not).
If not, all wildcard patterns and extension lists from
'appman.inf' and the object's name to act on are forced to
upper case.
2 The auto locator function in the icon window is case-
sensitive. (default is not)
Cause not many File-Selectors support case sensitive filenames
and some people prefer lower case names for not case sensitive
filesystems:
4 Make all filenames lowercase if not in a case sensitive
filesystem.
8 Do so if no information about case-sensitivness of a
filesystem is available.
The strings used in the messages are not changed by this
options. VA protocol messages will contain uppercase names
unless MiNT is runnning though CASESENSITIVE is '1', and
unchanged names if MiNT is running.
DCLACT '0' to '4' default is 0 (Dclick)
DCLSHIFTACT '0' to '4' default is 1 ([Shift]Dclick)
DCLSHIFTCTRACT '0' to '4' default is 2 ([Shift]^Dclick)
DCLSHIFTALTACT '0' to '4' default is 4 ([Shift][Alt]Dclick)
The value is the number of the action Appman should perform
at once after double clicking on an object in the desktop's
window. The actions are numbered accoding to the popup menu,
which is action '0' itself. So '1' is 'show', etc..
MESSAGES '0' to '15', bitfield (default all)
Which messages should Appman show you in some Alertbox?
1 process not found
2 command not found
4 Gemini (or other AVserver) isn't running
8 DragDrop error messags
REQUESTS '0' to '15', bitfield (default all)
Wich questions should Appman ask you
1 copy files (icon dragging)
2 run a command (icon dragging)
4 default Application dialog (if not this is a cancel)
8 command not found, try to run it anyway?
AVVALIST GEMINI
Desktop replacements or main applications dealing the AV
messages: a list of processes to send std AV messages to,
the first one found will receive them
This internal entry is replaced with the environment variable
$AVSERVER.
DDLIST UNIDESK,NEWDESK,DESKTOP
Desktop replacements, used if none of the applications from
AVVALIST could be found.
This is a list of processes to send standard DragDrop messages
(corresponding the VA protocol messages) to, the first one
found will receive them.
- to be continued
Significant Extensions
Some keywords in appman.inf are kind of variables for lists of
filename extensions. Here follows the list with the default values.
If 'CASESENSITIVE' is 0 all extensions are turned to uppercase, the
builtin ones, shown here too.
The extensions here are used by appman to check wether a file is an
archive, executable and so on. Shell and other scripts without an
extension or one not mentioned in one of the variables, are recognized
by the '#!' magic starting the first line. The program and first
argument to run it is taken from this line, of course. So you needn't
mention any possible script extensions in PROGSUFFIX nor apply the
programs to wildcards made from this extensions.
Executable binary files without extensions are recognized by a magic
too, and handled like 'TOSSUFFIX' files.
EXECSUFFIX app,prg,gtp,ttp,tos
a program, executable by TOS
This variable is used to find commands without specified extensions
too.
GEMSUFFIX app,prg,gtp
an AES program (you should add 'acc,acx' there under MultiTOS
if you have no environment Variable '$GEMEXT' with these
extensions)
TOSSUFFIX ttp,tos
a program not using GEM
TPSUFFIX ttp,gtp
a program taking parameters (not used this time)
PROGSUFFIX cmd,bat
A file executed by an interpreter. This maybe a program, or sort of
project file, etc. Executable scripts (like a shell script, or a
makefile) you needn't mention here, the are recognized as executable
by the '#!' magic as first two bytes in the file.
You can add 'acc,acx' here if you have some program in your
environment to start accessories without rebooting - like "The
Chameleon". You won't need this running MUltiTOS.
Of course you will have to add an 'execute'-line with these
extensions here as patterns and the program or process to call
in the 'appman.inf' file.
SAPPSUFFIX
Single APPlication SUFFIX list: There are files only a special
application can deal with. This variable is a list of extensions in
names of those files; e.g. a 'document file' of word processor, etc.
After a double click on a file with an extension listed here the
'edit' commandline of the pattern matching this extension gets
executed immediately. No Popup will appear.
PACKSUFFIX lzh,arc,gz,*z,zoo,zip,lzs,tar
a packed archive which is to not to 'execute' but to 'extract'
BINSUFFIX a,lib,o,fli,rsc
a non printable binary file (extensions not mentioned in
EXECSUFFIX, SAPPSUFFIX, PROGSUFFIX or PACKSUFFIX)
- to be continued
Default Applications
There are 4 actions supported by the Appman Popup for every
double clicked file. One, 'pack' always performs runnning the standard
packer program on the file. For the others there exists a default
program which is to run if none of the specified patterns matches the
filename. See default Application Dialog.
To attach a program to such a default application keyword or a pattern
the same syntax is used.
keyword maybe one of the following:
STDSHOW STDED STDPRINT
STDPACK SHELL
You should specify an application for each of these. See example
appman.inf file from the distribution.
- to be continued
Classes of Filenames
You can attach programs to filename patterns. Editing a
resource file is editing as well as writing a TeX file or a C source,
but I think you would use slightly different programs to do that.
See syntax how to write such a line for attaching a program, and
appman inf file from the distribution for examples.
You will have to specify a key char so that Appman knows for which
action this line is to be performed:
show key is '+' edit key is '&' execute key is '$'
and print key is '>'
Examples:
An 'edit'-line
&*.c memacs.app@MEMACS GEMIVA ARGP
An 'execute'-line, used as 'extract'-line, too:
$*.lzh lharc x
If you don't specify a 'commandline' (see syntax) for such a
key+identifier the last specified commandline gets used for this
pattern too, not regarding the key at all. See examples in the
appman.inf file from the distribution.
- to be continued
Syntax in File appman.inf
This is the general syntax used in appman.inf to attach a program to
filename pattern or install it as a default application.
identifier space commandline
identifier: {key pattern}|keyword
key: '+'|'&'|'$'|'!'|'#'
commandline: command space [{option space}] [{argument space}]
command: [program]|['@'process space protocol]
protocol: option
program
process
option
keyword
pattern
argument: token
token: {[^' ''\t''\n''\r''\0'','';''\'']}
space: ' '|'\t'
Keyword is one of the default applications and pattern is a FNRE.
If 'CASESENSITIVE' is not set to 1 + <n> all patterns are turned to
uppercase.
Option is one of the Appmans's internal options (mainly the protocol
used for process communication).
You can include spaces in arguments by using the `'' quotes like in
the DragDrop or ARGV quoting scheme. That is replace every `'' by two
ones, and quote tokens with whitespace in them.
Of course Appman can't know wether the receiver understands this
or not, unless it supports this AV protocol option.
FNRE
filename regular expression
* matches any number of any characters
? matches one character
[ begins a class of characters
[^ a class of characters to exclude
\ escape special meaning of next char
class: maybe
a range e.g [0-9], [A-c]
or a list e.g. [Afjp]
Internal Options
The following tokens may appear in the specified commandline
as 'protocol'. You have ot specify one after a '@<process-name>' token:
DRAGDR use a DragDrop communication
GEMIVA use Gemini's VA_START message
GEMIAV use Gemini's AV_STARTPROG message
XACC use a XACC message
or more general as 'option':
GEM this is an AES Application, makes use of GEM
only used together with CON flag this time
PAR (still unused)
CON run the program via AV-Server (Gemini)
and open console if not a GEM application;
By default the program is started via shel_write()
if possible - MultiTOS, MagiC - so you will have to
set an option for the working directory the program
is to run in usually.
Gemini and the AES may have different environment
variables set!
options to set the cwd of the program to run (default is APPL)
These options work only if shel_write is used, not together
with 'CON' option!
HOME $HOME variable
ARGP path to the (first of) argument(s) (most common)
CWD current working directory (see key commands, '^P')
APPL the application's path (default)
- to be continued
2. The Icon Window of Appman
The Appman icon window contains icons wich can be kind of alias
to any directory or file in your filesystem. It will have some icons
having a meaning to Appman only, too. In general these Icons have the
same functionality like icons put on the Desktop, but they are put
together in a kind of environment displayed in a window.
This is more a proposal to be included in the functionality of a
desktop replacement (e.g. Gemini) cause all the icon handling stuff
is already there. So it is rather restricted and moderate.
2.1 The Icon Window Key Commands
2.2 The Different Icon Images
2.3 The Generated Standard Icons
2.4 Click And Double Click On Icons
2.5 Drag Icons Around
2.6 Edit Icons
For creating of new icons see icon window key commands and drag into.
The (internal) directory icons must not represent a real tree. So an
icon directory could be connected with more than one icon at the same
time.
The window should work like other GEM windows you know. After
changing the window size the number of icon columns may change. It is
adjusted always to the new window size. So you won't need any horizontal
scrolling, which isn't possible at all. With the 'fuller' gadget you
can toggle between the last changed window size and the full size for
current number icon lines and columns.
You can make Appman opening the window automatically after starting
with a variable in the 'appman.inf' file. See 'WOPEN'.
Icon Window Key Commands
The key commands should be compatible with Gemini's as far a
possible. Try key [Help] with the Icon window topped.
Non control characters are added to the 'select icon string'. The
first icon's name matching this string gets selected. This is not case
sensitive by default (see CASESENSITIVE). The string is displayed in
the window's info line.
Special actions:
^Q quit (if Appman is running as an accessory only the
window is closed)
^H make ST-Guide display this manual (Appman tries to
start 'ST-Guide' if not running yet)
^L reload inf files (e.g. after editing them)
^S,[Alt]S save icons - a file 'appmanic.inf' is generated,
in the same directory as 'appman.inf' was found.
It will be read in on the next start automatically
by Appmann, or after the '^L' - load command.
In this file the window size and position is
stored, too.
^P set path (cwd) - of course this makes sense only in a
MultiTasking environment, where an Acc can start
a process in a certain working directory.
But it will show the cwd with the file selector if
setting isn't possible.
The window actions:
^U, [Delete], close window
^D
[Backspace] show 'parent' Icon directory or close window
if none; if there is a 'select icon string', it
will delete the last charcater, and have no
effects on the window itself.
[Home] scroll the window to the first icon
^[Home] move the window to the default position and size
[Undo] reset the 'select icon string'
[Escape] deselect the icon and reset the 'select icon string'
Cursor up/down scroll the icon window if possible
^I, [Tab] with no icon selected: show some Appman infos
(paths, memory, etc)
The icon actions
^I, [Tab] with icon selected: show info (like edit this time)
Cursor l/r select next/previous icon, or first if none is
selected
[Return] 'execute' (simulate a double click on) the selected
icon
^E edit Icon (see edit icons)
^N, [Insert] create a new Icon - A dialog box will ask wether to
insert just an icon or to create a new icon
directory. It will not work if there are already
16 icons in the current directory. The edit Icon
Dialog will appear at once.
[Shift][Delete],
^[Delete], ^? delete selected icon
Icon directories are not deleted with this command
but (recusively) marked as deleted. To get rid of
them save the icons and make Appman read the inf
files in again. So an icon directory connected
with more than one icon doesn't get lost.
All other control charcaters (including [Alt]<key> etc.) are sent to
Gemini via AV protocol message.
- to be continued
The Icon Images
There are 8 different icons builtin in Appman. 7 of them
you can use as you want, though they look like representing
some different functions.
Internal Appman directories
Path Icon - directory alias
File Icon - file or process alias
Appman directory
internal Appman
icon directory
In most cases it is better to use different icons for Appman's
own directories and directories in your file system. But Appman
itself makes an exception form this when generating the
Automaticly Generated Icons.
You can insert links to any other icon directory in every
icon directory editing the 'icon inf' file by hand. The icon directories
must not represent a real tree.
back to parent
directory
The 'back to parent directory' icon is generated automaticly
in every new icon directory; you can't change it's image nor it's
position in the window.
Path Icon
Path
Icon
A path icon represents any path (root directory of any drive, or a
directory anywhere in your file system). Double clicking this icon
should force the desktop (e.g Gemini) to open a window and show the
directory there.
File Icon
A file icon
represents any
file from your
file system or
just a process
that may be running.
When you are installing such an icon Appman will fill in a proposal
process name to call on double clicking this icon. If the file's name
has no 'GEM' extension this will be 'APPLHAND', and a double click
will show the Appman Popup on this >file<, unless it has some
executable extension. Shell scripts and other script files are handled
by the 'APPLHAND' pseudo process, too. The options defined with the
icon (e.g. CON, ...) will be used running a script like for any other
executable.
If you don't set the prefer message to process switch
(see edit icons) script files won't be recognized, and the the
file gets just executed (this will cause an error if the file isn't
executable at all). So normally you should select the button
prefer message to process and use 'APPLHAND' as process
name. But for a Gemini 'gin file' e.g. you should select the 'CON'
option and keep the prefer message to process switched off.
Automaticly Generated Icons
If Appman can't find a file 'appmanic.inf' after getting started
or after a load inf files command (^L), some default icons are
generated. These are alias icons to the root pathes of all drives
Appman could find in your environment. These icons are stored in some
icon directories 'Filesystem'. You can edit - that is change - these
icons, move or delete (some of) them.
Unless you save the icons ([Alt]S command) they will be generated
each time Appman is started or you make Appman reloading the inf files.
-to be continued
Click Icons
All clicks mentioned here are ones with left mouse button.
A single click selects an icon, e.g. for editing it.
A double click will 'run' the Icon like clicking on a icon in
the Desktop. Pressing [Return] or [Enter] key with a selected icon
will do the same. example
together with [Control] key pressed
edit Icon (now like in Gemini)
together with [Shift]
perform the 'show' action specified for the file this icon
is representing (if there is a file) - see Appman Popup
together with [Alt]
Let the Desktop (Gemini) open a dir window with the
path the icon's file is in. (This works with every
icon, that has a path specified, even a disabled path)
An untopped window will be topped unless you hold down the right
mouse button when clicking.
If your OS don't supports actions in background windows the click
is not sent immediately to Appman. See MOUSEBGTIMER in special keywords
for actions in untopped windows in any case!
-to be continued
%dclickex
Assume: the icon is an internal,
'message to process' is selected,
process is "CHMELEON". Commandline
is "C:\ST-GUIDE.ACX".
Then The Chameleon will load and
start ST-Guide Accessory.
drag icons
Dragging icons is rather context sensitive. It makes some difference
which icon is dragged onto what.
1. Drag Inside An Appman Window And Out
2. Drag some Icon(s) into the Appman Window
Drag Icons Inside And Out
Drag any icon onto an internal directory icon: e.g. an Drawer Icon
the dragged one is moved into that directory.
Drag any icon onto some empty space in the window:
the dragged one gets the last in the window (change order of icons)
You can move internal icons, not representing any path, only like
the two above examles.
Dragging an icon representing any path (file, directory)
onto a file icon or an application icon:
The target icon gets run with argument draged icon.
If the target is in the Appman window too, a dialogbox may
appear - see REQUEST.
onto a path icon
The object(s) represented by the moved icon get copied into the
directory target icon.
(This works only if target is outside Appman window, this time.)
onto a special Desktop icon
(works this time only via AV protocol, soon for DragDrop, too)
Trashcan
see 'onto path icon'
Clipboard
write the path the icon is an alias for into the clipboard
Shredder
the icons gets deleted
Drag Icons Into
You can move one or more icons at same time into the Appman window if
the program the icons come from support a DragDrop communication or
AV protocol:
onto an internal directory icon (Drawer Icon) or some empty space:
The icon(s) get(s) inserted there as new alias icons; you can edit
the new created Appman icons. See edit icon.
onto a file icon or application icon:
The target icon 'gets started' with argument(s) moved icon(s).
That means: the file represented by the target icon gets started
(like double clicked), the arguments are the object(s) represented
by the dragged icon(s).
onto a path icon
The objects represented by the dragged icons get copied to the
directory represented by the target icon.
Edit Icons
The edit Icon dialog (it looks not very nice ;-)) is divided
into 4 parts. Some are hidden or disabled sometimes, for easy usage.
So an 'internal' icon of course is not representing a file.
The first one is the alias part - what is the Icon standing for. An
internal one could be a 'message to process' icon or a new directory of
icons (see ^N key). A file alias icon can be a 'message to process'
icon, too - the process gets called if it is running, if not the
'file' is executed.
You can see the default action for an alias icon 'execute file',
or 'show directory' if 'path or 'file' is on. For non-regular files no
action than dragging is possible. You can't switch 'path or 'file',
Appman knows it better. :-)
If you change the alias from a path to a file some edit fields
are 'selected' to remember you on the changes you'll have to do.
If in a path alias icon 'message to process' is selected, the
process (e.g. 'TREEVIEW') is called with the directory as argument by
the 'protocoll' selected in the third part. If PAR-flag is selected
too, the 'wildcard' will be added. If there is no process or 'message
to process' is off Gemini or the Desktop is asked to show the directory.
There is a pseudo process recognized called 'APPLHAND' which calls
the Appman popup on the file aliased with the icon (this maybe usefull
for setup files like 'profile', 'mupfel.rc' etc., and is standard for
all icons which don't represent a GEM programm). If such an icon is an
alias for an executable, the 'Application Flags' are used for executing
this file.
When creating new icons Appman will insert an appropriate
application name for the 'process' field, by testing the extension of
the selected file. Any from GEMSUFFIX is regarded as a possible running
process, while all other are better to run by the APPLHAND builtin
functions. Any filled in name has no effect unless the
prefer message to process button is switched on.
The second part deals with the Icon itself (picture, text).
This part is always visible and editable. With a double click on the
'Icon color' field this part gets redrawed with a possibly new color.
The third with the commandline or wildcard if a directory. There
are some switches how to deal with the program/process, too.
These 'Application Flags' will be only visible if it could be of any use
to you. (see internal options for the meanings)
To get the edit field updated after scrolling and deleting some
chars just double click it. Think of the magic '@' which should never
appear on first position (this is an AES feature!). You can't insert
'tabs' here, and don't try this by editing the 'appmanic.inf' file.
But you can use the DragDrop quoting scheme her too, to include spaces
in arguments.
The last part are some exit buttons to end up the dialog in any
way.
- to be continued
3. How to Install And Details
3.1 How to Install Appman
3.2 The Files
3.3 Environment and Paths
3.4 Details About Messages Send And Received
3.5 How to Patch 'appman.acc' For Other Icons
3.6 Bugs And Features
How to Install
1. copy 'appman.acc' into root directory of your boot drive or
into directory '$ACCPATH'. appman.acc could be run using
'The Chameleon', too.
You can use any of the distributed binaries, running them as APPs or
ACCs just as you like it.
(e.g. copy 'appman2.acc' to MagiC's 'APPS' directory
'APPS\appman.app').
2. 'Anwendung anmelden'
(how is this called in usenglish by Atari, apply ?)
With Gemini:
appman.acc (or appman.app) is 'Application' for all files ('*')
No Gemini, but MultiTOS, etc.
callaman.gtp is 'Application' for all files ('*')
You will have to copy this binary to a suited place first.
3. Copy appman.inf to '$HOME' or '$ACCPATH' (the env variable must be
known to AES if you do so) or into root directory of your boot
drive.
4. Copy appman.hyp into the ST-Guide Hypertext directory.
5. Edit appman.inf, modify according to your environment and this
manual.
6. Reboot or run 'appman.app' and install the icons in Appman's icon
window as you like it.
Save the Icons using '[Alt]S' key command.
And if you want, make Gemini saving the Appman window state in
it's gin file. ([Alt]S with Gemini topped)
3.2. The Files
The distribution contains some files, first the different binaries:
You can distinguish them after renaming with the 'what' command.
appman.acc
appman2.acc small icons, not patchable
appman.app only for Multitasking (especially for running
Appman under MagiC)
You can rename it to 'appman.acc' of course, and use
the extended menu switches, see MENUS.
a 'readme' and the documentation 'appman.hyp'. The german hypertext
'appman_d.hyp' (german manual) and printable manual files with the
'.txt' extension. There is only an example appman.inf file, but no
'appmanic.inf' file, cause this depends too much on the local
environment.
Appman makes use of two files, the appman.inf file described in
chapter 1.3 Configuration File and the icon
inf file, 'appmanic.inf' described on next page.
The Icon Info File appmanic.inf
Be carefull editing this file. You can crash your system with a bad
icon inf file though Appman tries to detect bad inf files. Each char is
significant in this file esp. spaces between Tabs.
See the hints at end of this page!!
It's an ASCII file with maybe long lines (up to 1K), containing all
the icon definitions and values, and some information for Appman about
it and the window size and position.
Main delimiter is '^J', newline, so each line is an entry, either an
icon directory or an icon (if the line begins with '^I', TAB). TAB,
'^I' is the secondary delimiter between the single expessions.
An icon directory line starts with a '#', followed by its name.
The second expression is a number to identify this directory for a link.
An icon's line first expression is it's number (0 to 7), followed
by the icon char expression (the icon's colors and the character),
followed by a flags expression. The next is the icon's text (a least a
space char).
The following expressions depend on the icon's definition:
If it is a link to another icon directory - which is the only
interresting thing to edit this file by hand - it starts with an '@'
char, followed by the number of the icon directory this is a link to.
There is a rule that links to a directory in the same subtree, some
levels above must have a flags expression of '7' while links to other
subtrees have one with the value '3'. This is to prevent dangerous
endless recursive loops when deleting one of this links.
To add some links into the icon inf file, copy an already existing
icon and just edit the number after the '@' to make it pointing to some
other icon directory.
To change the color the icon is displayed with edit the icon char
expression, the second number in an icon line. The value here is the
ib_char value from an ICONBLK structure.
The other values there you shouldn't modify; you can uppercase or
lowercase the filenames, or move complete lines around, but you should
know what you are doing then.
3.3. Environment and Paths
Appman looks for the inf files (appman.inf, appmanic.inf) in
the path defined in the following AES' environment variables first,
$ACCPATH
$HOME
and cwd (mostly the current device's root directory) last.
Both files are assumed in the same directory. The appmanic.inf
inf file is generated (by key command) in the same directory as the
appman.inf file is found in.
$GEMEXT
$ACCEXT
These two variables' contents are added under MultiTOS to Appman's
builtin EXECSUFFIX list and GEMSUFFIX list, for Accessories can run by
Appman itself.
$AVSERVER
It's contents replace the builtin 'GEMINI' entry in Appman's
AVVALIST list.
$PATH
For Gemini needs a complete path to an application to run by
an AV_STARTPROG message Appman tries to get this path - if not
specified in the appman.inf file - by a shel_find() call. So the AES
should know your PATH environment variable as well as e.g. Gemini does.
3.4. Details About Messages
The Application manager is started (e.g. the popup menu) after
receiving a VA_START message (VA protocol) or a DragDrop 'ARGS'
message with a '-1' window handle or '-1' mouse coordinates.
A third way is to run the 'callaman.gtp' with one or more
arguments.
In these cases the mouse position (to place the popup) is inquired
by a graf_mkstate() call. The 'argument' is a list of 'objcets' to
perform some actions on. The first one is used to select the command
to run. This is done by using the extension (see SUFFIX) and the list
of patterns from the 'appman.inf' file. Scripts starting with '#!' are
handled as to expect. To detect the pressed [Shift] key combinations
the kstate variable (DragDrop) or the graf_mkstate() call is used
(VA_START).
An application using this feature should send those messages after
any double click on an object (icon) it can't handle itself, or having
to do with executing, editing etc.
A new Icon is inserted in the icon window after an 'VA_DRAGACCWIND'
message (VA protocol), or a DragDrop message with msx and msy
values > 0 and the Appman's window handle.
Outside dragged icons start a DragDrop communication ar an AV
communication. A VA answer 'UNKNOW OBJECT' will is always force
Appman to use a DragDrop message, while this is tried after an
'THAT IS A WINDOW' answer from AV server first.
-to be continued
3.5. Patch Icons
Here are some details describing how to patch the binary file
'appman.acc' to make it using other Icons.
- The maximum size of an icon image is 32 * 32 pixels.
- Only one color icons are posible.
- The width of an icon image must be something like n * 16 pixels.
- All coordinate values you fill in there are numbers of pixels.
- The text coordinates should not place the text above the
object, i.e. if they are negative and you add the 'ib_xicon',
'ib_yicon' value, the results should be 0 or positive then. If not,
an appman's routine will do that.
In the binary you'll find a string "ICON$&\0". After the null byte,
you should be at an even address, where the icons' datas start. That
stuff is put in 16 arrays of 32 unsigned longs each. This is the
reason you can't exceed he 32 * 32 pixels size of an icon. The icons
are put there in the order you have in the 'edit Icon' dialog. The
last one is the 'return' icon.
The first array is the first icon's mask, the next it's image, and
so on. After the last's (8th) icon's image data you'll find the string
"&$". If you are going to overwrite it something went wrong.
You will find another string in the binary: "ICONBLK$&\0". After
the null byte - even address - begins an array of 8 "ICONBLK"
structures. After the last entry you'll find a string "&$" again.
You will have to fill in there the values of:
ib_xchar, ib_ychar, ib_xicon, ib_yicon, ib_wicon, ib_hicon,
ib_xtext, ib_ytext, ib_wtext, ib_htext
for each of the structures according to your icons.
All icons including their text should fit in a rectangle calculated
from the first icon (regarding it's size and text coordinates).
This is not a very simple game, I know, but maybe someone writes a
program that uses a resource file you created with the needed
structures to make this patch.