Skip to content

Commit

Permalink
Change add / make syntax
Browse files Browse the repository at this point in the history
  • Loading branch information
elliotwoods committed Feb 9, 2016
1 parent ef087a9 commit e4a4888
Show file tree
Hide file tree
Showing 7 changed files with 182 additions and 106 deletions.
14 changes: 14 additions & 0 deletions ofxCvGuiLib/ofxCvGuiLib.vcxproj
Expand Up @@ -20,6 +20,13 @@
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\ofxAssets\src\ofxAssets.h" />
<ClInclude Include="..\..\ofxAssets\src\ofxAssets\BaseAsset.h" />
<ClInclude Include="..\..\ofxAssets\src\ofxAssets\Font.h" />
<ClInclude Include="..\..\ofxAssets\src\ofxAssets\Image.h" />
<ClInclude Include="..\..\ofxAssets\src\ofxAssets\Register.h" />
<ClInclude Include="..\..\ofxAssets\src\ofxAssets\Set.h" />
<ClInclude Include="..\..\ofxAssets\src\ofxAssets\Shader.h" />
<ClInclude Include="..\..\ofxAssets\src\ofxAssets\Sound.h" />
<ClInclude Include="..\..\ofxAudioDecoder\libs\libaudiodecoder\include\apple\CADebugMacros.h" />
<ClInclude Include="..\..\ofxAudioDecoder\libs\libaudiodecoder\include\apple\CAStreamBasicDescription.h" />
<ClInclude Include="..\..\ofxAudioDecoder\libs\libaudiodecoder\include\audiodecoder.h" />
Expand Down Expand Up @@ -79,6 +86,13 @@
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\ofxAssets\src\ofxAssets.cpp" />
<ClCompile Include="..\..\ofxAssets\src\ofxAssets\BaseAsset.cpp" />
<ClCompile Include="..\..\ofxAssets\src\ofxAssets\Font.cpp" />
<ClCompile Include="..\..\ofxAssets\src\ofxAssets\Image.cpp" />
<ClCompile Include="..\..\ofxAssets\src\ofxAssets\Register.cpp" />
<ClCompile Include="..\..\ofxAssets\src\ofxAssets\Set.cpp" />
<ClCompile Include="..\..\ofxAssets\src\ofxAssets\Shader.cpp" />
<ClCompile Include="..\..\ofxAssets\src\ofxAssets\Sound.cpp" />
<ClCompile Include="..\..\ofxAudioDecoder\libs\libaudiodecoder\src\audiodecoderbase.cpp" />
<ClCompile Include="..\..\ofxAudioDecoder\libs\libaudiodecoder\src\audiodecodermediafoundation.cpp" />
<ClCompile Include="..\..\ofxAudioDecoder\src\ofxAudioDecoder.cpp" />
Expand Down
45 changes: 45 additions & 0 deletions ofxCvGuiLib/ofxCvGuiLib.vcxproj.filters
Expand Up @@ -143,6 +143,27 @@
<ClCompile Include="..\src\ofxCvGui\Panels\Texture.cpp">
<Filter>src\Panels</Filter>
</ClCompile>
<ClCompile Include="..\..\ofxAssets\src\ofxAssets\BaseAsset.cpp">
<Filter>addons\ofxAssets\src\ofxAssets</Filter>
</ClCompile>
<ClCompile Include="..\..\ofxAssets\src\ofxAssets\Font.cpp">
<Filter>addons\ofxAssets\src\ofxAssets</Filter>
</ClCompile>
<ClCompile Include="..\..\ofxAssets\src\ofxAssets\Image.cpp">
<Filter>addons\ofxAssets\src\ofxAssets</Filter>
</ClCompile>
<ClCompile Include="..\..\ofxAssets\src\ofxAssets\Register.cpp">
<Filter>addons\ofxAssets\src\ofxAssets</Filter>
</ClCompile>
<ClCompile Include="..\..\ofxAssets\src\ofxAssets\Set.cpp">
<Filter>addons\ofxAssets\src\ofxAssets</Filter>
</ClCompile>
<ClCompile Include="..\..\ofxAssets\src\ofxAssets\Shader.cpp">
<Filter>addons\ofxAssets\src\ofxAssets</Filter>
</ClCompile>
<ClCompile Include="..\..\ofxAssets\src\ofxAssets\Sound.cpp">
<Filter>addons\ofxAssets\src\ofxAssets</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\src\ofxCvGui.h" />
Expand Down Expand Up @@ -314,6 +335,27 @@
<ClInclude Include="..\src\ofxCvGui\Panels\Texture.h">
<Filter>src\Panels</Filter>
</ClInclude>
<ClInclude Include="..\..\ofxAssets\src\ofxAssets\BaseAsset.h">
<Filter>addons\ofxAssets\src\ofxAssets</Filter>
</ClInclude>
<ClInclude Include="..\..\ofxAssets\src\ofxAssets\Font.h">
<Filter>addons\ofxAssets\src\ofxAssets</Filter>
</ClInclude>
<ClInclude Include="..\..\ofxAssets\src\ofxAssets\Image.h">
<Filter>addons\ofxAssets\src\ofxAssets</Filter>
</ClInclude>
<ClInclude Include="..\..\ofxAssets\src\ofxAssets\Register.h">
<Filter>addons\ofxAssets\src\ofxAssets</Filter>
</ClInclude>
<ClInclude Include="..\..\ofxAssets\src\ofxAssets\Set.h">
<Filter>addons\ofxAssets\src\ofxAssets</Filter>
</ClInclude>
<ClInclude Include="..\..\ofxAssets\src\ofxAssets\Shader.h">
<Filter>addons\ofxAssets\src\ofxAssets</Filter>
</ClInclude>
<ClInclude Include="..\..\ofxAssets\src\ofxAssets\Sound.h">
<Filter>addons\ofxAssets\src\ofxAssets</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<Filter Include="src">
Expand Down Expand Up @@ -388,5 +430,8 @@
<Filter Include="addons\ofxAudioDecoder\libs\libaudiodecoder\include\apple">
<UniqueIdentifier>{260eb403-54f0-4fd1-a3f6-b4a187dd1a8e}</UniqueIdentifier>
</Filter>
<Filter Include="addons\ofxAssets\src\ofxAssets">
<UniqueIdentifier>{42be907a-1ca0-4dc5-9c5e-4270c528328c}</UniqueIdentifier>
</Filter>
</ItemGroup>
</Project>
178 changes: 89 additions & 89 deletions src/ofxCvGui/Builder.cpp
@@ -1,15 +1,93 @@
#include "ofxCvGui/Builder.h"

#define MAKE_PANEL_AND_RETURN auto newPanel = this->makePanel(asset, caption); PanelPtr panel(newPanel); controller.add(panel); return newPanel;
#define MAKE_PANEL_AND_RETURN auto newPanel = makePanel(asset, caption); PanelPtr panel(newPanel); controller.add(panel); return newPanel;
#define LABEL_PANEL_AND_RETURN newPanel->setCaption(caption); return newPanel;
namespace ofxCvGui {
#pragma mark make
//----------
shared_ptr<Panels::Draws> makePanel(ofBaseDraws& asset, string caption) {
auto newPanel = make_shared<Panels::Draws>(asset);
LABEL_PANEL_AND_RETURN
}

//----------
shared_ptr<Panels::Image> makePanel(ofImage& asset, string caption) {
auto newPanel = make_shared<Panels::Image>(asset);
LABEL_PANEL_AND_RETURN
}

//----------
shared_ptr<Panels::Pixels> makePanel(const ofPixels& asset, string caption) {
auto newPanel = make_shared<Panels::Pixels>(asset);
LABEL_PANEL_AND_RETURN
}

//----------
shared_ptr<Panels::PixelsVector> makePanel(const vector<ofPixels>& asset, string caption) {
auto newPanel = make_shared<Panels::PixelsVector>(asset);
LABEL_PANEL_AND_RETURN
}

//----------
shared_ptr<Panels::Texture> makePanel(const ofTexture & asset, string caption) {
auto newPanel = make_shared<Panels::Texture>(asset);
LABEL_PANEL_AND_RETURN
}

//----------
shared_ptr<Panels::World> makeWorld(string caption) {
return shared_ptr<Panels::World>(new Panels::World());
}

//----------
shared_ptr<Panels::ElementHost> makeElementHost(string caption) {
return shared_ptr<Panels::ElementHost>(new Panels::ElementHost());
}

//----------
shared_ptr<Panels::Widgets> makeWidgets(string caption) {
return shared_ptr<Panels::Widgets>(new Panels::Widgets());
}

//----------
shared_ptr<Panels::Tree> makeTree(string caption) {
auto newPanel = make_shared<Panels::Tree>();
LABEL_PANEL_AND_RETURN
}

//----------
shared_ptr<Panels::Instructions> makeInstructions() {
return shared_ptr<Panels::Instructions>(new Panels::Instructions());
}

//----------
shared_ptr<Panels::Inspector> makeInspector() {
return shared_ptr<Panels::Inspector>(new Panels::Inspector());
}

//----------
shared_ptr<Panels::Groups::Grid> makeGrid() {
return shared_ptr<Panels::Groups::Grid>(new Panels::Groups::Grid());
}

//----------
shared_ptr<Panels::Groups::Strip> makeStrip(Panels::Groups::Strip::Direction direction) {
return make_shared<Panels::Groups::Strip>(direction);
}

//----------
shared_ptr<Panels::Base> makeBlank(string caption) {
auto newPanel = shared_ptr<Panels::Base>(new Panels::Base());
LABEL_PANEL_AND_RETURN
}

#pragma mark Builder
//----------
void Builder::init() {
PanelGroupPtr rootGroup( new Panels::Groups::Grid() );
controller.init(rootGroup);
}

#pragma mark add
//----------
void Builder::add(PanelPtr panel) {
controller.add(panel);
Expand Down Expand Up @@ -42,146 +120,68 @@ namespace ofxCvGui {

//----------
shared_ptr<Panels::Base> Builder::addBlank(string caption) {
auto newPanel = this->makeBlank();
auto newPanel = makeBlank(caption);
newPanel->setCaption(caption);
this->controller.add(newPanel);
return newPanel;
}

//----------
shared_ptr<Panels::World> Builder::addWorld(string caption) {
auto newPanel = this->makeWorld(caption);
auto newPanel = makeWorld(caption);
this->controller.add(newPanel);
return newPanel;
}

//----------
shared_ptr<Panels::ElementHost> Builder::addElementHost(string caption) {
auto newPanel = this->makeElementHost(caption);
auto newPanel = makeElementHost(caption);
this->controller.add(newPanel);
return newPanel;
}

//----------
shared_ptr<Panels::Widgets> Builder::addWidgets(string caption) {
auto newPanel = this->makeWidgets(caption);
auto newPanel = makeWidgets(caption);
this->controller.add(newPanel);
return newPanel;
}

//----------
shared_ptr<Panels::Instructions> Builder::addInstructions() {
auto newPanel = this->makeInstructions();
auto newPanel = makeInstructions();
this->controller.add(newPanel);
return newPanel;
}

//----------
shared_ptr<Panels::Inspector> Builder::addInspector() {
auto newPanel = this->makeInspector();
auto newPanel = makeInspector();
this->controller.add(newPanel);
return newPanel;
}

//----------
shared_ptr<Panels::Tree> Builder::addTree() {
auto newPanel = this->makeTree();
auto newPanel = makeTree();
this->controller.add(newPanel);
return newPanel;
}

//----------
shared_ptr<Panels::Groups::Grid> Builder::addGrid() {
auto newPanel = this->makeGrid();
auto newPanel = makeGrid();
this->controller.add(newPanel);
return newPanel;
}

//----------
shared_ptr<Panels::Groups::Strip> Builder::addStrip() {
auto newPanel = this->makeStrip();
auto newPanel = makeStrip();
this->controller.add(newPanel);
return newPanel;
}

#pragma mark make
//----------
shared_ptr<Panels::Draws> Builder::makePanel(ofBaseDraws& asset, string caption) {
auto newPanel = make_shared<Panels::Draws>(asset);
LABEL_PANEL_AND_RETURN
}

//----------
shared_ptr<Panels::Image> Builder::makePanel(ofImage& asset, string caption) {
auto newPanel = make_shared<Panels::Image>(asset);
LABEL_PANEL_AND_RETURN
}

//----------
shared_ptr<Panels::Pixels> Builder::makePanel(const ofPixels& asset, string caption) {
auto newPanel = make_shared<Panels::Pixels>(asset);
LABEL_PANEL_AND_RETURN
}

//----------
shared_ptr<Panels::PixelsVector> Builder::makePanel(const vector<ofPixels>& asset, string caption) {
auto newPanel = make_shared<Panels::PixelsVector>(asset);
LABEL_PANEL_AND_RETURN
}

//----------
shared_ptr<Panels::Texture> Builder::makePanel(const ofTexture & asset, string caption) {
auto newPanel = make_shared<Panels::Texture>(asset);
LABEL_PANEL_AND_RETURN
}

//----------
shared_ptr<Panels::Instructions> Builder::makeInstructions() {
return shared_ptr<Panels::Instructions>( new Panels::Instructions() );
}

//----------
shared_ptr<Panels::Tree> Builder::makeTree() {
return make_shared<Panels::Tree>();
}
//----------
shared_ptr<Panels::Inspector> Builder::makeInspector() {
return shared_ptr<Panels::Inspector>( new Panels::Inspector() );
}

//----------
shared_ptr<Panels::Groups::Grid> Builder::makeGrid() {
return shared_ptr<Panels::Groups::Grid>( new Panels::Groups::Grid() );
}

//----------
shared_ptr<Panels::Groups::Strip> Builder::makeStrip() {
return make_shared<Panels::Groups::Strip>();
}

//----------
shared_ptr<Panels::World> Builder::makeWorld(string caption) {
auto newPanel = shared_ptr<Panels::World>(new Panels::World());
LABEL_PANEL_AND_RETURN
}

//----------
shared_ptr<Panels::ElementHost> Builder::makeElementHost(string caption) {
auto newPanel = shared_ptr<Panels::ElementHost>(new Panels::ElementHost());
LABEL_PANEL_AND_RETURN
}

//----------
shared_ptr<Panels::Widgets> Builder::makeWidgets(string caption) {
auto newPanel = shared_ptr<Panels::Widgets>(new Panels::Widgets());
LABEL_PANEL_AND_RETURN
}

//----------
shared_ptr<Panels::Base> Builder::makeBlank() {
return shared_ptr<Panels::Base>(new Panels::Base());
}

//----------
void Builder::drop(PanelPtr &panel) {
controller.drop(panel);
Expand Down
35 changes: 18 additions & 17 deletions src/ofxCvGui/Builder.h
Expand Up @@ -25,6 +25,24 @@
#include "ofxCvGui/Panels/SharedView.h"

namespace ofxCvGui {
shared_ptr<Panels::Draws> makePanel(ofBaseDraws& asset, string caption = "");
shared_ptr<Panels::Image> makePanel(ofImage& asset, string caption = "");
shared_ptr<Panels::Pixels> makePanel(const ofPixels& asset, string caption = "");
shared_ptr<Panels::PixelsVector> makePanel(const vector<ofPixels>& asset, string caption = "");
shared_ptr<Panels::Texture> makePanel(const ofTexture & asset, string caption = "");

shared_ptr<Panels::World> makeWorld(string caption = "");
shared_ptr<Panels::ElementHost> makeElementHost(string caption = "");
shared_ptr<Panels::Widgets> makeWidgets(string caption = "");
shared_ptr<Panels::Tree> makeTree(string caption = "");

shared_ptr<Panels::Instructions> makeInstructions();
shared_ptr<Panels::Inspector> makeInspector();
shared_ptr<Panels::Groups::Grid> makeGrid();
shared_ptr<Panels::Groups::Strip> makeStrip(Panels::Groups::Strip::Direction direction = Panels::Groups::Strip::Direction::Horizontal);

PanelPtr makeBlank(string caption = "");

class Builder {
public:
void init();
Expand All @@ -45,23 +63,6 @@ namespace ofxCvGui {
shared_ptr<Panels::Tree> addTree();
shared_ptr<Panels::Groups::Grid> addGrid();
shared_ptr<Panels::Groups::Strip> addStrip();


//panel factory
static shared_ptr<Panels::Draws> makePanel(ofBaseDraws& asset, string caption="");
static shared_ptr<Panels::Image> makePanel(ofImage& asset, string caption="");
static shared_ptr<Panels::Pixels> makePanel(const ofPixels& asset, string caption="");
static shared_ptr<Panels::PixelsVector> makePanel(const vector<ofPixels>& asset, string caption = "");
static shared_ptr<Panels::Texture> makePanel(const ofTexture & asset, string caption="");
static shared_ptr<Panels::World> makeWorld(string caption = "");
static shared_ptr<Panels::ElementHost> makeElementHost(string caption = "");
static shared_ptr<Panels::Widgets> makeWidgets(string caption = "");
static shared_ptr<Panels::Instructions> makeInstructions();
static shared_ptr<Panels::Inspector> makeInspector();
static shared_ptr<Panels::Tree> makeTree();
static shared_ptr<Panels::Groups::Grid> makeGrid();
static shared_ptr<Panels::Groups::Strip> makeStrip();
static PanelPtr makeBlank();

Controller & getController() { return this->controller; }
void clear();
Expand Down

0 comments on commit e4a4888

Please sign in to comment.