1 // XABSearchPanel.cpp - XABSearchPanel widget.
3 // (c) 2012-2015 Xestia Software Development.
5 // This file is part of Xestia Address Book.
7 // Xestia Address Book is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by the
9 // Free Software Foundation, version 3 of the license.
11 // Xestia Address Book is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
16 // You should have received a copy of the GNU General Public License along
17 // with Xestia Address Book. If not, see <http://www.gnu.org/licenses/>
19 #include "XABSearchPanel.h"
20 #include "../bitmaps.h"
22 #include <wx/mstream.h>
26 DEFINE_EVENT_TYPE(XABSP_ENABLECONTROLS);
27 DEFINE_EVENT_TYPE(XABSP_DISABLECONTROLS);
29 BEGIN_EVENT_TABLE(XABSearchPanel, wxPanel)
30 EVT_COMMAND(wxID_ANY, XABSP_ENABLECONTROLS, XABSearchPanel::EnableControls)
31 EVT_COMMAND(wxID_ANY, XABSP_DISABLECONTROLS, XABSearchPanel::DisableControls)
34 XABSearchPanel::XABSearchPanel( wxWindow* parent )
36 XABSearchPanelADT( parent )
39 // Setup the images for the add and delete buttons.
41 wxMemoryInputStream astream(buttons_add_png, sizeof(buttons_add_png));
42 wxImage buttons_add_png(astream, wxBITMAP_TYPE_PNG);
43 wxBitmap addbmp(buttons_add_png, -1);
45 wxMemoryInputStream bstream(buttons_minus_png, sizeof(buttons_minus_png));
46 wxImage buttons_minus_png(bstream, wxBITMAP_TYPE_PNG);
47 wxBitmap delbmp(buttons_minus_png, -1);
49 btnAdd->SetBitmapLabel(addbmp);
50 btnDelete->SetBitmapLabel(delbmp);
52 // Insert the options into the combo box.
54 choOption->Append(_("Forename begins with"));
55 choOption->Append(_("Forename ends with"));
56 choOption->Append(_("Forename contains"));
57 choOption->Append(_("Forename doesn't contain"));
58 choOption->Append(_("Surname begins with"));
59 choOption->Append(_("Surname ends with"));
60 choOption->Append(_("Surname contains"));
61 choOption->Append(_("Surname doesn't contain"));
62 choOption->Append(_("Nickname begins with"));
63 choOption->Append(_("Nickname ends with"));
64 choOption->Append(_("Nickname contains"));
65 choOption->Append(_("Nickname doesn't contain"));
66 choOption->Append(_("Does/Doesn't have photo"));
67 choOption->Append(_("Does/Doesn't have logo"));
68 choOption->Append(_("Does/Doesn't have sound"));
71 chkActive->SetValue(FALSE);
75 choOption->SetSelection(0);
79 void XABSearchPanel::UpdateOptions( wxCommandEvent& event )
82 if (choOption->GetSelection() == 12 ||
83 choOption->GetSelection() == 13 ||
84 choOption->GetSelection() == 14 ){
94 chkActive->SetValue(FALSE);
102 void XABSearchPanel::AddSearchWidget( wxCommandEvent& event )
105 frmSearch *SCHWin = static_cast<frmSearch*>(SCHWinPtr);
107 wxCommandEvent eventsend(SE_ADDSEARCHSETTING);
108 wxPostEvent(SCHWin, eventsend);
112 void XABSearchPanel::RemoveSearchWidget( wxCommandEvent& event )
115 frmSearch *SCHWin = static_cast<frmSearch*>(SCHWinPtr);
117 wxCommandEvent eventsend(SE_REMOVESEARCHSETTING);
118 eventsend.SetInt(this->GetInteger());
119 wxPostEvent(SCHWin, eventsend);
123 void XABSearchPanel::EnableButtons(bool AddButton, bool DeleteButton)
126 if (AddButton == TRUE){
132 if (DeleteButton == TRUE){
135 btnDelete->Disable();
140 void XABSearchPanel::SetupPointers(void* SCHWinPtrInc){
142 SCHWinPtr = SCHWinPtrInc;
146 void XABSearchPanel::SetupInteger(int IntInc){
152 int XABSearchPanel::GetInteger(){
158 void XABSearchPanel::DisableControls(wxCommandEvent &event){
160 choOption->Disable();
161 chkActive->Disable();
162 txtSearch->Disable();
164 btnDelete->Disable();
168 void XABSearchPanel::EnableControls(wxCommandEvent &event){
178 int XABSearchPanel::GetSelectionOption(){
180 return choOption->GetSelection();
184 bool XABSearchPanel::GetCheckboxSetting(){
186 return chkActive->IsChecked();
190 wxString XABSearchPanel::GetStringSetting(){
192 return txtSearch->GetValue();