📄 listdlg.c
字号:
NULL));
/*
* end
*/
}
/*
*
* waitfor(fig,'userdata')
*/
mlfWaitfor(fig, mxCreateString("userdata"), NULL);
/*
*
* switch get(fig,'userdata')
*/
{
mxArray * t_ = mclUnassigned();
mlfAssign(&t_, mlfGet(fig, mxCreateString("userdata"), NULL));
/*
*
* case 'ok'
*/
if (mclSwitchCompare(t_, mxCreateString("ok"))) {
/*
* value = 1;
*/
mlfAssign(value, mlfScalar(1.0));
/*
* selection = get(listbox,'value');
*/
mlfAssign(
&selection, mlfGet(listbox, mxCreateString("value"), NULL));
/*
* case 'cancel'
*/
} else if (mclSwitchCompare(t_, mxCreateString("cancel"))) {
/*
* value = 0;
*/
mlfAssign(value, mlfScalar(0.0));
/*
* selection = [];
*/
mlfAssign(&selection, mclCreateEmptyArray());
/*
* end
*/
}
mxDestroyArray(t_);
}
/*
*
* delete(fig)
*/
mlfDelete(fig, NULL);
/*
*
* else
*/
} else {
/*
*
* switch varargin{1}
*/
mxArray * t_ = mclUnassigned();
mlfAssign(&t_, mlfIndexRef(varargin, "{?}", mlfScalar(1.0)));
/*
*
* case 0 % OK button callback
*/
if (mclSwitchCompare(t_, mlfScalar(0.0))) {
/*
* set(gcf,'userdata','ok')
*/
mclPrintAns(
&ans,
mlfNSet(
0,
mlfGcf(),
mxCreateString("userdata"),
mxCreateString("ok"),
NULL));
/*
*
* case 1 % cancel button callback
*/
} else if (mclSwitchCompare(t_, mlfScalar(1.0))) {
/*
* set(gcf,'userdata','cancel')
*/
mclPrintAns(
&ans,
mlfNSet(
0,
mlfGcf(),
mxCreateString("userdata"),
mxCreateString("cancel"),
NULL));
/*
*
* case 2 % select all button callback
*/
} else if (mclSwitchCompare(t_, mlfScalar(2.0))) {
/*
* listbox = findobj(gcf,'tag','listbox');
*/
mlfAssign(
&listbox,
mlfFindobj(
mlfGcf(),
mxCreateString("tag"),
mxCreateString("listbox"),
NULL));
/*
* selectall_btn = findobj(gcf,'tag','selectall_btn');
*/
mlfAssign(
&selectall_btn,
mlfFindobj(
mlfGcf(),
mxCreateString("tag"),
mxCreateString("selectall_btn"),
NULL));
/*
* set(selectall_btn,'enable','off')
*/
mclPrintAns(
&ans,
mlfNSet(
0,
selectall_btn,
mxCreateString("enable"),
mxCreateString("off"),
NULL));
/*
* s = get(listbox,'string');
*/
mlfAssign(&s, mlfGet(listbox, mxCreateString("string"), NULL));
/*
* set(listbox,'value',1:length(s));
*/
mclAssignAns(
&ans,
mlfNSet(
0,
listbox,
mxCreateString("value"),
mlfColon(mlfScalar(1.0), mlfLength(s), NULL),
NULL));
/*
*
* case 3 % listbox callback
*/
} else if (mclSwitchCompare(t_, mlfScalar(3.0))) {
/*
* listbox = findobj(gcf,'tag','listbox');
*/
mlfAssign(
&listbox,
mlfFindobj(
mlfGcf(),
mxCreateString("tag"),
mxCreateString("listbox"),
NULL));
/*
* selectall_btn = findobj(gcf,'tag','selectall_btn');
*/
mlfAssign(
&selectall_btn,
mlfFindobj(
mlfGcf(),
mxCreateString("tag"),
mxCreateString("selectall_btn"),
NULL));
/*
* v = get(listbox,'value');
*/
mlfAssign(&v, mlfGet(listbox, mxCreateString("value"), NULL));
/*
* s = get(listbox,'string');
*/
mlfAssign(&s, mlfGet(listbox, mxCreateString("string"), NULL));
/*
* if length(s)==length(v)
*/
if (mlfTobool(mlfEq(mlfLength(s), mlfLength(v)))) {
/*
* set(selectall_btn,'enable','off')
*/
mclPrintAns(
&ans,
mlfNSet(
0,
selectall_btn,
mxCreateString("enable"),
mxCreateString("off"),
NULL));
/*
* else
*/
} else {
/*
* set(selectall_btn,'enable','on')
*/
mclPrintAns(
&ans,
mlfNSet(
0,
selectall_btn,
mxCreateString("enable"),
mxCreateString("on"),
NULL));
/*
* end
*/
}
/*
*
* case 4 % Double-click to choose
*/
} else if (mclSwitchCompare(t_, mlfScalar(4.0))) {
/*
* stype = get(gcf, 'SelectionType');
*/
mlfAssign(
&stype, mlfGet(mlfGcf(), mxCreateString("SelectionType"), NULL));
/*
* if (strcmp(stype, 'open')),
*/
if (mlfTobool(mlfStrcmp(stype, mxCreateString("open")))) {
/*
* set(gcf, 'userdata', 'ok');
*/
mclAssignAns(
&ans,
mlfNSet(
0,
mlfGcf(),
mxCreateString("userdata"),
mxCreateString("ok"),
NULL));
/*
* end;
*/
}
/*
*
* end
*/
}
mxDestroyArray(t_);
/*
*
* end
*/
}
mclValidateOutputs("listdlg", 2, nargout_, &selection, value);
mxDestroyArray(ans);
mxDestroyArray(btn_wid);
mxDestroyArray(cancel_btn);
mxDestroyArray(cancelstring);
mxDestroyArray(ex);
mxDestroyArray(ffs);
mxDestroyArray(fig);
mxDestroyArray(fig_props);
mxDestroyArray(figname);
mxDestroyArray(fp);
mxDestroyArray(fus);
mxDestroyArray(h);
mxDestroyArray(i);
mxDestroyArray(initialvalue);
mxDestroyArray(listbox);
mxDestroyArray(listsize);
mxDestroyArray(liststring);
mxDestroyArray(ok_btn);
mxDestroyArray(okstring);
mxDestroyArray(prompt_text);
mxDestroyArray(promptstring);
mxDestroyArray(s);
mxDestroyArray(selectall_btn);
mxDestroyArray(smode);
mxDestroyArray(stype);
mxDestroyArray(uh);
mxDestroyArray(v);
mxDestroyArray(w);
/*
*
*
*/
return selection;
}
/*
* The function "mlfListdlg" contains the normal interface for the "listdlg"
* M-function from file "C:\MATLABR11\toolbox\matlab\uitools\listdlg.m" (lines
* 1-225). This function processes any input arguments and passes them to the
* implementation version of the function, appearing above.
*/
mxArray * mlfListdlg(mxArray * * value, ...) {
mxArray * varargin = mclUnassigned();
int nargout = 1;
mxArray * selection = mclGetUninitializedArray();
mxArray * value__ = mclGetUninitializedArray();
mlfVarargin(&varargin, value, 0);
mlfEnterNewContext(1, -1, value, varargin);
if (value != NULL) {
++nargout;
}
selection = Mlistdlg(&value__, nargout, varargin);
mlfRestorePreviousContext(1, 0, value);
mxDestroyArray(varargin);
if (value != NULL) {
mclCopyOutputArg(value, value__);
} else {
mxDestroyArray(value__);
}
return mlfReturnValue(selection);
}
/*
* The function "mlxListdlg" contains the feval interface for the "listdlg"
* M-function from file "C:\MATLABR11\toolbox\matlab\uitools\listdlg.m" (lines
* 1-225). The feval function calls the implementation version of listdlg
* through this function. This function processes any input arguments and
* passes them to the implementation version of the function, appearing above.
*/
void mlxListdlg(int nlhs, mxArray * plhs[], int nrhs, mxArray * prhs[]) {
mxArray * mprhs[1];
mxArray * mplhs[2];
int i;
if (nlhs > 2) {
mlfError(
mxCreateString(
"Run-time Error: File: listdlg Line: 1 Column: "
"0 The function \"listdlg\" was called with mor"
"e than the declared number of outputs (2)"));
}
for (i = 0; i < 2; ++i) {
mplhs[i] = NULL;
}
mlfEnterNewContext(0, 0);
mprhs[0] = NULL;
mlfAssign(&mprhs[0], mclCreateVararginCell(nrhs, prhs));
mplhs[0] = Mlistdlg(&mplhs[1], nlhs, mprhs[0]);
mlfRestorePreviousContext(0, 0);
plhs[0] = mplhs[0];
for (i = 1; i < 2 && i < nlhs; ++i) {
plhs[i] = mplhs[i];
}
for (; i < 2; ++i) {
mxDestroyArray(mplhs[i]);
}
mxDestroyArray(mprhs[0]);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -