View Raw SPL
/*****************************************************************************
*                                                                            *
*   SETSYMBOLSIZE.SPL  Copyright (C) 2011 DSP Development Corporation        *
*                               All Rights Reserved                          *
*                                                                            *
*   Author:      Randy Race                                                  *
*                                                                            *
*   Synopsis:    Sets the symbol size of a series                            *
*                                                                            *
*   Revisions:   31 Jan 2011  RRR  Creation                                  *
*                                                                            *
*****************************************************************************/

#include 

#if @HELP_SETSYMBOLSIZE

    SETSYMBOLSIZE

    Purpose: Sets the symbol size of a series.

    Syntax:  SETSYMBOLSIZE(series, size, item)

              series - Optional, a series. Defaults to current window

                size - An integer, the symbol size in pixels.

                item - Optional, an integer. The series number if the 
                       target is a Window with more than one series.
                       Defaults to 1.

    Returns: Nothing, sets the symbol size of a series.

    Example:
             W1: 1..20;setsym(14);setsymbolsize(9)

             W1 contains a 20 point series where a circle is used as a 
             symbol and the size is set to 9.


    Remarks:
             The SYMBOLSIZE is specified in terms of pixels.

             If size <= 0, the size is set to the SYMBOL_SIZE configuration 
             parameter.

    See Also:
             Getsymbol
             Getsymbolinterval
             Getsymboloffset
             Getsymbolsize
             Setsymbol
             Setsymbolinterval
             Setsymboloffset
#endif


/* set the symbol size */
setsymbolsize(s, size, item, member)
{
        local sym, intv, offset;

        (s, size, item, member) = setsymbolsize_parse_args(s, size, item, member);

        if (isstring(s))
        {
                /* current window */
                sym    = getsymbol(0, item, member);
                intv   = getsymbolinterval(item, member);
                offset = getsymboloffset(item, member);

                setsymbol(sym, item, intv, offset, member, size);
        }
        else
        {
                sym    = getsymbol(s, 0, item, member);
                intv   = getsymbolinterval(s, item, member);
                offset = getsymboloffset(s, item, member);

                setsymbol(s, sym, item, intv, offset, member, size);
        }
}


setsymbolsize_parse_args(s, size, item, member)
{
        if (argc < 4)
        {
                if (argc < 3)
                {
                        if (argc < 2)
                        {
                                if (argc < 1) s = "";
                                
                                size = -1;
                        }
                        
                        item = -1;
                }
                
                member = -1;
        }

        if (isscalar(s))
        {
                member = item;
                item   = size;
                size   = s;
                s      = "";
        }

        if (item < 0) item = 1;
        if (size < 0) size = 0;
        
        return(s, size, item, member);
}