#ifndef WIDGETS_GRAPHPLOTTER_COMMON_H
#define WIDGETS_GRAPHPLOTTER_COMMON_H

#include <QtCore/QtGlobal>
#include <QWidget>
#include <QColor>

#include <tr1/memory>
#include <vector>
#include <utility>

#include <stdint.h>
#include <sys/types.h>

#include <boost/optional.hpp>

#include "../common.h"
#include "../opaque.h"

#if defined(HAVE_STD_FUNCTION)
#include <functional>
#elif defined(HAVE_STD_TR1_FUNCTION)
#include <tr1/functional>
#elif defined(HAVE_BOOST_FUNCTION)
#include <boost/function.hpp>
#include <boost/mem_fn.hpp>
#include <boost/bind.hpp>
#endif

#include "Vector2D.h"

#if defined(WIDGETS_LIBRARY)
#  define WIDGETS_EXPORT Q_DECL_EXPORT
#else
#  define WIDGETS_EXPORT Q_DECL_IMPORT
#endif

#define SHARED_PTR std::tr1::shared_ptr

#if defined(HAVE_STD_FUNCTION)
#define F_FUNCTION std::function
#define F_MEM_FN std::mem_fn
#define F_BIND std::bind
#elif defined(HAVE_STD_TR1_FUNCTION)
#define F_FUNCTION std::tr1::function
#define F_MEM_FN std::tr1::mem_fn
#define F_BIND std::tr1::bind
#elif defined(HAVE_BOOST_FUNCTION)
#define F_FUNCTION boost::function
#define F_MEM_FN boost::mem_fn
#define F_BIND boost::bind
#endif

#define MIN_WIDTH 400
#define MIN_HEIGHT 200


// -- TDE NAMESPACE ----------------------------------------------------

namespace TDE {

// -- Widgets NAMESPACE ------------------------------------------------

namespace Widgets {

namespace Plot {


} /* end of namespace Plot */

} /* end of namespace Widgets */

} /* end of namespace TDE */

#endif /* WIDGETS_GRAPHPLOTTER_COMMON_H */
