TEXT_f
function [x,y,typ]=TEXT_f(job,arg1,arg2)
// Copyright INRIA
//** 22-23 Aug 2006: some carefull adjustements for the fonts
//** inside the new graphics datastructure
x=[]; y=[]; typ=[];
select job
case 'plot' then //normal position
graphics = arg1.graphics;
model = arg1.model;
if model.rpar==[] then
model.rpar=graphics.exprs(1)
end //compatibility
//** save the previous parameter
//** ppat = xget('pattern'); //** Get the current pattern or the current color.
//** oldfont = xget('font') ; //** Get font=[fontid,fontsize] .
gh_winpal = gca(); //** get the current Axes proprieties
default_font_style = gh_winpal.font_style ;
default_font_size = gh_winpal.font_size ;
default_font_color = gh_winpal.font_color ;
//** set the new parameters
//** xset('font',model.ipar(1),model.ipar(2))
gh_winpal.font_style = model.ipar(1) ;
gh_winpal.font_size = model.ipar(2) ;
//** special case for Windows
if MSDOS then
//** xset('pattern',scs_m.props.options.Background(1))
gh_winpal.font_color = scs_m.props.options.Background(1) ;
xstring(graphics.orig(1),graphics.orig(2),model.rpar)
end
//** set the new parameters
//** xset('pattern', default_color(1)) ;
gh_winpal.font_color = default_color(1) ;
//** print the string
xstring(graphics.orig(1), graphics.orig(2), model.rpar)
//** restore the old settings
//** xset('font',oldfont(1),oldfont(2))
//** xset('pattern',ppat)
gh_winpal.font_style = default_font_style ;
gh_winpal.font_size = default_font_size ;
gh_winpal.font_color = default_font_color ;
case 'getinputs' then
case 'getoutputs' then
case 'getorigin' then
[x,y] = standard_origin(arg1)
case 'set' then
x = arg1 ;
graphics = arg1.graphics ;
orig = graphics.orig ;
exprs = graphics.exprs ;
model = arg1.model ;
if size(exprs,'*')==1 then
exprs = [exprs;'3';'1']
end // compatibility
while %t do
[ok,txt,font,siz,exprs] = getvalue('Set Text block parameters',..
['Text';'Font number';'Font size'], list('str',-1,'vec',1,'vec',1),exprs)
if ~ok then break,end //**
if font<=0|font>6 then
message('Font number must be greater than 0 and less than 7')
ok=%f
end
if siz<0 then
message('Font size must be positive')
ok=%f
end
if ok then
graphics.exprs = exprs
//** save the font
//** oldfont = xget('font')
gh_winpal = gca(); //** get the current Axes proprieties
default_font_style = gh_winpal.font_style ;
default_font_size = gh_winpal.font_size ;
default_font_color = gh_winpal.font_color ;
//** set the new font
//** xset('font',font,siz)
gh_winpal.font_style = font ;
gh_winpal.font_size = siz ;
//** store the box coordinate that contains the string
r = xstringl(0,0,exprs(1),evstr(exprs(2)),evstr(exprs(3)));
//** restore the old font
//** xset('font',oldfont(1),oldfont(2));
gh_winpal.font_style = default_font_style ;
gh_winpal.font_size = default_font_size ;
gh_winpal.font_color = default_font_color ;
sz = r(3:4) ;
graphics.sz = sz ;
x.graphics = graphics ;
ipar = [font;siz]
model.rpar = txt ;
model.ipar = ipar ;
x.model = model ;
break
end
end //** of while
case 'define' then
font = 2 ;
siz = 1 ;
model = scicos_model()
model.sim = 'text'
model.rpar= 'Text'
model.ipar=[font;siz]
exprs = ['Text';string(font); string(siz)]
graphics = scicos_graphics();
graphics.orig = [0,0];
graphics.sz =[2 1];
graphics.exprs = exprs
x = mlist(['Text','graphics','model','void','gui'],graphics,model,' ','TEXT_f')
end
endfunction