From 8ad18dc32ccf198055de8824c9d78210a1fa8cfe Mon Sep 17 00:00:00 2001 From: Julian Smart Date: Tue, 23 Mar 2004 21:50:16 +0000 Subject: [PATCH] Applied [ 899616 ] Fixes to the checklst and splitter samples git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26312 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- samples/checklst/checklst.cpp | 71 +++++++++++++++++++++++++++-------- samples/splitter/splitter.cpp | 40 ++++++++++---------- 2 files changed, 75 insertions(+), 36 deletions(-) diff --git a/samples/checklst/checklst.cpp b/samples/checklst/checklst.cpp index 635a13df62..07fef62c3a 100644 --- a/samples/checklst/checklst.cpp +++ b/samples/checklst/checklst.cpp @@ -129,14 +129,14 @@ bool CheckListBoxApp::OnInit(void) ); SetTopWindow(pFrame); - return TRUE; + return true; } // main frame constructor CheckListBoxFrame::CheckListBoxFrame(wxFrame *frame, const wxChar *title, int x, int y, int w, int h) - : wxFrame(frame, -1, title, wxPoint(x, y), wxSize(w, h)) + : wxFrame(frame, wxID_ANY, title, wxPoint(x, y), wxSize(w, h)) { // create the status line const int widths[] = { -1, 60 }; @@ -170,7 +170,7 @@ CheckListBoxFrame::CheckListBoxFrame(wxFrame *frame, SetMenuBar(menu_bar); // make a panel with some controls - m_panel = new wxPanel(this, -1, wxPoint(0, 0), + m_panel = new wxPanel(this, wxID_ANY, wxPoint(0, 0), wxSize(400, 200), wxTAB_TRAVERSAL); CreateCheckListbox(); @@ -192,13 +192,13 @@ CheckListBoxFrame::CheckListBoxFrame(wxFrame *frame, mainsizer->Add( bottomsizer, 0, wxCENTER ); // tell frame to make use of sizer (or constraints, if any) - m_panel->SetAutoLayout( TRUE ); + m_panel->SetAutoLayout( true ); m_panel->SetSizer( mainsizer ); // don't allow frame to get smaller than what the sizers tell ye mainsizer->SetSizeHints( this ); - Show(TRUE); + Show(true); } void CheckListBoxFrame::CreateCheckListbox(long flags) @@ -247,7 +247,7 @@ CheckListBoxFrame::~CheckListBoxFrame() void CheckListBoxFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) { - Close(TRUE); + Close(true); } void CheckListBoxFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) @@ -266,7 +266,7 @@ void CheckListBoxFrame::OnCheckFirstItem(wxCommandEvent& WXUNUSED(event)) void CheckListBoxFrame::OnUncheckFirstItem(wxCommandEvent& WXUNUSED(event)) { if ( !m_pListBox->IsEmpty() ) - m_pListBox->Check(0, FALSE); + m_pListBox->Check(0, false); } void CheckListBoxFrame::OnToggleFirstItem(wxCommandEvent& WXUNUSED(event)) @@ -304,13 +304,35 @@ void CheckListBoxFrame::OnListboxSelect(wxCommandEvent& event) { int nSel = event.GetSelection(); wxLogStatus(this, wxT("Item %d selected (%schecked)"), nSel, - m_pListBox->IsChecked(nSel) ? _T("") : wxT("not ")); + m_pListBox->IsChecked(nSel) ? wxT("") : wxT("not ")); } void CheckListBoxFrame::OnListboxDblClick(wxCommandEvent& WXUNUSED(event)) { + int selection = -1; + if(m_pListBox->GetWindowStyle() & wxLB_EXTENDED) + { + wxArrayInt list; + m_pListBox->GetSelections(list); + if(list.Count()==1) + { + selection = list.Item(0); + } + } + else + { + selection = m_pListBox->GetSelection(); + } + wxString strSelection; - strSelection.Printf(wxT("Item %d double clicked"), m_pListBox->GetSelection()); + if ( selection != -1 ) + { + strSelection.Printf(wxT("Item %d double clicked"), selection); + } + else + { + strSelection = wxT("List double clicked in multiple selection mode"); + } wxMessageDialog dialog(this, strSelection, wxT("wxCheckListBox message"), wxICON_INFORMATION); dialog.ShowModal(); } @@ -325,17 +347,30 @@ void CheckListBoxFrame::OnCheckboxToggle(wxCommandEvent& event) void CheckListBoxFrame::OnButtonUp(wxCommandEvent& WXUNUSED(event)) { - OnButtonMove(TRUE); + OnButtonMove(true); } void CheckListBoxFrame::OnButtonDown(wxCommandEvent& WXUNUSED(event)) { - OnButtonMove(FALSE); + OnButtonMove(false); } void CheckListBoxFrame::OnButtonMove(bool up) { - int selection = m_pListBox->GetSelection(); + int selection = -1; + if(m_pListBox->GetWindowStyle() & wxLB_EXTENDED) + { + wxArrayInt list; + m_pListBox->GetSelections(list); + if(list.Count()==1) + { + selection = list.Item(0); + } + } + else + { + selection = m_pListBox->GetSelection(); + } if ( selection != -1 ) { wxString label = m_pListBox->GetString(selection); @@ -369,16 +404,20 @@ void CheckListBoxFrame::OnButtonMove(bool up) } else { - wxLogStatus(this, wxT("Please select an item")); + wxLogStatus(this, wxT("Please select single item")); } } +// not implemented in ports other than (native) MSW yet +#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__) void CheckListBoxFrame::AdjustColour(size_t index) { - // not implemented in ports other than (native) MSW yet -#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__) // even items have grey backround, odd ones - white unsigned char c = index % 2 ? 255 : 200; m_pListBox->GetItem(index)->SetBackgroundColour(wxColor(c, c, c)); -#endif // wxMSW } +#else +void CheckListBoxFrame::AdjustColour(size_t WXUNUSED(index)) +{ +} +#endif // wxMSW diff --git a/samples/splitter/splitter.cpp b/samples/splitter/splitter.cpp index c50441b75f..633e94ea0b 100644 --- a/samples/splitter/splitter.cpp +++ b/samples/splitter/splitter.cpp @@ -108,7 +108,7 @@ public: void OnPositionChanged(wxSplitterEvent& event); void OnPositionChanging(wxSplitterEvent& event); void OnDClick(wxSplitterEvent& event); - void OnUnsplit(wxSplitterEvent& event); + void OnUnsplitEvent(wxSplitterEvent& event); private: wxFrame *m_frame; @@ -146,9 +146,9 @@ bool MyApp::OnInit() // create and show the main frame MyFrame* frame = new MyFrame; - frame->Show(TRUE); + frame->Show(true); - return TRUE; + return true; } // ---------------------------------------------------------------------------- @@ -172,7 +172,7 @@ END_EVENT_TABLE() // My frame constructor MyFrame::MyFrame() - : wxFrame(NULL, -1, _T("wxSplitterWindow sample"), + : wxFrame(NULL, wxID_ANY, _T("wxSplitterWindow sample"), wxDefaultPosition, wxSize(420, 300), wxDEFAULT_FRAME_STYLE | wxNO_FULL_REPAINT_ON_RESIZE) { @@ -209,7 +209,7 @@ MyFrame::MyFrame() SetMenuBar(menuBar); - menuBar->Check(SPLIT_LIVE, TRUE); + menuBar->Check(SPLIT_LIVE, true); m_splitter = new MySplitterWindow(this); #if 1 @@ -222,13 +222,13 @@ MyFrame::MyFrame() m_right->SetBackgroundColour(*wxCYAN); m_right->SetScrollbars(20, 20, 5, 5); #else // for testing kbd navigation inside the splitter - m_left = new wxTextCtrl(m_splitter, -1, _T("first text")); - m_right = new wxTextCtrl(m_splitter, -1, _T("second text")); + m_left = new wxTextCtrl(m_splitter, wxID_ANY, _T("first text")); + m_right = new wxTextCtrl(m_splitter, wxID_ANY, _T("second text")); #endif // you can also do this to start with a single window #if 0 - m_right->Show(FALSE); + m_right->Show(false); m_splitter->Initialize(m_left); #else // you can also try -100 @@ -246,15 +246,15 @@ MyFrame::~MyFrame() void MyFrame::Quit(wxCommandEvent& WXUNUSED(event) ) { - Close(TRUE); + Close(true); } void MyFrame::SplitHorizontal(wxCommandEvent& WXUNUSED(event) ) { if ( m_splitter->IsSplit() ) m_splitter->Unsplit(); - m_left->Show(TRUE); - m_right->Show(TRUE); + m_left->Show(true); + m_right->Show(true); m_splitter->SplitHorizontally( m_left, m_right ); SetStatusText(_T("Splitter split horizontally"), 1); @@ -264,8 +264,8 @@ void MyFrame::SplitVertical(wxCommandEvent& WXUNUSED(event) ) { if ( m_splitter->IsSplit() ) m_splitter->Unsplit(); - m_left->Show(TRUE); - m_right->Show(TRUE); + m_left->Show(true); + m_right->Show(true); m_splitter->SplitVertically( m_left, m_right ); SetStatusText(_T("Splitter split vertically"), 1); @@ -345,16 +345,16 @@ void MyFrame::UpdateUIUnsplit(wxUpdateUIEvent& event) // ---------------------------------------------------------------------------- BEGIN_EVENT_TABLE(MySplitterWindow, wxSplitterWindow) - EVT_SPLITTER_SASH_POS_CHANGED(-1, MySplitterWindow::OnPositionChanged) - EVT_SPLITTER_SASH_POS_CHANGING(-1, MySplitterWindow::OnPositionChanging) + EVT_SPLITTER_SASH_POS_CHANGED(wxID_ANY, MySplitterWindow::OnPositionChanged) + EVT_SPLITTER_SASH_POS_CHANGING(wxID_ANY, MySplitterWindow::OnPositionChanging) - EVT_SPLITTER_DCLICK(-1, MySplitterWindow::OnDClick) + EVT_SPLITTER_DCLICK(wxID_ANY, MySplitterWindow::OnDClick) - EVT_SPLITTER_UNSPLIT(-1, MySplitterWindow::OnUnsplit) + EVT_SPLITTER_UNSPLIT(wxID_ANY, MySplitterWindow::OnUnsplitEvent) END_EVENT_TABLE() MySplitterWindow::MySplitterWindow(wxFrame *parent) - : wxSplitterWindow(parent, -1, + : wxSplitterWindow(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_3D | wxSP_LIVE_UPDATE | wxCLIP_CHILDREN /* | wxSP_NO_XP_THEME */ ) @@ -385,7 +385,7 @@ void MySplitterWindow::OnDClick(wxSplitterEvent& event) event.Skip(); } -void MySplitterWindow::OnUnsplit(wxSplitterEvent& event) +void MySplitterWindow::OnUnsplitEvent(wxSplitterEvent& event) { m_frame->SetStatusText(_T("Splitter unsplit"), 1); @@ -397,7 +397,7 @@ void MySplitterWindow::OnUnsplit(wxSplitterEvent& event) // ---------------------------------------------------------------------------- MyCanvas::MyCanvas(wxWindow* parent, bool mirror) - : wxScrolledWindow(parent, -1, wxDefaultPosition, wxDefaultSize, + : wxScrolledWindow(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL | wxVSCROLL | wxNO_FULL_REPAINT_ON_RESIZE) { m_mirror = mirror; -- 2.45.2