mirror of
https://github.com/python/cpython.git
synced 2025-11-11 22:55:08 +00:00
Added SetFolder method which sets Standard File initial folder
This commit is contained in:
parent
1ed9529a68
commit
d99d283383
1 changed files with 29 additions and 0 deletions
|
|
@ -31,6 +31,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
#include <Folders.h>
|
#include <Folders.h>
|
||||||
#include <StandardFile.h>
|
#include <StandardFile.h>
|
||||||
#include <Aliases.h>
|
#include <Aliases.h>
|
||||||
|
#include <LowMem.h>
|
||||||
|
|
||||||
#include "nfullpath.h"
|
#include "nfullpath.h"
|
||||||
|
|
||||||
|
|
@ -689,6 +690,33 @@ mfs_StandardPutFile(self, args)
|
||||||
return mkvalue("(Oi)",newmfssobject(&reply.sfFile), reply.sfGood);
|
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 *
|
static object *
|
||||||
mfs_FSSpec(self, args)
|
mfs_FSSpec(self, args)
|
||||||
object *self; /* Not used */
|
object *self; /* Not used */
|
||||||
|
|
@ -794,6 +822,7 @@ static struct methodlist mfs_methods[] = {
|
||||||
{"PromptGetFile", mfs_PromptGetFile, 1},
|
{"PromptGetFile", mfs_PromptGetFile, 1},
|
||||||
{"StandardPutFile", mfs_StandardPutFile, 1},
|
{"StandardPutFile", mfs_StandardPutFile, 1},
|
||||||
{"GetDirectory", mfs_GetDirectory, 1},
|
{"GetDirectory", mfs_GetDirectory, 1},
|
||||||
|
{"SetFolder", mfs_SetFolder, 1},
|
||||||
{"FSSpec", mfs_FSSpec, 1},
|
{"FSSpec", mfs_FSSpec, 1},
|
||||||
{"RawFSSpec", mfs_RawFSSpec, 1},
|
{"RawFSSpec", mfs_RawFSSpec, 1},
|
||||||
{"RawAlias", mfs_RawAlias, 1},
|
{"RawAlias", mfs_RawAlias, 1},
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue