////////////////////////////////////////////////////////////////////////////////
// GLLabel.cpp
// Copyright Bjoern Ganster 2007
////////////////////////////////////////////////////////////////////////////////

#include "Config.h"
#include "Font.h"
#include "GLLabel.h"

#define FILE_NUMBER FILE_NO_GLLABEL_CPP

////////////////////////////////////////////////////////////////////////////////
// Constructor

GLLabel::GLLabel (GLWindow* _parent, int _left, int _top, int _width, 
                  int _height)
: GLWindow ("GLLabel", GLLabel_ID, _parent, _left, _top, _width, _height),
  textColor (0, 0, 0)
{
	SET_SCOPE;
	Config* config = getConfig();

	if (config == nullptr) {
		RETURN;
	}

	textColor = config->getTextColor();
	RETURN;
}

////////////////////////////////////////////////////////////////////////////////
// Destructor

GLLabel::~GLLabel()
{
}

////////////////////////////////////////////////////////////////////////////////
// Render

void GLLabel::render(int x, int y, int w, int h)
{
	SET_SCOPE;
	glMatrixMode (GL_PROJECTION);
	glLoadIdentity ();
	glMatrixMode (GL_MODELVIEW);
	glLoadIdentity ();

	SET_OP;
	setViewport (x, y, w, h);
	glDisable (GL_TEXTURE_2D);
	glDisable (GL_DEPTH_TEST);
	textColor.glColor();
	//glLoadIdentity();
	glTranslated (-1.0, 1.0, 0.0);
	glScaled (2/((double) getWidth()), -2/((double) getHeight()), 1.0);
	Font* font = getDefaultFont();
	if (font != nullptr) {
		font->renderText (getTitle(), 0, 0, width);
	}
	RETURN;
}
