function testMove
fig = figure;
ax = axes;
txt = gtext('This text is movable');
set(txt,'UserData', false);
set(txt,'Units',get(fig,'Units'));
set(txt,'ButtonDownFcn',{@activateMove, fig});
function activateMove(hobj, eventdata, fig)
set(fig,'WindowButtonMotionFcn',{@moveTxtPosition, hobj});
set(fig,'WindowButtonDownFcn',{@openTxtPosition, hobj});
set(fig,'WindowButtonUpFcn',{@closeTxtPosition});
function openTxtPosition(fig, eventdata, hobj)
set(fig,'WindowButtonMotionFcn',{@moveTxtPosition, hobj})
function moveTxtPosition(fig, eventdata, hobj)
prevPos = get(fig,'UserData');
if isempty(prevPos)
set(fig,'UserData',get(fig,'CurrentPoint'));
return;
end
curPos = get(fig,'CurrentPoint');
posChange = curPos - prevPos;
txtPos = get(hobj,'pos');
set(hobj,'pos', [posChange + txtPos(1:2), 0]);
set(fig,'UserData',curPos);
function closeTxtPosition(fig, eventdata, hobj)
set(fig, 'WindowButtonMotionFcn','');
set(fig, 'WindowButtonDownFcn','');
set(fig, 'WindowButtonUpFcn','');
Best Answer