Files
wxWidgets/misc/msvc/wxWidgets.natvis
T
Lauri NurmiandVadim Zeitlin 78b6140d44 Recommend adding wxWidgets.natvis to one's project
The primary documented way of using a .natvis, in the Microsoft
documentation linked to, is to add it to one's project, not to copy
it under %USERPROFILE%.

Closes #26452.
2026-05-15 02:05:46 +02:00

88 lines
3.2 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 debugger.
It should be added to your Visual Studio project that is using wxWidgets.
It can also be copied into the %USERPROFILE%\My Documents\Visual Studio 2015\Visualizers\
directory (or the corresponding location for newer versions, e.g. ...2017\Visualizers).
More information can be found at https://learn.microsoft.com/en-us/visualstudio/debugger/create-custom-views-of-native-objects
-->
<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
"sub" or "s8b" 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 Condition="sizeof(m_impl[0])==2">"{m_impl,sub}"</DisplayString> <!-- wxUSE_UNICODE_WCHAR -->
<DisplayString Condition="sizeof(m_impl[0])==1">"{m_impl,s8b}"</DisplayString> <!-- wxUSE_UNICODE_UTF8 -->
<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>
<Type Name="wxWindow">
<DisplayString>$(Type) HWND={m_hWnd,x}</DisplayString>
</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>
</AutoVisualizer>