Add support for reading multi string values to wxRegKey.
Add a wxRegKey::QueryValue() overload working with REG_MULTI_SZ values. Closes #16653. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78136 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -105,6 +105,7 @@ public:
|
||||
|
||||
// information
|
||||
bool IsKeySelected() const;
|
||||
static const char *ValueTypeName(wxRegKey::ValueType type);
|
||||
|
||||
private:
|
||||
// structure describing a registry key/value
|
||||
@@ -1054,7 +1055,6 @@ bool RegTreeCtrl::TreeNode::OnExpand()
|
||||
{
|
||||
case wxRegKey::Type_String:
|
||||
case wxRegKey::Type_Expand_String:
|
||||
case wxRegKey::Type_Multi_String:
|
||||
{
|
||||
wxString strValue;
|
||||
icon = RegImageList::TextValue;
|
||||
@@ -1063,6 +1063,22 @@ bool RegTreeCtrl::TreeNode::OnExpand()
|
||||
}
|
||||
break;
|
||||
|
||||
case wxRegKey::Type_Multi_String:
|
||||
{
|
||||
wxArrayString names, values;
|
||||
m_pKey->QueryValue(str, names, values);
|
||||
strItem += "(multi string) ";
|
||||
for ( size_t i = 0; i < names.GetCount(); i++ )
|
||||
{
|
||||
if ( i > 0 )
|
||||
strItem += wxT (", ");
|
||||
strItem += names[i] + wxT ("=") + values[i];
|
||||
}
|
||||
|
||||
icon = RegImageList::TextValue;
|
||||
}
|
||||
break;
|
||||
|
||||
case wxRegKey::Type_None:
|
||||
// @@ handle the error...
|
||||
icon = RegImageList::BinaryValue;
|
||||
@@ -1367,6 +1383,37 @@ void RegTreeCtrl::SetRegistryView(wxRegKey::WOW64ViewMode viewMode)
|
||||
m_pRoot->Refresh();
|
||||
}
|
||||
|
||||
const char *RegTreeCtrl::ValueTypeName(wxRegKey::ValueType type)
|
||||
{
|
||||
switch ( type )
|
||||
{
|
||||
case wxRegKey::Type_None:
|
||||
return "none";
|
||||
case wxRegKey::Type_String:
|
||||
return "string";
|
||||
case wxRegKey::Type_Expand_String:
|
||||
return "expand_string";
|
||||
case wxRegKey::Type_Binary:
|
||||
return "binary";
|
||||
case wxRegKey::Type_Dword:
|
||||
return "number";
|
||||
case wxRegKey::Type_Dword_big_endian:
|
||||
return "big endian number";
|
||||
case wxRegKey::Type_Link:
|
||||
return "symbolic link";
|
||||
case wxRegKey::Type_Multi_String:
|
||||
return "multiple strings";
|
||||
case wxRegKey::Type_Resource_list:
|
||||
return "resource list in the resource map";
|
||||
case wxRegKey::Type_Full_resource_descriptor:
|
||||
return "resource list in the hardware description";
|
||||
case wxRegKey::Type_Resource_requirements_list:
|
||||
return "resource requirements list";
|
||||
default:
|
||||
return "unrecognized";
|
||||
}
|
||||
}
|
||||
|
||||
void RegTreeCtrl::ShowProperties()
|
||||
{
|
||||
wxTreeItemId lCurrent = GetSelection();
|
||||
@@ -1405,8 +1452,7 @@ void RegTreeCtrl::ShowProperties()
|
||||
value,
|
||||
parent->m_strName.c_str(),
|
||||
key.GetValueType(value),
|
||||
key.IsNumericValue(value) ? wxT("numeric") : wxT("string"));
|
||||
|
||||
ValueTypeName(key.GetValueType (value)));
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user