// headers
// ----------------------------------------------------------------------------
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma implementation "checklst.h"
#endif
#include "wx/ownerdrw.h"
#include "wx/checklst.h"
-#include <windows.h>
+#include "wx/msw/wrapwin.h"
#include <windowsx.h>
+#include "wx/msw/private.h"
+
#if defined(__GNUWIN32_OLD__)
#include "wx/msw/gnuwin32/extra.h"
#endif
// implementation
// ============================================================================
+
+#if wxUSE_EXTENDED_RTTI
+WX_DEFINE_FLAGS( wxCheckListBoxStyle )
+
+wxBEGIN_FLAGS( wxCheckListBoxStyle )
+ // new style border flags, we put them first to
+ // use them for streaming out
+ wxFLAGS_MEMBER(wxBORDER_SIMPLE)
+ wxFLAGS_MEMBER(wxBORDER_SUNKEN)
+ wxFLAGS_MEMBER(wxBORDER_DOUBLE)
+ wxFLAGS_MEMBER(wxBORDER_RAISED)
+ wxFLAGS_MEMBER(wxBORDER_STATIC)
+ wxFLAGS_MEMBER(wxBORDER_NONE)
+
+ // old style border flags
+ wxFLAGS_MEMBER(wxSIMPLE_BORDER)
+ wxFLAGS_MEMBER(wxSUNKEN_BORDER)
+ wxFLAGS_MEMBER(wxDOUBLE_BORDER)
+ wxFLAGS_MEMBER(wxRAISED_BORDER)
+ wxFLAGS_MEMBER(wxSTATIC_BORDER)
+ wxFLAGS_MEMBER(wxBORDER)
+
+ // standard window styles
+ wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
+ wxFLAGS_MEMBER(wxCLIP_CHILDREN)
+ wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
+ wxFLAGS_MEMBER(wxWANTS_CHARS)
+ wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
+ wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
+ wxFLAGS_MEMBER(wxVSCROLL)
+ wxFLAGS_MEMBER(wxHSCROLL)
+
+ wxFLAGS_MEMBER(wxLB_SINGLE)
+ wxFLAGS_MEMBER(wxLB_MULTIPLE)
+ wxFLAGS_MEMBER(wxLB_EXTENDED)
+ wxFLAGS_MEMBER(wxLB_HSCROLL)
+ wxFLAGS_MEMBER(wxLB_ALWAYS_SB)
+ wxFLAGS_MEMBER(wxLB_NEEDED_SB)
+ wxFLAGS_MEMBER(wxLB_SORT)
+ wxFLAGS_MEMBER(wxLB_OWNERDRAW)
+
+wxEND_FLAGS( wxCheckListBoxStyle )
+
+IMPLEMENT_DYNAMIC_CLASS_XTI(wxCheckListBox, wxListBox,"wx/checklst.h")
+
+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
+wxEND_PROPERTIES_TABLE()
+
+wxBEGIN_HANDLERS_TABLE(wxCheckListBox)
+wxEND_HANDLERS_TABLE()
+
+wxCONSTRUCTOR_4( wxCheckListBox , wxWindow* , Parent , wxWindowID , Id , wxPoint , Position , wxSize , Size )
+
+#else
IMPLEMENT_DYNAMIC_CLASS(wxCheckListBox, wxListBox)
+#endif
// ----------------------------------------------------------------------------
// declaration and implementation of wxCheckListBoxItem class
rect.right = nCheckWidth;
rect.bottom = nCheckHeight;
+#ifdef __WXWINCE__
+ DrawFrameControl(hdcMem, &rect, DFC_BUTTON, DFCS_BUTTONCHECK);
+#else
DrawFrameControl(hdcMem, &rect, DFC_MENU, DFCS_MENUCHECK);
+#endif
// finally copy it to screen DC and clean up
BitBlt(hdc, x, y, nCheckWidth - 1, nCheckHeight,
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
// -----------------------