home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2002 #3 / Amiga Plus CD - 2002 - No. 03.iso / AmiSoft / Dev / Gui / Cit.lha / CIT / citra / CITGetFile.h < prev    next >
Encoding:
C/C++ Source or Header  |  2003-02-13  |  4.3 KB  |  139 lines

  1. //
  2. //                    CITGetFile include
  3. //
  4. //                          StormC
  5. //
  6. //                     version 2002.03.12
  7. //
  8.  
  9. #ifndef CITGETFILE_H
  10. #define CITGETFILE_H TRUE
  11.  
  12. #include "CITGadget.h"
  13.  
  14. #include <gadgets/getfile.h>
  15.  
  16. //
  17. // This enum is for internal use only
  18. //
  19. enum
  20. {
  21.   CITGETFILE_TITLETEXT = 0,
  22.   CITGETFILE_LEFTEDGE,
  23.   CITGETFILE_TOPEDGE,
  24.   CITGETFILE_WIDTH,
  25.   CITGETFILE_HEIGHT,
  26.   CITGETFILE_FILE,
  27.   CITGETFILE_DRAWER,
  28.   CITGETFILE_FULLFILE,
  29.   CITGETFILE_FULLFILEEXPAND,
  30.   CITGETFILE_PATTERN,
  31.   CITGETFILE_DOSAVEMODE,
  32.   CITGETFILE_DOMULTISELECT,
  33.   CITGETFILE_DOPATTERNS,
  34.   CITGETFILE_DRAWERSONLY,
  35.   CITGETFILE_FILTERFUNC,
  36.   CITGETFILE_REJECTICONS,
  37.   CITGETFILE_REJECTPATTERN,
  38.   CITGETFILE_ACCEPTPATTERN,
  39.   CITGETFILE_FILTERDRAWERS,
  40.   CITGETFILE_FILELIST,
  41.   CITGETFILE_LBNODESTRUCTS,
  42.   CITGETFILE_READONLY,
  43.   CITGETFILE_FILEPARTONLY,
  44.   CITGETFILE_LAST
  45. };
  46.  
  47. class CITGetFile:public CITGadget
  48. {
  49.   public:
  50.     CITGetFile();
  51.     ~CITGetFile();
  52.  
  53.     void RequesterLeftEdge(WORD x)
  54.            {setTag(CITGETFILE_LEFTEDGE,GETFILE_LeftEdge,x);}
  55.     void RequesterTopEdge(WORD y)
  56.            {setTag(CITGETFILE_TOPEDGE,GETFILE_TopEdge,y);}
  57.     void RequesterWidth(WORD w)
  58.            {setTag(CITGETFILE_WIDTH,GETFILE_Width,w);}
  59.     void RequesterHeight(WORD h)
  60.            {setTag(CITGETFILE_HEIGHT,GETFILE_Height,h);}
  61.     void RequesterTitleText(char* text)
  62.            {setTag(CITGETFILE_TITLETEXT,GETFILE_TitleText,ULONG(text));}
  63.     void File(char* file)
  64.            {setTag(CITGETFILE_FILE,GETFILE_File,ULONG(file));}
  65.     void Drawer(char* drawer)
  66.            {setTag(CITGETFILE_DRAWER,GETFILE_Drawer,ULONG(drawer));}
  67.     void FullFile(char* file)
  68.            {setTag(CITGETFILE_FULLFILE,GETFILE_FullFile,ULONG(file));}
  69.     void FullFileExpand(BOOL b = TRUE)
  70.            {setTag(CITGETFILE_FULLFILEEXPAND,GETFILE_FullFileExpand,b);}
  71.     void Pattern(char* pat)
  72.            {setTag(CITGETFILE_PATTERN,GETFILE_Pattern,ULONG(pat));}
  73.     void DoSaveMode(BOOL b = TRUE)
  74.            {setTag(CITGETFILE_DOSAVEMODE,GETFILE_DoSaveMode,b);}
  75.     void DoMultiSelect(BOOL b = TRUE)
  76.            {setTag(CITGETFILE_DOMULTISELECT,GETFILE_DoMultiSelect,b);}
  77.     void DoPatterns(BOOL b = TRUE)
  78.            {setTag(CITGETFILE_DOPATTERNS,GETFILE_DoPatterns,b);}
  79.     void DrawersOnly(BOOL b = TRUE)
  80.            {setTag(CITGETFILE_DRAWERSONLY,GETFILE_DrawersOnly,b);}
  81.     void RejectIcons(BOOL b = TRUE)
  82.            {setTag(CITGETFILE_REJECTICONS,GETFILE_RejectIcons,b);}
  83.     void RejectPattern(UBYTE* rejPat)
  84.            {setTag(CITGETFILE_REJECTPATTERN,GETFILE_RejectPattern,ULONG(rejPat));}
  85.     void AcceptPattern(UBYTE* accPat)
  86.            {setTag(CITGETFILE_ACCEPTPATTERN,GETFILE_AcceptPattern,ULONG(accPat));}
  87.     void FilterDrawers(BOOL b = TRUE)
  88.            {setTag(CITGETFILE_FILTERDRAWERS,GETFILE_FilterDrawers,b);}
  89.     void LBNodeStructs(BOOL b = TRUE)
  90.            {setTag(CITGETFILE_LBNODESTRUCTS,GETFILE_LBNodeStructs,b);}
  91.     void ReadOnly(BOOL b = TRUE)
  92.            {setTag(CITGETFILE_READONLY,GETFILE_ReadOnly,b);}
  93.     void FilePartOnly(BOOL b = TRUE)
  94.            {setTag(CITGETFILE_FILEPARTONLY,GETFILE_FilePartOnly,b);}
  95.  
  96.     WORD  RequesterLeftEdge()
  97.            { return getTag(GETFILE_LeftEdge); }
  98.     WORD  RequesterTopEdge()
  99.            { return getTag(GETFILE_TopEdge); }
  100.     WORD  RequesterWidth()
  101.            { return getTag(GETFILE_Width); }
  102.     WORD  RequesterHeight()
  103.            { return getTag(GETFILE_Height); }
  104.     char* File()
  105.            { return (char*)getTag(GETFILE_File); }
  106.     char* Drawer()
  107.            { return (char*)getTag(GETFILE_Drawer); }
  108.     char* FullFile()
  109.            { return (char*)getTag(GETFILE_FullFile); }
  110.     char* Pattern()
  111.            { return (char*)getTag(GETFILE_Pattern); }
  112.     List* Filelist()
  113.            { return (List*)getTag(GETFILE_Filelist); }
  114.  
  115.     void RequestFile();
  116.     void FreeFilelist(List* list);
  117.  
  118.     void FilterFunc(ULONG (*p)(struct FileRequest* fReq,struct AnchorPath* anch,ULONG myData),ULONG userData)
  119.             {CITGadget::CallbackHook(CALLBACKHOOK(p),userData);}
  120.  
  121.   protected:
  122.     virtual BOOL    Create(CITWindow* CITWd,CITContainer* parent);
  123.     virtual Object* NewObjectA(TagItem* tags);
  124.     virtual void    hookSetup(ULONG userData);
  125.  
  126.   private:
  127.     void  setTag(int index,ULONG attr,ULONG val);
  128.     ULONG getTag(ULONG attr);
  129.  
  130.     TagItem* getFileTag;
  131. };
  132.  
  133. enum
  134. {
  135.   GETFILECLASS_FLAGBITUSED = GADGETCLASS_FLAGBITUSED
  136. };
  137.  
  138. #endif
  139.