X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f029f1d15b04dd70522008cdf105be87140fabc6..aacd4b50d35ae61a89dfbe83d5c84fa3c66386b6:/src/generic/datavgen.cpp diff --git a/src/generic/datavgen.cpp b/src/generic/datavgen.cpp index 9fcf58d70b..0d0b1ad120 100644 --- a/src/generic/datavgen.cpp +++ b/src/generic/datavgen.cpp @@ -63,7 +63,10 @@ static const int EXPANDER_MARGIN = 4; // wxDataViewHeaderWindow //----------------------------------------------------------------------------- -#define USE_NATIVE_HEADER_WINDOW 1 +// on wxMSW the header window (only that part however) can be made native! +#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__) + #define USE_NATIVE_HEADER_WINDOW +#endif //Below is the compare stuff //For the generic implements, both the leaf nodes and the nodes are sorted for fast search when needed @@ -109,8 +112,7 @@ protected: void SendEvent(wxEventType type, unsigned int n); }; -// on wxMSW the header window (only that part however) can be made native! -#if defined(__WXMSW__) && USE_NATIVE_HEADER_WINDOW +#ifdef USE_NATIVE_HEADER_WINDOW #define COLUMN_WIDTH_OFFSET 2 #define wxDataViewHeaderWindowMSW wxDataViewHeaderWindow @@ -1148,7 +1150,7 @@ wxDataViewColumn::wxDataViewColumn( const wxString &title, wxDataViewRenderer *c SetFlags(flags); m_autosize = width < 0; // TODO - + Init(width < 0 ? wxDVC_DEFAULT_WIDTH : width); } @@ -1265,7 +1267,7 @@ void wxDataViewHeaderWindowBase::SendEvent(wxEventType type, unsigned int n) parent->GetEventHandler()->ProcessEvent(le); } -#if defined(__WXMSW__) && USE_NATIVE_HEADER_WINDOW +#ifdef USE_NATIVE_HEADER_WINDOW #ifndef HDS_DRAGDROP #define HDS_DRAGDROP 0x0040 @@ -3703,10 +3705,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()) {