@database 0e1fe858-0
@master 37.xxx/Docs/XFile.guide
@$VER: 1.8
@author "Tommy Green"
@(c) "© 1991-1995 by Tommy Green"
@remark Created with Heddley v1.1 (c) Edd Dumbill 1994

@node "Main" "XFile Main Documentation"
@next "Introduction"

             ##    ##   #######    ##     ###
              ##  ##     ##  ##            ##
               ####      ##       ###      ##     ####
                ##       ####      ##      ##    ##  ##
               ####      ##        ##      ##    ######
              ##  ##     ##        ##      ##    ##
             ##    ##   ####      ####    ####    ####

                        XFile version 1.8
                   Released 2nd of April, 1995
                     Spread as public domain
               Copyright © 1991-1995 by @{"Tommy Green" link "Author Info" 0}

   @{"  Introduction    " link "Introduction" 0}       @{"  The Graphical User Interface  " link "Graphical User Interface" 0}
   @{"  Distribution    " link "Distribution" 0}       @{"  Configuration Keywords        " link "Configuration Keywords" 0}
   @{"  Responsibility  " link "Responsibility" 0}
   @{"  Compatibility   " link "Compatibility" 0}       @{"  Author information            " link "Author Info" 0}
   @{"  Requirements    " link "Requirements" 0}       @{"  Acknowledgements              " link "Acknowledgement" 0}
@endnode

@node "Introduction" "Introduction"
@next "Distribution"
@prev "Main"
@{b}Introduction@{ub}

XFile is one of the most powerful fileeditors for Xenolink 1.90+.
It has all the basic functions the internal fileeditor has, but
has also a lot of special functions missing in the internal
fileeditor and other fileditors.

XFile is compact and fully resizeable. It adapts itself to
different fontwidths and fontheights if possible. Works well in
different screenmodes, resolutions and enviroments.

XFile has as only file editor full capabilities to @{"test and view" link "File Information Window Menus" 0}
the files.

XFile supports AppIcon, and will always de-iconify as it was when
you iconfied it (all windows reopen exactly as they were!).

XFile is very user-friendly. You can as an experienced Xenolink
SysOp almost use the programs basic functions at once. You should
however sit down and read the documentation carefully before you
decide to use XFile fully out. It has a lot of minor things you
might find useful.

@endnode

@node "Distribution" "Distribution"
@next "Responsibility"
@prev "Introduction"
@{b}Distribution@{ub}

This version of XFile is freely distributable for non-commercial
use.

You can spread this complete archive via AmiNet, ADS, SAN and
other non-profit networks and BBS:es.

@endnode

@node "Responsibility" "Responsibility"
@next "Compatibility"
@prev "Distribution"
@{b}Responsibility@{ub}

The author of XFile will not take any responsibilities for loss or
damage of data or otherwise important information, hardware
problems, your black cat falling out of the window of the 13th
floor or your girlfriend catching you with the neighbour's
@{i}daughter@{ui} (or @{i}son@{ui} depending on which you prefer) in bed.

With other words - @{b}Don't blame me!@{ub}

@endnode

@node "Compatibility" "Compatibility"
@next "Requirements"
@prev "Responsibility"
@{b}Compatibility@{ub}

XFile has so far been tested on the following computer setups;

@{i}Amiga 1200@{ui}  68030/50MHz, 6 MB RAM, Kickstart 3.0/39.106,
            Workbench 3.0/39.29, Xenolink 1.95.
            Owned by author @{"Tommy Green" link "Author Info" 0}

@{i}Amiga 500@{ui}   68000/8MHz, 9 MB RAM, Kickstart 2.04/37.175,
            Workbench 2.1/38.28, Xenolink 1.90.
            Owned by author @{"Tommy Green" link "Author Info" 0}

@{i}Amiga 2000@{ui}  68040/28MHz, 22MB RAM, Kickstart 3.1/40.63,
            Workbench 3.1/40.42, Xenolink 1.95
            Owned by betatester Micke Persson

@endnode

@node "Requirements" "Requirements"
@next "Graphical User Interface"
@prev "Compatibility"
@{b}Requirements@{ub}

XFile requires at least,
                         AmigaDOS 2.04/V37
                         approx. 10000 bytes of stack
                         Xenolink 1.90+
                         ReqTools V38           (included)
                         Textfield.gadget V3.0  (included)

@endnode

@node "Graphical User Interface" "Graphical User Interface"
@next "Main Window"
@prev "Main"
@{b}The Graphical User Interface@{ub}

XFile has both a graphical user interface and menus. The menus
are used mainly to set different parameters and load/save
operations. The graphical user interface with gadgets is where
you will be spending a lot of time, there for it has to be well
designed.

The graphical user interface is divided into five windows, 
@{"main window" link "Main Window" 0}, @{"fileinformation window" link "FileInformation Window" 0}, @{"operation window" link "Operation Window" 0}, 
@{"dateselect window" link "DateSelect Window" 0}, @{"selectarea window" link "SelectArea Window" 0}.

Two of the windows also has menus, @{"main window menus" link "Main Window Menus" 0} and
@{"fileinformation window menus." link "File Information Window Menus" 0}

@endnode

@node "Main Window" "Main window"
@next "FileInformation Window"
@prev "Graphical User Interface"
@{b}Main Window@{ub}

The main window has also @{"menus" link "Main Window Menus" 0}.

At the top in the main window, there is the left and right
activation gadget and the left and right information window.



  @{u}Left activation gadget@{uu}

  Is used to mark which one of the arealist and filelist that is
  active.  When the checkbox is checked, the arealist is active.
  the checkbox can be checked and unchecked both by the program
  (when a filesection is loaded for example) and by the
  user himself. You can also change the active list with the
  keyboard by pressing @{b}SPACE@{ub}.


  @{u}Left information display@{uu} 

  Shows nothing if no filesection is loaded, otherwise it displays
  the name of the loaded filesection.


  @{u}Right activation gadget@{uu} 

  Is used to mark which one of the arealist and filelist that is
  active.  When the checkbox is checked, the filelist is active.
  The checkbox can be checked and unchecked both by the program
  (when a file is loaded for example) and by the user himself.
  You can also change the active list with the keyboard by
  pressing @{b}SPACE@{ub}.


  @{u}Right information display@{uu} 

  Shows nothing if no file is loaded, otherwise it displays the
  name of the loaded file.





Below the four gadgets above there the left and right scroll
gadgets. New from earlier versions of XFile is that they now react
immediately.





  @{u}Left scroll gadget@{uu} 

  Is used to scroll information from left to right in the
  arealist. See the section about the arealist gadget for an
  explaination of the format.


  @{u}Right scroll gadget@{uu} 

  Is used to scroll information from left to right in the
  filelist. See the section about the filelist gadget for and
  explanation of the format.





Below the two scroll gadgets there the two most important gadgets,
the arealist gadget and the filelist gadget. If you use AmigaDOS
3.0/V39 and there is nothing to display, the filelist gadget will
be ghosted.





  @{u}Arealist gadget@{uu} 

  Shows all defined filesections in File.config.  Each row shows a
  filesection in this format:

  [1. *] [2. Number] [3. Name] [4. DBUEKMHF] [5. Head directory]

  @{i}Example@{ui}

  * 520 BBS                   [--UEK---] dl2:comm/bbs/

  1. If there is a star in front of the filesection number, the
     filesection is marked and can be processed by functions like
     Bulk, Exist, Validate etc.

  2. The number of the filesection

  3. The name of the filesection

  4. The flags of the filesection. A minus sign (-) means the flag
     isn't set.

     D, Count aborted downloads
     B, Count aborted download bytes
     U, Uploads are shown, doesn't require validation to be seen.
     E, The uploader can edit his own files.
     K, The uploader can kill his own uploads.
     M, The filesection uses filenames of MS-DOS type.
     H, The uploader's name is his alias.
     F, All files in this filesection is free downloads.

  5. First directory where the files on your harddrive lies.

  To mark a filesection you only need to click once on the
  filesection you intend to mark. It it was previously marked it
  becomes unmarked.

  To load a filesection you doubleclick on it (all other
  filesections are unmarked when loading) and all filenames in the
  loaded filesection will be presented tou you in the filelist
  gadget.


  @{u}Filelist gadget@{uu} 

  Shows all files in the loaded filesection.  Each row shows a
  file in this format:

  [1. *] [2. Name] [3. Length] [4. Date] [5. FVO] [6. Description]

  @{i}Example@{ui}

  * AMIQWK27.LHA        248537 18-Dec-94 [-V-] Tommy Green

  1. If there is a star in front of the filename, the filename is
     marked and can be processed by the functions Move and Delete.

  2. The name of the file.

  3. The length of the file in the filecatalogue (doesn't need to
     match the length on the harddrive!).

  4. The date the file was uploaded.

  5. The flags of the file. A minus sign (-) means the flag isn't
     set.

     F, The file is a free download.
     V, The file is validated.
     O, The file is marked as missing (on your harddrive).

  6. A maximal of the first 256 bytes of the description.






Beneath the arealist and filelist gadgets there's the function
gadgets, all 14 of them.






  @{u}Pattern@{uu}

  Matches one or more filesections when the arealist gadget is
  active.  You specify the filesection numbers in Xenolink-format,
  0-12,34,45-47,123,3056.  Previously marked filesections
  are unmarked, then marked again according to the matching
  numbers.

  If the filelist gadget is active, you will get a requester 
  telling you to type in a normal pattern matching for marking
  filenames. It will accept both #? and *.

  XFile will scroll the listview so that the first marked file is
  at the top (if possible).


  @{u}All@{uu}

  Marks all filesections or files depending on which list is
  active. This gadget is disabled when there are no more entries
  to mark.


  @{u}None@{uu}

  Unmarks all filesections or files depending on which list is
  active. This gadgets is disabled when no entries are marked.


  @{u}Move@{uu}

  Moves all marked files to one and the same filesection you
  select from the selectarea window in the beginning of the move
  function.


  @{u}Delete@{uu}

  Deletes all marked files in the filelist. @{b}DELETEPHYSICAL@{ub}
  determines if the physical file will be deleted along with the 
  file record.


  @{u}Add@{uu}

  Adds all selected files from a filerequester to a filesection.

  Here is a @{b}flowchart@{ub} for the add function.

  · For each file processed you will be presented with the select
    area window to let you choose the section to which the file
    will be added.  
 
  · If the filesection you choose has subdirectories, a requester
    will prompt you to select which subdirectory the physical file
    will be copied to.

  · If the file you choosed already exists in the filecatalogue,
    a requester opens up and you can choose if you want the file
    in the filecatalogue replaced, the file being uploaded
    deleted, process the next file (and skip the current file) or
    abort the whole upload.

  · All the correct file data is filled in, with the options you
    have specified in the configuration.

  · A requester prompting you for the description opens up (unless
    you have choosen the nonstop action of this requester. The
    nonstop action also disables the selection of section and
    subdirectory) and you enter the description you want.  You can
    also choose to delete the current file.

    Special note for description: If you have selected filecomment
    as description and that one is empty, you will get the normal
    "Uploaded with XFile x.x" description. This is done because
    when in nonstop mode, no requester will ask you about which
    requester you want. If the description is empty, ulibAddFile()
    will fail and stop the adding.

  · The actual adding of the file takes place.


  @{u}Bulk@{uu}

  Searches all marked filesections for files on your harddrive not
  present in the filecatalogue. The file must reside in one of the
  defined directories in File.config.

  The bulk function uses the same function as the add function for
  adding files.


  @{u}Exist@{uu}

  Searches all marked filesections or files for files that's
  missing the physical file on your harddrive.  If the function
  finds a missing file you can choose if you want to delete the
  file in the filecatalogue. The function can use nonstop action.


  @{u}Update@{uu}

  Searches all marked filesections or files and updates the
  filelength in those cases the filelength in the filecatalogue
  and on the harddrive doesn't match.


  @{u}Free Dl@{uu}

  Searches all marked filesections or files and makes the whole
  filesection and their files into free downloads or normal files
  depending on which choice you made in the beginning. You can
  also select toggle which will toggle the state of the flag, free
  downloads become normal and vice versa.


  @{u}Comment@{uu}

  Searches all marked filesections and writes the filedescription
  to the filecomment on your harddrive. Do not use this on a
  CD-ROM. A CD-ROM isn't writable and you will get a lot of
  requesters telling you the device is write-protected.


  @{u}Offline@{uu}

  Searches all marked filesections or files and markes the files
  as offline or online, depending on which choice you made in the
  beginning.  You can also select toggle which will toggle the
  state of the flag, free downloads become normal and vice versa.


  @{u}Validate@{uu}

  Searches all marked filesections or files and validates any
  unvalidated files.  Function is stopped automatically when it
  discovers that there are no unvalidated files left.  The
  function can use nonstop action.


@endnode

@node "FileInformation Window" "FileInformation Window"
@next "Operation Window"
@prev "Graphical User Interface"
@{b}Fileinformation Window@{ub} 

This window is for showing vital information about the loaded
file. The most remarkable gadget is the file description gadget
which is its own gadgetclass.

This window has @{"menus" link "File Information Window Menus" 0} that might interest you.

In this window you can operate the gadgets with @{b}TAB@{ub} or the
underscored letter for each gadget.


  @{u}Filename@{uu}

  String gadget to change the name of the loaded file.  If you
  change the name to an alreay existing file, you will be
  DisplayBeep():ed and the name changes back to the original.


  @{u}Uploader@{uu}

  String gadget to change the name of the uploader.


  @{u}Cycle gadget for change of the uploader@{uu} 

  Cycle gadget which is used to change the uploader's name between
  the four pre-defined in XFile.Config and the Xenolink
  configuration files.


  @{u}Length@{uu}

  Integer gadget for changing the length of the file.


  @{u}Update [Length]@{uu} 

  Button gadget for reading the true length of the loaded file
  from your harddrive and displaying it in the Length gadget.


  @{u}Dls [Downloads]@{uu} 

  Integer gadget for changing the number of times the loaded file
  has been downloaded.


  @{u}Priv [Privilege]@{uu} 

  Integer gadget for changing the lowest privilege level that can
  download this file. Accepts only input between 0 and 255.


  @{u}Date@{uu}

  Text display gadget for showing the upload date.


  @{u}Change [Date]@{uu} 

  Button gadget that opens the datechange window for changing the
  upload date.


  @{u}Save@{uu}

  Saves the modified filerecord to the filecatalogue.  XFile will
  open a requester it you try to exit the fileinformation window
  without saving filerecord. The changes you make to the loaded
  file will be updated in the filelist gadget on the main window.


  @{u}Free Dl@{uu}

  Checkbox gadget indicating if the loaded file is a free download
  or not.


  @{u}Validated@{uu}

  Checkbox gadget indicating if the file is validated or not.


  @{u}Offline@{uu}

  Checkbox gadget indicating if the file is marked as offline or
  not.


  @{u}Description [textfield.gadget]@{uu} 

  Textentry gadget with its own gadgetclass with really good
  functions for editing the description. Supports clipboard.

  Here is the complete documentation for users from the textfield.gadget
  archive.

      O /
  ==== X == CUT === CUT =================================================
      O \

  You can mark text for cutting, copying, and erasing by simply clicking
  and dragging. Hitting alphanumeric keys replaces the text that is
  highlighted. Hitting cursor keys moves you to the front or end of the
  highlighted text.

  If your cursor is already somewhere in the textfield, you can hold the
  SHIFT key and click to mark the text from the current cursor position
  to the place where you clicked.

  And the last way to mark text is to double-click, which will mark the
  word you clicked on. If you didn't click on a word, but rather you
  clicked on spaces, the whole block of spaces is marked. And if you
  clicked on word delimiters, the whole block of delimiters is marked.

  While you drag to scroll, the farther away from the gadget your mouse
  pointer is, the faster the gadget will scroll.

  Key Sequence              Function
  ----------------------------------------------------------------------
         TAB                Activate next gadget

   SHIFT TAB                Activate previous gadget

   SHIFT CURSOR UP          Move to the top line in the current page, or
                            scroll up one page if cursor is on top line

   SHIFT CURSOR DOWN        Move to the bottom line in the current page,
                            or scroll down one page if cursor is on top
                            line

    CTRL or
   SHIFT CURSOR RIGHT       Move to the right end of the current line

    CTRL or
   SHIFT CURSOR LEFT        Move to the left end of the current line

   SHIFT BACKSPACE          Delete all text to the left of cursor on the
                            current line

   SHIFT DELETE             Delete all text to the right of the cursor
                            on the current line (in block cursor mode
                            this also includes the highlighted
                            character)

    CTRL CURSOR UP          Move to the top line of the text

    CTRL CURSOR DOWN        Move to the bottom line of the text

     ALT CURSOR RIGHT       Move to the next word (using the delimiter
                            characters provided by the programmer)

     ALT CURSOR LEFT        Move to the previous word (using the
                            delimiter characters provided by the
                            programmer)

     ALT CURSOR UP          Move to first character in gadget

     ALT CURSOR DOWN        Move to last character in gadget

     ALT BACKSPACE          Deletes the word to the left of the cursor
                            starting at the current cursor position

     ALT DEL                Deletes the word to the right of the cursor
                            starting at the current cursor position

    CTRL X                  Deletes the whole line that the cursor is on

  RAMIGA [                  Switch to left justification
                            (if TEXTFIELD_UserAlign is set)

  RAMIGA \ or
  RAMIGA =                  Switch to center justification
                            (if TEXTFIELD_UserAlign is set)

  RAMIGA ]                  Switch to right justification
                            (if TEXTFIELD_UserAlign is set)

  RAMIGA E                  Erase all text in gadget (saved in undo
                            buffer) (no read-only)

  RAMIGA V                  Paste text from clipboard to current cursor
                            position (no read-only)

  RAMIGA A                  Mark all text

  RAMIGA U                  Undeletes (pastes) the last block of text
                            marked, or recover from RAMIGA E
                            (no read-only)

  When text is highlighted the following keys have functions:

         BACKSPACE          Erase marked text (saved in undo buffer)

         DEL                Erase marked text (saved in undo buffer)

  RAMIGA X                  Cut marked text to clipboard (no read-only)

  RAMIGA C                  Copy marked text to clipboard

  RAMIGA V                  Replace marked text with text from
                            clipboard (save marked text in undo
                            buffer) (no read-only)

         (any text key)     Replace marked text with that character

      O /
  ==== X == CUT === CUT =================================================
      O \
