#ifndef _FTL_GUI_CTRLWINDOW_HPP_
#define _FTL_GUI_CTRLWINDOW_HPP_

#include <nanogui/window.h>
#include <ftl/master.hpp>
#include <ftl/uuid.hpp>

namespace ftl {
namespace gui {

/**
 * Manage connected nodes and add new connections.
 */
class ControlWindow : public nanogui::Window {
	public:
	ControlWindow(nanogui::Widget *parent, ftl::ctrl::Master *ctrl);
	~ControlWindow();

	private:
	ftl::ctrl::Master *ctrl_;
	std::vector<ftl::config::json_t> node_details_;
	std::vector<std::string> node_titles_;
	int active_ix_;
	std::string add_node_uri_;

	void _updateDetails();
	void _changeActive(int);
	ftl::UUID _getActiveID();
	void _addNode();
};

}
}

#endif  // _FTL_GUI_CTRLWINDOW_HPP_