2013-10-30 03:25:57 -04:00
|
|
|
|
<?xml version="1.0" encoding="utf-8"?>
|
|
|
|
|
<!--
|
|
|
|
|
|
|
|
|
|
This file contains visualizers for Visual Studio 2012+ debugger.
|
|
|
|
|
It should be copied into the %USERPROFILE%\My Documents\Visual Studio 2012\Visualizers\
|
|
|
|
|
directory (or the corresponding location for newer versions, e.g. ...2013\Visualizers).
|
|
|
|
|
|
|
|
|
|
Introductory reference for the format:
|
|
|
|
|
http://blogs.msdn.com/b/vcblog/archive/2012/07/12/10329460.aspx
|
|
|
|
|
http://code.msdn.microsoft.com/windowsdesktop/Writing-type-visualizers-2eae77a2#content
|
|
|
|
|
-->
|
|
|
|
|
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
|
2014-06-15 08:58:12 -04:00
|
|
|
|
<!-- We want to avoid showing 'L' before the string, this is useless and
|
|
|
|
|
makes the display less readable. But we still do want to put quotes
|
|
|
|
|
around the string to show that it is, in fact, a string. So we use
|
|
|
|
|
"sb" qualifier to get rid of L"..." around the string and then add
|
|
|
|
|
the quotes back. This also has a (nice) side effect of not doubling
|
|
|
|
|
the backslashes inside the string. -->
|
2013-10-30 03:25:57 -04:00
|
|
|
|
<Type Name="wxString">
|
2014-06-15 08:58:12 -04:00
|
|
|
|
<DisplayString>"{m_impl,sb}"</DisplayString>
|
2013-10-30 03:25:57 -04:00
|
|
|
|
<StringView>m_impl</StringView>
|
|
|
|
|
</Type>
|
|
|
|
|
|
|
|
|
|
<Type Name="wxPoint">
|
|
|
|
|
<DisplayString>{x}, {y}</DisplayString>
|
|
|
|
|
</Type>
|
|
|
|
|
|
|
|
|
|
<Type Name="wxSize">
|
|
|
|
|
<DisplayString>{x} × {y}</DisplayString>
|
|
|
|
|
</Type>
|
|
|
|
|
|
|
|
|
|
<Type Name="wxRect">
|
|
|
|
|
<DisplayString>{x}, {y} {width} × {height}</DisplayString>
|
|
|
|
|
</Type>
|
|
|
|
|
|
|
|
|
|
<Type Name="wxLongLong">
|
|
|
|
|
<DisplayString>{m_ll}</DisplayString>
|
|
|
|
|
</Type>
|
|
|
|
|
|
|
|
|
|
<Type Name="wxULongLong">
|
|
|
|
|
<DisplayString>{m_ll}</DisplayString>
|
|
|
|
|
</Type>
|
2014-06-14 17:03:12 -04:00
|
|
|
|
|
|
|
|
|
<Type Name="wxArrayString">
|
|
|
|
|
<DisplayString Condition="m_nCount==0">empty</DisplayString>
|
|
|
|
|
<DisplayString Condition="m_nCount==1">{m_pItems[0]}</DisplayString>
|
|
|
|
|
<DisplayString Condition="m_nCount==2">{m_pItems[0]} and {m_pItems[1]}</DisplayString>
|
|
|
|
|
<DisplayString>size={m_nCount}: {m_pItems[0]}, {m_pItems[1]}, ...</DisplayString>
|
|
|
|
|
<Expand>
|
|
|
|
|
<ArrayItems>
|
|
|
|
|
<Size>m_nCount</Size>
|
|
|
|
|
<ValuePointer>m_pItems</ValuePointer>
|
|
|
|
|
</ArrayItems>
|
|
|
|
|
</Expand>
|
|
|
|
|
</Type>
|
|
|
|
|
|
|
|
|
|
<!--
|
|
|
|
|
Defining visualizer for wxListBase is not really useful, so do it for
|
|
|
|
|
the most commonly used "concrete" list type.
|
|
|
|
|
-->
|
|
|
|
|
<Type Name="wxWindowList">
|
|
|
|
|
<DisplayString>size={m_count}</DisplayString>
|
|
|
|
|
<Expand>
|
|
|
|
|
<Item Name="[size]">m_count</Item>
|
|
|
|
|
<LinkedListItems>
|
|
|
|
|
<Size>m_count</Size>
|
|
|
|
|
<HeadPointer>m_nodeFirst</HeadPointer>
|
|
|
|
|
<NextPointer>m_next</NextPointer>
|
|
|
|
|
<ValueNode>(wxWindow*)m_data</ValueNode>
|
|
|
|
|
</LinkedListItems>
|
|
|
|
|
</Expand>
|
|
|
|
|
</Type>
|
|
|
|
|
|
|
|
|
|
<Type Name="wxVector<*>">
|
|
|
|
|
<DisplayString>size={m_size}</DisplayString>
|
|
|
|
|
<Expand>
|
|
|
|
|
<Item Name="[size]">m_size</Item>
|
|
|
|
|
<Item Name="[capacity]">m_capacity</Item>
|
|
|
|
|
<ArrayItems>
|
|
|
|
|
<Size>m_size</Size>
|
|
|
|
|
<ValuePointer>m_values</ValuePointer>
|
|
|
|
|
</ArrayItems>
|
|
|
|
|
</Expand>
|
|
|
|
|
</Type>
|
2013-10-30 03:25:57 -04:00
|
|
|
|
</AutoVisualizer>
|