Removed DebugThread. Take advantage of the fact that buffering is done in runtime. No need to poll for traces more than ten per second, then use simple wxTimer for that. Also removed Debug Lock since now everything happens in wx' mainloop.
<?xml version="1.0"?>
<!-- generated by wxGlade 0.7.2 on Tue Jun 6 12:26:48 2017 -->
<application class="" encoding="UTF-8" for_version="2.8" header_extension=".h" indent_amount="4" indent_symbol="space" is_template="0" language="python" name="" option="0" overwrite="0" path="..py.py" source_extension=".cpp" top_window="wxglade_hmi" use_gettext="1" use_new_namespace="1">
<object class="Class_wxglade_hmi" name="wxglade_hmi" base="EditFrame">
<style>wxDEFAULT_FRAME_STYLE|wxMAXIMIZE</style>
<title>frame_1</title>
<object class="wxFlexGridSizer" name="grid_sizer_1" base="EditFlexGridSizer">
<hgap>0</hgap>
<growable_rows>0</growable_rows>
<rows>1</rows>
<growable_cols>0</growable_cols>
<cols>4</cols>
<vgap>0</vgap>
<object class="sizeritem">
<flag>wxALIGN_CENTER</flag>
<border>0</border>
<option>1</option>
<object class="ThreeDee" name="window_1" base="CustomWidget">
<extracode># WHERE IS THAT ?\nprint "hello"\n</extracode>
<arguments>
<argument>$parent</argument>
<argument>$id</argument>
</arguments>
<size>400,400</size>
</object>
</object>
<object class="sizeritem">
<flag>wxEXPAND</flag>
<border>0</border>
<option>1</option>
<object class="wxFlexGridSizer" name="sizer_1" base="EditFlexGridSizer">
<hgap>0</hgap>
<growable_rows>0</growable_rows>
<rows>2</rows>
<cols>1</cols>
<vgap>0</vgap>
<object class="sizeritem">
<flag>wxEXPAND</flag>
<border>0</border>
<option>1</option>
<object class="wxBoxSizer" name="sizer_2" base="EditBoxSizer">
<orient>wxVERTICAL</orient>
<object class="sizerslot" />
<object class="sizerslot" />
<object class="sizerslot" />
<object class="sizerslot" />
</object>
</object>
<object class="sizeritem">
<flag>wxEXPAND</flag>
<border>0</border>
<option>1</option>
<object class="wxGridSizer" name="sizer_3" base="EditGridSizer">
<hgap>0</hgap>
<rows>6</rows>
<cols>2</cols>
<vgap>0</vgap>
<object class="sizerslot" />
<object class="sizerslot" />
<object class="sizerslot" />
<object class="sizerslot" />
<object class="sizerslot" />
<object class="sizerslot" />
<object class="sizerslot" />
<object class="sizerslot" />
<object class="sizerslot" />
<object class="sizerslot" />
</object>
</object>
</object>
</object>
<object class="sizeritem">
<border>0</border>
<option>0</option>
<object class="wxToggleButton" name="DrawTestBt" base="EditToggleButton">
<label>Please Draw!</label>
<events>
<handler event="EVT_TOGGLEBUTTON">SetPLCTestBtnGlobalVar</handler>
</events>
</object>
</object>
<object class="sizeritem">
<border>0</border>
<option>0</option>
<object class="wxToggleButton" name="DrawTestBt2" base="EditToggleButton">
<label>Please Draw copy!</label>
<events>
<handler event="EVT_TOGGLEBUTTON">SetPLCTestBtn2GlobalVar</handler>
</events>
</object>
</object>
</object>
</object>
</application>