home *** CD-ROM | disk | FTP | other *** search
/ M.u.C.S. Disc 2000 / MUCS2000.iso / anwend / bkite213 / develop_ / fsellib.h < prev    next >
C/C++ Source or Header  |  1998-04-10  |  4KB  |  127 lines

  1. /*
  2.  * Deklarationen zur Programmierschnittstelle für BoxKite 2.00
  3.  * HB, 9.4.1998
  4.  *
  5.  * Alle AES-Aufrufe sind in der Assembler-Bibliothek FSELLIB.O
  6.  * so realisiert, da₧ die Parameter-Übergabe komplett über den 
  7.  * Stack erfolgt. Dementsprechend sind sie hier durchweg als 'cdecl' 
  8.  * deklariert.
  9.  */
  10. typedef struct                    /* Erweiterte DTA-Struktur */
  11. {    char            d_reserved[21];
  12.     unsigned char    d_attrib;
  13.     unsigned int    d_time;
  14.     unsigned int    d_date;
  15.     unsigned long    d_length;
  16.     char            d_fname[256];
  17. }
  18. XDTA;
  19.  
  20. typedef struct                    /* Selectric-Schnittstellenstruktur */
  21. {    unsigned long    id;            /* Selectric ID (SLCT)        */
  22.     unsigned int    version;    /* version (BCD-Format)        */
  23.     struct
  24.     {    unsigned           : 7;    /* reserved                     */
  25.         unsigned pthsav    : 1;
  26.         unsigned stdest    : 1;
  27.         unsigned           : 1;
  28.         unsigned numsrt    : 1;   /* numerisches Sortieren     */
  29.         unsigned lower     : 1;
  30.         unsigned dclick    : 1;   /* Ordner mit Doppelklick    */
  31.         unsigned hidden    : 1;   /* versteckte Dateien        */
  32.         unsigned onoff     : 1;   /* Fileselector AN/AUS       */
  33.     } config;
  34.     int    sort;            /* sort-mode (neg. = rev.)    */
  35.     int    num_ext;        /* number of extensions        */
  36.     char *(*ext)[];        /* preset extensions        */
  37.     int    num_paths;        /* number of paths        */
  38.     char *(*paths)[];        /* preset paths            */
  39.     int    comm;            /* communication word        */
  40.     int    in_count;        /* input counter        */
  41.     void *in_ptr;        /* input pointer        */
  42.     int    out_count;        /* output counter        */
  43.     void *out_ptr;        /* output pointer        */
  44.     int    cdecl    (*get_first)(XDTA *dta, int attrib);
  45.     int    cdecl     (*get_next)(XDTA *dta);
  46.     int    cdecl    (*release_dir)(void);
  47. }
  48. SLCT_STR;
  49.  
  50. /* Message-Handler für den Update von Hintergrundfenstern */
  51. typedef void cdecl (* FSEL_CALLBACK)(int *msg);
  52.  
  53. /* Fileselector-Aufruf mit Message-Handler */
  54. int cdecl fsel_boxinput(int *global, char *path, char *name, int *button, char *label, FSEL_CALLBACK callback);
  55.  
  56. /* Sortiermodi für die FSLX-Aufrufe */
  57. #define SORTBYNAME    0
  58. #define SORTBYDATE    1
  59. #define SORTBYSIZE    2
  60. #define SORTBYTYPE    3
  61. #define SORTBYNONE    4
  62.  
  63. /* Flags für FSLX-Dateiauswahl */
  64. #define DOSMODE        1
  65. #define NFOLLOWSLKS    2
  66. #define GETMULTI    8
  67.  
  68. typedef struct                    /* Event-Beschreibung für 'fslx_evnt()' */
  69. {    int        mwhich;
  70.     int        mx;
  71.     int        my;
  72.     int        mbutton;
  73.     int        kstate;
  74.     int        key;
  75.     int        mclicks;
  76.     int        reserved[9];
  77.     int        msg[16];
  78. }
  79. EVNT;
  80.  
  81. typedef struct                    /* Struktur zum HBFS-Cookie */
  82. {    unsigned int    branch;        /* Sprungbefehl um den struct herum */
  83.     unsigned long    magic;        /* Wert immer 'BxKt' */
  84.     unsigned int    version;    /* Versionsnummer: 0x200 für 2.00 */
  85. }
  86. BXKT_STR;
  87.  
  88. /* Dateifilter, derzeit von BoxKite nicht unterstützt */
  89. typedef int cdecl XFSL_FILTER(char *path, char *name, XATTR *xa);
  90.  
  91. /* Prototypen der FSLX-Aufrufe */
  92. void *cdecl fslx_open(int *global,
  93.                 char *title,
  94.                 int x, int y,
  95.                 int    *handle,
  96.                 char *path, int pathlen,
  97.                 char *fname, int fnamelen,
  98.                 char *patterns,
  99.                 XFSL_FILTER *filter,
  100.                 char *paths,
  101.                 int sort_mode,
  102.                 int flags);
  103. int cdecl fslx_evnt(int *global,
  104.                 void *fsd,
  105.                 EVNT *events,
  106.                 char *path,
  107.                 char *fname,
  108.                 int *button,
  109.                 int *nfiles,
  110.                 int *sort_mode,
  111.                 char **pattern);
  112. int cdecl fslx_close(int *global, void *fsd);
  113. int cdecl fslx_getnxtfile(int *global, void *fsd, char *fname);
  114. void *cdecl fslx_do(int *global,
  115.                 char *title,
  116.                 char *path, int pathlen,
  117.                 char *fname, int fnamelen,
  118.                 char *patterns,
  119.                 XFSL_FILTER *filter,
  120.                 char *paths,
  121.                 int *sort_mode,
  122.                 int flags,
  123.                 int *button,
  124.                 int *nfiles,
  125.                 char **pattern);
  126. int cdecl fslx_set_flags(int *global, int flags, int *oldval);
  127.