Glut picking and text

Hello,
Im working on a small graphics/cad program, I have implemented some small text labels using glut. Otherwise everything else is MFC and standard Opengl.

Im wonder how the “pick” with the mouse or finger just the text and move it around. Since the text is the only use of Glut im wondering if Im overlooking something simple.

Attached is the label drawing code:

[SIZE=2]void[/SIZE] C3DRender::DrawPointLabels([SIZE=2]double[/SIZE] x, [SIZE=2]double[/SIZE] y, [SIZE=2]char[/SIZE] * name )
{
[SIZE=2]char[/SIZE] buffer[100], x_buffer[100],y_buffer[100], units[10];
[SIZE=2]if/SIZE {
[SIZE=2]return[/SIZE];
}
[SIZE=2]if/SIZE {
[SIZE=2]return[/SIZE];
}
[SIZE=2]// draw the callout line
[/SIZE][SIZE=2]double[/SIZE] x_offset = (x + 0.2);
[SIZE=2]double[/SIZE] y_offset = (y + 0.2);
[SIZE=2]double[/SIZE] text_offset = m_Zoom/100;
[SIZE=2]// draw the callout text
[/SIZE]glColor3ub(0,0,0);
glRasterPos2d(x_offset,y_offset);
[SIZE=2]unsigned[/SIZE] [SIZE=2]int[/SIZE] i;
[SIZE=2]for[/SIZE]( i = 0; i < strlen(name); i++ )
{
glutBitmapCharacter(GLUT_BITMAP_HELVETICA_12, name[i]);
}
glRasterPos2d(x_offset, y_offset - text_offset);
in_mm_res_to_string(x_buffer, x, units);
sprintf(buffer, [SIZE=2]“X: %s %s”[/SIZE], x_buffer, units);
[SIZE=2]for[/SIZE]( i = 0; i < strlen(buffer); i++ )
{
glutBitmapCharacter(GLUT_BITMAP_HELVETICA_12, buffer[i]);
}
glRasterPos2d(x_offset, y_offset - 2*text_offset);
in_mm_res_to_string(y_buffer, y, units);
sprintf(buffer, [SIZE=2]“Y: %s %s”[/SIZE], y_buffer, units);
[SIZE=2]for[/SIZE]( i = 0; i < strlen(buffer); i++ )
{
glutBitmapCharacter(GLUT_BITMAP_HELVETICA_12, buffer[i]);
}
glBegin(GL_LINES);
glVertex3d(x,y,0);
glVertex3d(x_offset,y_offset,0);
glEnd();
}

Thanks for you help
-Derrek