/*
 * Copyright(c) 2016, OpenAV
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are
 * met:
 *     * Redistributions of source code must retain the above copyright
 *       notice, this list of conditions and the following disclaimer.
 *     * Redistributions in binary form must reproduce the above copyright
 *       notice, this list of conditions and the following disclaimer in
 *       the documentation and/or other materials provided with the
 *       distribution.
 *     * Neither the name of the <organization> nor the
 *       names of its contributors may be used to endorse or promote
 *       products derived from this software without specific prior
 *       written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL OPENAV BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

#ifndef OPENAV_AVTK_TEST_UI_HXX
#define OPENAV_AVTK_TEST_UI_HXX

#include "avtk/avtk.hxx"

#include "header.c"

namespace Avtk
{
class Widget;
};

class TestUI : public Avtk::UI
{
public:
	/// Set a NativeWindow for embedding: ignore for standalone
	TestUI(PuglNativeWindow parent = 0);

	/// demo function, changes all widgets to value
	void setAllWidgets( Avtk::Widget* w, float value );

	void widgetValueCB( Avtk::Widget* widget);

	Avtk::Button* groupToggler;
	Avtk::Button* momentary;
	Avtk::Button* momentaryOut;

	Avtk::Group* group1;

	Avtk::Scroll* scroll;

	Avtk::Slider* vertSlider;
	Avtk::Slider* horiSlider;

	Avtk::EventEditor* editor;

	Avtk::List* list;
	Avtk::List* list2;
	Avtk::Waveform* waveform;

	Avtk::Spectrum* spectrum;

	Avtk::Dialog* dialog;
};


#endif // OPENAV_AVTK_TEST_UI_HXX
