#define GetItem(n) ((wxCheckListBoxItem *)(GetItem(n)))
// ============================================================================
-// implementation of wxCheckListBoxBase
-// ============================================================================
-
-wxCheckListBoxBase::wxCheckListBoxBase()
-{
-}
-
-// ============================================================================
-// implementation of wxCheckListBox
+// implementation
// ============================================================================
wxBEGIN_PROPERTIES_TABLE(wxCheckListBox)
wxEVENT_PROPERTY( Toggle , wxEVT_COMMAND_CHECKLISTBOX_TOGGLED , wxCommandEvent )
- wxPROPERTY_FLAGS( WindowStyle , wxCheckListBoxStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , , wxLB_OWNERDRAW /*flags*/ , wxT("Helpstring") , wxT("group")) // style
+ wxPROPERTY_FLAGS( WindowStyle , wxCheckListBoxStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE , wxLB_OWNERDRAW /*flags*/ , wxT("Helpstring") , wxT("group")) // style
wxEND_PROPERTIES_TABLE()
wxBEGIN_HANDLERS_TABLE(wxCheckListBox)
SetMarginWidth(GetDefaultMarginWidth());
}
-/*
- * JACS - I've got the owner-draw stuff partially working with WIN16,
- * with a really horrible-looking cross for wxCheckListBox instead of a
- * check - could use a bitmap check-mark instead, defined in wx.rc.
- * Also there's a refresh problem whereby it doesn't always draw the
- * check until you click to the right of it, which is OK for WIN32.
- */
-
bool wxCheckListBoxItem::OnDrawItem(wxDC& dc, const wxRect& rc,
wxODAction act, wxODStatus stat)
{
HWND hwndListbox = (HWND)m_pParent->GetHWND();
- #ifdef __WIN32__
RECT rcUpdate;
if ( ::SendMessage(hwndListbox, LB_GETITEMRECT,
{
wxLogDebug(wxT("LB_GETITEMRECT failed"));
}
- #else // Win16
- // FIXME this doesn't work if the listbox is scrolled!
- size_t nHeight = m_pParent->GetItemHeight();
- size_t y = m_nIndex * nHeight;
- RECT rcUpdate ;
- rcUpdate.left = 0 ;
- rcUpdate.top = y ;
- rcUpdate.right = GetDefaultMarginWidth() ;
- rcUpdate.bottom = y + nHeight ;
- #endif // Win32/16
InvalidateRect(hwndListbox, &rcUpdate, FALSE);
}
Create(parent, id, pos, size, nStrings, choices, style, val, name);
}
+wxCheckListBox::wxCheckListBox(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos, const wxSize& size,
+ const wxArrayString& choices,
+ long style, const wxValidator& val,
+ const wxString& name)
+{
+ Create(parent, id, pos, size, choices, style, val, name);
+}
+
bool wxCheckListBox::Create(wxWindow *parent, wxWindowID id,
const wxPoint& pos, const wxSize& size,
int n, const wxString choices[],
style | wxLB_OWNERDRAW, validator, name);
}
+bool wxCheckListBox::Create(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos, const wxSize& size,
+ const wxArrayString& choices,
+ long style,
+ const wxValidator& validator, const wxString& name)
+{
+ return wxListBox::Create(parent, id, pos, size, choices,
+ style | wxLB_OWNERDRAW, validator, name);
+}
+
// misc overloaded methods
// -----------------------
int wxCheckListBox::DoHitTestItem(wxCoord x, wxCoord y) const
{
- #ifdef __WIN32__
int nItem = (int)::SendMessage
(
(HWND)GetHWND(),
0,
MAKELPARAM(x, y)
);
- #else // Win16
- // FIXME this doesn't work when the listbox is scrolled!
- int nItem = y / m_nItemHeight;
- #endif // Win32/16
return nItem >= m_noItems ? wxNOT_FOUND : nItem;
}