Skip to content
Snippets Groups Projects
Commit 255b1247 authored by jacques.grelet_ird.fr's avatar jacques.grelet_ird.fr
Browse files

Bascule le zoom et pan en toggletool, le code est clarifié mais il faudra...

Bascule le zoom et pan en toggletool, le code est clarifié mais il faudra vérifier (et valider) le comportement, notamment lorsque l'outil est désactive
Vérifier également que toute les fonctionnalités de QC_SelectCallback appelé par QC_OnMenuCallback sont présentes ? voir QCMenuCallback_old laissé en commentaire et a supprimer après validation.

J'ai rajouté 2 fonctions de tracés : plot_WS et plot_EXT qui pourront etre appelées depuis plot_SalTsgSample 
parent 95fd4c5b
No related branches found
No related tags found
No related merge requests found
......@@ -124,7 +124,7 @@ hSavePushtool = uipushtool(... % Open Save toolbar button
'Tag','PUSHTOOL_SAVE',...
'Enable', 'off',...
'ClickedCallback', @SaveMenuCallback);
hZoomPushtool = uipushtool(... % Open Zoom toolbar button
hZoomToggletool = uitoggletool(... % Open Zoom toolbar button
'Parent',hToolbar,...
'Separator', 'on', ...
'TooltipString','Zoom',...
......@@ -133,8 +133,9 @@ hZoomPushtool = uipushtool(... % Open Zoom toolbar button
'HandleVisibility','callback', ...
'Tag','PUSHTOOL_ZOOM',...
'Enable', 'off',...
'ClickedCallback', @ZoomMenuCallback);
hPanPushtool = uipushtool(... % Open Pan toolbar button
'OffCallback', @Zoom_OffMenuCallback,...
'ONCallback', @Zoom_OnMenuCallback);
hPanToggletool = uitoggletool(... % Open Pan toolbar button
'Parent',hToolbar,...
'TooltipString','Pan',...
'CData',iconRead(fullfile(matlabroot, ...
......@@ -142,7 +143,9 @@ hPanPushtool = uipushtool(... % Open Pan toolbar button
'HandleVisibility','callback', ...
'Tag','PUSHTOOL_PAN',...
'Enable', 'off',...
'ClickedCallback', @PanMenuCallback);
'OffCallback', @Pan_OffMenuCallback,...
'ONCallback', @Pan_OnMenuCallback);
%'ClickedCallback', @PanMenuCallback);
hQCToggletool = uitoggletool(... % Open QC toolbar button
'Parent',hToolbar,...
'TooltipString','Validation codes',...
......@@ -438,8 +441,8 @@ hQcCmenuBad = uimenu(...
'Callback', @Qc);
% Initialisation
% --------------
% Initialize tsg structure
% ------------------------
tsg_initialisation(hMainFig, hQcCmenu)
% -------------------------
......@@ -498,8 +501,8 @@ tsg_initialisation(hMainFig, hQcCmenu)
% ---------------------------------
set( hOpenMenu, 'UserData', 'on' );
% enable menu pushtool
% --------------------
% enable toolbar menu pushtool
% ----------------------------
hdl_pushtool = findobj('-regexp','Tag', 'PUSHTOOL_');
set(hdl_pushtool, 'Enable', 'on');
......@@ -544,7 +547,8 @@ tsg_initialisation(hMainFig, hQcCmenu)
% Maybe use a new pushbutton to draw or delete the bucket
% -------------------------------------------------------
if error2 ~= -1
plot_SalTsgSample( hMainFig, hPlotAxes );
plot_WS( hMainFig, hPlotAxes );
plot_EXT( hMainFig, hPlotAxes );
end
% Pointer reset to arrow
......@@ -553,58 +557,87 @@ tsg_initialisation(hMainFig, hQcCmenu)
end
%----------------------------------------------------------------------
% Callback function run when the zoom toggle toolbar is released
%----------------------------------------------------------------------
%----------------------------------------------------------------------
function ZoomMenuCallback(hObject, eventdata)
% Callback function run when the Open menu item is selected
function Zoom_OffMenuCallback(hObject, eventdata)
% returns the plot to its initial zoom setting
% --------------------------------------------
zoom out;
% turns interactive zooming off
% -----------------------------
zoom off;
end
% Returns a zoom mode object for the figure handle
%----------------------------------------------------------------------
% Callback function run when the zoom toggle toolbar is released
%----------------------------------------------------------------------
function Zoom_OnMenuCallback(hObject, eventdata)
% returns a zoom mode object for the figure hMainFig handle
% --------------------------------------------------------
hZoom = zoom(hMainFig);
% Specifies whether this mode is currently enabled on the figure
zoomOnOff = get(hZoom, 'Enable' );
switch zoomOnOff
case 'on'
zoom off
zoomAdaptiveDateTicks('off');
case 'off'
pan off
% Desactivate the QC toggle button
% --------------------------------
set(hQCPushtool, 'state', 'off' );
zoom on
zoomAdaptiveDateTicks('on');
end
% zoomColor = get(hZoomPushtool,'CData');
% set(hZoomplusPushtool,'CData', zoomColor);
% turns on interactive zooming (same effect than zoom on) but prevent
% side effect on another figure
% -------------------------------------------------------------------
set(hZoom,'enable', 'on');
% Turns on the automatic adaptation of date ticks
% -----------------------------------------------
zoomAdaptiveDateTicks('on');
% Desactivate the QC and pan toggle buttons
% -----------------------------------------
set(hQCToggletool, 'state', 'off' );
set(hPanToggletool, 'state', 'off' );
end
%----------------------------------------------------------------------
% Callback function run when the pan toggle toolbar is released
%----------------------------------------------------------------------
function PanMenuCallback(hObject, eventdata)
% Callback function run when the Open menu item is selected
function Pan_OffMenuCallback(hObject, eventdata)
% turns interactive pan off
% -------------------------
pan off;
% reset to original figure
% ------------------------
zoom out;
end
%----------------------------------------------------------------------
% Callback function run when the pan toggle toolbar is selected
%----------------------------------------------------------------------
function Pan_OnMenuCallback(hObject, eventdata)
% Returns a pan mode object for the figure handle
% -----------------------------------------------
hPan = pan(hMainFig);
% Specifies whether this mode is currently enabled on the figure
panOnOff = get(hPan, 'Enable' );
switch panOnOff
case 'on'
pan off
panAdaptiveDateTicks('off');
case 'off'
zoom off
% Desactivate the QC toggle button
% --------------------------------
set(hQCPushtool, 'state', 'off' );
pan on
panAdaptiveDateTicks('on');
end
% turns on interactive pan (same effect than pan on) but prevent
% side effect on another figure
% -------------------------------------------------------------------
set(hPan,'enable', 'on');
% Turns on the automatic adaptation of date ticks
% -----------------------------------------------
panAdaptiveDateTicks('on');
% Desactivate the QC and pan toggle button
% ----------------------------------------
set(hQCToggletool, 'state', 'off' );
set(hZoomToggletool, 'state', 'off' );
end
%----------------------------------------------------------------------
% Callback function run when the QC toggle tool is released
%----------------------------------------------------------------------
function QC_OffMenuCallback(gcbo, eventdata)
......@@ -622,6 +655,7 @@ tsg_initialisation(hMainFig, hQcCmenu)
end
%----------------------------------------------------------------------
% Callback function run when the QC toggle tool is pressed
%----------------------------------------------------------------------
function QC_OnMenuCallback(gcbo, eventdata)
......@@ -637,25 +671,18 @@ tsg_initialisation(hMainFig, hQcCmenu)
% Activate clic mouse menu on first axes (salinity)
% -------------------------------------------------
set(hPlotAxes(1),'ButtonDownFcn', @QC_SelectCallback);
% Try to make visible the context menu a the top of
% the figure. DOESN'T WORK
%oldUnits = get(hMainFig,'units' );
%set(hMainFig,'units', 'pixels');
%figPos = get(hMainFig,'Position');
%set(hQcCmenu, 'Visible', 'on', 'Position', [figPos(1) figPos(4)]);
%set(hMainFig,'units', oldUnits);
% change cursor to crosshai aspect
% --------------------------------
% change cursor to crosshair aspect
% ---------------------------------
set( hMainFig, 'Pointer', 'crosshair');
% -------------------------------------------------------------
% nested function on mouse clic
% nested function on mouse clic when QC toggle tool is selected
% -------------------------------------------------------------
function QC_SelectCallback(gcbo, eventdata)
% disable ButtonMotion on main fig during select
% prevent drawing to map
% ----------------------------------------------
set( hMainFig, 'WindowButtonMotionFcn', []);
......@@ -698,8 +725,8 @@ tsg_initialisation(hMainFig, hQcCmenu)
% ----------------------
setappdata( hMainFig, 'tsg_data', tsg);
% disable ButtonMotion on main fig during select
% ----------------------------------------------
% enable ButtonMotion on main fig after select QC area
% ----------------------------------------------------
set( hMainFig, 'WindowButtonMotionFcn', @MouseMotion);
end
......@@ -841,13 +868,11 @@ tsg_initialisation(hMainFig, hQcCmenu)
end
setappdata( hMainFig, 'tsg_data', tsg );
% uiwait in the QCMenuCallback function
% -------------------------------------
%uiresume
end
%---------------------------------------------------------------------
% Callback function run when mouse pointer is moving on temperature plot
% draw corresponding measurement position on map
%---------------------------------------------------------------------
function MouseMotion(hObject, eventdata)
......@@ -933,6 +958,7 @@ tsg_initialisation(hMainFig, hQcCmenu)
end
%---------------------------------------------------------------------
% Callback function run when the bootle push tool is pressed
%---------------------------------------------------------------------
function BottleMenuCallback(hObject, eventdata)
% Callback function run when the Bottle tool bar item is selected
......@@ -1004,7 +1030,7 @@ tsg_initialisation(hMainFig, hQcCmenu)
hLine1 = get( hPlotAxes(1), 'UserData');
hLine2 = get( hPlotAxes(2), 'UserData');
% Delete climatology linesthe on axes
% Delete climatology lines on axes
% -----------------------------------
try
delete(hLine1.stdClimMinus);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment