]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/layout/layout.cpp
refresh the dialog children forcefully even if wxCLIP_CHILDREN was specified
[wxWidgets.git] / samples / layout / layout.cpp
index 312c164692fb4c932439d5f96d83d5ab25b9917d..c3bfb5e58dd193b9733bba21df4e643cbc718d60 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     04/01/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart and Markus Holzem
 // Created:     04/01/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart and Markus Holzem
-// Licence:    wxWindows license
+// Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
 // For compilers that support precompilation, includes "wx/wx.h".
 /////////////////////////////////////////////////////////////////////////////
 
 // For compilers that support precompilation, includes "wx/wx.h".
@@ -75,7 +75,7 @@ bool MyApp::OnInit()
 
   // Make a panel
   frame->panel = new wxPanel(frame, 0, 0, 1000, 500, wxTAB_TRAVERSAL);
 
   // Make a panel
   frame->panel = new wxPanel(frame, 0, 0, 1000, 500, wxTAB_TRAVERSAL);
-  frame->panel->SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE));
+  frame->panel->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE));
 //  frame->panel->SetAutoLayout(TRUE);
 
   // Create some panel items
 //  frame->panel->SetAutoLayout(TRUE);
 
   // Create some panel items
@@ -182,7 +182,7 @@ END_EVENT_TABLE()
 
 void MyFrame::LoadFile(wxCommandEvent& WXUNUSED(event) )
 {
 
 void MyFrame::LoadFile(wxCommandEvent& WXUNUSED(event) )
 {
-      wxString s = wxFileSelector( _T("Load text file"), (const wxChar *) NULL, 
+      wxString s = wxFileSelector( _T("Load text file"), (const wxChar *) NULL,
                                    (const wxChar *) NULL, (const wxChar *) NULL, _T("*.txt") );
       if (s != "")
       {
                                    (const wxChar *) NULL, (const wxChar *) NULL, _T("*.txt") );
       if (s != "")
       {
@@ -205,47 +205,47 @@ void MyFrame::TestSizers(wxCommandEvent& WXUNUSED(event) )
 
 void MyFrame::TestNotebookSizers(wxCommandEvent& WXUNUSED(event) )
 {
 
 void MyFrame::TestNotebookSizers(wxCommandEvent& WXUNUSED(event) )
 {
-    wxDialog dialog( this, -1, "Notebook Sizer Test Dialog"  );
+    wxDialog dialog( this, -1, wxString("Notebook Sizer Test Dialog")  );
 
     // Begin with first hierarchy: a notebook at the top and
     // and OK button at the bottom.
 
     wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL );
 
     // Begin with first hierarchy: a notebook at the top and
     // and OK button at the bottom.
 
     wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL );
-    
+
     wxNotebook *notebook = new wxNotebook( &dialog, -1 );
     wxNotebookSizer *nbs = new wxNotebookSizer( notebook );
     topsizer->Add( nbs, 1, wxGROW );
     wxNotebook *notebook = new wxNotebook( &dialog, -1 );
     wxNotebookSizer *nbs = new wxNotebookSizer( notebook );
     topsizer->Add( nbs, 1, wxGROW );
-    
+
     wxButton *button = new wxButton( &dialog, wxID_OK, "OK" );
     topsizer->Add( button, 0, wxALIGN_RIGHT | wxALL, 10 );
 
     // First page: one big text ctrl
     wxTextCtrl *multi = new wxTextCtrl( notebook, -1, "TextCtrl.", wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE );
     notebook->AddPage( multi, "Page One" );
     wxButton *button = new wxButton( &dialog, wxID_OK, "OK" );
     topsizer->Add( button, 0, wxALIGN_RIGHT | wxALL, 10 );
 
     // First page: one big text ctrl
     wxTextCtrl *multi = new wxTextCtrl( notebook, -1, "TextCtrl.", wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE );
     notebook->AddPage( multi, "Page One" );
-    
+
     // Second page: a text ctrl and a button
     wxPanel *panel = new wxPanel( notebook, -1 );
     notebook->AddPage( panel, "Page Two" );
     // Second page: a text ctrl and a button
     wxPanel *panel = new wxPanel( notebook, -1 );
     notebook->AddPage( panel, "Page Two" );
-    
-    wxBoxSizer *panelsizer = new wxBoxSizer( wxVERTICAL );
-    
+
+    wxSizer *panelsizer = new wxBoxSizer( wxVERTICAL );
+
     wxTextCtrl *text = new wxTextCtrl( panel, -1, "TextLine 1.", wxDefaultPosition, wxSize(250,-1) );
     panelsizer->Add( text, 0, wxGROW|wxALL, 30 );
     text = new wxTextCtrl( panel, -1, "TextLine 2.", wxDefaultPosition, wxSize(250,-1) );
     panelsizer->Add( text, 0, wxGROW|wxALL, 30 );
     wxButton *button2 = new wxButton( panel, -1, "Hallo" );
     panelsizer->Add( button2, 0, wxALIGN_RIGHT | wxLEFT|wxRIGHT|wxBOTTOM, 30 );
     wxTextCtrl *text = new wxTextCtrl( panel, -1, "TextLine 1.", wxDefaultPosition, wxSize(250,-1) );
     panelsizer->Add( text, 0, wxGROW|wxALL, 30 );
     text = new wxTextCtrl( panel, -1, "TextLine 2.", wxDefaultPosition, wxSize(250,-1) );
     panelsizer->Add( text, 0, wxGROW|wxALL, 30 );
     wxButton *button2 = new wxButton( panel, -1, "Hallo" );
     panelsizer->Add( button2, 0, wxALIGN_RIGHT | wxLEFT|wxRIGHT|wxBOTTOM, 30 );
-    
+
     panel->SetAutoLayout( TRUE );
     panel->SetSizer( panelsizer );
     panel->SetAutoLayout( TRUE );
     panel->SetSizer( panelsizer );
-    
+
     // Tell dialog to use sizer
     // Tell dialog to use sizer
-    
+
     dialog.SetAutoLayout( TRUE );
     dialog.SetAutoLayout( TRUE );
-    topsizer->Fit( &dialog );  
-    topsizer->SetSizeHints( &dialog );  
     dialog.SetSizer( topsizer );
     dialog.SetSizer( topsizer );
-    
+    topsizer->Fit( &dialog );
+    topsizer->SetSizeHints( &dialog );
+
     dialog.ShowModal();
 }
 
     dialog.ShowModal();
 }
 
@@ -275,7 +275,9 @@ void MyFrame::Draw(wxDC& dc, bool WXUNUSED(draw_bitmaps) )
   dc.DrawRoundedRectangle(150, 150, 100, 50, 20);
 
   dc.DrawEllipse(250, 250, 100, 50);
   dc.DrawRoundedRectangle(150, 150, 100, 50, 20);
 
   dc.DrawEllipse(250, 250, 100, 50);
+#if wxUSE_SPLINES
   dc.DrawSpline(50, 200, 50, 100, 200, 10);
   dc.DrawSpline(50, 200, 50, 100, 200, 10);
+#endif // wxUSE_SPLINES
   dc.DrawLine(50, 230, 200, 230);
 
   dc.SetPen(* wxBLACK_PEN);
   dc.DrawLine(50, 230, 200, 230);
 
   dc.SetPen(* wxBLACK_PEN);
@@ -319,9 +321,9 @@ MySizerFrame::MySizerFrame(wxFrame *frame, char *title, int x, int y ):
   // two buttons which.
 
   wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL );
   // two buttons which.
 
   wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL );
