View Raw SPL
/* read image file */
rimfname(fname)
{
local orgname, fn, form;
extern _riaspect, _riscales;
/* set default name to appear in dialog box */
if (argc > 0)
{
/* use input filename */
setvar("_rifname", fname);
setvar("_ripickdir", strrev(strfind(pathchar, strrev(_rifname))));
}
else
{
/* just define the variable */
defvar("_rifname", "");
}
/* define start directory if it doesn't already exist */
defvar("_ripickdir", "");
/* define aspect if it doesn't already exist */
defvar("_riaspect", -1);
/* define scales if it doesn't already exist */
defvar("_riscales", getscales);
/* _pickfile_status == 1 if dialog was successful */
setvar("_pickfile_status", 0);
/* remember original name */
orgname = _rifname;
/* invoke dialog box */
_mf("readimg.pan");
if (_pickfile_status == 1) /* dialog was successful */
{
/* remember default directory */
setvar("_ripickdir", strrev(strfind(pathchar, strrev(_rifname))));
if (strlen(_rifname) > 0)
{
fn = sprintf('"%s"', _rifname);
if (_riaspect == -1)
{
form = sprintf("setwf(%s, 'Readimage(%s);scales(%d)')", _dwin, fn, _riscales);
}
else
{
form = sprintf("setwf(%s, 'Readimage(%s, %d);scales(%d)')", _dwin, fn, _riaspect, _riscales);
}
eval(form);
}
}
else
{
/* reset to original name */
if (strlen(orgname) > 0)
{
setvar("_rifname", orgname);
}
}
}