]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/listctrl.cpp
ignore hidden buttons when emulating clicks on them
[wxWidgets.git] / src / msw / listctrl.cpp
index dc5fca4ceb7a80923f5ef8aac9b96df1e244ecfe..a8316267c2b64b42c9f02736a773dfbbfe4276cd 100644 (file)
@@ -62,7 +62,8 @@
 #if defined(__VISUALC__) || defined(__BORLANDC__) || defined(NMLVFINDITEM)
     #define HAVE_NMLVFINDITEM 1
 #elif defined(__DMC__) || defined(NM_FINDITEM)
-    #define HAVE_NM_FINDITEM 1
+    #define HAVE_NMLVFINDITEM 1
+    #define NMLVFINDITEM NM_FINDITEM
 #endif
 
 // ----------------------------------------------------------------------------
@@ -1092,6 +1093,24 @@ wxColour wxListCtrl::GetItemBackgroundColour( long item ) const
     return col;
 }
 
+void wxListCtrl::SetItemFont( long item, const wxFont &f )
+{
+    wxListItem info;
+    info.m_itemId = item;
+    info.SetFont( f );
+    SetItem( info );
+}
+
+wxFont wxListCtrl::GetItemFont( long item ) const
+{
+    wxFont f;
+    wxListItemInternalData *data = wxGetInternalData(this, item);
+    if ( data && data->attr )
+        f = data->attr->GetFont();
+
+    return f;
+}
+
 // Gets the number of selected items in the list control
 int wxListCtrl::GetSelectedItemCount() const
 {
@@ -2142,7 +2161,7 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
                 }
                 break;
 
-#if HAVE_NMLVFINDITEM || HAVE_NM_FINDITEM
+#ifdef HAVE_NMLVFINDITEM
             case LVN_ODFINDITEM:
                 // this message is only used with the virtual list control but
                 // even there we don't want to always use it: in a control with
@@ -2151,11 +2170,7 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
                 // application waiting while it performs linear search
                 if ( IsVirtual() && GetItemCount() <= 1000 )
                 {
-#if HAVE_NMLVFINDITEM
                     NMLVFINDITEM* pFindInfo = (NMLVFINDITEM*)lParam;
-#else
-                    NM_FINDITEM* pFindInfo = (NM_FINDITEM*)lParam;
-#endif
 
                     // no match by default
                     *result = -1;
@@ -2216,7 +2231,7 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
                     processed = false;
                 }
                 break;
-#endif // HAVE_NMLVFINDITEM || HAVE_NM_FINDITEM
+#endif // HAVE_NMLVFINDITEM
 
             case LVN_GETDISPINFO:
                 if ( IsVirtual() )
@@ -2290,7 +2305,7 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
 
         case LVN_ENDLABELEDITA:
         case LVN_ENDLABELEDITW:
-            // logic here is inversed compared to all the other messages
+            // logic here is inverted compared to all the other messages
             *result = event.IsAllowed();
 
             // don't keep a stale wxTextCtrl around
@@ -2810,7 +2825,8 @@ static void wxConvertToMSWListCol(int WXUNUSED(col), const wxListItem& item,
             //
             // we don't use LVCFMT_COL_HAS_IMAGES because it doesn't seem to
             // make any difference in my tests -- but maybe we should?
-            lvCol.fmt |= LVCFMT_BITMAP_ON_RIGHT | LVCFMT_IMAGE;
+            if ( item.m_image != -1 )
+                lvCol.fmt |= LVCFMT_BITMAP_ON_RIGHT | LVCFMT_IMAGE;
 
             lvCol.iImage = item.m_image;
         }