www.gusucode.com > mbcguitools 工具箱 matlab 源码程序 > mbcguitools/@xregcolorbar/private/pr_setMotionRegions.m
function pr_setMotionRegions(gr) % Set mouse motion regions corresponding to limits % Copyright 2000-2016 The MathWorks, Inc. and Ford Global Technologies, Inc. newpos = get(gr.cfactor,'UserData'); gr = builtin('get',gr.colorbar.axes,'userdata'); %Get the current motion managers mnsz=minsize(gr); if newpos(3)<mnsz(1) || newpos(4)<mnsz(2) % go to blackout mode gr.MouseMotion(4).UserEnabled = 'off'; else pos = get(gr.colorbar.axes,'Position'); if ~get(gr.colorbar.userange,'Value') gr.MouseMotion(4).UserEnabled = 'off'; else gr.MouseMotion(4).UserEnabled = 'on'; ylim=get(gr.colorbar.axes,'YLim'); clen=ylim(2)-ylim(1); act_delta = 2; barval=get(gr.colorbar.minrange,'UserData'); ypos = floor((barval-ylim(1))/clen*pos(4) + pos(2) - 2*act_delta); gr.MouseMotion(1).Region = [pos(1) ypos pos(3) 4*act_delta]; barval=get(gr.colorbar.midrange,'UserData'); ypos = floor((barval-ylim(1))/clen*pos(4) + pos(2) - 2*act_delta); gr.MouseMotion(2).Region = [pos(1) ypos pos(3) 4*act_delta]; barval=get(gr.colorbar.maxrange,'UserData'); ypos = floor((barval-ylim(1))/clen*pos(4) + pos(2) - 2*act_delta); gr.MouseMotion(3).Region = [pos(1) ypos pos(3) 4*act_delta]; end end builtin('set',gr.colorbar.axes,'userdata',gr);