From 10f49df37ad495d12b4edb62efbffc0bf2d1d57b Mon Sep 17 00:00:00 2001 From: Steve Brokenshire Date: Thu, 31 Aug 2017 21:41:06 +0100 Subject: [PATCH] frmContactEditorSound: Implemented priority control --- source/AppXestiaAddrBk.cpp | 69 +++---------------- source/AppXestiaAddrBk.h | 8 +-- .../contacteditor/frmContactEditorSound.cpp | 37 ++++------ source/contacteditor/frmContactEditorSound.h | 5 +- 4 files changed, 28 insertions(+), 91 deletions(-) diff --git a/source/AppXestiaAddrBk.cpp b/source/AppXestiaAddrBk.cpp index 8003920..7d542de 100644 --- a/source/AppXestiaAddrBk.cpp +++ b/source/AppXestiaAddrBk.cpp @@ -4751,80 +4751,35 @@ frmContactEditorSoundADT::frmContactEditorSoundADT( wxWindow* parent, wxWindowID nbkRelated = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); tabGeneral = new wxPanel( nbkRelated, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); - wxFlexGridSizer* fgSizer6; - fgSizer6 = new wxFlexGridSizer( 0, 2, 0, 0 ); - fgSizer6->AddGrowableCol( 1 ); - fgSizer6->SetFlexibleDirection( wxBOTH ); - fgSizer6->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + szrGeneral = new wxFlexGridSizer( 3, 2, 0, 0 ); + szrGeneral->AddGrowableCol( 1 ); + szrGeneral->SetFlexibleDirection( wxBOTH ); + szrGeneral->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); lblSoundFile = new wxStaticText( tabGeneral, wxID_ANY, wxT("Sound File:"), wxDefaultPosition, wxDefaultSize, 0 ); lblSoundFile->Wrap( -1 ); - fgSizer6->Add( lblSoundFile, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + szrGeneral->Add( lblSoundFile, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); fipSound = new wxFilePickerCtrl( tabGeneral, wxID_ANY, wxEmptyString, wxT("Select a sound file"), wxT("*.*"), wxDefaultPosition, wxDefaultSize, wxFLP_DEFAULT_STYLE ); - fgSizer6->Add( fipSound, 1, wxALL|wxEXPAND, 5 ); + szrGeneral->Add( fipSound, 1, wxALL|wxEXPAND, 5 ); lblType = new wxStaticText( tabGeneral, wxID_ANY, wxT("Type:"), wxDefaultPosition, wxDefaultSize, 0 ); lblType->Wrap( -1 ); - fgSizer6->Add( lblType, 0, wxALL, 5 ); + szrGeneral->Add( lblType, 0, wxALL, 5 ); wxArrayString cmbTypeChoices; cmbType = new wxChoice( tabGeneral, wxID_ANY, wxDefaultPosition, wxDefaultSize, cmbTypeChoices, 0 ); cmbType->SetSelection( 0 ); - fgSizer6->Add( cmbType, 0, wxALL, 5 ); + szrGeneral->Add( cmbType, 0, wxALL, 5 ); lblPriority = new wxStaticText( tabGeneral, wxID_ANY, wxT("Priority:"), wxDefaultPosition, wxDefaultSize, 0 ); lblPriority->Wrap( -1 ); - fgSizer6->Add( lblPriority, 0, wxALL, 5 ); - - wxBoxSizer* bSizer260; - bSizer260 = new wxBoxSizer( wxHORIZONTAL ); - - chkUsePref = new wxCheckBox( tabGeneral, wxID_ANY, wxT("Use"), wxDefaultPosition, wxDefaultSize, 0 ); - bSizer260->Add( chkUsePref, 0, wxALL, 5 ); - - wxBoxSizer* bSizer254; - bSizer254 = new wxBoxSizer( wxVERTICAL ); - - wxBoxSizer* bSizer256; - bSizer256 = new wxBoxSizer( wxHORIZONTAL ); - - sliPriority = new wxSlider( tabGeneral, wxID_ANY, 0, 1, 100, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS ); - bSizer256->Add( sliPriority, 1, wxALL|wxEXPAND, 5 ); - - - bSizer254->Add( bSizer256, 1, wxEXPAND, 5 ); - - wxBoxSizer* bSizer255; - bSizer255 = new wxBoxSizer( wxHORIZONTAL ); - - lblHigh = new wxStaticText( tabGeneral, wxID_ANY, wxT("High"), wxDefaultPosition, wxDefaultSize, 0 ); - lblHigh->Wrap( -1 ); - bSizer255->Add( lblHigh, 0, wxALIGN_LEFT|wxALL, 5 ); - - - bSizer255->Add( 0, 0, 1, wxEXPAND, 5 ); - - lblLow = new wxStaticText( tabGeneral, wxID_ANY, wxT("Low"), wxDefaultPosition, wxDefaultSize, 0 ); - lblLow->Wrap( -1 ); - bSizer255->Add( lblLow, 0, wxALIGN_RIGHT|wxALL, 5 ); - - - bSizer254->Add( bSizer255, 1, wxEXPAND, 0 ); - - - bSizer260->Add( bSizer254, 1, wxEXPAND, 5 ); - - - fgSizer6->Add( bSizer260, 1, wxEXPAND, 5 ); - - - fgSizer6->Add( 0, 0, 1, wxEXPAND, 5 ); + szrGeneral->Add( lblPriority, 0, wxALL, 5 ); - tabGeneral->SetSizer( fgSizer6 ); + tabGeneral->SetSizer( szrGeneral ); tabGeneral->Layout(); - fgSizer6->Fit( tabGeneral ); + szrGeneral->Fit( tabGeneral ); nbkRelated->AddPage( tabGeneral, wxT("General"), false ); bSizer251->Add( nbkRelated, 1, wxEXPAND | wxALL, 5 ); @@ -4848,7 +4803,6 @@ frmContactEditorSoundADT::frmContactEditorSoundADT( wxWindow* parent, wxWindowID this->Centre( wxBOTH ); // Connect Events - chkUsePref->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( frmContactEditorSoundADT::EnablePriority ), NULL, this ); btnAction->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( frmContactEditorSoundADT::ProcessData ), NULL, this ); btnClose->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( frmContactEditorSoundADT::CloseWindow ), NULL, this ); } @@ -4856,7 +4810,6 @@ frmContactEditorSoundADT::frmContactEditorSoundADT( wxWindow* parent, wxWindowID frmContactEditorSoundADT::~frmContactEditorSoundADT() { // Disconnect Events - chkUsePref->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( frmContactEditorSoundADT::EnablePriority ), NULL, this ); btnAction->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( frmContactEditorSoundADT::ProcessData ), NULL, this ); btnClose->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( frmContactEditorSoundADT::CloseWindow ), NULL, this ); diff --git a/source/AppXestiaAddrBk.h b/source/AppXestiaAddrBk.h index 888a624..8948f83 100644 --- a/source/AppXestiaAddrBk.h +++ b/source/AppXestiaAddrBk.h @@ -1240,27 +1240,23 @@ class frmContactEditorSoundADT : public wxDialog protected: wxNotebook* nbkRelated; wxPanel* tabGeneral; + wxFlexGridSizer* szrGeneral; wxStaticText* lblSoundFile; wxFilePickerCtrl* fipSound; wxStaticText* lblType; wxChoice* cmbType; wxStaticText* lblPriority; - wxCheckBox* chkUsePref; - wxSlider* sliPriority; - wxStaticText* lblHigh; - wxStaticText* lblLow; wxButton* btnAction; wxButton* btnClose; // Virtual event handlers, overide them in your derived class - virtual void EnablePriority( wxCommandEvent& event ) { event.Skip(); } virtual void ProcessData( wxCommandEvent& event ) { event.Skip(); } virtual void CloseWindow( wxCommandEvent& event ) { event.Skip(); } public: - frmContactEditorSoundADT( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("Sound Editor"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 350,250 ), long style = wxDEFAULT_DIALOG_STYLE ); + frmContactEditorSoundADT( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("Sound Editor"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 350,283 ), long style = wxDEFAULT_DIALOG_STYLE ); ~frmContactEditorSoundADT(); }; diff --git a/source/contacteditor/frmContactEditorSound.cpp b/source/contacteditor/frmContactEditorSound.cpp index 6e77c68..276abe7 100644 --- a/source/contacteditor/frmContactEditorSound.cpp +++ b/source/contacteditor/frmContactEditorSound.cpp @@ -26,7 +26,8 @@ frmContactEditorSoundADT( parent ) // Setup the window. EditorMode = FALSE; - sliPriority->Disable(); + priorityCtrl = new XABPriorityCtrl(tabGeneral); + szrGeneral->Add(priorityCtrl, 1, wxEXPAND, 5); cmbType->Append(wxT("")); cmbType->Append(_("Home")); @@ -34,19 +35,6 @@ frmContactEditorSoundADT( parent ) } -void frmContactEditorSound::EnablePriority( wxCommandEvent& event ) -{ - - // Enable/disable the priority setting. - - if (chkUsePref->IsChecked()){ - sliPriority->Enable(); - } else { - sliPriority->Disable(); - } - -} - void frmContactEditorSound::ProcessData( wxCommandEvent& event ) { @@ -127,9 +115,9 @@ void frmContactEditorSound::ProcessData( wxCommandEvent& event ) // Setup Organisation Priority. - if (chkUsePref->IsChecked()){ + if (priorityCtrl->IsPriorityChecked()){ - SoundListPrefPtr->insert(std::make_pair(SoundListIndex, sliPriority->GetValue())); + SoundListPrefPtr->insert(std::make_pair(SoundListIndex, priorityCtrl->GetValue())); } else { @@ -168,9 +156,9 @@ void frmContactEditorSound::ProcessData( wxCommandEvent& event ) } - if (chkUsePref->IsChecked()){ + if (priorityCtrl->IsPriorityChecked()){ - SoundListCtrlPtr->SetItem(ListCtrlIndex, 2, wxString::Format(wxT("%i"), sliPriority->GetValue())); + SoundListCtrlPtr->SetItem(ListCtrlIndex, 2, wxString::Format(wxT("%i"), priorityCtrl->GetValue())); } @@ -203,9 +191,9 @@ void frmContactEditorSound::ProcessData( wxCommandEvent& event ) SoundListPrefPtr->erase(SoundListIndex); - if (chkUsePref->IsChecked()){ + if (priorityCtrl->IsPriorityChecked()){ - SoundListPrefPtr->insert(std::make_pair(SoundListIndex, sliPriority->GetValue())); + SoundListPrefPtr->insert(std::make_pair(SoundListIndex, priorityCtrl->GetValue())); } else { @@ -226,9 +214,9 @@ void frmContactEditorSound::ProcessData( wxCommandEvent& event ) SoundListCtrlPtr->SetItem(longSelected, 0, wxT("Sound")); SoundListCtrlPtr->SetItem(longSelected, 1, strValue); - if (chkUsePref->IsChecked()){ + if (priorityCtrl->IsPriorityChecked()){ - SoundListCtrlPtr->SetItem(longSelected, 2, wxString::Format(wxT("%i"), sliPriority->GetValue())); + SoundListCtrlPtr->SetItem(longSelected, 2, wxString::Format(wxT("%i"), priorityCtrl->GetValue())); } else { @@ -307,9 +295,8 @@ void frmContactEditorSound::SetEditorMode(bool EditMode) if (intiter->first == SoundListIndex && intiter->second > 0 && intiter != SoundListPrefPtr->end()){ - sliPriority->SetValue(intiter->second); - sliPriority->Enable(); - chkUsePref->SetValue(TRUE); + priorityCtrl->SetValue(intiter->second); + priorityCtrl->EnablePriority(true); } diff --git a/source/contacteditor/frmContactEditorSound.h b/source/contacteditor/frmContactEditorSound.h index 2e5f4ae..4492617 100644 --- a/source/contacteditor/frmContactEditorSound.h +++ b/source/contacteditor/frmContactEditorSound.h @@ -39,6 +39,7 @@ Subclass of frmContactEditorSoundADT, which is generated by wxFormBuilder. #include "../common/base64.h" #include "../common/mime.h" #include "../enums.h" +#include "../widgets/XABPriorityCtrl.h" //// end generated include @@ -47,7 +48,6 @@ class frmContactEditorSound : public frmContactEditorSoundADT { protected: // Handlers for frmContactEditorSoundADT events. - void EnablePriority( wxCommandEvent& event ); void ProcessData( wxCommandEvent& event ); void CloseWindow( wxCommandEvent& event ); public: @@ -81,7 +81,8 @@ class frmContactEditorSound : public frmContactEditorSoundADT std::map *SoundListPrefPtr; wxListCtrl *SoundListCtrlPtr; int SoundListIndex; - SectionType EditSectionType; + SectionType EditSectionType; + XABPriorityCtrl *priorityCtrl = nullptr; //// end generated class members }; -- 2.39.2