]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/datavgen.cpp
revised the first two interface headers
[wxWidgets.git] / src / generic / datavgen.cpp
index 9fcf58d70bcb5886c23804775cac0d1af333ee76..12420c5dde5ac5aa3a0721014e3ef85784a93f84 100644 (file)
@@ -63,7 +63,7 @@ static const int EXPANDER_MARGIN = 4;
 // wxDataViewHeaderWindow
 //-----------------------------------------------------------------------------
 
-#define USE_NATIVE_HEADER_WINDOW    1
+#define USE_NATIVE_HEADER_WINDOW    !defined(__WXUNIVERSAL__)
 
 //Below is the compare stuff
 //For the generic implements, both the leaf nodes and the nodes are sorted for fast search when needed
@@ -1148,7 +1148,7 @@ wxDataViewColumn::wxDataViewColumn( const wxString &title, wxDataViewRenderer *c
     SetFlags(flags);
 
     m_autosize = width < 0;  // TODO
-    
+
     Init(width < 0 ? wxDVC_DEFAULT_WIDTH : width);
 }
 
@@ -3703,10 +3703,22 @@ void wxDataViewMainWindow::OnMouse( wxMouseEvent &event )
         }
 
         // notify cell about right click
-        // cell->...
-
-        // Allow generation of context menu event
-        event.Skip();
+        wxVariant value;
+        model->GetValue( value, item, col->GetModelColumn() );
+        cell->SetValue( value );
+        wxRect cell_rect( xpos, current * m_lineHeight,
+                          col->GetWidth(), m_lineHeight );
+        if (!cell->RightClick( event.GetPosition(), cell_rect, model, item, col->GetModelColumn()))
+        {
+            wxWindow *parent = GetParent();
+            wxDataViewEvent le(wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU, parent->GetId());
+            le.SetItem( item );
+            le.SetEventObject(parent);
+            le.SetModel(GetOwner()->GetModel());
+            le.SetValue(value);
+
+            parent->GetEventHandler()->ProcessEvent(le);
+        }
     }
     else if (event.MiddleDown())
     {