@DATABASE M&M.guide
@INDEX    myIndex
@REMARK   $VER: 3.130 (11.02.95)
@REMARK   © by Axel Sodtalbers, Göttingen, Germany.
@REMARK ----------------------------------------------------------------

@NODE Main "Menus & More Help Guide"

                     Menus & More Version 3.13

              © 1992-95 by @{"Axel Sodtalbers" link Axel}, Göttingen, Germany




                            @{" - H E L P - " link AboutHelp}


@{" Copyright              " link Copyright}
@{" Installation           " link Installation}

@{" About Menus & More     " link AboutMM}

@{" The M&M Editor         " link MMEditor}       @{" The screen of MMEditor  " link EdScreen}
                                @{" The windows of MMEditor " link Windows}
                                @{" The menus of MMEditor   " link AllMenus}
@{" The M&M Player         " link MMPlayer}

@{" The MMReq tool         " link MMReq}
@{" the MMAnalyse tool     " link MMAnalyse}

@{" The examples           " link Examples}
@{" Known errors           " link Errors}
@{" The future of M&M      " link Future}



                        @{" Deutsche Anleitung " link MainD}

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE Copyright "Copyright - Your rights"

COPYRIGHT 1992-95 BY AXEL SODTALBERS, GÖTTINGEN, GERMANY.

ALL RIGHTS RESERVED.

NONE OF THE PROGRAMS MAY BE INCLUDED OR USED IN COMMERCIAL PROGRAMS
UNLESS BY WRITTEN PERMISSION FROM THE AUTHOR.

NONE OF THE PROGRAMS MAY BE MODIFIED IN ANY WAY. THIS ESPECIALLY
INCLUDES CHANGING THE COPYRIGHT NOTICES OR REMOVING ANY OF THE
SHAREWARE RESTRICTIONS.

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 CAN NOT BE MADE RESPONSIBLE FOR ANY
DAMAGE WHICH IS CAUSED BY USING THESE PROGRAMS.

The files created with M&M are freely distributable.

The programs "MMPlayer", "MMReq" and "MMAnalyse" are for
non-commercial distribution only.

The menu-projects created by this unregistered version of "MMEditor"
are showing a requester at every start. If you like M&M and you plan
to use the menus created with it, you have to register.
After registration, you will get a dongle-file which will prevent
the requesters from appearing.

You can access a registered full version of M&M by

    Axel Sodtalbers
    Phillip-Reis-Strasse 2-49
    37075 Göttingen
    Germany

  -----------------------------------------------------------------
  |                       |  If a formatted disk   |  otherwise   |
  |   F E E S             |  and a SAE is enclosed |              |
  -----------------------------------------------------------------
  |                       | International |   GB   | Intern.| GB  |
  |                       |---------------+--------+--------+------
  |                       |               |        |        |     |
  | REGISTRATION          |    US$ 20     |   £10  | US$ 30 | £15 |
  |                       |               |        |        |     |
  ------------------------+---------------+--------+--------+------
  |                       |               |        |        |     |
  | UpGrades/UpDates      |    US$ 10     |    £5  | US$ 20 | £10 |
  |                       |               |        |        |     |
  -----------------------------------------------------------------

  If possible, pay cash or use an euro-cheuqe!

  Bank: Sparkasse Aurich, BLZ 28451050, Konto Nr. 111008462

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE AboutHelp "About this help guide       [V3.130 (11.02.95)]"

This is the Commodore Helping System AmigaGuide (R).
To get more information about it, click the HELP gadget above or
press the H key.

When running the M&M Editor you can call this guide in two ways:

  1. by pressing the HELP key.
  2. by selecting a menu item while pressing the HELP key. You will get
     specific information about the selected menu item.

You also can call an @{" Index " link myIndex}.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE Installation "Installation of Menus & More"

You can easily install M&M by executing the M&M project

   Install.M&M

It's in the M&M drawer and can be started by double-clicking.
After the menu screen appears, select "Start Installation" button
or press the enter-key.

The main installation routine is now based on an ARexx skript -
so please launch the ARexx-System before starting the installation!

If you don't use ARexx, you have the chance to run a "normal"
AmigaDos based skript by selecting the pulldown menu
'Install without ARexx'.



General notes about the files used by M&M:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Please notice that the "MMEditor" program is calling the following files:

    - "M&M.config"      the configuration file.
    - "M&M.icon.info"   the default project-icon used by MMEditor.
                        Change it, if you want...
    - "M&M.guide"       The AmigaGuide file - the text you are reading
                        just now...

All these files should be in the same drawer as all M&M programs!


All projects in the "Examples" drawer are calling the directory

    "MM:Examples"

It should be assigned in the user-startup file in the S: directory:

    Assign MM: DH0:Tools/M&M      (for example)

This is done automatically if you use the installation routine
'Install.M&M'.


The following libraries are used:

    asl.library           Version 36+
    AmigaGuide.library    Version 34+
    diskfont.library      Version 33+
    rexxsyslib.library    Version 36+

They should be in the LIBS: directory.

Some example projects are calling the original Commodore "ED"
from Workbench 2.x and higher. It should be in the C: directory.


@{"Complete overview of all files" link FileList}

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE FileList "List Of Important Files"

The following files should be in the M&M directory:


MMEditor                The Menus & More editor program.

MMPlayer                The Menus & More player progrmm.

MMReq                   A tool for usage in dos-scripts.

MMAnalyse               A tool for writing the names of all
                        screens used by a M&M project.

(M&M.config)            The MMEditor's configuration file. If not
                        present, MMEditor will use it's built-in
                        standards.

M&M.icon.info           The default icon used by MMEditor.

M&M.guide               The AmigaGuide file - this text.

ReadMe.guide            A short introduction guide.

Install.M&M             Installation routine for M&M (uses ARexx!)

Deutsch                 German catalog files

Examples (drawer)       Example menu projects.


@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE AboutMM "About Menus & More"

What can I do with Menus & More?

   With Menus & More (M&M) you are able to create graphic orientated
   screen menus. Once you have installed your own menu, you can easily
   call many programs from one central screen. It's just like designing
   your own graphical user interface without doing any programming.
   All you have to know is how to start your programs from CLI.

   Because of the great amount of options, you are able to produce
   even more than just menus - as the name of program indicates!


How are these menus constructed?

  The basic of all menu projects are screens. These screens are
  nothing else than simple IFF pictures, which can be painted
  easily with programs like DPaint (TM) or similar.
  The screen contains the menu as a picture: Every option to be
  selected has to be drawed as a button. Now you have to tell M&M
  the name of the screen, where the buttons are and finally what
  should be happen, if the menu's user clicks on a button.


Based upon a screen, you can make use of the following elements
within a menu project:

  buttons       the (painted) buttons mentioned above.
                After selection, a command given by the creator
                of the menu will be executed.

  menus         the original Amiga Intuition pull-down menus.
                A command is executed after selection, too.

  displays      a status text on the screen. You can display
                the time, date or the free amount of ram.

When creating and editing a menu with MMEditor, every element
(screen, button, pull down menu and display) has its own window.
Cnf. @{"the MMEditor's window" link Windows}.


Overview:

                        S C R E E N S
                       /      |      \
                   buttons  menus  displays
                      |       |
                   command command


How can I create such a menu project?

  You have to use the @{"MMEditor" link MMEditor} program for this purpose.
  Created menus will be stored as menu project on disk. This project file
  contains all information necessary to build the menus. For example
  the filenames of the iff pictures used in the project, which commands
  shall be executed and so on.


How can I run the menu?

  The menus are executed with the @{"MMPlayer" link MMPlayer} program.
  It loads all necessary files and "plays" the menu.


Another overview about the creating and running of a menu project:


                         ------------
      IFF pictures ----> | MMEditor | -----> creates ------
      (=screens)         ------------                    ||
          |                                              ||
          |                                              \/
          |                                       ----------------
          |                                       | menu-project |
          |                                       ----------------
          |                                               |
          |                                               |
          |              ------------                     |
          --- loads --> | MMPlayer  | <------ loads -------
                         ------------
                              ||
                            plays
                              ||
                              ||
                              \/
                             user

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE MMEditor "MMEditor - the Menus & More Editor"

With the help of the MMEditor program, you are able to create
good looking graphical menus.

Start from Workbencch:

  - by double-clicking the MMEditor icon.

  - by clicking on a menu project icon, holding the shift-key
    and double clicking the MMEditor icon. The given menu project
    will be opened automatically.

  Note: you can edit the @{"MMEditor's tooltypes" link EdToolTypes} when working
        with the Workbench.


Start from CLI:

  - by typing   1> Stack 8192
                1> MMEditor


After the MMEditor has been started, the @{"MMEditor's screen" link EdScreen} will be opened.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE Locale "Locale.library"

Normally, the language used within MMEditor is english. But
you can use other labguages. Currently, only @{"german" link LocaleD} is available.

So, if you want to create a catalog for another language,
please @{"contact me" link Axel}! As a donation, you will get
a free registration...

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE EdToolTypes "ToolTypes of MMEditor"

You can change the following tooltypes within the icon's "Information"-
requester:


  WINDOW=doswin

    "doswin" has to be a legal desciption of a AmigaDos window.
    The outputs of the @{"start commands" link StartComm} will be printed into this
    window.

    Preset: CON:0/0/400/200/M&M/AUTO/CLOSE/WAIT


  SCRWINHEIGHT=pixel

    You can change the height of @{"screens window" link ScrWin} with this tooltype.
    "pixel" has to be greater than 80.

    Preset: 100


  WINHEIGHT=pixel

    This tooltypes indicates the height of all @{"other windows" link Windows} (buttons,
    menus and displays). "pixel" has to be greater than 160.
    When pixel is set to -1, the windows will fit perfectly below the
    screens window.

    Preset: -1


  PLANES=n

    To change the number of planes used by the MMEditor screen.
    1 means 2 Colors
    2 means 4 Colors and so on.

    -1 means: use the same number of planes like the workbench does

    Preset: -1


  FILEBUFFER=bytes

    A bigger filenbuffer uses more memory but speeds up the disk
    operation (load/save).

    Preset = 1024


  ERRORREPORT=ON/OFF

    If an error occurs within a test run, a complete error message
    will appear, if this tooltype is set to ON.

    Preset: ON


  PICPATTERN=dospat

    The file requester which appears when a new IFF picture
    is opened, uses an AmigaDos pattern to match out all
    non IFF files. When the preset remains unchanged, only
    files with the suffix ".pic" will be displayed in the file
    requester.

    Preset: #?.pic


  SHELLSTART=comseq

    This command string will be executed after the menu item
    @{"Extras/Shell" link LaunchShell} has been selected in the MMEditor.

    Preset: NewShell "CON:0/0/400/200/CLOSE/MMShell/SCREENMMEditor


  SHELLSTACK=bytes

    If your favourite shell needs a bigger stack, tell it MMEditor
    by this toolype.

    Preset: 4096


  EDSTART=comseq

    This command string will be executed after the menu item
    @{"Extras/Editor" link LaunchEditor} has been selected in the MMEditor.

    Preset: C:Ed FROM:CON:0/0/400/200/AUTO/CLOSE/Editor/SCREENMMEditor


  EDSTACK=bytes

     cnf. SHELLSTACK


  PAINTSTART=comseq

    This command string will be executed after the menu item
    @{"Extras/Painting" link LaunchPaint} has been selected in the MMEditor.

    Preset: DPaint:DPaint


  PAINTSTACK=bytes

    cnf. SHELLSTACK

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE EdScreen "MMEditor's work screen"

Regarding mode, resolution and colors, the screen opened by MMEditor
is a clone of the workbench screen. But there are (currently!) two
exceptions:

  - MMEditor always uses an eight pixel height topaz font.

Hopefully, this disadvantage will be banished in some of
the next versions :-)

You change the number of planes used by the editor's screen by
editing the @{"PLANES" link EdToolTypes} tooltype.

The screen is a public screen with the name 'MMEditor', if you started
it twice (why?!), the name is 'MMEditor.2' and so on.

There will be one @{"window" link Windows} opened on the screen for every element, which can
be used in a menu.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE Windows "MMEditor's windows"

The screen of MMEditor is devided into different windows:

  @{" the 'Screens'  - window " link ScrWin}

  @{" the 'Buttons'  - window " link ButWin}
  @{" the 'Menus'    - window " link MenWin}
  @{" the 'Displays' - window " link DisWin}

The screens window is open at any case.

The three other windows will be opened, if

  - a screen is loaded by choosing 'New' or 'Insert' in the screens window.

  - a project has been @{"opened" link Open}.

This is, because you can only create a button or install a pulldown menu
if you have already selected the basic iff picture, the screen.

The width of the windows will be the same as the width of @{"editor's screen" link EdScreen}.
However, their vertikal positions are freely adjustable. The settings can
be stored in the @{"configuration file" link SaveConfig}.

The height of the windows can be changed by using the @{"tooltypes" link EdToolTypes}.

When using the standard settings of the window's position, you can
make out the current screen at every time.

By using the function keys, the windows can easily be switched to the
front of the screen:

  - [F1] to bring the 'Screens' window to front.
  - [F2] "    "    "  'Buttons'    "   "    ".
  - [F3] "    "    "  'Menus'      "   "    ".
  - [F4] "    "    "  'Displays'   "   "    ".

You can also switch the button-, menu- or displays-window on or off
either by clicking the CLOSE gadget in the upper left corner of the
window or by selecting the menu item @{"Window On/Off" link SwitchWins}.

The scrolling of a listview can also be done by pressing the
cursor up- or down-key (jump to the start or end by shifting).

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE ScrWin "Screens-window"

You can manage all affairs concerning the menu's screens within
this window.

A listview of all screens used by the current menu will be displayed,
the actual screen will be highlighted. Like any listview in MMEditor,
you can choose the actual screen by using the cursor up or down keys.


With 'Add', you can add a new screen to the list.

With 'Insert' you can insert a screen before the actual screen.

With 'Clear' you can delete the actual screen from the list.


After clicking on 'Edit' you have the chance to set further parameters:

  - the @{"font" link ScrFont} used by the screen.
    After choosing a new font, the iff picture will be reloaded.
    This is currently the only way of linking the new font to the
    screen.

  - whether the title shall be displayed or not

  - a command BEFORE the screen is loaded.
    The AmigaDos command typed in this field will be executed,
    before the iff picture is displayed.

  - a command AFTER the screen is loaded.
    The AmigaDos command typed in this field will be executed,
    after the iff picture is displayed (huh?! shocking!)


After 'Info' is selected, a requester with some information
about the actual screen appears. If you plan to use another screen
(concerning resolution and depth) while all buttons, menus etc.
shall remain, you can 'select a new one'.


@{"More hints concerning screen" link ScreenHints}

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE StartComm "Startup commands"

M&M gives you the possibility of starting a dos command before a menu
screen ist loaded and one after loading. This can be very useful for
initialization purposes.

Example: It is a good idea to assign a directory to a logical device
in order to link all filenames to this device.

        command before loading: Assign MyMenu: SYS:M&M/Data

        Examples for filenames used within the menu project:
          MyMenu:FirstPicture.pic       (a menu screen)
          MyMenu:Info.txt               (a textfile)

So it's easy to change the directory containing the necessary files
without changing the whole menu.

When assigning MyMenu: to "" (via Assign MyMenu: ""), MyMenu: will
always point to the current directory. I did so within the 'First!.M&M
project.

You are also able to run scripts via 'Execute script' as startup command.

Every time you load a project containing startup-commands into
the MMEditor, you will be asked, whether these commands shall
be executed or not.


Please notice the output of your startup commands:

   If you started the menu from workbench, you can select the
   output stream via the @{"WINDOW tooltype" link EdToolTypes} within
   MMEditor or MMPlayer:

        WINDOW=CON:x/y/b/h/Name/Option          (cnf. your DOS manual!)


   If you started it from CLI, the CLI window will be the
   output stream.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE ScrFont "Font used by a menu screen"

Every screen used within a menu can have it's own font. This font
is used

  - in the screen's title

  - the pulldown menu titles

  - the @{"displays" link DisWin}

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE ScreenHints "Some Information about the menu's screens"

The screens are nothing else than IFF pictures, which can easily be
created with programs like DPaint(TM) or similar. Every resolution
and depth can be used, AGA modes are supported.

The menu's project file contains information about the height, width,
number of planes and the display id. You can look at these values by
selecting 'Info' within the screens window. Because of the storing
of these values, it is not possible to change any of these values
(by adding a plane or using a bigger resolution for example) after
the screen is already part of the menu. If done so, M&M can't
open the screen correctly.
So, for changing a screen, you HAVE to use the 'select a new one'
function within the info requester.

Another problem is the use of masking data. Please switch every
mask off before you save you menu picture to disk!

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE ButWin "Buttons-window"

This window will only open, if a menu screen has been loaded.

The name of the actual button is displayed below a listview gadget
which contains a list with the names of all used buttons.

'Add'           a new button at the end of the list. After selection,
                you have to @{"set the button's area" link GetButton}.

'Insert'        a new button before the actual button in the list.
                You have to set the button's area, too.

'Clear'         deletes the actual button from the list.

'Edit'          let's you reset the button's area.


You have to tell MMEditor, which @{"command" link Commands} should be done
after selectingthe current button and whether there should be a @{"parameter request" link Requests}
before executing or not.

'Select'        the argument passed to the action.
                This can be a file like an AmigaDos command or
                an ARexx programm or the name of a screen, a
                AmigaDos return value...

'Option'        you can set more options concerning the selected command.
                Some commands like 'Quit Menu' don't have any options, so
                the gadget will be ghosted.

'Key'           the button can be selected either by clicking or by
                pressing a corresponding key. Type the key, which
                represents the current button, into this field. If
                you want to use a special key, select the 'Key' gadget.

@{"Click here to get more hints about buttons!" link ButtonHints}

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE GetButton "Setting the button's area"

Setting the button's area is done in following way:

  1. The menu screen will be brought to front.
  2. Select the upper left corner of the button with
     the left mouse button.
  3. Hold left mouse button
     (if you want to select another corner, just press the esc key)
  4. go to the button's lower right corner.
  5. release mouse button.

It's not always an easy job to mark just the right area of the button.
To make is simplier, a function called 'Lasso' has been implemented.
You switch in on (and off) with the space bar. Once switched on, you
only have to mark the approximate area, the button will be searched
automatically. Just try it!

With the F10 key, you can the switch the screen's title while
setting the area of the button.

