Code covered by the BSD License  

Highlights from
MIMOtool

image thumbnail

MIMOtool

by

 

12 Nov 2001 (Updated )

Multi Input Multi Output Systems Toolbox

crea_pop.m
function crea_pop(tipo,azione)
%CREATE OR ADD POP UP MENU 
%     
%          crea_pop(tipo,azione)
%
%Creazione di un menu di pop up per il grafico visualizzato
%sulla finestra;
%Nel caso di grafici (dati dai comandi step,impulse,bode,...) 
% gi presente un menu predefinito associato ad essi nel
%control toolbox e,in questi casi,la funzione aggiunge ai comandi
%del menu alcuni bottoni( azione='aggiungi' o non specificata).
%Nel caso invece di grafici dati da plot,semilogx,... il menu deve
%essere completamente definito (azione='crea').
%(La funzione va a vedere se esiste gi un menu di pop_up predefinito
%per il grafico visualizzato e si comporta di conseguenza)
%
%Il parametro di ingresso tipo (intero) serve per specificare se
%deve essere abilitato o meno il comando "zoom" 
%
%  tipo = 1 ---> creazione di un pop_up menu con zoom abilitato
%                (per grafici plot ,semilogx,...)
%  tipo = 0 ---> creazione di un pop_up menu con zoom disabilitato
%                (per grafici da bar,...)
%
%
% Massimo Davini---21/05/99


if nargin==0 tipo=0;azione='crea';end;
if nargin==1 azione='aggiungi';end;
isnot=1;
  
switch azione
   case 'aggiungi'
       
       versione=version;
       if str2num(versione(1:3))==5.3,
            popmenu=get(get(gca,'children'),'userdata');
           %la riga seguente  stata aggiunta perch senza di essa
           %dava degli errori (non so il perch,visto che aveva sempre
           %funzionato prima)
           % popmenu=popmenu{length(popmenu)};
       else
           % giampy june 2001 
           % in matlab 6 uicontext menu is a brother of gca
           chs=get(get(gca,'parent'),'children');
           for i=1:size(chs,1),
               if strcmp(get(chs(i),'type'),'uicontextmenu'),
                   popmenu=chs(i);
                   break
               end
           end
       end
       
   case 'crea'
      isnot=0;

      popmenu=uicontextmenu('tag','pop_up');
      %---Zoom---   
      pop=uimenu(popmenu,'label','Zoo&m');
      uimenu(pop,'label','In X','callback','zoom xon;');
      uimenu(pop,'label','In Y','callback','zoom yon;');
      uimenu(pop,'label','In X-Y','callback','zoom on;');
      uimenu(pop,'label','Out','callback','zoom out;zoom off;');
      if tipo==0 set(pop,'enable','off');end;   
   
      %---Grid---
      cb1=['if strcmp(get(gcbo,''checked''),''off'') set(gcbo,''checked'',''on'');grid;return;end;'];
      cb2=['if strcmp(get(gcbo,''checked''),''on'') set(gcbo,''checked'',''off'');grid;return;end;'];
      callb=[cb1,cb2];
      pop=uimenu(popmenu,'label','Gri&d','callback',callb);
end;   

colo=uimenu(popmenu,'label','Co&lors','separator','on');

%-------background colors----------
back=uimenu(colo,'label','Bac&kground');

ist1=['set(findobj(''tag'',''coloripop''),''checked'',''off'');'];
ist2=['set(gcbo,''checked'',''on'');'];
colori(1)=uimenu(back,'label','w&hite','tag','coloripop','checked','on',...
      'callback',[ist1,ist2,'set(gca,''Color'',[1 1 1]);']);
colori(2)=uimenu(back,'label','&grey','tag','coloripop',...
      'callback',[ist1,ist2,'set(gca,''Color'',[.8 .8 .8]);']);
colori(3)=uimenu(back,'label','&others','separator','on',...
      'callback',[ist1,'uisetcolor(gca,''BACKGROUND''''s COLOR'');']);

%------------label colors----------
lab=uimenu(colo,'label','La&bel','separator','on');

ist1=['set(findobj(''tag'',''colorilab''),''checked'',''off'');'];
cb1=[ist1,ist2,'set(gca,''xColor'',[1 1 1],''yColor'',[1 1 1]);set(get(gca,''Title''),''Color'',[1 1 1]);'];
cb2=[ist1,ist2,'set(gca,''xColor'',[.5 .5 .5],''yColor'',[.5 .5 .5]);set(get(gca,''Title''),''Color'',[.5 .5 .5]);'];
cb3=[ist1,ist2,'set(gca,''xColor'',[0 0 0],''yColor'',[0 0 0]);set(get(gca,''Title''),''Color'',[0 0 0]);'];

cololab(1)=uimenu(lab,'label','&white','tag','colorilab','callback',cb1);
cololab(2)=uimenu(lab,'label','&grey','tag','colorilab','callback',cb2);
cololab(3)=uimenu(lab,'label','&black','tag','colorilab','callback',cb3);

%------------title colors----------
if isnot==0
   pop=uimenu(colo,'label','Ti&tle','callback','uisetcolor(get(gca,''title''),''TITLE''''s COLOR'');');
   
   cb1=[ist1,ist2,'set(gca,''xColor'',[1 1 1],''yColor'',[1 1 1]);'];
   cb2=[ist1,ist2,'set(gca,''xColor'',[.5 .5 .5],''yColor'',[.5 .5 .5]);'];
   cb3=[ist1,ist2,'set(gca,''xColor'',[0 0 0],''yColor'',[0 0 0]);'];
   
   set(cololab(1),'callback',cb1);
   set(cololab(2),'callback',cb2);
  set(cololab(3),'callback',cb3);
end;

%----Setup grafico selezionato----
pop=uimenu(popmenu,'label','Gra&phic Setup ...','separator','on','callback','setupg;');
if strcmp(azione,'aggiungi')
   set(pop,'label','Prin&t ...','callback','print(''-noui'',''-v'',gcf);watchoff;');
end;
%------------Print----------------
if ~strcmp(azione,'aggiungi')
   pop=uimenu(popmenu,'label','Prin&t Window ...','callback','print(''-v'',gcf);watchoff;');
end;
%---------------------------------
set(gca,'uicontextmenu',popmenu);

Contact us