From 04321fa1f096c51a08f43363f4e7fb3de014a370 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Sun, 16 Apr 2017 20:49:17 +0200 Subject: Add filebrowser test app. --- plugingui/tests/Makefile.am | 12 +++- plugingui/tests/filebrowsertest.cc | 128 +++++++++++++++++++++++++++++++++++++ 2 files changed, 139 insertions(+), 1 deletion(-) create mode 100644 plugingui/tests/filebrowsertest.cc (limited to 'plugingui/tests') diff --git a/plugingui/tests/Makefile.am b/plugingui/tests/Makefile.am index 28c5cfa..917c66f 100644 --- a/plugingui/tests/Makefile.am +++ b/plugingui/tests/Makefile.am @@ -1,4 +1,5 @@ -noinst_PROGRAMS = resizetest tabwidgettest dgwindowtest framewidgettest +noinst_PROGRAMS = resizetest tabwidgettest dgwindowtest framewidgettest \ + filebrowsertest resizetest_LDADD = $(top_srcdir)/plugingui/libdggui.la resizetest_CXXFLAGS = \ @@ -18,6 +19,15 @@ tabwidgettest_SOURCES = \ tabwidgettest.cc \ $(top_srcdir)/hugin/hugin.c +filebrowsertest_LDADD = $(top_srcdir)/plugingui/libdggui.la +filebrowsertest_CXXFLAGS = \ + -I$(top_srcdir)/plugingui \ + -I$(top_srcdir)/src \ + -I$(top_srcdir)/hugin +filebrowsertest_SOURCES = \ + filebrowsertest.cc \ + $(top_srcdir)/hugin/hugin.c + dgwindowtest_LDADD = \ $(top_srcdir)/plugingui/libdggui.la \ $(top_srcdir)/src/libdg.la diff --git a/plugingui/tests/filebrowsertest.cc b/plugingui/tests/filebrowsertest.cc new file mode 100644 index 0000000..cfe5aa2 --- /dev/null +++ b/plugingui/tests/filebrowsertest.cc @@ -0,0 +1,128 @@ +/* -*- Mode: c++ -*- */ +/*************************************************************************** + * filebrowsertest.cc + * + * Sat Apr 15 22:24:06 CEST 2017 + * Copyright 2017 Bent Bisballe Nyeng + * deva@aasimon.org + ****************************************************************************/ + +/* + * This file is part of DrumGizmo. + * + * DrumGizmo is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * DrumGizmo is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with DrumGizmo; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ +#include + +#include + +#if DG_PLATFORM == DG_PLATFORM_WINDOWS +#define WIN32_LEAN_AND_MEAN +#include +#endif +#include + +#include +#include +#include +#include +#include + +class TestWindow + : public GUI::Window +{ +public: + TestWindow() + : GUI::Window(nullptr) + { + setCaption("FileBrowserTest Window"); + CONNECT(eventHandler(), closeNotifier, + this, &TestWindow::closeEventHandler); + + CONNECT(file_browser.eventHandler(), closeNotifier, + this, &TestWindow::dialogCloseEventHandler); + button.move(0, 0); + button.resize(120, 30); + button.setText("Browse..."); + + label.move(0, 40); + label.resize(120, 30); + label.setText("Filename will be shown here."); + + CONNECT(&button, clickNotifier, + this, &TestWindow::dialogShow); + } + + void closeEventHandler() + { + closing = true; + } + + void dialogCloseEventHandler() + { + file_browser.hide(); + } + + void dialogShow() + { + file_browser.show(); + //file_browser.resize(300, 300); + } + + bool processEvents() + { + eventHandler()->processEvents(); + return !closing; + } + + void repaintEvent(GUI::RepaintEvent* repaintEvent) + { + GUI::Painter painter(*this); + + label.resize(width(), 30); + + //painter.clear(); + painter.setColour(GUI::Colour(0,1,0)); + painter.drawFilledRectangle(0, 0, width(), height()); + } + +private: + bool closing{false}; + + GUI::Button button{this}; + GUI::Label label{this}; + + GUI::FileBrowser file_browser{this}; +}; + +int main() +{ + INFO(example, "We are up and running"); + + TestWindow test_window; + test_window.show(); + test_window.resize(300,300); + + while(test_window.processEvents()) + { +#if DG_PLATFORM == DG_PLATFORM_WINDOWS + SleepEx(50, FALSE); +#else + usleep(50000); +#endif + } + + return 0; +} -- cgit v1.2.3