Fonction d'interfaçage
fr
AFFICH_f
function [x,y,typ]=AFFICH_f(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;
if size(exprs,'*')==5 then exprs(6)='0';end //compatibility
if size(exprs,'*')==4 then exprs(4)=' ';exprs(5)=' ';end //compatibility
if size(model.dstate,'*')<>6 then model.dstate=[0;-1;0;0;1;1];end //compatibility
while %t do
[ok,font,fontsize,colr,nt,nd,herit,exprs]=getvalue(..
'Set parameters',..
['Font number';
'Font size';
'Color';
'Total number of digits';
'Number of rational part digits';
'Block inherits (1) or not (0)'],..
list('vec',1,'vec',1,'vec',1,'vec',1,'vec',1,'vec',1),exprs)
if ~ok then break,end //user cancel modification
//** ------------------------ Error checking ----------------------------------
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),[])
end
if ok then
model.ipar=[font;fontsize;colr;xget('window');nt;nd];
model.evtin=ones(1-herit,1)
graphics.exprs=exprs;
x.graphics=graphics;x.model=model
break
end
end
case 'define' then
font = 1 ; //** 1 --> greek font
fontsize = 1 ; //** 1
colr = 1 ;
nt = 9 ;
nd = 2 ;
exprs = [ string(font);
string(fontsize);
string(colr);
string(nt);
string(nd);
string(0) ]
model = scicos_model();
model.sim = 'affich' ;
model.in = 1 ;
model.evtin = 1 ;
model.dstate = [0;-1;0;0;1;1]
model.ipar = [font;fontsize;colr;1000;nt;nd]
model.blocktype = 'c' ;
model.firing = [] ;
model.dep_ut = [%t %f]
model.label = '' ;
gr_i=['xset(''font'',ipar(1),ipar(2))';
'str='' ''+part(''0'',ones(1,ipar(5)-ipar(6)-2))+''.''+part(''0'',ones(1,ipar(6)))'
'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)']
// disp("AFFICH_f gr_i"); pause ; //** debug only
x = standard_define([3 2],model,exprs,gr_i)
end
endfunction