From db4ad642aa60c1156cee0746f950ee165f6d97c0 Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Tue, 25 Apr 2006 10:48:26 +0000 Subject: [PATCH] Added simple scroll sample. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38903 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- samples/scroll/scroll.cpp | 112 +++++++++++++++++++++++++++++++++++--- 1 file changed, 104 insertions(+), 8 deletions(-) diff --git a/samples/scroll/scroll.cpp b/samples/scroll/scroll.cpp index 442d5f5021..345e64cd04 100644 --- a/samples/scroll/scroll.cpp +++ b/samples/scroll/scroll.cpp @@ -25,6 +25,104 @@ #include "wx/sizer.h" #include "wx/log.h" +const long ID_QUIT = wxID_EXIT; +const long ID_ABOUT = wxID_ABOUT; +const long ID_DELETE_ALL = 100; +const long ID_INSERT_NEW = 101; + +// ---------------------------------------------------------------------- +// a trivial example +// ---------------------------------------------------------------------- + +class MySimpleFrame; +class MySimpleCanvas; + +// MySimpleCanvas + +class MySimpleCanvas: public wxScrolledWindow +{ +public: + MySimpleCanvas() { } + MySimpleCanvas( wxWindow *parent, wxWindowID, const wxPoint &pos, const wxSize &size ); + + void OnPaint( wxPaintEvent &event ); + +private: + DECLARE_DYNAMIC_CLASS(MyCanvas) + DECLARE_EVENT_TABLE() +}; + +IMPLEMENT_DYNAMIC_CLASS(MySimpleCanvas, wxScrolledWindow) + +BEGIN_EVENT_TABLE(MySimpleCanvas, wxScrolledWindow) + EVT_PAINT( MySimpleCanvas::OnPaint) +END_EVENT_TABLE() + +MySimpleCanvas::MySimpleCanvas( wxWindow *parent, wxWindowID id, + const wxPoint &pos, const wxSize &size ) + : wxScrolledWindow( parent, id, pos, size, wxSUNKEN_BORDER, _T("test canvas") ) +{ + SetScrollRate( 10, 10 ); + SetVirtualSize( 92, 97 ); + SetBackgroundColour( *wxWHITE ); +} + +void MySimpleCanvas::OnPaint( wxPaintEvent &event ) +{ + wxPaintDC dc(this); + PrepareDC( dc ); + + dc.SetPen( *wxRED_PEN ); + dc.SetBrush( *wxTRANSPARENT_BRUSH ); + dc.DrawRectangle( 0,0,92,97 ); +} + +// MySimpleFrame + +class MySimpleFrame: public wxFrame +{ +public: + MySimpleFrame(); + + void OnQuit( wxCommandEvent &event ); + + MySimpleCanvas *m_canvas; + +private: + DECLARE_DYNAMIC_CLASS(MySimpleFrame) + DECLARE_EVENT_TABLE() +}; + + +IMPLEMENT_DYNAMIC_CLASS( MySimpleFrame, wxFrame ) + +BEGIN_EVENT_TABLE(MySimpleFrame,wxFrame) + EVT_MENU (ID_QUIT, MySimpleFrame::OnQuit) +END_EVENT_TABLE() + +MySimpleFrame::MySimpleFrame() + : wxFrame( (wxFrame *)NULL, wxID_ANY, _T("wxScrolledWindow sample"), + wxPoint(120,120), wxSize(150,150) ) +{ + wxMenu *file_menu = new wxMenu(); + file_menu->Append( ID_QUIT, _T("E&xit\tAlt-X")); + + wxMenuBar *menu_bar = new wxMenuBar(); + menu_bar->Append(file_menu, _T("&File")); + + SetMenuBar( menu_bar ); + + m_canvas = new MySimpleCanvas( this, wxID_ANY, wxPoint(0,0), wxSize(100,100) ); +} + +void MySimpleFrame::OnQuit( wxCommandEvent &WXUNUSED(event) ) +{ + Close( true ); +} + +// ---------------------------------------------------------------------- +// a complex example +// ---------------------------------------------------------------------- // derived classes @@ -485,11 +583,6 @@ void MyAutoScrollWindow::OnResizeClick( wxCommandEvent &WXUNUSED( event ) ) // MyFrame // ---------------------------------------------------------------------------- -const long ID_QUIT = wxID_EXIT; -const long ID_ABOUT = wxID_ABOUT; -const long ID_DELETE_ALL = 100; -const long ID_INSERT_NEW = 101; - IMPLEMENT_DYNAMIC_CLASS( MyFrame, wxFrame ) BEGIN_EVENT_TABLE(MyFrame,wxFrame) @@ -579,10 +672,13 @@ void MyFrame::OnAbout( wxCommandEvent &WXUNUSED(event) ) bool MyApp::OnInit() { - wxFrame *frame = new MyFrame(); - frame->Show( true ); + wxFrame *frame = new MyFrame(); + frame->Show( true ); + + frame = new MySimpleFrame(); + frame->Show(); - return true; + return true; } // ---------------------------------------------------------------------------- -- 2.47.2