#include "sierrachart.h"

SCDLLName( "test_userline" )

/*==========================================================================*/
int drawTheLine( SCStudyInterfaceRef sc, int lineNumber )
  {
  s_UseTool tool;
  tool.Clear();
  tool.ChartNumber = sc.ChartNumber;
  tool.Region = sc.GraphRegion;
  tool.DrawingType = DRAWING_HORIZONTALLINE;
  tool.AddMethod = UTAM_ADD_OR_ADJUST;
  tool.AddAsUserDrawnDrawing = 1;
  tool.LineWidth = 2;
  tool.Color = COLOR_CYAN;

  tool.LineNumber =  lineNumber;
  tool.BeginValue = 14.14;      // chart was silver future

  sc.UseTool( tool );
  return tool.LineNumber;
  }

SCSFExport scsf_TestUserLine( SCStudyInterfaceRef sc )
  {
  if ( sc.SetDefaults )
    {
    sc.GraphRegion = 0;
    sc.GraphName = "Test::UserLine";
    sc.AutoLoop = 1;
    return;
    }

  // Run through only once
  if ( sc.Index > 0 )
    return;

  int lineNumber = drawTheLine( sc, -1 );
    s_UseTool tool;

  if ( sc.UserDrawnChartDrawingExists( sc.ChartNumber, lineNumber ) )
    {
    sc.AddMessageToLog( "1st: drawing exists", 0 );
    if ( sc.GetUserDrawingByLineNumber( sc.ChartNumber,
                                        lineNumber,
                                        tool,
                                        DRAWING_HORIZONTALLINE,
                                        0 ) )
      sc.AddMessageToLog( "1st: got user drawing", 0 );
    else
      sc.AddMessageToLog( "1st: Could not get user drawing", 0 );
    }
  else
    sc.AddMessageToLog( "1st: drawing does not exist", 0 );

  drawTheLine( sc, lineNumber );

  if ( sc.UserDrawnChartDrawingExists( sc.ChartNumber, lineNumber ) )
    {
    sc.AddMessageToLog( "2nd: drawing exists", 0 );
    if ( sc.GetUserDrawingByLineNumber( sc.ChartNumber,
                                        lineNumber,
                                        tool,
                                        DRAWING_HORIZONTALLINE,
                                        0 ) )
      sc.AddMessageToLog( "2nd: got user drawing", 0 );
    else
      sc.AddMessageToLog( "2nd: Could not get user drawing", 0 );
    }
  else
    sc.AddMessageToLog( "2nd: drawing does not exist", 0 );
  }

