function [x,y,typ]=AFFICH_m(job,arg1,arg2) // Copyright INRIA //** 22 Aug 2006: looking for a nasty "font" bugs x=[];y=[];typ=[] select job case 'plot' then ipar = arg1.model.ipar standard_draw(arg1) case 'getinputs' then [x,y,typ]=standard_inputs(arg1) case 'getoutputs' then x=[];y=[];typ=[]; case 'getorigin' then [x,y]=standard_origin(arg1) case 'set' then x = arg1; graphics = arg1.graphics; exprs = graphics.exprs model = arg1.model; while %t do [ok,in,font,fontsize,colr,nt,nd,herit,exprs]=getvalue(.. 'Set parameters',.. ['Input Size', 'Font number'; 'Font size'; 'Color'; 'Total number of digits'; 'Number of rational part digits'; 'Block inherits (1) or not (0)'],.. list('mat',[1 2],'vec',1,'vec',1,'vec',1,'vec',1,'vec',1,'vec',1),exprs) if ~ok then break,end //user cancel modification mess = [] ; //** no message if font<=0 then mess=[mess;'Font number must be positive';' '] ok=%f end if fontsize<=0 then mess=[mess;'Font size must be positive';' '] ok=%f end if nt<=3 then mess=[mess;'Total number of digits must be greater than 3';' '] ok=%f end if nd<0 then mess=[mess;'Number of rational part digits must be ' 'greater or equal 0';' '] ok=%f end if ~ok then message(['Some specified values are inconsistent:'; ' ';mess]); end if ~or(herit==[0 1]) then mess=[mess;'Accept inherited values are 0 and 1';' '] ok=%f end if ~ok then message(['Some specified values are inconsistent:'; ' ';mess]) end //** Positive case -> if ok then //[model,graphics,ok]=check_io(model,graphics,1,[],ones(1-herit,1),[]) [model,graphics,ok]=set_io(model,graphics,... list(in,1),list(),... ones(1-herit,1),[]) end if ok then model.ipar=[font;fontsize;colr;xget('window');nt;nd;in(1,1)]; model.dstate = [-1;0;0;1;1;zeros(in(1,1)*in(1,2),1)] model.evtin=ones(1-herit,1) graphics.exprs=exprs; // sz_ref=[60 40]; // if model.in2<>1 then // graphics.sz(1)=sz_ref(1)*(model.in2-1); // else // graphics.sz(1)=sz_ref(1) // end // if model.in<>1 then // graphics.sz(2)=sz_ref(2)*model.in*0.75; // else // graphics.sz(2)=sz_ref(2) // end x.graphics=graphics;x.model=model break end end case 'define' then font = 1 fontsize = 1 colr = 1 nt = 5 nd = 1 in = [1 1] model = scicos_model(); model.sim = 'affich2' ; model.in = in(1,1); model.in2 = in(1,2); model.evtin = 1 ; model.dstate = [-1;0;0;1;1;zeros(in(1,1)*in(1,2),1)] model.ipar = [font;fontsize;colr;1000;nt;nd;in(1,1)] model.blocktype = 'c' ; model.firing = [] ; model.dep_ut = [%t %f] model.label = '' ; exprs = [ sci2exp([model.in model.in2]); string(font); string(fontsize); string(colr); string(nt); string(nd); string(0) ] gr_i=['fnt=xget(''font'')' 'xset(''font'',ipar(1),ipar(2))'; 'str='' ''+part(''0'',ones(1,ipar(5)-ipar(6)-2))+''.''+part(''0'',ones(1,ipar(6)))' 'str(1:model.in*model.in2)=str' 'str=matrix(str,model.in,model.in2)' 'rr=xstringl(orig(1),orig(2),str)' 'xstring(orig(1)+max(0,(sz(1)-rr(3))/2),orig(2)+max(0,(sz(2)-rr(4))/2),str)' 'xset(''font'',fnt(1),fnt(2))'] x = standard_define([3 2],model,exprs,gr_i) end endfunction