📄 profilespage.cpp
字号:
CRadioListBox *clprofiles = ( CRadioListBox * ) FindWindowById( ID_CL_PROFILESPAGE_PROFILES ); int sel = clprofiles->GetChecked( ); wxString profile_name = wxT( "" ); if( sel != -1 ) { profile_name = clprofiles->GetString( sel ); } config->SetStartupProfile( profile_name ); event.Skip( ); return;}// CProfileDialog class implementation//=====================================BEGIN_EVENT_TABLE( CProfileDialog, wxDialog ) EVT_BUTTON( wxID_OK, CProfileDialog::OnBtAdd )END_EVENT_TABLE()CProfileDialog::CProfileDialog( wxWindow *parent, int id, const wxString &title, const wxPoint &pos, const wxSize &size, long style ) : wxDialog( parent, id, title, pos, size, style ){ wxBoxSizer *sz_txinput = new wxBoxSizer( wxHORIZONTAL ); sz_txinput->Add( new wxStaticText( this , ID_ST_DIALOG, _( "Profile name : " ), wxDefaultPosition, wxDefaultSize ), 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 ); sz_txinput->Add( new wxTextCtrl( this , ID_TX_DIALOG, wxT( "" ), wxDefaultPosition, wxDefaultSize ), 1, wxALIGN_CENTER_VERTICAL | wxTOP | wxBOTTOM | wxRIGHT, 5 ); wxBoxSizer *sz_buttons = new wxBoxSizer( wxHORIZONTAL ); sz_buttons->Add( 1, 1, 1, wxEXPAND, 0 ); sz_buttons->Add( new wxButton( this, wxID_OK, _( "Add" ) ) , 0, wxALL, 5 ); sz_buttons->Add( new wxButton( this, wxID_CANCEL, _( "Cancel" ) ), 0, wxTOP | wxBOTTOM | wxRIGHT, 5 ); wxBoxSizer *sz_top = new wxBoxSizer( wxVERTICAL ); sz_top->Add( sz_txinput, 1, wxEXPAND, 5 ); sz_top->Add( sz_buttons, 0, wxEXPAND, 5 ); SetSizer( sz_top ); SetAutoLayout( true ); Layout( ); ( ( wxButton * ) FindWindowById( wxID_OK ) )->SetDefault( ); ( ( wxTextCtrl * ) FindWindowById( ID_TX_DIALOG ) )->SetFocus( ); SetSizeHints( 300, 80 );}CProfileDialog::~CProfileDialog( ){}void CProfileDialog::OnBtAdd( wxCommandEvent &event ){ AddProfile( ); event.Skip( ); return;}bool CProfileDialog::AddProfile( ){ CWinterProfileManager *pmanager = ( CWinterProfileManager * ) CAccessor::Access( AID_PROFILEMANAGER ); wxString profile_name = ( ( wxTextCtrl * ) FindWindowById( ID_TX_DIALOG ) )->GetValue( ); if( profile_name.Trim().IsEmpty( ) == true ) { ::wxMessageBox( _( "Enter a profile name!" ), wxT( "Winter" ), wxICON_HAND ); return false; } mProfileNew = new CWinterProfile( profile_name ); if( pmanager->GetProfile( profile_name ) != NULL ) { switch( ::wxMessageBox( _( "There is already a profile with this name.\nOverwrite?" ), wxT( "Winter" ), wxYES_NO | wxICON_QUESTION, this ) ) { case wxYES: delete mProfileNew; mProfileNew = pmanager->GetProfile( profile_name ); break; case wxNO: delete mProfileNew; return false; default: ::wxMessageBox( _( "You have found a bug! Please report." ), _( "Congratulations!" ) ); break; } } mProfileNew->Import( ); pmanager->AddProfile( mProfileNew ); ( ( CAutoChoice *) FindWindowById( ID_CH_MAINPANEL_PROFILES ) )->Append( mProfileNew->GetName( ) ); return true;}// CPreviewPanel class implementation//====================================CPreviewPanel::CPreviewPanel( wxWindow *parent, int id ) : wxPanel( parent, id ){ wxSize labelsize( 150, -1 ); int sizer_border = 3; wxBoxSizer *sz_currentline; wxBoxSizer *sz_prv = new wxBoxSizer( wxVERTICAL ); // Operating mode sz_currentline = new wxBoxSizer( wxHORIZONTAL ); sz_currentline->Add( new wxStaticText( this, ID_ST_PROFILESPAGE_PRV_OPMODE, _( "Operating Mode :" ), wxDefaultPosition, labelsize ), 0, wxALIGN_CENTER_VERTICAL, 0 ); sz_currentline->Add( new wxStaticText( this, ID_ST_PROFILESPAGE_PRV_OPMODE_VAL, wxT( "" ), wxDefaultPosition ), 1, wxALIGN_CENTER_VERTICAL, 0 ); sz_prv->Add( sz_currentline, 0, wxEXPAND | wxALL, sizer_border ); // Channel sz_currentline = new wxBoxSizer( wxHORIZONTAL ); sz_currentline->Add( new wxStaticText( this, ID_ST_PROFILESPAGE_PRV_CHANNEL, _( "Channel : " ), wxDefaultPosition, labelsize ), 0, wxALIGN_CENTER_VERTICAL, 0 ); sz_currentline->Add( new wxStaticText( this, ID_ST_PROFILESPAGE_PRV_CHANNEL_VAL, wxT( "" ), wxDefaultPosition ), 1, wxALIGN_CENTER_VERTICAL, 0 ); sz_prv->Add( sz_currentline, 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, sizer_border ); // ESSID sz_currentline = new wxBoxSizer( wxHORIZONTAL ); sz_currentline->Add( new wxStaticText( this, ID_ST_PROFILESPAGE_PRV_SSID, wxT( "ESSID : " ), wxDefaultPosition, labelsize ), 0, wxALIGN_CENTER_VERTICAL, 0 ); sz_currentline->Add( new wxStaticText( this, ID_ST_PROFILESPAGE_PRV_SSID_VAL, wxT( "" ), wxDefaultPosition ), 1, wxALIGN_CENTER_VERTICAL, 0 ); sz_prv->Add( sz_currentline, 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, sizer_border ); // Radio on/off sz_currentline = new wxBoxSizer( wxHORIZONTAL ); sz_currentline->Add( new wxStaticText( this, ID_ST_PROFILESPAGE_PRV_RADIO, _( "Radio On/Off :" ), wxDefaultPosition, labelsize ), 0, wxALIGN_CENTER_VERTICAL, 0 ); sz_currentline->Add( new wxStaticText( this, ID_ST_PROFILESPAGE_PRV_RADIO_VAL, wxT( "" ), wxDefaultPosition ), 1, wxALIGN_CENTER_VERTICAL, 0 ); sz_prv->Add( sz_currentline, 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, sizer_border ); // Int Roaming sz_currentline = new wxBoxSizer( wxHORIZONTAL ); sz_currentline->Add( new wxStaticText( this, ID_ST_PROFILESPAGE_PRV_INTROAMING, _( "Int. Roaming :" ), wxDefaultPosition, labelsize ), 0, wxALIGN_CENTER_VERTICAL, 0 ); sz_currentline->Add( new wxStaticText( this, ID_ST_PROFILESPAGE_PRV_INTROAMING_VAL, wxT( "" ), wxDefaultPosition ), 1, wxALIGN_CENTER_VERTICAL, 0 ); sz_prv->Add( sz_currentline, 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, sizer_border ); // Transmit rate sz_currentline = new wxBoxSizer( wxHORIZONTAL ); sz_currentline->Add( new wxStaticText( this, ID_ST_PROFILESPAGE_PRV_TRRATE, _( "Transmit Rate :" ), wxDefaultPosition, labelsize ), 0, wxALIGN_CENTER_VERTICAL, 0 ); sz_currentline->Add( new wxStaticText( this, ID_ST_PROFILESPAGE_PRV_TRRATE_VAL, wxT( "" ), wxDefaultPosition ), 1, wxALIGN_CENTER_VERTICAL, 0 ); sz_prv->Add( sz_currentline, 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, sizer_border ); // Preamble Type sz_currentline = new wxBoxSizer( wxHORIZONTAL ); sz_currentline->Add( new wxStaticText( this, ID_ST_PROFILESPAGE_PRV_PRTYPE, wxT( "Preamble :" ), wxDefaultPosition, labelsize ), 0, wxALIGN_CENTER_VERTICAL, 0 ); sz_currentline->Add( new wxStaticText( this, ID_ST_PROFILESPAGE_PRV_PRTYPE_VAL, wxT( "" ), wxDefaultPosition ), 1, wxALIGN_CENTER_VERTICAL, 0 ); sz_prv->Add( sz_currentline, 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, sizer_border ); // Power Mode sz_currentline = new wxBoxSizer( wxHORIZONTAL ); sz_currentline->Add( new wxStaticText( this, ID_ST_PROFILESPAGE_PRV_PWRMODE, _( "Power Mode :" ), wxDefaultPosition, labelsize ), 0, wxALIGN_CENTER_VERTICAL, 0 ); sz_currentline->Add( new wxStaticText( this, ID_ST_PROFILESPAGE_PRV_PWRMODE_VAL, wxT( "" ), wxDefaultPosition ), 1, wxALIGN_CENTER_VERTICAL, 0 ); sz_prv->Add( sz_currentline, 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, sizer_border ); // Fragmentation threshold sz_currentline = new wxBoxSizer( wxHORIZONTAL ); sz_currentline->Add( new wxStaticText( this, ID_ST_PROFILESPAGE_PRV_FRAGTHRSHLD, _( "Fragmentation threshold :" ), wxDefaultPosition, labelsize ), 0, wxALIGN_CENTER_VERTICAL, 0 ); sz_currentline->Add( new wxStaticText( this, ID_ST_PROFILESPAGE_PRV_FRAGTHRSHLD_VAL, wxT( "" ), wxDefaultPosition ), 1, wxALIGN_CENTER_VERTICAL, 0 ); sz_prv->Add( sz_currentline, 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, sizer_border ); // RTS/CTS threshold sz_currentline = new wxBoxSizer( wxHORIZONTAL ); sz_currentline->Add( new wxStaticText( this, ID_ST_PROFILESPAGE_PRV_RTSCTSTHR, _( "RTS/CTS threshold :" ), wxDefaultPosition, labelsize ), 0, wxALIGN_CENTER_VERTICAL, 0 ); sz_currentline->Add( new wxStaticText( this, ID_ST_PROFILESPAGE_PRV_RTSCTSTHR_VAL, wxT( "" ), wxDefaultPosition ), 1, wxALIGN_CENTER_VERTICAL, 0 ); sz_prv->Add( sz_currentline, 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, sizer_border ); sz_prv->Add( new wxStaticLine( this, -1 ), 0, wxEXPAND, 3 ); //Encryption sz_currentline = new wxBoxSizer( wxHORIZONTAL ); sz_currentline->Add( new wxStaticText( this, ID_ST_PROFILESPAGE_PRV_ENCRYPTION, _( "Encryption :" ), wxDefaultPosition, labelsize ), 0, wxALIGN_CENTER_VERTICAL, 0 ); sz_currentline->Add( new wxStaticText( this, ID_ST_PROFILESPAGE_PRV_ENCRYPTION_VAL, wxT( "" ), wxDefaultPosition ), 1, wxALIGN_CENTER_VERTICAL, 0 ); sz_prv->Add( sz_currentline, 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, sizer_border ); //WepKeyToUse sz_currentline = new wxBoxSizer( wxHORIZONTAL ); sz_currentline->Add( new wxStaticText( this, ID_ST_PROFILESPAGE_PRV_WEPKEYTOUSE, wxT( "" ), wxDefaultPosition, labelsize ), 0, wxALIGN_CENTER_VERTICAL, 0 ); sz_currentline->Add( new wxStaticText( this, ID_ST_PROFILESPAGE_PRV_WEPKEYTOUSE_VAL, wxT( "" ), wxDefaultPosition ), 1, wxALIGN_CENTER_VERTICAL, 0 ); sz_prv->Add( sz_currentline, 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, sizer_border ); //WepMode sz_currentline = new wxBoxSizer( wxHORIZONTAL ); sz_currentline->Add( new wxStaticText( this, ID_ST_PROFILESPAGE_PRV_WEPMODE, wxT( "" ), wxDefaultPosition, labelsize ), 0, wxALIGN_CENTER_VERTICAL, 0 ); sz_currentline->Add( new wxStaticText( this, ID_ST_PROFILESPAGE_PRV_WEPMODE_VAL, wxT( "" ), wxDefaultPosition ), 1, wxALIGN_CENTER_VERTICAL, 0 ); sz_prv->Add( sz_currentline, 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, sizer_border ); //Authentication Type sz_currentline = new wxBoxSizer( wxHORIZONTAL ); sz_currentline->Add( new wxStaticText( this, ID_ST_PROFILESPAGE_PRV_AUTHENTICATIONTYPE, wxT( "" ), wxDefaultPosition, labelsize ), 0, wxALIGN_CENTER_VERTICAL, 0 ); sz_currentline->Add( new wxStaticText( this, ID_ST_PROFILESPAGE_PRV_AUTHENTICATIONTYPE_VAL, wxT( "" ), wxDefaultPosition ), 1, wxALIGN_CENTER_VERTICAL, 0 ); sz_prv->Add( sz_currentline, 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, sizer_border ); // Wep keys not shown sz_currentline = new wxBoxSizer( wxHORIZONTAL ); sz_currentline->Add( new wxStaticText( this, ID_ST_PROFILESPAGE_PRV_WEPNOTSHOWN, wxT( "" ), wxDefaultPosition, labelsize ), 1, wxALIGN_CENTER_VERTICAL | wxALIGN_CENTER_HORIZONTAL, 0 ); sz_prv->Add( sz_currentline, 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, sizer_border ); SetSizer( sz_prv ); SetAutoLayout( true ); Layout( );}CPreviewPanel::~CPreviewPanel( ){}void CPreviewPanel::DoPreview( CWinterProfile *profile ){ if( profile == NULL ) { ClearPreview( ); return; } CWinterModel *model = new CWinterModel( ); profile->Export( model ); CDeviceConfigurationData *dev_data = ( CDeviceConfigurationData * ) model->GetChild( MC_DEVICECONFIGURATIONDATA ); CWepInfoData *wep_data = ( CWepInfoData * ) model->GetChild( MC_WEPINFODATA ); CWinterStringsProvider *sp = ( CWinterStringsProvider * ) CAccessor::Access( AID_STRINGSPROVIDER ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_OPMODE_VAL ) )->SetLabel( sp->OperModeStrings[ dev_data->GetOperatingMode( ) ] ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_CHANNEL_VAL ) )->SetLabel( wxString::Format( _( "%d" ), dev_data->GetChannel( ) ) ); wxString ssid; for( int c = 0; c < dev_data->GetSSIDLength( ); c++ ) { ssid.Append( dev_data->GetSSID( )[ c ] ); } ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_SSID_VAL ) )->SetLabel( ssid ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_RADIO_VAL ) )->SetLabel( sp->RadioStrings[ dev_data->GetRadioIsOn( ) ] ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_INTROAMING_VAL ) )->SetLabel( sp->RoamingStrings[ dev_data->GetInternationalRoaming( ) ] ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_TRRATE_VAL ) )->SetLabel( sp->TransmitRateStrings[ dev_data->GetTxRate( ) ] ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_PRTYPE_VAL ) )->SetLabel( sp->PreambleTypeStrings[ dev_data->GetPreambleType( ) ] ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_PWRMODE_VAL ) )->SetLabel( sp->PowerModeStrings[ dev_data->GetPowerMgmtMode( ) ] ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_FRAGTHRSHLD_VAL ) )->SetLabel( wxString::Format( wxT( "%d" ), dev_data->GetFragmentationThreshold( ) ) ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_RTSCTSTHR_VAL ) )->SetLabel( wxString::Format( wxT( "%d" ), dev_data->GetRtsCtsThreshold( ) ) ); int encryption_level = wep_data->GetEncryptionLevel( ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_ENCRYPTION_VAL ) )->SetLabel( sp->EncryptionStrings[ wep_data->GetEncryptionLevel( ) ] ); if( encryption_level == 0 ) { ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_WEPKEYTOUSE ) )->SetLabel( wxT( "" ) ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_WEPKEYTOUSE_VAL ) )->SetLabel( wxT( "" ) ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_WEPMODE ) )->SetLabel( wxT( "" ) ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_WEPMODE_VAL ) )->SetLabel( wxT( "" ) ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_AUTHENTICATIONTYPE ) )->SetLabel( wxT( "" ) ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_AUTHENTICATIONTYPE_VAL ) )->SetLabel( wxT( "" ) ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_WEPNOTSHOWN ) )->SetLabel( wxT( "" ) ); } else { ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_WEPKEYTOUSE ) )->SetLabel( _( "WepKeyToUse :" ) );#ifdef ATMEL_WLAN ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_WEPKEYTOUSE_VAL ) )->SetLabel( sp->WepKeysStrings[ (int) ( wep_data->GetWepKeyToUse( ) ) ] );#else ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_WEPKEYTOUSE_VAL ) )->SetLabel( sp->WepKeysStrings[ (int) ( wep_data->GetWepKeyToUse( ) - 1 ) ] );#endif ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_WEPMODE ) )->SetLabel( _( "WepMode :" ) ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_WEPMODE_VAL ) )->SetLabel( sp->WepModeStrings[ (int) ( wep_data->GetWepMode( ) ) ] ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_AUTHENTICATIONTYPE ) )->SetLabel( _( "AuthenticationType :" ) ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_AUTHENTICATIONTYPE_VAL ) )->SetLabel( sp->AuthTypeStrings[ (int) ( wep_data->GetAuthenticationType( ) ) ] ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_WEPNOTSHOWN ) )->SetLabel( _( "WEP keys are NOT shown for security reasons." ) ); } delete model; return;}void CPreviewPanel::ClearPreview( ){ ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_OPMODE_VAL ) )->SetLabel( wxT( "" ) ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_CHANNEL_VAL ) )->SetLabel( wxT( "" ) ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_SSID_VAL ) )->SetLabel( wxT( "" ) ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_RADIO_VAL ) )->SetLabel( wxT( "" ) ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_INTROAMING_VAL ) )->SetLabel( wxT( "" ) ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_TRRATE_VAL ) )->SetLabel( wxT( "" ) ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_PRTYPE_VAL ) )->SetLabel( wxT( "" ) ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_PWRMODE_VAL ) )->SetLabel( wxT( "" ) ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_FRAGTHRSHLD_VAL ) )->SetLabel( wxT( "" ) ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_RTSCTSTHR_VAL ) )->SetLabel( wxT( "" ) ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_ENCRYPTION_VAL ) )->SetLabel( wxT( "" ) ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_WEPKEYTOUSE_VAL ) )->SetLabel( wxT( "" ) ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_WEPMODE_VAL ) )->SetLabel( wxT( "" ) ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_AUTHENTICATIONTYPE_VAL ) )->SetLabel( wxT( "" ) ); ( ( wxStaticText * ) FindWindowById( ID_ST_PROFILESPAGE_PRV_WEPNOTSHOWN ) )->SetLabel( wxT( "" ) ); return;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -