ClamAV is an open source (GPLv2) anti-virus toolkit.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
clamav/win32/clamav-for-windows/sigui/SigUI/GUIFrame.cpp

372 lines
19 KiB

///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Sep 8 2010)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif //__BORLANDC__
#ifndef WX_PRECOMP
#include <wx/wx.h>
#endif //WX_PRECOMP
#include "GUIFrame.h"
///////////////////////////////////////////////////////////////////////////
GUIFrame::GUIFrame( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style )
{
this->SetSizeHints( wxDefaultSize, wxDefaultSize );
this->SetExtraStyle( wxWS_EX_VALIDATE_RECURSIVELY );
statusBar = this->CreateStatusBar( 2, wxST_SIZEGRIP, wxID_ANY );
wxBoxSizer* bSizer1;
bSizer1 = new wxBoxSizer( wxVERTICAL );
tabs = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0|wxTAB_TRAVERSAL );
m_panel_updater = new wxPanel( tabs, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
wxBoxSizer* bSizer4;
bSizer4 = new wxBoxSizer( wxVERTICAL );
wxStaticBoxSizer* sbSizer1;
sbSizer1 = new wxStaticBoxSizer( new wxStaticBox( m_panel_updater, wxID_ANY, _("Proxy settings") ), wxVERTICAL );
gbSizer5 = new wxGridBagSizer( 0, 0 );
gbSizer5->SetFlexibleDirection( wxBOTH );
gbSizer5->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
m_proxy = new wxCheckBox( m_panel_updater, wxID_ANY, _("&Proxy required for Internet access"), wxDefaultPosition, wxDefaultSize, 0 );
m_proxy->SetToolTip( _("Configure freshclam to use a proxy for fetching the updates") );
gbSizer5->Add( m_proxy, wxGBPosition( 0, 0 ), wxGBSpan( 1, 2 ), wxALL, 5 );
m_staticText2 = new wxStaticText( m_panel_updater, wxID_ANY, _("Proxy server:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText2->Wrap( -1 );
gbSizer5->Add( m_staticText2, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALL, 5 );
m_proxy_server = new wxTextCtrl( m_panel_updater, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
m_proxy_server->Enable( false );
m_proxy_server->SetToolTip( _("hostname or IP address of proxy server") );
gbSizer5->Add( m_proxy_server, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALL|wxEXPAND, 5 );
m_staticText3 = new wxStaticText( m_panel_updater, wxID_ANY, _("Proxy port:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText3->Wrap( -1 );
gbSizer5->Add( m_staticText3, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxALL, 5 );
m_proxy_port = new wxSpinCtrl( m_panel_updater, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 65536, 3128 );
m_proxy_port->Enable( false );
m_proxy_port->SetToolTip( _("port of proxy server") );
gbSizer5->Add( m_proxy_port, wxGBPosition( 2, 1 ), wxGBSpan( 1, 1 ), wxALL|wxEXPAND, 5 );
m_proxyauth = new wxCheckBox( m_panel_updater, wxID_ANY, _("A&uthentication required"), wxDefaultPosition, wxDefaultSize, 0 );
m_proxyauth->Enable( false );
m_proxyauth->SetToolTip( _("Configure freshclam to authenticate to the proxy server") );
gbSizer5->Add( m_proxyauth, wxGBPosition( 3, 0 ), wxGBSpan( 1, 2 ), wxALL, 5 );
m_staticText4 = new wxStaticText( m_panel_updater, wxID_ANY, _("Proxy username:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText4->Wrap( -1 );
gbSizer5->Add( m_staticText4, wxGBPosition( 4, 0 ), wxGBSpan( 1, 1 ), wxALL, 5 );
m_proxy_user = new wxTextCtrl( m_panel_updater, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
m_proxy_user->Enable( false );
m_proxy_user->SetToolTip( _("username for proxy authentication") );
gbSizer5->Add( m_proxy_user, wxGBPosition( 4, 1 ), wxGBSpan( 1, 1 ), wxALL|wxEXPAND, 5 );
m_staticText5 = new wxStaticText( m_panel_updater, wxID_ANY, _("Proxy password:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText5->Wrap( -1 );
gbSizer5->Add( m_staticText5, wxGBPosition( 5, 0 ), wxGBSpan( 1, 1 ), wxALL, 5 );
m_proxy_password = new wxTextCtrl( m_panel_updater, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PASSWORD );
m_proxy_password->Enable( false );
m_proxy_password->SetToolTip( _("password for proxy authentication") );
gbSizer5->Add( m_proxy_password, wxGBPosition( 5, 1 ), wxGBSpan( 1, 1 ), wxALL|wxEXPAND, 5 );
m_proxy_autodet = new wxButton( m_panel_updater, wxID_ANY, _("R&etrieve system proxy settings"), wxDefaultPosition, wxDefaultSize, 0 );
m_proxy_autodet->SetToolTip( _("Copy system proxy setting to freshclam's") );
gbSizer5->Add( m_proxy_autodet, wxGBPosition( 6, 0 ), wxGBSpan( 1, 1 ), wxALL, 5 );
wxStaticText* m_customControl3 = new wxStaticText(m_panel_updater, wxID_ANY, wxT(""));
gbSizer5->AddGrowableCol(1);
gbSizer5->Add( m_customControl3, wxGBPosition( 6, 1 ), wxGBSpan( 1, 1 ), wxALL, 5 );
sbSizer1->Add( gbSizer5, 1, wxALL|wxEXPAND, 5 );
bSizer4->Add( sbSizer1, 0, wxALL|wxEXPAND, 5 );
wxStaticBoxSizer* sbSizer2;
sbSizer2 = new wxStaticBoxSizer( new wxStaticBox( m_panel_updater, wxID_ANY, _("Signature sources") ), wxVERTICAL );
wxFlexGridSizer* fgSizer1;
fgSizer1 = new wxFlexGridSizer( 2, 2, 0, 0 );
fgSizer1->AddGrowableCol( 1 );
fgSizer1->SetFlexibleDirection( wxBOTH );
fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
m_staticText6 = new wxStaticText( m_panel_updater, wxID_ANY, _("Download Official Signatures from mirror:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText6->Wrap( -1 );
fgSizer1->Add( m_staticText6, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
m_mirror = new wxComboBox( m_panel_updater, wxID_ANY, _("database.clamav.net"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
m_mirror->Append( _("db.at.clamav.net") );
m_mirror->Append( _("db.au.clamav.net") );
m_mirror->Append( _("db.ba.clamav.net") );
m_mirror->Append( _("db.br.clamav.net") );
m_mirror->Append( _("db.by.clamav.net") );
m_mirror->Append( _("db.ca.clamav.net") );
m_mirror->Append( _("db.ch.clamav.net") );
m_mirror->Append( _("db.cn.clamav.net") );
m_mirror->Append( _("db.cy.clamav.net") );
m_mirror->Append( _("db.cz.clamav.net") );
m_mirror->Append( _("db.de.clamav.net") );
m_mirror->Append( _("db.dk.clamav.net") );
m_mirror->Append( _("db.ee.clamav.net") );
m_mirror->Append( _("db.es.clamav.net") );
m_mirror->Append( _("db.fi.clamav.net") );
m_mirror->Append( _("db.fr.clamav.net") );
m_mirror->Append( _("db.gl.clamav.net") );
m_mirror->Append( _("db.gr.clamav.net") );
m_mirror->Append( _("db.hk.clamav.net") );
m_mirror->Append( _("db.hu.clamav.net") );
m_mirror->Append( _("db.id.clamav.net") );
m_mirror->Append( _("db.ie.clamav.net") );
m_mirror->Append( _("db.in.clamav.net") );
m_mirror->Append( _("db.it.clamav.net") );
m_mirror->Append( _("db.jp.clamav.net") );
m_mirror->Append( _("db.kr.clamav.net") );
m_mirror->Append( _("db.li.clamav.net") );
m_mirror->Append( _("db.lt.clamav.net") );
m_mirror->Append( _("db.mt.clamav.net") );
m_mirror->Append( _("db.nl.clamav.net") );
m_mirror->Append( _("db.no.clamav.net") );
m_mirror->Append( _("db.pl.clamav.net") );
m_mirror->Append( _("db.pt.clamav.net") );
m_mirror->Append( _("db.ro.clamav.net") );
m_mirror->Append( _("db.ru.clamav.net") );
m_mirror->Append( _("db.se.clamav.net") );
m_mirror->Append( _("db.si.clamav.net") );
m_mirror->Append( _("db.sk.clamav.net") );
m_mirror->Append( _("db.th.clamav.net") );
m_mirror->Append( _("db.tr.clamav.net") );
m_mirror->Append( _("db.tw.clamav.net") );
m_mirror->Append( _("db.ua.clamav.net") );
m_mirror->Append( _("db.uk.clamav.net") );
m_mirror->Append( _("db.us.clamav.net") );
m_mirror->Append( _("db.local.clamav.net") );
m_mirror->SetToolTip( _("Choose mirror (db.COUNTRYCODE.clamav.net)") );
fgSizer1->Add( m_mirror, 1, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
m_bytecode = new wxCheckBox( m_panel_updater, wxID_ANY, _("Official bytecode signatures"), wxDefaultPosition, wxDefaultSize, 0 );
m_bytecode->SetValue(true);
fgSizer1->Add( m_bytecode, 0, wxALL, 5 );
sbSizer2->Add( fgSizer1, 0, wxEXPAND, 5 );
wxStaticBoxSizer* sbSizer3;
sbSizer3 = new wxStaticBoxSizer( new wxStaticBox( m_panel_updater, wxID_ANY, _("Custom signature URLs") ), wxVERTICAL );
wxGridBagSizer* gbSizer6;
gbSizer6 = new wxGridBagSizer( 0, 0 );
gbSizer6->AddGrowableCol( 0 );
gbSizer6->AddGrowableRow( 2 );
gbSizer6->SetFlexibleDirection( wxBOTH );
gbSizer6->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
m_urls = new wxListBox( m_panel_updater, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_NEEDED_SB|wxLB_SINGLE );
m_urls->SetToolTip( _("URLs from where custom signatures are downloaded") );
gbSizer6->Add( m_urls, wxGBPosition( 0, 0 ), wxGBSpan( 3, 1 ), wxALL|wxEXPAND, 5 );
m_custom_add = new wxButton( m_panel_updater, wxID_ANY, _("&Add"), wxDefaultPosition, wxDefaultSize, 0 );
m_custom_add->SetToolTip( _("Add a new custom signature URL") );
gbSizer6->Add( m_custom_add, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALL, 5 );
m_custom_remove = new wxButton( m_panel_updater, wxID_ANY, _("&Remove"), wxDefaultPosition, wxDefaultSize, 0 );
m_custom_remove->Enable( false );
m_custom_remove->SetToolTip( _("Remove a custom signature URL") );
gbSizer6->Add( m_custom_remove, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALL, 5 );
sbSizer3->Add( gbSizer6, 1, wxEXPAND, 5 );
sbSizer2->Add( sbSizer3, 1, wxEXPAND, 5 );
bSizer4->Add( sbSizer2, 1, wxALL|wxEXPAND, 5 );
wxBoxSizer* bSizer41;
bSizer41 = new wxBoxSizer( wxHORIZONTAL );
m_save_settings = new wxButton( m_panel_updater, wxID_SAVE, _("&Save settings"), wxDefaultPosition, wxDefaultSize, 0 );
m_save_settings->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
m_save_settings->SetToolTip( _("Save proxy and signature source settings to freshclam.conf") );
bSizer41->Add( m_save_settings, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
bSizer41->Add( 10, 0, 1, wxEXPAND, 5 );
m_run_freshclam = new wxButton( m_panel_updater, wxID_ANY, _("Run &freshclam to test configuration"), wxDefaultPosition, wxDefaultSize, 0 );
m_run_freshclam->SetToolTip( _("Runs freshclam database updater") );
bSizer41->Add( m_run_freshclam, 0, wxALL, 5 );
bSizer4->Add( bSizer41, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
m_panel_updater->SetSizer( bSizer4 );
m_panel_updater->Layout();
bSizer4->Fit( m_panel_updater );
tabs->AddPage( m_panel_updater, _("Updater configuration"), true );
m_panel_sigman = new wxPanel( tabs, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
wxBoxSizer* bSizer7;
bSizer7 = new wxBoxSizer( wxVERTICAL );
wxStaticBoxSizer* sbSizer4;
sbSizer4 = new wxStaticBoxSizer( new wxStaticBox( m_panel_sigman, wxID_ANY, _("New signatures") ), wxVERTICAL );
wxGridBagSizer* gbSizer61;
gbSizer61 = new wxGridBagSizer( 0, 0 );
gbSizer61->AddGrowableCol( 0 );
gbSizer61->AddGrowableRow( 2 );
gbSizer61->SetFlexibleDirection( wxBOTH );
gbSizer61->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
m_sig_candidates = new wxListBox( m_panel_sigman, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_EXTENDED|wxLB_HSCROLL|wxLB_NEEDED_SB );
m_sig_candidates->SetToolTip( _("signature files to be added (candidates)") );
gbSizer61->Add( m_sig_candidates, wxGBPosition( 0, 0 ), wxGBSpan( 3, 1 ), wxALL|wxEXPAND, 5 );
m_local_add = new wxButton( m_panel_sigman, wxID_ANY, _("&Add"), wxDefaultPosition, wxDefaultSize, 0 );
m_local_add->SetToolTip( _("Add new signature file candidate") );
gbSizer61->Add( m_local_add, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALL, 5 );
m_local_remove = new wxButton( m_panel_sigman, wxID_ANY, _("&Remove"), wxDefaultPosition, wxDefaultSize, 0 );
m_local_remove->Enable( false );
m_local_remove->SetToolTip( _("Remove a signature file candidate") );
gbSizer61->Add( m_local_remove, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALL, 5 );
sbSizer4->Add( gbSizer61, 1, wxEXPAND, 5 );
bSizer7->Add( sbSizer4, 1, wxALL|wxEXPAND, 5 );
m_install = new wxButton( m_panel_sigman, wxID_ANY, _("Verify and &Install signatures"), wxDefaultPosition, wxDefaultSize, 0 );
m_install->Enable( false );
m_install->SetToolTip( _("Check that the signature files are well formed and install them in ClamAV's database directory") );
bSizer7->Add( m_install, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
wxStaticBoxSizer* sbSizer5;
sbSizer5 = new wxStaticBoxSizer( new wxStaticBox( m_panel_sigman, wxID_ANY, _("Installed signatures") ), wxHORIZONTAL );
m_installed_sigs = new wxListBox( m_panel_sigman, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_EXTENDED|wxLB_HSCROLL|wxLB_NEEDED_SB );
m_installed_sigs->SetToolTip( _("Databases currently usable by ClamAV") );
sbSizer5->Add( m_installed_sigs, 1, wxALL|wxEXPAND, 5 );
m_delete = new wxButton( m_panel_sigman, wxID_ANY, _("&Delete"), wxDefaultPosition, wxDefaultSize, 0 );
m_delete->SetToolTip( _("Delete an actual signature database from the disk") );
sbSizer5->Add( m_delete, 0, wxALL, 5 );
bSizer7->Add( sbSizer5, 1, wxALL|wxEXPAND, 5 );
m_panel_sigman->SetSizer( bSizer7 );
m_panel_sigman->Layout();
bSizer7->Fit( m_panel_sigman );
tabs->AddPage( m_panel_sigman, _("Local signature management"), false );
bSizer1->Add( tabs, 1, wxEXPAND, 5 );
this->SetSizer( bSizer1 );
this->Layout();
// Connect Events
this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( GUIFrame::OnClose ) );
this->Connect( wxEVT_IDLE, wxIdleEventHandler( GUIFrame::GUIFrameOnIdle ) );
tabs->Connect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler( GUIFrame::tabsOnNotebookPageChanged ), NULL, this );
m_proxy->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( GUIFrame::m_proxyOnCheckBox ), NULL, this );
m_proxyauth->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( GUIFrame::m_proxyauthOnCheckBox ), NULL, this );
m_proxy_autodet->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GUIFrame::m_proxy_autodetOnButtonClick ), NULL, this );
m_bytecode->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( GUIFrame::m_bytecodeOnCheckBox ), NULL, this );
m_custom_add->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GUIFrame::m_custom_addOnButtonClick ), NULL, this );
m_custom_remove->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GUIFrame::m_custom_removeOnButtonClick ), NULL, this );
m_save_settings->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GUIFrame::m_save_settingsOnButtonClick ), NULL, this );
m_run_freshclam->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GUIFrame::m_run_freshclamOnButtonClick ), NULL, this );
m_local_add->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GUIFrame::m_local_addOnButtonClick ), NULL, this );
m_local_remove->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GUIFrame::m_local_removeOnButtonClick ), NULL, this );
m_install->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GUIFrame::m_installOnButtonClick ), NULL, this );
m_delete->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GUIFrame::m_deleteOnButtonClick ), NULL, this );
}
GUIFrame::~GUIFrame()
{
// Disconnect Events
this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( GUIFrame::OnClose ) );
this->Disconnect( wxEVT_IDLE, wxIdleEventHandler( GUIFrame::GUIFrameOnIdle ) );
tabs->Disconnect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler( GUIFrame::tabsOnNotebookPageChanged ), NULL, this );
m_proxy->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( GUIFrame::m_proxyOnCheckBox ), NULL, this );
m_proxyauth->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( GUIFrame::m_proxyauthOnCheckBox ), NULL, this );
m_proxy_autodet->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GUIFrame::m_proxy_autodetOnButtonClick ), NULL, this );
m_bytecode->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( GUIFrame::m_bytecodeOnCheckBox ), NULL, this );
m_custom_add->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GUIFrame::m_custom_addOnButtonClick ), NULL, this );
m_custom_remove->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GUIFrame::m_custom_removeOnButtonClick ), NULL, this );
m_save_settings->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GUIFrame::m_save_settingsOnButtonClick ), NULL, this );
m_run_freshclam->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GUIFrame::m_run_freshclamOnButtonClick ), NULL, this );
m_local_add->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GUIFrame::m_local_addOnButtonClick ), NULL, this );
m_local_remove->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GUIFrame::m_local_removeOnButtonClick ), NULL, this );
m_install->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GUIFrame::m_installOnButtonClick ), NULL, this );
m_delete->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GUIFrame::m_deleteOnButtonClick ), NULL, this );
}
ProcessOutput::ProcessOutput( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
this->SetSizeHints( wxDefaultSize, wxDefaultSize );
wxBoxSizer* bSizer5;
bSizer5 = new wxBoxSizer( wxVERTICAL );
m_logoutput = new wxListBox( this, wxID_ANY, wxDefaultPosition, wxSize( 700,300 ), 0, NULL, wxLB_ALWAYS_SB|wxLB_HSCROLL|wxALWAYS_SHOW_SB );
m_logoutput->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 76, 90, 90, false, wxEmptyString ) );
bSizer5->Add( m_logoutput, 1, wxALL|wxEXPAND, 5 );
m_cancel_process = new wxButton( this, wxID_ANY, _("&Terminate updater"), wxDefaultPosition, wxDefaultSize, 0 );
bSizer5->Add( m_cancel_process, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
this->SetSizer( bSizer5 );
this->Layout();
bSizer5->Fit( this );
this->Centre( wxBOTH );
// Connect Events
this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( ProcessOutput::ProcessOutputOnClose ) );
this->Connect( wxEVT_IDLE, wxIdleEventHandler( ProcessOutput::ProcessOutputOnIdle ) );
this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( ProcessOutput::ProcessOutputOnInitDialog ) );
m_cancel_process->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ProcessOutput::m_cancel_processOnButtonClick ), NULL, this );
}
ProcessOutput::~ProcessOutput()
{
// Disconnect Events
this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( ProcessOutput::ProcessOutputOnClose ) );
this->Disconnect( wxEVT_IDLE, wxIdleEventHandler( ProcessOutput::ProcessOutputOnIdle ) );
this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( ProcessOutput::ProcessOutputOnInitDialog ) );
m_cancel_process->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ProcessOutput::m_cancel_processOnButtonClick ), NULL, this );
}