@endnode

@node "Operation Window" "Operation Window"
@next "DateSelect Window"
@prev "Graphical User Interface"
@{b}Operation window @{ub}

This window is a very simple window, it shows what XFile is doing.
It pops up now and then when you do different operations with
XFile.

The window consists of three different text display gadgets, where
the current filesection, current filename and current action is
displayed.

All functions using the operation window can be aborted by simply
pressing the close gadget or @{b}ESCAPE@{ub}. You will then be presented
with a requester if you really want to abort the function.

@endnode

@node "DateSelect Window" "DateSelect Window"
@next "DateSelect Window"
@prev "Graphical User Interface"
@{b}Date select window@{ub}

In this window you select the upload date of the file. It's
rather easy, you just click on the different gadget (both buttons
and cycle) to get the correct date in the text display.

In this window you can operate the gadgets with the underscored
letter for each gadget.


@endnode

@node "SelectArea Window" "SelectArea Window"
@next "Configuration Keywords"
@prev "Graphical User Interface"
@{b}Select area window@{ub}

With this window you select what filesection a certain file will
be uploaded to from a list with all available filesections.

The only functions using this window is the add and move
functions.

@endnode

@node "Configuration Keywords" "Configuration Keywords"
@next "Main Window Menus"
@prev "Main"
@{b}Configuration Keywords in XCONFIG:XFile/XFile.config@{ub}



@{u}UPLOADER < SYSOP | SYSOPCOMMENT | XFILE | CUSTOM >@{uu}

This keyword is used to determine what uploader will be used when
using the Add- and Bulk-functions.

@{b}SYSOP@{ub} gives you the name specified as SysopName in
General.config.

@{b}SYSOPCOMMENT@{ub} gives you the name specified as CommentName
in General.config.

@{b}XFILE@{ub} gives you XFile's name and version.

@{b}CUSTOM@{ub} gives you the upload specified with the
@{b}UPLOADERNAME@{ub} keyword.



@{u}UPLOADERNAME <string of max 32 chars>@{uu}

This keyword is used as the uploader by the Add- and
Bulk-functions whenever the @{b}UPLOADER CUSTOM@{ub} keywords are
used.



@{u}PRIVILEGE <number between 0 and 255>@{uu}

This keyword is used by the Add- and Bulk-functions to specify the
lowest privilege the user has to have in order to download the
file.



@{u}DESCRIPTION < INTERNAL | FILENOTE | CUSTOM >@{uu}

This keyword is used by the Add- and Bulk-functions to specify
what source the description will come from.  You will always get
some kind of description, the ulibAddFile() function will fail
otherwise.

@{b}INTERNAL@{ub} gives you the description "Uploaded with" +
XFile name and version number.

@{b}FILENOTE@{ub} gives you the file comment.  If the file comment
is empty, the same description as INTERNAL will be used.

Due to a bug in the OS, using this option, OS 3.0 and DC-FFS
as filesystem, you will lose the first character in the comment.
The bug lies in the ExAll() emulation of Examine()/ExNext(). If
you use normal FFS (without directorycaching) this bug will not
occur.

@{b}CUSTOM@{ub} gives you the description specified by the
@{b}DESCRIPTIONNAME@{ub} keyword.



