146 lines
4.0 KiB
C++
146 lines
4.0 KiB
C++
|
/*************************/
|
||
|
/* 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 <wx/wx.h>
|
||
|
#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);
|
||
|
}
|
||
|
|
||
|
|
||
|
|