| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        wrapsizer.cpp
 
- // Purpose:     wxWidgets sample demonstrating wxWrapSizer use
 
- // Author:      Arne Steinarson
 
- // Created:     21.01.2008
 
- // Copyright:   (c) Arne Steinarson
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- #include "wx/wxprec.h"
 
- #ifdef __BORLANDC__
 
-     #pragma hdrstop
 
- #endif
 
- #ifndef WX_PRECOMP
 
-     #include "wx/wx.h"
 
- #endif
 
- #include "wx/log.h"
 
- #include "wx/wrapsizer.h"
 
- #include "wx/artprov.h"
 
- #ifndef wxHAS_IMAGES_IN_RESOURCES
 
-     #include "../sample.xpm"
 
- #endif
 
- // ----------------------------------------------------------------------------
 
- // definitions
 
- // ----------------------------------------------------------------------------
 
- class WrapSizerFrame : public wxFrame
 
- {
 
- public:
 
-     WrapSizerFrame();
 
- private:
 
-     void OnButton(wxCommandEvent& WXUNUSED(event))
 
-     {
 
-         Close();
 
-     }
 
-     void AddToolBarButton(wxToolBar *tb,
 
-                           const wxString& label,
 
-                           const wxString& artid)
 
-     {
 
-         wxBitmap
 
-             bm = wxArtProvider::GetBitmap(artid, wxART_TOOLBAR, wxSize(16, 16));
 
-         tb->AddTool(wxID_ANY, label, bm);
 
-     }
 
-     wxToolBar *MakeToolBar()
 
-     {
 
-         wxToolBar *tb = new wxToolBar(m_panel, wxID_ANY,
 
-                                       wxDefaultPosition, wxDefaultSize,
 
-                                       wxTB_NODIVIDER);
 
-         AddToolBarButton(tb, "Help", wxART_HELP_BOOK);
 
-         tb->AddSeparator( );
 
-         AddToolBarButton(tb, "Open", wxART_FILE_OPEN);
 
-         tb->AddSeparator( );
 
-         AddToolBarButton(tb, "Up", wxART_GO_DIR_UP);
 
-         AddToolBarButton(tb, "Execute", wxART_EXECUTABLE_FILE);
 
-         tb->Realize( );
 
-         return tb;
 
-     }
 
-     wxPanel *m_panel;
 
- };
 
- class WrapSizerApp : public wxApp
 
- {
 
- public:
 
-     WrapSizerApp() {}
 
-     virtual bool OnInit()
 
-     {
 
-         new WrapSizerFrame;
 
-         return true;
 
-     }
 
- };
 
- 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_BUTTON,
 
-                 wxCommandEventHandler(WrapSizerFrame::OnButton));
 
-     // Set sizer for the panel
 
-     m_panel->SetSizer(sizerRoot);
 
-     Show();
 
- }
 
 
  |