📄 configitem.cpp
字号:
return; switch (GetOptionFlavor()) { case nutFlavorBool: case nutFlavorBoolData: if (IsEnabled()) { wxGetApp().GetNutConfDoc()->SetActive(*this, !IsActive()); } default: break; }}/*! * \brief Launch external file viewer. */bool CConfigItem::ViewHeaderFile(){ bool rc = false; wxString strFile(GetFilename()); if (!strFile.IsEmpty()) { CNutConfDoc *pDoc = wxGetApp().GetNutConfDoc(); if (pDoc->GetBuildTree().IsEmpty()) { wxMessageBox(wxT("Cannot display header file until configuration is saved")); } else { strFile.Prepend(wxT("/")); strFile.Prepend(pDoc->GetBuildTree()); //rc = wxGetApp().Launch(strFile, "notepad.exe"); rc = wxGetApp().Launch(strFile, wxEmptyString); } } return rc;}/*! * \brief Return the item's brief description. */wxString CConfigItem::GetBriefDescription() const{ wxString str; if (m_compo) { if (m_compo->nc_brief) { str = wxString(m_compo->nc_brief,wxConvLocal); } else { str = wxString(m_compo->nc_name,wxConvLocal); } } else if (m_option) { if (m_option->nco_brief) { str = wxString(m_option->nco_brief,wxConvLocal); } else { str = wxString(m_option->nco_name,wxConvLocal); } } else { str = wxT("Nut/OS Components"); } return str;}wxString CConfigItem::GetName() const{ wxString str; if (m_compo) { str = wxString(m_compo->nc_name,wxConvLocal); } else if (m_option) { str = wxString(m_option->nco_name,wxConvLocal); } return str;}wxString CConfigItem::GetDescription() const{ wxString str; if (m_compo) { str = wxString(m_compo->nc_description,wxConvLocal); } else if (m_option) { str = wxString(m_option->nco_description,wxConvLocal); } return str;}nutOptionFlavor CConfigItem::GetOptionFlavor() const{ if (m_option) { if (m_option->nco_flavor) { if (strcasecmp(m_option->nco_flavor, "boolean") == 0) { return nutFlavorBool; } if (strcasecmp(m_option->nco_flavor, "booldata") == 0) { return nutFlavorBoolData; } } return nutFlavorData; } return nutFlavorNone;}nutOptionType CConfigItem::GetOptionType() const{ if (m_option) { if (m_option->nco_type) { if (strcasecmp(m_option->nco_type, "integer") == 0) { return nutInteger; } if (strcasecmp(m_option->nco_type, "bool") == 0) { return nutBool; } if (strcasecmp(m_option->nco_type, "enumerated") == 0) { return nutEnumerated; } } return nutString; } return nutOptionTypeNone;}wxString CConfigItem::GetDisplayValue() const{ wxString str; switch (GetOptionType()) { case nutEnumerated: case nutInteger: case nutString: str = StringValue(); break; } return str;}/*! * \brief Return configuration item as a string. */wxString CConfigItem::StringValue() const{ if (m_option) { if (m_option->nco_value) { return wxString(m_option->nco_value,wxConvLocal); } if (GetOptionType() == nutEnumerated) { if (m_option->nco_choices && m_option->nco_choices[0]) { return wxString(m_option->nco_choices[0],wxConvLocal); } } } return wxEmptyString;}wxString CConfigItem::GetFilename() const{ if (m_option && m_option->nco_file) { return wxString(m_option->nco_file,wxConvLocal); } return wxEmptyString;}wxString CConfigItem::GetMacro() const{ if (m_option && m_option->nco_name) { return wxString(m_option->nco_name,wxConvLocal); } return wxEmptyString;}wxString CConfigItem::GetRequirementList() const{ wxString str; if (m_option && m_option->nco_requires) { for (int i = 0; m_option->nco_requires[i]; i++) { if(!str.IsEmpty()) { str += wxT(", "); } str += wxString(m_option->nco_requires[i],wxConvLocal); } } if (m_compo && m_compo->nc_requires) { for (int i = 0; m_compo->nc_requires[i]; i++) { if(!str.IsEmpty()) { str += wxT(", "); } str += wxString(m_compo->nc_requires[i],wxConvLocal); } } return str;}wxString CConfigItem::GetProvisionList() const{ wxString str; if (m_option && m_option->nco_provides) { for (int i = 0; m_option->nco_provides[i]; i++) { if(!str.IsEmpty()) { str += wxT(", "); } str += wxString(m_option->nco_provides[i],wxConvLocal); } } if (m_compo && m_compo->nc_provides) { for (int i = 0; m_compo->nc_provides[i]; i++) { if(!str.IsEmpty()) { str += wxT(", "); } str += wxString(m_compo->nc_provides[i],wxConvLocal); } } return str;}int CConfigItem::GetEnumStrings(wxArrayString & arEnumStrings) const{ if (m_option && m_option->nco_choices) { for (int i = 0; m_option->nco_choices[i]; i++) { arEnumStrings.Add(wxString(m_option->nco_choices[i],wxConvLocal)); } } return arEnumStrings.GetCount();}/*! * \brief Check if this is a boolean item. */bool CConfigItem::HasBool() const{ if (m_option && m_option->nco_flavor) { if (strcasecmp(m_option->nco_flavor, "boolean") == 0 || strcasecmp(m_option->nco_flavor, "booldata") == 0) { return true; } } return false;}/*! * \brief Check if this item is enabled. * * An item is disabled, if it requires other items being activated. */bool CConfigItem::IsEnabled() const{ if (m_option) { return m_option->nco_enabled != 0; } if (m_compo) { return m_compo->nc_enabled != 0; } return false;}/*! * \brief Check if this item is active. * * An option is activated by the user or automatically by active_if. * Only options may become incative, components are always active. */bool CConfigItem::IsActive() const{ if (m_option) { if (HasBool()) { if(m_option->nco_active == 0) { if(m_option->nco_active_if) { CNutConfDoc *pDoc = wxGetApp().GetNutConfDoc(); m_option->nco_active = pDoc->IsOptionActive(m_option->nco_active_if); } } return m_option->nco_active != 0; } m_option->nco_active = 1; } return true;}/*! * \brief Set boolean value of this item. */void CConfigItem::SetActive(bool ena){ if (m_option) { m_option->nco_active = ena; }}bool CConfigItem::CanEdit() const{ if (!IsEnabled()) return false; if (GetConfigType() != nutOption) return false; if (GetOptionFlavor() != nutFlavorData && GetOptionFlavor() != nutFlavorBoolData) return false; return true;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -