/* OpenDrawer for Scalos - Eric Sauvageau. */

/*
 * Arguments:
 *
 * PATH - The path to open
 * VIEWMODE -  The viewing mode: 0 = icon, 1 = Name, 2 = Date, 3 = Size
 * ALL - Switch, use if you want to display all files.
 *
*/

MODULE 'scalos/scalos','scalos', 'utility/tagitem'

MODULE 'dos','dos/dos'

PROC main() HANDLE
DEF rdargs=NIL
DEF argarray:PTR TO LONG

argarray := [0,0,0]

-> Read arguments
IF (rdargs := ReadArgs('PATH/A,VM=VIEWMODE/K/N,ALL/S',argarray,NIL)) = NIL THEN Raise("ARG")

-> Open Scalos.library
IF (scalosbase := OpenLibrary('scalos.library',0)) = NIL THEN Raise("LIB")

IF argarray[1]
   IF Long(argarray[1]) > 3 THEN Raise("ARG1")
ENDIF

IF OpenIconWindow([SCA_PATH, argarray[0],
                   SCA_VIEWMODES, (IF argarray[1] THEN Long(argarray[1]) ELSE 0),
                   SCA_SHOWALLFILES, argarray[2],
                   TAG_END]) = FALSE THEN Raise("OIW")
                   

EXCEPT DO
   SELECT exception
      CASE "LIB" ; WriteF('Can''t open Scalos.library!  Scalos must be running.\n')
      CASE "OIW" ; WriteF('Can''t open "\s".\n',arg)
      CASE "ARG" ; WriteF('Invalid arguments.\n')
      CASE "ARG1" ; WriteF('ViewMode must be between 0 and 3.\n')
   ENDSELECT

   CloseLibrary(scalosbase)  -> NIL is a valid input for CloseLibrary()

   IF rdargs THEN FreeArgs(rdargs)

   IF exception THEN CleanUp(20)
ENDPROC

CHAR '$VER:OpenDrawer 0.1 (2.2.97)',0
