// XABSearchPanel.cpp - XABSearchPanel widget. // // (c) 2012-2015 Xestia Software Development. // // This file is part of Xestia Address Book. // // Xestia Address Book is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by the // Free Software Foundation, version 3 of the license. // // Xestia Address Book is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License along // with Xestia Address Book. If not, see #include "XABSearchPanel.h" #include "../bitmaps.h" #include DEFINE_EVENT_TYPE(XABSP_ENABLECONTROLS); DEFINE_EVENT_TYPE(XABSP_DISABLECONTROLS); BEGIN_EVENT_TABLE(XABSearchPanel, wxPanel) EVT_COMMAND(wxID_ANY, XABSP_ENABLECONTROLS, XABSearchPanel::EnableControls) EVT_COMMAND(wxID_ANY, XABSP_DISABLECONTROLS, XABSearchPanel::DisableControls) END_EVENT_TABLE() XABSearchPanel::XABSearchPanel( wxWindow* parent ) : XABSearchPanelADT( parent ) { // Setup the images for the add and delete buttons. wxMemoryInputStream astream(buttons_add_png, sizeof(buttons_add_png)); wxImage buttons_add_png(astream, wxBITMAP_TYPE_PNG); wxBitmap addbmp(buttons_add_png, -1); wxMemoryInputStream bstream(buttons_minus_png, sizeof(buttons_minus_png)); wxImage buttons_minus_png(bstream, wxBITMAP_TYPE_PNG); wxBitmap delbmp(buttons_minus_png, -1); btnAdd->SetBitmapLabel(addbmp); btnDelete->SetBitmapLabel(delbmp); // Insert the options into the combo box. choOption->Append(_("Forename begins with")); choOption->Append(_("Forename ends with")); choOption->Append(_("Forename contains")); choOption->Append(_("Forename doesn't contain")); choOption->Append(_("Surname begins with")); choOption->Append(_("Surname ends with")); choOption->Append(_("Surname contains")); choOption->Append(_("Surname doesn't contain")); choOption->Append(_("Nickname begins with")); choOption->Append(_("Nickname ends with")); choOption->Append(_("Nickname contains")); choOption->Append(_("Nickname doesn't contain")); choOption->Append(_("Does/Doesn't have photo")); choOption->Append(_("Does/Doesn't have logo")); choOption->Append(_("Does/Doesn't have sound")); chkActive->Hide(); chkActive->SetValue(FALSE); txtSearch->Show(); szrSSet->Layout(); choOption->SetSelection(0); } void XABSearchPanel::UpdateOptions( wxCommandEvent& event ) { if (choOption->GetSelection() == 12 || choOption->GetSelection() == 13 || choOption->GetSelection() == 14 ){ chkActive->Show(); txtSearch->Hide(); txtSearch->Clear(); szrSSet->Layout(); } else { chkActive->Hide(); chkActive->SetValue(FALSE); txtSearch->Show(); szrSSet->Layout(); } } void XABSearchPanel::AddSearchWidget( wxCommandEvent& event ) { frmSearch *SCHWin = static_cast(SCHWinPtr); wxCommandEvent eventsend(SE_ADDSEARCHSETTING); wxPostEvent(SCHWin, eventsend); } void XABSearchPanel::RemoveSearchWidget( wxCommandEvent& event ) { frmSearch *SCHWin = static_cast(SCHWinPtr); wxCommandEvent eventsend(SE_REMOVESEARCHSETTING); eventsend.SetInt(this->GetInteger()); wxPostEvent(SCHWin, eventsend); } void XABSearchPanel::EnableButtons(bool AddButton, bool DeleteButton) { if (AddButton == TRUE){ btnAdd->Enable(); } else { btnAdd->Disable(); } if (DeleteButton == TRUE){ btnDelete->Enable(); } else { btnDelete->Disable(); } } void XABSearchPanel::SetupPointers(void* SCHWinPtrInc){ SCHWinPtr = SCHWinPtrInc; } void XABSearchPanel::SetupInteger(int IntInc){ SCHInt = IntInc; } int XABSearchPanel::GetInteger(){ return SCHInt; } void XABSearchPanel::DisableControls(wxCommandEvent &event){ choOption->Disable(); chkActive->Disable(); txtSearch->Disable(); btnAdd->Disable(); btnDelete->Disable(); } void XABSearchPanel::EnableControls(wxCommandEvent &event){ choOption->Enable(); chkActive->Enable(); txtSearch->Enable(); btnAdd->Enable(); btnDelete->Enable(); } int XABSearchPanel::GetSelectionOption(){ return choOption->GetSelection(); } bool XABSearchPanel::GetCheckboxSetting(){ return chkActive->IsChecked(); } wxString XABSearchPanel::GetStringSetting(){ return txtSearch->GetValue(); }