J'ai une forme avec un button pushbutton2 et une image gerre dans l'axes1 quand on press le pushbutton1(propriete String axes).


J'ai deux options dans le button de type popupmenu.


Marcateur *

Marcateur o

J'ai fait ces deux options transformant le button pushbutton2 en type popupmenu et dans Property inspector la propriete string j'ai ajoute:

Marcateur *

Marcateur o

Quand je donne click droit et j'ai selecte Marcateur * marquer sur ma figure d'axes1 avec bleu *(au click du mouse)

Quand je donne click droit et j'ai selecte Marcateur o marquer sur ma figure avec bleu o (au click du mouse)


J'attache ici le code:

%Pour le marcateur *
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
 
  fig = figure('MenuBar', 'none', 'Name', 'Gui12', ...
    'DoubleBuffer', 'on', 'NumberTitle', 'off', ...
    'WindowButtonUpFcn', @ButtonUp, ...
    'Position', [200, 200, 600, 500]);
 
  ax = axes('ButtonDownFcn',@NewPoint,...
    'XLim', [0, 1], 'YLim', [0, 1]);
 
  cmenu = uicontextmenu;
  uimenu(cmenu, 'Label', 'Delete', 'Callback', @DeletePoint);
 
 pnts = line('XData', [], 'YData', [], ...
    'ButtonDownFcn', @ButtonDown, ...
    'LineStyle','None', ...
    'Marker', '*', ... %pour le marcateur avec cercle j'utilise o
    'MarkerFaceColor', 'b', 'MarkerEdgeColor', 'b', ...
    'UIContextMenu', cmenu);
 
  function NewPoint(h, eventdata)
 
    if isequal(get(fig, 'SelectionType'), 'normal') %s'il a selecte le marcateur
      p = get(ax, 'CurrentPoint');
 
      XData = get(pnts, 'XData'); %coordonnne X
      YData = get(pnts, 'YData'); %coordonne Y
      XData = [XData, p(1,1)];
      YData = [YData, p(1,2)];
      set(pnts, 'XData', XData, 'YData', YData); %configuration des %coordonnes
    end;
 
  end;
%Pour le marcateur o
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
 
  fig = figure('MenuBar', 'none', 'Name', 'Gui12', ...
    'DoubleBuffer', 'on', 'NumberTitle', 'off', ...
    'WindowButtonUpFcn', @ButtonUp, ...
    'Position', [200, 200, 600, 500]);
 
  ax = axes('ButtonDownFcn',@NewPoint,...
    'XLim', [0, 1], 'YLim', [0, 1]);
 
  cmenu = uicontextmenu;
  uimenu(cmenu, 'Label', 'Delete', 'Callback', @DeletePoint);
 
 pnts = line('XData', [], 'YData', [], ...
    'ButtonDownFcn', @ButtonDown, ...
    'LineStyle','None', ...
    'Marker', 'o', ... %pour le marcateur avec cercle j'utilise o
    'MarkerFaceColor', 'b', 'MarkerEdgeColor', 'b', ...
    'UIContextMenu', cmenu);
 
  function NewPoint(h, eventdata)
 
    if isequal(get(fig, 'SelectionType'), 'normal') %s'il a selecte le marcateur
      p = get(ax, 'CurrentPoint');
 
      XData = get(pnts, 'XData'); %coordonnne X
      YData = get(pnts, 'YData'); %coordonne Y
      XData = [XData, p(1,1)];
      YData = [YData, p(1,2)];
      set(pnts, 'XData', XData, 'YData', YData); %configuration des %coordonnes
    end;
 
  end;


Question:

Je veux seulement quand je selecte le marcateur *(la premiere option du button de type pushbutton) m'appliquer le marcateur pour l'image d'axes1 et le marcateur cercle pour l'image d'axes1 quand j'ai selecte la deuxieme option (du button de type pushbutton). (j'ai mis l'effet de ces deux marcateurs sur imageshack.us)

J'ai mis ici la button de type popupmenu et l'effet d'execution de ces deux codes:

1) Button de type popupmenu


http://img14.imageshack.us/img14/6991/marcateurs.png

2) Effet de l'execution pour le marcateur * (au click du mouse il met *)

http://img22.imageshack.us/img22/9779/marcateur1.png


3) Effet de l'execution pour le marcateur o (au click du mouse il met o )

http://img11.imageshack.us/img11/1970/marcateur2.png


J'utilise guide donc que je dois faire dans le callback de pushbutton2 pour m'appliquer le marcateur que jai selecte dans le popupmenu?