iptSetPointerBehavior

Сохраните структуру поведения указателя в графическом объекте

Синтаксис

iptSetPointerBehavior(obj, pointerBehavior)
iptSetPointerBehavior(obj, [])
iptSetPointerBehavior(obj, enterFcn)

Описание

iptSetPointerBehavior(obj, pointerBehavior) хранит заданную структуру поведения указателя в заданном графическом объекте, obj. Если obj является массивом объектов, iptSetPointerBehavior хранит ту же структуру в каждом объекте.

Когда используется с менеджером по указателю фигуры (см. iptPointerManager), структура поведения указателя управляет тем, что происходит, когда указатель мыши фигуры отодвигается и затем выходит из объекта в фигуре. Для получения дополнительной информации об этой структуре, смотрите Структуру Поведения Указателя.

iptSetPointerBehavior(obj, []) очищает поведение указателя от графического объекта или объектов.

iptSetPointerBehavior(obj, enterFcn) создает структуру поведения указателя, устанавливая поле enterFcn на указатель на функцию, заданный, и устанавливая поля traverseFcn и exitFcn на []. Смотрите Структуру Поведения Указателя для получения дополнительной информации об этих полях. Этот синтаксис обеспечивается как удобство, потому что для наиболее популярных способов использования только enterFcn необходим.

Структура поведения указателя

Структура поведения указателя содержит три поля: enterFcn, traverseFcn и exitFcn. Вы устанавливаете значение этих полей к указателям на функцию и используете функцию iptSetPointerBehavior, чтобы сопоставить эту структуру с графическим объектом в фигуре. Если фигуре установили менеджера по указателю, менеджер по указателю вызывает эти функции, когда следующие события имеют место. Если вы устанавливаете поле to[], никакие меры не приняты.

Указатель на функциюКогда названо
enterFcnНазванный, когда указатель мыши отодвигается объект.
traverseFcnНазванный однажды, когда указатель мыши отодвигается объект, и названный снова каждый раз перемещения мыши в объекте.
exitFcnНазванный, когда указатель мыши оставляет объект.

Когда менеджер по указателю вызывает функции, вы создаете, это передает два аргумента: объект фигуры и текущее положение указателя.

Примеры

Пример 1

Измените указатель мыши на fleur каждый раз, когда это по конкретному объекту, и восстановите исходный указатель, когда указатель мыши отъезжает объект. Пример создает объект закрашенной фигуры и сопоставляет структуру поведения указателя с объектом. Поскольку этот сценарий требует только enterFcn, пример использует the iptSetPointerBehavior(obj, enterFcn) синтаксис. Пример затем создает менеджера по указателю в фигуре. Обратите внимание на то, что менеджер по указателю заботится о восстановлении исходного указателя фигуры.

 patchobj = patch([.25 .75 .75 .25 .25],...
                [.25 .25 .75 .75 .25], 'r');
 xlim([0 1]);
 ylim([0 1]);
 
 enterFcn = @(fig, currentPoint)...
       set(fig, 'Pointer', 'fleur');
 iptSetPointerBehavior(patchobj, enterFcn);
 iptPointerManager(gcf);

Пример 2

Измените внешний вид указателя мыши, в зависимости от того, где это в объекте. Этот пример настраивает структуру поведения указателя, устанавливая поля enterFcn и exitFcn на [] и установку traverseFcn к функции с именем overMe, который обрабатывает специфичное для положения поведение. overMe является функцией, взятой в качестве примера, (в \toolbox\images\imdemos), который отличается указатель мыши в зависимости от местоположения мыши в объекте. Для получения дополнительной информации отредактируйте overMe.

patchobj = patch([.25 .75 .75 .25 .25],...
               [.25 .25 .75 .75 .25], 'r'); 
xlim([0 1])
ylim([0 1])

pointerBehavior.enterFcn    = [];
pointerBehavior.exitFcn     = [];
pointerBehavior.traverseFcn = @overMe;

iptSetPointerBehavior(patchobj, pointerBehavior);
iptPointerManager(gcf);

Пример 3

Измените заголовок фигуры, когда указатель мыши будет по объекту. В этом сценарии enterFcn и exitFcn используются, чтобы достигнуть желаемого эффекта, и traverseFcn является [].

 patchobj = patch([.25 .75 .75 .25 .25],...
                [.25 .25 .75 .75 .25], 'r');
 xlim([0 1])
 ylim([0 1])
 
 pointerBehavior.enterFcn = ...
     @(fig, currentPoint)...
          set(fig, 'Name', 'Over patch');
 pointerBehavior.exitFcn  = ...
     @(fig, currentPoint) set(fig, 'Name', '');
 pointerBehavior.traverseFcn = [];
 
 iptSetPointerBehavior(patchobj, pointerBehavior);
 iptPointerManager(gcf)

Смотрите также

|

Представленный в R2006a