+/*
+ Bacula® - The Network Backup Solution
+
+ Copyright (C) 2004-2008 Free Software Foundation Europe e.V.
+
+ The main author of Bacula is Kern Sibbald, with contributions from
+ many others, a complete list can be found in the file AUTHORS.
+ This program is Free Software; you can redistribute it and/or
+ modify it under the terms of version two of the GNU General Public
+ License as published by the Free Software Foundation and included
+ in the file LICENSE.
+
+ This program 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 this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA.
+
+ Bacula® is a registered trademark of John Walker.
+ The licensor of Bacula is the Free Software Foundation Europe
+ (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
+ Switzerland, email:ftf@fsfeurope.org.
+*/
/*
*
* Config panel, used to specify parameters (for example clients, filesets... in restore)
*
* Version $Id$
*/
-/*
- Copyright (C) 2004 Kern Sibbald and John Walker
-
- This program 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; either version 2
- of the License, or (at your option) any later version.
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+/* Windows debug builds set _DEBUG which is used by wxWidgets to select their
+ * debug memory allocator. Unfortunately it conflicts with Bacula's SmartAlloc.
+ * So we turn _DEBUG off since we aren't interested in things it enables.
*/
-#include "wxbconfigpanel.h"
+#undef _DEBUG
+#include "bacula.h"
+#include "wxbconfigpanel.h"
#include <wx/arrimpl.cpp>
+
WX_DEFINE_OBJARRAY(wxbConfig);
/* Create a new config parameter */
}
void wxbConfigParam::AddControl(wxWindow* parent, wxSizer* sizer) {
- sizer->Add(new wxStaticText(parent, -1, title + ": ", wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT), 0, wxALIGN_CENTER_VERTICAL);
+ sizer->Add(new wxStaticText(parent, -1, title + wxT(": "), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT), 0, wxALIGN_CENTER_VERTICAL);
switch (type) {
case text:
statictext = new wxStaticText(parent, -1, value, wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
wxString wxbConfigParam::GetValue() {
switch (type) {
case text:
- return (statictext != NULL) ? statictext->GetLabel() : wxString("");
+ return (statictext != NULL) ? statictext->GetLabel() : wxString(wxT(""));
break;
case modifiableText:
- return (textctrl != NULL) ? textctrl->GetValue() : wxString("");
+ return (textctrl != NULL) ? textctrl->GetValue() : wxString(wxT(""));
break;
case choice:
- return (choicectrl != NULL) ? choicectrl->GetStringSelection() : wxString("");
+ return (choicectrl != NULL) ? choicectrl->GetStringSelection() : wxString(wxT(""));
break;
}
- return "";
+ return wxT("");
}
void wxbConfigParam::SetValue(wxString str) {
case choice:
if (choicectrl) {
int k;
- for (k = 0; k < choicectrl->GetCount(); k++) {
+ for (k = 0; k < (int)choicectrl->GetCount(); k++) {
if (str == choicectrl->GetString(k)) {
choicectrl->SetSelection(k);
break;
}
}
- if (k == choicectrl->GetCount()) { // Should never happen
+ if (k == (int)choicectrl->GetCount()) { // Should never happen
choicectrl->Append(str);
choicectrl->SetSelection(k);
}
return -1;
}
+int wxbConfigParam::GetCount() {
+ if (choicectrl) {
+ return choicectrl->GetCount();
+ }
+ return -1;
+}
+
+
void wxbConfigParam::SetIndex(int ind) {
if (choicectrl) {
choicectrl->SetSelection(ind);
wxBoxSizer* restoreBottomSizer = new wxBoxSizer(wxHORIZONTAL);
- cfgOk = new wxButton(this, ok, "OK", wxDefaultPosition, wxSize(70, 25));
+ cfgOk = new wxButton(this, ok, _("OK"), wxDefaultPosition, wxSize(70, 25));
restoreBottomSizer->Add(cfgOk, 1, wxALIGN_CENTER_VERTICAL | wxRIGHT, 10);
if (apply != -1) {
- cfgApply = new wxButton(this, apply, "Apply", wxDefaultPosition, wxSize(70, 25));
+ cfgApply = new wxButton(this, apply, _("Apply"), wxDefaultPosition, wxSize(70, 25));
restoreBottomSizer->Add(cfgApply, 1, wxALIGN_CENTER_VERTICAL | wxLEFT | wxRIGHT, 10);
}
else {
cfgApply = NULL;
}
- cfgCancel = new wxButton(this, cancel, "Cancel", wxDefaultPosition, wxSize(70, 25));
+ cfgCancel = new wxButton(this, cancel, _("Cancel"), wxDefaultPosition, wxSize(70, 25));
restoreBottomSizer->Add(cfgCancel, 1, wxALIGN_CENTER_VERTICAL | wxLEFT, 10);
mainSizer->Add(restoreBottomSizer, 0, wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL, 5);
delete config;
}
-void wxbConfigPanel::SetRowString(const char* title, wxString value) {
+void wxbConfigPanel::SetRowString(const wxChar* title, wxString value) {
int i;
if ((i = FindRow(title)) > -1) {
(*config)[i].SetValue(value);
}
}
-wxString wxbConfigPanel::GetRowString(const char* title) {
+wxString wxbConfigPanel::GetRowString(const wxChar* title) {
int i;
if ((i = FindRow(title)) > -1) {
return (*config)[i].GetValue();
}
- return "";
+ return wxT("");
}
-void wxbConfigPanel::SetRowSelection(const char* title, int ind) {
+void wxbConfigPanel::SetRowSelection(const wxChar* title, int ind) {
int i;
if ((i = FindRow(title)) > -1) {
(*config)[i].SetIndex(ind);
}
}
-int wxbConfigPanel::GetRowSelection(const char* title) {
+int wxbConfigPanel::GetRowSelection(const wxChar* title) {
int i;
if ((i = FindRow(title)) > -1) {
return (*config)[i].GetIndex();
return -1;
}
-void wxbConfigPanel::ClearRowChoices(const char* title) {
+void wxbConfigPanel::ClearRowChoices(const wxChar* title) {
int i;
if ((i = FindRow(title)) > -1) {
(*config)[i].Clear();
}
}
-void wxbConfigPanel::AddRowChoice(const char* title, wxString value) {
+void wxbConfigPanel::AddRowChoice(const wxChar* title, wxString value) {
int i;
if ((i = FindRow(title)) > -1) {
(*config)[i].Add(value);
}
}
-int wxbConfigPanel::FindRow(const char* title) {
+int wxbConfigPanel::FindRow(const wxChar* title) {
unsigned int i;
for (i = last; i < config->GetCount(); i++) {
return -1;
}
+int wxbConfigPanel::GetRowCount(const wxChar* title)
+{
+ int i;
+ if ((i = FindRow(title)) > -1) {
+ return (*config)[i].GetCount();
+ }
+
+ return -1;
+}
+
void wxbConfigPanel::EnableApply(bool enable) {
cfgOk->Enable(!enable);
if (cfgApply) cfgApply->Enable(enable);