home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 576.lha / kd_freq.library_v3.01 / Programming.LZH / kdbase.h < prev    next >
C/C++ Source or Header  |  1991-11-16  |  6KB  |  148 lines

  1. /*
  2.  
  3. Filename: kdbase.i
  4. Release : 3.01
  5.  
  6. (C) 1990 Khalid Aldoseri
  7.  
  8. */
  9.  
  10.  
  11. #define KLIBNAME        "kd_freq.library"
  12. #define    KLIBVERSION        3L
  13.  
  14. #define    FRB_PRIVATE        0L    /* Private flag - do not use */
  15. #define    FRB_DUALWILD        1L    /* Dual wildcard facility */
  16. #define FRB_NOINFO        2L    /* Don't show .info files */
  17. #define    FRB_NOTITLEBAR        3L    /* No titlebar/dragbar/front/back/close gads */
  18. #define FRB_AUTOPOSITION    4L    /* Use autopositioning */
  19. #define FRB_AUTOSIZE        5L    /* Use autosizing */
  20. #define FRB_NORESIZE        6L    /* Forbid resizing */
  21. #define FRB_OKTEXT        7L    /* New OK text defined */
  22. #define FRB_FRONTSCREEN        8L    /* Show up on front screen */
  23. #define FRB_NOTEXTSHADOW    9L    /* Do not use text shadows */
  24. #define FRB_REPLACEIMAGES    10L    /* Give user program images to FR */
  25. #define FRB_CANCELTEXT        11L    /* New Cancel text defined */
  26. #define FRB_NEWFONT        12L    /* Use a special font */
  27. #define FRB_SCREENFONT        13L    /* Use the screen's font */
  28. #define FRB_EXTENDEDSELECT    14L    /* -- old flag -- use SELECTLIST instead -- */
  29. #define FRB_INVERTLOOK        15L    /* Gives an inverted look.. use for Save */
  30. #define FRB_HIDEWILD        16L    /* Hide Wildcard to be defined in extras->Hide */
  31. #define FRB_NEWLOOK        17L    /* Make FR use that WB 2.0 look */
  32. #define FRB_NONEWLOOK        18L    /* Disable auto-enable of FR_NEWLOOK */
  33. #define FRB_SELECTLIST        19L    /* Allow user to select multiple files */
  34. #define    FRB_SLSHOWNAMES        20L    /* Show filenames only in Select List */
  35. #define    FRB_KEEPBUFFERS        21L    /* Don't flush buffers at exit. i.e. next
  36.                        call of NewFReq() will not re-read the
  37.                        directories. */
  38. #define    FRB_EXTRABUTTONS    22L    /* Activate the ExtraButtons feature */
  39.  
  40. #define    FRB_INUSE        31L    /* Private flag - do not use */
  41.  
  42.  
  43. #define    FR_PRIVATE        1L << FRB_PRIVATE        /* !! */
  44. #define    FR_DUALWILD        1L << FRB_DUALWILD
  45. #define FR_NOINFO        1L << FRB_NOINFO        /* !! */
  46. #define    FR_NOTITLEBAR        1L << FRB_NOTITLEBAR
  47. #define FR_AUTOPOSITION        1L << FRB_AUTOPOSITION
  48. #define FR_AUTOSIZE        1L << FRB_AUTOSIZE
  49. #define FR_NORESIZE        1L << FRB_NORESIZE
  50. #define FR_OKTEXT        1L << FRB_OKTEXT
  51. #define FR_FRONTSCREEN        1L << FRB_FRONTSCREEN
  52. #define FR_NOTEXTSHADOW        1L << FRB_NOTEXTSHADOW
  53. #define FR_REPLACEIMAGES    1L << FRB_REPLACEIMAGES
  54. #define FR_CANCELTEXT        1L << FRB_CANCELTEXT
  55. #define FR_NEWFONT        1L << FRB_NEWFONT
  56. #define FR_SCREENFONT        1L << FRB_SCREENFONT
  57. #define FR_EXTENDEDSELECT    1L << FRB_EXTENDEDSELECT
  58. #define FR_INVERTLOOK        1L << FRB_INVERTLOOK
  59. #define FR_HIDEWILD        1L << FRB_HIDEWILD
  60. #define FR_NEWLOOK        1L << FRB_NEWLOOK        /* !! */
  61. #define FR_NONEWLOOK        1L << FRB_NONEWLOOK
  62. #define FR_SELECTLIST        1L << FRB_SELECTLIST
  63. #define    FR_SLSHOWNAMES        1L << FRB_SLSHOWNAMES        /* !! */
  64. #define FR_KEEPBUFFERS        1L << FRB_KEEPBUFFERS
  65. #define FR_EXTRABUTTONS        1L << FRB_EXTRABUTTONS
  66.  
  67. #define    FR_INUSE        1L << FRB_INUSE
  68.  
  69. /*  Flags marked with !! above can be changed by the FR */
  70.  
  71. #define FR_STDFLAGS (FR_AUTOPOSITION|FR_AUTOSIZE|FR_NOINFO|FR_SCREENFONT|FR_HIDEWILD)
  72.  
  73. struct FileList {    /* Structure for returned multiple select */
  74.  struct FileList *next;    /* Pointer to next FileList structure */ 
  75.  LONG   private;    /* private -- do not use */
  76.  LONG   FileSize;    /* File size  */
  77.  LONG   FileDate;    /* Date stamp (in days since 1978) */
  78.  USHORT FileTime;    /* Time stamp (in minutes since midnight) */
  79.  UBYTE  FileProtection;    /* Protection flags */
  80.  UBYTE  FileFlags;    /* Special file flags */
  81.  UBYTE  FileName[32];    /* The file name itself */
  82.  };
  83.  
  84.             /* return codes for ExtraButton callback function */
  85.  
  86. #define EB_CONTINUE    0    /* FR just continues */
  87. #define EB_OK        1    /* FR is OK'd and exits immediately */
  88. #define EB_CANCEL    2    /* FR is cancelled and exits immediately */
  89.  
  90. struct ExtraButton {
  91.  struct ExtraButton *next;    /* pointer to next button */
  92.  ULONG  flags;            /* flags to define button */
  93.  ULONG  (*button_function)(struct ExtraButton *);
  94.                 /* function to be called when button is hit */
  95.  UBYTE  *text;            /* actual text of button, up to 10 chars */
  96.  UBYTE  *help1, *help2, *help3; /* pointers to help lines */
  97.  VOID    *UserData;        /* for your use... */
  98.  struct Window *window;        /* current FR window.. read only. */
  99.  };
  100.  
  101. struct ExtraData {
  102.  struct Image *UpArrow;        /* replacement image for Up Arrow */
  103.  struct Image *DnArrow;        /* replacement image for Down Arrow */
  104.  struct Image *DiskNormal;    /* replacement image for Disks */
  105.  struct Image *DiskSelected;    /* replacement select image for Disks */
  106.  
  107.                 /* NO LONGER VALID... DO NOT USE */
  108.  struct Image *SizeStrip;    /* replacement image for Size gadgets */
  109.  
  110.  UBYTE    *oktext;        /* text to be used as OK text */
  111.  UBYTE    *canceltext;        /* text to be used as CANCEL text */
  112.  USHORT    LeftEdge,TopEdge,Width,Height;
  113.  
  114.  struct    TextAttr *NewFont;    /* New font to use instead of Topaz 8 */    
  115.  
  116.                 /* THIS IS NOW REDUDANT.. USE NextSelect() */
  117.  struct    FileList *ExtendedList;    /* Always set to NULL at first call.  */
  118.                 /* If FR_EXTENDEDSELECT is set, this will */
  119.                 /* return a linked list of FileList structs. */
  120.                 /* WARNING!  DO NOT USE THIS ANYMORE... */
  121.                 /* I MIGHT REMOVE IT FOR RELEASE 4. */
  122.  
  123.  UBYTE    *Hide;            /* Hide wildcard pattern */
  124.  
  125.  UBYTE    *SelectList;        /* Pointer to the internal Select List */
  126.  UBYTE    *NextEntry;        /* Pointer to next entry, used by NextSelectEntry() */
  127.  ULONG  SelectListSize;        /* Size of SelectList.. in bytes */
  128.  
  129.  UBYTE    *buffer;        /* private storage for temp stuff */
  130.  struct ExtraButton *button;    /* pointer to additional button, if exists */
  131.  ULONG    unused[3];        /* for future expansion.  Always set to NULL */
  132.  };
  133.  
  134.                 /* Use this structure for the NewFReq() call */
  135.                 /* This allows you to call the FR with just */
  136. struct FRequest {        /* one argument, a struct FRequest */
  137.  struct Screen *screen;        /* Pointer to a screen structure */
  138.  UBYTE *reqtitle;        /* Pointer to title text */
  139.  UBYTE *filename;        /* Pointer to the filename buffer */
  140.  UBYTE *directory;        /* Pointer to the directory buffer */
  141.  UBYTE *fullname;        /* Pointer to the full path to the file */
  142.  UBYTE *pattern;        /* Pointer to the pattern buffer */
  143.  ULONG flags;            /* FR flags */
  144.  struct ExtraData *extras;    /* pointer to an ExtraData struct */
  145.  };
  146.  
  147. /*                   Copyright 1990,1991  Khalid Aldoseri.                   */
  148.