wxWidgets/misc/msvc/wxWidgets.natvis
Vadim Zeitlin 7d0b352485 Add MSVS debug visualizers for wxGrid{Cell,Block}Coords
This makes debugging wxGrid code much more pleasant.
2020-04-12 02:38:37 +02:00

94 lines
3.3 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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&lt;*&gt;">
<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>