2 * requesters.c Various routines for ASL requester and such like
8 * 20010804 DM + Created
12 #include <exec/types.h>
14 #include <proto/asl.h>
15 #include <proto/exec.h>
16 #include <proto/dos.h>
18 #include <intuition/intuition.h>
19 #include <libraries/asl.h>
24 STRPTR
SaveFileReq(struct Window
*win
)
26 struct FileRequester
*aslfr
;
30 if(NULL
!= (aslfr
= AllocAslRequest(ASL_FileRequest
, NULL
)) )
32 if(AslRequestTags(aslfr
,ASLFR_Window
, win
,
33 ASLFR_SleepWindow
, TRUE
,
34 ASLFR_RejectIcons
, TRUE
,
35 ASLFR_DoSaveMode
, TRUE
,
42 /* add 1 for any possible / character */
43 fblen
+= strlen(aslfr
->fr_Drawer
);
45 //printf("Dir='%s'\n", aslfr->fr_Drawer);
50 fblen
+= strlen(aslfr
->fr_File
);
51 //printf("File='%s'\n", aslfr->fr_File);
54 //printf("length of string name buffer=%lu\n", fblen);
56 fbuf
= AllocVec(fblen
, MEMF_ANY
|MEMF_CLEAR
);
61 strcpy(fbuf
, aslfr
->fr_Drawer
);
66 AddPart(fbuf
, aslfr
->fr_File
, fblen
);
68 //printf("complete name='%s'\n", fbuf);
71 FreeAslRequest(aslfr
);
75 FreeAslRequest(aslfr
);
84 STRPTR
OpenFileReq(struct Window
*win
)
86 struct FileRequester
*aslfr
;
90 if(NULL
!= (aslfr
= AllocAslRequest(ASL_FileRequest
, NULL
)) )
92 if(AslRequestTags(aslfr
,ASLFR_Window
, win
,
93 ASLFR_SleepWindow
, TRUE
,
94 ASLFR_RejectIcons
, TRUE
,
101 /* add 1 for any possible / character */
102 fblen
+= strlen(aslfr
->fr_Drawer
);
104 //printf("Dir='%s'\n", aslfr->fr_Drawer);
109 fblen
+= strlen(aslfr
->fr_File
);
110 //printf("File='%s'\n", aslfr->fr_File);
113 //printf("length of string name buffer=%lu\n", fblen);
115 fbuf
= AllocVec(fblen
, MEMF_ANY
|MEMF_CLEAR
);
120 strcpy(fbuf
, aslfr
->fr_Drawer
);
125 AddPart(fbuf
, aslfr
->fr_File
, fblen
);
127 //printf("complete name='%s'\n", fbuf);
130 FreeAslRequest(aslfr
);
134 FreeAslRequest(aslfr
);
143 // Small test program for the above functions
144 struct Library
*AslBase
;
150 if(NULL
!= (AslBase
= OpenLibrary("asl.library", 38)) )
152 fbuf
= OpenFileReq(NULL
);
155 printf("File name='%s'\n", fbuf
);
160 fbuf
= SaveFileReq(NULL
);
163 printf("File name='%s'\n", fbuf
);
167 CloseLibrary(AslBase
);