⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 listdlg.c

📁 ASUFIT-Matlab-全局拟合程序
💻 C
📖 第 1 页 / 共 3 页
字号:
            mlfGet(
              mlfScalar(0.0), mxCreateString("defaultuicontrolfontsize"), NULL),
            mlfScalar(1.5)));
        /*
         * % uicontrol text, in pixels (approximate)
         * 
         * fp = get(0,'defaultfigureposition');
         */
        mlfAssign(
          &fp,
          mlfGet(
            mlfScalar(0.0), mxCreateString("defaultfigureposition"), NULL));
        /*
         * w = 2*(fus+ffs)+listsize(1);
         */
        mlfAssign(
          &w,
          mlfPlus(
            mlfMtimes(mlfScalar(2.0), mlfPlus(fus, ffs)),
            mlfIndexRef(listsize, "(?)", mlfScalar(1.0))));
        /*
         * h = 2*ffs+6*fus+ex*length(promptstring)+listsize(2)+uh+(smode==2)*(fus+uh);
         */
        mlfAssign(
          &h,
          mlfPlus(
            mlfPlus(
              mlfPlus(
                mlfPlus(
                  mlfPlus(
                    mlfMtimes(mlfScalar(2.0), ffs),
                    mlfMtimes(mlfScalar(6.0), fus)),
                  mlfMtimes(ex, mlfLength(promptstring))),
                mlfIndexRef(listsize, "(?)", mlfScalar(2.0))),
              uh),
            mlfMtimes(mlfEq(smode, mlfScalar(2.0)), mlfPlus(fus, uh))));
        /*
         * fp = [fp(1) fp(2)+fp(4)-h w h];  % keep upper left corner fixed
         */
        mlfAssign(
          &fp,
          mlfHorzcat(
            mlfIndexRef(fp, "(?)", mlfScalar(1.0)),
            mlfMinus(
              mlfPlus(
                mlfIndexRef(fp, "(?)", mlfScalar(2.0)),
                mlfIndexRef(fp, "(?)", mlfScalar(4.0))),
              h),
            w,
            h,
            NULL));
        /*
         * 
         * fig_props = { ...
         */
        mlfAssign(
          &fig_props,
          mlfCellhcat(
            mxCreateString("name"),
            figname,
            mxCreateString("resize"),
            mxCreateString("off"),
            mxCreateString("numbertitle"),
            mxCreateString("off"),
            mxCreateString("windowstyle"),
            mxCreateString("modal"),
            mxCreateString("createfcn"),
            mxCreateString(""),
            mxCreateString("position"),
            fp,
            mxCreateString("closerequestfcn"),
            mxCreateString("set(gcf,'userdata','cancel')"),
            NULL));
        /*
         * 'name'                   figname ...
         * 'resize'                 'off' ...
         * 'numbertitle'            'off' ...
         * 'windowstyle'            'modal' ...
         * 'createfcn'              ''    ...
         * 'position'               fp   ...
         * 'closerequestfcn'        'set(gcf,''userdata'',''cancel'')' ...
         * };
         * 
         * fig = figure(fig_props{:});
         */
        mlfAssign(
          &fig,
          mlfNFigure(
            1, mlfIndexRef(fig_props, "{?}", mlfCreateColonIndex()), NULL));
        /*
         * 
         * uicontrol('style','frame',...
         */
        mclPrintAns(
          &ans,
          mlfNUicontrol(
            0,
            mxCreateString("style"),
            mxCreateString("frame"),
            mxCreateString("position"),
            mlfHorzcat(
              mlfScalar(0.0),
              mlfScalar(0.0),
              mlfIndexRef(fp, "(?)", mlfDoubleMatrix(1, 2, __Array1_r, NULL)),
              NULL),
            NULL));
        /*
         * 'position',[0 0 fp([3 4])])
         * uicontrol('style','frame',...
         */
        mclPrintAns(
          &ans,
          mlfNUicontrol(
            0,
            mxCreateString("style"),
            mxCreateString("frame"),
            mxCreateString("position"),
            mlfHorzcat(
              ffs,
              ffs,
              mlfPlus(
                mlfMtimes(mlfScalar(2.0), fus),
                mlfIndexRef(listsize, "(?)", mlfScalar(1.0))),
              mlfPlus(mlfMtimes(mlfScalar(2.0), fus), uh),
              NULL),
            NULL));
        /*
         * 'position',[ffs ffs 2*fus+listsize(1) 2*fus+uh])
         * uicontrol('style','frame',...
         */
        mclPrintAns(
          &ans,
          mlfNUicontrol(
            0,
            mxCreateString("style"),
            mxCreateString("frame"),
            mxCreateString("position"),
            mlfHorzcat(
              ffs,
              mlfPlus(mlfPlus(ffs, mlfMtimes(mlfScalar(3.0), fus)), uh),
              mlfPlus(
                mlfMtimes(mlfScalar(2.0), fus),
                mlfIndexRef(listsize, "(?)", mlfScalar(1.0))),
              mlfPlus(
                mlfPlus(
                  mlfPlus(
                    mlfIndexRef(listsize, "(?)", mlfScalar(2.0)),
                    mlfMtimes(mlfScalar(3.0), fus)),
                  mlfMtimes(ex, mlfLength(promptstring))),
                mlfMtimes(mlfPlus(uh, fus), mlfEq(smode, mlfScalar(2.0)))),
              NULL),
            NULL));
        /*
         * 'position',[ffs ffs+3*fus+uh 2*fus+listsize(1) ...
         * listsize(2)+3*fus+ex*length(promptstring)+(uh+fus)*(smode==2)])
         * 
         * if length(promptstring)>0
         */
        if (mlfTobool(mlfGt(mlfLength(promptstring), mlfScalar(0.0)))) {
            /*
             * prompt_text = uicontrol('style','text','string',promptstring,...
             */
            mlfAssign(
              &prompt_text,
              mlfNUicontrol(
                1,
                mxCreateString("style"),
                mxCreateString("text"),
                mxCreateString("string"),
                promptstring,
                mxCreateString("horizontalalignment"),
                mxCreateString("left"),
                mxCreateString("units"),
                mxCreateString("pixels"),
                mxCreateString("position"),
                mlfHorzcat(
                  mlfPlus(ffs, fus),
                  mlfMinus(
                    mlfIndexRef(fp, "(?)", mlfScalar(4.0)),
                    mlfPlus(
                      mlfPlus(ffs, fus),
                      mlfMtimes(ex, mlfLength(promptstring)))),
                  mlfIndexRef(listsize, "(?)", mlfScalar(1.0)),
                  mlfMtimes(ex, mlfLength(promptstring)),
                  NULL),
                NULL));
        /*
         * 'horizontalalignment','left','units','pixels',...
         * 'position',[ffs+fus fp(4)-(ffs+fus+ex*length(promptstring)) ...
         * listsize(1) ex*length(promptstring)]);
         * end
         */
        }
        /*
         * 
         * btn_wid = (fp(3)-2*(ffs+fus)-fus)/2;
         */
        mlfAssign(
          &btn_wid,
          mlfMrdivide(
            mlfMinus(
              mlfMinus(
                mlfIndexRef(fp, "(?)", mlfScalar(3.0)),
                mlfMtimes(mlfScalar(2.0), mlfPlus(ffs, fus))),
              fus),
            mlfScalar(2.0)));
        /*
         * ok_btn = uicontrol('style','pushbutton',...
         */
        mlfAssign(
          &ok_btn,
          mlfNUicontrol(
            1,
            mxCreateString("style"),
            mxCreateString("pushbutton"),
            mxCreateString("string"),
            okstring,
            mxCreateString("position"),
            mlfHorzcat(mlfPlus(ffs, fus), mlfPlus(ffs, fus), btn_wid, uh, NULL),
            mxCreateString("callback"),
            mxCreateString("listdlg(0)"),
            NULL));
        /*
         * 'string',okstring,...
         * 'position',[ffs+fus ffs+fus btn_wid uh],...
         * 'callback','listdlg(0)');
         * cancel_btn = uicontrol('style','pushbutton',...
         */
        mlfAssign(
          &cancel_btn,
          mlfNUicontrol(
            1,
            mxCreateString("style"),
            mxCreateString("pushbutton"),
            mxCreateString("string"),
            cancelstring,
            mxCreateString("position"),
            mlfHorzcat(
              mlfPlus(mlfPlus(ffs, mlfMtimes(mlfScalar(2.0), fus)), btn_wid),
              mlfPlus(ffs, fus),
              btn_wid,
              uh,
              NULL),
            mxCreateString("callback"),
            mxCreateString("listdlg(1)"),
            NULL));
        /*
         * 'string',cancelstring,...
         * 'position',[ffs+2*fus+btn_wid ffs+fus btn_wid uh],...
         * 'callback','listdlg(1)');
         * 
         * liststring=cellstr(liststring);
         */
        mlfAssign(&liststring, mlfCellstr(liststring));
        /*
         * listbox = uicontrol('style','listbox',...
         */
        mlfAssign(
          &listbox,
          mlfNUicontrol(
            1,
            mxCreateString("style"),
            mxCreateString("listbox"),
            mxCreateString("position"),
            mlfHorzcat(
              mlfPlus(ffs, fus),
              mlfPlus(
                mlfPlus(mlfPlus(ffs, uh), mlfMtimes(mlfScalar(4.0), fus)),
                mlfMtimes(mlfEq(smode, mlfScalar(2.0)), mlfPlus(fus, uh))),
              listsize,
              NULL),
            mxCreateString("string"),
            liststring,
            mxCreateString("backgroundcolor"),
            mxCreateString("w"),
            mxCreateString("max"),
            smode,
            mxCreateString("tag"),
            mxCreateString("listbox"),
            mxCreateString("value"),
            initialvalue,
            mxCreateString("callback"),
            mxCreateString("listdlg(4)"),
            NULL));
        /*
         * 'position',[ffs+fus ffs+uh+4*fus+(smode==2)*(fus+uh) listsize],...
         * 'string',liststring,...
         * 'backgroundcolor','w',...
         * 'max',smode,...
         * 'tag','listbox',...
         * 'value',initialvalue, ...
         * 'callback', 'listdlg(4)');
         * 
         * if smode == 2
         */
        if (mlfTobool(mlfEq(smode, mlfScalar(2.0)))) {
            /*
             * selectall_btn = uicontrol('style','pushbutton',...
             */
            mlfAssign(
              &selectall_btn,
              mlfNUicontrol(
                1,
                mxCreateString("style"),
                mxCreateString("pushbutton"),
                mxCreateString("string"),
                mxCreateString("Select all"),
                mxCreateString("position"),
                mlfHorzcat(
                  mlfPlus(ffs, fus),
                  mlfPlus(mlfPlus(mlfMtimes(mlfScalar(4.0), fus), ffs), uh),
                  mlfIndexRef(listsize, "(?)", mlfScalar(1.0)),
                  uh,
                  NULL),
                mxCreateString("tag"),
                mxCreateString("selectall_btn"),
                mxCreateString("callback"),
                mxCreateString("listdlg(2)"),
                NULL));
            /*
             * 'string','Select all',...
             * 'position',[ffs+fus 4*fus+ffs+uh listsize(1) uh],...
             * 'tag','selectall_btn',...
             * 'callback','listdlg(2)');
             * 
             * if length(initialvalue) == length(liststring)
             */
            if (mlfTobool(
                  mlfEq(mlfLength(initialvalue), mlfLength(liststring)))) {
                /*
                 * set(selectall_btn,'enable','off')
                 */
                mclPrintAns(
                  &ans,
                  mlfNSet(
                    0,
                    selectall_btn,
                    mxCreateString("enable"),
                    mxCreateString("off"),
                    NULL));
            /*
             * end
             */
            }
            /*
             * set(listbox,'callback',['listdlg(3); listdlg(4)'])
             */
            mclPrintAns(
              &ans,
              mlfNSet(
                0,
                listbox,
                mxCreateString("callback"),
                mlfHorzcat(mxCreateString("listdlg(3); listdlg(4)"), NULL),

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -