VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src/Main/Forms/WaitDialog.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Main/Forms/WaitDialog.h')
-rw-r--r--src/Main/Forms/WaitDialog.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/Main/Forms/WaitDialog.h b/src/Main/Forms/WaitDialog.h
index 89de8718..53f5048b 100644
--- a/src/Main/Forms/WaitDialog.h
+++ b/src/Main/Forms/WaitDialog.h
@@ -53,61 +53,61 @@ namespace VeraCrypt
WaitStaticText->SetLabel (label);
WaitProgessBar->Pulse();
Layout();
GetSizer()->Fit( this );
Centre( wxBOTH );
Connect( wxID_ANY, wxEVT_COMMAND_WAITDIALOGTHREAD_COMPLETED, wxCommandEventHandler( WaitDialog::OnThreadCompletion ) );
Connect( wxID_ANY, wxEVT_COMMAND_WAITDIALOG_ADMIN_PASSWORD, wxCommandEventHandler( WaitDialog::OnAdminPasswordRequest ) );
Connect( wxID_ANY, wxEVT_COMMAND_WAITDIALOG_PIN, wxCommandEventHandler( WaitDialog::OnPinRequest ) );
Connect( wxID_ANY, wxEVT_COMMAND_WAITDIALOG_SHOW_MSG, wxCommandEventHandler( WaitDialog::OnShowMsg ) );
Connect( wxEVT_TIMER, wxTimerEventHandler( WaitDialog::OnProgressTimer ), NULL, this );
m_thread = new WaitThread(this, pRoutine);
}
~WaitDialog()
{
Disconnect( wxEVT_TIMER, wxTimerEventHandler( WaitDialog::OnProgressTimer ));
Disconnect( wxID_ANY, wxEVT_COMMAND_WAITDIALOGTHREAD_COMPLETED, wxCommandEventHandler( WaitDialog::OnThreadCompletion ) );
Disconnect( wxID_ANY, wxEVT_COMMAND_WAITDIALOG_ADMIN_PASSWORD, wxCommandEventHandler( WaitDialog::OnAdminPasswordRequest ) );
Disconnect( wxID_ANY, wxEVT_COMMAND_WAITDIALOG_PIN, wxCommandEventHandler( WaitDialog::OnPinRequest ) );
Disconnect( wxID_ANY, wxEVT_COMMAND_WAITDIALOG_SHOW_MSG, wxCommandEventHandler( WaitDialog::OnShowMsg ) );
}
virtual void OnWaitDialogInit( wxInitDialogEvent& event )
{
m_thread->Run();
m_timer.Start(100);
m_bThreadRunning = true;
}
- int GetCharWidth (wxWindow *window) const
+ static int ComputeCharWidth (wxWindow *window)
{
int width;
int height;
window->GetTextExtent (L"a", &width, &height);
if (width < 1)
return 7;
return width;
}
class ShowMessageParam
{
public:
wxString m_message;
wxString m_caption;
long m_style;
bool m_topMost;
ShowMessageParam(const wxString &message, const wxString &caption,long style, bool topMost)
: m_message(message), m_caption(caption), m_style(style), m_topMost(topMost)
{}
};
int RequestShowMessage (const wxString &message, const wxString &caption,long style, bool topMost)
{
long lResult = -1;
if (m_queue.IsOk())
{
wxString sResult;
ShowMessageParam* pParam = new ShowMessageParam(message, caption, style, topMost);
@@ -152,61 +152,61 @@ namespace VeraCrypt
{
event.Veto ();
}
else
event.Skip ();
}
void OnThreadCompletion(wxCommandEvent &)
{
m_bThreadRunning = false;
m_queue.Clear();
EndModal(0);
}
void OnAdminPasswordRequest(wxCommandEvent &)
{
wxPasswordEntryDialog dialog (this, LangString["LINUX_ADMIN_PW_QUERY"], LangString["LINUX_ADMIN_PW_QUERY_TITLE"]);
if (dialog.ShowModal() != wxID_OK)
m_queue.Post(wxT(""));
else
m_queue.Post(dialog.GetValue());
}
void OnPinRequest(wxCommandEvent &e)
{
wxPasswordEntryDialog dialog (this, wxString::Format (LangString["ENTER_TOKEN_PASSWORD"], e.GetString()), LangString["IDD_TOKEN_PASSWORD"]);
- dialog.SetSize (wxSize (GetCharWidth (&dialog) * 50, -1));
+ dialog.SetSize (wxSize (ComputeCharWidth (&dialog) * 50, -1));
if (dialog.ShowModal() != wxID_OK)
m_queue.Post(wxT(""));
else
m_queue.Post(dialog.GetValue());
}
void OnShowMsg(wxCommandEvent &e)
{
ShowMessageParam* pParam = (ShowMessageParam*) e.GetClientData();
if (pParam->m_topMost)
{
if (!IsActive())
RequestUserAttention (wxUSER_ATTENTION_ERROR);
pParam->m_style |= wxSTAY_ON_TOP;
}
wxMessageDialog cur(this, pParam->m_message, pParam->m_caption, pParam->m_style);
cur.SetYesNoLabels(LangString["UISTR_YES"], LangString["UISTR_NO"]);
int iResult = (cur.ShowModal() == wxID_YES ? wxYES : wxNO);
delete pParam;
m_queue.Post(wxString::Format(wxT("%d"), iResult));
}
void OnProgressTimer(wxTimerEvent& event)
{
WaitProgessBar->Pulse();
}
virtual void Run(void) { ShowModal(); if (m_pRoutine->HasException()) ThrowException(m_pRoutine->m_pException); }