-instr_label & instr_label ::operator = (const instr_label & rhs )
-{
- if( !(this == &rhs)) {
- instr_item::operator = (rhs);
- pformat = rhs.pformat;
- fontSize = rhs.fontSize;
- blink = rhs.blink;
- justify = rhs.justify;
- pre_str = rhs.pre_str;
- post_str = rhs.post_str;
- lat = rhs.lat;
- lon = rhs.lon;
- lbox = rhs.lbox; //hud
-
-
- strcpy(format_buffer,rhs.format_buffer);
- }
- return *this;
-}
-
-//
-// draw Draws a label anywhere in the HUD
-//
-//
-void instr_label ::
-draw( void ) // Required method in base class
-{
-// char format_buffer[80];
- char label_buffer[80];
- int posincr;
- int lenstr;
- RECT scrn_rect = get_location();
-
- if( data_available() ) {
- if(lat)
- sprintf( label_buffer, format_buffer, coord_format_lat(get_value()) );
- else
- if(lon)
- sprintf( label_buffer, format_buffer, coord_format_lon(get_value()) );
- else
- {
- if(lbox)//hud
- {// Box for label
- float x = scrn_rect.left;
- float y = scrn_rect.top;
- float w = scrn_rect.right;
- float h = HUD_TextSize;
-
- glPushMatrix();
- glLoadIdentity();
- glBegin(GL_LINES);
- glVertex2f( x - 2.0, y - 2.0);
- glVertex2f( x + w + 2.0, y - 2.0);
- glVertex2f( x + w + 2.0, y + h + 2.0);
- glVertex2f( x - 2.0, y + h + 2.0);
- glEnd();
- glEnable(GL_LINE_STIPPLE);
- glLineStipple( 1, 0xAAAA );
- glBegin(GL_LINES);
- glVertex2f( x + w + 2.0, y - 2.0);
- glVertex2f( x + w + 2.0, y + h + 2.0);
- glVertex2f( x - 2.0, y + h + 2.0);
- glVertex2f( x - 2.0, y - 2.0);
- glEnd();
- glDisable(GL_LINE_STIPPLE);
- glPopMatrix();
- }//hud
- sprintf( label_buffer, format_buffer, get_value()*data_scaling() );
- }
- }
- else {
-// sprintf( label_buffer, format_buffer );
- }
-
- lenstr = getStringWidth( label_buffer );
-
-