SCI Seg3D Mailing List

Text archives Help


[Seg3D] Re: Re: doing something to a data volume


Chronological Thread 
  • From: Rob MacLeod <macleod@cvrti.utah.edu>
  • To: seg3d@sci.utah.edu
  • Cc: Rob MacLeod <macleod@cvrti.utah.edu>
  • Subject: [Seg3D] Re: Re: doing something to a data volume
  • Date: Mon, 12 Oct 2009 08:21:29 -0600

Dear Ramon and others interested in developing Seg3D,

It is time to unveil some plans we have been formulating within the development team here at SCI regarding Seg3D.

As with most programs that enjoy enough usage to be worth the trouble, it is time to reengineer Seg3D and create a more extensible framework that can incorporate all the great suggestions we have received from our many users. This process has been moving along over the past few months and we hope to have a fairly concrete outline and assignment of tasks in the next 1-2 weeks. At that point, we will begin to write a new version of Seg3D.

Of course, writing a new version does not me we abandon completely the old Seg3D, nor that we will rewrite parts of the code that work well now. But it does mean that support for adding new features will be very limited. We will try and address bugs we can deal with easily and address small feature fixes that fit easily within the existing structure of the program. But the mail focus will be the new version.

We love to see others trying to understand the structure of the current code and contributing patches and fixes--this is a major advantage of open source software. However, given that a lot will be changing about the inner workings of the program, this is probably not a perfect time for others to engage in a lot of effort with the current (aka old) structure. The last thing we want is for you to make contributions that we cannot use because the program structure has changed without your knowing it.

So now you know it (-: We will continue to send out information as things move along and we certainly welcome suggestions for features and capabilities that would make your work with Seg3D more productive. Within the week, we will summarize our goals and the broad set of features we want to enable with the new Seg3D. We hope you will be as excited as we are about what we think we can achieve through this reorganization and rewriting.

In the meantime, keep making great segmentations and please include an acknowledgement of any contribution our software makes to your science and engineering in all those fabulous papers you are publishing.

"This work was made possible in part by software from the NIH/NCRR Center for Integrative Biomedical Computing, P41-RR12553-10"

Thanks!

Rob MacLeod
(for the Seg3D team)

On Oct 12, 2009, at 7:05 AM, Ramón Casero Cañas wrote:

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