Revision: 6526
          http://playerstage.svn.sourceforge.net/playerstage/?rev=6526&view=rev
Author:   jeremy_asher
Date:     2008-06-10 11:58:52 -0700 (Tue, 10 Jun 2008)

Log Message:
-----------
FLTK menu updates

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

Added Paths:
-----------
    code/stage/trunk/assets/logo.png

Removed Paths:
-------------
    code/stage/trunk/libstage/logo.png

Copied: code/stage/trunk/assets/logo.png (from rev 6494, 
code/stage/trunk/libstage/logo.png)
===================================================================
(Binary files differ)

Deleted: code/stage/trunk/libstage/logo.png
===================================================================
(Binary files differ)

Modified: code/stage/trunk/libstage/stage.hh
===================================================================
--- code/stage/trunk/libstage/stage.hh  2008-06-10 18:26:41 UTC (rev 6525)
+++ code/stage/trunk/libstage/stage.hh  2008-06-10 18:58:52 UTC (rev 6526)
@@ -1874,9 +1874,12 @@
        virtual bool Save( const char* filename );
 
        // static callback functions
+       static void LoadCallback( Fl_Widget* wid, StgWorldGui* world );
        static void SaveCallback( Fl_Widget* wid, StgWorldGui* world );
        static void SaveAsCallback( Fl_Widget* wid, StgWorldGui* world );
        static void QuitCallback( Fl_Widget* wid, StgWorldGui* world );
+       static void About_cb( Fl_Widget* wid );
+       static void view_toggle_cb(Fl_Menu_Bar* menubar, StgCanvas* canvas );
        static void WindowCallback( Fl_Widget* wid, StgWorldGui* world );
 
        bool SaveAsDialog();

Modified: code/stage/trunk/libstage/worldgui.cc
===================================================================
--- code/stage/trunk/libstage/worldgui.cc       2008-06-10 18:26:41 UTC (rev 
6525)
+++ code/stage/trunk/libstage/worldgui.cc       2008-06-10 18:58:52 UTC (rev 
6526)
@@ -120,58 +120,9 @@
        // hack - get this from somewhere sensible, like CMake's config file
        const char* PACKAGE_STRING = "Stage-3.dev";
 
-void dummy_cb(Fl_Widget*, void* v) 
-{
-}
 
-void About_cb(Fl_Widget*, void* v) 
-{
-       fl_register_images();
-       Fl_Window     win(400,200);                 // make a window
-       Fl_Box        box(10,20,400-20,80 );     // widget that will contain 
image
 
-       // TODO - get image from the install path 
-       Fl_PNG_Image png("logo.png");      // load image into ram
-       box.image(png);                    // attach image to box
 
-       Fl_Multiline_Output text(  20,120, 400-20, 100 );
-       text.box( FL_NO_BOX );
-       char buf[256];
-       snprintf( buf, 255, 
-                       "%s\n" 
-                       "Part of the Player Project\n"
-                       "http://playerstage.sourceforge.net\n";
-                       "Copyright 2000-2008 Richard Vaughan and contributors",
-                       PACKAGE_STRING );
-       text.value( buf );
-       win.show();
-       Fl::run();
-}
-
-void view_toggle_cb(Fl_Menu_Bar* menubar, StgCanvas* canvas ) 
-{
-       char picked[128];
-       menubar->item_pathname(picked, sizeof(picked)-1);
-
-       //printf("CALLBACK: You picked '%s'\n", picked);
-
-       // this is slow and a little ugly, but it's the least hacky approach I 
think
-       if( strcmp(picked, MITEM_VIEW_DATA ) == 0 ) canvas->InvertView( 
STG_SHOW_DATA );
-       else if( strcmp(picked, MITEM_VIEW_BLOCKS ) == 0 ) canvas->InvertView( 
STG_SHOW_BLOCKS );
-       else if( strcmp(picked, MITEM_VIEW_GRID ) == 0 ) canvas->InvertView( 
STG_SHOW_GRID );
-       else if( strcmp(picked, MITEM_VIEW_FOLLOW ) == 0 ) canvas->InvertView( 
STG_SHOW_FOLLOW );
-       else if( strcmp(picked, MITEM_VIEW_QUADTREE ) == 0 ) 
canvas->InvertView( STG_SHOW_QUADTREE );
-       else if( strcmp(picked, MITEM_VIEW_OCCUPANCY ) == 0 ) 
canvas->InvertView( STG_SHOW_OCCUPANCY );
-       else if( strcmp(picked, MITEM_VIEW_CLOCK ) == 0 ) canvas->InvertView( 
STG_SHOW_CLOCK );
-       else if( strcmp(picked, MITEM_VIEW_FOOTPRINTS ) == 0 ) 
canvas->InvertView( STG_SHOW_FOOTPRINT );
-       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 PRINT_ERR1( "Unrecognized menu item \"%s\" not handled", picked );
-
-       //printf( "value: %d\n", item->value() );
-}
-
        StgWorldGui::StgWorldGui(int W,int H,const char* L) 
 : Fl_Window(0,0,W,H,L)
 {
@@ -188,8 +139,9 @@
        end();
 
        mbar->add( "File", 0, 0, 0, FL_SUBMENU );
-       mbar->add( "File/Save File", FL_CTRL + 's', (Fl_Callback 
*)SaveCallback, this );
-       mbar->add( "File/Save File &As...", FL_CTRL + FL_SHIFT + 's', 
(Fl_Callback *)SaveAsCallback, this, FL_MENU_DIVIDER );
+       mbar->add( "File/&Load World...", FL_CTRL + 'l', (Fl_Callback 
*)LoadCallback, this, FL_MENU_DIVIDER );
+       mbar->add( "File/Save World", FL_CTRL + 's', (Fl_Callback 
*)SaveCallback, this );
+       mbar->add( "File/Save World &As...", FL_CTRL + FL_SHIFT + 's', 
(Fl_Callback *)SaveAsCallback, this, FL_MENU_DIVIDER );
        mbar->add( "File/Exit", FL_CTRL+'q', (Fl_Callback *)QuitCallback, this 
);
 
        mbar->add( "View", 0, 0, 0, FL_SUBMENU );
@@ -298,6 +250,11 @@
        // TODO - per model visualizations load
 }
 
