X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/27d029c722b88a50f27ea912754ae3e3d4aeb190..0f05afccede840e04872bfc82103b689b8edc447:/samples/scroll/scroll.cpp diff --git a/samples/scroll/scroll.cpp b/samples/scroll/scroll.cpp index 3567376359..b190de4637 100644 --- a/samples/scroll/scroll.cpp +++ b/samples/scroll/scroll.cpp @@ -44,6 +44,7 @@ public: void OnMoveButton( wxCommandEvent &event ); void OnScrollWin( wxCommandEvent &event ); void OnMouseDown( wxMouseEvent &event ); + void OnScroll( wxScrollWinEvent &event ); wxButton *m_button; @@ -60,6 +61,8 @@ public: void OnAbout( wxCommandEvent &event ); void OnQuit( wxCommandEvent &event ); + void OnDeleteAll( wxCommandEvent &event ); + void OnInsertNew( wxCommandEvent &event ); MyCanvas *m_canvas; wxTextCtrl *m_log; @@ -96,12 +99,13 @@ IMPLEMENT_DYNAMIC_CLASS(MyCanvas, wxScrolledWindow) BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow) EVT_PAINT( MyCanvas::OnPaint) - EVT_LEFT_DOWN( MyCanvas::OnMouseDown) + EVT_MOUSE_EVENTS( MyCanvas::OnMouseDown) EVT_BUTTON( ID_QUERYPOS, MyCanvas::OnQueryPosition) EVT_BUTTON( ID_ADDBUTTON, MyCanvas::OnAddButton) EVT_BUTTON( ID_DELBUTTON, MyCanvas::OnDeleteButton) EVT_BUTTON( ID_MOVEBUTTON, MyCanvas::OnMoveButton) EVT_BUTTON( ID_SCROLLWIN, MyCanvas::OnScrollWin) + EVT_SCROLLWIN( MyCanvas::OnScroll) END_EVENT_TABLE() MyCanvas::MyCanvas( wxWindow *parent, wxWindowID id, @@ -151,17 +155,17 @@ MyCanvas::MyCanvas( wxWindow *parent, wxWindowID id, (void) new wxListBox( this, -1, wxPoint(260,280), wxSize(120,120), 5, choices, wxLB_ALWAYS_SB ); - wxWindow *test = new wxWindow( this, -1, wxPoint(10, 530), wxSize(130,120), wxSIMPLE_BORDER | wxTAB_TRAVERSAL ); + wxPanel *test = new wxPanel( this, -1, wxPoint(10, 530), wxSize(130,120), wxSIMPLE_BORDER | wxTAB_TRAVERSAL ); test->SetBackgroundColour( "WHEAT" ); wxButton *test2 = new wxButton( test, -1, "Hallo", wxPoint(10,10) ); - test = new wxWindow( this, -1, wxPoint(160, 530), wxSize(130,120), wxSUNKEN_BORDER | wxTAB_TRAVERSAL ); + test = new wxPanel( this, -1, wxPoint(160, 530), wxSize(130,120), wxSUNKEN_BORDER | wxTAB_TRAVERSAL ); test->SetBackgroundColour( "WHEAT" ); test->SetCursor( wxCursor( wxCURSOR_NO_ENTRY ) ); test2 = new wxButton( test, -1, "Hallo", wxPoint(10,10) ); test2->SetCursor( wxCursor( wxCURSOR_PENCIL ) ); - test = new wxWindow( this, -1, wxPoint(310, 530), wxSize(130,120), wxRAISED_BORDER | wxTAB_TRAVERSAL ); + test = new wxPanel( this, -1, wxPoint(310, 530), wxSize(130,120), wxRAISED_BORDER | wxTAB_TRAVERSAL ); test->SetBackgroundColour( "WHEAT" ); test->SetCursor( wxCursor( wxCURSOR_PENCIL ) ); test2 = new wxButton( test, -1, "Hallo", wxPoint(10,10) ); @@ -178,10 +182,16 @@ MyCanvas::~MyCanvas() void MyCanvas::OnMouseDown( wxMouseEvent &event ) { - wxPoint pt( event.GetPosition() ); - int x,y; - CalcUnscrolledPosition( pt.x, pt.y, &x, &y ); - wxLogMessage( "Mouse down event at: %d %d, scrolled: %d %d", pt.x, pt.y, x, y ); + if (event.LeftDown()) + { + wxPoint pt( event.GetPosition() ); + int x,y; + CalcUnscrolledPosition( pt.x, pt.y, &x, &y ); + wxLogMessage( "Mouse down event at: %d %d, scrolled: %d %d", pt.x, pt.y, x, y ); + + if ( !event.LeftIsDown() ) + wxLogMessage( "Error: LeftIsDown() should be TRUE if for LeftDown()" ); + } } void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) ) @@ -241,14 +251,27 @@ void MyCanvas::OnScrollWin( wxCommandEvent &WXUNUSED(event) ) Scroll( -1, y+2 ); } +void MyCanvas::OnScroll( wxScrollWinEvent &event ) +{ + if (( event.GetEventType() == wxEVT_SCROLLWIN_THUMBRELEASE )) + { + wxLogMessage( "Thumb released; position: %u", event.GetPosition() ); + } + event.Skip(); +} + // MyFrame const int ID_QUIT = 108; const int ID_ABOUT = 109; +const int ID_DELETE_ALL = 110; +const int ID_INSERT_NEW = 111; IMPLEMENT_DYNAMIC_CLASS( MyFrame, wxFrame ) BEGIN_EVENT_TABLE(MyFrame,wxFrame) + EVT_MENU (ID_DELETE_ALL, MyFrame::OnDeleteAll) + EVT_MENU (ID_INSERT_NEW, MyFrame::OnInsertNew) EVT_MENU (ID_ABOUT, MyFrame::OnAbout) EVT_MENU (ID_QUIT, MyFrame::OnQuit) END_EVENT_TABLE() @@ -258,6 +281,8 @@ MyFrame::MyFrame() wxPoint(20,20), wxSize(470,500) ) { wxMenu *file_menu = new wxMenu(); + file_menu->Append( ID_DELETE_ALL, "Delete all"); + file_menu->Append( ID_INSERT_NEW, "Insert new"); file_menu->Append( ID_ABOUT, "&About.."); file_menu->Append( ID_QUIT, "E&xit\tAlt-X"); @@ -286,6 +311,16 @@ MyFrame::MyFrame() SetSizer( topsizer ); } +void MyFrame::OnDeleteAll( wxCommandEvent &WXUNUSED(event) ) +{ + m_canvas->DestroyChildren(); +} + +void MyFrame::OnInsertNew( wxCommandEvent &WXUNUSED(event) ) +{ + (void)new wxButton( m_canvas, -1, "Hello", wxPoint(100,100) ); +} + void MyFrame::OnQuit( wxCommandEvent &WXUNUSED(event) ) { Close( TRUE );