diff options
Diffstat (limited to 'plugingui/tests')
| -rw-r--r-- | plugingui/tests/Makefile.am | 12 | ||||
| -rw-r--r-- | plugingui/tests/filebrowsertest.cc | 128 | 
2 files changed, 139 insertions, 1 deletions
| 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 <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); +		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; +} | 