+void StgWorldGui::LoadCallback( Fl_Widget* wid, StgWorldGui* world )
+{
+       // implement me
+}
+
 void StgWorldGui::SaveCallback( Fl_Widget* wid, StgWorldGui* world )
 {
        // save to current file
@@ -350,9 +307,9 @@
 {
        int choice;
        choice = fl_choice("Do you want to save?",
-                       "Cancel", // ->0: defaults to ESC
-                       "Yes", // ->1
-                       "No" // ->2
+                       "&Cancel", // ->0: defaults to ESC
+                       "&Yes", // ->1
+                       "&No" // ->2
                        );
 
        switch (choice) {
@@ -386,6 +343,62 @@
        exit(0);
 }
 
+void StgWorldGui::view_toggle_cb( Fl_Menu_Bar* menubar, StgCanvas* canvas ) 
+{
+       char picked[128];
+       menubar->item_pathname(picked, sizeof(picked)-1);
+
+       //printf("CALLBACK: You picked '%s'\n", picked);
+
+       // this is slow and a little ugly, but it's the least hacky approach I 
think
+       if( strcmp(picked, MITEM_VIEW_DATA ) == 0 ) canvas->InvertView( 
STG_SHOW_DATA );
+       else if( strcmp(picked, MITEM_VIEW_BLOCKS ) == 0 ) canvas->InvertView( 
STG_SHOW_BLOCKS );
+       else if( strcmp(picked, MITEM_VIEW_GRID ) == 0 ) canvas->InvertView( 
STG_SHOW_GRID );
+       else if( strcmp(picked, MITEM_VIEW_FOLLOW ) == 0 ) canvas->InvertView( 
STG_SHOW_FOLLOW );
+       else if( strcmp(picked, MITEM_VIEW_QUADTREE ) == 0 ) 
canvas->InvertView( STG_SHOW_QUADTREE );
+       else if( strcmp(picked, MITEM_VIEW_OCCUPANCY ) == 0 ) 
canvas->InvertView( STG_SHOW_OCCUPANCY );
+       else if( strcmp(picked, MITEM_VIEW_CLOCK ) == 0 ) canvas->InvertView( 
STG_SHOW_CLOCK );
+       else if( strcmp(picked, MITEM_VIEW_FOOTPRINTS ) == 0 ) 
canvas->InvertView( STG_SHOW_FOOTPRINT );
+       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 PRINT_ERR1( "Unrecognized menu item \"%s\" not handled", picked );
+
+       //printf( "value: %d\n", item->value() );
+}
+
+void StgWorldGui::About_cb( Fl_Widget* ) 
+{
+       fl_register_images();
+       Fl_Window win(400,200); // make a window
+       Fl_Box box(10,20,400-20,80 ); // widget that will contain image
+
+       // temporary hack
+       const char* stagepath = getenv("STAGEPATH");
+       const char* logopath = "../../../assets/logo.png";
+       char* fullpath = (char*)malloc( strlen(stagepath) + strlen(logopath) + 
2 );
+       strcpy( fullpath, stagepath );
+       strcat( fullpath, "/" );
+       strcat( fullpath, logopath );
+       printf("fullpath: %s\n", fullpath);
+       Fl_PNG_Image png(fullpath); // load image into ram
+       free( fullpath );
+       box.image(png); // attach image to box
+
+       Fl_Multiline_Output text( 20,120, 400-20, 100 );
+       text.box( FL_NO_BOX );
+       char buf[256];
+       snprintf( buf, 255,
+                       "%s\n" 
+                       "Part of the Player Project\n"
+                       "http://playerstage.sourceforge.net\n";
+                       "Copyright 2000-2008 Richard Vaughan and contributors",
+                       PACKAGE_STRING );
+       text.value( buf );
+       win.show();
+       Fl::run();
+}
+
 bool StgWorldGui::Save( const char* filename )
 {
        PRINT_DEBUG1( "%s.Save()", token );


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
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit

Reply via email to