home *** CD-ROM | disk | FTP | other *** search
/ Amiga Inside! / Amiga FD Inside (1995)(Ultramax).iso / berndspd / devtools / intuigen / examples / filerequest.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-12-22  |  4.5 KB  |  245 lines

  1. #include <stddef.h>
  2. #include <exec/exec.h>
  3. #include <intuition/intuition.h>
  4. #include <IntuiGen/IntuiGen.h>
  5. #include <IntuiGen/IGRequest.h>
  6. #include <IntuiGen/IGFR.h>
  7.  
  8. static USHORT UpArrowDataFast[] = {
  9.  
  10.     /* BitPlane 0 */
  11.  
  12.     0x0000,
  13.     0x0004,
  14.     0x0004,
  15.     0x0304,
  16.     0x0784,
  17.     0x0CC4,
  18.     0x1864,
  19.     0x1024,
  20.     0x0004,
  21.     0x0004,
  22.     0xFFFC,
  23.  
  24.     /* BitPlane 1 */
  25.  
  26.     0xFFFF,
  27.     0x8000,
  28.     0x8000,
  29.     0x8000,
  30.     0x8000,
  31.     0x8000,
  32.     0x8000,
  33.     0x8000,
  34.     0x8000,
  35.     0x8000,
  36.     0x0000
  37. };
  38.  
  39. static USHORT DownArrowDataFast[] = {
  40.  
  41.     /* BitPlane 0 */
  42.  
  43.     0x0000,
  44.     0x0004,
  45.     0x0004,
  46.     0x1024,
  47.     0x1864,
  48.     0x0CC4,
  49.     0x0784,
  50.     0x0304,
  51.     0x0004,
  52.     0x0004,
  53.     0xFFFC,
  54.  
  55.     /* BitPlane 1 */
  56.  
  57.     0xFFFF,
  58.     0x8000,
  59.     0x8000,
  60.     0x8000,
  61.     0x8000,
  62.     0x8000,
  63.     0x8000,
  64.     0x8000,
  65.     0x8000,
  66.     0x8000,
  67.     0x0000
  68. };
  69.  
  70. USHORT *UpArrowData,*DownArrowData;
  71.  
  72. BOOL GetChipData (void)
  73. {
  74.     UpArrowData=(USHORT *)AllocMem (44,MEMF_CHIP);
  75.     DownArrowData=(USHORT *)AllocMem (44,MEMF_CHIP);
  76.  
  77.     if (!UpArrowData || !DownArrowData) return (0);
  78.  
  79.     CopyMem (UpArrowDataFast,UpArrowData,44);
  80.     CopyMem (DownArrowDataFast,DownArrowData,44);
  81.  
  82.     return(1);
  83. }
  84.  
  85. void FreeChipData (void)
  86. {
  87.     if (UpArrowData) FreeMem (UpArrowData,44);
  88.     if (DownArrowData) FreeMem (DownArrowData,44);
  89. }
  90.  
  91. APTR DosBase;
  92. APTR IntuitionBase;
  93.  
  94. struct TextAttr TextAttributes0 =
  95. {
  96.     "topaz.font",
  97.     TOPAZ_SIXTY,
  98.     FSF_UNDERLINED | FSF_BOLD | FSF_ITALIC | FSF_EXTENDED,
  99.     FPF_ROMFONT
  100. };
  101.  
  102. struct IntuiText Title =
  103. {
  104.     1,0,
  105.     JAM2,
  106.     4,12,
  107.     &TextAttributes0,
  108.     (UBYTE *)"IntuiGen File Requester",
  109.     NULL
  110. };
  111.  
  112. struct Window *FileWindow;
  113.  
  114. struct NewWindow NewFileWindow =
  115. {
  116.     0,15,
  117.     639,140,
  118.     0,1,
  119.     IDCMP_GADGETDOWN | IDCMP_GADGETUP | IDCMP_RAWKEY | IDCMP_DISKINSERTED | IDCMP_DISKREMOVED,
  120.     WFLG_DRAGBAR | WFLG_DEPTHGADGET | WFLG_SMART_REFRESH | WFLG_ACTIVATE,
  121.     NULL,
  122.     NULL,
  123.     (UBYTE *)"IG File Window",
  124.     NULL,
  125.     NULL,
  126.     339,180,
  127.     483,265,
  128.     WBENCHSCREEN
  129. };
  130.  
  131. struct IGFileRequest IGFileRequest = {
  132.     5,12,"","",1,2,IGFR_OKCANCEL | IGFR_NOINFO | IGFR_CURRENTDIR,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  133. };
  134.  
  135. struct IGFileRequest IGFileRequest2 = {
  136.     320,12,"","",1,2,IGFR_MULTISELECT | IGFR_NOINFO | IGFR_CURRENTDIR,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  137. };
  138.  
  139. struct IGObject FR2Obj = {
  140.     MakeIGFileRequest,0,0,0,0,(APTR)&IGFileRequest2,0,0,0,0,0,0,0
  141. };
  142.  
  143. struct IGObject FRObj = {
  144.     MakeIGFileRequest,0,0,0,0,(APTR)&IGFileRequest,0,0,0,&FR2Obj,0,0,0
  145. };
  146.  
  147. struct IGEndList FileRequestEndList[] =
  148. {
  149.     { IDCMP_RAWKEY,51,8,NULL,NULL,NULL,0 },
  150.     { 0xffffffff,0,0,0,0,0 }
  151. };
  152.  
  153. struct IGKeyCommand FileRequestCommands[] =
  154. {
  155.     { 0, 0, 0, 0 }
  156. };
  157.  
  158. struct IGMenu FileRequestIGMenuInfo[] =
  159. {
  160.     { 0, 0, 0 }
  161. };
  162.  
  163. struct IGRequest FileRequest =
  164. {
  165.     &NewFileWindow,     /* NewWindow */
  166.     NULL,        /* Window */
  167.     (UBYTE *)"File Request",           /* ScreenName */
  168.     NULL,        /* RequesterToOpen */
  169.     NULL,        /* Requester */
  170.     FileRequestIGMenuInfo,        /* Menus */
  171.     FileRequestEndList,        /* EndList */
  172.     FileRequestCommands,        /* KeyCommands */
  173.     NULL,        /* Gadgets */
  174.     IG_ADDGADGETS | IG_RECORDWINDOWPOS,        /* Flags */
  175.     NULL,        /* StringToActivate */
  176.     NULL,        /* MenuStrip */
  177.     NULL,        /* Borders */
  178.     NULL,        /* Images */
  179.     NULL,        /* ITexts */
  180.     NULL,        /* SBoxes */
  181.     &FRObj,       /* IGObjects */
  182.     NULL,        /* DataStruct */
  183.     NULL,        /* ReqKey */
  184.     NULL,        /* InitFunction */
  185.     0,        /* Terminate */
  186.     NULL,        /* IComPort */
  187.     NULL,        /* InternalData */
  188.     NULL,        /* DSelectFunction */
  189.     NULL,        /* EndFunction */
  190.     NULL,        /* LoopFunction */
  191.     NULL,0,     /* CallLoop, LoopBitsUsed */
  192.     NULL,        /* ArexxPort */
  193.     NULL,        /* ArexxFunction */
  194.     0,NULL,     /* AdditionalSignals, SignalFunction */
  195.     NULL,        /* GUpFunction */
  196.     NULL,        /* GDownFunction */
  197.     NULL,        /* MouseButtons */
  198.     NULL,        /* MouseMove */
  199.     NULL,        /* DeltaMove */
  200.     NULL,        /* RawKey */
  201.     NULL,        /* IntuiTicks */
  202.     NULL,        /* DiskInserted */
  203.     NULL,        /* DiskRemoved */
  204.     NULL,        /* MenuVerify */
  205.     NULL,        /* MenuPick */
  206.     NULL,        /* SizeVerify */
  207.     NULL,        /* NewSize */
  208.     NULL,        /* ReqVerify */
  209.     NULL,        /* ReqSet */
  210.     NULL,        /* ReqClear */
  211.     NULL,        /* ActiveWindow */
  212.     NULL,        /* InActiveWindow */
  213.     NULL,        /* RefreshWindow */
  214.     NULL,        /* NewPrefs */
  215.     NULL,        /* CloseWindow */
  216.     NULL,        /* DoubleClick */
  217.     NULL,        /* OtherMessages */
  218.     NULL        /* UserData */
  219. };
  220.  
  221. main ()
  222. {
  223.     struct IGDirEntry *e;
  224.  
  225.     DosBase=(APTR)OpenLibrary ("dos.library",0);
  226.     IntuitionBase=(APTR)OpenLibrary ("intuition.library",0);
  227.  
  228.     if (GetChipData()) {
  229.  
  230.     IGRequest (&FileRequest);
  231.     puts (IGFileRequest.FileName);
  232.     puts (IGFileRequest2.FileName);
  233.     for (e=IGFileRequest2.First;e;e=e->Next)
  234.         if (e->Flags & IGDE_SELECTED) printf ("\t%s\n",e->FileName,e->Flags);
  235.  
  236.     FreeRemember (&IGFileRequest2.DirKey,1);
  237.     FreeRemember (&FileRequest.ReqKey,1);
  238.  
  239.     FreeChipData();
  240.     }
  241.  
  242.     CloseLibrary (DosBase);
  243.     CloseLibrary (IntuitionBase);
  244. }
  245.