MATLAB: How to move text objects in a stand-alone application created by MATLAB Compiler

aloneeditMATLABmoveplotselectstandstand-alonestandalonetext;

How do I move text objects in a stand-alone application created by MATLAB Compiler?
In MATLAB, figure windows have an edit plot button. If I use the plot editor, I can select text and move it around the figure. How do I do this for a stand-alone application?

Best Answer

Below is an example on how to get moving text for a stand-alone application.
function movingtext
% MOVINGTEXT example to show how to move text objects in a stand-alone
% application
% This will always move the text when the user clicks on it
% create example text object to move
htext=text('string', {'line1', 'line2'});
% set figure callbacks that make the text move.
set(gcf, 'WindowButtonMotionFcn', {@movetext, htext});
set(gcf, 'WindowButtonUpFcn', {@stoptext, htext});
% this function moves the text and saves what the current object
% was before we moved the text
function movetext(hObj, eventData, htext)
if gco == htext
% set it to selected so the user knows they are moving it
set(htext, 'selected', 'on');
% get the current point of wehre the mouse it. Set the text's position to
% that point. This is what makes it look like the text is following the mouse
pos=get(gca, 'currentpoint');
set(htext, 'position', [pos(1), pos(3)])
end
% this function executes when the user lets go of the mouse
function stoptext(hObj, eventData, htext, prev_obj)
%if the current object is the text object we want to move
if gco == htext
% un select it so the user knows they are no longer moving the text
set(htext, 'selected', 'off');
% in order to get this to get this to work, set the current object back
% to something that isn't the text object
set(gcf, 'currentobject', gca);
end