]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/wrapsizer/wrapsizer.cpp
Don't use GetThreadId() in wxMSW code.
[wxWidgets.git] / samples / wrapsizer / wrapsizer.cpp
index 19a66de76ed9c30cb6d628484323fcc30222b79e..7ad2c93903b72586c4a66b96f99be39ed3fba0f8 100644 (file)
@@ -3,7 +3,7 @@
 // Purpose:     wxWidgets sample demonstrating wxWrapSizer use
 // Author:      Arne Steinarson
 // Created:     21.01.2008
-// RCS-ID:      $Id:$
+// RCS-ID:      $Id$
 // Copyright:   (c) Arne Steinarson
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 #include "wx/wrapsizer.h"
 #include "wx/artprov.h"
 
+#ifndef wxHAS_IMAGES_IN_RESOURCES
+    #include "../sample.xpm"
+#endif
+
+
+// ----------------------------------------------------------------------------
+// definitions
+// ----------------------------------------------------------------------------
+
 class WrapSizerFrame : public wxFrame
 {
 public:
-    WrapSizerFrame()
-        : wxFrame(NULL, wxID_ANY, "wxWrapSizer Sample")
-    {
-        // Root sizer, vertical
-        wxSizer * const sizerRoot = new wxBoxSizer(wxVERTICAL);
-
-        // Some toolbars in a wrap sizer
-        wxSizer * const sizerTop = new wxWrapSizer( wxHORIZONTAL );
-        sizerTop->Add(MakeToolBar());
-        sizerTop->Add(20, 1);
-        sizerTop->Add(MakeToolBar());
-        sizerTop->Add(20, 1);
-        sizerTop->Add(MakeToolBar());
-        sizerRoot->Add(sizerTop, wxSizerFlags().Expand().Border());
-
-        // A number of checkboxes inside a wrap sizer
-        wxSizer *sizerMid = new wxStaticBoxSizer(wxVERTICAL, this,
-                                                 "With check-boxes");
-        wxSizer * const sizerMidWrap = new wxWrapSizer(wxHORIZONTAL);
-        for ( int nCheck = 0; nCheck < 6; nCheck++ )
-        {
-            wxCheckBox *chk = new wxCheckBox
-                                  (
-                                    this,
-                                    wxID_ANY,
-                                    wxString::Format("Option %d", nCheck)
-                                  );
-
-            sizerMidWrap->Add(chk, wxSizerFlags().Centre().Border());
-        }
-
-        sizerMid->Add(sizerMidWrap, wxSizerFlags(100).Expand());
-        sizerRoot->Add(sizerMid, wxSizerFlags(100).Expand().Border());
-
-
-        // A shaped item inside a box sizer
-        wxSizer *sizerBottom = new wxStaticBoxSizer(wxVERTICAL, this,
-                                                    "With wxSHAPED item");
-        wxSizer *sizerBottomBox = new wxBoxSizer(wxHORIZONTAL);
-        sizerBottom->Add(sizerBottomBox, wxSizerFlags(100).Expand());
-
-        sizerBottomBox->Add(new wxListBox(this, wxID_ANY,
-                                          wxPoint(0, 0), wxSize(70, 70)),
-                            wxSizerFlags().Expand().Shaped());
-        sizerBottomBox->AddSpacer(10);
-        sizerBottomBox->Add(new wxCheckBox(this, wxID_ANY,
-                                           "A much longer option..."),
-                            wxSizerFlags(100).Border());
-        sizerRoot->Add(sizerBottom, wxSizerFlags(100).Expand().Border());
-
-        // OK Button
-        sizerRoot->Add(new wxButton(this, wxID_OK),
-                       wxSizerFlags().Centre().DoubleBorder());
-        Connect(wxID_OK, wxEVT_COMMAND_BUTTON_CLICKED,
-                    wxCommandEventHandler(WrapSizerFrame::OnButton));
-
-        // Set sizer for window
-        SetSizerAndFit(sizerRoot);
-
-        Show();
-    }
+    WrapSizerFrame();
 
 private:
     void OnButton(wxCommandEvent& WXUNUSED(event))
@@ -103,7 +52,7 @@ private:
 
     wxToolBar *MakeToolBar()
     {
-        wxToolBar *tb = new wxToolBar(this, wxID_ANY,
+        wxToolBar *tb = new wxToolBar(m_panel, wxID_ANY,
                                       wxDefaultPosition, wxDefaultSize,
                                       wxTB_NODIVIDER);
         AddToolBarButton(tb, "Help", wxART_HELP_BOOK);
@@ -117,9 +66,9 @@ private:
         return tb;
     }
 
+    wxPanel *m_panel;
 };
 
-
 class WrapSizerApp : public wxApp
 {
 public:
@@ -133,3 +82,75 @@ public:
 };
 
 IMPLEMENT_APP(WrapSizerApp);
+
+
+// ----------------------------------------------------------------------------
+// WrapSizerFrame
+// ----------------------------------------------------------------------------
+
+WrapSizerFrame::WrapSizerFrame()
+        : wxFrame(NULL, wxID_ANY, "wxWrapSizer Sample")
+{
+    SetIcon(wxICON(sample));
+
+    m_panel = new wxPanel(this);
+
+    // Root sizer, vertical
+    wxSizer * const sizerRoot = new wxBoxSizer(wxVERTICAL);
+
+    // Some toolbars in a wrap sizer
+    wxSizer * const sizerTop = new wxWrapSizer( wxHORIZONTAL );
+    sizerTop->Add(MakeToolBar());
+    sizerTop->Add(20, 1);
+    sizerTop->Add(MakeToolBar());
+    sizerTop->Add(20, 1);
+    sizerTop->Add(MakeToolBar());
+    sizerRoot->Add(sizerTop, wxSizerFlags().Expand().Border());
+
+    // A number of checkboxes inside a wrap sizer
+    wxSizer *sizerMid = new wxStaticBoxSizer(wxVERTICAL, m_panel,
+                                                "With check-boxes");
+    wxSizer * const sizerMidWrap = new wxWrapSizer(wxHORIZONTAL);
+    for ( int nCheck = 0; nCheck < 6; nCheck++ )
+    {
+        wxCheckBox *chk = new wxCheckBox
+                                (
+                                m_panel,
+                                wxID_ANY,
+                                wxString::Format("Option %d", nCheck)
+                                );
+
+        sizerMidWrap->Add(chk, wxSizerFlags().Centre().Border());
+    }
+
+    sizerMid->Add(sizerMidWrap, wxSizerFlags(100).Expand());
+    sizerRoot->Add(sizerMid, wxSizerFlags(100).Expand().Border());
+
+
+    // A shaped item inside a box sizer
+    wxSizer *sizerBottom = new wxStaticBoxSizer(wxVERTICAL, m_panel,
+                                                "With wxSHAPED item");
+    wxSizer *sizerBottomBox = new wxBoxSizer(wxHORIZONTAL);
+    sizerBottom->Add(sizerBottomBox, wxSizerFlags(100).Expand());
+
+    sizerBottomBox->Add(new wxListBox(m_panel, wxID_ANY,
+                                        wxPoint(0, 0), wxSize(70, 70)),
+                        wxSizerFlags().Expand().Shaped());
+    sizerBottomBox->AddSpacer(10);
+    sizerBottomBox->Add(new wxCheckBox(m_panel, wxID_ANY,
+                                        "A much longer option..."),
+                        wxSizerFlags(100).Border());
+    sizerRoot->Add(sizerBottom, wxSizerFlags(100).Expand().Border());
+
+    // OK Button
+    sizerRoot->Add(new wxButton(m_panel, wxID_OK),
+                    wxSizerFlags().Centre().DoubleBorder());
+    Connect(wxID_OK, wxEVT_COMMAND_BUTTON_CLICKED,
+                wxCommandEventHandler(WrapSizerFrame::OnButton));
+
+    // Set sizer for the panel
+    m_panel->SetSizer(sizerRoot);
+
+    Show();
+}
+