After the setting procedure, the button's name will be requested.
You cannot use a name twice within a list.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE ButtonHints "Some clues concerning the menu's buttons"

There is a problem when you insert a new button in the list: The IDs
of the gadget are not re-calculated every time a new button is inserted.
So it is possible that a button will not be recognized while
test-running.

The problem can be solved in two ways:

  If you have only one screen: Save the project, select 'New Project' and
  open it again. A test-run will do fine now.

  If you have more than one screen, it is easier: just select another
  screen, then select the "fault one". Test-run will be working again.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE MenWin "Menus-window"

This window contains a list of all intuition pulldown menu items
used within the M&M menu.

To create such a pulldown menu, select @{"'Edit'" link GetMenus}.

Single items can be 'Insert'ed or 'Clear'ed.

After editing the pulldown menu, you have to set @{"the request" link Requests} and
@{"the command" link Commands} linked to the different items - just like the way you
did it in the @{"buttons window" link ButWin}.

@{"Click here to get some hints about menus!" link MenuHints}

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE GetMenus "Editing the pulldown menus"

The actual menu screen (your iff picture) will be zapped into the front.

Then a window is opened: Here you can edit your personal menu. All you
have to do is to type the title and the linked items. With 'Add' you
can add a new title to your menu or 'Insert' a new one.

You can set a menu selection key (right Amiga + X, for example) for
every item.

Jump with the enter key from one item to another, for jumping to
the selection key field use the TAB key (shifted to jump back).

With the cursor left and right key, you can jump from one title
to the next.

By selecting the 'Font' gadget, a new font concerning (only!) the
menu items can be choosen. The font of the menus titles is choosen
in the @{"screen edit window" link ScrWin}.

You are also able to 'Clear' one, all or none item(s).


Please notice:

  The maximum number of titles to be edited is currently 15.

  The maximum number of items is currently set to 15, too.
  BUT: if you use a menu screen with a very small height, the
  space for the editing window is limited - thus the number
  of editable items will be decreasing!

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE MenuHints "Some Hints concerning pulldown menus"

The highest number of editable menu title is 15.
Every title can have 15 items at maximum.

No more hints currently...   :-(

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE DisWin "Displays-window"

'Add'           adds a new status display to the list.

'Insert'        inserts a new display into the list.

'Clear'         clears an existing display.


Set up a new status display in the following way:

  Select 'Edit', a window will appear on the menu screen.
  Now you can change

  - the x- and y-position of the text,

  - one string appearing before the specific information to
    be displayed and one string after and

  - the display modus (free memory, time or date), which sets
    the specific information mentioned above.


Set the x- and y-position easily with the mouse by clicking
'New position'.


M&M will construct the status display in the following way:

  [string before] [ ] [display] [ ] [string after]

  Example:      before: "Time:"           \
                 after: "o'clock"          > "Time: 16.24.13 o'clock"
                  mode: "Time - 16.24.13" /

Please notice the space character between the different elements.

And notice too that you cannot change the display's color (it is
the complement of the color underlying the display - try it!).

