📄 listdlg.c
字号:
/*
* MATLAB Compiler: 2.0.1
* Date: Tue May 08 21:28:21 2001
* Arguments: "-B" "sgl" "-m" "-W" "mainhg" "-L" "C" "asufit.m" "absfun.m"
* "absfunfree.m" "absfunshift.m" "absfunwidth.m" "dispfit.m" "dispfitdisp.m"
* "dispfitfree.m" "dispfitwidth.m" "seqmodfree.m" "spcfun.m" "spcfun1.m"
* "atamult.m" "aprecon.m"
*/
#include "listdlg.h"
static double __Array0_r[2] = { 160.0, 300.0 };
static double __Array1_r[2] = { 3.0, 4.0 };
/*
* The function "Mlistdlg" is the implementation version of the "listdlg"
* M-function from file "C:\MATLABR11\toolbox\matlab\uitools\listdlg.m" (lines
* 1-225). It contains the actual compiled code for that M-function. It is a
* static function and must only be called from one of the interface functions,
* appearing below.
*/
/*
* function [selection,value] = listdlg(varargin)
*/
static mxArray * Mlistdlg(mxArray * * value, int nargout_, mxArray * varargin) {
mxArray * selection = mclGetUninitializedArray();
mxArray * ans = mclInitializeAns();
mxArray * btn_wid = mclGetUninitializedArray();
mxArray * cancel_btn = mclGetUninitializedArray();
mxArray * cancelstring = mclGetUninitializedArray();
mxArray * ex = mclGetUninitializedArray();
mxArray * ffs = mclGetUninitializedArray();
mxArray * fig = mclGetUninitializedArray();
mxArray * fig_props = mclGetUninitializedArray();
mxArray * figname = mclGetUninitializedArray();
mxArray * fp = mclGetUninitializedArray();
mxArray * fus = mclGetUninitializedArray();
mxArray * h = mclGetUninitializedArray();
mxArray * i = mclGetUninitializedArray();
mxArray * initialvalue = mclGetUninitializedArray();
mclForLoopIterator iterator_0;
mxArray * listbox = mclGetUninitializedArray();
mxArray * listsize = mclGetUninitializedArray();
mxArray * liststring = mclGetUninitializedArray();
mxArray * ok_btn = mclGetUninitializedArray();
mxArray * okstring = mclGetUninitializedArray();
mxArray * prompt_text = mclGetUninitializedArray();
mxArray * promptstring = mclGetUninitializedArray();
mxArray * s = mclGetUninitializedArray();
mxArray * selectall_btn = mclGetUninitializedArray();
mxArray * smode = mclGetUninitializedArray();
mxArray * stype = mclGetUninitializedArray();
mxArray * uh = mclGetUninitializedArray();
mxArray * v = mclGetUninitializedArray();
mxArray * w = mclGetUninitializedArray();
/*
* %LISTDLG List selection dialog box.
* % [SELECTION,OK] = LISTDLG('ListString',S) creates a modal dialog box
* % which allows you to select a string or multiple strings from a list.
* % SELECTION is a vector of indices of the selected strings (length 1
* % in the single selection mode). Can be [] on the Mac, and will be []
* % when OK is 0.
* % OK is 1 if you push the OK button, or 0 if you push the Cancel
* % button or close the figure.
* % Double-clicking on an item or pressing <CR> when multiple items are
* % selected has the same effect as clicking the OK button.
* %
* % Inputs are in parameter,value pairs:
* %
* % Parameter Description
* % 'ListString' cell array of strings for the list box.
* % 'SelectionMode' string; can be 'single' or 'multiple'; defaults to
* % 'multiple'.
* % 'ListSize' [width height] of listbox in pixels; defaults
* % to [160 300].
* % 'InitialValue' vector of indices of which items of the list box
* % are initially selected; defaults to the first item.
* % 'Name' String for the figure's title. Defaults to ''.
* % 'PromptString' string matrix or cell array of strings which appears
* % as text above the list box. Defaults to {}.
* % 'OKString' string for the OK button; defaults to 'OK'.
* % 'CancelString' string for the Cancel button; defaults to 'Cancel'.
* % 'uh' uicontrol button height, in pixels; default = 18.
* % 'fus' frame/uicontrol spacing, in pixels; default = 8.
* % 'ffs' frame/figure spacing, in pixels; default = 8.
* %
* % A 'Select all' button is provided in the multiple selection case.
* %
* % Example:
* % d = dir;
* % str = {d.name};
* % [s,v] = listdlg('PromptString','Select a file:',...
* % 'SelectionMode','single',...
* % 'ListString',str)
*
* % T. Krauss, 12/7/95, P.N. Secakusuma, 6/10/97
* % Copyright (c) 1984-98 by The MathWorks, Inc.
* % $Revision: 1.13 $ $Date: 1998/03/26 12:59:11 $
*
* % if first input is an integer, dispatch to callbacks:
* % listdlg(0) - OK button callback
* % listdlg(1) - cancel button callback
* % listdlg(2) - select all button callback
* % listdlg(4) - double-click to choose the entry (Addition by PNS)
*
* if isstr(varargin{1})
*/
if (mlfTobool(
mlfFeval(
mclValueVarargout(),
mlxIsstr,
mlfIndexRef(varargin, "{?}", mlfScalar(1.0)),
NULL))) {
/*
* figname = '';
*/
mlfAssign(&figname, mxCreateString(""));
/*
* smode = 2; % (multiple)
*/
mlfAssign(&smode, mlfScalar(2.0));
/*
* promptstring = {};
*/
mlfAssign(&promptstring, mclCreateEmptyCell());
/*
* listsize = [160 300];
*/
mlfAssign(&listsize, mlfDoubleMatrix(1, 2, __Array0_r, NULL));
/*
* initialvalue = [];
*/
mlfAssign(&initialvalue, mclCreateEmptyArray());
/*
* okstring = 'Ok';
*/
mlfAssign(&okstring, mxCreateString("Ok"));
/*
* cancelstring = 'Cancel';
*/
mlfAssign(&cancelstring, mxCreateString("Cancel"));
/*
* fus = 8;
*/
mlfAssign(&fus, mlfScalar(8.0));
/*
* ffs = 8;
*/
mlfAssign(&ffs, mlfScalar(8.0));
/*
* uh = 18;
*/
mlfAssign(&uh, mlfScalar(18.0));
/*
*
* for i=1:2:length(varargin)
*/
for (mclForStart(
&iterator_0,
mlfScalar(1.0),
mlfScalar(2.0),
mlfLength(varargin));
mclForNext(&iterator_0, &i);
) {
/*
*
* switch lower(varargin{i})
*/
mxArray * t_ = mclUnassigned();
mlfAssign(
&t_,
mlfFeval(
mclValueVarargout(),
mlxLower,
mlfIndexRef(varargin, "{?}", i),
NULL));
/*
* case 'name'
*/
if (mclSwitchCompare(t_, mxCreateString("name"))) {
/*
* figname = varargin{i+1};
*/
mlfAssign(
&figname,
mlfIndexRef(varargin, "{?}", mlfPlus(i, mlfScalar(1.0))));
/*
* case 'promptstring'
*/
} else if (mclSwitchCompare(t_, mxCreateString("promptstring"))) {
/*
* promptstring = varargin{i+1};
*/
mlfAssign(
&promptstring,
mlfIndexRef(varargin, "{?}", mlfPlus(i, mlfScalar(1.0))));
/*
* case 'selectionmode'
*/
} else if (mclSwitchCompare(t_, mxCreateString("selectionmode"))) {
/*
* switch lower(varargin{i+1})
*/
mxArray * t_ = mclUnassigned();
mlfAssign(
&t_,
mlfFeval(
mclValueVarargout(),
mlxLower,
mlfIndexRef(varargin, "{?}", mlfPlus(i, mlfScalar(1.0))),
NULL));
/*
* case 'single'
*/
if (mclSwitchCompare(t_, mxCreateString("single"))) {
/*
* smode = 1;
*/
mlfAssign(&smode, mlfScalar(1.0));
/*
* case 'multiple'
*/
} else if (mclSwitchCompare(t_, mxCreateString("multiple"))) {
/*
* smode = 2;
*/
mlfAssign(&smode, mlfScalar(2.0));
/*
* end
*/
}
mxDestroyArray(t_);
/*
* case 'listsize'
*/
} else if (mclSwitchCompare(t_, mxCreateString("listsize"))) {
/*
* listsize = varargin{i+1};
*/
mlfAssign(
&listsize,
mlfIndexRef(varargin, "{?}", mlfPlus(i, mlfScalar(1.0))));
/*
* case 'liststring'
*/
} else if (mclSwitchCompare(t_, mxCreateString("liststring"))) {
/*
* liststring = varargin{i+1};
*/
mlfAssign(
&liststring,
mlfIndexRef(varargin, "{?}", mlfPlus(i, mlfScalar(1.0))));
/*
* case 'initialvalue'
*/
} else if (mclSwitchCompare(t_, mxCreateString("initialvalue"))) {
/*
* initialvalue = varargin{i+1};
*/
mlfAssign(
&initialvalue,
mlfIndexRef(varargin, "{?}", mlfPlus(i, mlfScalar(1.0))));
/*
* case 'uh'
*/
} else if (mclSwitchCompare(t_, mxCreateString("uh"))) {
/*
* uh = varargin{i+1};
*/
mlfAssign(
&uh,
mlfIndexRef(varargin, "{?}", mlfPlus(i, mlfScalar(1.0))));
/*
* case 'fus'
*/
} else if (mclSwitchCompare(t_, mxCreateString("fus"))) {
/*
* fus = varargin{i+1};
*/
mlfAssign(
&fus,
mlfIndexRef(varargin, "{?}", mlfPlus(i, mlfScalar(1.0))));
/*
* case 'ffs'
*/
} else if (mclSwitchCompare(t_, mxCreateString("ffs"))) {
/*
* ffs = varargin{i+1};
*/
mlfAssign(
&ffs,
mlfIndexRef(varargin, "{?}", mlfPlus(i, mlfScalar(1.0))));
/*
* case 'okstring'
*/
} else if (mclSwitchCompare(t_, mxCreateString("okstring"))) {
/*
* okstring = varargin{i+1};
*/
mlfAssign(
&okstring,
mlfIndexRef(varargin, "{?}", mlfPlus(i, mlfScalar(1.0))));
/*
* case 'cancelstring'
*/
} else if (mclSwitchCompare(t_, mxCreateString("cancelstring"))) {
/*
* cancelstring = varargin{i+1};
*/
mlfAssign(
&cancelstring,
mlfIndexRef(varargin, "{?}", mlfPlus(i, mlfScalar(1.0))));
/*
* end
*/
}
mxDestroyArray(t_);
/*
* end
*/
}
/*
*
* if isstr(promptstring)
*/
if (mlfTobool(mlfIsstr(promptstring))) {
/*
* promptstring = cellstr(promptstring);
*/
mlfAssign(&promptstring, mlfCellstr(promptstring));
/*
* end
*/
}
/*
*
* if isempty(initialvalue)
*/
if (mlfTobool(mlfIsempty(initialvalue))) {
/*
* initialvalue = 1;
*/
mlfAssign(&initialvalue, mlfScalar(1.0));
/*
* end
*/
}
/*
*
* ex = get(0,'defaultuicontrolfontsize')*1.5; % height extent per line of
*/
mlfAssign(
&ex,
mlfMtimes(
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -