diff options
author | Bent Bisballe Nyeng <deva@aasimon.org> | 2017-04-23 10:00:42 +0200 |
---|---|---|
committer | Bent Bisballe Nyeng <deva@aasimon.org> | 2017-04-23 10:00:42 +0200 |
commit | 28934c6bc1a55b993f54b5ff7e3c809767f694d2 (patch) | |
tree | 27ffe36abc76d1ee1ee5bbad4fd257d1cf7a9265 /test/uitests/filebrowsertest.cc | |
parent | b2daadf6fe64715705617e6a9b11163359b7d927 (diff) |
Fix dist target.
Diffstat (limited to 'test/uitests/filebrowsertest.cc')
-rw-r--r-- | test/uitests/filebrowsertest.cc | 146 |
1 files changed, 146 insertions, 0 deletions
diff --git a/test/uitests/filebrowsertest.cc b/test/uitests/filebrowsertest.cc new file mode 100644 index 0000000..c558fab --- /dev/null +++ b/test/uitests/filebrowsertest.cc @@ -0,0 +1,146 @@ +/* -*- 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 <iostream> + +#include <platform.h> + +#if DG_PLATFORM == DG_PLATFORM_WINDOWS +#define WIN32_LEAN_AND_MEAN +#include <windows.h> +#endif +#include <unistd.h> + +#include <hugin.hpp> +#include <window.h> +#include <button.h> +#include <label.h> +#include <filebrowser.h> + +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); + + CONNECT(&file_browser, fileSelectNotifier, + this, &TestWindow::fileSelected); + + CONNECT(&file_browser, fileSelectCancelNotifier, + this, &TestWindow::fileCanceled); + + + 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 fileSelected(const std::string& filename) + { + label.setText(filename); + } + + void fileCanceled() + { + label.setText("[Canceled]"); + } + + 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; +} |