@{u}DESCRIPTIONNAME <string of max 512 chars>@{uu}

This keyword is used by the Add- and Bulk-functions whenever the
@{b}DESCRIPTION CUSTOM@{ub} keywords are used.



@{u}VALIDATED@{uu}

This keyword is used by the Add- and Bulk-functions to specify if
the file is going to be uploaded validated or not.



@{u}FREEDOWNLOAD@{uu}

This keyword is used by the Add- and Bulk-functions to specify if
the uploaded file is to be a free download or not.



@{u}OFFLINE@{uu}

This keyword is used by the Add- and Bulk-functions to specify if
the uploaded file will be marked as offline or not.



@{u}DATE < TODAY | CUSTOM | FILEDATE>@{uu}

This keyword is used by the Add- and Bulk-functions to specify
what upload date the uploaded file will have.

@{b}TODAY@{ub} gives the file the current date and time.

@{b}CUSTOM@{ub} gives the file the date specified by the
@{b}UPLOADDATE@{ub} keyword.

@{b}FILEDATE@{ub} forces XFile to use the date of the file to be
uploaded.



@{u}UPLOADDATE < DD-MMM-YY >@{uu}

This keyword is used by the Add- and Bulk-functions whenever the
@{b}DATE CUSTOM@{ub} keywords are used.

The format of the string is @{b}DD-MMM-YY@{ub} where;

  @{b}DD@{ub} is the number of the day, between 1 and 31 (lower in
       some cases depending of the month)

  @{b}MMM@{ub}  is the abbreviated string of the month you want.

  @{b}YY@{ub}   is the year, valid are from 88 to 99.



@{u}DELETEPHYSICAL < YES | NO | ASK >@{uu}

This keyword is used by the Delete-function to determine what
happens with the physical file when a user tries to delete a file
in the filecatalogue.

@{b}YES@{ub} makes the physical file to be deleted.

@{b}NO@{ub} makes the physical file NOT to be deleted, it will
remain in the directory.

@{b}ASK@{ub} makes a requester pop up whenever you want a file
deleted, asking you what to do with the file to be deleted.  You
have three choices, Yes, Abort or No.



@{u}LISTINGORDER < NO | ALPHA | REVALPHA | OLDNEW | NEWOLD >@{uu}

This keyword is used when listing the files in the filelist
gadget.

@{b}NO@{ub} makes the listing in no order, as they are in the
FileData.xxx files.

@{b}ALPHA@{ub} makes the listing alphabetically sorted.

@{b}REVALPHA@{ub} makes the listing reverse alphabetically sorted.

@{b}OLDNEW@{ub} makes the listing sorted from oldest at top and newest
at the bottom.

@{b}NEWOLD@{ub} makes the listing sorted from newest at top and oldest
at the bottom.



@{u}XFILEFONT <fontname> SIZE <height> STYLE <number> FLAGS <number>@{uu}

This keyword is used by XFile to determine what font will be used
in all gadgets, texts and so on except in the listviews.  The font
can be fixedwidth, proportional or even compugraphic.

@{b}You should not try to edit this keyword by hand, it can only
be changed with 100% security by the FontRequester in the menus!

The only secure font you can put in here from the beginning is the
ROM font, topaz.font, 8 points high, style and flags set to 0.@{ub}



@{u}LISTVIEWFONT <fontname> SIZE <height> STYLE <number> FLAGS <number>@{uu}

This keyword is used by XFile to determine what font will be used
in the listviews.  The font is restricted to be fixedwidth,
otherwise the listviews will look rather funny (be nothing nasty
will happen though).

@{b}You should not try to edit this keyword by hand, it can only
be changed with 100% security by the FontRequester in the menus!

The only secure font you can put in here from the beginning is the
ROM font, topaz.font, 8 points high, style and flags set to 0.@{ub}

@endnode

@node "Main Window Menus" "Main Window Menus"
@prev "Configuration Keywords"
@{b}Project Menu@{ub}