The last worth noticing is the fact that the font of the display is
the @{"menu-screen's font" link ScrFont} (which you can set in the screen's edit window).


@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE AllMenus "Menus of MMEditor"

The menu of MMEditor is devided into four parts:

1.Project         @{" New                   " link New}
                  @{" Open...               " link Open}
                  @{" Save                  " link Save}
                  @{" Save as...            " link Save}
                  @{" Install...            " link InstallProject}
                  @{" About...              " link About}
                  @{" Help                  " link AboutHelp}
                  @{" Quit...               " link Quit}

2.Testrun         @{" from current screen   " link RunCurrScr}
                  @{" from first screen     " link RunFirstScr}
                  @{" Execute Commands...   " link PlayerModes}

3.Settings        @{" Buttons window?         " link SwitchWins}
                  @{" Menus window?           " link SwitchWins}
                  @{" Displays window?        " link SwitchWins}
                  @{" Create Icons?           " link CreateIcons}
                  @{" Save Settings           " link SaveConfig}

4.Extras          @{" Copy commands...     " link CopyCommands}
                  @{" Launch Shell         " link LaunchShell}
                  @{" Launch Editor        " link LaunchEditor}
                  @{" Launch Painting Tool " link LaunchPaint}



@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE New "Project New"

Select this item to clear the current menu project from memory.

If the project has not been saved before, a requester giving you
the chance to do that, appears.

@ENDNODE


@NODE Open "Open project"

To open an existing menu project from disk.
Choose it in the file requester.

The following errors are possible:

   - the selected file is not a M&M file.
   - the selected file has an incorrect format.
   - there is not enough free memory.

@ENDNODE


@NODE Save "Save project (as)"

To save a menu project to disk.

If you are saving a project the first time - the file name is 'NoName.M&M' -
the requester will appear.

If your project already has a filename, you can

        'Save'          with the same name

        'Save as'       a new project with a new filename.

@ENDNODE


@NODE About "About..."

You will get information about:

  - the version of MMEditor you are currently using
  - the author @{"Axel Sodtalbers" link Axel}
  - the copyright
  - the free amount of memory

Furhter, you can get information about

  -     User: the registration entry
  - Internal: - name of the MMEditor's (!) public screen
              - number of bit-planes used by MMEditor's screen
              - language used by MMEditor (built-in or deutsch)

              - name of the MMPlayer's (!) public screen
              - name of the Player's ARexx-Port (used within test run)

@ENDNODE


@NODE InstallProject "Install Menu Project"

This function gives you the possibility to install your
created menu automatically in a very easy way. Just select,
in which drawer your new menu shall be copied and all
necessary files including screen iff-files and textfiles
with it. The filenames will be changed automatically.

It is also possible to include your menu into the user-startup
file in the S: drawer. The menu will then be executed automatically
after every (re-)start of your Amiga.

You can change the following options:

- Target directory              Select the target-directory by clicking
                                this gadget. If you want to create a
                                new drawer for your menu, just type in
                                the desired directory name.

- Create Icon?                  For project, screen and textfiles

- Copy Screen IFF-Files?        Copy all screens used by the current menu?

- Copy Text-Files?              Copy all textfiles used by the current menu?

- Insert in S:User-Startup?     For Auto-Start your favourite M&M menu
                                after your computer has been turned on or
                                reseted...

@ENDNODE


@NODE Quit "Quit..."

To quit MMEditor.

Do you really want to quit this fabulous program? (sniff!)  :-(

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE RunCurrScr "Testrun from current screen"

If you want to test the menu, select this item. The test will be
started at the actual menu screen.

Don't forget to implement a 'Quit' button or pulldown menu in your
menu by using the 'Quit menu' command! But you can stop the testrun
by pressing the ctrl- and the esc-key at any time.

@ENDNODE


@NODE RunFirstScr "Testrun from first screen"

This item has the same function as @{"testrun from current screen" link RunCurrScr}
except that the testrun will always start at the first screen in
the list.

Thus the selection will do the same than running the @{"MMPlayer" link MMPlayer} and is
a good opportunity to test your complete menu.

@ENDNODE


@NODE PlayerModes "Execute commands always/by request/never"

Here you can choose what shall happen if you select a button or
menu with a 'Execute dos command' or 'Switch to other screen' command
function while testrunning.

  - always              the dos command will be executed in any case.

  - by request          a request appears so that you can select
                        whether the command shall be runned or not.
                        This is recommended if your menu contains
                        "dangerous" functions like deleting files or
                        formating disks...

  - never               the dos command won't be executed.

The actual setting will be stored in the @{"configuration file" link SaveConfig}.

The @{"startup commands" link StartComm} (before and after loading the menu screen) are
concerned, too.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE SwitchWins "Switching a window on or off"

You can close or open any window - execept the screen window by
clicking the close gadget in the upper left corner or by selecting
just this menu item.

The three windows (button, menu and display) will only open if there
is a menu screen in memory (cnf. @{"the window system" link Windows}).
Thus these menu items are only selectable when you have loaded a
screen.

The status of any window (opened or closed) can be stored in the
configuration file by selecting @{"save settings" link SaveConfig}.

@ENDNODE


@NODE CreateIcons "Create Icons?"

If you want a project icon stored to disk together with you menu,
select this item.

If it exists, the icon called "M&M.icon" in the M&M directory will
be used - otherwise the standard workbench icon.

@ENDNODE


@NODE SaveConfig "Save settings"

After selecting this item, the current configuration of MMEditor
will be stored in the 'M&M.config' file in the directory, MMEditor
has been started from. It contains:

  - the @{"window's" link Windows} vertical position, opened or not

  - the @{"mode of executing commands" link PlayerModes} within a testrun

  - the position and size of the file-requester

  - the position and size of the font-requester

  - whether MMEditor shall @{"produce an icon when saving a project" link CreateIcons} or not

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE CopyCommands "Copy commands..."

It is very annoying to produce the same actions for many different
screens within one menu project. Too, it is no fun to create one
pulldown menu with the same function for every button.

Thus the possibility to copy commands between buttons, between menus
or between button and menus has been implemented.

After calling this function, a window containing to lists appears:
the left lists marks which function shall be copied,
the right one where to.

You can switch every list to a buttons or a menus list.

Use the cursor key alternatively to move whithin the lists:
up and down in the left list, left and right in the right one.

The copy will be done, if the 'Copy' gadget has been selected (huh? really?!)

If 'incl. Request' has been checked, the request will copied, too.

Leave the window via 'Copy and quit' or 'Cancel' (or press esc).

@ENDNODE


@NODE LaunchShell "Launch shell"

You can start a shell on the MMEditor's screen.

The exact command executed after this menu item has been selected
can be changed via the @{"tooltype SHELLSTART" link EdToolTypes}.

Preset is:

   NewShell "CON:0/0/400/200/CLOSE/MMShell/SCREENMMEditor

@ENDNODE


@NODE LaunchEditor "Launch editor"

You can start an ASCII editor from MMEditor.

The exact command executed after this menu item has been selected
can be changed via the @{"tooltype EDSTART" link EdToolTypes}.

Preset is:

   C:Ed FROM:CON:0/0/400/200/AUTO/CLOSE/Editor/SCREENMMEditor

IF C:Ed is the original Commodore Ed, it will be started on
the screen of MMEditor.

@ENDNODE


@NODE LaunchPaint "Launch a paint programm"

Finally, you can start a paint program - but remember that
a great amount of free (chip!) memory will be very useful
for this purpose!

Preset is:

    DPaint:DPaint

Change the command string by editing the @{"PAINTSTART tooltype" link EdToolTypes}.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE Requests "Requests"

Before a command is executed, M&M can ask the user
to give a parameter. This is done via requesters. The result will
be stored in an AmigaDos environment variable, thus it is easy to
use the user's parameter  within (mainly AmigaDos-) commands.

You can either use the AmigaDos command 'GetEnv' (within scripts) or
the '$' character placed before the name of the environment variable.
Please confer the chapter about environment variables (GetEnv/SetEnv)
in your AmigaDos manual to get used to this stuff!

A M&M request uses the following elements:

   - the requester type (1)

   - the requester text (2)

   - the name of the @{"environment variable" link ReqEnvs} (3)
     to which the request's result shall be stored


The following requester types can be used:

   - filename
   - directory
   - textline

   - yes or no          (command will only be executed only
   - okay or cancel     when user selects yes/okay)

   - information        (displaying the requester text only)


                                Overview:

--------------------------------------------------------------------------
Req.Type     | It appears        | Requester Text is | In the EnvVar     |
(1)          |                   | is (2)            | will be stored (3)|        |
=========================================================================|
FILENAME     | file requester    | requester's       | complete filename |
             |                   | title             |                   |
-------------|-------------------+-------------------+-------------------|
DIRECTORY    | file requester    | requester's       | directory name    |
             | (directories only)| title             | plus "/"          |
-------------|-------------------+-------------------+-------------------|
TEXTLINE     | requester with    | above the textline| text typed by the |
             | textline          |                   | user              |
-------------|-------------------+-------------------+-------------------|
YES/NO       | standard system   | requester's text  | nothing.          |
             | requester         |                   | comm. only if yes |
-------------|-------------------+-------------------+-------------------|
OKAY/CANCEL  | standard system   | requester's text  | nothing.          |
             | requester         |                   | comm. only if okay|
-------------|-------------------+-------------------+-------------------|
INFORMATION  | standard system   | requester's text  | nothing           |
             | requester         |                   |                   |
--------------------------------------------------------------------------


Notice: Whether your menu requests a FILENAME or a DIRECTORY,
        the selected filename  will ALWAYS be stored to the env.var 'MMFile' and
        the selected directory will ALWAYS be stored to the env.var 'MMPath'
        for an easy use within scripts. Use it within scripts!

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE ReqText "Requester's text"

The requester's text will appear as the title of the file requester,
above the textline to be edited or just within the standard system
requester (Yes/No, Okay/Cancel and Information).

The text within satndard requesters can be wrapped by using the
key combination

   LEFT AMIGA + CONTROL + j

while editing the requester's text. A linefeed character (LF) will be
inserted appearing as a [] character (but smaller!).

As a new feature (starting with V3.13) M&M offers the possibility
to use the character sequence || as a linefeeder.

    Example: Hello folks,||how are you?


Please confer the example menus.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE ReqEnvs "Environment variables"

AmigaDos handles so called environment variables. The contents of
those variables are stored to the logical ENV: device. It's easy
to get the information stored within them.

First, you can use the AmigaDos commands

   - 'GetEnv' to read the env.var.
   - 'SetEnv' to write into the env.var.

Second, you can access the information stored within the env.var
by using the string

   - "$nameofenvironmentvariable"

The text 'nameofenvironmentvariable' will automatically replaced
by the content of the env.var!

Example:

        Request: FILENAME       save to: myFile

                 Please select filename!

        Command: EXECUTE DOS COMMAND

                 type "$myFile" to prt:

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE Commands "Commands"

M&M can handle the following commands:

   @{"execute an AmigaDos command" link CommDos}
   @{"send an ARexx command" link CommRxx}
   @{"display a textfile" link CommTxt}
   @{"switch to another screen" link CommScr}
   @{"quit the menu" link CommStp}
   or no command.


 'Return': Shall M&M return to the menu's execution after the
           command has been runned?

'Options': To set more options concerning the selected command

 'Select': To select the command's argument, for example the
           AmigaDos/ARexx command itself or the name of the
           the screen M&M should jump to.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE CommDos "Execute a AmigaDOS command"

Use this command to run any Amiga program.
As you see, this command is the real KERNEL of M&M!

After clicking 'Select', you can influence the following options

  - the output window's @{"x- and y-position, width and height" link GetWin}.

  - the output window's title

  - Screen        : output window will appear on the MMPlayer's screen,
                    if not checked: on workbench.

  - Auto          : output window will only appear, if there is really
                    some text to put out.

  - Wait          : output window will be opened until the user clicks
                    the close gadget or presses ctrl+\.

  - A-Syncron     : the AmigaDos will be executed a-synron to the other
                    program, so the use is able to select the next menu
                    item, while this AmigaDos command is still running.

  - Stack:        : Some programs need more than the obligatory 4096
                    bytes of stack space. Check the program's icon
                    via workbench command 'Icons/Information' to find
                    out the needed amount of memory (or confer the
                    manual of your program).

  - SetWaitPointer: the mouse pointer OF THE MMPLAYER'S WINDOW (!!)
                    will be change when the concerning button has been
                    selected.
                    This options is disabled, when 'A-Syncron' is set.

  - close gadget,
    not draggable,
    not sizeable,
    no border,
    background    : concerning the look of the output window.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE CommRxx "Send an ARexx command"

To send any ARexx command or to execute ARexx scripts.

'Port' sets the ARexx port to which your ARexx command or script
shall be sent. Please notice that the port displayed within the
list need not to be ARexx ports!

If you want to execute an ARexx script, you have select "REXX"
as the port (stands for the 'RexxMast' programm, which should
be active while running the menu).

If you want to execute just one ARexx command line, you have to
set the 'command line' option.

Remember that the MMPlayer has an @{"ARexx port called 'MMPlayer'" link PlayerRexx},
which will be active while testrunning from MMEditor, too.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE CommTxt "Show a textfile (command)"

Shows an ASCII textfile.

After clicking 'Select', you can influence the following options

  - the textwindow's @{"x- and y-position, width and height" link GetWin}.

  - the font used in the textview window

  - whether the textwindow shall appear on the menu's screen or
    on the workbench

You can also easily select the textfile from the editing window.

The text display depends upon the program @{"'MMTextview'" link TextView} which is
currently not implemented as a stand-alone program (but will be
in future). Looking at the key functions, it is similar to the original
Commodore 'More' program. And it is a very old program which will be
re-programmed in the future.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE TextView "Textviewing with M&M"

After loading the ASCII file, there are the following options of
cursing through the text:

  SPACE (or LMB)        next page
  ENTER                 next line
  <                     first page
  >                     last page
  BACKSPACE             previous page
  q or CTRL+C           Quit textview
  h                     Help (back to textview by SPACE)
  F1                    show until 10% of text
  F2                    show until 20% of text
  (...)
  F0                    show until end of text

Jump to the next page by pressing the left mouse button.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE CommScr "Switch to other screen (command)"

Choose the screen you want to switch to by clicking 'Select'.
The list of all screens used within the current menu will appear.

If you just want to show another screen which is not used as a
menu screen, select 'other screens'. This will bring a file-requester
on the screen, where you can choose a IFF file. The display of such
a picture can be stopped by pressing the left mouse button or the space
bar. The screen will be closed and the menu's screen will be brought
to front again.

Please notice that the menu's screen will NOT be
closed while showing a picture, thus you will need enough space
for holding many screens (picture, menu's screen, maybe workbench...)
at one time memory.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE CommStp "Quit the menu (command)"

Quits the menu. Uh? Really? - Yes!

You can 'Select' a AmigaDos return value. There are presets like
OKAY, WARN, ERROR and FAIL (cnf. your favourite AmigaDos manual).

Notice: The menu will NOT be quitted, if 'Return' has been selected!

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE GetWin "Set the output window"

The values within the 'X', 'Y', 'Width' and 'Height' gadgets
are giving the window's position and measure.

Click 'Show' to bring the window on screen. Now you can change
position and measure directly. The window is closed after 'Close'
has been clicked.

@ENDNODE


@REMARK *****************************************
@REMARK *                                       *
@REMARK * Description of the M&M Player program *
@REMARK *                                       *
@REMARK *****************************************


@NODE MMPlayer "MMPlayer - the Menus & More Player"

The program MMPlayer is able to play menus created with the
Menus & More Editor MMEditor.

For this purpose MMPlayer opens a @{"public screen" link PlayerScr} and an @{"ARexx port" link PlayerRexx},
with the name 'MMPlayer' (or MMPlayer_1 if started twice, and so on)


Start from Workbench:


  - by double-clicking the MMPlayer icon. A file-requester appears.
    Now you can select a menu project to load.

  - by clicking on a menu project icon, holding the shift-key
    and double clicking the MMPlayer icon. The given menu project
    will be opened automatically.

  - by typing 'MMPlayer' as the default tool within the workbench
    Icon/Information window.

  Note: you can edit the @{"MMPlayer's tooltypes" link PlayerToolTypes} when
        working with the Workbench.


Start from CLI:

  - by typing   1> MMPlayer [projectname]


The running of a menu can be interrupted by pressing Ctrl+Esc (this
behaviour can be switched off by the @{"tooltype BREAK" link PlayerToolTypes}).

If there is still an open window on the menu's screen or another task
uses the screen and MMPlayer tries to close the screen, a message will
appear. Then the user of the menu has to close the window or stop the
task.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE PlayerToolTypes "ToolTypes of MMPlayer"

You can change the following tooltypes within the icon's "Information"-
requester:

  WINDOW=doswin

    "doswin" has to be a legal desciption of an AmigaDos window.
    The outputs of the @{"start commands" link StartComm} will be printed into this
    window.

    Preset: CON:0/0/400/200/M&M/AUTO/CLOSE/WAIT


  ERRORREPORT=ON/OFF

    If an error occurs while runnung a menu, a complete error message
    will appear - if this tooltype is set to ON.

    Preset: ON


  BREAK=ON/OFF

    Normally you can interrupt the execution of a menu by
    pressing Ctrl+Esc. If you don't want the user to do so,
    switch this behaviour off with BREAK=OFF.

    Preset: ON

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE PlayerRexx "MMPlayer's ARexx port"

MMPlayer will open an ARexx port automatically after start.
It has the name 'MMPlayer' (MMPlayer_1 for a second started
MMPlayer and so on).

It is recommended to look at the example ARexx scripts

        - Install.rexx       and
        - examples/RexxTest.rexx

You will find useful hints there about the usage
of the following commands!

Currently, the player's ARexx-Port knows the following commands:

(Note:  Int = number value
        Str = string value
       Bool = boolean value; 0=FALSE, 1=TRUE)   )



* COMMAND: Quit
  PURPOSE: terminates the menu's execution.
     ARGS: -

* COMMAND: MMRexxDebug [on:Bool]
  PURPOSE: Switching debug-mode. In this mode,
           every time, the player receives a rexx command,
           a requester is giving out this command and it's arguments.
     ARGS: on=0 no debugging
             =1 debug mode on.

* COMMAND: AlohaPlayer
  PURPOSE: Brings the Players's screen to front and activates it.
     ARGS: -

* COMMAND: PlayerToFront
  PURPOSE: Brings the Players's screen to front 
     ARGS: -

* COMMAND: PlayerToBack
  PURPOSE: Brings the Players's screen to the background.
     ARGS: -

* COMMAND: PlayerPos [deltaX:Int] [deltaY:Int]
  PURPOSE: Moving the Player's screen
     ARGS: deltaX - relative horicontal movement
           delatY - relative vertical movement

* COMMAND: SwitchTitle [on:Bool]
  PURPOSE: Turning the display of the screen's title on or off
     ARGS: on - 0=don't show the title
                1=show it

* COMMAND: SetTitle [newtitle:Str]
  PURPOSE: Display a new screen title
     ARGS: newtitle - your new screen title

* COMMAND: SwitchButton [nr:Int] [on:Bool]
  PURPOSE: Switch any button on or off.
     ARGS: nr - number of button.
                0 is the first one in the list, 1 the second,...
           on - 0=discard it. Button will be ghosted
                1=turn it on.
     NOTE: After a button has been turned off, it's display cannot
           be recreated - sorry, I am working on this problem.

* COMMAND: SwitchScreen [towhich:Str]
  PURPOSE: Switch to another screen (same function than the
           button's command @{"Switch to other screen" link CommScr}
     ARGS: towhich - name of the screen to switch to.

* COMMAND: Query [what:Str]
  PURPOSE: Gives some information about the current menu.
           The result will be stored in the ARexx variable RESULT.
     ARGS:      PLLEFT - left edge of player's screen
                 PLTOP - top edge of player's screen
               PLWIDTH - width of player's screen
              PLHEIGHT - height of player's screen
              PLHEIGHT - number of planes used by the player's screen
              PLCOLORS - number of colors used by the player's screen
           MMREXXDEBUG - debug mode on?
              ISGERMAN - german language currently used?

* COMMAND: WaitForLMB
  PURPOSE: stops menu's execution until user press either the left
           mouse button or the space key.
     ARGS: -
     NOTE: The displaying of the Displays (time, memory,...)
           will also stop!

* COMMAND: SetWaitPointer
  PURPOSE: Sets the waiting pointer...
     ARGS: -

* COMMAND: ResetPointer
  PURPOSE: ...and back to the normal pointer.
     ARGS: -

* COMMAND: Req [text:Str] [gadget:Str]
  PURPOSE: Creates a normal requester.
     ARGS:   text - the text within the requester.
                    Linefeed via '||'
                    Example: "Hello, folks||Here I am!"
           gadget - the text of the gadgets. Every gadget text has to
                    be seperated via '|'.
                    Example: "Retry|Ignore|Cancel"

* COMMAND: ReqFile [hail:Str] [yourFile:Str]
  PURPOSE: brings an ASL file requester on the player's screen.
     ARGS:     hail - Requester's title
           yourFile - file preset

* COMMAND: ReqFile [hail:Str] [yourDir:Str]
  PURPOSE: brings an ASL directory requester on the player's screen.
     ARGS:     hail - Requester's title
           yourFile - directory preset
   

* COMMAND: ReqString [hail:Str] [yourText:Str]
  PURPOSE: brings a text requester on the player's screen
     ARGS:     hail - title text
           yourText - text preset

* COMMAND: FileExists [filename:Str]
  PURPOSE: Is the given filename existing?
           If RESULT=0 then NO, else if RESULT=1 then YES, it is
           existing.
     ARGS: filename - Filename of the file to test.
        

* COMMAND: SetColor [nr:Int] [r:Int] [g:int] [b:Int]
  PURPOSE: change any color of the current palette
     ARGS: nr - of color to change
            r -
            g -
            b - the red, green and blue parts of the color

* COMMAND: DrawColor [nr:Int]
  PURPOSE: sets the current drawing color.
     ARGS: nr - of color

* COMMAND: DrawPixel [x:Int] [y:Int]
  PURPOSE: Draws a pixel on position x, y in the current drawing color
     ARGS: x - horicontal position
           y - vertival position

* COMMAND: DrawLine [x1:Int] [y1:Int] [x2:Int] [y2:Int]
  PURPOSE: Draws a line from x1, y2 to x2,y2
     ARGS: look above!

* COMMAND: DrawRectangle [x1:Int] [y1:Int] [x2:Int] [y2:Int]
  PURPOSE: Draws a rectangle from x1, y2 to x2,y2
     ARGS: look above!
                          
* COMMAND: DrawRectFill [x1:Int] [y1:Int] [x2:Int] [y2:Int]
  PURPOSE: Draws a filled rectangle from x1, y2 to x2,y2
     ARGS: look above!
                          
* COMMAND: DrawCircle [x1:Int] [y1:Int] [x2:Int] [r:Int]
  PURPOSE: Draws a circle with the middle in x1, x2 and
           the radius r
     ARGS: look above!
                          
* COMMAND: DrawText [x1:Int] [y1:Int] [text:Str]
  PURPOSE: Prints the text on position x1, y2
     ARGS:   x1 - x position
             y1 - y position
           text - the text to print

* COMMAND: FloodFill [x1:Int] [y1:Int] 
  PURPOSE: fills the area from x1, y2
     ARGS: x1 - x position
           y1 - y position


@ENDNODE

@NODE PlayerScr "MMPlayer's screen"

MMPlayer opens a public screen for displaying the iff picture.
Thus you can use the screen from third party developments. For example,
you can start the workbench program 'Clock' on the MMPlayer's screen
via the SCREEN option when starting from CLI.

The public screen's name is 'MMPlayer' (MMPlayer_1 if loaded twice)


Example: How to open the shell on the MMPlayer screen

          1> NewShell CON:0/0/400/100/MyShell/SCREENMMPlayer


Please confer you manual to get more information about public screens.

@ENDNODE


@REMARK *****************
@REMARK *               *
@REMARK *   MMReq Tool  *
@REMARK *               *
@REMARK *****************

@NODE MMReq "MMReq - Menus & More Requester Tool"

MMReq is a short tool program to display a requester on the player
screen. It can easily implemented within AmigaDos scripts.

Unfortunately, it has not been completed yet! :-(
At time, you can only use Okay/Cancell or Yes/No requesters.

You can call it in the following way:

  MMReq [reqText] [reqType]

  reqType can be "OKCANC" or "YESNO"

If the player's screen is open, a requester will be displayed upon it.
If the user selects the negative answer ("cancel" or "no"), an AmigaDos
return code 10 (=FAIL) will be returned.
If the player is not active, an error message appears.


Example: How to call MMReq within an AmigaDos script

        Failat 20
        MMReq YESNO "Copy textfiles to ram disk?"
        IF NOT ERROR
          Copy #?.txt to RAM:
        ENDIF
        MMReq YESNO "Keep old files?"
        IF ERROR
          Delete #?.txt
        ENDIF


Another example is in the "Install.bat" file, which is called
by the M&M project "Installation.M&M"

Please notice that you can use the character sequence || as
a linefeed!

@ENDNODE


@REMARK *************************
@REMARK *                       *
@REMARK *    MMAnalyse Tool     *
@REMARK *                       *
@REMARK *************************


@NODE MMAnalyse "MMAnalyse - The Menus & More Analyse Tool"

Basically, the only task of MMAnalyse is to print out the filenames
of all IFF screens used by a M&M menu project.

MMEditor stores those filenames to the project file. When running
the menu, it could happen that the Player cannot find a screen file.
With MMAnalyse you are able to find out which screens the player
tries to load.

Another possible application: If you want to copy a complete menu
project WITH the screen files, you can create a list.

Get more information about every screen (like resolution or startup
commands) by giving the "FULL" option.


Start from workbench:

  - click on the project's icon, press shift and click on the
    MMAnalyse icon or

  - click on the MMAnalyse icon and select a file within the
    file requester

  Note: The "FULL" option is switched on as standard when starting
        from Workbench. It can be discarded by the ToolType

          FULL=OFF


Start from CLI:

  - type

    1> MMAnalyse [project] [FULL/S]

@ENDNODE


@REMARK *************************
@REMARK *                       *
@REMARK *    Miscellaneous...   *                                               *
@REMARK *                       *
@REMARK *************************

@NODE Examples "Example menu projects"

Please have a look at the example projects - they might contain some
interesting clues for you...


FuncTest.M&M            For testing all possibilites of M&M. The current
                        directory will be printed after start, so don't
                        worry about the time, the menu needs to start...

BigFuncTest.M&M         like the one above, but opens a huge screen for
                        demonstrating the auto-scroll function.
                        You will need the ECS chipset.

EnhancedEd.M&M          demonstrates the possibilites of using ARexx.
                        You'll need the original Commodore "Ed" program,
                        placed in your C: directory.
                        Sorry, but the Load button doesn't work...

ARexxTest.M&M           a menu which demonstrates the some features of
                        the ARexx-Port.

LhATool.M&M             A small front-end for the LhA packer.

M2Dev.M&M               A front-end for the M2Amiga compiler system.

MakeV3.1.M&M            My own menu for the generating of M&M. It calls
                        scripts which are not implemented in the M&M
                        package. It uses the productivity screen-mode.

JukeBox.M&M             demonstrates how to call soundtracker modules
                        from a menu. Is running in productivity mode.

Dubios.M&M,
ErstesBeispiel.M&M      are german example menus.


@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE Versions "Versions..."

3.00
~~~~
  - final release

3.01
~~~~
  - now running with the AGA chipset (A1200/4000)

3.02
~~~~
  - internal change

3.10
~~~~
  - new shareware concept
  - improved user interface (GUI)
  - new ToolTypes
  - better error-handling while executing AmigaDos commands,
    asynchron running
  - copy commands
  - full AGA support
  - new project file format (will be converted automatically)

3.11
~~~~
  - bug-fixing

3.12
~~~~
  - locale-support, first international version
  - bug-fixing



3.13
~~~~
  - more ARexx commands
  - project installation within MMEditor
  - new installation procedure using ARexx
  - some new project examples
  - individual setting of the bit-planes used by MMEditor
  - new Dos Command-Option: Set WaitPointer
  - || as linefeed in requester texts
  - improved error messages
  - request before MMEditor executes a startup-command
  - bug-fixing



                +----------------------------------+
                | Overview: All published versions |
                +----------------------------------+


Program         Version Date            Size    Comment
=========================================================================
MMEditorDEMO    3.00BTA 10.02.94        121460  BETA Release
                3.00    27.03.94        120608  final Version 3.00
                3.01    10.05.94        120764  AA Chipset
                3.02    18.05.94        121756  internal change
                no longer supported
-------------------------------------------------------------------------
MMEditor        3.00    27.03.94        123116  final Version 3.00
                3.01    10.05.94        123272  AA Chipset
                3.02    18.05.94        124412  internal change
                3.10    18.07.94        145696  improved GUI and more
                3.11    17.09.94        147760  bug-fixing
                3.12    18.10.94        147564  locale-support, first
                                                international publish
                                        147664  small bug fixed
                3.13    05.02.95        160816  installation feature
-------------------------------------------------------------------------
MMPlayer        3.00BTA 06.02.94         43292  BETA Release
                3.00    27.03.94         42780  final Version 3.00
                3.01    10.05.94         42932  AA Chipset
                3.02    18.05.94         43712  internal change
                3.10    18.07.94         48572  for MMEditor 3.10
                3.12    18.10.94         46096  locale-support
                3.13    05.02.95         47920  enhanced ARexx-Port
-------------------------------------------------------------------------
MMReq           0.10    10.02.94          6772  uncompleted
                0.10    10.02.94          5976  uncompleted
                0.90    17.10.94         15160  still uncompleted!
                0.91    02.02.95         16052  || as linefeeder
-------------------------------------------------------------------------
MMAnalyse       3.12    09.07.94         10392  new tool
                3.13    12.10.94         10964  first international
                                         11224  re-compiled

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE Errors "Known, but not fixed errors"

MMEditor:
~~~~~~~~~
  MMEditor will not deallocate all memory after quitting.

  There are some problems concerning the "ASync"-Flag when
  running a AmigaDos-Program: Sometime you will get a visit
  from the GURU, when using this flag...


MMPlayer:
~~~~~~~~~
  ASynch-Flag probem (look above)


MMAnalyse:
~~~~~~~~~~

MMReq:
~~~~~~
  unfinished.


I'll do my very best...    :-)

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE Future "Plans for the future"

THE FUTURE DEPENDS ON YOU...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Version 4 will probably support new elements on the menu screen:

  - fields for string input
  - file-lists
  - a new textview program
  - the abiltity to use every font within the MMEditor program. 


Version 7:

  - 45 billion color mode
  - real time execution
  - built-in 76 bit fractal generator
  - MS-Windows (TM) compatibility
  - Commodore (will they still exist?) VC 1541 disk drive support
  - Airbag

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE HighScore "Saving the High Score"

 - SAVING THE HIGH SCORE ?!?!


Hey, this NOT A GAME!

All you can do with this piece of software is the production of
graphic-orientated menus.


   @{"   Gulp?!   " link AboutMM}


@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE Axel "The Programmer..."

Adress:  Axel Sodtalbers
         Phillip-Reis-Straße 2-49
         37075 Göttingen
         Germany

If you have a question, please write to me, but enclose an SAE.

M&M has been implemented by using the M2Amiga compiler from A+L AG, Swiss.


Greetings to
~~~~~~~~~~~~

   Daniela Latz

   Dietmar Jung from Rhein-Main-Soft (thanks!)

   Timm Sodtalbers (thanks for CompuServe support!)

   Redmer, Floyd The Droid, Simon The Sorcerer and the Settlers...

   All Infocom interactive fiction (TM) players!


Special thanks to
~~~~~~~~~~~~~~~~~
   Mike Oldfield, The Hooters und Fish


This Text © 1994-95 by Axel Sodtalbers, Göttingen.

@ENDNODE



@REMARK *********************************************************
@REMARK *                                                       *
@REMARK *   Here starts the German section of this document!    *                                               *
@REMARK *                                                       *
@REMARK *********************************************************



@NODE MainD "Menus & More Help Guide (deutsch)"

                     Menus & More Version 3.13

              © 1992-95 by @{"Axel Sodtalbers" link AxelD}, Göttingen.




                            @{" - Hilfestellung - " link UeberHilfe}


@{" Copyright              " link CopyrightD}
@{" Installation           " link InstallationD}

@{" über Menus & More      " link UeberMM}

@{" Der M&M Editor         " link MMEditorD}       @{" Der Bildschirm von MMEditor " link EdBildschirm}
                                @{" Die Fenster von MMEditor    " link Fenster}
                                @{" Die Menüs von MMEditor      " link AlleMenues}
@{" Der M&M Player         " link MMPlayerD}

@{" Hilfsprogramm MMReq    " link MMReqD}
@{" Hilfsprogramm MMAnalyse" link MMAnalyseD}

@{" Die Beispiele          " link Beispiele}
@{" Bekannte Fehler        " link Fehler}
@{" M&M in der Zukunft     " link Zukunft}



                        @{"Deutschsprachiger Index" link myIndexD}
@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE CopyrightD "Copyright - Ihre Rechte"

COPYRIGHT 1992-95 BY AXEL SODTALBERS, GÖTTINGEN.

ALLE RECHTE AN ALLEN MIT DEM MENUS & MORE ZUSAMMENHÄNGENDEN DATEIEN
BEI AXEL SODTALBERS, GÖTTINGEN.

SÄMTLICHE PROGRAMME AUS DEM MENUS&MORE PAKET DÜRFEN NUR MIT MEINER
AUSDRÜCKLICHEN GENEHMIGUNG IN KOMMERZIELLE SERIEN ODER PROGRAMME
AUFGENOMMEN WERDEN.

SÄMTLICHE VERLETZUNGEN DER RECHTE AN ALLEN ZU MENUS & MORE GEHÖRENDEN
DATEIEN WERDEN SOWOHL ZIVIL- ALS AUCH STRAFRECHTLICH VERFOLGT.


Die mit dem Programm "MMEditor" erstellten Dateien sind frei kopierbar.

Die Programme "MMPlayer", "MMReq" und "MMAnalyse" sind Public Domain
und dürfen somit ebenfalls frei kopiert werden, solange sie nicht
kommerziell benutzt werden.

Die Shareware Version von MMEditor erzeugt Projekte, die beim
Start als erstes ein Nerv-Requester erzeugen!

Eine registrierte Voll-Version von Menus & More ist erhältlich bei:

  Axel Sodtalbers
  Philipp-Reis-Straße 2-49
  37075 Göttingen


-----------------------------------------------------------------
|                       | Bei Zusendung einer   |               |
|   G E B Ü H R E N     | formatierten Diskette |   ansonsten   |
|                       | und eines ausreichend |               |
|                       | frank. Rückumschlages |               |
-----------------------------------------------------------------
|                       |                       |               |
| REGISTRIERUNG         |       20,- DM         |       30,- DM |
|                       |                       |               |
------------------------+-----------------------+----------------
| UpGrades (größere)    |       10,- DM         |       20,- DM |
------------------------+-----------------------+----------------
| UpDates               |        0,- DM         |       10,- DM |
-----------------------------------------------------------------


Zahlungswege:

 - Bar
 - Scheck
 - Überweisung auf Kto. Nr. 111008462
                   der Kreissparkasse Aurich, BLZ 284 510 50


@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE UeberHilfe "Über dieses Hilfesystem       [V3.130 (11.02.95)]"

Dies ist das Commodore Hilfssystem "AmigaGuide®"
Wenn Sie mehr Informationen über die Bedienung des AmigaGuides haben
wollen, klicken Sie oben "Help" (bzw. "Hilfe") an oder drücken
die H-Taste.

Vom Menus&More Editor aus können Sie den AmigaGuide auf zwei Arten aufrufen:

1. Durch Drücken der HELP Taste.
2. Durch Anwahl eines Menüs und Drücken der HELP Taste. Sie erhalten
   dann gezielt Informationen über den gewählten Menüpunkt.

Außerdem verfügt AmigaGuide über einen @{" Index " link myIndexD}.

Wenn Sie diesen Index durch Anklicken des "Index" Gadgets in der
oberen Befehlsleiste anklicken, wird zum englisch-sprachigen Index
gesprungen, das gleiche gilt für den Schalter "Inhalt"!

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE InstallationD "Installation von Menus & More"

Am einfachsten nehmen Sie die Installation mit Hilfe des Programms

    Install.M&M

vor. Es befindet sich im gleichen Ordner wie auch die übrigen M&M
Programme und stellt seinerseits ein M&M Projekt dar.
Gestartet wird es durch einfaches Anklicken. Anschließend den
'Installation beginnen' anwählen (oder die ENTER Taste drücken)
und schon geht es los.

ACHTUNG! Ab V3.13 wird ARexx bei der Installation benutzt! Dieses
sollte also vorher gestartet werden. Falls man ARexx nicht
benutzten möchte (aus welchen Gründen auch immer) so kann man den
Menüpunkt "Install without ARexx" anwählen. Es stehen dann aber
keinen deutschen Texte während der Installation zur Verfügung.



Allgemeine Hinweise zu den von M&M benutzten Dateien:

Das Programm "MMEditor" (der Menus & More Editor) greift auf
folgende Dateien zurück:

    - "M&M.config"      enthält die Konfiguration
    - "M&M.icon.info"   ein Projekt-Icon, das einem neu erstellten
                        M&M-Projekt zugewiesen wird. Kann nach Wunsch
                        verändert werden.
    - "M&M.guide"       Die AmigaGuide-Datei - also der Text, den Sie
                        jetzt gerade lesen...

All diese Programme sollten sich im gleichen Verzeichnis wie die
anderen Programme befinden !


Damit die Benutzerführung in deutscher Sprache erscheint, müssen
sich die Dateien

    deutsch/MMEditor.catalog
    deutsch/MMPlayer.catalog

im entsprechenden Locale-Verzeichnis der Workbench befinden!


Sämtliche Beispiel-Projekte greifen auf das Verzeichnis

     "MM:Examples"

zurück. Es sollte also in der Datei S:User-Startup entsprechend gesetzt
werden, z.B. durch folgende Zeile

     Assign MM: DH0:Tools/M&M

Dies wird von der Installation mittels 'Install.M&M' automatisch
erledigt.


Folgende Libraries werden benötigt:

    asl.library           Version 36+
    AmigaGuide.library    Version 34+
    diskfont.library      Version 33+
    rexxsyslib.library    Version 36+

Diese müssen sich im LIBS: Verzeichnis befinden.

Weiterhin benutzen einige Beispiele das Programm "Ed" von der
Commodore Workbench Disk 2.x und höher. Dieses sollte sich im
"C:" Verzeichnis befinden.


@{"Komplettübersicht über sämtliche Dateien" link DateiListe}

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE DateiListe "Übersicht über die M&M-Dateien"

Folgende Dateien sollten sich auf der M&M Disk befinden:


MMEditor                Der Menus & More Editor

MMPlayer                Das Menus & More Abspiel-Programm

MMReq                   Ein Hilfsprogramm für Skripte

MMAnalyse               Ein Hilfsprogramm zur Ausgabe aller von
                        einem M&M Projekt verwendeter Screens.


(M&M.config)            Die Konfigurations-Datei für MMEditor. Falls
                        nicht vorhanden, werden die internen
                        Voreinstellungen benutzt.

M&M.icon.info           Das Icon für die Menus & More Projekte

M&M.guide               Die AmigaGuide Datei (dieser Text)

Install.M&M             Installations-Routine (ein M&M Projekt)

ReadMe.guide            Kurzer Hinweis-Text (auch in Deutsch!)

deutsch (Schublade)     Deutsche Kataloge

Examples (Schublade)    M&M Beispiel-Projekte

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE UeberMM "Über Menus & More"

Was fange ich mit Menus & More an?

Mit Menus & More (kurz M&M) können Sie graphisch orientierte
Bildschirm-Menüs erstellen. Damit sind solche Programme gemeint, mit
denen Sie viele, u.U. quer auf Ihrer Festplatte verteilte Programme,
zentral von einem Programm aus aufrufen können.
Doch wie der Name schon sagt, sind so viele Optionen beeinflußbar,
daß man noch viel mehr als "nur" Menus erstellen kann...

Wie sind diese Menüs aufgebaut?

Grundlage eines M&M Menüs sind die sog. Screens (engl. für Bildschirm).
Sie sind nichts anderes als gewöhnliche IFF Bilder, wie man sie z.B.
mit Malprogrammen wie Deluxe Paint erstellen kann.
Sie enthalten das Menü quasi als Bild: Jeder später zu verwendende
Auswahlpunkt des Menüs wird als Schalter gemalt. Dann muß man M&M
nur noch mitteilen, wo diese Schalter liegen und was passieren soll,
wenn der Benutzer sie anklickt.

Aufbauend auf einem Screen können für die Menüs folgende weiteren
Elemente verwendet werden:

Buttons : Diese stellen die oben schon erwähnten Schalter dar.
          Nach Anwahl wird ein vom Ersteller des Menüs angegebenes
          Kommando ausgeführt, z.B. ein Programm gestartet.

  Menüs : Damit sind die von Amiga Betriebssystem bekannten
          Pulldown-Menüs gemeint. Auch sie können in ein M&M Menü
          eingebaut werden. Ebenso wie bei den Buttons wird auch
          nach Anwahl eines Pulldown-Menüs ein Befehl ausgeführt.

          (Um die Begriffsverwirrung nicht ins Unermeßliche steigen
          zu lassen, werden diese Menüs in Zukunft mit dem
          Begriff Pulldown-Menüs bezeichnet. Innerhalb der M&M
          Programme werden sie jedoch weiterhin einfach Menüs genannt)

Anzeigen: Sie spielen eine gewisse Sonderrolle insofern, daß damit
          keine Befehle ausgeführt werden, sondern lediglich auf
          dem Screen Status-Anzeigen gebracht werden können.
          Dargestellt werden können die Uhrzeit, das Datum oder der
          freie Speicher.

Bei der Erstellung eines Menü-Projektes wird jedes dieser vier Elemente
(Screen, Button, Pulldown-Menü, Anzeige) durch ein Fenster auf dem
Bildschirm des M&M Editors repräsentiert.
Vgl. auch @{"die Fenster von MMEditor" link Fenster}.


        Kurze Übersicht:         S c r e e n s
                                /      |      \
                           Buttons   Menüs  Anzeigen
                              |        |
                           Kommando  Kommando


Wie erstelle ich diese Menüs?

Sie erstellen die M&M Menüs mit dem Programm @{" MMEditor " link MMEditor}.
Diese Menüs werden als "Menü-Projekt" auf Diskette oder Festplatte
gespeichert. Diese Datei enthält alle zur Ausführung des Menüs
benötigten Daten, etwa welche Screens benutzt wurden, welche
Kommandos wann ausgeführt werden, usw.


Wie lasse ich sie ablaufen?

Ausgeführt werden die Menü-Projekte mit dem Programm "MMPlayer".
Er lädt das das Menü ein und läßt es "abspielen", d.h. lädt die
verwendeten Screens ein, installiert die Buttons und Pulldown-Menüs
und zeigt die Status-Anzeigen an.

Hier nochmal eine kurze Übersicht über das Geschehen:


                         ------------
      IFF-Bilder ------> | MMEditor | -----> erstellt ----
      (=Screens)         ------------                    ||
          |                                              ||
          |                                              \/
          |                                       ----------------
          |                                       | Menü-Projekt |
          |                                       ----------------
          |                                               |
          |                                               |
          |              ------------                     |
          -------------> | MMPlayer | <--------------------
                         ------------
                              ||
                          spielt ab
                              ||
                              ||
                              \/
                           Benutzer


@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE MMEditorD "Menus & More Editor"

Mit dem Programm "MMEditor" können Sie Menü-Projekte erstellen.


Start von der Workbench aus:

  - Durch Anklicken des Piktogramms von "MMEditor"

  - Anklicken eines Menü-Projektes, Shift-Taste drücken und dann
    das Piktogramm von "MMEditor" anklicken. Das angegebene Projekt
    wird dann nach Programmstart automatisch geladen.

  Hinweis: Sie können beim Start per Workbench
           verschiedene @{"Merkmale" link EdMerkmale} angeben.


Start vom CLI aus mit:

  - durch die Eingaben  1> Stack 8192
                        1> MMEditor


Das Programm läuft in @{"deutscher Sprache" link LocaleD}.

Nach dem Start wird der @{"Bildschirm" link EdBildschirm} des Editors geöffnet.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE LocaleD "Deutsche Sprache für MMEditor"

Normalerweise ist die Benutzerführung von MMEditor in englischer
Sprache gehalten. Für eine deutsche Benutzerführung muß sich


        die Datei      deutsch/MMEditor.catalog

        im Verzeichnis LOCALE:catalogs/deutsch


befinden! Das Gleiche gilt für den MMPlayer!


Achtung! Freie Registrierung für jeden, der mir einen Katalog
für eine neue Sprache erstellt!!

Kontakt: @{"Axel" link AxelD}

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE EdMerkmale "Merkmale (ToolTypes) von MMEditor"

Folgende Merkmale können im Icon von MMEditor angegeben werden:

  WINDOW=doswin

    "doswin" muß eine gültige AmigaDos Fenster-Beschreibung darstellen.
    Auf dieses Fenster werden beim Testlauf die Ausgaben des
    @{"Start-Kommandos" link StartKomm} des Screens gelenkt. Wurde
    dieses Merkmal nicht angegeben, wird auf die Vorgabe (s.u.)
    zurückgegriffen.

    Vorgabe: CON:0/0/400/200/M&M/AUTO/CLOSE/WAIT


  SCRWINHEIGHT=pixel

    Hiermit kann man die Höhe des @{"Screens-Fensters" link ScrFen} bestimmen.
    Sie muß mindestens 80 Pixel betragen.

    Vorgabe: 100


  WINHEIGHT=pixel

    Dieses Merkmal gibt die Höhe der @{"anderen Fenster" link Fenster} (Buttons/Menüs/
    Anzeigen) an. Hier beträgt die Mindestgröße 160 Bildpunkte.
    Am besten ist die Angabe von -1, dann werden die übrigen Fenster
    in einer Höhe geöffnet, daß sie genau unter das Screens-Fenster
    passen.

    Vorgabe: -1


  PLANES=n

    Bestimmt die Anzahl der Bit-Planes für den MMEditor Bildschirm.
    1 = 2 Farben
    2 = 4 Farben
    3 = 8 Farben usw.
    -1= Gleiche Anzahl von Planes wie die Workbench.

    Vorgabe: -1


  FILEBUFFER=bytes

    Je größer der hier eingetragene Wert, desto mehr Speicher wird bei
    Datei-Operationen (Öffnen/Speichern) verbraucht, desto schneller
    gehen diese dann aber auch vonstatten.

    Vorgabe = 1024


  ERRORREPORT=ON/OFF

    Tritt beim Testlauf ein Dos-Fehler auf, so erscheint eine
    umfangreichere Fehlermeldung, wenn bei diesem Merkmal "ON"
    oder "YES" angegeben wird.

    Vorgabe: ON


  PICPATTERN=dospat

    Der Lade-Requester, der beim Öffnen von IFF-Bildern erscheint
    (Screen Neu oder Einfügen), verwendet ein Muster, um alle
    Nicht-Bild-Dateien herauszufiltern. Bei Benutzung der Vorgabe
    werden also nur alle Dateien mit der Endung ".pic" angezeigt.
    Falls Ihre Bild-Dateien alle mit ".iff" enden, können Sie dies
    dem MMEditor durch Angabe von PICPATTERNS=#?.iff mitteilen.

    Vorgabe: #?.pic


  SHELLSTART=comseq

    Diese Befehls-Sequenz wird nach Aufruf des Menü-Punktes
    @{"Extras/Shell" link ShellStart} gestartet.

    Vorgabe: NewShell "CON:0/0/400/200/CLOSE/MMShell/SCREENMMEditor


  SHELLSTACK=bytes

    Falls Ihre Shell einen größeren Stack braucht, können Sie das mit
    diesem Merkmal angeben.

    Vorgabe: 4096


  EDSTART=comseq

    Diese Befehls-Sequenz wird nach Aufruf des Menü-Punktes
    @{"Extras/Editor" link EditorStart} gestartet.

    Vorgabe: C:Ed FROM:CON:0/0/400/200/AUTO/CLOSE/Editor/SCREENMMEditor


  EDSTACK=bytes

    s.o. SHELLSTACK


  PAINTSTART=comseq

    Diese Befehls-Sequenz wird nach Aufruf des Menü-Punktes
    @{"Extras/Malprg" link PaintStart} gestartet.

    Vorgabe: DPaint:DPaint


  PAINTSTACK=bytes

    s.o. SHELLSTACK

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE EdBildschirm "Bildschirm des M&M Editors"

Der Bildschirm des M&M-Editors stellt ein "Klon" Ihres Workbench-
Bildschirms dar. Modus, Auflösung und Farben sind also identisch.

Ausnahme:

  - Es wird STETS der Zeichensatz topaz in der Größe 8 benutzt.
    (wird hoffentlich in der nächsten Version beseitigt sein :-)


Die Tiefe des Bildschirms läßt sich mit dem @{"PLANES" link EdMerkmale} ToolType
einstellen.

Der Bildschirm stellt einen PublicScreen mit dem Namen "MMEditor" dar,
wird MMEditor ein zweites Mal gestartet (warum auch immer), ist der
Name 'MMEditor.2', und so weiter...


Für jedes Element eines M&M Menüs wird ein @{"Fenster" link Fenster} auf dem
Bildschirm des Editors geöffnet.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE Fenster "Fenster des M&M Editors"

Der Bildschirm des M&M Editors ist in verschiedene Fenster aufgeteilt:

  @{" das 'Screens'- Fenster   " link ScrFen}

  @{" das 'Buttons' - Fenster  " link ButFen}
  @{" das 'Menüs' - Fenster    " link MenFen}
  @{" das 'Anzeigen' - Fenster " link DisFen}


Das Screens-Fenster ist beim Start des Editors auf jeden Fall geöffnet.
Die übrigen drei öffnen sich erst, wenn entweder

  - Durch Anwahl von "Neu" (bzw. "Einfügen") ein Screen geladen wird oder
  - Ein @{"Projekt geöffnet" link Open} wurde.

Schließlich kann man ja auch z.B. einen Button erst dann erstellen, wenn
ein Screen geladen wurde.

Diese Fenster haben stets die Breite des @{"Editor-Bildschirms" link EdBildschirm}.
Jedoch können sie in ihrer vertikalen Position beliebig verschoben werden.
Diese Y-Positionen werden auch in der @{"Konfigurations-Datei" link Einstellungen} gespeichert.

Die Höhe der Fenster können Sie durch Angabe von @{"ToolTypes" link EdToolTypes} beeinflussen.

Die Standard-Einstellung der Fenster-Positionen ist so angelegt, daß sich
die Fenster der "Buttons", "Menüs" und "Anzeigen" überlappen. So hat man
immer im Blick, welchen Screen man gerade bearbeitet.

Durch Betätigen der Funktionstasten können die jeweiligen Fenster in den
Vordergrund gebracht werden:

  - [F1] für das "Screens"-Fenster
  - [F2] für das "Buttons"-Fenster
  - [F3] für das "Menüs"-Fenster
  - [F4] für das "Anzeigen"-Fenster

Darüberhinaus kann das "Buttons"-, "Menüs"- oder "Anzeigen"-Fenster
beliebig ein- oder ausgeschaltet werden: Das geschieht entweder durch
Anklicken des CLOSE-Gadgets oder durch die Anwahl des Menüpunktes
@{"Fenster ein- oder ausschalten" link FenAnAus} im Konfigurations-Menü.

Sämtliche Listen können auch mit den Cursor-Hoch und -Runter Tasten
bedient werden. Zusammen mit der Shift-Taste wird an den Anfang bzw.
an das Ende der Liste gesprungen.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE ScrFen "Screens-Fenster"

In diesem Fenster können Sie alles bezüglich der für das aktuelle Projekt
verwendeten Screens regeln.

Es wird eine Liste der Dateinamen aller verwendeten Screens angezeigt.
Der Screen, der im Moment gerade bearbeitet wird, wird unterhalb dieser
Liste angezeigt. Sie können auch mit den Cursor-Hoch und -Runter Tasten
den aktuellen Screen auswählen (mit Shift springen Sie an den Anfang
bzw. das Ende der Liste)

Mit "Neu" fügen Sie dieser Liste einen neuen Screen hinzu.

Mit "Einf." fügen Sie VOR dem aktuellen einen neuen Screen ein.

Mit "Löschen" können Sie - nach Rückfrage - den aktuellen Screen löschen!

Nach Anwahl von "Editieren" können Sie weitere Parameter für den
aktuellen Screen bestimmen:

  - Den für den @{"Screen verwendeten Zeichensatz" link ScrZchs}.
    Wählen Sie einen neuen Font (oder auch nur eine neue Fonthöhe),
    so wird das für dieses Screen verwendete IFF-Bild noch einmal
    eingeladen, der Screen also komplett neu erstellt.

  - Titelleiste anzeigen
    Soll beim Abspielen der Menüs die Titelleiste des Screens
    angezeigt werden?

  - @{"Befehl VOR dem Laden des Screens" link StartKomm}.
     Der hier angegebene AmigaDos Befehl wird ausgeführt, bevor
     der Screen des Players geöffnet wird.

  - @{"Befehl NACH dem Laden des Screens" link StartKomm}.
     Tja, wer hätte das gedacht: Der hier angegebene AmigaDos Befehl
     wird ausgeführt, NACHDEM der Screen des Players geöffnet wurde.


Nach Anwahl von "Info" erscheint ein Requester mit näheren Angaben
zum gerade aktuellen Screen. Soll dieser neu bestimmt werden - also
ein IFF Bild mit anderer Auflösung oder Tiefe - kann man das nach
Anwahl des Buttons "Neu bestimmen" vornehmen. Sämtliche Buttons
behalten natürlich ihre Position.


Falls Sie mit den hier verwendeten Begriffen nicht so recht
klar gekommen sind, sollten Sie noch einmal im Kapitel
@{"Über Menus & More" link AboutMM} nachschauen !

@{"Weitere Hinweise zu den Screens" link ScreenHinweise}

@ENDNODE


@REMARK ----------------------------------------------------------------

@NODE StartKomm "Startup-Befehle"

Sie haben die Möglichkeit, daß beim Ablauf eines Menüs sowohl VOR als
auch NACH dem Laden eines Screens automatisch ein beliebiges Programm
ausgeführt wird.

Dies kann für etwaige Initialisierungen sehr nützlich sein. Zum Beispiel
wäre es sinnvoll, ein bestimmtes Verzeichnis mit dem Dos-Befehl "Assign"
einen beliebigen Geräte-Namen zuzuweisen, um alle im Menü verwendeten
Datei-Namen auf diesen Geräte-Namen zu beziehen.

    Befehl VOR dem Laden:  Assign MeinMenü: SYS:M&M/Daten

    Beispiele für im MMEditor verwendete Dateinamen:

      MeinMenü:ErstesBild.pic   (für einen Screen)
      MeinMenü:Information.txt  (für eine Textdatei)    usw.

Natürlich kann man durch die Angabe von "Execute Skriptname" auch ganze
Skripte ausführen lassen.

Jedesmal, wenn ein Projekt, welches solche Startup-Kommandos enthält,
in den MMEditor geladen werden soll (Projekt/Öffen), erscheint ein
Requester mit der Frage, ob diese Kommandos ausgeführt werden sollen.

Zu beachten ist die Ausgabe der Startup-Befehle:

Haben Sie daß Menü von der Workbench aus gestartet, können Sie ein
Ausgabe-Fenster durch die Angabe von

      WINDOW=CON:x/y/b/h/Name/Optionen      als @{Merkmal (tool type)} link EdToolTypes}

bestimmen (vgl. im DOS-Handbuch unter Konsole-Fenster).
Diese Option gilt sowohl für den MMEditor (beim Testlauf) als auch
für den MMPlayer.

Beim Start vom CLI aus wird stets das CLI-Fenster als Ausgabe-Fenster
genutzt.

@ENDNODE

@NODE ScrZchs "Zeichensatz eines Screens"

Für jeden Screen kann ein eigener Zeichensatz angegeben werden.
Dieser Font wird verwendet für:

   - die Titelleiste des Screens und damit auch für
   - (eventuell) vorhandene Menü-Titel
   - @{"Anzeigen" link DisFen}.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE ScreenHinweise "Hinweise zu den Screens"

Die Screens stellen schlichtweg IFF Bilder, wie man sie mit Programmen wie
DPaint u.ä. erstellen kann, dar. Ausmaße und Farbtiefe sind beliebig.
Es werden auch die AA Auflösungen unterstützt.

Höhe, Breite, Tiefe sowie eine DisplayID eines jeden Screens werden
mit dem M&M Projekt abgespeichert. Man kann sich diese Werte durch
Anklicken des Gadgets "Info" im Screens-Fenster ansehen. Durch
dieses Speichern der Auflösung ist es NICHT möglich, einen einmal mit
dem Editor bearbeiteten Screen nachträglich mit einem Malprogramm zu
verändern, wenn eben auch diese Informationen (Höhe, Breite, Tiefe oder
DisplayID) verändert werden. Will man einen anderen Screen verwenden,
so funktioniert das durch die Funktion @{"Screen neu bestimmen" link ScrFen}.
Behält das Bild jedoch exakt die Ausmaße und die Tiefe, kann es auch
nachträglich verändert werden...

Folgendes sollte bei der ERSTELLUNG eines Screen (also eines IFF-Bildes)
beachtet werden: In der aktuellen Version 3.10 hat M&M Schwierigkeiten
mit Bildern, in denen einen sog. Maske gesetzt ist. Eine solche sollte
also vor dem Abspeichern des Bildes aus dem Malprogramm heraus ggf.
abgeschaltet werden.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE ButFen "Buttons-Fenster"

Dieses Fenster öffnet sich erst, wenn für das M&M Projekt ein
Screen bestimmt und eingeladen worden ist.

Es wird eine Liste der Namen aller verwendeten Buttons angezeigt.
Der aktuelle Button wird unterhalb dieser Liste dargestellt (hier
können Sie auch den Namen durch Editieren verändern).

Mit "Neu" fügen Sie einen neuen Button an das Ende der Liste ein.
  Sie müssen dann @{"die Fläche des Buttons auf dem Screen bestimmen." link ButFlaeche}

Mit "Einf." fügen Sie einen neuen vor den aktuellen Button ein.
  Auch hier müssen Sie die Fläche des Buttons auf dem Screen bestimmen

Mit "Löschen" kann man den aktuellen Button aus der Liste entfernen.

Nach Anwahl von "Editieren" können Sie den Fläche des Buttons noch einmal
neu bestimmen.

Außerdem können Sie bestimmen, was für ein @{"Kommando" link Kommandos} nach Anwahl
dieses Buttons ausgeführt werden soll und ob vorher noch eine @{"Abfrage" link Abfrage}
von Parametern erfolgen soll.

Mit "Auswahl" beeinflussen Sie das Kommando-Feld. Haben Sie als Kommando
bsw. "DOS Befehl ausführen" gewählt, erscheint nach Anklicken von
"Auswahl" ein Datei-Requester, aus dem Sie den Befehl auswählen können.
Ebenso bei "ARexx Befehl senden". Bei "Auf anderen Screen umschalten"
erscheint ein Requester mit einer Liste aller Screens.

Mit "Optionen" können Sie weitere Optionen zum angewählten Kommando bestimmen.
Für manche Kommando wie z.B. "Menü beenden" existieren jedoch
keine Optionen, so daß man dieses Gadget dann nicht anklicken kann.

"Taste" gibt eine korrespondierende Taste (mit der man auch anstatt
mit der Maus den Befehl auslösen kann) an. Eine Liste mit Sondertasten
erhält man durch Anklicken des "Taste"-Schalters. Man kann auch die
Cursor-Hoch und -Runter Tasten benutzen, um durch die Liste zu scrollen.


@{"Weitere Hinweise zu den Button" link ButHinweise}

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE ButFlaeche "Bestimmen der Fläche eines Buttons"

Die Fläche eines Buttons wird folgendermaßen bestimmt:

  1. Der Screen wird angezeigt.
  2. Mit der Maus suchen Sie die linke obere Ecke des Schalters und
     klicken diese mit der linken Maustaste an.
  3. Maustaste gedrückt halten.
     (Falls Sie jetzt doch lieber eine andere Ecke anwählen wollen:
     Escape-Taste drücken, Sie sind dann wieder bei Punkt 2)
  4. Mit der Maus zur rechten unteren Ecke gehen und
  5. Maustaste loslassen.

Mit dieser Methode ist es nicht immer ganz einfach, die genaue Schalter-
fläche zu "treffen". Daher wurde ein Funktion namens "Lasso" eingeführt.
Ist sie eingeschaltet (mit der Leertaste), muß man die Fläche des
Schalters nur noch ungefähr einrahmen, es wird dann automatisch die
richtige Fläche gesucht.

Mit der Taste F10 können Sie beim Bestimmen der Button-Fläche die
Titelleiste des Screens ein- und ausschalten.

Haben Sie die Fläche des Buttons bestimmt, werden Sie nach einem
Namen für diesen gefragt. Damit die einzelnen Buttons unterschieden
werden können, darf dieser Name noch nicht in der Liste vorhanden sein.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE ButHinweise "Hinweise zu den Buttons"

Wenn man einen neuen Button auf den Screen einfügt, kommt es zu folgendem
Problem: Da nicht jedesmal sämtliche IDs der Gadgets neu berechnet werden,
kann es passieren, daß einige Gadgets bei einem - direkt nach der Einführung
durchgeführten - Testlauf nicht erkannt werden.

Abhilfe schafft man folgendermaßen:

  Hat man nur einen Screen für das Projekt vorgesehen:
  Projekt speichern, neu und erneut einladen. Wird jetzt ein Testlauf durch-
  geführt, verläuft alles wieder normal.

  Einfacher ist es, wenn das Projekt mehrere Screens enthält:
  Kurz zum nächsten Screen schalten (durch Anklicken in der Screen-Liste)
  und dann den alten wieder einladen - alles funktioniert wieder.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE MenFen "Menüs-Fenster"

Auch hier wird eine Liste alle Pulldown-Menüpunkte angezeigt.
Erstellt wird diese Liste durch Anwahl von @{"Editieren" link MenusEdt}.

Einzelne Menüpunkte können eingefügt ("Einf.") oder gelöscht werden.

Nach der Editierung können Sie für jeden Pulldown-Menüpunkt bestimmen,
was für ein @{"Kommando" link Kommandos} nach Anwahl ausgeführt werden
soll und ob vorher noch eine @{"Abfrage" link Abfrage} von Parametern
erfolgen soll.

@{"Weitere Hinweise zu den Menüs" link MenuHinweise}

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE MenusEdt "Editieren des Pulldown-Menüs"

Es erscheint ein Fenster auf dem aktuellen Screen.

Geben Sie einfach die Menü-Titel und -punkte ein.
Von einem Punkt zum nächsten kommen Sie mit der ENTER-Taste
Mit der TAB-Taste gelangen Sie zum nächsten Auswahl-Buchstaben.

Jeder Menü-Punkt kann einen entsprechenden Auswahl-Buchstaben haben.
So kann dieser Punkt auch durch Drücken der linken Amiga-Taste plus
dem Auswahl-Buchstaben angewählt werden.

Mit der linken Cursor-Tasten kommen Sie zum vorherigen Titel, mit
der rechten zum nächsten (geht nur, wenn der Cursor nicht zu sehen ist).

Mit dem "Zchs"-Schalter können Sie einen neuen Zeichensatz für
das Pulldown-Menü auswählen. Dieser ist aber NUR für die Menü-PUNKTE
gültig - für die Titel gelten der beim @{"Editieren des Screens" link ScrFen} angewählte
Zeichensatz.

Durch "Lsch." können ein, alle oder gar kein Titel gelöscht werden.

Maximal verarbeitet werden 15 Menütitel, die jeweils max. 15 Menüpunkte
haben dürfen. Ist die vertikale Auflösung des aktuellen Screen nicht
sehr hoch (etwa bei LoRes-Screens), wird dadurch natürlich auch die
Höhe des Editor-Fenster kleiner, so daß dementsprechend die Anzahl der
maximal editierbaren Menüpunkte kleiner wird.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE MenuHinweise "Hinweise zu den Pulldown-Menüs"

Bei der Erstellung der Pulldown-Menüs ist zu beachten, daß - neben der
Limitierung durch die Auflösung des Screens - allerhöchstens

  15 Pulldown-Menüs mit je höchstens 15 Menü-Punkten

editiert werden können.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE DisFen "Anzeigen-Fenster"

"Neu"     hängt eine neue Anzeige an die Liste.
"Einf."   fügt eine neue Anzeige vor der aktuellen ein.
"Löschen" löscht eine Anzeige.

Das Bestimmen einer Anzeige geht folgendermaßen vonstatten:

Es erscheint ein Fenster auf dem Menü-Screen, bei dem Sie

  die X- und Y-Position der Anzeige auf dem Screen
  den Text VOR und NACH der Anzeige sowie (am wichtigsten)

  den Anzeige-Modus (also freier Speicher, Uhrzeit oder Datum)

festlegen können.

Mit "Neu positionieren" kann die X- und Y-Position bequem mit der
Maus bestimmt werden.

Die Anzeige wird folgendermaßen erstellt:

    VORTEXT Leerzeichen ANZEIGE Leerzeichen NACHTEXT

    Bsp.     Vor: "Zeit:"               \
            Nach: "Uhr"                  > Anzeige: Zeit: 16.24.13 Uhr
           Modus: "Zeit - 16.24.13"     /

Die Farbe der Anzeige läßt sich nicht beeinflussen (sie stellt stets
das Komplement der Farbe "unterhalb" der Anzeige dar - Ausprobieren!).
Es wird stets der @{"Zeichensatz des Screens" link ScrZchs} verwendet.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE AlleMenues "Menu von MMEditor"

Das Menu ist in 4 Gruppen aufgeteilt:

1.Projekt         @{" Neu                   " link Neu}
                  @{" Öffnen...             " link Oeffnen}
                  @{" Speichern             " link Speichern}
                  @{" Speichern als...      " link Speichern}
                  @{" Installieren...       " link InstallProjekt}
                  @{" über...               " link Ueber}
                  @{" Hilfe                 " link UeberHilfe}
                  @{" Programm verlassen... " link Verlassen}

2.Testlauf        @{" Vom aktuellen Screen " link TestlaufA}
                  @{" Des gesamten Menüs   " link TestlaufG}
                  @{" Kommandos...ausführen" link PlayerModi}

3.Einstellungen   @{" Buttons-Fenster         " link FenAnAus}
                  @{" Menüs-Fenster           " link FenAnAus}
                  @{" Anzeigen-Fenster        " link FenAnAus}
                  @{" Piktogramme erzeugen    " link Piktos}
                  @{" Einstellungen speichern " link Einstellungen}

4.Extras          @{" Kommando kopieren " link KommandoKopieren}
                  @{" Shell starten     " link ShellStart}
                  @{" Editor starten    " link EditorStart}
                  @{" Malprg starten    " link PaintStart}



@ENDNODE AlleMenues

@REMARK ----------------------------------------------------------------

@NODE Neu "Neues Projekt"

Hiermit können Sie ein im Speicher vorhandenes Projekt löschen.

Wurde das Projekt vorher noch nicht gespeichert, erscheint eine
Warnung, die auf diesen Umstand hinweist. Sie haben dann die
Möglichkeit, das aktuelle Projekt zu speichern.

@ENDNODE

@NODE Oeffnen "Projekt Öffnen"

Zum Öffnen eines bereits gespeicherten Projektes. Nach Anwahl erscheint
der Datei-Requester, in dem man die zu ladende Datei auswählt.

Wurde das sich im Speicher befindende, aktuelle Projekt vor der
Anwahl dieses Menüpunktes noch nicht gespeichert, so erscheint
eine Sicherheitsabfrage.

Beim Laden können folgende Fehler auftreten:

  - Das gewählte Projekt ist keine M&M Datei
  - Das Format der gewählten Projektes ist nicht korrekt
  - Es ist nicht mehr genug Speicher zum Laden frei.

@ENDNODE

@NODE Speichern "Projekt Speichern (Als)"

Hiermit speichern Sie ein Projekt.

Speichern Sie ein Projekt zum ersten Mal (Projekt-Name = "Ohne Namen.M&M"),
erscheint auf jeden Fall der Datei-Requester.

Hat das Projekt bereits einen Namen, so können Sie mit Anwahl von

      "Speichern" : Unter dem gleichen Namen sichern - es erscheint aber
                    eine Sicherheitsabfrage, falls die Datei bereits auf
                    dem Datenträger existiert;

  "Speichern Als" : Einen neuen Projekt-Namen auswählen.

@ENDNODE

@NODE InstallProjekt "Projekt installieren"

Mit dieser Funktion kann man ein bereits erstelltes Projekt auf
einfachste Weise installieren. Es wird das eigentliche Projekt
inklusive Screens und Textdateien in ein neues Verzeichnis
umkopiert. Die Dateinamen der Screens und Textdateien werden
natürlich entsprechend angepaßt. Ferner ist es möglich, einen
Aufruf des Menü-Projektes automatisch in die User-Startup
einfügen zu lassen.

Die einzelnen Felder im erscheinenden Installations-Fenster:

- Ziel-Verzeichnis              In welche Schublade soll das Projekt
                                installiert werden?
                                Man kann auch eine noch nicht existierende
                                Schublade angeben - diese wird dann bei der
                                Installation neu erstellt.

- Piktogramme erzeugen?         Sollen bei der Installation Piktogramme für
                                Projekt, Screens und Textfiles erzeugt werden?

- IFF-Dateien kopieren?         Screen-Dateien mit ins Ziel-Verzeichnis
                                kopieren?

- Text-Dateien kopieren?        Text-Datein mit ins Ziel-Verzeichnis
                                kopieren?

- In S:User-Startup einfügen    Damit kann man das installierte Menü-Projekt
                                automatisch nach jedem Neu-Start des Amigas
                                laufen lassen.

@ENDNODE


@NODE Ueber "Über..."

Sie erhalten eine Information über

  - die Programmversion
  - den Autor @{"Axel Sodtalbers" link AxelD}
  - das Copyright
  - den freien Speicher

Außerdem könne Sie sich noch Infos über folgendes geben lassen:

  - Benutzer: Eintrag des registrierten Benutzers (wenn vorhanden)
  - Internes: - Name des PublicScreens von MMEditor
              - Anzahl der vom MMEditor Screen benutzten Planes
              - Zur Zeit benutzte Sprache (built-in oder deutsch)
              - Name des vom Player geöffneten ARexx-Ports (Testlauf!)
              - Name des PublicScreens von MMPlayer

@ENDNODE

@NODE Verlassen "Programm verlassen"

Hiermit beenden Sie Menus & More. Vorher erscheint jedoch eine
Sicherheitsabfrage, die testet, ob Sie auch wirklich gewillt und
in Ihrem Gemüt gefestigt genug sind, dieses fantastische Programm
zu beenden (schluchz!).

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE TestlaufA "Testlauf vom aktuellen Screen"

Mit diesem Menüpunkt starten Sie einen Testlauf von dem
gerade geladenen Screen aus.

Sie können so testen, ob Ihr Menü wunschgemäß arbeitet.
Dabei sollten Sie bedenken, auch einen Funktion "MENÜ BEENDEN"
einzubauen. Haben Sie das vergessen, so können Sie das Menü
auf jeden Fall durch gleichzeitiges Drücken der Control- und
Escape-Taste beenden.

@ENDNODE

@NODE TestlaufG "Testlauf des gesamten Menüs"

Die Menüpunkt hat die gleiche Funktion wie @{"Testlauf vom aktuellen Screen" link TestlaufA},
nur das hier mit der Menü-Ausführung mit dem ersten Screen gestartet wird.

Die Anwahl hat also den gleichen Effekt wie ein Aufruf des @{"MMPlayers" link MMPlayerD}.

@ENDNODE

@NODE PlayerModi "Kommandos immer/auf Anfrage/nie ausführen"

Mit diesem Menüpunkt können Sie festlegen, was passieren soll,
wenn Sie beim Testlauf einen Button oder Menü anwählen,
der/das einen DOS- oder Screenwechsel-Befehl auslösen soll.

  - immer ausführen: Das DOS-Kommando wird auf jeden Fall ausgeführt
                     bzw. es wird auf jeden Fall auf den angegebenen
                     Screen umgeschaltet.

  - auf Anfrage    : Beim Testlauf wird vorher gefragt, ob das DOS-Kommando
                     bzw. der Screen-Wechsel durchgeführt werden soll.
                     Das empfiehlt sich auf jeden Fall bei "haarigen"
                     Dos-Kommandos wie z.B. "Format" oder "Delete".

  - nie ausführen  : Das Dos-Kommando bzw. der Screen-Wechsel wird
                     auf keinen Fall ausgeführt.

Die aktuelle Einstellung erkennen Sie am Haken vor dem angewählten
Menüpunkt. Sie wird in der @{"Konfigurations-Datei" link Einstellungen} gesichert.

Die Einstellung wirkt sich auch auf die Ausführung der @{"Startup-Befehle" link StartKomm} aus.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE FenAnAus "Fenster ein- oder ausschalten"

Durch das @{"Fenster-System" link Fenster} von M&M können Sie beliebig
Fenster auf dem Bildschirm des M&M Editors ein- oder ausschalten.
Ausnahme: Das Screens-Fenster.

Sie können das einmal durch Anklicken des CLOSE-Gadgets des jeweiligen
Fensters oder durch Anwahl eben dieses Menüpunktes. Ein eingeschaltetes
Fenster erkennen Sie am Haken vor dem jeweiligen Menüpunkt.

Die betreffenden Fenster (Buttons, Menüs, Anzeigen) öffnen sich erst,
wenn sich ein Screen im Speicher befindet (d.h. die Screen-Liste im
Screens-Fenster ist nicht leer). Folglich können Sie diese Menüpunkte
erst anwählen, wenn ein Screen im Speicher ist (z.B. durch @{"Öffnen" link Oeffnen}
eines Projektes oder durch Anwahl von "Neu" im Screens-Fenster).

Die aktuellen Einstellungen werden in der @{"Konfigurations-Datei" link Einstellungen} gesichert.

@ENDNODE


@NODE Piktos "Piktogramme erzeugen"

Sie bestimmen durch die Anwahl dieses Menüpunktes, ob bei der @{"Speicherung" link Speichern}
eines Projektes ein Workbench-Icon erstellt werden soll.

Die aktuelle Einstellung erkennen Sie am Haken vor diesem Menüpunkt.

Als Projekt-Icon wird das Icon "M&M.icon" im M&M-Verzeichnis benutzt.
Falls es nicht zu finden ist, das Standard-Projekt Icon der Workbench.

@ENDNODE


@NODE Einstellungen "Einstellungen speichern"

Die aktuelle Konfiguration wird gesichert. Sie beinhaltet:

  - von allen @{"Fenstern" link Fenster}: y-Position, ob eingeschaltet oder nicht
  - den @{"Modus des Testlaufs" link PlayerModi}
  - die Positionen und Größe des Datei-Requesters
  - die Positionen und Größe des Zeichensatz-Requesters
  - die Einstellung, ob @{"Icons" link Piktos} beim Speichern erstellt werden soll oder nicht.

Die Konfiguration wird unter dem Namen "M&M.config" stets in dem Verzeichnis
gespeichert, von dem aus der "MMEditor" gestartet wurde.

Konnte bei Programm-Start keine Konfigurations-Datei gefunden werden,
werden automatisch die Vorgaben benutzt.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE KommandoKopieren "Kommando kopieren..."

Wenn man z.B. immer gleiche Buttons oder Menüs auf verschiedenen
Screens erstellen möchte (so z.B. die Pulldown-Menüs beim Zuerst!.M&M Projekt),
so ist es sehr mühselig, jedesmal die gleichen Kommandos einzugeben.
Deswegen wurde die Möglichkeit, Kommandos inkl. ihrer Abfragen zu kopieren,
in den MMEditor integriet.

Nach Aufruf erscheint ein Fenster mit zwei Listen:
Die linke Liste gibt an, WAS kopiert werden soll, die rechte WOHIN.

Jede Liste kann entweder die Kommandos sämtlicher Buttons eines
Projektes oder die sämtlicher Pulldown-Menüs enthalten. Umgeschaltet
wird mit Hilfe der Gadgets unterhalb der Liste.

Innerhalb der linken Liste kann man sich - wie in allen anderen
Listen des MMEditors - mit Hilfe der Cursor-Hoch und -Runter
Tasten bewegen; geshiftet wird an den Anfang bzw. an das Ende
gesprungen. Innerhalb der rechten Liste funktioniert das mittels
der Cursor-Rechts und -Links Taste.

Durch Anklicken von "Kopieren" wird das Kommando kopiert. Ist
"inkl. Abfrage" aktiviert, wird auch die Abfrage mitkopiert.

Verlassen wird das Fenster mit "Abbruch" oder mit "Kopieren und beenden".

@ENDNODE

@NODE ShellStart "Shell starten"

Sie können auf dem Bildschirm des Editors eine Shell starten,
um irgendwelche AmigaDos-Operationen vorzunehmen.

Wie die Shell gestartet werden soll, können Sie mit Hilfe des
@{"Merkmals SHELLSTART" link EdToolTypes} festlegen.

Voreingestellt ist:

  NewShell "CON:0/0/400/200/CLOSE/MMShell/SCREENMMEditor


@ENDNODE

@NODE EditorStart "Editor starten"

Wenn Sie schnell einen Text oder etwa ein AmigaDos Skript
erstellen wollen, können Sie mit Hilfe dieses Menü-Punktes
einen ASCII-Editor aufrufen.

Den Befehl, der den Editor aufruft, können Sie mit Hilfe des
@{"Merkmals EDSTART" link EdToolTypes} festlegen.

Voreingestellt ist eine Start des original Commodore Editors
mittels der Befehlssequenz

  C:Ed FROM:CON:0/0/400/200/AUTO/CLOSE/Editor/SCREENMMEditor


@ENDNODE

@NODE PaintStart "Malprogramm starten"

Mit diesem Menü-Punkt können Sie ein beliebiges Mal-Programm
aufrufen. Beachten Sie bitte, daß Sie ausreichend freien Speicher
zur Anwendung dieser Funktion haben sollten...

  Voreingestellt ist:

    DPaint:DPaint


@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE Abfrage "Abfragen"

Vor der Ausführung des eigentlichen Befehls können Parameter vom Benutzer
abgefragt werden. Die Antworten werden in Umgebungs-Variablen gespeichert.
Diese können von AmigaDos aus durch

  - den AmigaDos-Befehl "GetEnv" oder
  - durch Voranstellen des "$"-Zeichens in Befehlen und Skripten

verarbeitet werden.


Die Abfrage besteht aus folgenden Elementen:

  1. dem Abfragetyp
  2. dem @{"Abfragetext" link AbfrText}
  3. den Namen einer @{"Umgebungs-Variablen" link AbfrEnvs}, in die das Ergebnis der
     Abfrage gespeichert werden soll.

Abgefragt werden kann:   Ein Dateiname
                         Ein Verzeichnis-Name
                         Eine Textzeile

                         Ob Ja oder Nein        (die Befehle werden nur
                         Ob Okay oder Abbruch.   ausgeführt, wenn der
                                                 Benutzer Ja/Okay wählt)

                         Informations-Ausgabe   (gibt nur den Abfragetext aus)


Übersicht:

--------------------------------------------------------------------------
Abfragetyp   | Es erscheint      | Abfragetext ist | In der Umg.Var wird |      |
(1.)         |                   | (2.)            | gespeichert  (3.)   |
==========================================================================
DATEINAME    | Datei-Requester   | Titel des Req.  | kompletter Dateiname|
             |                   |                 |                     |
-------------+-------------------+-----------------+---------------------|
VERZEICHNIS  | Datei-Requester   | Titel des Req.  | Verzeichnisname     |
             | nur Verzeichnisse |                 | plus "/"            |
-------------+-------------------+-----------------+---------------------|
TEXTZEILE    | Requester mit     | Über der        | Eingegebener Text   |
             | Eingabezeile      | Eingabezeile    |                     |
-------------+-------------------+-----------------+---------------------|
JA/NEIN      | Requester         | Requester-Text  | nichts              |
             |                   |                 | Komm. nur wenn "Ja" |
-------------+-------------------+-----------------+---------------------|
OKAY/CANCEL  | Requester         | Requester-Text  | nichts              |
             |                   |                 | Komm. nur w. "Okay" |
-------------+-------------------+-----------------+---------------------|
INFORMATION  | Requester         | Requester-Text  | nichts              |
             |                   |                 |                     |
--------------------------------------------------------------------------


Hinweis:
  Bei JEDEM Aufruf des Datei-Requesters - sei es als Datei- oder
  als Verzeichnis-Abfrage - wird

  der ausgewählte Dateiname   in die Umgebungsvariable MMFile
  das ausgewählte Verzeichnis in die Umgebungsvariable MMPath

  gespeichert. Beide können somit z.B. in Skripten benutzt werden.


@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE AbfrText "Abfragetext"

Der Abfragetext kann in das String-Gadget eingetragen werden.
Bei den Abfragen nach Datei oder Verzeichnis erscheint er als Titel
des Datei-Requester. Bei Abfrage einer Textzeile wird er über der
Eingabezeile eingeblendet.

Bei den Ja/Nein- und Okay/Cancel-Requester erscheint der Text als
Frage oder Hinweis im Requester. Durch die Tastenkombination

  AMIGA LINKS + CONTROL + j

wird im Text einen Zeilenvorschub eingefügt. Im Eingabegadget für
den Text erscheint dieser als kleines Kästchen - wenn jedoch der
Requester auf dem Player Bildschirm erscheint, wird an den
betreffenden Stellen auf die nächste Zeile umgeschaltet.

ACHTUNG! Als neues Feature (ab V3.13) kann jetzt alternativ
auch die Zeichenfolge || als Zeilentrenner benutzt werden.

    Bsp.: Hallo Leute,||wie geht's?!


In den Beispielen kann man sich das einmal anschauen.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE AbfrEnvs "Umgebungsvariablen"

AmigaDos verwaltet sog. Umgebungs-Variablen. Die Inhalte dieser Variablen
werden im Pseudo-Verzeichnis "ENV:" (liegt meistens im RAM:) gespeichert.
Sie können in Befehlen oder Skripten leicht abgefragt werden. Außerdem
existieren die Befehle

  "GetEnv" (Auslesen einer Umgebungsvariablen) und
  "SetEnv" (Setzen einer Umgebungsvariablen).

In Befehlen oder Skripten wird die Zeichenfolge

  "$Umgebungsvariable"

durch den Inhalt derselbigen ersetzt. Angenommen, Sie haben im MMEditor
als Befehl für einen Button folgendes eingegen:


         Abfrage: Datei       speichern in: Dateiname

                  Bitte Dateinamen wählen!


        Kommando: DOS Befehl ausführen

                  Type "$Dateiname" to prt:"


dann würde folgendes passieren:

  Auf dem Bildschirm des Players würde nach Anklicken des Buttons ein
  Datei-Requester mit der Aufforderung "Bitte Dateinamen wählen!" erscheinen.
  Wählt jetzt der Benutzer z.B. die Datei "RAM:MeinText.asc" aus,
  dann würde zunächst eben dieses Ergebnis "RAM:MeinText.asc" in die
  Umgebungsvariable Dateiname gespeichert.

  Anschließend wird das angegebene AmigaDOS-Kommando ausgeführt, allerdings
  "versteht" AmigaDos, daß der Text nach dem $ der Name einer Umgebungs-
  variablen ist und ersetzt diesen durch den Inhalt der Variable.
  Und wie oben dargestellt, ist der aktuelle Inhalt eben "RAM:MeinText.asc".

  Ausgeführt wird also das Kommando:

    Type "RAM:MeinText.asc" to prt:

  Übrigens: Die Gänsefüßchen ("") haben lediglich den Sinn, daß AmigaDos auch
  dann, wenn der Inhalt der Variablen Leerzeichen enthält, den Text richtig
  einsetzt. Beispiel:

                   Dateiname enthält: RAM:Brief An Bundeskanzler.asc
                   Lautet der Befehl: Type $Dateiname
  würde AmigaDos folgendes ausführen: Type RAM:Brief An Bundeskanzler

  also Type RAM:Brief, was hier falsch ist und durch Einsatz der
  Gänsefüßchen verhindert werden kann.

  Mehr Informatioen zum Thema Umgebungs-Variablen finden sich im
  AmigaDos Handbuch ("GetEnv, "SetEnv" und "Umgebungsvariablen") und
  für den erfolgreichen Einsatz von M&M lohnt es sich wirklich, diese
  Kapitel noch einmal nachzulesen !

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE Kommandos "Kommandos"

Folgende Kommandos können ausgeführt werden:

  @{"Amiga-Dos Befehle" link KommDos}
  @{"ARexx Befehle    " link KommRxx}
  @{"Textdatei anzeigen" link KommTxt}
  @{"anderen Screen anzeigen" link KommScr}
  @{"M&M Menü beenden " link KommStp}

  oder auch gar kein Kommando.

"Zurück": bestimmt, ob nach Ausführung des Befehls zurück zum M&M Menü
gekehrt oder dessen Ausführung gestoppt werden soll.

"Optionen": läßt Sie weitere Optionen zur Durchführung des Kommandos
auswählen.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE KommDos "DOS-Befehl ausführen (Kommando)"

Führt jedes beliebige Amiga-Programm aus.

Folgende Optionen stehen einem zur Verfügung (nach Anklicken von "Auswahl"):

  - Die @{"Ausmaße des Ausgabe-Fensters" link GetFen}.

  - Der Titel des Ausgabe-Fensters.

  - Screen        : Das Ausgabe-Fenster erscheint auf dem aktuellen
                    Screen. Ist diese Option nicht angewählt, erscheint
                    es auf der Workbench.

  - Auto          : Das Ausgabe-Fenster erscheint nur, wenn auch
                    wirklich Text ausgegeben wird.

  - Warten        : Das Ausgabe-Fenster bleibt nach Ausführung des
                    Befehls solange stehen, bis der Benutzer das
                    Close-Gadget anwählt oder Ctrl+\ drückt.

  - A-Syncron     : Das Dos-Kommando wird asyncron ausgeführt, d.h.
                    daß das Kommando quasie im Hintergrund läuft.
                    Die Anwahl dieser Option hat also den Effekt,
                    den die Benutzung des Kommandos "Run Kommando"
                    im CLI hat.

  - Stack         : Einige Programme benötigen einen größeren
                    Stack-Speicher. Wieviel Stack ein Programm
                    benötigt, können Sie aus dessen Workbench-Icon
                    mittels des Workbench Befehls
                    "Piktogramme/Information" erfahren (oder
                    natürlich aus dem Handbuch...)

  - WarteZeiger
    setzen        : Ist diese Option angewählt, so wird auf dem
                    FENSTER VON MMPLAYER (!!) der Maus-Zeiger in
                    eine WAIT Mitteilung bzw. in eine Uhr (ab V39)
                    umgewandelt. Diese Option läßt sich nicht anwählen,
                    wenn auch 'A-Syncron' angewählt ist.

  - Schließ-Gagdet,
  - nicht verschiebbar,
  - kein Größen-Gadget,
  - kein Rahmen,
  - im Hintergrund: Bestimmen das Aussehen des Ausgabe-Fensters.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE KommRxx "ARexx Befehl senden (Kommando)"

Hiermit können Sie Arexx-Befehle oder -Programme ausführen lassen.

"Port" - Wohin der Befehl/Programm gehen soll.

Wollen Sie ein Arexx-Programm ausführen lassen, muß als Port "REXX"
(für das Programm RexxMast) eingetragen werden.

Soll nur ein ARexx Kommando (z.B. Say) ausgeführt werden,
muß "als Befehlszeile" angewählt sein.

Das Programm MMPlayer verfügt selbst auch über einen @{"ARexx-Port" link PlayerRexxD}.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE KommTxt "Textdatei anzeigen (Kommando)"

Zeigt eine beliebige Textdatei an.

Folgende Optionen stehen einem zur Verfügung (nach Anklicken von "Auswahl"):

  Die @{"Ausmaße des Text-Fensters" link GetFen}.
  Welcher Zeichensatz verwendet werden soll.
  Ob der Text auf dem Screen oder auf der Workbench dargestellt werden soll.

Außerdem kann man hier bequem festlegen, welcher Text angezeigt werden soll.
Die Textanzeige beruht auf dem @{"Textanzeiger" link TextViewD} "mMore".
Es ist weitgehend kompatibel zum original "More" von Commodore
- zumindestens was die Tastensteuerung angeht. Außerdem ist es einigermaßen
veraltet, weswegen es zur nächsten Version umprogrammiert werden wird.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE TextViewD "M&M Textanzeige-Programm"

Nach Einladen des ASCII-Files hat man folgende Möglichkeiten, die
Textanzeige zu beeinflußen:

  LEERTASTE             Nächste Seite
  RETURN                Nächste Zeile
  <                     Erste Seite
  >                     Letzte Seite
  BACKSPACE             Vorherige Seite
  q oder CTRL+C         Textanzeige beenden

  F1                    bis 10% des Textes anzeigen
  F2                    bis 20%  "    "        "
  ...                   ...
  F9                    bis 90%  "    "        "
  F0                    bis zum Ende anzeigen

  h                     bringt eine Hilfsseite auf den Bildschirm
                        (zurück zur Textanzeige mit LEERTASTE)

Wie man sieht, decken sich die Funktionen so ziemlich mit denen
vom original "More" von Commodore.
Die nächste Seite kann außerdem auch die Druck der linken Maustaste ange-
zeigt werden.

Die Sprungfunktion der Funktionstasten läuft z.Zt. recht ungenau.

mMore bietet die Möglichkeit, seine Texte in beliebigen Farben darzustellen.
Dazu fügt man einfache Kommandos in den Text ein. Folgende Kommandos gibt es:


     Zeichen im Text    ausgeführte Funktion

        \+NN  \-NN      Umschalten auf Farbe NN; Zurück auf Standard-Farbe 1
                        Die Farbnummer MUß zweistellig sein
                        (also \+05 und NICHT \+5)

        \+UN  \-UN      Unterstreichen ein; aus

        \+IT  \-IT      Italic ein; aus

        \+BO  \-BO      Bold ein; aus

        \+RS            Normaler Style mit Farbe 1


    Beispiel:

    \+03Commodore\-01 Computer    das Commodore erscheint in Farbe 3

    \+02\+IT\+UNCommodore\+RS     Commodore erscheint in Farbe 2, außerdem
                                  wird es in unterstrichener Schrägschrift
                                  dargestellt.


Will man ein bestimmtes Wort im ganzen Text in einer bestimmten Farbe
erscheinen lassen, so benutzt man am besten die Suchen und Ersetzen-Funktion
des Editors.

               Suche: Amiga
             Ersetze: \+06Amiga\+01

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE KommScr "Auf anderen Screen umschalten (Kommando)"

Wählen Sie aus, auf welchen Screen in der aktuellen Liste der momentanen
verfügbaren Screens umgeschaltet werden soll.

Wollen Sie bei der Ausführung des Menüs einfach nur ein IFF-Bild anzeigen
lassen, wählen Sie mit "andere Screens" ein solches aus. Die Anzeige eines
solchen Bildes wird durch Anklicken desselbigen oder durch Drücken der
Leertaste beendet. Es wird dann zurück auf den ursprünglichen Bildschirm
geschaltet.

Achtung: Soll nur eine IFF Datei angezeigt werden, wird der aktulle
         Screen NICHT gelöscht, sondern lediglich in den Hintergrund
         geschaltet. Es sind dann bei der Ausführung des Menüs demnach
         mind. 2 Screens gleichzeitig geöffnet - hinzu kommen Workbench
         und eventuell andere geöffnete Bildschirme (Speicherplatz!).
         Aber wie gesagt, daß gilt nur für anzuzeigende Screens, die sich
         nicht in der Screenliste befinden...

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE KommStp "Menü beenden (Kommando)"

Beendet das Menü.
Es kann ein Rückgabe-Wert (an AmigaDos) angegeben werden (mit "Auswahl").
Als vorgegebene Werte können OKAY, WARN, ERROR und FAIL (s. AmigaDos Handbuch)
gewählt werden.

Achtung: Das Menü wird (logischerweise) nur dann beendet,
         wenn NICHT "Zurück" angewählt wurde.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE GetFen "Ausgabe-Fenster bestimmen"

X, Y, Breite und Höhe geben Position und Ausmaß des Ausgabe-Fensters an.

Wählt man "Zeigen" an, erscheint das Ausgabe-Fenster. Man kann es jetzt
auch direkt durch Verschieben und Vergrößern/Verkleinern verändern, die
Werte in X, Y, Breite und Höhe ändern sich jeweils dementsprechend.

Nach "Schließen" wird das Ausgabe-Fenster wieder geschlossen.

@ENDNODE


@REMARK *****************************************
@REMARK *                                       *
@REMARK *   Beschreibung des Player Programmes  *
@REMARK *                                       *
@REMARK *****************************************


@NODE MMPlayerD "MMPlayer - Menus & More Player"

Mit dem Programm "MMPlayer" können Sie Menüs, die Sie mit dem Menus & More
Editor erstellt haben, ablaufen lassen.

Dazu öffnet MMPlayer einen @{"Public-Screen" link PlayerBildschirm} und
einen @{"ARexx-Port" link PlayerRexxD}.

Beide haben den Namen MMPlayer (wenn MMPlayer mehrmals gestartet wird,
MMPlayer_1, MMPlayer_2 usw).


Start von "MMPlayer" von der Workbench aus:

  - Nach Anklicken des Piktogramms von "MMPlayer" erscheint in
    Datei-Requester, mit dem Sie ein M&M Projekt auswählen können.

  - Anklicken eines Menü-Projektes, Shift-Taste drücken und dann
    das Piktogramm von "MMPlayer" anklicken.

  - Durch die Angabe von "MMPlayer" als Standardprogramm (default tool)
    in der Information des Projektes.

  Hinweis: Sie können beim Start per Workbench
           verschiedene @{"Merkmale" link PlayerMerkmale} angeben.


Start von "MMPlayer" vom CLI aus:

  - Eingabe von  "MMPlayer Projektname"


Wenn Sie den Ablauf eines Menüs abbrechen wollen und der Ersteller keine
entsprechende Option ("Menü beenden") in das Menü aufgenommen hat, können
Sie den Abbruch auf jeden Fall durch folgende Tastenkombination vornehmen:

  1. Ctrl- Taste drücken und gedrückt halten
  2. Escape-Taste drücken.

Es wird dann gefragt, ob Sie das Menü abbrechen wollen.
Diese Unterbrechungsmöglichkeit kann mit Hilfe des @{"ToolTypes BREAK" link PlayerMerkmale}
auch abgeschaltet werden.

Befinden sich bei Beendigung des Menüs noch Fenster auf dem Bildschirm
des M&M Players bzw. wird dieser noch von fremden Tasks benutzt,
so erscheint ein Requester, der auf diesen Umstand hinweist.
Das Fenster bzw. Task muß dann vom Benutzer erst beseitigt werden.

Damit auch der Player in deutscher Sprache erscheint, muß sich

        die Datei deutsch/MMPlayer.catalog

        im Verzeichnis LOCALE:catalogs/deutsch

befinden!

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE PlayerMerkmale "Merkmale (ToolTypes) von MMPlayer"

Folgende Merkmale können im Icon von MMPlayer angegeben werden:

  WINDOW=doswin

    "doswin" muß eine gültige AmigaDos Fenster-Beschreibung darstellen.
    Auf dieses Fenster werden beim Ablauf des Menüs die Ausgaben
    der beiden @{"Start-Kommandos" link StartKomm}des Screens gelenkt.
    Wurde dieses Merkmal nicht angegeben, wird auf die Vorgabe (s.o.)
    zurückgegriffen.

    Vorgabe: CON:0/0/400/200/M&M/AUTO/CLOSE/WAIT


  ERRORREPORT=ON/OFF

    Tritt beim Ausführen eines DOS-Befehls ein Fehler auf, so erscheint
    eine umfangreichere Fehlermeldung, wenn bei diesem Merkmal "ON"
    angegeben wird. Ist das nicht der Fall, so könnte der Fehler dem
    Benutzer des Menüs verborgen bleiben.

    Vorgabe: ON


  BREAK=ON/OFF

    Normalerweise kann man Menüs mit der Tastenkombination CTRL+ESCAPE
    abbrechen. Durch Angabe von BREAK=OFF kann man dieses abschalten.

    Vorgabe: ON

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE PlayerRexxD "ARexx-Port des M&M Players"

Beim Start öffnet der Player automatisch einen eigenen ARexx-Port
mit dem Namen "MMPlayer".

Wenn bereits ein Menü läuft und dann ein zweites Menü mit dem Player
gestartet wird, so enthält der ARexx-Port dieses "zweiten" Players
die Bezeichnung "MMeditor_1", ein eventueller dritter Player "MMEditor_2"
usw.

Wenn man mehr über die Benutzung der ARexx-Kommandos des Players
erfahren möchte, so wird empfohlen, sich die Dateien

        - Install.rexx       und
        - examples/RexxTest.rexx

einmal näher anzuschauen. Sie enthalten funktionsfähige ARexx-Skripts.

Zur Zeit versteht der Player folgende ARexx Kommandos:

(Hinweis: Int = Zahlenwert
          Str = String
         Bool = Boolean Wert; 0=FALSE, 1=TRUE)   )


* KOMMANDO: Quit
   AUFGABE: beendet die Ausführung des gerade laufenden Menüs.
      ARGS: -

* KOMMANDO: MMRexxDebug [on:Bool]
   AUFGABE: Umschalten des Debug-Modes. Ist dieser Modus eingeschaltet,
            erscheint jedes Mal, wenn der Player ein ARexx-Kommando
            empfängt, ein Requester mit eben diesem Kommando samt
            Argumente. Man kann so kontrollieren, ob auch die richtigen
            Kommandos ankommen.
      ARGS: on=0 kein debugging
              =1 debug mode an

* KOMMANDO: AlohaPlayer
   AUFGABE: Bringt den Player Screen in den Vordergrund und aktiviert ihn.
      ARGS: -

* KOMMANDO: PlayerToFront
   AUFGABE: Bringt den Player Screen in den Vordergrund.
      ARGS: -

* KOMMANDO: PlayerToBack
   AUFGABE: Bringt den Player Screen in den Hintergrund.
      ARGS: -

* KOMMANDO: PlayerPos [deltaX:Int] [deltaY:Int]
   AUFGABE: Bewegen des Player Screens
      ARGS: deltaX - relative horizontale Bewegung in Pixel
            delatY - relative vertikale Bewegung in Pixel

* KOMMANDO: SwitchTitle [on:Bool]
   AUFGABE: An- oder Ausschalten des Screen Titels vom Player.
      ARGS: on - 0=Titel nicht anzeigen
                 1=Titel anzeigen

* KOMMANDO: SetTitle [newtitle:Str]
   AUFGABE: Neuen Titel setzen.
      ARGS: newtitle - der neue Titel des Screens

* KOMMANDO: SwitchButton [nr:Int] [on:Bool]
   AUFGABE: Einen M&M Button an- oder ausschalten.
      ARGS: nr - Nummer des Buttons.
                 0 ist der erste in der Liste, 1 der zweite, ...
            on - 0=Auschalten. Button wird geghosted.
                 1=Wieder einschalten.
   HINWEIS: Nachdem ein Button ausgeschaltet wurde, läßt sich seine
            schraffierte ("geghostete") Darstellungsweise leider
            z.Zt. nicht wieder rückgängig machen. Ich arbeite dran.

* KOMMANDO: SwitchScreen [towhich:Str]
   AUFGABE: Auf anderen Screen umschalten. Gleiche Funktion wie
            das gleichnamige @{"Button-Kommando" link KommScr}.
      ARGS: towhich - Name des Screens, zu dem umgeschaltet
                      werden soll

* KOMMANDO: Query [what:Str]
   AUFGABE: Mit dieser Funktion kann man mehr Informationen über
            das gerade laufende Menü erhalten. Das jeweilige Ergebnis
            wird in der ARexx Variablen RESULT gespeichert.
      ARGS:     PLLEFT - linke Ecke des Player Screens
                 PLTOP - obere Ecke des Player Screens
               PLWIDTH - Weite des Player Screens
              PLHEIGHT - Höhe des Player Screens
              PLPLANES - Anzahl der Bit-Planes, die vom Player Screen
                         gerade benutzt werden
              PLCOLORS - Anzahl der Farben, die im Player Screen
                         benutzt werden können
           MMREXXDEBUG - Debug Modus an? (s.o.)
              ISGERMAN - Wird zur Zeit die deutsche Sprache benutzt?

* KOMMANDO: WaitForLMB
  AUFGABE: Die Ausführung des Menüs wird solange gestoppt, bis der
           Benutzer die linke Maustaste oder die Leertaste drückt.
     ARGS: -
     NOTE: Die Anzeige der Displays (Zeit, Speicher,...) stoppt ebenfalls!

* KOMMANDO: SetWaitPointer
   AUFGABE: Setzt den Wartezeiger...
      ARGS: -

* KOMMANDO: ResetPointer
   AUFGABE: ...und schaltet zurück zum normalen.
      ARGS: -

* KOMMANDO: Req [text:Str] [gadget:Str]
   AUFGABE: Ein normaler (Informations-)Requester wird erstellt.
      ARGS:   text - Der Text im Requester. Linefeeds können
                     durch Angabe von '||' erstellt werden.
                     Bsp.: "Moin Moin,||wie geht es ?!"

            gadget - Der Text der Gadgets. Für jedes zu erzeugende
                     Gadget einen Text, getrennt mit einem '|'
                     Bsp.: "Nochmal versuchen|Ignorieren|Abbruch"

* KOMMANDO: ReqFile [hail:Str] [yourFile:Str]
   AUFGABE: Zur Erstellung eines ASL Datei-Requester.
      ARGS:     hail - Titel des Requesters
            yourFile - Vorgabe für den Dateinamen

* KOMMANDO: ReqFile [hail:Str] [yourDir:Str]
   AUFGABE: Zur Erstellung eines ASL Verzeichnis-Requester.
      ARGS:     hail - Titel des Requesters
            yourFile - Vorgabe für den Verzeichnisnamen
   

* KOMMANDO: ReqString [hail:Str] [yourText:Str]
   AUFGABE: Zur Erstellung eines Textzeilen-Requesters.
      ARGS:     hail - Titel Text
            yourText - Vorgabetext

* KOMMANDO: FileExists [filename:Str]
   AUFGABE: Testet, ob ein(e) Datei/Verzeichnis besteht. Ist das
            der Fall, wird eine 1 zurückgegeben, ansonsten eine 0.
      ARGS: filename - Dateiname der zu prüfenden Datei.

* KOMMANDO: SetColor [nr:Int] [r:Int] [g:int] [b:Int]
   AUFGABE: Eine beliebige Farbe verändern.
      ARGS: nr - der zu ändernden Farbe
            r -
            g -
            b - die neuen Rot-, Grün- und Blau-Anteile der Farbe

* KOMMANDO: DrawColor [nr:Int]
   AUFGABE: Setzt die aktuelle Zeichenfarbe. Die nachfolgenden
            Draw-Befehle benutzen diese Farbe bei der Ausführung.
      ARGS: nr - der zu setzenden Farbe

* KOMMANDO: DrawPixel [x:Int] [y:Int]
   AUFGABE: Zeichnet ein Pixel an Position x,y in der aktuellen
            Zeichenfarbe.
      ARGS: x - horizontale Position
            y - verticale Position

* KOMMANDO: DrawLine [x1:Int] [y1:Int] [x2:Int] [y2:Int]
   AUFGABE: Zeichnet eine Linie von x1,y1 bis x2,y2
      ARGS: muß das noch erklärt werden?!!  :-))

* KOMMANDO: DrawRectangle [x1:Int] [y1:Int] [x2:Int] [y2:Int]
   AUFGABE: Zeichnet eine Rechteck von x1,y1 bis x2,y2
      ARGS: wie oben!
                          
* KOMMANDO: DrawRectFill [x1:Int] [y1:Int] [x2:Int] [y2:Int]
   AUFGABE: Zeichnet ein ausgefülltes Rechteck von x1,y1 bis x2,y2
      ARGS: wie oben!
                          
* KOMMANDO: DrawCircle [x1:Int] [y1:Int] [x2:Int] [r:Int]
   AUFGABE: Zeichnet einen Kreis mit Mittelpunkt x1,y2 im Radius r.
      ARGS: wie oben!
                          
* KOMMANDO: DrawText [x1:Int] [y1:Int] [text:Str]
   AUFGABE: Gibt einen Text an Position x1,y2 aus.
      ARGS:   x1 - X Position
              y1 - Y Position
            text - der auszugebende Text

* KOMMANDO: FloodFill [x1:Int] [y1:Int]
   AUFGABE: Füllt die Umgebung von x1,y2
      ARGS: x1 - X Position
            y1 - Y Position

       

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE PlayerBildschirm "Bildschirm des M&M Players"

Der Bildschirm, den das Programm "MMPlayer" öffnet um darauf die IFF
Menü-Bilder darzustellen, ist ein sog. Public-Screen. Das bedeutet,
daß Sie auch von anderen Anwendungen - etwa AmigaDos - aus Zugriff
auf diesen Screen haben.

Der Name des Public-Screens lautet "MMPlayer" (muß noch ein Screen
geöffnet werden, weil ein zweites Menü gestartet wurde, "MMPlayer_1",
bei einem dritten Screen "MMPlayer_2" usw.)

So  können Sie z.B. durch folgende AmigaDos Anweisung auf dem
Bildschirm des Players eine Shell öffnen:

  NewShell CON:0/0/400/100/MeineShell/SCREENMMPlayer

Bitte schlagen Sie die entsprechenden Hinweise zu den Public Screens
in Ihrem AmigaDos Handbuch nach!

@ENDNODE


@REMARK *************************
@REMARK *                       *
@REMARK *   MMReq Werkzeug      *
@REMARK *                       *
@REMARK *************************


@NODE MMReqD "MMReq - Menus & More Requester Hilfsprogramm"

MMReq ist ein kurzes Hilfsprogramm, mit dem man von einem Shell-Skript aus
die M&M Abfrage-Requester (Datei, Verzeichnis, Textzeile, OkayCanc, JaNein)
auf den Bildschirm des Players bringen kann.

Leider konnte das Programm noch nicht richtig fertig gestellt werden,
weswegen es auch die Versions-Nummer 0.9 trägt.
Zur Zeit funktioniert der File-Requester nicht auf dem Bildschirm
des Player... Ich arbeite dran :-)


