#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <vector>
#include <gtkmm/window.h>
#include "view.h"
#include "surface.h"
#include "generator.h"
class MainWindow: public Gtk::Window {
public:
Generator generator;
View src_view;
View dst_view;
View::PointPtr
src_rect_p0, src_rect_p1,
dst_rect_p0, dst_rect_px, dst_rect_py, dst_rect_p1,
dst_bounds_p0, dst_bounds_p1;
Cairo::RefPtr<Cairo::ImageSurface> src_surface;
Cairo::RefPtr<Cairo::ImageSurface> dst_surface;
MainWindow();
Gtk::Widget* generator_demo();
void update_src_surface();
void update_dst_surface();
void on_point_motion(const View::PointPtr &point);
void on_point_changed(const View::PointPtr &point);
void on_view_transform_changed(View *view);
void on_draw_src_view(const Cairo::RefPtr<Cairo::Context> &context);
void on_draw_dst_view(const Cairo::RefPtr<Cairo::Context> &context);
};
#endif