bool wxProgressDialog::Update(int value, const wxString& newmsg, bool *skip) { if(!m_prgFrame) return false; if(!newmsg.empty()) m_msg = newmsg; m_cur = value; EventType event; ProgressType *prg = (ProgressType *)m_prgFrame; do { EvtGetEvent(&event, 0); Boolean handled = PrgHandleEvent(prg, &event); if (!PrgHandleEvent(prg, &event)) if( PrgUserCancel(prg) ) return false; } while(event.eType != sysEventNilEvent); PrgUpdateDialog(prg, 0, 0, "", true); m_activeSkip = m_canSkip && true; return true; }
Err PrvProcessEvents(FlickrSocketContext& context, UInt16 timeout) { Err err = errNone; EventType event; if (timeout || EvtEventAvail()) { EvtGetEvent(&event, timeout); if (!FlickrHandleEvent(context.libRefNum, &event) && NULL != context.progress) PrgHandleEvent(context.progress, &event); // update progress before waiting... } else if (NULL != context.progress) PrgHandleEvent(context.progress, NULL); // update progress without event (for animation) if (NULL != context.progress) { err = context.progress->error; // check for a user cancel and handle it... if (PrgUserCancel(context.progress)) err = exgErrUserCancel; } return err; }