Print

Print


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]