Der Aufruf lautet folgendermaßen:

  MMReq [reqText] [reqType]

wobei reqType z.Zt. "OKCANC" oder "YESNO" sein darf.

Ist der Bildschirm des Players geöffnet, erscheint der entsprechende Requester
auf diesem Bildschirm. Wählt der Benutzer die negative Antwort (Cancel oder Nein),
wird an das DOS ein Returnwert von 10 (=Fail) zurückgegeben.
Für die positive Antwort ein Returnwert von 0.

Ist der Player nicht aktiv, erscheint eine Fehlermeldung.
Sind mehrere Player aktiv, erscheinen die Requester stets nur auf dem
zuerst geöffneten (PublicScreen Name = MMPlayer)

Hier ein Beispiel für den Aufruf innerhalb eines Skriptes:

        Failat 20
        MMReq YESNO "Text-Dateien kopieren?"
        IF NOT ERROR
          Copy #?.txt to RAM:
        ENDIF
        MMReq YESNO "Alte Dateien beibehalten?"
        IF ERROR
          Delete #?.txt
        ENDIF;

Ein anderes Beispiel finden Sie in der Datei "Install.bat", die
vom M&M Projekt "Zuerst!.M&M" zur Installation aufgerufen wird.

Achtung! Neuerdings kann man die Zeichenfolge || als Zeilentrenner
angeben.


@ENDNODE


@REMARK *************************
@REMARK *                       *
@REMARK *  MMAnalyse Werkzeug   *
@REMARK *                       *
@REMARK *************************


@NODE MMAnalyseD "MMAnalyse - Menus & More Hilfsprogramm"

Grundätzlich hat MMAnalyse nur eine einzige Aufgabe: die Dateinamen
aller Screens, die von einem M&M Projekt benutzt werden, auszugeben.

Menus & More speichert mit den M&M Projekten auch die Dateinamen der
einzelnen Screens ab. Beim Ablauf des Menüs kann es nun passieren,
daß der Player die Dateien nicht wiederfindet, so daß der Screen nicht
geladen werden kann. Mit MMAnalyse kann man nun herausfinden, auf
welche IFF Dateien zurückgegriffen werden sollte.

Außerdem gibt es noch einen zweiten Anwendungsbereich: Wenn ein
komplettes Menü-Projekt inklusive aller IFF Bilder kopiert werden
soll, kann innerhalb eines Skriptes eine entsprechende Liste aller
Screens mit MMAnalyse erzeugt werden.

Mehr Informationen über die einzelnen Screens (z.B. Auflösung und
die beiden StartUp-Kommandos) erhält man durch die Angabe der
Option "FULL".


Start von der Workbench aus:

  - Anklicken eines Projektes, Shift drücken und dann
    MMAnalyse anklicken.

  - MMAnalyse anklicken und Projekt im Datei-Requester auswählen.

  - Die FULL-Option (s.o.) ist bei Start von der Workbench aus
    standardmäßig eingestellt, kann aber durch das Merkmal

      FULL = OFF

    deaktiviert werden.

Start vom CLI aus:

   - Eingabe von

     1> MMAnalyse [projekt] [FULL/S]


@ENDNODE


@REMARK *************************
@REMARK *                       *
@REMARK *     Sonstiges...      *                                               *
@REMARK *                       *
@REMARK *************************


@NODE Beispiele "Beispiel-Projekte, mitgelieferte"

Allgemein läßt sich zu sämtlichen Beispielen sagen, daß es sich durchaus
lohnt, einen näheren Blick auf sie zu werfen - sie enthalten sicherlich
für den ein oder anderen ein guten Tip für die Erstellung von Menüs mit
M&M.

ErstesBeispiel.M&M      Ist eigentlich kein richtiges Menü - vielmehr eine
                        Aufforderung, die entsprechenden Befehle für den Aufruf
                        des Text- oder Malprogrammes selbst im Editor einzutragen
                        und das Ergebnis einmal zu testen....

FuncTest.M&M            Hier kann man einmal sämtliche Möglichkeiten von M&M
                        prüfen. Wurde während der Entwicklung als Test-Programm
                        benutzt. Beim Start wird auf der WB das aktuelle
                        Verzeichnis ausgegeben, deswegen verzögert sich das
                        Erscheinen des Menüs ein wenig.

BigFuncTest.M&M         wie oben, jedoch wird ein übergroßer Screen im
                        Productivity-Modus zur Demonstration der AutoScroll-
                        Funktion geöffnet.