Contains menu choices to show information about XFile, load, save
and save as for the configuration and quit XFile.



  @{u}About@{uu}

  Opens a requester with the program's name, current version,
  current internal version, compile date, copyright, author, and
  how it can be spread.



  @{u}About BBS...@{uu}

  Opens a requester with the total number of files in the
  filecatalogue, the number of unvalidated files and for each node
  some stats on how many calls, and files/bytes
  uploaded/downloaded.



  @{u}Configuration/Open@{uu}

  Opens a filerequester and let you choose a configuration to be
  loaded.



  @{u}Configuration/Save@{uu}

  Let you save the active configuration in memory to
  XCONFIG:XFile/. You will be asked if you want to overwrite an
  already existing configuration if there already is one saved
  with the same name.



  @{u}Configuration/Save As@{uu}

  Opens a filerequester and let you save the active configuration
  in memory to the same or another name.



  @{u}Iconify@{uu}

  Iconifies XFile (and closes all open windows) and opens an
  AppIcon on Workbench. To de-iconify XFile you just double-click
  on the AppIcon and XFile will reopen all closed windows exactly
  as they were when you iconified it.

  [Useless programming note]

  The AppIcon will display a funny requester when you try to drop
  icons on it.



  @{u}Quit@{uu}

  Quits XFile exactly as if you had been pressing the close
  gadget.






@{b}Config menu@{ub}

Contains the results from the loaded configuration. Full
information can be found in the section about the configuration
keywords.



  @{u}Config/Uploader/SysOp name@{uu}

  Equal to @{b}UPLOADER SYSOP@{ub}.



  @{u}Config/Uploader/Comment name@{uu}

  Equal to @{b}UPLOADER COMMENTSYSOP@{ub}.



  @{u}Config/Uploader/XFile version@{uu}

  Equal to @{b}UPLOADER XFILE@{ub}.



  @{u}Config/Uploader/Custom name, <string>@{uu}

  Equal to @{b}UPLOADER CUSTOM@{ub} together with @{b}UPLOADERNAME@{ub}.

  If selected, it will open a string requester that let you edit
  the custom uploader.



  @{u}Config/Privilege, <number>@{uu}

  Equal to @{b}PRIVILEGE@{ub}.

  If selected, it will open an integer requester that let you edit
  the privilege.



  @{u}Config/Description/XFile internal@{uu}

  Equal to @{b}DESCRIPTION INTERNAL@{ub}.



  @{u}Config/Description/Filenote@{uu}

  Equal to @{b}DESCRIPTION FILENOTE@{ub}.



  @{u}Config/Description/Custom@{uu}

  Equal to @{b}DESCRIPTION CUSTOM@{ub} och @{b}DESCRIPTIONNAME@{ub}.

  If selected, it will open a string requester that let you edit
  the custom description.



  @{u}Config/File flags/Validated@{uu}

  Equal to @{b}VALIDATED@{ub}.



  @{u}Config/File flags/Free download@{uu}

  Equal to @{b}FREEDOWNLOAD@{ub}.



  @{u}Config/File flags/Offline@{uu}

  Equal to @{b}OFFLINE@{ub}.



  @{u}Config/Upload date/Todays date@{uu}

  Equal to @{b}DATE TODAY@{ub}.


  
  @{u}Config/Upload date/Filedate@{uu}

  Equal to @{b}DATE FILEDATE@{ub}.



  @{u}Config/Upload date/Custom, <sträng>@{uu}

  Equal to @{b}DATE CUSTOM@{ub} och @{b}UPLODADATE@{ub}.

  If selected, it will open the @{"dateselect window" link "DateSelect Window" 0}.



  @{u}Config/Delete physical/Yes@{uu}

  Equal to @{b}DELETEPHYSICAL YES@{ub}.



  @{u}Config/Delete physical/No@{uu}

  Equal to @{b}DELETEPHYSICAL NO@{ub}.



  @{u}Config/Delete physical/Ask@{uu}

  Equal to @{b}DELETEPHYSICAL ASK@{ub}.



  @{u}Config/Listing order/No order@{uu}

  Equal to @{b}LISTINGORDER NO@{ub}.



  @{u}Config/Listing order/Alphabetical order@{uu}

  Equal to @{b}LISTINGORDER ALPHA@{ub}.



  @{u}Config/Listing order/Rev. alphabetical order@{uu}

  Equal to @{b}LISTINGORDER REVALPHA@{ub}.



  @{u}Config/Listing order/Old -> New@{uu}

  Equal to @{b}LISTINGORDER OLDNEW@{ub}.



  @{u}Config/Listing order/New -> Old@{uu}

  Equal to @{b}LISTINGORDER NEWOLD@{ub}.



  @{u}Config/General font, <fontname>, <size>@{uu}

  Equal to @{b}XFILEFONT@{ub}.

  If selected, it will open a fontrequester where you can choose
  any font you like, fixedwidth, proportional or compugraphic.



  @{u}Config/Listview font, <fontname>, <size>@{uu}

  Equal to @{b}LISTVIEWFONT@{ub}.

  If selected, it will open a fontrequester where you can choose
  any fixedwidthed font you like. The font is fixedwidthed because
  a proportional font would made the listviews look rather awful.

@endnode

@node "File Information Window Menus" "File Information Window Menus"
@prev "Main Window Menus"
@{b}Project Menu@{ub}

Contains menu choices that affects the @{"file information window" link "FileInformation Window" 0}, 
mainly to do things with the loaded file.


  @{u}Project/Test this file@{uu}

  Tests the loaded file according to the scripts found in
  XCONFIG:ArcTest/. It will tell if the right script isn't found
  and what the test returned.



  @{u}Project/View this file@{uu}

  Views the loaded file according to the scripts found in
  XCONFIG:ArcView/. It will open a Shell window and list the
  output in portions of 20 rows a stroke. You can continue viewing
  the output by pressing @{b}RETURN@{ub}, or abort with the @{b}Q@{ub} key and a
  @{b}RETURN@{ub}.

  Notice that you also can view images with the view function, not
  only archives of differents kinds.

  But you need to take some precautions to stop programs
  from opening a screen or window when a user online is accidently trying
  to view an image.

  Here is an example script:

      O /
  ==== X == CUT === CUT =================================================
      O \

  .KEY FileName,TempFile,Type
  .BRA {
  .KET }

  FAILAT 99999

  IF {Type} EQ "XFILE"

  FastView >"{TempFile}" DITHER "{FileName}"

  ELSE

  ECHO "Sorry, viewing JPEG pictures can only be done locally." >"{TempFile}"

  ENDIF

      O /
  ==== X == CUT === CUT =================================================
      O \

  Notice the extra "@{b}Type@{ub}" keyword at the top, this is
  different from other normal arcview scripts.  Xenolink only sends
  out two arguments to the script, XFile adds an extra third argument
  that always is "@{b}XFILE@{ub}". So if the third argument contains
  something, you could be pretty sure XFile is trying to execute
  the script.

  Because of this methode, which is the only way you can be sure
  that a program doesn't open screens and windows if not run
  local, you have to edit all XCONFIG:ArcView scripts. 

  Change the first line in all scripts from:

  .KEY FileName,TempFile

  to:

  .KEY FileName,TempFile,Type

  The change will not affect Xenolink in any way.



  @{u}Project/Load previous@{uu}

  This menuitem loads the previous marked file in filethe list into
  the fileinformation window.



  @{u}Project/Load next@{uu}

  This menuitem loads the next marked file in the filelist into the
  fileinformation window.


@endnode

@node "Author Info" "Author Info"
@next "Main"
@prev "Main"
@{b}Author information@{ub}

I'm 22 years old, born just south of Stockholm, Sweden in 1972.

I became interested in computers when my parents bought me a
Philips G7000 in the mid-80s. 8-)

Later I bought a C-128, a couple of years later I laid my hands on
my first Amiga, an Amiga 500 with Kickstart 1.3 (I still got it at
home, it served as BBS-computer until October 1994).

Did my military service from July 1993 to June 1994, in the
Swedish Air Force.

As mentioned I replaced my BBS-computer later on, with an A1200 and
a Blizzard A1230-II/50MHz card with four megabytes.

Right now I'm cooping with unemployment with 500,000 other people
here in Sweden.

I can be reached for bugreports and suggestions in XENOLINK_UTIL
as well as a netmail to 2:201/344.0.

@endnode

@node "Acknowledgement" "Acknowledgement"
@next "Main"
@prev "Main"
@{b}Acknowledgements@{ub}

@{i}Commodore Inc@{ui}      R.I.P.

@{i}Jonathan Forbes@{ui}    for Xenolink BBS and LZX.

@{i}Micke Persson@{ui}      for betatesting and suggestions.

@{i}Janne Paakkonen@{ui}    for X-Ed, Global War and a lot of help in my early
                   days as a C programmer.

@{i}Daniel Frost@{ui}       for the execellent support of Xenolink in Sweden.

@{i}Vicente Nicola@{ui}     for telling me about textfield.gadget a long time ago.
                   (he almost didn't remember it himself)

@{b}plus all you other guys that should be here, but I can't
remember.@{ub}

@endnode
