From d99d2833837fa2f6f593190db2d7a653101dea0b Mon Sep 17 00:00:00 2001 From: Jack Jansen Date: Mon, 22 Jul 1996 15:26:01 +0000 Subject: [PATCH] Added SetFolder method which sets Standard File initial folder --- Mac/Modules/macfsmodule.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/Mac/Modules/macfsmodule.c b/Mac/Modules/macfsmodule.c index 69725cccc8..9bcdf622bc 100644 --- a/Mac/Modules/macfsmodule.c +++ b/Mac/Modules/macfsmodule.c @@ -31,6 +31,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #include #include #include +#include #include "nfullpath.h" @@ -689,6 +690,33 @@ mfs_StandardPutFile(self, args) return mkvalue("(Oi)",newmfssobject(&reply.sfFile), reply.sfGood); } +/* +** Set initial directory for file dialogs */ +static object * +mfs_SetFolder(self, args) + object *self; + object *args; +{ + FSSpec spec; + FSSpec ospec; + short orefnum; + long oparid; + + /* Get old values */ + orefnum = -LMGetSFSaveDisk(); + oparid = LMGetCurDirStore(); + (void)FSMakeFSSpec(orefnum, oparid, "\pplaceholder", &ospec); + + /* Go to working directory by default */ + (void)FSMakeFSSpec(0, 0, "\p:placeholder", &spec); + if (!newgetargs(args, "|O&", PyMac_GetFSSpec, &spec)) + return NULL; + /* Set standard-file working directory */ + LMSetSFSaveDisk(-spec.vRefNum); + LMSetCurDirStore(spec.parID); + return (object *)newmfssobject(&ospec); +} + static object * mfs_FSSpec(self, args) object *self; /* Not used */ @@ -794,6 +822,7 @@ static struct methodlist mfs_methods[] = { {"PromptGetFile", mfs_PromptGetFile, 1}, {"StandardPutFile", mfs_StandardPutFile, 1}, {"GetDirectory", mfs_GetDirectory, 1}, + {"SetFolder", mfs_SetFolder, 1}, {"FSSpec", mfs_FSSpec, 1}, {"RawFSSpec", mfs_RawFSSpec, 1}, {"RawAlias", mfs_RawAlias, 1}, -- 2.50.1