📄 inputdlg.c
字号:
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 + -