SCI Seg3D Mailing List

Text archives Help


[Seg3D] Re: doing something to a data volume


Chronological Thread 
  • From: Ramón Casero Cañas <ramon.casero@comlab.ox.ac.uk>
  • To: seg3d@sci.utah.edu
  • Subject: [Seg3D] Re: doing something to a data volume
  • Date: Mon, 12 Oct 2009 14:05:34 +0100

Ramón Casero Cañas wrote:

Hi,

I'm trying to do something trivial to a loaded data volume in Seg3D, but I don't seem to be able to even duplicate an existing one.

I have attached a full patch for

URL: https://code.sci.utah.edu/svn/cibc/cibc/branches/release_4.2/SCIRun
Repository Root: https://code.sci.utah.edu/svn/cibc
Repository UUID: aee3fe44-4ef4-0310-ac56-cc817e9d0e43
Revision: 44493
Node Kind: directory
Schedule: normal
Last Changed Author: krismz
Last Changed Rev: 44491
Last Changed Date: 2009-09-17 22:31:01 +0100 (Thu, 17 Sep 2009)

to reproduce the error, if that helps.

Cheers,

Ramon.


--
Ramón Casero Cañas, DPhil

Computational Biology, Computing Laboratory
University of Oxford
Wolfson Building, Parks Rd
Oxford OX1 3QD

tlf     +44 (0) 1865 610807
web     http://web.comlab.ox.ac.uk/people/Ramon.CaseroCanas
photos  http://www.flickr.com/photos/rcasero/
Index: src/Applications/Seg3D/TestTool.cc
===================================================================
--- src/Applications/Seg3D/TestTool.cc	(revision 0)
+++ src/Applications/Seg3D/TestTool.cc	(revision 0)
@@ -0,0 +1,138 @@
+//    File   : TestTool.cc
+//    Author : Ramon Casero
+//    Date   : Tue Oct 6 19:34:00 2009
+
+#include <Applications/Seg3D/Painter.h>
+#include <Applications/Seg3D/TestTool.h>
+#include <Core/Events/LoadVolumeEvent.h>
+#include <Core/Events/EventManager.h>
+
+//#include <Applications/Seg3D/GuiCode/testtoolpanel.h>
+#include <Applications/Seg3D/GuiCode/seg3devents.h>
+
+#include <sci_comp_warn_fixes.h>
+
+#include <stdlib.h>
+
+#include <iostream>
+
+#ifdef _WIN32
+#  undef SCISHARE
+#  define SCISHARE __declspec(dllimport)
+#else
+#  define SCISHARE
+#endif
+
+namespace SCIRun {
+
+TestTool::TestTool( Painter *painter ) :
+  BaseTool( "Paint Test" ),
+  painter_( painter ),
+  nIter_( 0 )
+{
+}
+
+
+TestTool::~TestTool()
+{
+}
+
+
+BaseTool::propagation_state_e
+TestTool::process_event(event_handle_t event)
+{
+  UpdateTestIterationsEvent *rchange =
+    dynamic_cast<UpdateTestIterationsEvent *>( event.get_rep() );
+  if ( rchange )
+  {
+    const int nIter = (int)rchange->get_nIter();
+
+
+    std::cout << "Skinner: nIter = " << nIter << std::endl;
+
+  }
+    
+  if (dynamic_cast<FinishEvent *>(event.get_rep())) {
+    this->finish();
+  }
+
+  return CONTINUE_E;
+}
+
+
+void
+TestTool::set_nIter( int nIter )
+{
+
+  nIter_ = nIter;
+
+}
+
+BaseTool::propagation_state_e
+TestTool::finish()
+{
+  if (!painter_->current_volume_.get_rep())
+    {
+      painter_->set_status("Test tool requires an active volume.");
+      return STOP_E;
+    }
+
+  // create new NRRD volume for the data
+  NrrdDataHandle nout_handle = new NrrdData();
+
+  // make a new volume similar to the old volume.
+  NrrdVolumeHandle newvol =
+    new NrrdVolume(painter_, painter_->current_volume_->name_,
+                   nout_handle, painter_->current_volume_->label_);
+  if (newvol->label_)
+  {
+    newvol->set_label_color(painter_->current_volume_->get_label_color());
+  }
+
+  // replace the old volume with the new volume.
+  NrrdVolumeHandle oldvol = painter_->current_volume_;
+  size_t loc = painter_->remove_volume(painter_->current_volume_, false);
+  loc = loc + 1; // We're off by one for some reason.
+  painter_->insert_volume(newvol, loc);
+  painter_->current_volume_ = newvol;
+
+  // Reset the volume rendering.
+  if (painter_->current_volume_ == painter_->current_vrender_target_ &&
+      !painter_->current_vrender_target_deferred_)
+  {
+    LoadVolumeEvent *lve =
+      new LoadVolumeEvent(painter_->current_vrender_target_->nrrd_handle_,
+                          "", false);
+    EventManager::add_event(lve);
+  }
+
+  // Push this undo item.
+  UndoHandle undo = new UndoReplaceLayer(painter_, "Undo Test",
+                                         oldvol, newvol, loc);
+  painter_->push_undo(undo);
+
+  // Center the probe on the new cropped volume.
+  const Point center = painter_->current_volume_->center();
+  for (unsigned int i = 0; i < painter_->windows_.size(); ++ i) {
+    painter_->windows_[i]->center_ = center;
+  }
+
+  // Reset the slices to match the new volume.
+  painter_->rebuild_layer_buttons();
+  painter_->extract_all_window_slices();
+  painter_->redraw_all();
+
+  // Autoview to the cropped volume.
+  event_handle_t empty;
+  painter_->Autoview(empty);
+
+  painter_->hide_tool_panel();
+  
+  std::cout << "TestTool::finish(): I have been told to finish" <<
+  std::endl;
+
+  return CONTINUE_E;
+}
+
+}
+
Index: src/Applications/Seg3D/Seg3DFrame.cc
===================================================================
--- src/Applications/Seg3D/Seg3DFrame.cc	(revision 44493)
+++ src/Applications/Seg3D/Seg3DFrame.cc	(working copy)
@@ -70,6 +70,7 @@
 #include <Applications/Seg3D/GuiCode/resampletool.h>
 #include <Applications/Seg3D/GuiCode/thresholdtoolpanel.h>
 #include <Applications/Seg3D/GuiCode/windowleveltoolpanel.h>
+#include <Applications/Seg3D/GuiCode/testtoolpanel.h>
 
 // #define USING_HELP_FILES
 
@@ -146,6 +147,7 @@
   EVT_MENU(MENU_TOOL_WINDOWLEVEL, Seg3DFrame::ToolWindowLevel)
   EVT_MENU(MENU_TOOL_MOVESCALE, Seg3DFrame::ToolMoveScale)
   EVT_MENU(MENU_TOOL_MEASUREMENT, Seg3DFrame::ToolMeasurement)
+  EVT_MENU(MENU_TOOL_TEST, Seg3DFrame::ToolTest)
 
   EVT_MENU(MENU_FILTER_C_A_D_F, Seg3DFrame::Filter_CADF)
   EVT_MENU(MENU_FILTER_C_C_F, Seg3DFrame::Filter_CCF)
@@ -302,6 +304,11 @@
   tools_sizer->Show(movescaletoolpanel_, false);
   tools_sizer->Layout();
 
+  testtoolpanel_ = new TestToolPanel(toolsPanel_);
+  tools_sizer->Add(testtoolpanel_, 0, 0, 0);
+  tools_sizer->Show(testtoolpanel_, false);
+  tools_sizer->Layout();
+
   intensitycorrectionfilterpanel_ = new IntensityCorrectionFilterPanel(toolsPanel_);
   tools_sizer->Add(intensitycorrectionfilterpanel_, 0, 0, 0);
   tools_sizer->Show(intensitycorrectionfilterpanel_, false);
@@ -460,6 +467,7 @@
   winMenu->Append(MENU_TOOL_WINDOWLEVEL, _T("&Window/Level Tool"));
   winMenu->Append(MENU_TOOL_MOVESCALE, _T("&Move/Scale Tool"));
   winMenu->Append(MENU_TOOL_MEASUREMENT, _T("Measurement Tool"));
