\chapter{Class reference}%
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
\setfooter{\thepage}{}{}{}{}{\thepage}

The member functions are given in alphabetical order except for the
constructors and destructors which appear first.

\section{\class{wxChartLayout}: wxObject}

This abstract class is used for drawing a Chart. You must derive a new
class from this, and define member functions to access the data that
wxChartLayout needs. See the functions \helprefn{wxStoredChart::GetData}{getdata}\rtfsp
and \helprefn{wxStoredChart::SetData}{setdata} in a derived class that
I have written for the test program included with this library: wxStoredBarLineChart.

The application should call \helprefn{Draw}{draw} to Draw the Chart.

\membersection{wxChartLayout::wxChartLayout}\label{wxchartlayout}

\func{void}{wxChartLayout}{\param{wxCavas *}{canvas = NULL}}

Constructor.

\membersection{wxChartLayout::AddDataSet}\label{adddataset}

\func{int}{AddDataSet}{\param{int}{ dataType}, \param{int }{row}}

\func{int}{AddDataSet}{\param{int}{ dataType}, \param{wxList }{rows=-1}}

Used to Add a new dataset to a Chart. 

{\bf dataType} is one of 

\begin{itemize}\itemsep=0pt
\item wxBar
\item wxLine
\item wxArea
\item wxCurve
\item wxFloatingBar
\item wxXYPlot
\item wxPie
\item wxPercentBar
\end{itemize}

Use {\bf row} for single row {\bf dataType} and use {\bf rows} for a list of rows when using multiple row data types
like wxPercentBar, wxFloatingBar.

\membersection{wxChartLayout::Draw}\label{draw}

\func{void}{Draw}{\void}

Call this to let wxChartLayout draw the chart itself. The device context must
have been set in the constructor or using SetDC.

\membersection{wxChartLayout::Get3D}\label{get3d}

\func{Bool}{Get3D}{\void}

\membersection{wxChartLayout::GetOrientation}\label{getorientation}

\func{int }{GetOrientation}{\void}

Returns the current orientation of the chart, wxHORIZONTAL or wxVERTICAL.

\membersection{wxChartLayout::GetDataStyle}\label{getdatastyle}

\func{wxBrush *}{GetDataStyle}{\void}

\membersection{wxChartLayout::GetData}\label{getdata}

\func{float}{GetData}{\param{int}{ col}, \param{int}{ row}}

Virtual function to allow access to data using {\bf col} and\rtfsp
{\bf row}. This must be defined in your class derived from
wxChartLayout. 

\membersection{wxChartLayout::GetLabel}\label{getlabel}

\func{char *}{GetLabel}{\param{int}{ col}, \param{int}{ row}}

Virtual function to allow access to data {\bf Label} using\rtfsp
{\bf col} and {\bf row}. This must be defined in your class
derived from wxChartLayout. 

\membersection{wxChartLayout::SetEdgeTop}\label{setedgetop}

\func{void}{SetEdgeTop}{\param{int}{ top}}

Sets the maximmum edge from the {\bf top} that the data in graph may be drawn to.

\membersection{wxChartLayout::SetEdgeBottom}\label{setedgebottom}
	
\func{void}{SetEdgeBottom}{\param{int}{ bottom}}

Sets the maximmum edge from the {\bf bottom} that the data in graph may be drawn to.

\membersection{wxChartLayout::SetEdgeLeft}\label{setedgeleft}

\func{void}{SetEdgeLeft}{\param{int}{ left}}

Sets the maximmum edge from the {\bf left} that the data in graph may be drawn to.

\membersection{wxChartLayout::SetEdgeRight}\label{setedgeright}

\func{void}{SetEdgeRight}{\param{int}{ right}}

Sets the maximmum edge from the {\bf right} that the data in graph may be drawn to.

\membersection{wxChartLayout::SetTitle}\label{settitle}

\func{void}{SetTitle}{\param{char *}{title}}

Allows the title of the chart to be set.

\membersection{wxChartLayout::GetTitle}\label{gettitle}

\func{char *}{GetTitle}{\void} 

Returns the title of the chart.

\membersection{wxChartLayout::SetTitleFont}\label{settitlefont}

\func{void}{SetTitleFont}{\param{wxFont}{ *titlefont}} 

Allows the title font to be set.

\membersection{wxChartLayout::GetTitleFont}\label{gettitlefont}

\func{wxFont *}{GetTitleFont}{\void} 
	
\membersection{wxChartLayout::SetMaxWidthHeight}\label{setmaxwidthheight}

\func{long}{SetMaxWidthHeight}{\param{int}{ width}, \param{int}{ height}}
	
Sets the maximmum {\bf width, height} of the chart. This area
includes the edges which are not drawn in by the data and
reserved for labels, titles, etc. 


\membersection{wxChartLayout::SetChartCenter}\label{setchartcenter}

\func{void}{SetChartCenter}{\param{int}{ x}, \param{int}{ y}}
	
Sets the center coordinates of the chart.

\membersection{wxChartLayout::SetStartEndCol}\label{setstartendcol}

\func{void}{SetStartEndCol}{\param{int}{ colStart}, \param{int}{ colEnd}}

This should be a virtual function, but it basically sets the range of
columns that the chart gets the data to display from. For example 8-20 will plot
data from column 8 to column 20. 

\membersection{wxChartLayout::SetDataSetOrder}\label{setdatasetorder}

This is not currently implemented but I intend to support prioritizing
the layout of datasets so that the layout may be specified (somehow). 

\membersection{wxChartLayout::SetMajorTickInc}\label{setmajortickinc}

\func{void}{SetMajorTickInc}{\param{int}{ inc}}

Sets the increment size for {\bf Major} tick marks.

\membersection{wxChartLayout::SetMinorTickInc}\label{setminortickinc}

\func{void}{SetMinorTickInc}{\param{int}{ inc}}

Sets the increment size for {\bf Minor} tick marks.

\membersection{wxChartLayout::GetMajorTickInc}\label{getmajortickinc}

\func{void}{GetMajorTickInc}{\void}

Gets the increment size for {\bf Major} tick marks.

\membersection{wxChartLayout::GetMinorTickInc}\label{getminortickinc}

\func{int}{GetMinorTickInc}{\void}

Gets the increment size for {\bf Minor} tick marks.

\membersection{wxChartLayout::SetTailText}\label{settailtext}

\func{void}{SetTailText}{\param{char *}{text}}

Allows an optional text string to appended to the data values.
Could be used to put a percentage sign after each value on the axis.

\membersection{wxChartLayout::SetHeadText}\label{setheadtext}

\func{void}{SetHeadText}{\param{char}{ *text}}

Allows an optional text string to prepend to the data values.
Can't think of any use but you may find it useful.

Gets the increment size for {\bf Minor} tick marks.

\membersection{wxChartLayout::GetTailText}\label{gettailtext}

\func{char *}{GetTailText}{\void}

Returns the text tail text of value labels the axis.

\membersection{wxChartLayout::GetHeadText}\label{getheadtext}

\func{void}{GetHeadText}{\void}

Returns the text header text of value labels

Gets the increment size for {\bf Minor} tick marks.

\membersection{wxChartLayout::SetTickStyle}\label{settickstyle}

\func{void}{SetTickStyle}{\param{int}{ style}}
	
Valid styles are:

\begin{itemize}\itemsep=0pt
\item wxTickIn
\item wxTickOut
\item wxTickNone
\end{itemize}

%Note: need to update my program for style.

\membersection{wxChartLayout::GetTickStyle}\label{gettickstyle}

\func{int}{GetTickStyle}{\void}
	
Returns the tick style of the axis. See \helprefn{SetTickStyle}{settickstyle} for valid {\bf styles}.

\membersection{wxChartLayout::ShowValues}\label{showvalues}

\func{float}{ShowValues}{\param{Bool}{ bool}}
	
Determines whether the data values of bars are displayed inside the bar.

\membersection{wxChartLayout::GetShowValues}\label{getshowvalues}

\func{Bool}{GetShowValues}{\void}
	
Returns TRUE if values are currently displayed inside bars.

\membersection{wxChartLayout::SetOrientation}\label{setorientation}

\func{void}{SetOrientation}{\param{int}{ orient}}
	
Valid chart orientations are wxHORIZONTAL and wxVERTICAL.

\membersection{wxChartLayout::SetDataType}\label{setdatatype}

\func{void}{SetDataType}{\param{int}{ dataset}, \param{int}{ datatype}}

Sets the graph type of the supplied dataset.
See \helpref{wxChartLayout::wxChartLayout}{wxchartlayout}.

\membersection{wxChartLayout::SetLineStyle}\label{setlinestyle}

\func{void}{SetLineStyle}{\param{int}{ dataset}, \param{wxPen *}{pen}}

Sets the line style (pen).

\membersection{wxChartLayout::GetLineStyle}\label{getlinestyle}

\func{wxPen *}{GetLineStyle}{\void}

Returns the current pen.

\membersection{wxChartLayout::SetDataStyle}\label{setdatastyle}

\func{void}{SetDataStyle}{\param{int}{ dataset}, \param{wxBrush *}{brush}}

Sets the brush used for drawing the data.

\membersection{wxChartLayout::Set3D}\label{set3d}

\func{void}{Set3D}{\param{Bool}{ bool}}

Sets 3D display mode.
	
\membersection{wxChartLayout::SetData}\label{setdata}

\func{void}{SetData}{\param{int}{ col}, \param{int}{ row}, \param{float}{ value}}
 
Virtual function to allow access to data using {\bf col} and {\bf row}.
This must be defined in your class derived from wxChartLayout. 

\membersection{wxChartLayout::SetLabel}\label{setlabel}
	
\func{void}{SetLabel}{\param{int}{ col}, \param{int}{ row}, \param{char *}{label}}

Virtual function to allow access to data {\bf Label} using {\bf col} and {\bf row}.
This must be defined in your class derived from wxChartLayout. 

