Пример #1
0
void wxCurlTransferDialog::EndModal(int retCode)
{
    wxDialog::EndModal(retCode);

    // before dying we must be sure our thread has completed, too
    // otherwise it will try to send events to a non-existent handler
    // NB: this must be done *after* calling wxDialog::EndModal
    //     so that while we wait we are hidden
    HandleCurlThreadError(m_pThread->Wait(), m_pThread);
}
Пример #2
0
bool wxCurlUploadDialog::Create(const wxString &url, wxInputStream *in,
                                  const wxString& title, const wxString& message,
                                  const wxBitmap& bitmap,
                                  wxWindow *parent, long style)
{
    if (!wxCurlTransferDialog::Create(url, title, message, wxS("Uploaded:"), bitmap, parent, style))
        return false;

    // register as the thread's event handler
    wxCurlUploadThread *thread = new wxCurlUploadThread(this, ThreadId);

    m_pThread = thread;     // downcast our pointer for usage by wxCurlTransferDialog

    if (!HandleCurlThreadError(thread->SetURL(url), thread, url))
        return false;
    if (!HandleCurlThreadError(thread->SetInputStream(in), thread))
        return false;

    return true;
}
Пример #3
0
void wxCurlTransferDialog::OnStart(wxCommandEvent &WXUNUSED(ev))
{
    //wxASSERT(HasFlag(wxCTDS_CAN_START));      // OnStart() must be usable also from RunModal() when !HasFlag(wxCTDS_CAN_START)

    wxCurlThreadError err = m_pThread->StartTransfer();
    if (err != wxCTE_NO_ERROR)
    {
        HandleCurlThreadError(err, m_pThread);     // shows a message to the user
        m_pThread->Abort();
        EndModal(wxCDRF_FAILED);
    }
}
Пример #4
0
void wxCurlTransferDialog::OnPauseResume(wxCommandEvent &WXUNUSED(ev))
{
    wxASSERT(HasFlag(wxCTDS_CAN_PAUSE));

    if (m_pThread->IsRunning())
    {
        if (HandleCurlThreadError(m_pThread->Pause(), m_pThread))
        {
            FindWindowById(PauseResumeButtonId)->SetLabel(wxS("Resume"));

            if (m_pSpeed)
                m_pSpeed->SetLabel(wxS("0 (transfer paused)"));
        }
    }
    else
    {
        if (HandleCurlThreadError(m_pThread->Resume(), m_pThread))
        {
            FindWindowById(PauseResumeButtonId)->SetLabel(wxS("Pause"));
        }
    }
}