+  winMenu->Append(MENU_TOOL_TEST, _T("Test Tool"));
 
   winMenu->AppendSeparator();
   // Speedlines tools
@@ -1410,6 +1418,11 @@
   SCIRun::Painter::ThrowSkinnerSignal("Painter::StartMeasurementTool");
 }
 
+void Seg3DFrame::ToolTest( wxCommandEvent& WXUNUSED(event) )
+{
+  ShowTool(testtoolpanel_, "Painter::StartTestTool", "Test Tool");
+}
+
 void
 Seg3DFrame::Filter_CADF( wxCommandEvent& WXUNUSED(event) )
 {
Index: src/Applications/Seg3D/PainterSignalTargets.cc
===================================================================
--- src/Applications/Seg3D/PainterSignalTargets.cc	(revision 44493)
+++ src/Applications/Seg3D/PainterSignalTargets.cc	(working copy)
@@ -51,6 +51,7 @@
 #include <Applications/Seg3D/FloodFillCopyTool.h>
 #include <Applications/Seg3D/LineTool.h>
 #include <Applications/Seg3D/PolylineTool.h>
+#include <Applications/Seg3D/TestTool.h>
 #include <Applications/Seg3D/ThresholdTool.h>
 #include <Applications/Seg3D/WindowLevelTool.h>
 #include <Applications/Seg3D/LineTool.h>
@@ -136,6 +137,7 @@
   REGISTER_CATCHER_TARGET(Painter::StartThresholdTool);
   REGISTER_CATCHER_TARGET(Painter::StartWindowLevelTool);
   REGISTER_CATCHER_TARGET(Painter::StartMeasurementTool);
+  REGISTER_CATCHER_TARGET(Painter::StartTestTool);
 
   REGISTER_CATCHER_TARGET(Painter::Autoview);
   REGISTER_CATCHER_TARGET(Painter::CopyLabel);
@@ -213,6 +215,7 @@
   REGISTER_CATCHER_TARGET(Painter::UpdateBrushRadius);
   REGISTER_CATCHER_TARGET(Painter::UpdateThresholdTool);
   REGISTER_CATCHER_TARGET(Painter::UpdateWindowLevelTool);
+  REGISTER_CATCHER_TARGET(Painter::UpdateTestIterations);
 
   REGISTER_CATCHER_TARGET(Painter::OpenLabelColorDialog);
   REGISTER_CATCHER_TARGET(Painter::SetLabelColor);
@@ -406,7 +409,6 @@
   return CONTINUE_E;
 }
 
-
 BaseTool::propagation_state_e 
 Painter::StartResampleTool(event_handle_t &event)
 {
@@ -439,6 +441,15 @@
 }
 
 
+BaseTool::propagation_state_e
+Painter::StartTestTool(event_handle_t &event)
+{
+  tm_.set_tool(new TestTool(this), 25);
+
+  return CONTINUE_E;
+}
+
+
 BaseTool::propagation_state_e 
 Painter::Autoview(event_handle_t &)
 {
@@ -1083,6 +1094,16 @@
   return CONTINUE_E;
 }
 
+BaseTool::propagation_state_e
+Painter::UpdateTestIterations( event_handle_t &event )
+{
+  const int nIter 
+    = get_vars()->get_int( "Painter::testtool_nIter" );
+  event_handle_t sevent 
+    =  new SCIRun::UpdateTestIterationsEvent( nIter );
+  tm_.propagate_event( sevent );
+  return CONTINUE_E;
+}
 
 BaseTool::propagation_state_e
 Painter::OpenLabelColorDialog(event_handle_t &event)
Index: src/Applications/Seg3D/TestTool.h
===================================================================
--- src/Applications/Seg3D/TestTool.h	(revision 0)
+++ src/Applications/Seg3D/TestTool.h	(revision 0)
@@ -0,0 +1,29 @@
+//    File   : TestTool.h
+//    Author : Ramon Casero
+//    Date   : Tue Oct 6 19:34:00 2009
+
+#ifndef SEG3D_TestTool_h
+#define SEG3D_TestTool_h
+
+#include <Core/Events/BaseTool.h>
+
+namespace SCIRun {
+
+class TestTool : virtual public BaseTool {
+public:
+  TestTool(Painter *);
+  ~TestTool();
+  propagation_state_e   process_event( event_handle_t );
+  propagation_state_e   finish();
+
+private:
+  void                  set_nIter( int nIter );
+
+  Painter *             painter_;
+  int                   nIter_;
+
+};
+  
+}
+
+#endif
Index: src/Applications/Seg3D/data/Seg3D.xrc
===================================================================
--- src/Applications/Seg3D/data/Seg3D.xrc	(revision 44493)
+++ src/Applications/Seg3D/data/Seg3D.xrc	(working copy)
@@ -3734,6 +3734,73 @@
             </object>
         </object>
     </object>
+    <object class="wxPanel" name="ID_TESTTOOLPANEL" subclass="TestToolPanel">
+        <size>200,-1</size>
+        <title>TestToolPanel</title>
+        <font>
+            <size>10</size>
+            <family>swiss</family>
+            <face>Arial</face>
+        </font>
+        <object class="wxGridSizer">
+            <cols>1</cols>
+            <rows>2</rows>
+            <vgap>0</vgap>
+            <hgap>0</hgap>
+            <object class="sizeritem">
+                <flag>wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL</flag>
+                <border>5</border>
+                <object class="wxGridSizer">
+                    <cols>2</cols>
+                    <rows>1</rows>
+                    <vgap>0</vgap>
+                    <hgap>0</hgap>
+                    <object class="sizeritem">
+                        <flag>wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL</flag>
+                        <border>5</border>
+                        <object class="wxStaticText" name="wxID_STATIC">
+                            <label>Iterations</label>
+                        </object>
+                    </object>
+                    <object class="sizeritem">
+                        <flag>wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL</flag>
+                        <border>5</border>
+                        <object class="wxSpinCtrl" name="ID_SPINCTRL">
+                            <style>wxSP_ARROW_KEYS</style>
+                            <value>5</value>
+                            <min>0</min>
+                            <max>100</max>
+                        </object>
+                    </object>
+                </object>
+            </object>
+            <object class="sizeritem">
+                <flag>wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL</flag>
+                <border>5</border>
+                <object class="wxGridSizer">
+                    <cols>2</cols>
+                    <rows>1</rows>
+                    <vgap>0</vgap>
+                    <hgap>0</hgap>
+                    <object class="sizeritem">
+                        <flag>wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL</flag>
+                        <border>5</border>
+                        <object class="wxButton" name="START_BUTTON">
+                            <label>Start</label>
+                            <default>1</default>
+                        </object>
+                    </object>
+                    <object class="sizeritem">
+                        <flag>wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL</flag>
+                        <border>5</border>
+                        <object class="wxButton" name="STOP_BUTTON">
+                            <label>Stop</label>
+                        </object>
+                    </object>
+                </object>
+            </object>
+        </object>
+    </object>
     <object class="wxPanel" name="ID_THRESHOLDTOOLPANEL" subclass="ThresholdToolPanel">
         <size>200,-1</size>
         <title>ThresholdToolPanel</title>
Index: src/Applications/Seg3D/data/main.skin
===================================================================
--- src/Applications/Seg3D/data/main.skin	(revision 44493)
+++ src/Applications/Seg3D/data/main.skin	(working copy)
@@ -51,6 +51,8 @@
 
   <var name="Painter::polylinetool_erase" type="bool" propagate="yes">0</var>
 
+  <var name="Painter::testtool_nIter" type="int" propagate="yes">5</var>
+
   <var name="MedianFilterVolume::radius" type="int" propagate="yes">5</var>
 
   <var name="Painter::SetLabelColor::r" type="double" propagate="yes">0</var>
Index: src/Applications/Seg3D/CMakeLists.txt
===================================================================
--- src/Applications/Seg3D/CMakeLists.txt	(revision 44493)
+++ src/Applications/Seg3D/CMakeLists.txt	(working copy)
@@ -142,6 +142,7 @@
   SliceWindow.cc
   SpeedToPathTool.cc
   StatisticsTool.cc
+  TestTool.cc
   ThresholdTool.cc
   WindowLevelTool.cc
   Undo.cc
@@ -169,6 +170,7 @@
   GuiCode/maskfilter.cpp
   GuiCode/masklogicalfilter.cpp
   GuiCode/measurementtool.cpp
+  GuiCode/testtoolpanel.cpp
   GuiCode/movescaletoolpanel.cpp
   GuiCode/optionlessfilter.cpp
   GuiCode/polylinetoolpanel.cpp
Index: src/Applications/Seg3D/GuiCode/testtoolpanel.xrc
===================================================================
--- src/Applications/Seg3D/GuiCode/testtoolpanel.xrc	(revision 0)
+++ src/Applications/Seg3D/GuiCode/testtoolpanel.xrc	(revision 0)
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<resource version="2.3.0.1" xmlns="http://www.wxwidgets.org/wxxrc";>
+    <object class="wxPanel" name="ID_TESTTOOLPANEL" subclass="TestToolPanel">
+        <size>200,-1</size>
+        <title>TestToolPanel</title>
+        <font>
+            <size>10</size>
+            <family>swiss</family>
+            <face>Arial</face>
+        </font>
+        <object class="wxGridSizer">
+            <cols>1</cols>
+            <rows>2</rows>
+            <vgap>0</vgap>
+            <hgap>0</hgap>
+            <object class="sizeritem">
+                <flag>wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL</flag>
+                <border>5</border>
+                <object class="wxGridSizer">
+                    <cols>2</cols>
+                    <rows>1</rows>
+                    <vgap>0</vgap>
+                    <hgap>0</hgap>
+                    <object class="sizeritem">
+                        <flag>wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL</flag>
+                        <border>5</border>
+                        <object class="wxStaticText" name="wxID_STATIC">
+                            <label>Iterations</label>
+                        </object>
+                    </object>
+                    <object class="sizeritem">
+                        <flag>wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL</flag>
+                        <border>5</border>
+                        <object class="wxSpinCtrl" name="ID_SPINCTRL">
+                            <style>wxSP_ARROW_KEYS</style>
+                            <value>5</value>
+                            <min>0</min>
+                            <max>100</max>
+                        </object>
+                    </object>
+                </object>
+            </object>
+            <object class="sizeritem">
+                <flag>wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL</flag>
+                <border>5</border>
+                <object class="wxGridSizer">
+                    <cols>2</cols>
+                    <rows>1</rows>
+                    <vgap>0</vgap>
+                    <hgap>0</hgap>
+                    <object class="sizeritem">
+                        <flag>wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL</flag>
+                        <border>5</border>
+                        <object class="wxButton" name="START_BUTTON">
+                            <label>Start</label>
+                            <default>1</default>
+                        </object>
+                    </object>
+                    <object class="sizeritem">
+                        <flag>wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL</flag>
+                        <border>5</border>
+                        <object class="wxButton" name="STOP_BUTTON">
+                            <label>Stop</label>
+                        </object>
+                    </object>
+                </object>
+            </object>
+        </object>
+    </object>
+</resource>
Index: src/Applications/Seg3D/GuiCode/Seg3d.pjd
===================================================================
--- src/Applications/Seg3D/GuiCode/Seg3d.pjd	(revision 44493)
+++ src/Applications/Seg3D/GuiCode/Seg3d.pjd	(working copy)
@@ -20,6 +20,7 @@
     <string name="resource_prefix">""</string>
     <bool name="use_two_step_construction">0</bool>
     <bool name="use_enums">0</bool>
+    <bool name="generate_for_xrced">0</bool>
     <string name="current_platform">"&lt;All platforms&gt;"</string>
     <string name="target_wx_version">"2.8.4"</string>
     <string name="cpp_header_comment">"/////////////////////////////////////////////////////////////////////////////
@@ -106,6 +107,7 @@
     <bool name="archive_all_image_files">0</bool>
     <bool name="xrc_retain_relative_paths">1</bool>
     <bool name="xrc_generate_id_tags">0</bool>
+    <bool name="xrc_use_name_property">0</bool>
   </header>
   <data>
     <document>
@@ -128,6 +130,7 @@
         <long name="locked">0</long>
         <string name="template-name">""</string>
         <bool name="dirty">1</bool>
+        <long name="makefile-last-written">0</long>
         <string name="Compiler name">""</string>
         <string name="Build mode">"Debug"</string>
         <string name="Unicode mode">"ANSI"</string>
@@ -148,6 +151,7 @@
         <string name="Compiler location">"%AUTO%"</string>
         <string name="wxWidgets location">"%AUTO%"</string>
         <string name="C++ command">"%AUTO%"</string>
+        <string name="C command">"%AUTO%"</string>
         <string name="Resource compiler">"%AUTO%"</string>
         <string name="Make command">"%AUTO%"</string>
         <string name="Project makefile">"%AUTO%"</string>
@@ -159,6 +163,7 @@
         <string name="Optimizations">"%AUTO%"</string>
         <string name="Warnings">"%AUTO%"</string>
         <string name="Debug flags">"%AUTO%"</string>
+        <string name="Extra compile flags">"%AUTO%"</string>
         <string name="Libraries">"%AUTO%"</string>
         <string name="Library path">"%AUTO%"</string>
         <string name="Linker flags">"%AUTO%"</string>
@@ -169,6 +174,9 @@
         <string name="wxWidgets build command">"%AUTO%"</string>
         <string name="wxWidgets clean command">"%AUTO%"</string>
         <string name="PATH variable">"%AUTO%"</string>
+        <bool name="Suppress source rules">0</bool>
+        <bool name="Enable makefile generation">1</bool>
+        <string name="CFG">""</string>
         <document>
           <string name="title">"VC++ Debug"</string>
           <string name="type">"vc-config-data-document"</string>
@@ -180,6 +188,7 @@
           <long name="locked">0</long>
           <string name="template-name">"VC++"</string>
           <bool name="dirty">1</bool>
+          <long name="makefile-last-written">0</long>
           <string name="Compiler name">"VC++"</string>
           <string name="Build mode">"Debug"</string>
           <string name="Unicode mode">"ANSI"</string>
@@ -200,6 +209,7 @@
           <string name="Compiler location">"%AUTO%"</string>
           <string name="wxWidgets location">"%AUTO%"</string>
           <string name="C++ command">"%AUTO%"</string>
+          <string name="C command">"%AUTO%"</string>
           <string name="Resource compiler">"%AUTO%"</string>
           <string name="Make command">"%AUTO%"</string>
           <string name="Project makefile">"%AUTO%"</string>
@@ -211,6 +221,7 @@
           <string name="Optimizations">"%AUTO%"</string>
           <string name="Warnings">"%AUTO%"</string>
           <string name="Debug flags">"%AUTO%"</string>
+          <string name="Extra compile flags">"%AUTO%"</string>
           <string name="Libraries">"%AUTO%"</string>
           <string name="Library path">"%AUTO%"</string>
           <string name="Linker flags">"%AUTO%"</string>
@@ -221,7 +232,10 @@
           <string name="wxWidgets build command">"%AUTO%"</string>
           <string name="wxWidgets clean command">"%AUTO%"</string>
           <string name="PATH variable">"%AUTO%"</string>
+          <bool name="Suppress source rules">0</bool>
+          <bool name="Enable makefile generation">1</bool>
           <string name="CFG">""</string>
+          <string name="Ignore libraries">"%AUTO%"</string>
         </document>
         <document>
           <string name="title">"VC++ Release"</string>
@@ -234,6 +248,7 @@
           <long name="locked">0</long>
           <string name="template-name">"VC++"</string>
           <bool name="dirty">1</bool>
+          <long name="makefile-last-written">0</long>
           <string name="Compiler name">"VC++"</string>
           <string name="Build mode">"Release"</string>
           <string name="Unicode mode">"ANSI"</string>
@@ -254,6 +269,7 @@
           <string name="Compiler location">"%AUTO%"</string>
           <string name="wxWidgets location">"%AUTO%"</string>
           <string name="C++ command">"%AUTO%"</string>
