/*************************/ /* Menu " CONFIRMATION " */ /* fonction Get_Message */ /* test demande ESC */ /*************************/ // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" #ifdef __BORLANDC__ #pragma hdrstop #endif // for all others, include the necessary headers (this file is usually all you // need because it includes almost all "standard" wxWindows headers #ifndef WX_PRECOMP #include #endif #include "fctsys.h" #include "common.h" enum id_dialog { ID_TIMOUT = 1500 }; /* Classe d'affichage de messages, identique a wxMessageDialog, mais pouvant etre effacee au bout d'un time out donne */ class WinEDA_MessageDialog: public wxMessageDialog { public: int m_LifeTime; private: wxTimer m_Timer; public: WinEDA_MessageDialog(wxWindow * parent, const wxString & msg, const wxString & title, int style, int lifetime); ~WinEDA_MessageDialog(){}; void OnTimeOut(wxTimerEvent& event); DECLARE_EVENT_TABLE() }; BEGIN_EVENT_TABLE(WinEDA_MessageDialog, wxMessageDialog) EVT_TIMER(ID_TIMOUT, WinEDA_MessageDialog::OnTimeOut) END_EVENT_TABLE() /**********************************************************************************/ WinEDA_MessageDialog::WinEDA_MessageDialog(wxWindow * parent, const wxString & msg, const wxString & title, int style, int lifetime) : wxMessageDialog(parent, msg, title, style) /**********************************************************************************/ { m_LifeTime = lifetime; m_Timer.SetOwner(this,ID_TIMOUT); if ( m_LifeTime > 0 ) m_Timer.Start(100*m_LifeTime, wxTIMER_ONE_SHOT); // m_LifeTime = duree en 0.1 secondes } /********************************************************/ void WinEDA_MessageDialog::OnTimeOut(wxTimerEvent& event) /********************************************************/ { // TODO : EndModal() request } /*****************************************************************************/ void DisplayError(wxWindow * parent, const wxString & text, int displaytime ) /*****************************************************************************/ /* Affiche un Message d'Erreur ou d'avertissement. si warn > 0 le dialogue disparait apres warn 0.1 secondes */ { wxMessageDialog * dialog; if ( displaytime > 0 ) dialog = new WinEDA_MessageDialog(parent, text, _("Warning"), wxOK | wxICON_INFORMATION | wxSTAY_ON_TOP, displaytime); else dialog = new WinEDA_MessageDialog(parent, text, _("Error"), wxOK | wxICON_EXCLAMATION | wxSTAY_ON_TOP, 0); dialog->ShowModal(); dialog->Destroy(); } /**************************************************************************/ void DisplayInfo(wxWindow * parent, const wxString & text, int displaytime) /**************************************************************************/ /* Affiche un Message d'information. */ { wxMessageDialog * dialog; dialog = new WinEDA_MessageDialog(parent, text, _("Infos:"), wxOK | wxICON_INFORMATION | wxSTAY_ON_TOP, displaytime); dialog->ShowModal(); dialog->Destroy(); } /**************************************************/ bool IsOK(wxWindow * parent, const wxString & text) /**************************************************/ { int ii; ii = wxMessageBox(text, _("Confirmation"), wxYES_NO|wxCENTRE|wxICON_HAND, parent); if (ii == wxYES) return TRUE; return FALSE; } /***********************************************************************/ int Get_Message(const wxString & title, wxString & buffer, wxWindow * frame) /***********************************************************************/ /* Get a text from user titre = titre a afficher buffer : text enter by user leading and trailing spaces are removed if buffer != "" buffer is displayed return: 0 if OK != 0 if ESCAPE */ { wxString message, default_text; if ( buffer ) default_text = buffer; message = wxGetTextFromUser(title, _("Text:"), default_text, frame); if ( !message.IsEmpty() ) { message.Trim(FALSE); // Remove blanks at beginning message.Trim(TRUE); // Remove blanks at end buffer = message; return 0; } return(1); }