EnhancedEd.M&M          demonstriert die Möglichkeiten, die die Verwendung von
                        ARexx-Befehlen bieten. Benötigt wird der Original
                        Commodore "Ed". Dank der Möglichkeit, Befehle NACH
                        Laden den Screens ausführen zu lassen, wird der
                        Editor jetzt beim Start automatisch gestartet.
                        Leider kann man auch erkennen, daß der Button "Load"
                        nicht funktioniert. Das hat folgenden Grund:
                        Zwar setzt AmigaDos für die Zeichenfolge "$envvar" den
                        entsprechenden Inhalt der Umgebungs-Variablen - NICHT
                        aber ARexx! So versucht der Editor im die Datei
                        "$textfile" zu laden, doch die gibt es natürlich nicht...

LhATool.M&M             Ein kleine Demonstration, wie man den LhA Packer
                        von M&M aus steueren kann. Sicherlich noch
                        ausbaufähig!

M2Dev.M&M               ist schon für M&M 2.8 erstellt worden. Mit diesem
                        Programm kann man Modula-2 Programme erstellen. Es ist zwar
                        auf den Compiler M2Amiga zugeschnitten, unterstützt aber
                        (noch) nicht dessen Projekt Konzept.

MakeV3.1.M&M            ist mein selbst benutztes Make-Projekt für M&M. Es ruft
                        spezielle Skripts auf. Diese wurden natürlich nicht mit
                        in das Beispiele Verzeichnis kopiert (warum auch?),so
                        daß dieses Projekt nur reinen Demo-Zwecken dient.
                        Dieses Project started im Productivity-Modus!

