class WXDLLEXPORT wxGenericTreeItem;
-WX_DEFINE_ARRAY(wxGenericTreeItem *, wxArrayGenericTreeItems);
+WX_DEFINE_EXPORTED_ARRAY(wxGenericTreeItem *, wxArrayGenericTreeItems);
//WX_DEFINE_OBJARRAY(wxArrayTreeItemIds);
// ----------------------------------------------------------------------------
// We have to call this here because the label in
// question might just have been added and no screen
// update taken place.
- if (m_dirty) wxYield();
+ if (m_dirty) wxYieldIfNeeded();
wxGenericTreeItem *gitem = (wxGenericTreeItem*) item.m_pItem;
// We have to call this here because the label in
// question might just have been added and no screen
// update taken place.
- if (m_dirty) wxYield();
+ if (m_dirty) wxYieldIfNeeded();
wxClientDC dc(this);
PrepareDC(dc);
if (point.y<0) flags|=wxTREE_HITTEST_ABOVE;
if (point.y>h) flags|=wxTREE_HITTEST_BELOW;
- return m_anchor->HitTest( wxPoint(x, y), this, flags);
+ if (m_anchor)
+ return m_anchor->HitTest( wxPoint(x, y), this, flags);
+ else
+ return wxTreeItemId();
}
// get the bounding rectangle of the item (or of its label only)
// We have to call this here because the label in
// question might just have been added and no screen
// update taken place.
- if (m_dirty) wxYield();
+ if (m_dirty) wxYieldIfNeeded();
wxString s = m_currentEdit->GetText();
int x = m_currentEdit->GetX();
// highlight the current drop target if any
DrawDropEffect(m_dropTarget);
- wxYield();
+ wxYieldIfNeeded();
}
}
else if ( (event.LeftUp() || event.RightUp()) && m_isDragging )
SetCursor(m_oldCursor);
- wxYield();
+ wxYieldIfNeeded();
}
else
{
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 );
}