12ab3781803f7039c1c575c528c8387fe158b1ec
[scilab.git] / scilab / modules / graphics / macros / xstringl.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) 2008 - INRIA - Jean-Baptiste Silvy
3 // This file must be used under the terms of the CeCILL.
4 // This source file is licensed as described in the file COPYING, which
5 // you should have received as part of this distribution.  The terms
6 // are also available at
7 // http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
8
9 //=======================================================================
10 // File   : xstringl.sci
11 // Desc   : Compute the bounding rectangle of a text
12 //          (old version of stringbox)
13 //======================================================================
14
15 function [rect] = xstringl( varargin )
16
17     // the call is rect=xstringl(x,y,str,[fontId,fontSize])
18
19     [lhs,rhs] = argn(0) ;
20     listArg = varargin ;
21
22     // rect = xstringl(x,y,str,[fontId,fontSize])
23
24     select rhs,
25     case 3 then
26         // stringbox(str, x, y)
27         corners = stringbox(listArg (3), listArg (1), listArg (2));
28     case 4 then
29         // stringbox(str, x, y, angle = 0, fontId)
30         corners = stringbox(listArg (3), listArg (1), listArg (2), 0, listArg (4));
31     case 5 then
32         // stringbox(str, x, y, angle = 0, fontId, fontSize);
33         corners = stringbox(listArg (3), listArg (1), listArg (2), 0, listArg (4), listArg (5));
34     else
35         // incorrect number of input argmuments
36         error(msprintf(gettext("%s: Wrong number of input argument(s): %d to %d expected."), "xstringl", 3, 5));
37         return ;
38     end;
39
40     // convert corners into position and size
41     // position, upper-left point
42     rect(1) = corners (1,2); // x
43     rect(2) = corners (2,2); // y
44
45     // size width, height
46     rect(3) = abs(corners(1,3) - corners(1,1));
47     rect(4) = abs(corners(2,3) - corners(2,1));
48
49 endfunction
50