I am using SPM2b on Win2k/Matlab 6.5 with an ATI Radeon 7000 video adapter.
SPM2b scales the dialog windows to fit the screen, but when I use two
monitors (with a virtual desktop spanning the monitors), the SPM interface
becomes unusable due to extreme stretching. The following code limits the
distortion to fit typical display resolutions (640x480 {1.3} to 1280x768
{1.67} to 1600x1200 {1.33}). I have tested it on my system, but I am
unfamiliar with the Matlab display controls on other OS's, so I would be
cautious of using this fix on non-Windows systems.
Perhaps the release version could include similar functionality.
Regards,
Bennett
%%%%%%%%%%%%%%%%% BEGIN FIX
% spm.m - Line 985
% SPM 2b stretches itself to fit the entire screen. While this
% makes some sense on single monitor systems, it becomes unwieldy on
% multiple monitor or extremely wide display configurations. I suggest
% limiting the range of usable aspect ratios so that the windows remain in
% "reasonable" proportions for all displays. The following code is one way
% of accomplishing this task. Perhaps another setting in the "defaults"
% section could toggle this behavior.
%
% 3/14/03 [log in to unmask]
if all(S0==1), error('Can''t open any graphics windows...'), end
% Compensate for aspect ratio
aspectRatio = (S0(3)-S0(1)+1)/(S0(4)-S0(2)+1);
defaultAspect = .75;
if(aspectRatio>1.7)
% display is much wider than high
S0(3) = S0(4).*defaultAspect;
end
if(aspectRatio<1)
% display is much higher than wide
S0(4) = S0(3)/defaultAspect;
end
varargout = {[S0(3)/1152 (S0(4)-50)/900 S0(3)/1152 (S0(4)-50)/900]};
%%%%%%%%%%%%%%%%% END FIX
Bennett Landman
Senior Software Engineer
Neurobehavioral Research, Inc.
201 Tamal Vista Blvd.
Corte Madera, California 94925
415.927.6627
[log in to unmask]
|