center text inside a rectangle

Hi everybody.
I want to create simple buttons made up of a streched square and a label.
I have a “drawButton” class and I’d like to center the button’s text label using buttons coordinates.
I found a good way to center text on X axis but I cannot center the text on the Y axis.

Here is my code:

drawing text function:

void Font(void *font, char *text, float x, float y)
    glRasterPos2f(x, y);
    while (*text != '\0')
        glutBitmapCharacter(font, *text);
        //std::cout << *text << std::endl;

drawButton class:

class drawButton
	drawButton(float w, float h, Vertex pos, Color c, char *text): width(w), height(h), position(pos), bColor(c), delay(0.1), depth(0.02), label(text) { m_vertexBuffer = m_indexBuffer = m_colorBuffer = 0; }
	bool initialize();
	void render();
    char *label;
    float width, height, delay, depth;
    Vertex position;
    Color bColor;
	GLuint m_vertexBuffer, m_indexBuffer, m_colorBuffer, m_texture;
	vector<Color> m_colors;
	vector<GLuint> m_indices;
	vector<Vertex> m_vertices;
    vector<texCoords> m_texCoord;
    void drawLabel();
void drawButton::drawLabel() {

    float charDim = 0.025f;
    int somma = 0;
    for (int i = 0; i < strlen(label); ++i) {

    float xpos = somma/2 * charDim;
    float center = position.x+(width/2);