diff --git a/GuiFigure.m b/GuiFigure.m index ae1349c..6e23734 100644 --- a/GuiFigure.m +++ b/GuiFigure.m @@ -36,7 +36,7 @@ function close_request(obj) function window = get_window(obj) if isempty(obj.window) || ~ishandle(obj.window) obj.window = figure(); - set(obj.window,'ResizeFcn',@(~,~) obj.resize_window(),... + set(obj.window,'SizeChangedFcn',@(~,~) obj.resize_window(),... 'CloseRequestFcn',@(~,~) obj.close_request()); end window = obj.window; diff --git a/functions/sc_version_check.m b/functions/sc_version_check.m new file mode 100644 index 0000000..8b293f8 --- /dev/null +++ b/functions/sc_version_check.m @@ -0,0 +1,9 @@ +function success = sc_version_check +desired_version = '8.4'; +v = ver('Matlab'); +success = str2double(v.Version)>=str2double(desired_version); +if ~success + msgbox(sprintf(... + 'You are using Matlab version %s. You need to update to version %s.\n',... + v.Version,desired_version)); +end \ No newline at end of file diff --git a/panelcomponents/@SequenceOptions/SequenceOptions.m b/panelcomponents/@SequenceOptions/SequenceOptions.m index 09a4936..f3ac919 100644 --- a/panelcomponents/@SequenceOptions/SequenceOptions.m +++ b/panelcomponents/@SequenceOptions/SequenceOptions.m @@ -153,6 +153,9 @@ function show_protocol(obj) panel = uipanel('Parent',fig); mgr = ScLayoutManager(panel); mgr.newline(20); + mgr.add(sc_ctrl('pushbutton','Scroll down',@(~,~) scroll_down(fig,panel)),100); + mgr.add(sc_ctrl('pushbutton','Scroll up',@(~,~) scroll_up(fig,panel)),100); + mgr.newline(20); mgr.add(sc_ctrl('text',sprintf('File : %s',obj.file.tag),[],'fontweight','bold'),100); mgr.newline(20); mgr.add(sc_ctrl('text','Tag',[],'fontweight','bold'),100); @@ -166,9 +169,27 @@ function show_protocol(obj) mgr.add(sc_ctrl('text',sprintf('%i - %i',round(seq.tmin),round(seq.tmax))),100); mgr.add(sc_ctrl('text',seq.comment,[],'Value',2),200); end + mgr.newline(20); + mgr.add(sc_ctrl('pushbutton','Scroll down',@(~,~) scroll_down(fig,panel)),100); + mgr.add(sc_ctrl('pushbutton','Scroll up',@(~,~) scroll_up(fig,panel)),100); + setwidth(panel,400); mgr.trim; - setheight(fig,getheight(panel)+10); - sety(panel,5); + set(fig,'SizeChangedFcn',@(~,~) size_changed_fcn(fig,panel)); + + function size_changed_fcn(fig,panel) + setx(panel,0); + sety(panel,getheight(fig)-getheight(panel)); + end + + function scroll_down(fig,panel) + windowheight = getheight(fig); + sety(panel,gety(panel)-.5*windowheight); + end + + function scroll_up(fig,panel) + windowheight = getheight(fig); + sety(panel,gety(panel)+.5*windowheight); + end end function print_experiment_status(obj) diff --git a/sc.m b/sc.m index 37366c9..b4a21ab 100644 --- a/sc.m +++ b/sc.m @@ -27,9 +27,11 @@ % % Copyright 2014 Neural Basis of Sensorimotor Control, Lund University % hannes.mogensen@med.lu.se - if nargout, gui = []; end addpath(genpath(fileparts(mfilename('fullpath')))); +if ~sc_version_check + return +end github_url = 'https://github.com/Neural-basis-of-sensorimotor-control/matlab-analysis/releases'; % close(findobj('Tag','Main Figure')); % if ~isempty(findobj('Tag','Main Figure')) @@ -37,6 +39,7 @@ if ~isempty(findall(0,'type','figure')) return end + args = varargin; if exist('sc_config.txt','file') == 2 diff --git a/sensorimotor/classes/ScRemoveWaveform.m b/sensorimotor/classes/ScRemoveWaveform.m index 913cc93..2201955 100644 --- a/sensorimotor/classes/ScRemoveWaveform.m +++ b/sensorimotor/classes/ScRemoveWaveform.m @@ -129,7 +129,7 @@ function calibrate(obj,v) else for k=1:numel(obj.stimpos) pos = obj.stimpos(k) + (0:obj.width-1)'; - v(pos) = v(pos) - f.*obj.v_median;%f.*obj.v_interpolated_median(2:end-1)';% + v(pos) = v(pos) - f.*obj.v_median';%f.*obj.v_interpolated_median(2:end-1)';% end end end diff --git a/viewers/@SequenceViewer/SequenceViewer.m b/viewers/@SequenceViewer/SequenceViewer.m index e225c6f..8dc1d85 100644 --- a/viewers/@SequenceViewer/SequenceViewer.m +++ b/viewers/@SequenceViewer/SequenceViewer.m @@ -17,7 +17,7 @@ end methods (Static) function str = version_str() - str = '>1.1.4'; + str = '1.2'; end end properties (SetObservable) @@ -172,7 +172,7 @@ function add_reset_panel(obj) clf(obj.plot_window_pr,'reset'); set(obj.plot_window_pr,'ToolBar','None','MenuBar','none'); set(obj.plot_window_pr,'Color',[0 0 0]); - set(obj.plot_window_pr,'ResizeFcn',@(~,~) obj.resize_plot_window()); + set(obj.plot_window_pr,'SizeChangedFcn',@(~,~) obj.resize_plot_window()); end val = obj.plot_window_pr; end @@ -182,7 +182,7 @@ function add_reset_panel(obj) function val = get.histogram_window(obj) if isempty(obj.histogram_window_pr) || ~ishandle(obj.histogram_window_pr) obj.histogram_window_pr = figure('Color',[0 0 0],... - 'ResizeFcn',@(~,~) obj.resize_histogram_window); + 'SizeChangedFcn',@(~,~) obj.resize_histogram_window); if ~isempty(obj.histogram) set(obj.histogram,'Parent',obj.histogram_window_pr); if isempty(obj.histogram.ax) || ~ishandle(obj.histogram.ax) diff --git a/viewers/@SequenceViewer/enable_resize_fcn.m b/viewers/@SequenceViewer/enable_resize_fcn.m index 68568b3..743c821 100644 --- a/viewers/@SequenceViewer/enable_resize_fcn.m +++ b/viewers/@SequenceViewer/enable_resize_fcn.m @@ -1,11 +1,11 @@ function enable_resize_fcn(obj,enable) if enable - set(obj.btn_window,'ResizeFcn',@(~,~) obj.resize_btn_window()); - set(obj.plot_window,'ResizeFcn',@(~,~) obj.resize_plot_window()); - set(obj.histogram_window,'ResizeFcn',@(~,~) obj.resize_histogram_window()); + set(obj.btn_window,'SizeChangedFcn',@(~,~) obj.resize_btn_window()); + set(obj.plot_window,'SizeChangedFcn',@(~,~) obj.resize_plot_window()); + set(obj.histogram_window,'SizeChangedFcn',@(~,~) obj.resize_histogram_window()); else - set(obj.btn_window,'ResizeFcn',[]); - set(obj.plot_window,'ResizeFcn',[]); - set(obj.histogram_window,'ResizeFcn',[]); + set(obj.btn_window,'SizeChangedFcn',[]); + set(obj.plot_window,'SizeChangedFcn',[]); + set(obj.histogram_window,'SizeChangedFcn',[]); end end \ No newline at end of file diff --git a/viewers/@WaveformViewer/create_new_waveform.m b/viewers/@WaveformViewer/create_new_waveform.m index f92ec49..cda845b 100644 --- a/viewers/@WaveformViewer/create_new_waveform.m +++ b/viewers/@WaveformViewer/create_new_waveform.m @@ -24,7 +24,7 @@ function add_waveform_callback(~,~) obj.main_signal.waveforms.add(waveform); obj.waveform = waveform; obj.has_unsaved_changes = true; - resize_fcn = get(obj.plot_window,'ResizeFcn'); + resize_fcn = get(obj.plot_window,'SizeChangedFcn'); resize_fcn(); else msgbox(['Waveform name must be non-empty and unique for '...