Added simple scroll sample.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38903 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -25,6 +25,104 @@
|
|||||||
#include "wx/sizer.h"
|
#include "wx/sizer.h"
|
||||||
#include "wx/log.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
|
// derived classes
|
||||||
|
|
||||||
@@ -485,11 +583,6 @@ void MyAutoScrollWindow::OnResizeClick( wxCommandEvent &WXUNUSED( event ) )
|
|||||||
// MyFrame
|
// 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 )
|
IMPLEMENT_DYNAMIC_CLASS( MyFrame, wxFrame )
|
||||||
|
|
||||||
BEGIN_EVENT_TABLE(MyFrame,wxFrame)
|
BEGIN_EVENT_TABLE(MyFrame,wxFrame)
|
||||||
@@ -579,10 +672,13 @@ void MyFrame::OnAbout( wxCommandEvent &WXUNUSED(event) )
|
|||||||
|
|
||||||
bool MyApp::OnInit()
|
bool MyApp::OnInit()
|
||||||
{
|
{
|
||||||
wxFrame *frame = new MyFrame();
|
wxFrame *frame = new MyFrame();
|
||||||
frame->Show( true );
|
frame->Show( true );
|
||||||
|
|
||||||
return true;
|
frame = new MySimpleFrame();
|
||||||
|
frame->Show();
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
Reference in New Issue
Block a user