
#include <gtkmm.h>
#include <boost/lambda/bind.hpp>
#include <mlib/sigc.h>

namespace bl = boost::lambda;

bool DrawDiagonals(Gtk::DrawingArea& da)
{
    int wdh = da.get_width(), hgt = da.get_height();
    Cairo::RefPtr<Cairo::Context> cr = da.get_window()->create_cairo_context();

    cr->move_to(0, 0);
    cr->line_to(wdh, hgt);
    cr->stroke();

    cr->move_to(wdh, 0);
    cr->line_to(0, hgt);
    cr->stroke();

    return true;
}

int main(int argc, char* argv[])
{
    Gtk::Main kit(argc, argv);

    Gtk::DrawingArea da;
    da.signal_expose_event().connect( wrap_return<bool>(bl::bind(&DrawDiagonals, boost::ref(da))) );

    Gtk::Window win;
    win.add(da);

    win.show_all();
    Gtk::Main::run(win);
    return 0;
}

