void ProjectOptionsDlg::OnFileToggleMarkClick(wxCommandEvent& /*event*/) { wxListBox* lstTargets = XRCCTRL(*this, "lstBuildTarget", wxListBox); int targetIdx = lstTargets->GetSelection(); ProjectBuildTarget* target = m_Project->GetBuildTarget(targetIdx); wxCheckListBox* list = XRCCTRL(*this, "lstFiles", wxCheckListBox); for (int i = 0; i < (int)list->GetCount(); ++i) { ProjectFile* pf = m_Project->GetFile(i); list->Check(i, !list->IsChecked(i)); if (list->IsChecked(i)) pf->AddBuildTarget(target->GetTitle()); else pf->RemoveBuildTarget(target->GetTitle()); } }
void ProjectOptionsDlg::DoBeforeTargetChange(bool force) { wxListBox* lstTargets = XRCCTRL(*this, "lstBuildTarget", wxListBox); // if no previously selected target, exit if (m_Current_Sel == -1) return; if (force || lstTargets->GetSelection() != m_Current_Sel) { // selected another build target // save changes to the previously selected target wxArrayString array; ProjectBuildTarget* target = m_Project->GetBuildTarget(m_Current_Sel); if (!target) return; target->SetTargetType(TargetType(XRCCTRL(*this, "cmbProjectType", wxComboBox)->GetSelection())); wxFileName fname(XRCCTRL(*this, "txtOutputFilename", wxTextCtrl)->GetValue()); // fname.Normalize(wxPATH_NORM_ALL & ~wxPATH_NORM_CASE, m_Project->GetBasePath()); // fname.MakeRelativeTo(m_Project->GetBasePath()); target->SetOutputFilename(fname.GetFullPath()); fname.Assign(XRCCTRL(*this, "txtObjectDir", wxTextCtrl)->GetValue()); // fname.Normalize(wxPATH_NORM_ALL & ~wxPATH_NORM_CASE, m_Project->GetBasePath()); // fname.MakeRelativeTo(m_Project->GetBasePath()); target->SetObjectOutput(fname.GetFullPath()); target->SetCreateHex(XRCCTRL(*this, "chkCreateHex", wxCheckBox)->GetValue()); // files options wxCheckListBox* list = XRCCTRL(*this, "lstFiles", wxCheckListBox); int count = list->GetCount(); for (int i = 0; i < count; ++i) { ProjectFile* pf = m_Project->GetFile(i); if (!pf) break; if (list->IsChecked(i)) pf->AddBuildTarget(target->GetTitle()); else pf->RemoveBuildTarget(target->GetTitle()); } } }