#ifndef CCRENDERER_H
#define CCRENDERER_H

#include <wx/wx.h>
#include <wx/grid.h>
#include "parser/token.h"

class CCTable : public wxGridTableBase
{
	public:
		CCTable(TokensArray* tokens) : m_Tokens(tokens) {}
		void SetTokens(TokensArray* tokens) { m_Tokens = tokens; }

		int GetNumberRows() { return m_Tokens->GetCount(); }
		int GetNumberCols() { return 1; }
		wxString GetValue( int row, int col )
		{
			return m_Tokens->Item(row)->m_Name;
		}

		void SetValue( int, int, const wxString&) {}
		bool IsEmptyCell( int , int  ) { return false; }

	private:
		TokensArray* m_Tokens;
};

class CCRenderer : public wxGridCellStringRenderer
{
	public:
		CCRenderer(TokensArray* tokens) : m_Tokens(tokens) {}
		void SetTokens(TokensArray* tokens) { m_Tokens = tokens; }
		virtual void Draw(wxGrid& grid, wxGridCellAttr& attr, wxDC& dc, const wxRect& rect, int row, int col, bool isSelected);
		virtual wxGridCellRenderer* Clone() const {	return new CCRenderer(m_Tokens); }
	private:
		void DoDrawText(wxGrid& grid, wxDC& dc, wxRect& rect, const wxString& text, const wxColour& fore, int weight, int useThisOffset = -1);
		TokensArray* m_Tokens;
		wxFont m_Font;
};

#endif // CCRENDERER_H


syntax highlighted by Code2HTML, v. 0.9.1