7d0b352485
This makes debugging wxGrid code much more pleasant.
94 lines
3.3 KiB
XML
94 lines
3.3 KiB
XML
<?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">
|
||
<!-- 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. -->
|
||
<Type Name="wxString">
|
||
<DisplayString>"{m_impl,sb}"</DisplayString>
|
||
<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>
|
||
|
||
<Type Name="wxGridCellCoords">
|
||
<DisplayString>R{m_row + 1}C{m_col + 1}</DisplayString>
|
||
</Type>
|
||
|
||
<Type Name="wxGridBlockCoords">
|
||
<DisplayString>R{m_topRow + 1}C{m_leftCol + 1}:R{m_bottomRow + 1}C{m_rightCol + 1}</DisplayString>
|
||
</Type>
|
||
|
||
<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>
|
||
</AutoVisualizer>
|