📄 openfig.cpp
字号:
}
//
//
// if ~isequal(policy,'new') & ~isequal(policy,'reuse')
//
{
mwArray a_ = ~ isequal(mwVa(policy, "policy"), mwVarargin(_mxarray11_));
if (tobool(a_)
&& tobool(
a_
& ~ isequal(
mwVa(policy, "policy"), mwVarargin(_mxarray13_)))) {
//
// error('Second input argument must be ''new'' or ''reuse''.');
//
error(mwVarargin(_mxarray15_));
} else {
}
//
// end
//
}
//
//
// [path, name, ext] = fileparts(filename);
//
path = fileparts(&name, &ext, mwVa(filename, "filename"));
//
//
// if isempty(ext)
//
if (tobool(isempty(mwVv(ext, "ext")))) {
//
// ext = '.fig';
//
ext = _mxarray17_;
//
// elseif ~isequal(lower(ext), '.fig')
//
} else if (mclNotBool(
isequal(lower(mwVv(ext, "ext")), mwVarargin(_mxarray17_)))) {
//
// error('Argument must be a .fig file');
//
error(mwVarargin(_mxarray19_));
//
// end
//
}
//
//
// filename = fullfile(path, [name ext]);
//
filename
= fullfile(
mwVarargin(
mwVv(path, "path"),
horzcat(mwVarargin(mwVv(name, "name"), mwVv(ext, "ext")))));
//
//
// % We will use this token, based on the base name of the file
// % (without path or extension) to track open instances of figure.
// fname = filename;
//
fname = mwVa(filename, "filename");
//
// flag = isletter(fname) | fname == '_' | ('0' <= fname & fname <= '9');
//
flag
= isletter(mwVv(fname, "fname")) | mwVv(fname, "fname") == _mxarray21_
| _mxarray23_ <= mwVv(fname, "fname")
& mwVv(fname, "fname") <= _mxarray25_;
//
// if (~all(flag))
//
if (mclNotBool(all(mwVv(flag, "flag")))) {
//
// fname(find(~flag))=[];
//
fname(find(~ mwVv(flag, "flag"))) = mwEmptySqBracket();
//
// end
//
}
//
// fname = fliplr(fname); % file name is more important
//
fname = fliplr(mwVv(fname, "fname"));
//
// TOKEN = ['OpenFig_' fname '_SINGLETON']; % hide leading kruft
//
TOKEN = horzcat(mwVarargin(_mxarray27_, mwVv(fname, "fname"), _mxarray29_));
//
// TOKEN = TOKEN(1:min(end, 31));
//
TOKEN
= mclArrayRef(
mwVv(TOKEN, "TOKEN"),
colon(
_mxarray0_,
min(
end(mwVv(TOKEN, "TOKEN"), _mxarray0_, _mxarray0_),
_mxarray31_)));
//
//
// % get the existing list of figures, and prune out stale handles.
// figs = getappdata(0, TOKEN);
//
figs = getappdata(_mxarray32_, mwVv(TOKEN, "TOKEN"));
//
// figs = figs(ishandle(figs));
//
figs = mclArrayRef(mwVv(figs, "figs"), ishandle(mwVv(figs, "figs")));
//
//
// % are we reusing an existing figure?
// reusing = false;
//
reusing = false_func(mwVarargin());
//
//
// switch policy
//
{
mwArray v_ = mwVa(policy, "policy");
if (switchcompare(v_, _mxarray11_)) {
//
// case 'new'
// % create another one, unconditionally
// [fig, oldvis] = hgload(filename, struct('Visible','off'));
//
fig
= Nhgload(
2,
&oldvis,
mwVa(filename, "filename"),
mwVarargin(struct_func(mwVarargin(_mxarray33_, _mxarray35_))));
//
// figs(end + 1) = fig;
//
mclArrayAssign(
&figs,
mwVv(fig, "fig"),
end(mwVv(figs, "figs"), _mxarray0_, _mxarray0_) + _mxarray0_);
//
// case 'reuse'
//
} else if (switchcompare(v_, _mxarray13_)) {
//
// % create one only if there are no others
// if isempty(figs)
//
if (tobool(isempty(mwVv(figs, "figs")))) {
//
// [figs, oldvis] = hgload(filename, struct('Visible','off'));
//
figs
= Nhgload(
2,
&oldvis,
mwVa(filename, "filename"),
mwVarargin(
struct_func(mwVarargin(_mxarray33_, _mxarray35_))));
//
// else
//
} else {
//
// oldvis = get(figs(end),{'Visible'});
//
oldvis
= Nget(
1,
mwVarargin(
mclArrayRef(
mwVv(figs, "figs"),
end(mwVv(figs, "figs"), _mxarray0_, _mxarray0_)),
_mxarray37_));
//
// reusing = true;
//
reusing = true_func(mwVarargin());
//
// end
//
}
//
// % reuse the one at the end of the list:
// fig = figs(end);
//
fig
= mclArrayRef(
mwVv(figs, "figs"),
end(mwVv(figs, "figs"), _mxarray0_, _mxarray0_));
//
// end
//
}
}
//
//
// % bubble vis to top
// oldvis = oldvis{1};
//
oldvis = mwVv(oldvis, "oldvis").cell(_mxarray0_);
//
// if isstruct(oldvis)
//
if (tobool(isstruct(mwVv(oldvis, "oldvis")))) {
//
// oldvis = oldvis.Visible;
//
oldvis = mwVv(oldvis, "oldvis").field("Visible");
//
// else
//
} else {
//
// oldvis = get(0,'DefaultFigureVisible');
//
oldvis = Nget(1, mwVarargin(_mxarray32_, _mxarray39_));
//
// end
//
}
//
//
// % remember all instances of this figure.
// setappdata(0, TOKEN, figs);
//
setappdata(
mwVarargin(_mxarray32_, mwVv(TOKEN, "TOKEN"), mwVv(figs, "figs")));
//
//
// % ensure the figure is completely on the screen:
// movegui(fig, 'onscreen');
//
movegui(mwVarargin(mwVv(fig, "fig"), _mxarray41_));
//
//
// % decide whether to adjust visible
// if isempty(visible)
//
if (tobool(isempty(mwVa(visible, "visible")))) {
//
// set(fig,'Visible',oldvis);
//
ans.EqAns(
Nset(
0,
mwVarargin(mwVv(fig, "fig"), _mxarray33_, mwVv(oldvis, "oldvis"))));
//
// else
//
} else {
//
// switch visible
//
mwArray v_ = mwVa(visible, "visible");
if (switchcompare(v_, _mxarray3_)) {
//
// case 'invisible'
// set(fig,'Visible','off');
//
ans.EqAns(
Nset(0, mwVarargin(mwVv(fig, "fig"), _mxarray33_, _mxarray35_)));
//
// case 'visible'
//
} else if (switchcompare(v_, _mxarray5_)) {
//
// set(fig,'Visible','on');
//
ans.EqAns(
Nset(0, mwVarargin(mwVv(fig, "fig"), _mxarray33_, _mxarray43_)));
//
// case 'auto'
//
} else if (switchcompare(v_, _mxarray7_)) {
//
// if reusing
//
if (tobool(mwVv(reusing, "reusing"))) {
//
// % if oldvis is 'on', this will raise the figure to the foreground
// % it will do nothing if oldvis is 'off'
// set(fig,'Visible',oldvis);
//
ans.EqAns(
Nset(
0,
mwVarargin(
mwVv(fig, "fig"), _mxarray33_, mwVv(oldvis, "oldvis"))));
//
// else
//
} else {
//
// set(fig,'Visible','off');
//
ans.EqAns(
Nset(
0, mwVarargin(mwVv(fig, "fig"), _mxarray33_, _mxarray35_)));
//
// end
//
}
//
// end
//
}
//
// end
//
}
//
//
// if nargout
//
if (nargout_ != 0) {
//
// figOut = fig;
//
figOut = mwVv(fig, "fig");
//
// end
//
}
mwValidateOutput(figOut, 1, nargout_, "figOut", "openfig");
return figOut;
//
//
//
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -