📄 userchange.m
字号:
function UserChange(obj)
%UserChange Method for FD spec object
% Author: T. Krauss
% Copyright (c) 1988-98 by The MathWorks, Inc.
% $Revision: 1.3 $
obj = struct(obj);
objud = get(obj.h,'userdata');
switch get(obj.h,'style')
case 'edit'
str = get(obj.h,'string');
[val,errstr] = fdutil('fdvalidstr',str,objud.complex,objud.integer,...
objud.range,objud.inclusive);
if isempty(errstr)
fig = get(obj.h,'parent');
ud = get(fig,'userdata');
if strcmp(get(ud.ht.revert,'enable'),'off')
objud.revertvalue = objud.value;
end
objud.lastvalue = objud.value;
objud.value = val;
set(obj.h,'userdata',objud)
set(obj.h,'string',fdutil('formattedstring',obj))
if ~isempty(objud.callback) & objud.lastvalue ~= objud.value
cb_error = 0;
evalin('base',objud.callback,'cb_error = 1;')
if cb_error
errstr = sprintf('Error in evaluating callback:\n%s',lasterr);
msgbox(errstr,'Error','error','modal')
end
end
else
msgbox(errstr,'Error','error','modal')
set(obj.h,'string',fdutil('formattedstring',obj))
end
case {'popupmenu', 'checkbox'}
fig = get(obj.h,'parent');
ud = get(fig,'userdata');
if strcmp(get(ud.ht.revert,'enable'),'off')
objud.revertvalue = objud.value;
end
objud.lastvalue = objud.value;
objud.value = get(obj.h,'value');
set(obj.h,'userdata',objud)
if ~isempty(objud.callback)
cb_error = 0;
evalin('base',objud.callback,'cb_error = 1;')
if cb_error
errstr = sprintf('Error in evaluating callback:\n%s',lasterr);
msgbox(errstr,'Error','error','modal')
end
end
case 'radiobutton'
fig = get(obj.h,'parent');
ud = get(fig,'userdata');
if objud.value == 1 % if radio button is already on, leave it on!
set(obj.h,'value',1)
return
end
if strcmp(get(ud.ht.revert,'enable'),'off')
objud.revertvalue = objud.value;
end
objud.lastvalue = objud.value;
objud.value = get(obj.h,'value');
set(obj.h,'userdata',objud)
% find other radiobuttons with this radiogroup property
% and set their values to 0.
h = [ud.Objects.fdspec.h];
for i=length(h):-1:1
h_ud = get(h(i),'userdata');
if strcmp(get(h(i),'style'),'radiobutton') & ...
strcmp(h_ud.radiogroup,objud.radiogroup) & (h(i)~=obj.h)
set(h(i),'value',0)
if strcmp(get(ud.ht.revert,'enable'),'off')
h_ud.lastvalue = h_ud.value;
end
h_ud.value = 0;
set(h(i),'userdata',h_ud)
end
end
if ~isempty(objud.callback)
cb_error = 0;
evalin('base',objud.callback,'cb_error = 1;')
if cb_error
errstr = sprintf('Error in evaluating callback:\n%s',lasterr);
msgbox(errstr,'Error','error','modal')
end
end
otherwise
warning('No support for this style of specification object yet')
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -