Revision: 6630
          http://playerstage.svn.sourceforge.net/playerstage/?rev=6630&view=rev
Author:   jeremy_asher
Date:     2008-06-17 14:29:13 -0700 (Tue, 17 Jun 2008)

Log Message:
-----------
Added view menu toggle item and hotkey for status flag (currently stall icon 
and speech bubbles), enabled by default

Modified Paths:
--------------
    code/stage/trunk/libstage/canvas.cc
    code/stage/trunk/libstage/model.cc
    code/stage/trunk/libstage/stage.hh
    code/stage/trunk/libstage/worldgui.cc

Modified: code/stage/trunk/libstage/canvas.cc
===================================================================
--- code/stage/trunk/libstage/canvas.cc 2008-06-17 20:54:06 UTC (rev 6629)
+++ code/stage/trunk/libstage/canvas.cc 2008-06-17 21:29:13 UTC (rev 6630)
@@ -45,7 +45,7 @@
        dragging = false;
        rotating = false;
 
-       showflags = STG_SHOW_CLOCK | STG_SHOW_BLOCKS | STG_SHOW_GRID | 
STG_SHOW_DATA;
+       showflags = STG_SHOW_CLOCK | STG_SHOW_BLOCKS | STG_SHOW_GRID | 
STG_SHOW_DATA | STG_SHOW_STATUS;
 
        // // start the timer that causes regular redraws
        Fl::add_timeout( ((double)interval/1000), 
@@ -260,14 +260,10 @@
                                        return 1;
                                case 3:
                                        {
-                                               puts( "button 3" );
                                                startx = Fl::event_x();
                                                starty = Fl::event_y();
                                                if( Select( startx, starty ) )
-                                               {
-                                                       printf( "rotating" );
                                                        rotating = true;        
  
-                                               }           
                                                return 1;
                                        }
                                default:

Modified: code/stage/trunk/libstage/model.cc
===================================================================
--- code/stage/trunk/libstage/model.cc  2008-06-17 20:54:06 UTC (rev 6629)
+++ code/stage/trunk/libstage/model.cc  2008-06-17 21:29:13 UTC (rev 6630)
@@ -946,58 +946,61 @@
        if( blinkenlights )
                DrawBlinkenlights();
 
-       // draw speech bubble
-       if( say_string && flags & STG_SHOW_STATUS )
-       {
-               float stheta = -dtor( canvas->camera.getPitch() );
-               float sphi = dtor( canvas->camera.getYaw() );
-               float scale = canvas->camera.getScale();
+       
+       if ( flags & STG_SHOW_STATUS ) {
+               // draw speech bubble
+               if( say_string )
+               {
+                       float stheta = -dtor( canvas->camera.getPitch() );
+                       float sphi = dtor( canvas->camera.getYaw() );
+                       float scale = canvas->camera.getScale();
 
-               glPushMatrix();
+                       glPushMatrix();
 
-               // move above the robot
-               glTranslatef( 0, 0, 0.5 );              
+                       // move above the robot
+                       glTranslatef( 0, 0, 0.5 );              
 
-               // rotate to face screen
-               glRotatef( -rtod(global_pose.a + sphi), 0,0,1 );
-               glRotatef( rtod(stheta), 1,0,0 );
+                       // rotate to face screen
+                       glRotatef( -rtod(global_pose.a + sphi), 0,0,1 );
+                       glRotatef( rtod(stheta), 1,0,0 );
 
-               const float m = 4 / scale; // margin
-               float w = gl_width( this->say_string ) / scale; // scaled text 
width
-               float h = gl_height() / scale; // scaled text height
+                       const float m = 4 / scale; // margin
+                       float w = gl_width( this->say_string ) / scale; // 
scaled text width
+                       float h = gl_height() / scale; // scaled text height
 
 
-               // draw inside of bubble
-               PushColor( BUBBLE_FILL );
-               glPushAttrib( GL_POLYGON_BIT | GL_LINE_BIT );
-               glPolygonMode( GL_FRONT, GL_FILL );
-               glEnable( GL_POLYGON_OFFSET_FILL );
-               glPolygonOffset( 1.0, 1.0 );
-               gl_draw_octagon( w, h, m );
-               glDisable( GL_POLYGON_OFFSET_FILL );
-               PopColor();
-               // draw outline of bubble
-               PushColor( BUBBLE_BORDER );
-               glLineWidth( 1 );
-               glEnable( GL_LINE_SMOOTH );
-               glPolygonMode( GL_FRONT, GL_LINE );
-               gl_draw_octagon( w, h, m );
-               glPopAttrib();
-               PopColor();
+                       // draw inside of bubble
+                       PushColor( BUBBLE_FILL );
+                       glPushAttrib( GL_POLYGON_BIT | GL_LINE_BIT );
+                       glPolygonMode( GL_FRONT, GL_FILL );
+                       glEnable( GL_POLYGON_OFFSET_FILL );
+                       glPolygonOffset( 1.0, 1.0 );
+                       gl_draw_octagon( w, h, m );
+                       glDisable( GL_POLYGON_OFFSET_FILL );
+                       PopColor();
+                       // draw outline of bubble
+                       PushColor( BUBBLE_BORDER );
+                       glLineWidth( 1 );
+                       glEnable( GL_LINE_SMOOTH );
+                       glPolygonMode( GL_FRONT, GL_LINE );
+                       gl_draw_octagon( w, h, m );
+                       glPopAttrib();
+                       PopColor();
 
 
-               // draw text
-               PushColor( BUBBLE_TEXT );
-               glTranslatef( 0, 0, 0.1 ); // draw text forwards of bubble
-               gl_draw_string( m, m, 0.0, this->say_string );
-               PopColor();
+                       // draw text
+                       PushColor( BUBBLE_TEXT );
+                       glTranslatef( 0, 0, 0.1 ); // draw text forwards of 
bubble
+                       gl_draw_string( m, m, 0.0, this->say_string );
+                       PopColor();
 
-               glPopMatrix();
-       }
+                       glPopMatrix();
+               }
 
-       if( stall )
-       {
-               DrawImage( TextureManager::getInstance()._stall_texture_id, 
canvas, 0.85 );
+               if( stall )
+               {
+                       DrawImage( 
TextureManager::getInstance()._stall_texture_id, canvas, 0.85 );
+               }
        }
 
        // shift up the CS to the top of this model
@@ -1115,7 +1118,7 @@
        glPopMatrix(); // drop out of local coords
 }
 
-void StgModel::BuildDisplayList( int flags )
+void StgModel::BuildDisplayList( uint32_t flags )
 {
        glNewList( displaylist, GL_COMPILE );   
        DrawBlocks();

Modified: code/stage/trunk/libstage/stage.hh
===================================================================
--- code/stage/trunk/libstage/stage.hh  2008-06-17 20:54:06 UTC (rev 6629)
+++ code/stage/trunk/libstage/stage.hh  2008-06-17 21:29:13 UTC (rev 6630)
@@ -1398,7 +1398,7 @@
        int displaylist;
 
        /** Compile the display list for this model */
-       void BuildDisplayList( int flags );
+       void BuildDisplayList( uint32_t flags );
 
   stg_model_type_t type;
 

Modified: code/stage/trunk/libstage/worldgui.cc
===================================================================
--- code/stage/trunk/libstage/worldgui.cc       2008-06-17 20:54:06 UTC (rev 
6629)
+++ code/stage/trunk/libstage/worldgui.cc       2008-06-17 21:29:13 UTC (rev 
6630)
@@ -118,6 +118,7 @@
 static const char* MITEM_VIEW_BLOCKSRISING =  "&View/T&rails/&Blocks rising";
 static const char* MITEM_VIEW_ARROWS =     "&View/T&rails/&Arrows rising";
 static const char* MITEM_VIEW_TRAILS =     "&View/&Trail";
+static const char* MITEM_VIEW_STATUS =     "&View/&Status";
 static const char* MITEM_VIEW_PERSPECTIVE = "&View/Perspective camera";
 
 // this should be set by CMake
@@ -175,6 +176,9 @@
 
        mbar->add( MITEM_VIEW_TRAILS,    't', (Fl_Callback*)view_toggle_cb, 
(void*)canvas, 
                        FL_MENU_TOGGLE| (canvas->showflags & STG_SHOW_TRAILS ? 
FL_MENU_VALUE : 0 ));
+       
+       mbar->add( MITEM_VIEW_STATUS,    's', (Fl_Callback*)view_toggle_cb, 
(void*)canvas, 
+                         FL_MENU_TOGGLE| (canvas->showflags & STG_SHOW_STATUS 
? FL_MENU_VALUE : 0 ));
 
        mbar->add( MITEM_VIEW_FOOTPRINTS,  FL_CTRL+'f', 
(Fl_Callback*)view_toggle_cb, (void*)canvas, 
                        FL_MENU_TOGGLE| (canvas->showflags & STG_SHOW_FOOTPRINT 
? FL_MENU_VALUE : 0 ));
@@ -293,9 +297,10 @@
        uint32_t trailsrising = wf->ReadInt(wf_section, "show_trails_rising", 
flags & STG_SHOW_TRAILRISE ) ? STG_SHOW_TRAILRISE : 0;
        uint32_t arrows = wf->ReadInt(wf_section, "show_arrows", flags & 
STG_SHOW_ARROWS ) ? STG_SHOW_ARROWS : 0;
        uint32_t footprints = wf->ReadInt(wf_section, "show_footprints", flags 
& STG_SHOW_FOOTPRINT ) ? STG_SHOW_FOOTPRINT : 0;
+       uint32_t status = wf->ReadInt(wf_section, "show_status", flags & 
STG_SHOW_STATUS ) ? STG_SHOW_STATUS : 0;
 
        canvas->SetShowFlags( grid | data | follow | blocks | quadtree | clock
-                       | trails | arrows | footprints | trailsrising );
+                       | trails | arrows | footprints | trailsrising | status 
);
        canvas->invalidate(); // we probably changed something
 
        // fix the GUI menu checkboxes to match
@@ -321,6 +326,10 @@
        item = (Fl_Menu_Item*)mbar->find_item( MITEM_VIEW_QUADTREE );
        (flags & STG_SHOW_QUADTREE) ? item->check() : item->clear();
 
+       item = (Fl_Menu_Item*)mbar->find_item( MITEM_VIEW_STATUS );
+       (flags & STG_SHOW_STATUS) ? item->check() : item->clear();
+
+       
        // TODO - per model visualizations load
 }
 
@@ -483,6 +492,7 @@
        else if( strcmp(picked, MITEM_VIEW_ARROWS ) == 0 ) canvas->InvertView( 
STG_SHOW_ARROWS );
        else if( strcmp(picked, MITEM_VIEW_TRAILS ) == 0 ) canvas->InvertView( 
STG_SHOW_TRAILS );
        else if( strcmp(picked, MITEM_VIEW_BLOCKSRISING ) == 0 ) 
canvas->InvertView( STG_SHOW_TRAILRISE );
+       else if( strcmp(picked, MITEM_VIEW_STATUS ) == 0 ) canvas->InvertView( 
STG_SHOW_STATUS );
        else if( strcmp(picked, MITEM_VIEW_PERSPECTIVE ) == 0 ) { 
canvas->use_perspective_camera = ! canvas->use_perspective_camera; 
canvas->invalidate(); }
        else PRINT_ERR1( "Unrecognized menu item \"%s\" not handled", picked );
 


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Playerstage-commit mailing list
Playerstage-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/playerstage-commit

Reply via email to