git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@18491
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
- wxStaticBitmap doesn't stretch its bitmap any longer (like other ports)
- support for accelerator keys in the owner drawn menus (Derry Bryson)
- wxStaticBitmap doesn't stretch its bitmap any longer (like other ports)
- support for accelerator keys in the owner drawn menus (Derry Bryson)
+- wxCheckListBox::Check() doesn't send CHECKLISTBOX_TOGGLE event any more
\func{void}{Check}{\param{int }{item}, \param{bool}{ check = TRUE}}
\func{void}{Check}{\param{int }{item}, \param{bool}{ check = TRUE}}
+Checks the given item. Note that calling this method doesn't result in
+wxEVT\_COMMAND\_CHECKLISTBOX\_TOGGLE being emitted.
// drawing functions
virtual bool OnDrawItem(wxDC& dc, const wxRect& rc, wxODAction act, wxODStatus stat);
// drawing functions
virtual bool OnDrawItem(wxDC& dc, const wxRect& rc, wxODAction act, wxODStatus stat);
- // simple accessors
- bool IsChecked() const { return m_bChecked; }
+ // simple accessors and operations
+ bool IsChecked() const { return m_bChecked; }
+
void Check(bool bCheck);
void Toggle() { Check(!IsChecked()); }
void Check(bool bCheck);
void Toggle() { Check(!IsChecked()); }
private:
bool m_bChecked;
wxCheckListBox *m_pParent;
private:
bool m_bChecked;
wxCheckListBox *m_pParent;
};
wxCheckListBoxItem::wxCheckListBoxItem(wxCheckListBox *pParent, size_t nIndex)
};
wxCheckListBoxItem::wxCheckListBoxItem(wxCheckListBox *pParent, size_t nIndex)
- // index may be chanegd because new items were added/deleted
+ // index may be changed because new items were added/deleted
if ( m_pParent->GetItemIndex(this) != (int)m_nIndex )
{
// update it
if ( m_pParent->GetItemIndex(this) != (int)m_nIndex )
{
// update it
#endif // Win32/16
InvalidateRect(hwndListbox, &rcUpdate, FALSE);
#endif // Win32/16
InvalidateRect(hwndListbox, &rcUpdate, FALSE);
+// send an "item checked" event
+void wxCheckListBoxItem::SendEvent()
+{
wxCommandEvent event(wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, m_pParent->GetId());
event.SetInt(m_nIndex);
event.SetEventObject(m_pParent);
wxCommandEvent event(wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, m_pParent->GetId());
event.SetInt(m_nIndex);
event.SetEventObject(m_pParent);
return wxListBox::Create(parent, id, pos, size, n, choices,
style | wxLB_OWNERDRAW, validator, name);
}
return wxListBox::Create(parent, id, pos, size, n, choices,
style | wxLB_OWNERDRAW, validator, name);
}
+// misc overloaded methods
+// -----------------------
void wxCheckListBox::Delete(int N)
{
void wxCheckListBox::Delete(int N)
{
default:
wxFAIL_MSG( _T("what should this key do?") );
}
default:
wxFAIL_MSG( _T("what should this key do?") );
}
+
+ // we should send an event as this has been done by the user and
+ // not by the program
+ item->SendEvent();
}
}
else // nothing to do
}
}
else // nothing to do
if ( event.GetX() <= wxOwnerDrawn::GetDefaultMarginWidth() ) {
int nItem = HitTest(event.GetX(), event.GetY());
if ( event.GetX() <= wxOwnerDrawn::GetDefaultMarginWidth() ) {
int nItem = HitTest(event.GetX(), event.GetY());
- if ( nItem != wxNOT_FOUND )
- GetItem(nItem)->Toggle();
+ if ( nItem != wxNOT_FOUND ) {
+ wxCheckListBoxItem *item = GetItem(nItem);
+ item->Toggle();
+ item->SendEvent();
+ }
//else: it's not an error, just click outside of client zone
}
else {
//else: it's not an error, just click outside of client zone
}
else {