<?xml version="1.0" encoding="UTF-8"?>

<!--

 * Scilab ( https://www.scilab.org/ ) - This file is part of Scilab

 * Copyright (C) INRIA - Jean-Baptiste Silvy

 *


 * Copyright (C) 2012 - 2016 - Scilab Enterprises
 *
 * This file is hereby licensed under the terms of the GNU GPL v2.0,
 * pursuant to article 5.3.4 of the CeCILL v.2.1.
 * This file was originally licensed under the terms of the CeCILL v2.1,
 * and continues to be available under such terms.
 * For more information, see the COPYING file which you should have received
 * along with this program.

 *

 -->

<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"  xml:lang="ja" xml:id="stringbox">

    <refnamediv>

        <refname>stringbox</refname>

        <refpurpose>テキストまたはラベルのバウンディングボックスを計算</refpurpose>

    </refnamediv>

    <refsynopsisdiv>

        <title>呼び出し手順</title>

        <synopsis>rect = stringbox( string, x, y, [angle, [fontStyle, [fontSize]]] )

            rect = stringbox( Handle )

        </synopsis>

    </refsynopsisdiv>

    <refsection>

        <title>引数</title>

        <variablelist>

            <varlistentry>

                <term>rect</term>

                <listitem>

                    <para>バウンディングボックスの4頂点の座標を有する2x4 行列.</para>

                </listitem>

            </varlistentry>

            <varlistentry>

                <term>string</term>

                <listitem>

                    <para>囲われる文字列行列.</para>

                </listitem>

            </varlistentry>

            <varlistentry>

                <term>x,y</term>

                <listitem>

                    <para>実数スカラー, 文字列の左下の座標.</para>

                </listitem>

            </varlistentry>

            <varlistentry>

                <term>angle</term>

                <listitem>

                    <para>

                        文字列の点<literal>(x,y)</literal>を中心とする時計回りの回転角(単位:度)

                    </para>

                </listitem>

            </varlistentry>

            <varlistentry>

                <term>fonStyle</term>

                <listitem>

                    <para>フォントの型を指定する整数.</para>

                </listitem>

            </varlistentry>

            <varlistentry>

                <term>fontSize</term>

                <listitem>

                    <para>フォントの大きさを指定する整数.</para>

                </listitem>

            </varlistentry>

            <varlistentry>

                <term>Handle</term>

                <listitem>

                    <para>Textまたは Label型のグラフィックハンドル.</para>

                </listitem>

            </varlistentry>

        </variablelist>

    </refsection>

    <refsection>

        <title>説明</title>

        <para>

            <literal>stringbox</literal> はtextまたはlabelオブジェクトまたは

            特定の手段で表示される文字列を囲う矩形の頂点を返します.

            座標はカレントのグラフィックスケールで指定されます.

            最初の頂点はテキストの座標 <literal>(x,y)</literal>の

            回転しない状態で左下の点に対応し,

            以下の頂点は時計回りに戻り値の行列に指定されます.

        </para>

        <para>結果は PostScriptドライバに指定するにはあまり正確ではない可能性があります.</para>

    </refsection>

    <refsection>

        <title>例</title>

        <programlisting role="example"><![CDATA[

// 軸を表示

axes = gca() ;

axes.axes_visible = 'on' ;

axes.data_bounds = [ 1, 1 ; 10, 10 ] ;



// 軸にラベルを表示

xtitle( 'stringbox', 'X', 'Y' )  ;



// Xラベルのバウンディングボックスを取得

stringbox( axes.x_label )



// 文字列を描画

str = [ "Scilab", "is" , "not", "Skylab" ] ;

xstring( 4, 9, str ) ;



//テキストを修正

e = gce() ;

e.font_angle = 90 ;

e.font_size    = 6  ;

e.font_style   = 7 ;

e.box = 'on' ;



// バウンディングボックスを取得

stringbox( e )

// または

rect = stringbox( str, 4, 9, 90, 7, 6 )



// クリックし,テキストがヒットしたかどうかを確認

hit = xclick()  ;

hit = hit( 2 : 3 ) ;



if hit(1) >= rect(1,1)  & hit(1) <=  rect(1,2) & hit(2) <= rect(2,2) & hit(2) >= rect(2,3) then

  disp('You hit the text.') ;

else

  disp('You missed it.')

end;

 ]]></programlisting>

        <scilab:image>

            axes = gca() ;

            axes.axes_visible = 'on' ;

            axes.data_bounds = [ 1, 1 ; 10, 10 ] ;

            xtitle( 'stringbox', 'X', 'Y' )  ;

            stringbox( axes.x_label )

            str = [ "Scilab", "is" , "not", "Skylab" ] ;

            xstring( 4, 9, str ) ;

        </scilab:image>

    </refsection>

    <refsection role="see also">

        <title>参照</title>

        <simplelist type="inline">

            <member>

                <link linkend="xstring">xstring</link>

            </member>

            <member>

                <link linkend="xstringl">xstringl</link>

            </member>

            <member>

                <link linkend="xstringb">xstringb</link>

            </member>

        </simplelist>

    </refsection>

</refentry>

