本文整理汇总了C++中wxList::GetFirst方法的典型用法代码示例。如果您正苦于以下问题:C++ wxList::GetFirst方法的具体用法?C++ wxList::GetFirst怎么用?C++ wxList::GetFirst使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类wxList
的用法示例。
在下文中一共展示了wxList::GetFirst方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ClearSplineList
static void ClearSplineList()
{
wxList::compatibility_iterator node = ocpn_wx_spline_point_list.GetFirst();
while (node)
{
wxPoint *point = (wxPoint *)node->GetData();
delete point;
ocpn_wx_spline_point_list.Erase(node);
node = ocpn_wx_spline_point_list.GetFirst();
}
}
示例2: wx_spline_draw_point_array
static void wx_spline_draw_point_array(wxDCBase *dc)
{
dc->DrawLines(&wx_spline_point_list, 0, 0 );
wxList::compatibility_iterator node = wx_spline_point_list.GetFirst();
while (node)
{
wxPoint *point = (wxPoint *)node->GetData();
delete point;
wx_spline_point_list.Erase(node);
node = wx_spline_point_list.GetFirst();
}
}
示例3: DoCut
void csDiagramView::DoCut(wxList& shapes)
{
csDiagramDocument *doc = (csDiagramDocument *)GetDocument();
if (shapes.GetCount() > 0)
{
csDiagramCommand* cmd = new csDiagramCommand(_T("Cut"), doc);
wxObjectList::compatibility_iterator node = shapes.GetFirst();
while (node)
{
wxShape *theShape = (wxShape*) node->GetData();
csCommandState* state = new csCommandState(ID_CS_CUT, NULL, theShape);
// Insert lines at the front, so they are cut first.
// Otherwise we may try to remove a shape with a line still
// attached.
if (theShape->IsKindOf(CLASSINFO(wxLineShape)))
cmd->InsertState(state);
else
cmd->AddState(state);
node = node->GetNext();
}
cmd->RemoveLines(); // Schedule any connected lines, not already mentioned,
// to be removed first
doc->GetCommandProcessor()->Submit(cmd);
}
}
示例4: OnClose
void MyFrame::OnClose(wxCloseEvent& event)
{
if ( !event.CanVeto() )
{
event.Skip();
return ;
}
if ( m_children.GetCount () < 1 )
{
event.Skip();
return ;
}
// now try the children
wxObjectList::compatibility_iterator pNode = m_children.GetFirst ();
wxObjectList::compatibility_iterator pNext ;
MyChild * pChild ;
while ( pNode )
{
pNext = pNode -> GetNext ();
pChild = (MyChild*) pNode -> GetData ();
if (pChild -> Close ())
{
m_children.Erase(pNode) ;
}
else
{
event.Veto();
return;
}
pNode = pNext ;
}
event.Skip();
}
示例5: DestroyItemList
void GarbageCollector::DestroyItemList( wxList& lst )
{
wxNode* pNode = lst.GetFirst();
while( pNode )
{
delete &node_to_item( pNode );
pNode = pNode->GetNext();
}
lst.Clear();
}
示例6: while
void wxFontRefData::ClearX11Fonts()
{
#if wxUSE_UNICODE
#else
wxList::compatibility_iterator node = m_fonts.GetFirst();
while (node)
{
wxXFont* f = (wxXFont*) node->GetData();
delete f;
node = node->GetNext();
}
m_fonts.Clear();
#endif
}
示例7: DoCmd
// Generalised command
void csDiagramView::DoCmd(wxList& shapes, wxList& oldShapes, int cmd, const wxString& op)
{
csDiagramDocument *doc = (csDiagramDocument *)GetDocument();
if (shapes.GetCount() > 0)
{
csDiagramCommand* command = new csDiagramCommand(op, doc);
wxObjectList::compatibility_iterator node = shapes.GetFirst();
wxObjectList::compatibility_iterator node1 = oldShapes.GetFirst();
while (node && node1)
{
wxShape *theShape = (wxShape*) node->GetData();
wxShape *oldShape = (wxShape*) node1->GetData();
csCommandState* state = new csCommandState(cmd, theShape, oldShape);
command->AddState(state);
node = node->GetNext();
node1 = node1->GetNext();
}
doc->GetCommandProcessor()->Submit(command);
}
}
示例8: wxT
wxOGLConstraint::wxOGLConstraint(int type, wxShape *constraining, wxList &constrained)
{
m_xSpacing = 0.0;
m_ySpacing = 0.0;
m_constraintType = type;
m_constrainingObject = constraining;
m_constraintId = 0;
m_constraintName = wxT("noname");
wxNode *node = constrained.GetFirst();
while (node)
{
m_constrainedObjects.Append(node->GetData());
node = node->GetNext();
}
}
示例9: defined
void wxFontRefData::ClearX11Fonts()
{
#if wxUSE_UNICODE
#else
wxList::compatibility_iterator node = m_fonts.GetFirst();
#if defined(__INTEL_COMPILER) && 1 /* VDM auto patch */
# pragma ivdep
# pragma swp
# pragma unroll
# pragma prefetch
# if 0
# pragma simd noassert
# endif
#endif /* VDM auto patch */
while (node)
{
wxXFont* f = (wxXFont*) node->GetData();
delete f;
node = node->GetNext();
}
m_fonts.Clear();
#endif
}
示例10: drawIsoLine
//.........这里部分代码省略.........
wxPoint ab;
GetCanvasPixLL(vp, &ab, seg->py1, seg->px1);
wxPoint cd;
GetCanvasPixLL(vp, &cd, seg->py2, seg->px2);
if(dc) {
#if wxUSE_GRAPHICS_CONTEXT
if(bHiDef && pgc)
pgc->StrokeLine(ab.x, ab.y, cd.x, cd.y);
else
#endif
dc->DrawLine(ab.x, ab.y, cd.x, cd.y);
} else { /* opengl */
#ifdef ocpnUSE_GL
glVertex2d(ab.x, ab.y);
glVertex2d(cd.x, cd.y);
#endif
}
}
#if 0
int text_sx, text_sy;
dc.GetTextExtent(_T("10000"), &text_sx, &text_sy);
// double m = text_sy / 2;
int label_size = text_sx;
int label_space = 400;
// double coef = .01;
int len = label_space/4;
// Allocate an array big enough
wxPoint *pPoints = new wxPoint[nsegs+1];
MySegListList::Node *listnode;
listnode = m_SegListList.GetFirst();
while(listnode)
{
MySegList *listsort = listnode->GetData();
// Fill in the array
MySegList::Node *node;
Segment *seg;
node = listsort->GetFirst();
if(node)
{
seg = node->GetData();
// wxPoint ab = vp->GetMercatorPixFromLL(seg->py1, seg->px1);
// wxPoint ab(0,0);
wxPoint ab;
GetCanvasPixLL(vp, &ab, seg->py1, seg->px1);
pPoints[0] = ab;
}
int ip=1;
while (node)
{
seg = node->GetData();
// wxPoint cd = vp->GetMercatorPixFromLL(seg->py2, seg->px2);
// wxPoint cd(0,0);
wxPoint cd;
GetCanvasPixLL(vp, &cd, seg->py2, seg->px2);
pPoints[ip++] = cd;
node=node->GetNext();
}
示例11: DoRepositionItems
void cbGCUpdatesMgr::DoRepositionItems( wxList& items )
{
wxNode* pNode1 = items.GetFirst();
while( pNode1 )
{
cbRectInfo& info = node_to_rect_info( pNode1 );
wxNode* pNode2 = items.GetFirst();
// and node itself
mGC.AddObject( &info );
while( pNode2 )
{
if ( pNode2 != pNode1 ) // node should not depend on itself
{
// Add references to objects on which this object
// depends. Dependency here indicates intersection of current
// bounds of this object with the initial bounds of the
// other object.
cbRectInfo& otherInfo = node_to_rect_info( pNode2 );
if ( rect_hits_rect( *info.mpCurBounds, *otherInfo.mpPrevBounds ) )
// the node depends on node
mGC.AddDependency( &info, &otherInfo );
}
pNode2 = pNode2->GetNext();
}
pNode1 = pNode1->GetNext();
}
mGC.ArrangeCollection(); // order nodes according "least-dependency" rule,
// and find out cycled chains
// Regular item nodes need to be resized, but not repainted (since
// they stand in linear (not cyclic) dependency with other
// regular nodes).
wxNode* pNode = mGC.GetRegularObjects().GetFirst();
while ( pNode )
{
cbRectInfo& info = *((cbRectInfo*)gc_node_to_obj(pNode));
if ( info.mpBar == NULL )
mpLayout->PositionClientWindow();
else
info.mpPane->SizeBar( info.mpBar );
pNode = pNode->GetNext();
}
// cycled item nodes, need to be both resized and repainted
pNode = mGC.GetCycledObjects().GetFirst();
while ( pNode )
{
cbRectInfo& info = *((cbRectInfo*)gc_node_to_obj(pNode));
if ( info.mpBar == NULL )
{
wxWindow* pClntWnd = mpLayout->GetFrameClient();
mpLayout->PositionClientWindow();
// FIXME FIXME:: excessive!
pClntWnd->Show( false );
pClntWnd->Show( true );
// OLD STUFF:: mpLayout->PositionClientWindow();
}
else
if ( info.mpBar->mpBarWnd )
{
wxWindow* pWnd = info.mpBar->mpBarWnd;
// resize
info.mpPane->SizeBar( info.mpBar );
// repaint
/* OLD STUFF:: bool isChoice = info.mpBar->IsKindOf( CLASSINFO( wxChoice ) );
//#ifdef __WINDOWS__
//int result = ::SendMessage( (HWND)pWnd->m_hWnd, WM_NCPAINT, 0, 0 );
//#endif
*/
// FIXME FIXME:: there's no other way to repaint non-client area of the wxWindow!!
// so we do *excessive* "hide 'n show"
//.........这里部分代码省略.........
示例12: drawIsoLine
//---------------------------------------------------------------
void IsoLine::drawIsoLine(GRIBOverlayFactory *pof, wxDC &dc, PlugIn_ViewPort *vp, bool bShowLabels, bool bHiDef)
{
int nsegs = trace.size();
if(nsegs < 1)
return;
GetGlobalColor ( _T ( "UITX1" ), &isoLineColor );
wxPen ppISO ( isoLineColor, 2 );
#if wxUSE_GRAPHICS_CONTEXT
wxMemoryDC *pmdc;
// pmdc = dynamic_cast<wxMemoryDC*>(&dc);
pmdc= wxDynamicCast(&dc, wxMemoryDC);
wxGraphicsContext *pgc = wxGraphicsContext::Create(*pmdc);
pgc->SetPen(ppISO);
#endif
dc.SetPen(ppISO);
std::list<Segment *>::iterator it;
//---------------------------------------------------------
// Dessine les segments
//---------------------------------------------------------
for (it=trace.begin(); it!=trace.end(); it++)
{
Segment *seg = *it;
{
// wxPoint ab = vp->GetMercatorPixFromLL(seg->py1, seg->px1);
// wxPoint cd = vp->GetMercatorPixFromLL(seg->py2, seg->px2);
wxPoint ab;
GetCanvasPixLL(vp, &ab, seg->py1, seg->px1);
wxPoint cd;
GetCanvasPixLL(vp, &cd, seg->py2, seg->px2);
/// ClipResult res = cohen_sutherland_line_clip_i ( &ab.x, &ab.y, &cd.x, &cd.y,
/// 0, vp->pix_width, 0, vp->pix_height );
/// if ( res != Invisible )
{
#if wxUSE_GRAPHICS_CONTEXT
if(bHiDef && pgc)
pgc->StrokeLine(ab.x, ab.y, cd.x, cd.y);
else
dc.DrawLine(ab.x, ab.y, cd.x, cd.y);
#else
dc.DrawLine(ab.x, ab.y, cd.x, cd.y);
#endif
}
}
}
//#endif
int text_sx, text_sy;
dc.GetTextExtent(_T("10000"), &text_sx, &text_sy);
// double m = text_sy / 2;
int label_size = text_sx;
int label_space = 400;
// double coef = .01;
int len = label_space/4;
// Allocate an array big enough
wxPoint *pPoints = new wxPoint[nsegs+1];
MySegListList::Node *listnode;
listnode = m_SegListList.GetFirst();
while(listnode)
{
MySegList *listsort = listnode->GetData();
// Fill in the array
MySegList::Node *node;
Segment *seg;
node = listsort->GetFirst();
if(node)
{
seg = node->GetData();
// wxPoint ab = vp->GetMercatorPixFromLL(seg->py1, seg->px1);
// wxPoint ab(0,0);
wxPoint ab;
GetCanvasPixLL(vp, &ab, seg->py1, seg->px1);
pPoints[0] = ab;
}
int ip=1;
while (node)
{
seg = node->GetData();
// wxPoint cd = vp->GetMercatorPixFromLL(seg->py2, seg->px2);
// wxPoint cd(0,0);
wxPoint cd;
GetCanvasPixLL(vp, &cd, seg->py2, seg->px2);
pPoints[ip++] = cd;
//.........这里部分代码省略.........