]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/framelayout/samples/demo/fl_demo.cpp
fixed the bug with the order of 2 size events when the scrollbar[s] (dis)appear in...
[wxWidgets.git] / utils / framelayout / samples / demo / fl_demo.cpp
index 424913c47f2ceb169464bf9981dd33f78e8fdb7f..ccea06bdc5f4bbca8fe172115af5c2c799fc9073 100644 (file)
@@ -43,7 +43,6 @@
 #include "barhintspl.h"
 #include "hintanimpl.h"
 #include "controlarea.h"
-#include "objstore.h"
 
 #include "dyntbar.h"
 #include "dyntbarhnd.h"  // fl-dimension-handler for dynamic toolbar
@@ -99,8 +98,6 @@ bool MyApp::OnInit(void)
     wxMenu *file_menu = new wxMenu;
     wxMenu *active_menu = new wxMenu;
 
-    file_menu->Append( ID_LOAD,  "&Load layouts"  );
-    file_menu->Append( ID_STORE, "&Store layouts" );
     file_menu->AppendSeparator();
         
     file_menu->Append( ID_AUTOSAVE, "&Auto Save Layouts", "save layouts on exit", TRUE );
@@ -232,10 +229,11 @@ void StartButton95::OnPaint( wxPaintEvent& event )
                                    
             mDBmp.LoadFile( "start95_dp_icon", wxBITMAP_TYPE_BMP_RESOURCE );
 
-#endif
+#else
         if ( !mDBmp.Ok() )
                                    
             mDBmp = wxBitmap(start95_dp_xpm);
+#endif
 
         pBmp = &mDBmp;
     }
@@ -257,9 +255,6 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
     EVT_MENU( MINIMAL_QUIT,  MyFrame::OnQuit  )
     EVT_MENU( MINIMAL_ABOUT, MyFrame::OnAbout )
 
-    EVT_MENU( ID_LOAD,      MyFrame::OnLoad      )
-    EVT_MENU( ID_STORE,     MyFrame::OnStore     )
-    EVT_MENU( ID_AUTOSAVE,  MyFrame::OnAutoSave  )
     EVT_MENU( ID_SETTINGS,  MyFrame::OnSettings  )
     EVT_MENU( ID_REMOVE,    MyFrame::OnRemove    )
     EVT_MENU( ID_REMOVEALL, MyFrame::OnRemoveAll )
@@ -321,38 +316,28 @@ MyFrame::MyFrame(wxFrame *frame, char *title, int x, int y, int w, int h)
     int idx1 = mImageList.Add( bmp1 );
     int idx2 = mImageList.Add( bmp2 );
 
-    // load configuation if present      
+    InitAboutBox();
 
-    if ( wxFileExists( "layouts_for_demo.dat" ) )
-    {
-        wxCommandEvent evt;
-        this->OnLoad( evt );
-    }
-    else
-    {
-        InitAboutBox();
+    // create multiple layouts
 
-        // create multiple layouts
+    mpNestedLayout = 0;
 
-        mpNestedLayout = 0;
+    mpClntWindow = CreateTxtCtrl("client window");
 
-        mpClntWindow = CreateTxtCtrl("client window");
+    for( i = 0; i != MAX_LAYOUTS; ++i )
 
-        for( i = 0; i != MAX_LAYOUTS; ++i )
-                    
-            CreateLayout( i );
+       CreateLayout( i );
 
-        for( i = SECOND_LAYOUT; i != MAX_LAYOUTS; ++i )
+    for( i = SECOND_LAYOUT; i != MAX_LAYOUTS; ++i )
 
-            // hide others
-            mLayouts[i]->HideBarWindows();
+       // hide others
+       mLayouts[i]->HideBarWindows();
 
-        // activate first one 
+    // activate first one 
 
-        mLayouts[FIRST_LAYOUT]->Activate();
+    mLayouts[FIRST_LAYOUT]->Activate();
 
-        mActiveLayoutNo = FIRST_LAYOUT;
-    }
+    mActiveLayoutNo = FIRST_LAYOUT;
 }
 
 /*** event handlers ***/
@@ -365,65 +350,11 @@ bool MyFrame::OnClose(void)
     this->Show(FALSE);
 
 