+          <string name="C command">"%AUTO%"</string>
           <string name="Resource compiler">"%AUTO%"</string>
           <string name="Make command">"%AUTO%"</string>
           <string name="Project makefile">"%AUTO%"</string>
@@ -265,6 +281,7 @@
           <string name="Optimizations">"%AUTO%"</string>
           <string name="Warnings">"%AUTO%"</string>
           <string name="Debug flags">"%AUTO%"</string>
+          <string name="Extra compile flags">"%AUTO%"</string>
           <string name="Libraries">"%AUTO%"</string>
           <string name="Library path">"%AUTO%"</string>
           <string name="Linker flags">"%AUTO%"</string>
@@ -275,7 +292,10 @@
           <string name="wxWidgets build command">"%AUTO%"</string>
           <string name="wxWidgets clean command">"%AUTO%"</string>
           <string name="PATH variable">"%AUTO%"</string>
+          <bool name="Suppress source rules">0</bool>
+          <bool name="Enable makefile generation">1</bool>
           <string name="CFG">""</string>
+          <string name="Ignore libraries">"%AUTO%"</string>
         </document>
         <document>
           <string name="title">"VC++ Project Debug"</string>
@@ -288,6 +308,7 @@
           <long name="locked">0</long>
           <string name="template-name">"VC++ Project"</string>
           <bool name="dirty">0</bool>
+          <long name="makefile-last-written">0</long>
           <string name="Compiler name">"VC++ Project"</string>
           <string name="Build mode">"Debug"</string>
           <string name="Unicode mode">"ANSI"</string>
@@ -309,6 +330,7 @@
           <string name="Compiler location">"%AUTO%"</string>
           <string name="wxWidgets location">"%AUTO%"</string>
           <string name="C++ command">"%AUTO%"</string>
+          <string name="C command">"%AUTO%"</string>
           <string name="Resource compiler">"%AUTO%"</string>
           <string name="Make command">"%AUTO%"</string>
           <string name="Project makefile">"%AUTO%"</string>
@@ -320,6 +342,7 @@
           <string name="Optimizations">"%AUTO%"</string>
           <string name="Warnings">"%AUTO%"</string>
           <string name="Debug flags">"%AUTO%"</string>
+          <string name="Extra compile flags">"%AUTO%"</string>
           <string name="Libraries">"%AUTO%"</string>
           <string name="Library path">"%AUTO%"</string>
           <string name="Linker flags">"%AUTO%"</string>
@@ -330,6 +353,9 @@
           <string name="wxWidgets build command">"%AUTO%"</string>
           <string name="wxWidgets clean command">"%AUTO%"</string>
           <string name="PATH variable">"%AUTO%"</string>
+          <bool name="Suppress source rules">0</bool>
+          <bool name="Enable makefile generation">1</bool>
+          <string name="CFG">""</string>
           <string name="Project make command">"%AUTO%"</string>
           <string name="Project build command">"%AUTO%"</string>
           <string name="Project rebuild command">"%AUTO%"</string>
@@ -338,7 +364,7 @@
           <string name="Pre-build command">"%AUTO%"</string>
           <string name="Post-build command">"%AUTO%"</string>
           <string name="Pre-link command">"%AUTO%"</string>
-          <string name="CFG">""</string>
+          <string name="Ignore libraries">"%AUTO%"</string>
         </document>
       </document>
     </document>
@@ -19241,14 +19267,6 @@
             <string name="proxy-type">"wbBoxSizerProxy"</string>
             <string name="proxy-Orientation">"Vertical"</string>
             <string name="proxy-Member variable name">""</string>
-            <string name="proxy-AlignH">"Centre"</string>
-            <string name="proxy-AlignV">"Centre"</string>
-            <long name="proxy-Stretch factor">0</long>
-            <long name="proxy-Border">5</long>
-            <bool name="proxy-wxLEFT">1</bool>
-            <bool name="proxy-wxRIGHT">1</bool>
-            <bool name="proxy-wxTOP">1</bool>
-            <bool name="proxy-wxBOTTOM">1</bool>
             <bool name="proxy-wxSHAPED">0</bool>
             <bool name="proxy-wxADJUST_MINSIZE">0</bool>
             <bool name="proxy-wxFIXED_MINSIZE">0</bool>
@@ -19515,6 +19533,435 @@
             </document>
           </document>
         </document>
