<?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">
    <Type Name="wxString">
        <DisplayString>{m_impl}</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="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>
