1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
|
/****************************************************************************
GLUI User Interface Toolkit
---------------------------
glui_statictext.cpp - GLUI_StaticText Control
--------------------------------------------------
Copyright (c) 1998 Paul Rademacher
This program is freely distributable without licensing fees and is
provided without guarantee or warrantee expressed or implied. This
program is -not- in the public domain.
*****************************************************************************/
#include "glui.h"
#include "stdinc.h"
/****************************** GLUI_StaticText::draw() **********/
void GLUI_StaticText::draw( int x, int y )
{
int orig;
(void)x;
(void)y;
if ( NOT can_draw() )
return;
orig = set_to_glut_window();
draw_text();
restore_window( orig );
}
/****************************** GLUI_StaticText::set_text() **********/
void GLUI_StaticText::set_text( char *text )
{
int orig;
/**** Erase old text first *****/
glMatrixMode( GL_MODELVIEW );
glPushMatrix();
translate_to_origin();
erase_text();
glPopMatrix();
set_name( text );
if ( NOT can_draw() )
return;
orig = set_to_glut_window();
/**** Redraw the text in the window ****/
glMatrixMode( GL_MODELVIEW );
glPushMatrix();
translate_to_origin();
draw_text();
glPopMatrix();
restore_window( orig );
}
/************************************ GLUI_StaticText::update_size() **********/
void GLUI_StaticText::update_size( void )
{
int text_size;
if ( NOT glui )
return;
text_size = string_width( name );
if ( w < text_size )
w = text_size;
}
/****************************** GLUI_StaticText::draw_text() **********/
void GLUI_StaticText::draw_text( void )
{
if ( NOT can_draw() )
return;
erase_text();
draw_name( 0, 9 );
}
/****************************** GLUI_StaticText::erase_text() **********/
void GLUI_StaticText::erase_text( void )
{
if ( NOT can_draw() )
return;
set_to_bkgd_color();
glDisable( GL_CULL_FACE );
glBegin( GL_TRIANGLES );
glVertex2i( 0,0 ); glVertex2i( w, 0 ); glVertex2i( w, h );
glVertex2i( 0, 0 ); glVertex2i( w, h ); glVertex2i( 0, h );
glEnd();
}
|