Skip to content

Commit

Permalink
Add NanoSubWidgets test
Browse files Browse the repository at this point in the history
Signed-off-by: falkTX <[email protected]>
  • Loading branch information
falkTX committed May 20, 2021
1 parent 2369ad1 commit 4efdece
Show file tree
Hide file tree
Showing 6 changed files with 148 additions and 1 deletion.
2 changes: 2 additions & 0 deletions tests/Circle.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/

#include "tests.hpp"

// --------------------------------------------------------------------------------------------------------------------

int main()
Expand Down
2 changes: 2 additions & 0 deletions tests/Line.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/

#include "tests.hpp"

// --------------------------------------------------------------------------------------------------------------------

int main()
Expand Down
6 changes: 5 additions & 1 deletion tests/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ BUILD_CXX_FLAGS += -Wno-extra -Wno-missing-field-initializers

# ---------------------------------------------------------------------------------------------------------------------

TESTS = Application Color Point
TESTS = Application Color Point NanoSubWidgets
ifeq ($(HAVE_CAIRO),true)
TESTS += Demo.cairo
WTESTS += Window.cairo
Expand Down Expand Up @@ -128,6 +128,10 @@ clean:
@echo "Linking Demo (OpenGL)"
$(SILENT)$(CXX) $^ $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(VULKAN_LIBS) -o $@

../build/tests/NanoSubWidgets$(APP_EXT): ../build/tests/NanoSubWidgets.cpp.o ../build/libdgl-opengl.a
@echo "Linking Demo (OpenGL)"
$(SILENT)$(CXX) $^ $(LINK_FLAGS) $(DGL_SYSTEM_LIBS) $(OPENGL_LIBS) -o $@

# ---------------------------------------------------------------------------------------------------------------------

-include $(OBJS:%.o=%.d)
Expand Down
135 changes: 135 additions & 0 deletions tests/NanoSubWidgets.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
/*
* DISTRHO Plugin Framework (DPF)
* Copyright (C) 2012-2021 Filipe Coelho <[email protected]>
*
* Permission to use, copy, modify, and/or distribute this software for any purpose with
* or without fee is hereby granted, provided that the above copyright notice and this
* permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD
* TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN
* NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
* IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/

#include "tests.hpp"

#include "../dgl/NanoVG.hpp"

START_NAMESPACE_DGL

// --------------------------------------------------------------------------------------------------------------------

class NanoRectangle : public NanoSubWidget
{
public:
explicit NanoRectangle(Widget* const parent)
: NanoSubWidget(parent),
color() {}

void setColor(const Color c) noexcept
{
color = c;
}

protected:
void onNanoDisplay() override
{
beginPath();

fillColor(color);
rect(0, 0, getWidth(), getHeight());
fill();

closePath();
}

private:
Color color;
};

// --------------------------------------------------------------------------------------------------------------------

class NanoRectanglesContainer : public NanoTopLevelWidget
{
public:
explicit NanoRectanglesContainer(Window& parent)
: NanoTopLevelWidget(parent),
rect1(this),
rect2(this),
rect3(this)
{
rect1.setAbsolutePos(100, 100);
rect1.setSize(25, 25);
rect1.setColor(Color(255, 0, 0));

rect2.setAbsolutePos(200, 200);
rect2.setSize(25, 25);
rect2.setColor(Color(0, 255, 0));

rect3.setAbsolutePos(300, 300);
rect3.setSize(25, 25);
rect3.setColor(Color(0, 0, 255));
}

protected:
void onNanoDisplay() override
{
}

private:
NanoRectangle rect1, rect2, rect3;
};

// --------------------------------------------------------------------------------------------------------------------

class NanoExampleWindow : public Window
{
public:
explicit NanoExampleWindow(Application& app)
: Window(app),
container(*this)
{
const uint targetWidth = 1000;
const uint targetHeight = 600;

setSize(targetWidth, targetHeight);
// container.setSize(width, height);

setTitle("NanoVG SubWidgets test");
}

/*
protected:
void onReshape(uint width, uint height) override
{
container.setSize(width, height);
Window::onReshape(width, height);
}
*/

private:
NanoRectanglesContainer container;
};

// --------------------------------------------------------------------------------------------------------------------

END_NAMESPACE_DGL

int main()
{
USE_NAMESPACE_DGL;

Application app;
NanoExampleWindow win(app);

win.show();
app.exec();

return 0;
}

// --------------------------------------------------------------------------------------------------------------------
2 changes: 2 additions & 0 deletions tests/Rectangle.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/

#include "tests.hpp"

// --------------------------------------------------------------------------------------------------------------------

int main()
Expand Down
2 changes: 2 additions & 0 deletions tests/Triangle.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/

#include "tests.hpp"

// --------------------------------------------------------------------------------------------------------------------

int main()
Expand Down

0 comments on commit 4efdece

Please sign in to comment.