/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */

#ifndef __KZ_RUBY_EXT_H__
#define __KZ_RUBY_EXT_H__

#include <rbgtk.h>

#undef PACKAGE_NAME
#undef PACKAGE_TARNAME
#undef PACKAGE_STRING
#undef PACKAGE_VERSION

#include "kz-window.h"
#include "kz-downloader.h"
#include "kz-downloader-group.h"
#include "kz-enum-types.h"
#include "kz-embed-event.h"

#define RVAL2DLGRP(obj)    (KZ_DOWNLOADER_GROUP(RVAL2GOBJ(obj)))
#define RVAL2DL(obj)       (KZ_DOWNLOADER(RVAL2GOBJ(obj)))
#define EVENTMOUSE2RVAL(obj) \
  (BOXED2RVAL(obj, KZ_TYPE_EMBED_EVENT_MOUSE))


extern void kz_ext_init(void);
extern void kz_ext_setup(KzWindow *kz);
extern void kz_ext_exit(gboolean success);
extern void Init_kz_rb_window(VALUE mKz);
extern void Init_kz_rb_embed(VALUE mKz);
extern void Init_kz_rb_embed_event(VALUE mKz);
extern void Init_kz_rb_conf(VALUE mKz);
extern void Init_kz_rb_downloader(VALUE mKz);
extern void Init_kz_rb_downloader_group(VALUE mKz);
extern void Init_kz_rb_bookmark(VALUE mKz);

#endif /* __KZ_RUBY_EXT_H__ */
