⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 configitem.cpp

📁 含有完整TCP/IP PPP协议的嵌入式操作系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
        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 + -