void RefreshLine( wxListLineData *line );
void OnPaint( wxPaintEvent &event );
void HilightAll( bool on );
- void SendNotify( wxListLineData *line, wxEventType command );
+ void SendNotify( wxListLineData *line,
+ wxEventType command,
+ wxPoint point = wxDefaultPosition );
void FocusLine( wxListLineData *line );
void UnfocusLine( wxListLineData *line );
void SelectLine( wxListLineData *line );
x = dc->XLOG2DEV( x );
- gtk_paint_box (m_wxwindow->style, GTK_PIZZA(m_wxwindow)->bin_window, state, GTK_SHADOW_OUT,
- (GdkRectangle*) NULL, m_wxwindow, "button", x-1, y-1, w+2, h+2);
+ gtk_paint_box (m_wxwindow->style, GTK_PIZZA(m_wxwindow)->bin_window, state, GTK_SHADOW_OUT,
+ (GdkRectangle*) NULL, m_wxwindow, "button", x-1, y-1, w+2, h+2);
#else
const int m_corner = 1;
}
}
-void wxListMainWindow::SendNotify( wxListLineData *line, wxEventType command )
+void wxListMainWindow::SendNotify( wxListLineData *line,
+ wxEventType command,
+ wxPoint point )
{
wxListEvent le( command, GetParent()->GetId() );
le.SetEventObject( GetParent() );
le.m_itemIndex = GetIndexOfLine( line );
+
+ // set only for events which have position
+ if ( point != wxDefaultPosition )
+ le.m_pointDrag = point;
+
line->GetItem( 0, le.m_item );
GetParent()->GetEventHandler()->ProcessEvent( le );
// GetParent()->GetEventHandler()->AddPendingEvent( le );
if (m_dragCount != 3) return;
- int command = wxEVT_COMMAND_LIST_BEGIN_DRAG;
- if (event.RightIsDown()) command = wxEVT_COMMAND_LIST_BEGIN_RDRAG;
+ int command = event.RightIsDown() ? wxEVT_COMMAND_LIST_BEGIN_RDRAG
+ : wxEVT_COMMAND_LIST_BEGIN_DRAG;
wxListEvent le( command, GetParent()->GetId() );
le.SetEventObject( GetParent() );
if (event.RightDown())
{
- SendNotify( line, wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK );
+ SendNotify( line, wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK,
+ event.GetPosition() );
return;
}
wxTreeEvent nevent(wxEVT_COMMAND_TREE_ITEM_RIGHT_CLICK, GetId());
nevent.m_item = (long) item;
nevent.m_code = 0;
- nevent.m_pointDrag = wxPoint(x, y);
+ CalcScrolledPosition(x, y,
+ &nevent.m_pointDrag.x,
+ &nevent.m_pointDrag.y);
nevent.SetEventObject(this);
GetEventHandler()->ProcessEvent(nevent);
}
wxTreeEvent nevent( wxEVT_COMMAND_TREE_ITEM_ACTIVATED, GetId() );
nevent.m_item = (long) item;
nevent.m_code = 0;
- nevent.m_pointDrag = wxPoint(x, y);
+ CalcScrolledPosition(x, y,
+ &nevent.m_pointDrag.x,
+ &nevent.m_pointDrag.y);
nevent.SetEventObject( this );
GetEventHandler()->ProcessEvent( nevent );
}