From b34cc6136db6b5fdc5ce0589e6ea93befc8a2000 Mon Sep 17 00:00:00 2001 From: jsiegle <jsiegle@mit.edu> Date: Wed, 3 Apr 2013 17:27:37 -0400 Subject: [PATCH] Add rudimentary layout manager to SpikeDisplay --- .../Visualization/SpikeDisplayCanvas.cpp | 64 ++++++++++++++++++- .../Visualization/SpikeDisplayCanvas.h | 6 +- 2 files changed, 66 insertions(+), 4 deletions(-) diff --git a/Source/Processors/Visualization/SpikeDisplayCanvas.cpp b/Source/Processors/Visualization/SpikeDisplayCanvas.cpp index e5567d696..ae5f5aae3 100755 --- a/Source/Processors/Visualization/SpikeDisplayCanvas.cpp +++ b/Source/Processors/Visualization/SpikeDisplayCanvas.cpp @@ -300,7 +300,7 @@ void SpikeDisplayCanvas::processSpikeEvents() simSpike.nSamples = 40; - //spikeDisplay->plotSpike(simSpike); + spikeDisplay->plotSpike(simSpike); } @@ -316,8 +316,21 @@ void SpikeDisplayCanvas::processSpikeEvents() SpikeDisplay::SpikeDisplay(SpikeDisplayCanvas* sdc, Viewport* v) : canvas(sdc), viewport(v) { + + minWidth = 300; + maxWidth = 500; + minHeight = 100; + maxHeight = 200; + totalHeight = 1000; + for (int i = 0; i < 10; i++) + { + SpikePlot* spikePlot = new SpikePlot(canvas, i, 2); + spikePlots.add(spikePlot); + addAndMakeVisible(spikePlot); + } + } SpikeDisplay::~SpikeDisplay() @@ -339,6 +352,41 @@ void SpikeDisplay::paint(Graphics& g) void SpikeDisplay::resized() { + int w = getWidth(); + + int numColumns = w / minWidth; + int column, row; + + float width = (float) w / (float) numColumns; + float height = width * 0.75; + + for (int i = 0; i < spikePlots.size(); i++) + { + + column = i % numColumns; + row = i / numColumns; + spikePlots[i]->setBounds(width*column,row*height,width,height); + + } + + totalHeight = (int) height*(float(row)+1); + + if (totalHeight < getHeight()) + { + canvas->resized(); + } + + //setBounds(0,0,getWidth(), totalHeight); + + + // layoutManagerX.layOutComponents((Component**) spikePlots.getRawDataPointer(), + // spikePlots.size(), + // 0, + // 0, + // getWidth(), + // getHeight(), + // false, + // false); } void SpikeDisplay::mouseDown(const MouseEvent& event) @@ -346,6 +394,11 @@ void SpikeDisplay::mouseDown(const MouseEvent& event) } +void SpikeDisplay::plotSpike(const SpikeObject& spike) +{ + +} + @@ -367,7 +420,14 @@ SpikePlot::~SpikePlot() void SpikePlot::paint(Graphics& g) { - g.fillAll(Colours::yellow); + g.setColour(Colours::yellow); + g.fillRect(10, 10, getWidth()-20, getHeight()-20); + + g.setColour(Colours::black); + + g.drawLine(0, 0, getWidth(), getHeight()); + g.drawLine(0, getHeight(), getWidth(), 0); + } void SpikePlot::select() diff --git a/Source/Processors/Visualization/SpikeDisplayCanvas.h b/Source/Processors/Visualization/SpikeDisplayCanvas.h index 68309cc4f..e80322099 100755 --- a/Source/Processors/Visualization/SpikeDisplayCanvas.h +++ b/Source/Processors/Visualization/SpikeDisplayCanvas.h @@ -102,7 +102,7 @@ public: void mouseDown(const MouseEvent& event); - //void plotSpike(const SpikeObject& spike); + void plotSpike(const SpikeObject& spike); int getTotalHeight() {return totalHeight;} @@ -120,7 +120,9 @@ private: SpikeDisplayCanvas* canvas; Viewport* viewport; - Array<SpikePlot*> spikePlots; + OwnedArray<SpikePlot> spikePlots; + + int maxWidth, maxHeight, minWidth, minHeight; }; -- GitLab