Skip to content

Commit 88fa799

Browse files
castercaster
authored andcommitted
Adding extra argument to execution of ProgramPlugin update listeners so that a GUI figure does not need to be found in GUI plugins.
1 parent 8a42cf1 commit 88fa799

3 files changed

Lines changed: 29 additions & 24 deletions

File tree

Projects/caster/plugins/vis_control/vis_control.m

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -421,23 +421,27 @@ function spot_color_select_CreateFcn(hObject, eventdata, handles)
421421
set(hObject,'BackgroundColor','white');
422422
end
423423

424-
function ViscoreUpdate(core, eventdata)
425-
results = findall(core.guiPluginHandles,'tag','vis_control_figure');
426-
if numel(results) == 0
424+
function ViscoreUpdate(core, eventdata, plugin)
425+
426+
fig = plugin.guiPluginHandle;
427+
if ~ishandle(plugin.guiPluginHandle)
427428
error('ViscoreUpdate in vis_control cannot find vis_control.');
428429
end
429-
fig = results(1);
430+
430431
handles = guidata(fig);
432+
431433
set(handles.connection_status_display,'string','UPDATE PENDING');
432434

433435

434-
function ViscorePostUpdate(core, eventdata)
435-
results = findall(core.guiPluginHandles,'tag','vis_control_figure');
436-
if numel(results) == 0
436+
function ViscorePostUpdate(core, eventdata, plugin)
437+
438+
fig = plugin.guiPluginHandle;
439+
if ~ishandle(plugin.guiPluginHandle)
437440
error('ViscorePostUpdate in vis_control cannot find vis_control.');
438441
end
439-
fig = results(1);
442+
440443
handles = guidata(fig);
444+
441445
set(handles.connection_status_display,'string','UPDATING GUI');
442446
set(handles.spot_color_select,'Value',...
443447
handles.plugin.core.settings.misc.colors.SpotColorDefault);
@@ -463,7 +467,7 @@ function ViscorePostUpdate(core, eventdata)
463467
guidata(fig,handles);
464468

465469

466-
function ViscoreShutdown(core, eventdata)
470+
function ViscoreShutdown(core, eventdata, plugin)
467471

468472
function UpdateTrajectory(handles,Vi,Ri,pivot_point)
469473

Projects/caster/plugins/vis_display/vis_display.m

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -57,21 +57,22 @@
5757

5858
guidata(gui, handles);
5959

60-
function ViscoreUpdate(core, eventdata)
61-
results = findall(core.guiPluginHandles,'Name','Visualizer Display');
62-
if numel(results) == 0
63-
error('ViscoreUpdate in Visualizer Display cannot find Visualizer Display.');
60+
function ViscoreUpdate(core, eventdata, plugin)
61+
62+
fig = plugin.guiPluginHandle;
63+
if ~ishandle(plugin.guiPluginHandle)
64+
error('ViscoreUpdate in Visualizer Display cannot find Display.');
6465
end
65-
fig = results(1);
66+
6667
handles = guidata(fig);
6768
handles.world.UpdateVisual();
6869
notify(core,'PostUpdateEvent');
6970

70-
function ViscoreShutdown(core, eventdata)
71-
results = findall(core.guiPluginHandles,'Name','Visualizer Display');
72-
if numel(results) == 0
73-
error('ViscoreShutdown cannot find Visualizer Display.');
71+
function ViscoreShutdown(core, eventdata, plugin)
72+
73+
fig = plugin.guiPluginHandle;
74+
if ~ishandle(plugin.guiPluginHandle)
75+
error('ViscoreUpdate in vis_control cannot find vis_control.');
7476
end
75-
fig = results(1);
76-
handles = guidata(fig);
77+
7778
delete(fig);

SupportTools/ProgramPlugin.m

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ function ConnectGui(obj,guiHandle)
107107

108108
if ~isempty(obj.updateFcn)
109109
% execute assigned shutdown function
110-
obj.preUpdateFcn(core, eventdata);
110+
obj.preUpdateFcn(core, eventdata, obj);
111111
end
112112
end
113113

@@ -118,7 +118,7 @@ function ConnectGui(obj,guiHandle)
118118

119119
if ~isempty(obj.updateFcn)
120120
% execute assigned shutdown function
121-
obj.updateFcn(core, eventdata);
121+
obj.updateFcn(core, eventdata, obj);
122122
end
123123

124124
end
@@ -130,7 +130,7 @@ function ConnectGui(obj,guiHandle)
130130

131131
if ~isempty(obj.shutdownFcn)
132132
% execute assigned shutdown function
133-
obj.shutdownFcn(core, eventdata);
133+
obj.shutdownFcn(core, eventdata, obj);
134134
end
135135
end
136136

@@ -141,7 +141,7 @@ function ConnectGui(obj,guiHandle)
141141

142142
if ~isempty(obj.postUpdateFcn)
143143
% execute assigned shutdown function
144-
obj.postUpdateFcn(core, eventdata);
144+
obj.postUpdateFcn(core, eventdata, obj);
145145
end
146146

147147
end

0 commit comments

Comments
 (0)