

    Programmers informations:
    ------------------------

    MODULE 3Dview.m
    ---------------

        This file contents the id chunk of differents 3D objects.
        the ID_3D2 and ID_3D3D are read like INT.

        (---) OBJECT database3d
        (  0)   nbrsobjs:LONG            /* number of obj(s) in the base */
        (  4)   totalpts:LONG            /* total of vertices */
        (  8)   totalfaces:LONG          /* total of faces */
        ( 12)   firstobj:LONG            /* address of the first obj */
        (---) ENDOBJECT

        (---) OBJECT object3d
        (  0)   num:LONG                 /* num of the obj */
        (  4)   nbrspts:LONG             /* number of vertices */
        (  8)   nbrsfaces:LONG           /* number of faces */
        ( 12)   datapts:LONG             /* address of the data of vertices (LONG) */
        ( 16)   datafaces:LONG           /* address of the data of faces (LONG) */
        ( 20)   typeobj:LONG             /* type of the obj */
        ( 24)   objcx:LONG               /* center x of the obj */
        ( 28)   objcy:LONG               /* center y of the obj */
        ( 32)   objcz:LONG               /* center z of the obj */
        ( 36)   objminx:LONG             /* minx of the obj */
        ( 40)   objmaxx:LONG             /* maxx of the obj */
        ( 44)   objminy:LONG             /* miny of the obj */
        ( 48)   objmaxy:LONG             /* maxy of the obj */
        ( 52)   objminz:LONG             /* minz of the obj */
        ( 56)   objmaxz:LONG             /* maxz of the obj */
        ( 60)   selected:LONG            /* obj selected ? (TRUE or FALSE) */
        ( 64)   bounded:LONG             /* obj bounded ? (TRUE or FALSE) */
        (---) ENDOBJECT

        (---) OBJECT vertices            /* Not used in the 3Dview Prg */
        (  0)   x:LONG                   /* Coord. x of vertice */
        (  4)   y:LONG                   /* Coord. y of vertice */
        (  8)   z:LONG                   /* Coord. z of vertice */
        (---) ENDOBJECT

        (---) OBJECT faces               /* Not used in the 3Dview prg */
        (  0)   v1:LONG                  /* num of the 1 vertice */
        (  4)   v2:LONG                  /* num of the 2 vertice */
        (  8)   v3:LONG                  /* num of the 3 vertice */
        (---) ENDOBJECT


    MODULE ClickGui.m
    -----------------

        CONST ID_CLRU=$434C5255,    /* ID of the file */
              ID_COMM=$434F4D4D     /* ID of the clickfile OBJECT */


        (---) OBJECT clicknode
        (  0)   node:substructure   /* node.name content the command name (STRING) */
        ( 14)   stack:LONG          /* the stack of the command */
        ( 18)   pri:LONG            /* the priority of the command */
        ( 22)   currentdir:LONG     /* the current directory of the command (STRING) */
        (---) ENDOBJECT

        (---) OBJECT clickfile
        (  0)   stack:LONG          /* the same but the strings are at the end (NULL terminated) */
        (  4)   pri:LONG
        (  8)   currentdir:LONG
        ( 12)   commande:LONG
        (---) ENDOBJECT


    MODULE Eutils.m and Mheader.m
    ---------------

        (---) OBJECT eudatabase
        (  0)   ed:LONG          /* The name of the text editor (STRING) */
        (  4)   ec:LONG          /* EC and options (STRING) */
        (  8)   epp:LONG         /* EPP and options (STRING) */
        ( 12)   source:LONG      /* the name of the source code (.e) (STRING) */
        ( 16)   eppdest:LONG     /* the name of the EPP destination (STRING) */
        ( 20)   exec:LONG        /* the name of the executable (STRING) */
        ( 24)   isource:LONG     /* the name of a .i source (to convert with Iconvert/A68K) (STRING) */
        ( 28)   version:LONG     /* Version of the prg */
        ( 32)   revision:LONG    /* Revision of the prg */
        ( 36)   strdate:LONG     /* the date of the last compilation (STRING) */
        ( 40)   strtime:LONG     /* the time of the last compilation (STRING) */
        ( 44)   author:LONG      /* the name of the author (STRING) */
        ( 48)   prgname:LONG     /* the name of the prg (can be different than the exec) (STRING) */
        ( 52)   banner:LONG      /* the version string ($VER:...) (STRING) */
        (---) ENDOBJECT     /* SIZEOF=56 */

        The file create by Eutils (<name of exec>.header) can be read with this module,
        And the Procedure p_DoReadHeader(my_header:PTR TO prgheader) in file Pmodules:PMheader.e.


        (---) OBJECT prgheader
        (  0)   version:INT             /* The version of prg */
        (  2)   revision:INT            /* The Revision of prg */
        (  4)   strdate:substructure    /* The date of the last compilation (STRING length:8) */
        ( 12)   strtime:substructure    /* The time of the last compilation (STRING length:8) */
        ( 20)   auteur:substructure     /* The name of the author (STRING length:20) */
        ( 40)   nomprg:substructure     /* The name of the prg (STRING length:20) */
        ( 60)   verstag:substructure    /* The string version (STRING length:80) */
        (---) ENDOBJECT     /* SIZEOF=140 */


    MODULE readguifile.m
    --------------------

        I can't read a .gui file (Gadtoolsbox) with the fonctions of the library
        (Guru).I don't no why, so i make this:

        The data base:

        (---) OBJECT guibase
        (  0)   adrlistdef:LONG       /* address of a list (lh) who content the gobals definitions */
        (  4)   adrlistwindow:LONG    /* address of a list (lh) who content the windownode */
        (  8)   currentwindow:LONG    /* address of the current windownode */
        ( 12)   currentgadget:LONG    /* address of the current gadget */
        (---) ENDOBJECT     /* SIZEOF=16 */

        The window node:

        (---) OBJECT windownode
        (  0)   node:substructure     /* the node.name content the project name window in gadtoolbox */
        ( 14)   left:LONG             /* like write... */
        ( 18)   top:LONG
        ( 22)   width:LONG
        ( 26)   height:LONG
        ( 30)   idcmp:LONG
        ( 34)   flags:LONG
        ( 38)   adrgadgetlist:LONG    /* address of the gadgetlist of the window who content the gadgetnode */
        ( 42)   adrmenulist:LONG      /* address of the menulist who content the menunode */
        ( 46)   adrbboxlist:LONG      /* address of the bevelboxlist who content the bboxnode */
        ( 50)   adritextlist:LONG     /* address of the itextlist who content the itextnode */
        ( 54)   title:LONG            /* title of the window (STRING) */
        ( 58)   screen:LONG           /* title of the screen (STRING) */
        (---) ENDOBJECT     /* SIZEOF=62 */

        The gadgetnode:

        (---) OBJECT gadgetnode
        (  0)   node:substructure     /* node.name content the gadgetlabel in gadtoolsbox */
        ( 14)   kind:INT              /* like the gadtools.library */
        ( 16)   leftedge:INT
        ( 18)   topedge:INT
        ( 20)   width:INT
        ( 22)   height:INT
        ( 24)   gadgettext:LONG
        ( 28)   flags:LONG
        (---) ENDOBJECT     /* SIZEOF=32 */

        The menunode:

        (---) OBJECT menunode
        (  0)   node:substructure     /* node.name content the NAME OF THE MENU */
        ( 14)   type:INT              /* like gadtools.library */
        ( 16)   text:LONG
        ( 20)   comkey:LONG           /* (STRING) */
        ( 24)   flags:LONG
        ( 28)   mutualexclude:LONG
        (---) ENDOBJECT     /* SIZEOF=32 */

        The bboxnode:

        (---) OBJECT bboxnode
        (  0)   node:substructure     /* node.name content ' ' */
        ( 14)   left:INT
        ( 16)   top:INT
        ( 18)   width:INT
        ( 20)   height:INT
        ( 22)   flags:INT
        (---) ENDOBJECT     /* SIZEOF=24 */

        (---) OBJECT itextnode
        (  0)   node:substructure     /* node.name content ' ' */
        ( 14)   left:INT
        ( 16)   top:INT
        ( 18)   text:LONG             /* (STRING) */
        (---) ENDOBJECT     /* SIZEOF=22 */

    MODULE RecallPrefs.m
    --------------------

        CONST ID_RCLN=$52434C4E  /* THE ID file */

        (---) OBJECT rcnode
        (  0)   node:substructure   /* node.name content the date string **-**-** (STRING) */
        ( 14)   alert:LONG          /* the alert text (STRING) */
        (---) ENDOBJECT     /* SIZEOF=18 */

        (---) OBJECT filercnode
        (  0)   filedate:substructure    /* the date **-**-** (STRING) length:8 (NULL terminated string) */
        ( 10)   filealert:substructure   /* the alert text (STRING) length:80 (NULL terminated string) */
        (---) ENDOBJECT     /* SIZEOF=90 */


    MODULE SMGui.m
    --------------

        (---) OBJECT smbase
        (  0)   emptylist:LONG       /* a empty list (lh) */
        (  4)   modulelist:LONG      /* the list (lh) of the modulenode */
        (---) ENDOBJECT     /* SIZEOF=8 */

        (---) OBJECT modulenode
        (  0)   node:substructure    /* node.name content the filename of the module */
        ( 14)   datalist:LONG        /* list of ln with ln.name content the module text */
        (---) ENDOBJECT     /* SIZEOF=18 */


    MODULE WBMessage.m
    ------------------

        I found it in the source of toolmanager.

        (---) OBJECT wbstartmsg
        (  0)   msg:substructure    /* exec message */
        ( 20)   name:LONG           /* the command name */
        ( 24)   dirlock:LONG        /* the lock of the command */
        ( 28)   stack:LONG          /* the stack of the command */
        ( 32)   prio:LONG           /* the priority of the command */
        ( 36)   numargs:LONG        /* like a appmessage */
        ( 40)   arglist:LONG        /* like a appmessage */
        (---) ENDOBJECT     /* SIZEOF=44 */


    MODULE WVprefs.m
    ----------------

        this is my big work....

            Whatview and wvprefs used the same module, in WVprefs
        the wvbase.emptylist is really a emptylist but Whatview use
        it to stock the arguments.

        CONST ID_WVPR=$57565052,  /* ID of the file */
              ID_WVAC=$57564143   /* ID of the the command description */

        (---) OBJECT wvbase
        (  0)   adridlist:LONG           /* address of all the ID of the Whatis.library (list lh) */
        (  4)   adractionlist:LONG       /* address of the action list (list lh) */
        (  8)   adremptylist:LONG        /* address of a empty list (WVprefs) or the wvarg (Whatview) */
        (---) ENDOBJECT     /* SIZEOF=12 */

        (---) OBJECT actionnode
        (  0)   node:substructure        /* node.name content a ID of the whatis.library */
        ( 14)   exectype:INT             /* type of launch MODE_WB or MODE_CLI */
        ( 16)   command:LONG             /* the command name (STRING) */
        ( 20)   currentdir:LONG          /* the current dir of the command (STRING) */
        ( 24)   stack:LONG               /* stack of the command (STRING) */
        ( 28)   priority:LONG            /* priority of the command (STRING) */
        ( 32)   numarg:LONG              /* the number of arguments */
        ( 36)   arglist:substructure     /* the argument list (like a appmessage) MAX 20 */
        (196)   cmd:LONG                 /* the cmd for command in MODE_CLI */
        (---) ENDOBJECT     /* SIZEOF=200 */

        CONST MODE_WB=0,
              MODE_CLI=1

        (---) OBJECT wvarg
        (  0)   node:substructure        /* node.name content the name of the file */
        ( 14)   lock:LONG                /* the lock of the file */
        ( 18)   size:LONG                /* the size of file */
        ( 22)   date:LONG                /* the date (???) i want but i can't */
        ( 26)   idstring:LONG            /* the IDString (STRING) */
        (---) ENDOBJECT     /* SIZEOF=30 */

        you can send command to the WhatViewPort with this message structure.

        (---) OBJECT wvmsg
        (  0)   msg:substructure    /* a exec message */
        ( 20)   name:LONG           /* the filename */
        ( 24)   lock:LONG           /* the lock of the file */
        (---) ENDOBJECT     /* SIZEOF=28 */

        if lock=0 it's a command, command are in uppercase:

        WHATVIEW INFO ADDICON EXECUTE QUIT PREFS FLUSH