-  
+
   // 1) top: create wxStaticText with minimum size equal to its default size
   // 1) top: create wxStaticText with minimum size equal to its default size
-  topsizer->Add( 
+  topsizer->Add(
     new wxStaticText( this, -1, "An explanation (wxALIGN_RIGHT)." ),
     0,                         // make vertically unstretchable
     wxALIGN_RIGHT |            // right align text
     new wxStaticText( this, -1, "An explanation (wxALIGN_RIGHT)." ),
     0,                         // make vertically unstretchable
     wxALIGN_RIGHT |            // right align text
@@ -329,7 +331,7 @@ MySizerFrame::MySizerFrame(wxFrame *frame, char *title, int x, int y ):
     5 );                      // set border width to 5
 
   // 2) top: create wxTextCtrl with minimum size (100x60)
     5 );                      // set border width to 5
 
   // 2) top: create wxTextCtrl with minimum size (100x60)
-  topsizer->Add( 
+  topsizer->Add(
     new wxTextCtrl( this, -1, "My text (wxEXPAND).", wxDefaultPosition, wxSize(100,60), wxTE_MULTILINE),
     1,            // make vertically stretchable
     wxEXPAND |    // make horizontally stretchable
     new wxTextCtrl( this, -1, "My text (wxEXPAND).", wxDefaultPosition, wxSize(100,60), wxTE_MULTILINE),
     1,            // make vertically stretchable
     wxEXPAND |    // make horizontally stretchable
@@ -348,42 +350,58 @@ MySizerFrame::MySizerFrame(wxFrame *frame, char *title, int x, int y ):
     30);
   topsizer->Add(statsizer, 1, wxEXPAND | wxALL, 10);
 
     30);
   topsizer->Add(statsizer, 1, wxEXPAND | wxALL, 10);
 