+        <document>
+          <string name="title">"TestToolPanel"</string>
+          <string name="type">"dialog-document"</string>
+          <string name="filename">""</string>
+          <string name="icon-name">"dialog"</string>
+          <long name="is-transient">0</long>
+          <long name="owns-file">1</long>
+          <long name="title-mode">0</long>
+          <long name="locked">0</long>
+          <string name="proxy-type">"wbDialogProxy"</string>
+          <long name="base-id">10000</long>
+          <bool name="use-id-prefix">0</bool>
+          <string name="id-prefix">""</string>
+          <bool name="use-id-suffix">0</bool>
+          <string name="id-suffix">""</string>
+          <long name="use-xrc">0</long>
+          <long name="working-mode">0</long>
+          <string name="proxy-Id name">"ID_TESTTOOLPANEL"</string>
+          <long name="proxy-Id value">10015</long>
+          <string name="proxy-Class">"TestToolPanel"</string>
+          <string name="proxy-Base class">"wxPanel"</string>
+          <string name="proxy-Window kind">"wxPanel"</string>
+          <string name="proxy-Implementation filename">"testtoolpanel.cpp"</string>
+          <string name="proxy-Header filename">"testtoolpanel.h"</string>
+          <string name="proxy-XRC filename">"testtoolpanel.xrc"</string>
+          <string name="proxy-Title">"TestToolPanel"</string>
+          <bool name="proxy-Centre">0</bool>
+          <string name="proxy-Icon">""</string>
+          <bool name="proxy-Dialog units">0</bool>
+          <string name="proxy-Help text">""</string>
+          <string name="proxy-Tooltip text">""</string>
+          <string name="proxy-Background colour">""</string>
+          <string name="proxy-Foreground colour">""</string>
+          <string name="proxy-Font">"10, wxSWISS, wxNORMAL, wxNORMAL, false, Arial"</string>
+          <bool name="proxy-Hidden">0</bool>
+          <bool name="proxy-Enabled">1</bool>
+          <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
+          <string name="proxy-Data source">""</string>
+          <string name="proxy-Data class name">""</string>
+          <string name="proxy-Data class implementation filename">""</string>
+          <string name="proxy-Data class header filename">""</string>
+          <string name="proxy-Data class manager window">""</string>
+          <string name="proxy-Texture">""</string>
+          <string name="proxy-Texture style">"Tiled"</string>
+          <bool name="proxy-wxDEFAULT_DIALOG_STYLE">0</bool>
+          <bool name="proxy-wxCAPTION">0</bool>
+          <bool name="proxy-wxRESIZE_BORDER">0</bool>
+          <bool name="proxy-wxSYSTEM_MENU">0</bool>
+          <bool name="proxy-wxSTAY_ON_TOP">0</bool>
+          <bool name="proxy-wxDIALOG_NO_PARENT">0</bool>
+          <bool name="proxy-wxCLOSE_BOX">0</bool>
+          <bool name="proxy-wxMAXIMIZE_BOX">0</bool>
+          <bool name="proxy-wxMINIMIZE_BOX">0</bool>
+          <bool name="proxy-wxDIALOG_MODAL">0</bool>
+          <bool name="proxy-wxNO_BORDER">0</bool>
+          <bool name="proxy-wxSIMPLE_BORDER">0</bool>
+          <bool name="proxy-wxDOUBLE_BORDER">0</bool>
+          <bool name="proxy-wxSUNKEN_BORDER">0</bool>
+          <bool name="proxy-wxRAISED_BORDER">0</bool>
+          <bool name="proxy-wxSTATIC_BORDER">0</bool>
+          <bool name="proxy-wxWANTS_CHARS">0</bool>
+          <bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
+          <bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
+          <bool name="proxy-wxCLIP_CHILDREN">0</bool>
+          <bool name="proxy-wxTAB_TRAVERSAL">0</bool>
+          <bool name="proxy-wxWS_EX_VALIDATE_RECURSIVELY">0</bool>
+          <bool name="proxy-wxWS_EX_BLOCK_EVENTS">0</bool>
+          <bool name="proxy-wxWS_EX_TRANSIENT">0</bool>
+          <string name="proxy-Custom styles">""</string>
+          <bool name="proxy-wxDIALOG_EX_CONTEXTHELP">0</bool>
+          <bool name="proxy-Fit to content">1</bool>
+          <long name="proxy-X">-1</long>
+          <long name="proxy-Y">-1</long>
+          <long name="proxy-Width">200</long>
+          <long name="proxy-Height">-1</long>
+          <bool name="proxy-AUI manager">0</bool>
+          <string name="proxy-Event sources">""</string>
+          <document>
+            <string name="title">"wxGridSizerProxy"</string>
+            <string name="type">"dialog-control-document"</string>
+            <string name="filename">""</string>
+            <string name="icon-name">"sizer"</string>
+            <long name="is-transient">0</long>
+            <long name="owns-file">1</long>
+            <long name="title-mode">0</long>
+            <long name="locked">0</long>
+            <string name="proxy-type">"wbGridSizerProxy"</string>
+            <long name="proxy-Columns">1</long>
+            <long name="proxy-Rows">2</long>
+            <long name="proxy-ColumnSpacing">0</long>
+            <long name="proxy-RowSpacing">0</long>
+            <string name="proxy-Member variable name">""</string>
+            <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
+            <string name="proxy-AlignH">"Centre"</string>
+            <string name="proxy-AlignV">"Centre"</string>
+            <long name="proxy-Stretch factor">0</long>
+            <long name="proxy-Border">5</long>
+            <bool name="proxy-wxLEFT">1</bool>
+            <bool name="proxy-wxRIGHT">1</bool>
+            <bool name="proxy-wxTOP">1</bool>
+            <bool name="proxy-wxBOTTOM">1</bool>
+            <bool name="proxy-wxSHAPED">0</bool>
+            <bool name="proxy-wxADJUST_MINSIZE">0</bool>
+            <bool name="proxy-wxFIXED_MINSIZE">0</bool>
+            <document>
+              <string name="title">"wxGridSizerProxy"</string>
+              <string name="type">"dialog-control-document"</string>
+              <string name="filename">""</string>
+              <string name="icon-name">"sizer"</string>
+              <long name="is-transient">0</long>
+              <long name="owns-file">1</long>
+              <long name="title-mode">0</long>
+              <long name="locked">0</long>
+              <string name="proxy-type">"wbGridSizerProxy"</string>
+              <long name="proxy-Columns">2</long>
+              <long name="proxy-Rows">1</long>
+              <long name="proxy-ColumnSpacing">0</long>
+              <long name="proxy-RowSpacing">0</long>
+              <string name="proxy-Member variable name">""</string>
+              <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
+              <string name="proxy-AlignH">"Centre"</string>
+              <string name="proxy-AlignV">"Centre"</string>
+              <long name="proxy-Stretch factor">0</long>
+              <long name="proxy-Border">5</long>
+              <bool name="proxy-wxLEFT">1</bool>
+              <bool name="proxy-wxRIGHT">1</bool>
+              <bool name="proxy-wxTOP">1</bool>
+              <bool name="proxy-wxBOTTOM">1</bool>
+              <bool name="proxy-wxSHAPED">0</bool>
+              <bool name="proxy-wxADJUST_MINSIZE">0</bool>
+              <bool name="proxy-wxFIXED_MINSIZE">0</bool>
+              <document>
+                <string name="title">"wxStaticText: wxID_STATIC"</string>
+                <string name="type">"dialog-control-document"</string>
+                <string name="filename">""</string>
+                <string name="icon-name">"statictext"</string>
+                <long name="is-transient">0</long>
+                <long name="owns-file">1</long>
+                <long name="title-mode">0</long>
+                <long name="locked">0</long>
+                <string name="proxy-type">"wbStaticTextProxy"</string>
+                <string name="proxy-Id name">"wxID_STATIC"</string>
+                <long name="proxy-Id value">5105</long>
+                <string name="proxy-Name">""</string>
+                <string name="proxy-Class">"wxStaticText"</string>
+                <string name="proxy-Base class">"wxStaticText"</string>
+                <bool name="proxy-External implementation">1</bool>
+                <bool name="proxy-Separate files">0</bool>
+                <string name="proxy-Implementation filename">""</string>
+                <string name="proxy-Header filename">""</string>
+                <string name="proxy-Member variable name">""</string>
+                <string name="proxy-Label">"Iterations"</string>
+                <long name="proxy-Wrapping width">-1</long>
+                <string name="proxy-Help text">""</string>
+                <string name="proxy-Tooltip text">""</string>
+                <string name="proxy-Background colour">""</string>
+                <string name="proxy-Foreground colour">""</string>
+                <string name="proxy-Font">""</string>
+                <bool name="proxy-Hidden">0</bool>
+                <bool name="proxy-Enabled">1</bool>
+                <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
+                <string name="proxy-Data variable">""</string>
+                <string name="proxy-Data validator">""</string>
+                <string name="proxy-Data source">""</string>
+                <string name="proxy-Data class name">""</string>
+                <string name="proxy-Data class implementation filename">""</string>
+                <string name="proxy-Data class header filename">""</string>
+                <string name="proxy-Data class manager window">""</string>
+                <bool name="proxy-wxALIGN_LEFT">0</bool>
+                <bool name="proxy-wxALIGN_RIGHT">0</bool>
+                <bool name="proxy-wxALIGN_CENTRE">0</bool>
+                <bool name="proxy-wxST_NO_AUTORESIZE">0</bool>
+                <bool name="proxy-wxNO_BORDER">0</bool>
+                <bool name="proxy-wxSIMPLE_BORDER">0</bool>
+                <bool name="proxy-wxDOUBLE_BORDER">0</bool>
+                <bool name="proxy-wxSUNKEN_BORDER">0</bool>
+                <bool name="proxy-wxRAISED_BORDER">0</bool>
+                <bool name="proxy-wxSTATIC_BORDER">0</bool>
+                <bool name="proxy-wxWANTS_CHARS">0</bool>
+                <bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
+                <bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
+                <string name="proxy-Custom styles">""</string>
+                <long name="proxy-X">-1</long>
+                <long name="proxy-Y">-1</long>
+                <long name="proxy-Width">-1</long>
+                <long name="proxy-Height">-1</long>
+                <string name="proxy-AlignH">"Centre"</string>
+                <string name="proxy-AlignV">"Centre"</string>
+                <long name="proxy-Stretch factor">0</long>
+                <long name="proxy-Border">5</long>
+                <bool name="proxy-wxLEFT">1</bool>
+                <bool name="proxy-wxRIGHT">1</bool>
+                <bool name="proxy-wxTOP">1</bool>
+                <bool name="proxy-wxBOTTOM">1</bool>
+                <bool name="proxy-wxSHAPED">0</bool>
+                <bool name="proxy-wxADJUST_MINSIZE">0</bool>
+                <bool name="proxy-wxFIXED_MINSIZE">0</bool>
+                <string name="proxy-Custom arguments">""</string>
+                <string name="proxy-Custom ctor arguments">""</string>
+              </document>
+              <document>
+                <string name="title">"wxSpinCtrl: ID_SPINCTRL"</string>
+                <string name="type">"dialog-control-document"</string>
+                <string name="filename">""</string>
+                <string name="icon-name">"spinctrl"</string>
+                <long name="is-transient">0</long>
+                <long name="owns-file">1</long>
+                <long name="title-mode">0</long>
+                <long name="locked">0</long>
+                <string name="proxy-type">"wbSpinCtrlProxy"</string>
+                <string name="proxy-Id name">"ID_SPINCTRL"</string>
+                <long name="proxy-Id value">10016</long>
+                <string name="proxy-Name">""</string>
+                <string name="proxy-Class">"wxSpinCtrl"</string>
+                <string name="proxy-Base class">"wxSpinCtrl"</string>
+                <bool name="proxy-External implementation">1</bool>
+                <bool name="proxy-Separate files">0</bool>
+                <string name="proxy-Implementation filename">""</string>
+                <string name="proxy-Header filename">""</string>
+                <string name="proxy-Member variable name">"mIterations"</string>
+                <long name="proxy-Minimum value">0</long>
+                <long name="proxy-Maximum value">100</long>
+                <long name="proxy-Initial value">5</long>
+                <string name="proxy-Help text">""</string>
+                <string name="proxy-Tooltip text">""</string>
+                <string name="proxy-Background colour">""</string>
+                <string name="proxy-Foreground colour">""</string>
+                <string name="proxy-Font">""</string>
+                <bool name="proxy-Hidden">0</bool>
+                <bool name="proxy-Enabled">1</bool>
+                <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
+                <string name="proxy-Data variable">""</string>
+                <string name="proxy-Data validator">""</string>
+                <string name="proxy-Data source">""</string>
+                <string name="proxy-Data class name">""</string>
+                <string name="proxy-Data class implementation filename">""</string>
+                <string name="proxy-Data class header filename">""</string>
+                <string name="proxy-Data class manager window">""</string>
+                <bool name="proxy-wxSP_ARROW_KEYS">1</bool>
+                <bool name="proxy-wxSP_WRAP">0</bool>
+                <bool name="proxy-wxNO_BORDER">0</bool>
+                <bool name="proxy-wxSIMPLE_BORDER">0</bool>
+                <bool name="proxy-wxDOUBLE_BORDER">0</bool>
+                <bool name="proxy-wxSUNKEN_BORDER">0</bool>
+                <bool name="proxy-wxRAISED_BORDER">0</bool>
+                <bool name="proxy-wxSTATIC_BORDER">0</bool>
+                <bool name="proxy-wxWANTS_CHARS">0</bool>
+                <bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
+                <bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
+                <string name="proxy-Custom styles">""</string>
+                <long name="proxy-X">-1</long>
+                <long name="proxy-Y">-1</long>
+                <long name="proxy-Width">-1</long>
+                <long name="proxy-Height">-1</long>
+                <string name="proxy-AlignH">"Centre"</string>
+                <string name="proxy-AlignV">"Centre"</string>
+                <long name="proxy-Stretch factor">0</long>
+                <long name="proxy-Border">5</long>
+                <bool name="proxy-wxLEFT">1</bool>
+                <bool name="proxy-wxRIGHT">1</bool>
+                <bool name="proxy-wxTOP">1</bool>
+                <bool name="proxy-wxBOTTOM">1</bool>
+                <bool name="proxy-wxSHAPED">0</bool>
+                <bool name="proxy-wxADJUST_MINSIZE">0</bool>
+                <bool name="proxy-wxFIXED_MINSIZE">0</bool>
+                <string name="proxy-Custom arguments">""</string>
+                <string name="proxy-Custom ctor arguments">""</string>
+              </document>
+            </document>
+            <document>
+              <string name="title">"wxGridSizerProxy"</string>
+              <string name="type">"dialog-control-document"</string>
+              <string name="filename">""</string>
+              <string name="icon-name">"sizer"</string>
+              <long name="is-transient">0</long>
+              <long name="owns-file">1</long>
+              <long name="title-mode">0</long>
+              <long name="locked">0</long>
+              <string name="proxy-type">"wbGridSizerProxy"</string>
+              <long name="proxy-Columns">2</long>
+              <long name="proxy-Rows">1</long>
+              <long name="proxy-ColumnSpacing">0</long>
+              <long name="proxy-RowSpacing">0</long>
+              <string name="proxy-Member variable name">""</string>
+              <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
+              <string name="proxy-AlignH">"Centre"</string>
+              <string name="proxy-AlignV">"Centre"</string>
+              <long name="proxy-Stretch factor">0</long>
+              <long name="proxy-Border">5</long>
+              <bool name="proxy-wxLEFT">1</bool>
+              <bool name="proxy-wxRIGHT">1</bool>
+              <bool name="proxy-wxTOP">1</bool>
+              <bool name="proxy-wxBOTTOM">1</bool>
+              <bool name="proxy-wxSHAPED">0</bool>
+              <bool name="proxy-wxADJUST_MINSIZE">0</bool>
+              <bool name="proxy-wxFIXED_MINSIZE">0</bool>
+              <document>
+                <string name="title">"wxButton: START_BUTTON"</string>
+                <string name="type">"dialog-control-document"</string>
+                <string name="filename">""</string>
+                <string name="icon-name">"dialogcontrol"</string>
+                <long name="is-transient">0</long>
+                <long name="owns-file">1</long>
+                <long name="title-mode">0</long>
+                <long name="locked">0</long>
+                <string name="proxy-type">"wbButtonProxy"</string>
+                <string name="proxy-Id name">"START_BUTTON"</string>
+                <long name="proxy-Id value">10017</long>
+                <string name="proxy-Name">""</string>
+                <string name="proxy-Class">"wxButton"</string>
+                <string name="proxy-Base class">"wxButton"</string>
+                <bool name="proxy-External implementation">1</bool>
+                <bool name="proxy-Separate files">0</bool>
+                <string name="proxy-Implementation filename">""</string>
+                <string name="proxy-Header filename">""</string>
+                <string name="proxy-Member variable name">""</string>
+                <string name="proxy-Label">"Start"</string>
+                <bool name="proxy-Default">1</bool>
+                <string name="proxy-Help text">""</string>
+                <string name="proxy-Tooltip text">""</string>
+                <string name="proxy-Data variable">""</string>
+                <string name="proxy-Data validator">""</string>
+                <string name="proxy-Data source">""</string>
+                <string name="proxy-Data class name">""</string>
+                <string name="proxy-Data class implementation filename">""</string>
+                <string name="proxy-Data class header filename">""</string>
+                <string name="proxy-Data class manager window">""</string>
+                <string name="proxy-Background colour">""</string>
+                <string name="proxy-Foreground colour">""</string>
+                <string name="proxy-Font">""</string>
+                <bool name="proxy-Hidden">0</bool>
+                <bool name="proxy-Enabled">1</bool>
+                <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
+                <bool name="proxy-wxBU_LEFT">0</bool>
+                <bool name="proxy-wxBU_RIGHT">0</bool>
+                <bool name="proxy-wxBU_TOP">0</bool>
+                <bool name="proxy-wxBU_BOTTOM">0</bool>
+                <bool name="proxy-wxBU_EXACTFIT">0</bool>
+                <bool name="proxy-wxNO_BORDER">0</bool>
+                <bool name="proxy-wxWANTS_CHARS">0</bool>
+                <bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
+                <bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
+                <string name="proxy-Custom styles">""</string>
+                <long name="proxy-X">-1</long>
+                <long name="proxy-Y">-1</long>
+                <long name="proxy-Width">-1</long>
+                <long name="proxy-Height">-1</long>
+                <string name="proxy-AlignH">"Centre"</string>
+                <string name="proxy-AlignV">"Centre"</string>
+                <long name="proxy-Stretch factor">0</long>
+                <long name="proxy-Border">5</long>
+                <bool name="proxy-wxLEFT">1</bool>
+                <bool name="proxy-wxRIGHT">1</bool>
+                <bool name="proxy-wxTOP">1</bool>
+                <bool name="proxy-wxBOTTOM">1</bool>
+                <bool name="proxy-wxSHAPED">0</bool>
+                <bool name="proxy-wxADJUST_MINSIZE">0</bool>
+                <bool name="proxy-wxFIXED_MINSIZE">0</bool>
+                <string name="proxy-Custom arguments">""</string>
+                <string name="proxy-Custom ctor arguments">""</string>
+              </document>
+              <document>
+                <string name="title">"wxButton: STOP_BUTTON"</string>
+                <string name="type">"dialog-control-document"</string>
+                <string name="filename">""</string>
+                <string name="icon-name">"dialogcontrol"</string>
+                <long name="is-transient">0</long>
+                <long name="owns-file">1</long>
+                <long name="title-mode">0</long>
+                <long name="locked">0</long>
+                <string name="proxy-type">"wbButtonProxy"</string>
+                <string name="proxy-Id name">"STOP_BUTTON"</string>
+                <long name="proxy-Id value">10018</long>
+                <string name="proxy-Name">""</string>
+                <string name="proxy-Class">"wxButton"</string>
+                <string name="proxy-Base class">"wxButton"</string>
+                <bool name="proxy-External implementation">1</bool>
+                <bool name="proxy-Separate files">0</bool>
+                <string name="proxy-Implementation filename">""</string>
+                <string name="proxy-Header filename">""</string>
+                <string name="proxy-Member variable name">""</string>
+                <string name="proxy-Label">"Stop"</string>
+                <bool name="proxy-Default">0</bool>
+                <string name="proxy-Help text">""</string>
+                <string name="proxy-Tooltip text">""</string>
+                <string name="proxy-Data variable">""</string>
+                <string name="proxy-Data validator">""</string>
+                <string name="proxy-Data source">""</string>
+                <string name="proxy-Data class name">""</string>
+                <string name="proxy-Data class implementation filename">""</string>
+                <string name="proxy-Data class header filename">""</string>
+                <string name="proxy-Data class manager window">""</string>
+                <string name="proxy-Background colour">""</string>
+                <string name="proxy-Foreground colour">""</string>
+                <string name="proxy-Font">""</string>
+                <bool name="proxy-Hidden">0</bool>
+                <bool name="proxy-Enabled">1</bool>
+                <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
+                <bool name="proxy-wxBU_LEFT">0</bool>
+                <bool name="proxy-wxBU_RIGHT">0</bool>
+                <bool name="proxy-wxBU_TOP">0</bool>
+                <bool name="proxy-wxBU_BOTTOM">0</bool>
+                <bool name="proxy-wxBU_EXACTFIT">0</bool>
+                <bool name="proxy-wxNO_BORDER">0</bool>
+                <bool name="proxy-wxWANTS_CHARS">0</bool>
+                <bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
+                <bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
+                <string name="proxy-Custom styles">""</string>
+                <long name="proxy-X">-1</long>
+                <long name="proxy-Y">-1</long>
+                <long name="proxy-Width">-1</long>
+                <long name="proxy-Height">-1</long>
+                <string name="proxy-AlignH">"Centre"</string>
+                <string name="proxy-AlignV">"Centre"</string>
+                <long name="proxy-Stretch factor">0</long>
+                <long name="proxy-Border">5</long>
+                <bool name="proxy-wxLEFT">1</bool>
+                <bool name="proxy-wxRIGHT">1</bool>
+                <bool name="proxy-wxTOP">1</bool>
+                <bool name="proxy-wxBOTTOM">1</bool>
+                <bool name="proxy-wxSHAPED">0</bool>
+                <bool name="proxy-wxADJUST_MINSIZE">0</bool>
+                <bool name="proxy-wxFIXED_MINSIZE">0</bool>
+                <string name="proxy-Custom arguments">""</string>
+                <string name="proxy-Custom ctor arguments">""</string>
+              </document>
+            </document>
+          </document>
+        </document>
       </document>
       <document>
         <string name="title">"Sources"</string>
Index: src/Applications/Seg3D/GuiCode/testtoolpanel.h
===================================================================
--- src/Applications/Seg3D/GuiCode/testtoolpanel.h	(revision 0)
+++ src/Applications/Seg3D/GuiCode/testtoolpanel.h	(revision 0)
@@ -0,0 +1,100 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        testtoolpanel.h
+// Purpose:     
+// Author:      
+// Modified by: 
+// Created:     Mon 28 Sep 2009 20:11:31 BST
+// RCS-ID:      
+// Copyright:   
+// Licence:     
+/////////////////////////////////////////////////////////////////////////////
+
+// Generated by DialogBlocks (unregistered), Mon 28 Sep 2009 20:11:31 BST
+
+#ifndef _TESTTOOLPANEL_H_
+#define _TESTTOOLPANEL_H_
+
+
+/*!
+ * Includes
+ */
+
+////@begin includes
+#include "wx/xrc/xmlres.h"
+#include "wx/spinctrl.h"
+////@end includes
+
+/*!
+ * Forward declarations
+ */
+
+////@begin forward declarations
+class wxSpinCtrl;
+////@end forward declarations
+
+/*!
+ * Control identifiers
+ */
+
+////@begin control identifiers
+#define ID_TESTTOOLPANEL 10015
+#define SYMBOL_TESTTOOLPANEL_STYLE 0
+#define SYMBOL_TESTTOOLPANEL_TITLE _("TestToolPanel")
+#define SYMBOL_TESTTOOLPANEL_IDNAME ID_TESTTOOLPANEL
+#define SYMBOL_TESTTOOLPANEL_SIZE wxSize(200, -1)
+#define SYMBOL_TESTTOOLPANEL_POSITION wxDefaultPosition
+////@end control identifiers
+
+
+/*!
+ * TestToolPanel class declaration
+ */
+
+class TestToolPanel: public wxPanel
+{    
+    DECLARE_DYNAMIC_CLASS( TestToolPanel )
+    DECLARE_EVENT_TABLE()
+
+public:
+    /// Constructors
+    TestToolPanel();
+    TestToolPanel( wxWindow* parent, wxWindowID id = SYMBOL_TESTTOOLPANEL_IDNAME, const wxPoint& pos = SYMBOL_TESTTOOLPANEL_POSITION, const wxSize& size = SYMBOL_TESTTOOLPANEL_SIZE, long style = SYMBOL_TESTTOOLPANEL_STYLE );
+
+    /// Creation
+    bool Create( wxWindow* parent, wxWindowID id = SYMBOL_TESTTOOLPANEL_IDNAME, const wxPoint& pos = SYMBOL_TESTTOOLPANEL_POSITION, const wxSize& size = SYMBOL_TESTTOOLPANEL_SIZE, long style = SYMBOL_TESTTOOLPANEL_STYLE );
+
+    /// Destructor
+    ~TestToolPanel();
+
+    /// Initialises member variables
+    void Init();
+
+    /// Creates the controls and sizers
+    void CreateControls();
+    void OnStartButtonClick( wxCommandEvent& event );
+    void OnStopButtonClick( wxCommandEvent& event );
+    void OnSpinIter( wxSpinEvent& event );
+
+////@begin TestToolPanel event handler declarations
+
+////@end TestToolPanel event handler declarations
+
+////@begin TestToolPanel member function declarations
+
+    /// Retrieves bitmap resources
+    wxBitmap GetBitmapResource( const wxString& name );
+
+    /// Retrieves icon resources
+    wxIcon GetIconResource( const wxString& name );
+////@end TestToolPanel member function declarations
+
+    /// Should we show tooltips?
+    static bool ShowToolTips();
+
+////@begin TestToolPanel member variables
+    wxSpinCtrl* mIterations;
+////@end TestToolPanel member variables
+};
+
+#endif
+    // _TESTTOOLPANEL_H_
Index: src/Applications/Seg3D/GuiCode/testtoolpanel.cpp
===================================================================
--- src/Applications/Seg3D/GuiCode/testtoolpanel.cpp	(revision 0)
+++ src/Applications/Seg3D/GuiCode/testtoolpanel.cpp	(revision 0)
@@ -0,0 +1,211 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        testtoolpanel.cpp
+// Purpose:     
+// Author:      
+// Modified by: 
+// Created:     Mon 28 Sep 2009 20:11:31 BST
+// RCS-ID:      
+// Copyright:   
+// Licence:     
+/////////////////////////////////////////////////////////////////////////////
+
+// Generated by DialogBlocks (unregistered), Mon 28 Sep 2009 20:11:31 BST
+
+// For compilers that support precompilation, includes "wx/wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+#include "wx/wx.h"
+#endif
+
+////@begin includes
+////@end includes
+
+#include "testtoolpanel.h"
+#include "seg3devents.h"
+
+#include <Applications/Seg3D/Painter.h>
+#include <Core/Util/StringUtil.h>
+
+////@begin XPM images
+////@end XPM images
+
+
+/*!
+ * TestToolPanel type definition
+ */
+
+IMPLEMENT_DYNAMIC_CLASS( TestToolPanel, wxPanel )
+
+
+/*!
+ * TestToolPanel event table definition
+ */
+
+BEGIN_EVENT_TABLE( TestToolPanel, wxPanel )
+
+////@begin TestToolPanel event table entries
+////@end TestToolPanel event table entries
+
+// add controls actions to the event table
+EVT_BUTTON( XRCID("START_BUTTON"), TestToolPanel::OnStartButtonClick )
+EVT_BUTTON( XRCID("STOP_BUTTON"), TestToolPanel::OnStopButtonClick )
+EVT_SPINCTRL( XRCID("ID_SPINCTRL"), TestToolPanel::OnSpinIter )
+
+END_EVENT_TABLE()
+
+
+/*!
+ * TestToolPanel constructors
+ */
+
+TestToolPanel::TestToolPanel()
+{
+    Init();
+}
+
+TestToolPanel::TestToolPanel( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
+{
+    Init();
+    Create(parent, id, pos, size, style);
+}
+
+
+/*!
+ * TestToolPanel creator
+ */
+
+bool TestToolPanel::Create( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
+{
+////@begin TestToolPanel creation
+    SetParent(parent);
+    CreateControls();
+    if (GetSizer())
+    {
+        GetSizer()->SetSizeHints(this);
+    }
+////@end TestToolPanel creation
+    return true;
+}
+
+
+/*!
+ * TestToolPanel destructor
+ */
+
+TestToolPanel::~TestToolPanel()
+{
+////@begin TestToolPanel destruction
+////@end TestToolPanel destruction
+}
+
+
+/*!
+ * Member initialisation
+ */
+
+void TestToolPanel::Init()
+{
+////@begin TestToolPanel member initialisation
+    mIterations = NULL;
+////@end TestToolPanel member initialisation
+}
+
+
+/*!
+ * Control creation for TestToolPanel
+ */
+
+void TestToolPanel::CreateControls()
+{    
+////@begin TestToolPanel content construction
+    // Generated by DialogBlocks, Thu 01 Oct 2009 12:11:35 BST (unregistered)
+
+    if (!wxXmlResource::Get()->LoadPanel(this, GetParent(), _T("ID_TESTTOOLPANEL")))
+        wxLogError(wxT("Missing wxXmlResource::Get()->Load() in OnInit()?"));
+    mIterations = XRCCTRL(*this, "ID_SPINCTRL", wxSpinCtrl);
+////@end TestToolPanel content construction
+
+    // Create custom windows not generated automatically here.
+////@begin TestToolPanel content initialisation
+////@end TestToolPanel content initialisation
+}
+
+
+/*!
+ * Should we show tooltips?
+ */
+
+bool TestToolPanel::ShowToolTips()
+{
+    return true;
+}
+
+/*!
+ * Get bitmap resources
+ */
+
+wxBitmap TestToolPanel::GetBitmapResource( const wxString& name )
+{
+    // Bitmap retrieval
+////@begin TestToolPanel bitmap retrieval
+    wxUnusedVar(name);
+    return wxNullBitmap;
+////@end TestToolPanel bitmap retrieval
+}
+
+/*!
+ * Get icon resources
+ */
+
+wxIcon TestToolPanel::GetIconResource( const wxString& name )
+{
+    // Icon retrieval
+////@begin TestToolPanel icon retrieval
+    wxUnusedVar(name);
+    return wxNullIcon;
+////@end TestToolPanel icon retrieval
+}
+
+/*
+ * Action when activating Start button
+ */
+void TestToolPanel::OnStartButtonClick( wxCommandEvent& event ) {
+
+
+  std::cout << "GUI: Start button clicked" << std::endl;
+
+  wxBeginBusyCursor();
+  SCIRun::Painter::ThrowSkinnerSignal("Painter::FinishTool");
+  wxEndBusyCursor();
+
+}
+
+/*
+ * Action when activating Stop button
+ */
+void TestToolPanel::OnStopButtonClick( wxCommandEvent& event ) {
+
+  std::cout << "GUI: Stop button clicked" << std::endl;
+
+}
+
+/*
+ * Action when activating Spin box
+ */
+void TestToolPanel::OnSpinIter( wxSpinEvent& event ) {
+
+  std::cout << "GUI: mIterations: " 
+	    << mIterations->GetValue() << std::endl;
+
+  SCIRun::ThrowSkinnerSignalEvent *tsse =
+    new SCIRun::ThrowSkinnerSignalEvent( "Painter::UpdateTestIterations" );
+  tsse->add_var( "Painter::testtool_nIter",
+                SCIRun::to_string( event.GetPosition() ) );
+  SCIRun::Painter::ThrowSkinnerSignal( tsse );
+
+}
Index: src/Applications/Seg3D/Painter.h
===================================================================
--- src/Applications/Seg3D/Painter.h	(revision 44493)
+++ src/Applications/Seg3D/Painter.h	(working copy)
@@ -229,6 +229,7 @@
   CatcherFunction_t     StartThresholdTool;
   CatcherFunction_t     StartWindowLevelTool;
   CatcherFunction_t     StartMeasurementTool;
+  CatcherFunction_t     StartTestTool;
 
   CatcherFunction_t     VolumeInformation;
 
@@ -305,6 +306,8 @@
   CatcherFunction_t     UpdateBrushRadius;
   CatcherFunction_t     UpdateThresholdTool;
   CatcherFunction_t     UpdateWindowLevelTool;
+  CatcherFunction_t     UpdateTestIterations;
+  CatcherFunction_t     TestVolume;
 
   CatcherFunction_t     OpenLabelColorDialog;
   CatcherFunction_t     SetLabelColor;
@@ -469,7 +472,26 @@
 };
 
 
+class UpdateTestIterationsEvent : public BaseEvent
+{
+  int nIter_;
 
+public:
+  UpdateTestIterationsEvent( int nIter )
+    : BaseEvent(), nIter_( nIter ) 
+  {
+  }
+
+  virtual BaseEvent *clone()
+  { return new UpdateTestIterationsEvent(nIter_); }
+  virtual ~UpdateTestIterationsEvent() {}
+
+  int get_nIter() { 
+    return nIter_; 
+  }
+};
+
+
 class DilateEvent : public QuitEvent 
 {
 public:
Index: src/Applications/Seg3D/Seg3DFrame.h
===================================================================
--- src/Applications/Seg3D/Seg3DFrame.h	(revision 44493)
+++ src/Applications/Seg3D/Seg3DFrame.h	(working copy)
@@ -75,6 +75,7 @@
 class MoveScaleToolPanel;
 class MeasurementTool;
 class IntensityCorrectionFilterPanel;
+class TestToolPanel;
 
 class ITKSpeedToPathGradientDescentFilter;
 class ITKSpeedToPathRegularStepGradientDescentFilter;
@@ -128,6 +129,7 @@
     MENU_TOOL_WINDOWLEVEL,
     MENU_TOOL_MOVESCALE,
     MENU_TOOL_MEASUREMENT,
+    MENU_TOOL_TEST,
 
     MENU_FILTER_C_A_D_F = 500,
     MENU_FILTER_C_C_F,
@@ -262,6 +264,7 @@
   void ToolWindowLevel( wxCommandEvent& WXUNUSED(event) );
   void ToolMoveScale( wxCommandEvent& WXUNUSED(event) );
   void ToolMeasurement( wxCommandEvent& WXUNUSED(event) );
+  void ToolTest( wxCommandEvent& WXUNUSED(event) );
 
   void Filter_CADF( wxCommandEvent& WXUNUSED(event) );
   void Filter_CCF( wxCommandEvent& WXUNUSED(event) );
@@ -335,6 +338,7 @@
   MoveScaleToolPanel *movescaletoolpanel_;
   MeasurementTool *measurementtoolpanel_;
   IntensityCorrectionFilterPanel *intensitycorrectionfilterpanel_;
+  TestToolPanel *testtoolpanel_;
 
   ITKSpeedToPathGradientDescentFilter* itk_STPGDF_;
   ITKSpeedToPathRegularStepGradientDescentFilter* itk_STPRSGDF_;



Archive powered by MHonArc 2.6.16.

Top of page