]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/listctrl.cpp
allow compilation with wxUSE_CHOICEDLG set to 0
[wxWidgets.git] / src / msw / listctrl.cpp
index c3193b7198d8b3a521bde48b895a2e14f9727fbd..296828b75c785140fa7da33ea3c005e220109669 100644 (file)
@@ -291,7 +291,7 @@ IMPLEMENT_DYNAMIC_CLASS_XTI(wxListCtrl, wxControl,"wx/listctrl.h")
 wxBEGIN_PROPERTIES_TABLE(wxListCtrl)
     wxEVENT_PROPERTY( TextUpdated , wxEVT_COMMAND_TEXT_UPDATED , wxCommandEvent ) 
 
-    wxPROPERTY_FLAGS( WindowStyle , wxListCtrlStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
+    wxPROPERTY_FLAGS( WindowStyle , wxListCtrlStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
 wxEND_PROPERTIES_TABLE()
 
 wxBEGIN_HANDLERS_TABLE(wxListCtrl)
@@ -353,23 +353,16 @@ bool wxListCtrl::Create(wxWindow *parent,
 
     // explicitly say that we want to use Unicode because otherwise we get ANSI
     // versions of _some_ messages (notably LVN_GETDISPINFOA) in MSLU build
-#if wxUSE_UNICODE
-    ::SendMessage(GetHwnd(), LVM_SETUNICODEFORMAT, TRUE, 0);
-#endif
+    wxSetCCUnicodeFormat(GetHwnd());
 
     // for comctl32.dll v 4.70+ we want to have this attribute because it's
     // prettier (and also because wxGTK does it like this)
-    if ( HasFlag(wxLC_REPORT) && wxTheApp->GetComCtl32Version() >= 470 )
+    if ( InReportView() && wxTheApp->GetComCtl32Version() >= 470 )
     {
         ::SendMessage(GetHwnd(), LVM_SETEXTENDEDLISTVIEWSTYLE,
                       0, LVS_EX_FULLROWSELECT);
     }
 
-    // inherit foreground colour but our background should be the same as for
-    // listboxes and other such "container" windows and not inherited
-    SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW));
-    SetForegroundColour(GetParent()->GetForegroundColour());
-
     return TRUE;
 }
 
@@ -548,6 +541,17 @@ void wxListCtrl::SetWindowStyleFlag(long flag)
 // accessors
 // ----------------------------------------------------------------------------
 
+/* static */ wxVisualAttributes
+wxListCtrl::GetClassDefaultAttributes(wxWindowVariant variant)
+{
+    wxVisualAttributes attrs = GetCompositeControlsDefaultAttributes(variant);
+
+    // common controls have their own default font
+    attrs.font = wxGetCCDefaultFont();
+
+    return attrs;
+}
+
 // Sets the foreground, i.e. text, colour
 bool wxListCtrl::SetForegroundColour(const wxColour& col)
 {
@@ -1776,7 +1780,7 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
                     // there's a GPF in Windows.
                     // By returning TRUE here, we avoid further processing
                     // of this strange message.
-                    if ( info->iItem >= GetColumnCount() )
+                    if ( (unsigned)info->iItem >= (unsigned)GetColumnCount() )
                         return TRUE;
                 }
                 // fall through
@@ -1932,7 +1936,7 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
 
             case LVN_ITEMCHANGED:
                 // we translate this catch all message into more interesting
-                // (and more easy to process) wxWindows events
+                // (and more easy to process) wxWidgets events
 
                 // first of all, we deal with the state change events only and
                 // only for valid items (item == -1 for the virtual list
@@ -2297,12 +2301,10 @@ void wxListCtrl::OnPaint(wxPaintEvent& event)
     // Reset the device origin since it may have been set
     dc.SetDeviceOrigin(0, 0);
 
-    bool drawHRules = ((GetWindowStyle() & wxLC_HRULES) != 0);
-    bool drawVRules = ((GetWindowStyle() & wxLC_VRULES) != 0);
+    bool drawHRules = HasFlag(wxLC_HRULES);
+    bool drawVRules = HasFlag(wxLC_VRULES);
 
-    if (!drawHRules && !drawVRules)
-        return;
-    if ((GetWindowStyle() & wxLC_REPORT) == 0)
+    if (!InReportView() || !drawHRules && !drawVRules)
         return;
 
     wxPen pen(wxSystemSettings::GetColour(wxSYS_COLOUR_3DLIGHT), 1, wxSOLID);
@@ -2614,7 +2616,7 @@ static void wxConvertToMSWListItem(const wxListCtrl *ctrl,
     if (info.m_mask & wxLIST_MASK_TEXT)
     {
         lvItem.mask |= LVIF_TEXT;
-        if ( ctrl->GetWindowStyleFlag() & wxLC_USER_TEXT )
+        if ( ctrl->HasFlag(wxLC_USER_TEXT) )
         {
             lvItem.pszText = LPSTR_TEXTCALLBACK;
         }