JukeBox.M&M             Diese Demo zeigt, wie man MOD Song Files von einem
                        M&M Menü aus aufrufen könnte. Läuft im Productivity-Modus.

ARexxTest.M&M           Ein Menü, das ein paar Fähigkeiten des ARexx-Portes
                        von M&M demonstriert.

Dubios.M&M              Beispiel für die Gestaltung einer Katalog-Disk.


@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE Versionen "Versionen..."

Versions-Übersicht jetzt nur noch in englischer Sprache! Muß ja auch
nicht ALLES doppelt vorkommen...

@{"Hier klicken, um dorthin zu gelangen..." link Versions}

Grüße an meinen alten, aber treuen Amiga 2000B mit 1MB und 2 LW...

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE Fehler "Bekannte, aber noch nicht behobene Fehler"

MMEditor:
~~~~~~~~~
  Aus mir zur Zeit nicht erklärlichen Gründen wird am Programmende nicht
  sämtlicher Speicher freigegeben.

  Probleme gibt es auch noch mit dem "ASync"-Flag beim Starten eines
  AmigaDos-Programmes. Manchmal (häufig?) läßt sich nach Beendigung
  des Menüs der GURU blicken...

MMPlayer:
~~~~~~~~~
  ASync-Flag Problem (siehe oben)


MMAnalyse:
~~~~~~~~~~

MMReq:
~~~~~~
  IMMER noch nicht komplett fertig gestellt.


Ich arbeite daran...   :-)

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE Zukunft "Die Pläne für die Zukunft"

DIE ZUKUNFT HÄNGT VON DIR AB....
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Für die Version 4.0 neue Elemente auf dem Screen:

  - Datei-Listen und
  - Eingabe-Felder      sowie
  - neuer Textanzeiger
  - Benutzung beliebiger Zeichensätze im MMEditor

Für die Version 7.0:

  - 45 Zillarden Farben-Modus
  - Echtzeit-Ausführung
  - Eingebauter 76 Bit Fraktal-Generator
  - Windows-Kompatibilität
  - Unterstützung von Commodore (wird es C= noch geben?) 1541 Laufwerken
  - Seitenaufprallschutz und Beifahrer-Airbag

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE HighScoreD "High Score speichern"

  - HIGH SCORE SPEICHERN ?!?!

Um es noch einmal deutlich zu sagen: Dies ist kein Spiel!
Nein, auch kein neues WhizBang Grafik Programm. Das einzige, was Sie
mit diesem Programm anfangen können, ist Bildschirm-Menüs zu erstellen!

    @{"   HÄ?!   " link UeberMM}

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE AxelD "Der Programmierer..."

Adresse:  Axel Sodtalbers
          Phillip-Reis-Straße 2-49
          37075 Göttingen

          Tel.: 0551 - 377567

Fragen bitte schriftlich mit Rückumschlag und -Porto an obige Adresse!

Sehr erwünscht sind auch Fehler-Meldungen, Verbesserungsvorschläge und
Anregungen zu M&M - bitte an obige Adresse senden. Herzlichen Dank!

Das M&M Projekt wurde mit dem M2Amiga Compiler der A+L AG erstellt.


Grüße an:
~~~~~~~~~
   Daniela Latz


   Dietmar Jung von Rhein-Main-Soft (besten Dank!)

   Timm Sodtalbers (Danke für CompuServe Support!)

   Redmer, Floyd The Droid, Simon The Sorcerer and the Settlers!

   Die WG, die den Humor gepachtet hat ("Witzischkeit kennt keine Grense"):
     Christoph "Rattattattatt..." Seebo
     Klaus "MamaaAaAa" Hahnenkamp
     Jörn "Das Ding sieht Scheiße aus" Diedrichsen
     Andrea "Empörend!" Hartig
     Thomas "Bunter Bentheimer" Andressen


Besonderen Dank an
~~~~~~~~~~~~~~~~~~
   Mike Oldfield, The Hooters und Fish



This Text © 1994-95 by Axel Sodtalbers, Göttingen.

@ENDNODE

@REMARK ----------------------------------------------------------------

@NODE myIndex "Index of important words"

@{" About Menus & More                           " LINK AboutMM}
@{" About this help guide                        " LINK AboutHelp}
@{" About...                                     " LINK About}

@{" Buttons-window                               " LINK ButWin}

@{" Commands                                     " LINK Commands}
@{" Copy commands...                             " LINK CopyCommands}
@{" Copyright - Your rights                      " LINK Copyright}
@{" Create Icons?                                " LINK CreateIcons}

@{" Displays-window                              " LINK DisWin}

@{" Editing the pulldown menus                   " LINK GetMenus}
@{" Environment variables                        " LINK ReqEnvs}
@{" Example menu projects                        " LINK Examples}
@{" Execute a AmigaDOS command                   " LINK CommDos}
@{" Execute commands always/by request/never     " LINK PlayerModes}

@{" Font used by a menu screen                   " LINK ScrFont}

@{" Installation of Menus & More                 " LINK Installation}

@{" Known, but not fixed errors                  " LINK Errors}

@{" Launch a paint programm                      " LINK LaunchPaint}
@{" Launch editor                                " LINK LaunchEditor}
@{" Launch shell                                 " LINK LaunchShell}
@{" List Of Important Files                      " LINK FileList}
@{" Locale.library                               " LINK Locale}

@{" Menus & More Help Guide                      " LINK Main}
@{" Menus of MMEditor                            " LINK AllMenus}
@{" Menus-window                                 " LINK MenWin}
@{" MMAnalyse - The Menus & More Analyse Tool    " LINK MMAnalyse}
@{" MMEditor - the Menus & More Editor           " LINK MMEditor}
@{" MMEditor's windows                           " LINK Windows}
@{" MMEditor's work screen                       " LINK EdScreen}
@{" MMPlayer - the Menus & More Player           " LINK MMPlayer}
@{" MMPlayer's ARexx port                        " LINK PlayerRexx}
@{" MMPlayer's screen                            " LINK PlayerScr}
@{" MMReq - Menus & More Requester Tool          " LINK MMReq}

@{" Open project                                 " LINK Open}

@{" Plans for the future                         " LINK Future}
@{" Project New                                  " LINK New}

@{" Quit the menu (command)                      " LINK CommStp}
@{" Quit...                                      " LINK Quit}

@{" Requester's text                             " LINK ReqText}
@{" Requests                                     " LINK Requests}

@{" Save project (as)                            " LINK Save}
@{" Save settings                                " LINK SaveConfig}
@{" Saving the High Score                        " LINK HighScore}
@{" Screens-window                               " LINK ScrWin}
@{" Send an ARexx command                        " LINK CommRxx}
@{" Set the output window                        " LINK GetWin}
@{" Setting the button's area                    " LINK GetButton}
@{" Show a textfile (command)                    " LINK CommTxt}
@{" Some clues concerning the menu's buttons     " LINK ButtonHints}
@{" Some Hints concerning pulldown menus         " LINK MenuHints}
@{" Some Information about the menu's screens    " LINK ScreenHints}
@{" Startup commands                             " LINK StartComm}
@{" Switch to other screen (command)             " LINK CommScr}
@{" Switching a window on or off                 " LINK SwitchWins}

@{" Testrun from current screen                  " LINK RunCurrScr}
@{" Testrun from first screen                    " LINK RunFirstScr}
@{" Textviewing with M&M                         " LINK TextView}
@{" The Programmer...                            " LINK Axel}
@{" ToolTypes of MMEditor                        " LINK EdToolTypes}
@{" ToolTypes of MMPlayer                        " LINK PlayerToolTypes}

@{" Versions...                                  " LINK Versions}

@ENDNODE

@NODE myIndexD "Index - wichtige Stichwörter"

@{" Abfragen                                     " LINK Abfrage}
@{" Abfragetext                                  " LINK AbfrText}
@{" Anzeigen-Fenster                             " LINK DisFen}
@{" ARexx Befehl senden (Kommando)               " LINK KommRxx}
@{" ARexx-Port des M&M Players                   " LINK PlayerRexxD}
@{" Auf anderen Screen umschalten (Kommando)     " LINK KommScr}
@{" Ausgabe-Fenster bestimmen                    " LINK GetFen}

@{" Beispiel-Projekte, mitgelieferte             " LINK Beispiele}
@{" Bekannte, aber noch nicht behobene Fehler    " LINK Fehler}
@{" Bestimmen der Fläche eines Buttons           " LINK ButFlaeche}
@{" Bildschirm des M&M Editors                   " LINK EdBildschirm}
@{" Bildschirm des M&M Players                   " LINK PlayerBildschirm}
@{" Buttons-Fenster                              " LINK ButFen}

@{" Copyright - Ihre Rechte                      " LINK CopyrightD}

@{" Der Programmierer...                         " LINK AxelD}
@{" Deutsche Sprache für MMEditor                " LINK LocaleD}
@{" Die Pläne für die Zukunft                    " LINK Zukunft}
@{" DOS-Befehl ausführen (Kommando)              " LINK KommDos}

@{" Editieren des Pulldown-Menüs                 " LINK MenusEdt}
@{" Editor starten                               " LINK EditorStart}
@{" Einstellungen speichern                      " LINK Einstellungen}

@{" Fenster des M&M Editors                      " LINK Fenster}
@{" Fenster ein- oder ausschalten                " LINK FenAnAus}

@{" High Score speichern                         " LINK HighScoreD}
@{" Hinweise zu den Buttons                      " LINK ButHinweise}
@{" Hinweise zu den Pulldown-Menüs               " LINK MenuHinweise}
@{" Hinweise zu den Screens                      " LINK ScreenHinweise}

@{" Index - wichtige Stichwörter                 " LINK myIndex}
@{" Installation von Menus & More                " LINK InstallationD}

@{" Kommando kopieren...                         " LINK KommandoKopieren}
@{" Kommandos                                    " LINK Kommandos}
@{" Kommandos immer/auf Anfrage/nie ausführen    " LINK PlayerModi}

@{" M&M Textanzeige-Programm                     " LINK TextViewD}
@{" Malprogramm starten                          " LINK PaintStart}
@{" Menu von MMEditor                            " LINK AlleMenues}
@{" Menus & More Editor                          " LINK MMEditorD}
@{" Menus & More Help Guide (deutsch)            " LINK MainD}
@{" Menü beenden (Kommando)                      " LINK KommStp}
@{" Menüs-Fenster                                " LINK MenFen}
@{" Merkmale (ToolTypes) von MMEditor            " LINK EdMerkmale}
@{" Merkmale (ToolTypes) von MMPlayer            " LINK PlayerMerkmale}
@{" MMAnalyse - Menus & More Hilfsprogramm       " LINK MMAnalyseD}
@{" MMPlayer - Menus & More Player               " LINK MMPlayerD}
@{" MMReq - Menus & More Requester Hilfsprogramm " LINK MMReqD}

@{" Neues Projekt                                " LINK Neu}

@{" Piktogramme erzeugen                         " LINK Piktos}
@{" Programm verlassen                           " LINK Verlassen}
@{" Projekt Speichern (Als)                      " LINK Speichern}
@{" Projekt Öffnen                               " LINK Oeffnen}

@{" Screens-Fenster                              " LINK ScrFen}
@{" Shell starten                                " LINK ShellStart}
@{" Startup-Befehle                              " LINK StartKomm}

@{" Testlauf des gesamten Menüs                  " LINK TestlaufG}
@{" Testlauf vom aktuellen Screen                " LINK TestlaufA}
@{" Textdatei anzeigen (Kommando)                " LINK KommTxt}

@{" Umgebungsvariablen                           " LINK AbfrEnvs}

@{" Versionen...                                 " LINK Versionen}

@{" Zeichensatz eines Screens                    " LINK ScrZchs}

@{" Über dieses Hilfesystem                      " LINK UeberHilfe}
@{" Über Menus & More                            " LINK UeberMM}
@{" Über...                                      " LINK Ueber}
@{" Übersicht über die M&M-Dateien               " LINK DateiListe}

@ENDNODE
