/* autogenerated by generator-scaled-font.js */

#pragma once

#include <nan.h>
#include <node.h>
#include <girepository.h>
#include <glib.h>
#include <cairo.h>
#include <cairo-ft.h>
#ifdef PLATFORM_WIN
#   include <cairo-win32.h>
#endif
#ifdef PLATFORM_MAC
#   include <cairo-quartz.h>
#endif

namespace GNodeJS {

namespace Cairo {


class ScaledFont: public Nan::ObjectWrap {
  public:
    static Nan::Persistent<v8::FunctionTemplate> constructorTemplate;
    static Nan::Persistent<v8::Function>         constructor;
    static void Initialize(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE target);
    static void SetupTemplate();
    static Local<v8::FunctionTemplate> GetTemplate();
    static Local<v8::Function> GetConstructor();

    static NAN_METHOD(New);

    static NAN_METHOD(create);
    static NAN_METHOD(status);
    static NAN_METHOD(extents);
    static NAN_METHOD(textExtents);
    static NAN_METHOD(glyphExtents);
    static NAN_METHOD(textToGlyphs);
    static NAN_METHOD(getFontFace);
    static NAN_METHOD(getFontOptions);
    static NAN_METHOD(getFontMatrix);
    static NAN_METHOD(getCtm);
    static NAN_METHOD(getScaleMatrix);
    static NAN_METHOD(getType);
    static NAN_METHOD(getReferenceCount);


    ScaledFont(cairo_scaled_font_t* data);
    ~ScaledFont();

    cairo_scaled_font_t* _data;
};

}; // Cairo

}; // GNodeJS