How do I move text objects in a stand-alone application created by MATLAB Compiler?

9 views (last 30 days)
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?

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 27 Jun 2009
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

More Answers (0)

Categories

Find more on Interactive Control and Callbacks in Help Center and File Exchange

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!