-    if ( (mAutoSave && mSavedAlready) || !mAutoSave );
-               else
-               {
-                       wxCommandEvent evt;
-                       this->OnStore(evt);
-               }
-
-       mAboutBox.Destroy();
-       this->Destroy();
-
-       return TRUE;
-}
-
-void MyFrame::OnLoad( wxCommandEvent& event )
-{
-    if ( !wxFileExists( "layouts_for_demo.dat" ) )
-    {               
-        wxMessageBox( 
-            
-"File \"layouts_for_demo.dat\" was not found,\n select\
-(File|Store Layouts) menu item to store layout information first"
-                    );
-        return;
-    }
 
-    DestroyEverything();
+    mAboutBox.Destroy();
+    this->Destroy();
 
-    wxIOStreamWrapper stm;
-    stm.CreateForInput( "layouts_for_demo.dat" );
-
-    wxObjectStorage store( stm );
-
-    SerializeMe( store );
-
-    if ( mLayouts[mActiveLayoutNo] )
-
-        mLayouts[mActiveLayoutNo]->Activate();
-}
-
-void MyFrame::OnStore( wxCommandEvent& event )
-{
-    wxIOStreamWrapper stm;
-    stm.CreateForOutput( "layouts_for_demo.dat" );
-
-    wxObjectStorage store( stm );
-
-    SerializeMe( store );
-
-    mSavedAlready = TRUE;
-}
-
-void MyFrame::OnAutoSave( wxCommandEvent& event )
-{
-    mAutoSave = !mAutoSave;
-
-    wxCommandEvent evt;
-    this->OnStore(evt);
-
-    SyncMenuBarItems();
+    return TRUE;
 }
 
 void MyFrame::OnSettings( wxCommandEvent& event )
@@ -498,14 +429,8 @@ void MyFrame::OnQuit( wxCommandEvent& event )
 
     this->Show(FALSE);
 
-    if ( (mAutoSave && mSavedAlready) || !mAutoSave );
-               else
-               {
-                       wxCommandEvent evt;
-                       this->OnStore(evt);
-               }
 
-       Destroy();
+    Destroy();
 }
 
 void set_dlg_font( wxWindow* pParent, wxFont& font )
@@ -587,28 +512,21 @@ void MyFrame::OnChar( wxKeyEvent& event )
         // "AI" :-)
         wxMessageBox("There are only 3 layouts in this demo :-(");
     else
-    if ( event.m_keyCode == WXK_TAB )
+       if ( event.m_keyCode == WXK_TAB )
        {
-               //  USEFUL TRICK:: avoids flickering of application's frame 
-               //                 when closing NN windows on exit:
-
-               this->Show(FALSE);
+           //  USEFUL TRICK:: avoids flickering of application's frame 
+           //                 when closing NN windows on exit:
 
-               if ( (mAutoSave && mSavedAlready) || !mAutoSave );
-                       else
-                       {
-                               wxCommandEvent evt;
-                               this->OnStore(evt);
-                       }
+           this->Show(FALSE);
 
-               Destroy();
+           Destroy();
        }
-    else
-    if ( event.m_keyCode == WXK_CONTROL )
-    
-        this->OnSettings( evt );
-    else
-        event.Skip();
+       else
+           if ( event.m_keyCode == WXK_CONTROL )
+
+               this->OnSettings( evt );
+           else
+               event.Skip();
 }
 
 void MyFrame::OnSayItsOk( wxCommandEvent& event )
@@ -768,7 +686,7 @@ void MyFrame::AddSearchToolbars( wxFrameLayout& layout, wxWindow* pParent )
                                          new cbDynToolBarDimHandler()
                     ); 
 
