Still use Connect() in unit tests which were written explicitly for it and in EventConnector, which can't use Bind() as it uses a variable for the event type. No real changes, just use the newer and more convenient function.
		
			
				
	
	
		
			155 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			155 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/////////////////////////////////////////////////////////////////////////////
 | 
						|
// 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() wxOVERRIDE
 | 
						|
    {
 | 
						|
        new WrapSizerFrame;
 | 
						|
        return true;
 | 
						|
    }
 | 
						|
};
 | 
						|
 | 
						|
wxIMPLEMENT_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());
 | 
						|
    Bind(wxEVT_BUTTON, &WrapSizerFrame::OnButton, this, wxID_OK);
 | 
						|
 | 
						|
    // Set sizer for the panel
 | 
						|
    m_panel->SetSizer(sizerRoot);
 | 
						|
 | 
						|
    Show();
 | 
						|
}
 | 
						|
 |