#include <iostream>
#include <cstdlib>
#include <cairo/cairo.h>

#include <cairo_t_singleton.hpp>

cairo_t* cairo_t_singleton::get_context(cairo_surface_t* surf){
  if(context==NULL && surf!=NULL){
    cairo_t_singleton::context=cairo_create(surf);
  }

  return cairo_t_singleton::context;
}


void cairo_t_singleton::free_context(){
  if(cairo_t_singleton::context!=NULL){
    cairo_destroy(cairo_t_singleton::context);
    cairo_t_singleton::context=0;
  }
}

void cairo_t_singleton::destroy(){
  cairo_t_singleton::free_context();
}
  
bool cairo_t_singleton::can_export(){
  return get_context();
}

cairo_t_singleton::cairo_t_singleton(){
  
}

cairo_t* cairo_t_singleton::context=NULL;