-    cbDimInfo sizes4( 430,35, // when docked horizontally      
+    cbDimInfo sizes4( 450,35, // when docked horizontally      
                       44,375, // when docked vertically        
                       80,100, // when floated                  
                       TRUE, // the bar is fixed-size
@@ -789,8 +707,6 @@ void MyFrame::AddSearchToolbars( wxFrameLayout& layout, wxWindow* pParent )
     pTBar2->AddTool( 4, wxBitmap("nextmark_icon") );
     pTBar2->AddTool( 5, wxBitmap("prevmark_icon") );
 
-
-
     wxDynamicToolBar* pTBar3 = new wxDynamicToolBar( mpInternalFrm, -1 );
 
     pTBar3->AddTool( 1, wxBitmap("open_icon"), " Open " );
@@ -814,12 +730,11 @@ void MyFrame::AddSearchToolbars( wxFrameLayout& layout, wxWindow* pParent )
     pTBar4->EnableTool( 4, FALSE );
 
 #else
-    pTBar2->AddTool( 2, search_xpm );
+    pTBar2->AddTool( 2, search_xpm, "" );
     //pTBar2->AddSeparator();
-    pTBar2->AddTool( 3, bookmarks_xpm );
-    pTBar2->AddTool( 4, nextmark_xpm );
-    pTBar2->AddTool( 5, prevmark_xpm );
-
+    pTBar2->AddTool( 3, bookmarks_xpm, "" );
+    pTBar2->AddTool( 4, nextmark_xpm, "" );
+    pTBar2->AddTool( 5, prevmark_xpm, "" );
 
     wxDynamicToolBar* pTBar3 = new wxDynamicToolBar( mpInternalFrm, -1 );
 
@@ -831,6 +746,8 @@ void MyFrame::AddSearchToolbars( wxFrameLayout& layout, wxWindow* pParent )
     pTBar3->AddTool( 5, wxBitmap(copy_xpm), " Copy " );
     pTBar3->AddTool( 6, wxBitmap(paste_xpm), " Paste " );
 
+    pTBar3->EnableTool( 2, FALSE );
+
     wxDynamicToolBar* pTBar4 = new wxDynamicToolBar( mpInternalFrm, -1 );
 
     pTBar4->AddTool( 1, wxBitmap(bookmarks_xpm), "Bookmarks ", TRUE );
@@ -838,6 +755,8 @@ void MyFrame::AddSearchToolbars( wxFrameLayout& layout, wxWindow* pParent )
     pTBar4->AddTool( 3, wxBitmap(prevmark_xpm), "Prev bookmark ", TRUE );
     //pTBar4->AddSeparator();
     pTBar4->AddTool( 4, wxBitmap(search_xpm),"Search ", TRUE );
+
+    pTBar4->EnableTool( 4, FALSE );
 #endif
 
     layout.AddBar( pTBar2,              
@@ -922,7 +841,6 @@ wxWindow* MyFrame::CreateDevLayout( wxFrameLayout& layout, wxWindow* pParent )
 
     // functions from "wxinfo.h"
     ::wxCreateClassInfoTree( pClassView, cinfId,     1 );
-    ::wxCreateSerializerInfoTree( pClassView, serId, 1 );
 
 #ifdef __WXMSW__
                                                                          // (default arg anyway)
@@ -1080,7 +998,7 @@ void MyFrame::DropInSomeBars( int layoutNo )
                pToolBar->Create( mpInternalFrm, -1 );
                                                                 
                // 1001-1006 ids of command events fired by added tool-buttons
-#ifdef __WXMSW__               
+#ifdef __WXMSW__               
                pToolBar->AddTool( 1001, wxBitmap("new_icon") );
                pToolBar->AddTool( 1002, wxBitmap("open_icon") );
                pToolBar->AddTool( 1003, wxBitmap("save_icon") );
@@ -1089,13 +1007,13 @@ void MyFrame::DropInSomeBars( int layoutNo )
                pToolBar->AddTool( 1005, wxBitmap("copy_icon") );
                pToolBar->AddTool( 1006, wxBitmap("paste_icon") );
 #else
-               pToolBar->AddTool( 1001, wxBitmap(new_xpm) );
-               pToolBar->AddTool( 1002, wxBitmap(open_xpm) );
-               pToolBar->AddTool( 1003, wxBitmap(save_xpm) );
+               pToolBar->AddTool( 1001, wxBitmap(new_xpm), "" );
+               pToolBar->AddTool( 1002, wxBitmap(open_xpm), "" );
+               pToolBar->AddTool( 1003, wxBitmap(save_xpm), "" );
 
-               pToolBar->AddTool( 1004, wxBitmap(cut_xpm) );
-               pToolBar->AddTool( 1005, wxBitmap(copy_xpm) );
-               pToolBar->AddTool( 1006, wxBitmap(paste_xpm) );
+               pToolBar->AddTool( 1004, wxBitmap(cut_xpm), "" );
+               pToolBar->AddTool( 1005, wxBitmap(copy_xpm), "" );
+               pToolBar->AddTool( 1006, wxBitmap(paste_xpm), "" );
 #endif
                layout.AddBar( pToolBar,  // bar window (can be NULL)
                                           sizes10, wxTOP,         // alignment ( 0-top,1-bottom, etc)
@@ -1215,32 +1133,6 @@ void MyFrame::ActivateLayout( int layoutNo )
     SyncMenuBarItems();
 }
 
-void MyFrame::SerializeMe( wxObjectStorage& store )
-{
-    store.AddInitialRef( this );
-       store.AddInitialRef( mpInternalFrm );
-    store.AddInitialRef( &mAboutBox  );
-    store.AddInitialRef( &mImageList );
-
-    store.XchgInt ( mActiveLayoutNo );
-    store.XchgBool( mAutoSave );
-
-    store.XchgObjPtr( (wxObject**) &mpClntWindow );
-
-    for( int i = 0; i != MAX_LAYOUTS; ++i )
-    {
-        if ( i == THIRD_LAYOUT )
-
-            store.XchgObjPtr( (wxObject**) &(mpNestedLayout) );
-    
-        store.XchgObjPtr( (wxObject**) &(mLayouts[i]) );
-    }
-
-    store.XchgObjPtr( (wxObject**) &(mpAboutBoxLayout) );
-
-    store.Finalize(); // finish serialization
-}
-
 #ifdef __HACK_MY_MSDEV40__
 
 ////////////// new 2.0-magic (linker errors...) ////////////////