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

📄 inputdlg.c

📁 ASUFIT-Matlab-全局拟合程序
💻 C
📖 第 1 页 / 共 5 页
字号:
    mxArray * FigPos = mclGetUninitializedArray();
    mxArray * FigWidth = mclGetUninitializedArray();
    mxArray * NewPos = mclGetUninitializedArray();
    mxArray * Not1Liners = mclGetUninitializedArray();
    mxArray * Num1Liners = mclGetUninitializedArray();
    mxArray * OKPos = mclGetUninitializedArray();
    mxArray * QuestPos = mclGetUninitializedArray();
    mxArray * RemainingFigHeight = mclGetUninitializedArray();
    mxArray * TotalLines = mclGetUninitializedArray();
    mxArray * YPos = mclGetUninitializedArray();
    mxArray * ans = mclInitializeAns();
    mclForLoopIterator iterator_0;
    mxArray * lp = mclGetUninitializedArray();
    mclValidateInputs("inputdlg/LocalResizeFcn", 1, &FigHandle);
    /*
     * Data=get(FigHandle,'UserData');
     */
    mlfAssign(&Data, mlfGet(FigHandle, mxCreateString("UserData"), NULL));
    /*
     * 
     * %Data.ButtonHandles = [ OKHandles CancelHandle];
     * %Data.EditHandles = EditHandle;
     * %Data.QuestHandles = QuestHandle;
     * %Data.LineInfo = NumLines;
     * %Data.ButtonWidth = BtnWidth;
     * %Data.ButtonHeight = BtnHeight;
     * %Data.EditHeight = TxtHeight;
     * 
     * set(findall(FigHandle),'Units','points');
     */
    mclAssignAns(
      &ans,
      mlfNSet(
        0,
        mlfFindall(FigHandle, NULL),
        mxCreateString("Units"),
        mxCreateString("points"),
        NULL));
    /*
     * 
     * FigPos = get(FigHandle,'Position');
     */
    mlfAssign(&FigPos, mlfGet(FigHandle, mxCreateString("Position"), NULL));
    /*
     * FigWidth = FigPos(3); FigHeight = FigPos(4);
     */
    mlfAssign(&FigWidth, mlfIndexRef(FigPos, "(?)", mlfScalar(3.0)));
    mlfAssign(&FigHeight, mlfIndexRef(FigPos, "(?)", mlfScalar(4.0)));
    /*
     * 
     * OKPos = [ FigWidth-Data.ButtonWidth-Data.Offset Data.Offset ...
     */
    mlfAssign(
      &OKPos,
      mlfHorzcat(
        mlfFeval(
          mclValueVarargout(),
          mlxMinus,
          mlfFeval(
            mclValueVarargout(),
            mlxMinus,
            FigWidth,
            mlfIndexRef(Data, ".ButtonWidth"),
            NULL),
          mlfIndexRef(Data, ".Offset"),
          NULL),
        mlfIndexRef(Data, ".Offset"),
        mlfIndexRef(Data, ".ButtonWidth"),
        mlfIndexRef(Data, ".ButtonHeight"),
        NULL));
    /*
     * Data.ButtonWidth                      Data.ButtonHeight ];
     * CancelPos =[Data.Offset Data.Offset Data.ButtonWidth  Data.ButtonHeight];
     */
    mlfAssign(
      &CancelPos,
      mlfHorzcat(
        mlfIndexRef(Data, ".Offset"),
        mlfIndexRef(Data, ".Offset"),
        mlfIndexRef(Data, ".ButtonWidth"),
        mlfIndexRef(Data, ".ButtonHeight"),
        NULL));
    /*
     * set(Data.OKHandle,'Position',OKPos);
     */
    mclAssignAns(
      &ans,
      mlfNSet(
        0,
        mlfIndexRef(Data, ".OKHandle"),
        mxCreateString("Position"),
        OKPos,
        NULL));
    /*
     * set(Data.CancelHandle,'Position',CancelPos);
     */
    mclAssignAns(
      &ans,
      mlfNSet(
        0,
        mlfIndexRef(Data, ".CancelHandle"),
        mxCreateString("Position"),
        CancelPos,
        NULL));
    /*
     * 
     * % Determine the height of all question fields
     * YPos = sum(OKPos(1,[2 4]))+Data.Offset;
     */
    mlfAssign(
      &YPos,
      mlfFeval(
        mclValueVarargout(),
        mlxPlus,
        mlfSum(
          mlfIndexRef(
            OKPos,
            "(?,?)",
            mlfScalar(1.0),
            mlfDoubleMatrix(1, 2, __Array6_r, NULL)),
          NULL),
        mlfIndexRef(Data, ".Offset"),
        NULL));
    /*
     * QuestPos = get(Data.QuestHandles,{'Extent'});
     */
    mlfAssign(
      &QuestPos,
      mlfGet(
        mlfIndexRef(Data, ".QuestHandles"),
        mlfCellhcat(mxCreateString("Extent"), NULL),
        NULL));
    /*
     * QuestPos = cat(1,QuestPos{:});
     */
    mlfAssign(
      &QuestPos,
      mlfCat(
        mlfScalar(1.0),
        mlfIndexRef(QuestPos, "{?}", mlfCreateColonIndex()), NULL));
    /*
     * QuestPos(:,1) = Data.Offset;
     */
    mlfIndexAssign(
      &QuestPos,
      "(?,?)",
      mlfCreateColonIndex(),
      mlfScalar(1.0),
      mlfIndexRef(Data, ".Offset"));
    /*
     * RemainingFigHeight = FigHeight - YPos - sum(QuestPos(:,4)) - ...
     */
    mlfAssign(
      &RemainingFigHeight,
      mlfMinus(
        mlfFeval(
          mclValueVarargout(),
          mlxMinus,
          mlfMinus(
            mlfMinus(FigHeight, YPos),
            mlfSum(
              mlfIndexRef(
                QuestPos, "(?,?)", mlfCreateColonIndex(), mlfScalar(4.0)),
              NULL)),
          mlfIndexRef(Data, ".Offset"),
          NULL),
        mlfFeval(
          mclValueVarargout(),
          mlxMtimes,
          mlfFeval(
            mclValueVarargout(),
            mlxSize,
            mlfIndexRef(Data, ".LineInfo"),
            mlfScalar(1.0),
            NULL),
          mlfIndexRef(Data, ".Offset"),
          NULL)));
    /*
     * Data.Offset - size(Data.LineInfo,1)*Data.Offset;
     * 
     * Num1Liners = length(find(Data.LineInfo(:,1)==1));
     */
    mlfAssign(
      &Num1Liners,
      mlfLength(
        mlfFind(
          NULL,
          NULL,
          mlfEq(
            mlfIndexRef(
              Data, ".LineInfo(?,?)", mlfCreateColonIndex(), mlfScalar(1.0)),
            mlfScalar(1.0)))));
    /*
     * 
     * RemainingFigHeight = RemainingFigHeight - ...
     */
    mlfAssign(
      &RemainingFigHeight,
      mlfMinus(
        RemainingFigHeight,
        mlfFeval(
          mclValueVarargout(),
          mlxMtimes,
          Num1Liners,
          mlfIndexRef(Data, ".EditHeight"),
          NULL)));
    /*
     * Num1Liners*Data.EditHeight;
     * 
     * Not1Liners = find(Data.LineInfo(:,1)~=1);
     */
    mlfAssign(
      &Not1Liners,
      mlfFind(
        NULL,
        NULL,
        mlfNe(
          mlfIndexRef(
            Data, ".LineInfo(?,?)", mlfCreateColonIndex(), mlfScalar(1.0)),
          mlfScalar(1.0))));
    /*
     * 
     * %Scale the 1 liner heights appropriately with remaining fig height
     * TotalLines = sum(Data.LineInfo(Not1Liners,1));
     */
    mlfAssign(
      &TotalLines,
      mlfSum(
        mlfIndexRef(Data, ".LineInfo(?,?)", Not1Liners, mlfScalar(1.0)), NULL));
    /*
     * 
     * % Loop over each quest/text pair
     * 
     * for lp = 1:length(Data.QuestHandles),
     */
    for (mclForStart(
           &iterator_0,
           mlfScalar(1.0),
           mlfFeval(
             mclValueVarargout(),
             mlxLength,
             mlfIndexRef(Data, ".QuestHandles"),
             NULL),
           NULL);
         mclForNext(&iterator_0, &lp);
         ) {
        /*
         * %if size(Data.LineInfo,2) == 2,
         * %  CurString = get(Data.EditHandles(lp),'String');
         * %  set(Data.EditHandles(lp),'String', ...
         * %	 char(ones(1,Data.LineInfo(lp,2))*'x'));
         * %  Extent = get(Data.EditHandles(lp),'Extent');
         * %  set(Data.EditHandles(lp),'String',CurString)
         * %  if Extent(3) > FigWidth-2*Data.Offset,
         * %    Extent(3) = FigWidth -2*Data.Offset;
         * %  end
         * %else
         * %  Extent(3) = FigWidth -2*Data.Offset;
         * %end
         * CurPos = get(Data.EditHandles(lp),'Position');
         */
        mlfAssign(
          &CurPos,
          mlfGet(
            mlfIndexRef(Data, ".EditHandles(?)", lp),
            mxCreateString("Position"),
            NULL));
        /*
         * NewPos = [Data.Offset YPos  CurPos(3) Data.EditHeight ];
         */
        mlfAssign(
          &NewPos,
          mlfHorzcat(
            mlfIndexRef(Data, ".Offset"),
            YPos,
            mlfIndexRef(CurPos, "(?)", mlfScalar(3.0)),
            mlfIndexRef(Data, ".EditHeight"),
            NULL));
        /*
         * %if Data.LineInfo(lp,1) ~= 1,
         * % NewPos(4) = RemainingFigPos*Data.NumLines(lp,1)/TotalLines;
         * %end
         * 
         * set(Data.EditHandles(lp),'Position',NewPos)
         */
        mclPrintAns(
          &ans,
          mlfNSet(
            0,
            mlfIndexRef(Data, ".EditHandles(?)", lp),
            mxCreateString("Position"),
            NewPos,
            NULL));
        /*
         * YPos = sum(NewPos(1,[2 4]));
         */
        mlfAssign(
          &YPos,
          mlfSum(
            mlfIndexRef(
              NewPos,
              "(?,?)",
              mlfScalar(1.0),
              mlfDoubleMatrix(1, 2, __Array7_r, NULL)),
            NULL));
        /*
         * QuestPos(lp,2) = YPos;QuestPos(lp,3) = NewPos(3);
         */
        mlfIndexAssign(&QuestPos, "(?,?)", lp, mlfScalar(2.0), YPos);
        mlfIndexAssign(
          &QuestPos,
          "(?,?)",
          lp,
          mlfScalar(3.0),
          mlfIndexRef(NewPos, "(?)", mlfScalar(3.0)));
        /*
         * set(Data.QuestHandles(lp),'Position',QuestPos(lp,:));
         */
        mclAssignAns(
          &ans,
          mlfNSet(
            0,
            mlfIndexRef(Data, ".QuestHandles(?)", lp),
            mxCreateString("Position"),
            mlfIndexRef(QuestPos, "(?,?)", lp, mlfCreateColonIndex()),
            NULL));
        /*
         * YPos = sum(QuestPos(lp,[2 4]))+Data.Offset;
         */
        mlfAssign(
          &YPos,
          mlfFeval(
            mclValueVarargout(),
            mlxPlus,
            mlfSum(
              mlfIndexRef(
                QuestPos, "(?,?)", lp, mlfDoubleMatrix(1, 2, __Array8_r, NULL)),
              NULL),
            mlfIndexRef(Data, ".Offset"),
            NULL));
    /*
     * end
     */
    }
    /*
     * 
     * if YPos>FigHeight - Data.Offset,
     */
    if (mlfTobool(
          mlfGt(
            YPos,
            mlfFeval(
              mclValueVarargout(),
              mlxMinus,
              FigHeight,
              mlfIndexRef(Data, ".Offset"),
              NULL)))) {
        /*
         * FigHeight = YPos+Data.Offset;
         */
        mlfAssign(
          &FigHeight,
          mlfFeval(
            mclValueVarargout(),
            mlxPlus,
            YPos,
            mlfIndexRef(Data, ".Offset"),
            NULL));
        /*
         * FigPos(4)=FigHeight;
         */
        mlfIndexAssign(&FigPos, "(?)", mlfScalar(4.0), FigHeight);
        /*
         * set(FigHandle,'Position',FigPos);  
         */
        mclAssignAns(
          &ans,
          mlfNSet(0, FigHandle, mxCreateString("Position"), FigPos, NULL));
        /*
         * drawnow
         */
        mlfDrawnow(NULL);
    /*
     * end
     */
    }
    /*
     * set(FigHandle,'ResizeFcn','inputdlg InputDlgResizeCB');
     */
    mclAssignAns(
      &ans,
      mlfNSet(
        0,
        FigHandle,
        mxCreateString("ResizeFcn"),
        mxCreateString("inputdlg InputDlgResizeCB"),
        NULL));
    /*
     * 
     * set(findall(FigHandle),'Units','normalized')
     */
    mclPrintAns(
      &ans,
      mlfNSet(
        0,
        mlfFindall(FigHandle, NULL),
        mxCreateString("Units"),
        mxCreateString("normalized"),
        NULL));
    mxDestroyArray(CancelPos);
    mxDestroyArray(CurPos);
    mxDestroyArray(Data);
    mxDestroyArray(FigHeight);
    mxDestroyArray(FigPos);
    mxDestroyArray(FigWidth);
    mxDestroyArray(NewPos);
    mxDestroyArray(Not1Liners);
    mxDestroyArray(Num1Liners);
    mxDestroyArray(OKPos);
    mxDestroyArray(QuestPos);
    mxDestr

⌨️ 快捷键说明

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