Browse Source

Add NanoSubWidgets test

Signed-off-by: falkTX <falktx@falktx.com>
pull/272/head
falkTX 4 years ago
parent
commit
4efdece239
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
6 changed files with 148 additions and 1 deletions
  1. +2
    -0
      tests/Circle.cpp
  2. +2
    -0
      tests/Line.cpp
  3. +5
    -1
      tests/Makefile
  4. +135
    -0
      tests/NanoSubWidgets.cpp
  5. +2
    -0
      tests/Rectangle.cpp
  6. +2
    -0
      tests/Triangle.cpp

+ 2
- 0
tests/Circle.cpp View File

@@ -14,6 +14,8 @@
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/

#include "tests.hpp"

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

int main()


+ 2
- 0
tests/Line.cpp View File

@@ -14,6 +14,8 @@
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/

#include "tests.hpp"

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

int main()


+ 5
- 1
tests/Makefile View File

@@ -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
@@ -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)


+ 135
- 0
tests/NanoSubWidgets.cpp View File

@@ -0,0 +1,135 @@
/*
* DISTRHO Plugin Framework (DPF)
* Copyright (C) 2012-2021 Filipe Coelho <falktx@falktx.com>
*
* 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
- 0
tests/Rectangle.cpp View File

@@ -14,6 +14,8 @@
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/

#include "tests.hpp"

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

int main()


+ 2
- 0
tests/Triangle.cpp View File

@@ -14,6 +14,8 @@
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/

#include "tests.hpp"

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

int main()


Loading…
Cancel
Save