+    // 2.7) And a test of wxGridSizer
+    wxGridSizer *gridsizer = new wxGridSizer(2, 5, 5);
+    gridsizer->Add(new wxStaticText(this, -1, "Label"), 0,
+                  wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
+    gridsizer->Add(new wxTextCtrl(this, -1, "Grid sizer demo"), 1,
+                   wxGROW | wxALIGN_CENTER_VERTICAL);
+    gridsizer->Add(new wxStaticText(this, -1, "Another label"), 0,
+                   wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
+    gridsizer->Add(new wxTextCtrl(this, -1, "More text"), 1,
+                   wxGROW | wxALIGN_CENTER_VERTICAL);
+    gridsizer->Add(new wxStaticText(this, -1, "Final label"), 0,
+                   wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
+    gridsizer->Add(new wxTextCtrl(this, -1, "And yet more text"), 1,
+                   wxGROW | wxALIGN_CENTER_VERTICAL);
+    topsizer->Add(gridsizer, 1, wxGROW | wxALL, 10);
+
 
   // 3) middle: create wxStaticLine with minimum size (3x3)
 
   // 3) middle: create wxStaticLine with minimum size (3x3)
-  topsizer->Add( 
-     new wxStaticLine( this, -1, wxDefaultPosition, wxSize(3,3), wxHORIZONTAL), 
+  topsizer->Add(
+     new wxStaticLine( this, -1, wxDefaultPosition, wxSize(3,3), wxHORIZONTAL),
      0,           // make vertically unstretchable
      wxEXPAND |   // make horizontally stretchable
      wxALL,       //   and make border all around
      5 );         // set border width to 5
      0,           // make vertically unstretchable
      wxEXPAND |   // make horizontally stretchable
      wxALL,       //   and make border all around
      5 );         // set border width to 5
-     
 
 
-  // 4) bottom: create two centred wxButtons  
+
+  // 4) bottom: create two centred wxButtons
   wxBoxSizer *button_box = new wxBoxSizer( wxHORIZONTAL );
   button_box->Add(
   wxBoxSizer *button_box = new wxBoxSizer( wxHORIZONTAL );
   button_box->Add(
-     new wxButton( this, -1, "Two buttons in a box" ), 
+     new wxButton( this, -1, "Two buttons in a box" ),
      0,           // make horizontally unstretchable
      wxALL,       // make border all around
      7 );         // set border width to 7
   button_box->Add(
      0,           // make horizontally unstretchable
      wxALL,       // make border all around
      7 );         // set border width to 7
   button_box->Add(
-     new wxButton( this, -1, "(wxCENTER)" ), 
+     new wxButton( this, -1, "(wxCENTER)" ),
      0,           // make horizontally unstretchable
      wxALL,       // make border all around
      7 );         // set border width to 7
      0,           // make horizontally unstretchable
      wxALL,       // make border all around
      7 );         // set border width to 7
-  
-  topsizer->Add( 
+
+  topsizer->Add(
      button_box,
      0,          // make vertically unstretchable
      wxCENTER ); // no border and centre horizontally
 
   SetAutoLayout( TRUE );
      button_box,
      0,          // make vertically unstretchable
      wxCENTER ); // no border and centre horizontally
 
   SetAutoLayout( TRUE );
-  
+
   // set frame to minimum size
   // set frame to minimum size
-  topsizer->Fit( this );  
-  
+  topsizer->Fit( this );
+
   // don't allow frame to get smaller than what the sizers tell ye
   // don't allow frame to get smaller than what the sizers tell ye
-  topsizer->SetSizeHints( this );  
-  
+  topsizer->SetSizeHints( this );
+
   SetSizer( topsizer );
 }
 
   SetSizer( topsizer );
 }