/* -*-c-*- */
/* Automatically generated - DO NOT EDIT */

/* pango-attributes.h */

typedef struct ScmPangoAttributeRec {
    SCM_HEADER;
    PangoAttribute data;
} ScmPangoAttribute;

SCM_CLASS_DECL(Scm_PangoAttributeClass);
#define SCM_CLASS_PANGO_ATTRIBUTE     (&Scm_PangoAttributeClass)
#define SCM_PANGO_ATTRIBUTE_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_PANGO_ATTRIBUTE)
#define SCM_PANGO_ATTRIBUTE(obj)      (SCM_FALSEP(obj)?NULL:&((ScmPangoAttribute*)(obj))->data)
#define SCM_MAKE_PANGO_ATTRIBUTE(obj) (Scm_MakePangoAttribute(obj))
#define SCM_PANGO_ATTRIBUTE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_ATTRIBUTE_P(obj))
extern ScmObj Scm_MakePangoAttribute(PangoAttribute *data);

typedef struct ScmPangoAttrStringRec {
    SCM_HEADER;
    PangoAttrString *data;
} ScmPangoAttrString;

SCM_CLASS_DECL(Scm_PangoAttrStringClass);
#define SCM_CLASS_PANGO_ATTR_STRING     (&Scm_PangoAttrStringClass)
#define SCM_PANGO_ATTR_STRING_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_PANGO_ATTR_STRING)
#define SCM_PANGO_ATTR_STRING(obj)      (SCM_FALSEP(obj)?NULL:((ScmPangoAttrString*)(obj))->data)
#define SCM_MAKE_PANGO_ATTR_STRING(obj) (Scm_MakePangoAttrString(obj))
#define SCM_PANGO_ATTR_STRING_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_ATTR_STRING_P(obj))
extern ScmObj Scm_MakePangoAttrString(PangoAttrString *data);

typedef struct ScmPangoAttrLanguageRec {
    SCM_HEADER;
    PangoAttrLanguage *data;
} ScmPangoAttrLanguage;

SCM_CLASS_DECL(Scm_PangoAttrLanguageClass);
#define SCM_CLASS_PANGO_ATTR_LANGUAGE     (&Scm_PangoAttrLanguageClass)
#define SCM_PANGO_ATTR_LANGUAGE_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_PANGO_ATTR_LANGUAGE)
#define SCM_PANGO_ATTR_LANGUAGE(obj)      (SCM_FALSEP(obj)?NULL:((ScmPangoAttrLanguage*)(obj))->data)
#define SCM_MAKE_PANGO_ATTR_LANGUAGE(obj) (Scm_MakePangoAttrLanguage(obj))
#define SCM_PANGO_ATTR_LANGUAGE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_ATTR_LANGUAGE_P(obj))
extern ScmObj Scm_MakePangoAttrLanguage(PangoAttrLanguage *data);

typedef struct ScmPangoAttrIntRec {
    SCM_HEADER;
    PangoAttrInt *data;
} ScmPangoAttrInt;

SCM_CLASS_DECL(Scm_PangoAttrIntClass);
#define SCM_CLASS_PANGO_ATTR_INT     (&Scm_PangoAttrIntClass)
#define SCM_PANGO_ATTR_INT_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_PANGO_ATTR_INT)
#define SCM_PANGO_ATTR_INT(obj)      (SCM_FALSEP(obj)?NULL:((ScmPangoAttrInt*)(obj))->data)
#define SCM_MAKE_PANGO_ATTR_INT(obj) (Scm_MakePangoAttrInt(obj))
#define SCM_PANGO_ATTR_INT_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_ATTR_INT_P(obj))
extern ScmObj Scm_MakePangoAttrInt(PangoAttrInt *data);

typedef struct ScmPangoAttrFloatRec {
    SCM_HEADER;
    PangoAttrFloat *data;
} ScmPangoAttrFloat;

SCM_CLASS_DECL(Scm_PangoAttrFloatClass);
#define SCM_CLASS_PANGO_ATTR_FLOAT     (&Scm_PangoAttrFloatClass)
#define SCM_PANGO_ATTR_FLOAT_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_PANGO_ATTR_FLOAT)
#define SCM_PANGO_ATTR_FLOAT(obj)      (SCM_FALSEP(obj)?NULL:((ScmPangoAttrFloat*)(obj))->data)
#define SCM_MAKE_PANGO_ATTR_FLOAT(obj) (Scm_MakePangoAttrFloat(obj))
#define SCM_PANGO_ATTR_FLOAT_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_ATTR_FLOAT_P(obj))
extern ScmObj Scm_MakePangoAttrFloat(PangoAttrFloat *data);

typedef struct ScmPangoAttrColorRec {
    SCM_HEADER;
    PangoAttrColor *data;
} ScmPangoAttrColor;

SCM_CLASS_DECL(Scm_PangoAttrColorClass);
#define SCM_CLASS_PANGO_ATTR_COLOR     (&Scm_PangoAttrColorClass)
#define SCM_PANGO_ATTR_COLOR_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_PANGO_ATTR_COLOR)
#define SCM_PANGO_ATTR_COLOR(obj)      (SCM_FALSEP(obj)?NULL:((ScmPangoAttrColor*)(obj))->data)
#define SCM_MAKE_PANGO_ATTR_COLOR(obj) (Scm_MakePangoAttrColor(obj))
#define SCM_PANGO_ATTR_COLOR_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_ATTR_COLOR_P(obj))
extern ScmObj Scm_MakePangoAttrColor(PangoAttrColor *data);

typedef struct ScmPangoAttrSizeRec {
    SCM_HEADER;
    PangoAttrSize data;
} ScmPangoAttrSize;

SCM_CLASS_DECL(Scm_PangoAttrSizeClass);
#define SCM_CLASS_PANGO_ATTR_SIZE     (&Scm_PangoAttrSizeClass)
#define SCM_PANGO_ATTR_SIZE_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_PANGO_ATTR_SIZE)
#define SCM_PANGO_ATTR_SIZE(obj)      (SCM_FALSEP(obj)?NULL:&((ScmPangoAttrSize*)(obj))->data)
#define SCM_MAKE_PANGO_ATTR_SIZE(obj) (Scm_MakePangoAttrSize(obj))
#define SCM_PANGO_ATTR_SIZE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_ATTR_SIZE_P(obj))
extern ScmObj Scm_MakePangoAttrSize(PangoAttrSize *data);

typedef struct ScmPangoAttrShapeRec {
    SCM_HEADER;
    PangoAttrShape *data;
} ScmPangoAttrShape;

SCM_CLASS_DECL(Scm_PangoAttrShapeClass);
#define SCM_CLASS_PANGO_ATTR_SHAPE     (&Scm_PangoAttrShapeClass)
#define SCM_PANGO_ATTR_SHAPE_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_PANGO_ATTR_SHAPE)
#define SCM_PANGO_ATTR_SHAPE(obj)      (SCM_FALSEP(obj)?NULL:((ScmPangoAttrShape*)(obj))->data)
#define SCM_MAKE_PANGO_ATTR_SHAPE(obj) (Scm_MakePangoAttrShape(obj))
#define SCM_PANGO_ATTR_SHAPE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_ATTR_SHAPE_P(obj))
extern ScmObj Scm_MakePangoAttrShape(PangoAttrShape *data);

typedef struct ScmPangoAttrFontDescRec {
    SCM_HEADER;
    PangoAttrFontDesc *data;
} ScmPangoAttrFontDesc;

SCM_CLASS_DECL(Scm_PangoAttrFontDescClass);
#define SCM_CLASS_PANGO_ATTR_FONT_DESC     (&Scm_PangoAttrFontDescClass)
#define SCM_PANGO_ATTR_FONT_DESC_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_PANGO_ATTR_FONT_DESC)
#define SCM_PANGO_ATTR_FONT_DESC(obj)      (SCM_FALSEP(obj)?NULL:((ScmPangoAttrFontDesc*)(obj))->data)
#define SCM_MAKE_PANGO_ATTR_FONT_DESC(obj) (Scm_MakePangoAttrFontDesc(obj))
#define SCM_PANGO_ATTR_FONT_DESC_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_ATTR_FONT_DESC_P(obj))
extern ScmObj Scm_MakePangoAttrFontDesc(PangoAttrFontDesc *data);

typedef struct ScmPangoAttrFontFeaturesRec {
    SCM_HEADER;
    PangoAttrFontFeatures data;
} ScmPangoAttrFontFeatures;

SCM_CLASS_DECL(Scm_PangoAttrFontFeaturesClass);
#define SCM_CLASS_PANGO_ATTR_FONT_FEATURES     (&Scm_PangoAttrFontFeaturesClass)
#define SCM_PANGO_ATTR_FONT_FEATURES_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_PANGO_ATTR_FONT_FEATURES)
#define SCM_PANGO_ATTR_FONT_FEATURES(obj)      (SCM_FALSEP(obj)?NULL:&((ScmPangoAttrFontFeatures*)(obj))->data)
#define SCM_MAKE_PANGO_ATTR_FONT_FEATURES(obj) (Scm_MakePangoAttrFontFeatures(obj))
#define SCM_PANGO_ATTR_FONT_FEATURES_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_ATTR_FONT_FEATURES_P(obj))
extern ScmObj Scm_MakePangoAttrFontFeatures(PangoAttrFontFeatures *data);

typedef struct ScmPangoAttrListRec {
    SCM_HEADER;
    PangoAttrList *data;
} ScmPangoAttrList;

SCM_CLASS_DECL(Scm_PangoAttrListClass);
#define SCM_CLASS_PANGO_ATTR_LIST     (&Scm_PangoAttrListClass)
#define SCM_PANGO_ATTR_LIST_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_PANGO_ATTR_LIST)
#define SCM_PANGO_ATTR_LIST(obj)      (SCM_FALSEP(obj)?NULL:((ScmPangoAttrList*)(obj))->data)
#define SCM_MAKE_PANGO_ATTR_LIST(obj) (Scm_MakePangoAttrList(obj))
#define SCM_PANGO_ATTR_LIST_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_ATTR_LIST_P(obj))
extern ScmObj Scm_MakePangoAttrList(PangoAttrList *data);

/* pango-break.h */

typedef struct ScmPangoLogAttrRec {
    SCM_HEADER;
    PangoLogAttr data;
} ScmPangoLogAttr;

SCM_CLASS_DECL(Scm_PangoLogAttrClass);
#define SCM_CLASS_PANGO_LOG_ATTR     (&Scm_PangoLogAttrClass)
#define SCM_PANGO_LOG_ATTR_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_PANGO_LOG_ATTR)
#define SCM_PANGO_LOG_ATTR(obj)      (SCM_FALSEP(obj)?NULL:&((ScmPangoLogAttr*)(obj))->data)
#define SCM_MAKE_PANGO_LOG_ATTR(obj) (Scm_MakePangoLogAttr(obj))
#define SCM_PANGO_LOG_ATTR_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_LOG_ATTR_P(obj))
extern ScmObj Scm_MakePangoLogAttr(PangoLogAttr *data);

/* pango-context.h */

typedef struct ScmPangoContextRec {
    SCM_HEADER;
    PangoContext *data;
} ScmPangoContext;

SCM_CLASS_DECL(Scm_PangoContextClass);
#define SCM_CLASS_PANGO_CONTEXT     (&Scm_PangoContextClass)
#define SCM_PANGO_CONTEXT_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_PANGO_CONTEXT)
#define SCM_PANGO_CONTEXT(obj)      (SCM_FALSEP(obj)?NULL:((ScmPangoContext*)(obj))->data)
#define SCM_MAKE_PANGO_CONTEXT(obj) (Scm_MakePangoContext(obj))
#define SCM_PANGO_CONTEXT_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_CONTEXT_P(obj))
extern ScmObj Scm_MakePangoContext(PangoContext *data);

/* pango-coverage.h */

typedef struct ScmPangoCoverageRec {
    SCM_HEADER;
    PangoCoverage *data;
} ScmPangoCoverage;

SCM_CLASS_DECL(Scm_PangoCoverageClass);
#define SCM_CLASS_PANGO_COVERAGE     (&Scm_PangoCoverageClass)
#define SCM_PANGO_COVERAGE_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_PANGO_COVERAGE)
#define SCM_PANGO_COVERAGE(obj)      (SCM_FALSEP(obj)?NULL:((ScmPangoCoverage*)(obj))->data)
#define SCM_MAKE_PANGO_COVERAGE(obj) (Scm_MakePangoCoverage(obj))
#define SCM_PANGO_COVERAGE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_COVERAGE_P(obj))
extern ScmObj Scm_MakePangoCoverage(PangoCoverage *data);

/* pango-enum-types.h */

/* pango-font.h */

typedef struct ScmPangoFontMetricsRec {
    SCM_HEADER;
    PangoFontMetrics *data;
} ScmPangoFontMetrics;

SCM_CLASS_DECL(Scm_PangoFontMetricsClass);
#define SCM_CLASS_PANGO_FONT_METRICS     (&Scm_PangoFontMetricsClass)
#define SCM_PANGO_FONT_METRICS_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_PANGO_FONT_METRICS)
#define SCM_PANGO_FONT_METRICS(obj)      (SCM_FALSEP(obj)?NULL:((ScmPangoFontMetrics*)(obj))->data)
#define SCM_MAKE_PANGO_FONT_METRICS(obj) (Scm_MakePangoFontMetrics(obj))
#define SCM_PANGO_FONT_METRICS_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_FONT_METRICS_P(obj))
extern ScmObj Scm_MakePangoFontMetrics(PangoFontMetrics *data);

SCM_CLASS_DECL(Scm_PangoFontFamilyClass);
#define SCM_CLASS_PANGO_FONT_FAMILY     (&Scm_PangoFontFamilyClass)
#define SCM_PANGO_FONT_FAMILY_P(obj)    (Scm_TypeP(obj, SCM_CLASS_PANGO_FONT_FAMILY))
#define SCM_PANGO_FONT_FAMILY(obj)      SCM_GOBJECT_UNBOX(PANGO_FONT_FAMILY, obj)
#define SCM_MAKE_PANGO_FONT_FAMILY(obj) SCM_GOBJECT_BOX(obj)
#define SCM_PANGO_FONT_FAMILY_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_FONT_FAMILY_P(obj))

SCM_CLASS_DECL(Scm_PangoFontFaceClass);
#define SCM_CLASS_PANGO_FONT_FACE     (&Scm_PangoFontFaceClass)
#define SCM_PANGO_FONT_FACE_P(obj)    (Scm_TypeP(obj, SCM_CLASS_PANGO_FONT_FACE))
#define SCM_PANGO_FONT_FACE(obj)      SCM_GOBJECT_UNBOX(PANGO_FONT_FACE, obj)
#define SCM_MAKE_PANGO_FONT_FACE(obj) SCM_GOBJECT_BOX(obj)
#define SCM_PANGO_FONT_FACE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_FONT_FACE_P(obj))

SCM_CLASS_DECL(Scm_PangoFontClass);
#define SCM_CLASS_PANGO_FONT     (&Scm_PangoFontClass)
#define SCM_PANGO_FONT_P(obj)    (Scm_TypeP(obj, SCM_CLASS_PANGO_FONT))
#define SCM_PANGO_FONT(obj)      SCM_GOBJECT_UNBOX(PANGO_FONT, obj)
#define SCM_MAKE_PANGO_FONT(obj) SCM_GOBJECT_BOX(obj)
#define SCM_PANGO_FONT_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_FONT_P(obj))

typedef struct ScmPangoFontDescriptionRec {
    SCM_HEADER;
    PangoFontDescription *data;
} ScmPangoFontDescription;

SCM_CLASS_DECL(Scm_PangoFontDescriptionClass);
#define SCM_CLASS_PANGO_FONT_DESCRIPTION     (&Scm_PangoFontDescriptionClass)
#define SCM_PANGO_FONT_DESCRIPTION_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_PANGO_FONT_DESCRIPTION)
#define SCM_PANGO_FONT_DESCRIPTION(obj)      (SCM_FALSEP(obj)?NULL:((ScmPangoFontDescription*)(obj))->data)
#define SCM_MAKE_PANGO_FONT_DESCRIPTION(obj) (Scm_MakePangoFontDescription(obj))
#define SCM_PANGO_FONT_DESCRIPTION_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_FONT_DESCRIPTION_P(obj))
extern ScmObj Scm_MakePangoFontDescription(PangoFontDescription *data);

/* pango-fontmap.h */

SCM_CLASS_DECL(Scm_PangoFontMapClass);
#define SCM_CLASS_PANGO_FONT_MAP     (&Scm_PangoFontMapClass)
#define SCM_PANGO_FONT_MAP_P(obj)    (Scm_TypeP(obj, SCM_CLASS_PANGO_FONT_MAP))
#define SCM_PANGO_FONT_MAP(obj)      SCM_GOBJECT_UNBOX(PANGO_FONT_MAP, obj)
#define SCM_MAKE_PANGO_FONT_MAP(obj) SCM_GOBJECT_BOX(obj)
#define SCM_PANGO_FONT_MAP_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_FONT_MAP_P(obj))

/* pango-fontset.h */

SCM_CLASS_DECL(Scm_PangoFontsetClass);
#define SCM_CLASS_PANGO_FONTSET     (&Scm_PangoFontsetClass)
#define SCM_PANGO_FONTSET_P(obj)    (Scm_TypeP(obj, SCM_CLASS_PANGO_FONTSET))
#define SCM_PANGO_FONTSET(obj)      SCM_GOBJECT_UNBOX(PANGO_FONTSET, obj)
#define SCM_MAKE_PANGO_FONTSET(obj) SCM_GOBJECT_BOX(obj)
#define SCM_PANGO_FONTSET_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_FONTSET_P(obj))

/* pango-glyph.h */

typedef struct ScmPangoGlyphGeometryRec {
    SCM_HEADER;
    PangoGlyphGeometry data;
} ScmPangoGlyphGeometry;

SCM_CLASS_DECL(Scm_PangoGlyphGeometryClass);
#define SCM_CLASS_PANGO_GLYPH_GEOMETRY     (&Scm_PangoGlyphGeometryClass)
#define SCM_PANGO_GLYPH_GEOMETRY_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_PANGO_GLYPH_GEOMETRY)
#define SCM_PANGO_GLYPH_GEOMETRY(obj)      (SCM_FALSEP(obj)?NULL:&((ScmPangoGlyphGeometry*)(obj))->data)
#define SCM_MAKE_PANGO_GLYPH_GEOMETRY(obj) (Scm_MakePangoGlyphGeometry(obj))
#define SCM_PANGO_GLYPH_GEOMETRY_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_GLYPH_GEOMETRY_P(obj))
extern ScmObj Scm_MakePangoGlyphGeometry(PangoGlyphGeometry *data);

typedef struct ScmPangoGlyphVisAttrRec {
    SCM_HEADER;
    PangoGlyphVisAttr data;
} ScmPangoGlyphVisAttr;

SCM_CLASS_DECL(Scm_PangoGlyphVisAttrClass);
#define SCM_CLASS_PANGO_GLYPH_VIS_ATTR     (&Scm_PangoGlyphVisAttrClass)
#define SCM_PANGO_GLYPH_VIS_ATTR_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_PANGO_GLYPH_VIS_ATTR)
#define SCM_PANGO_GLYPH_VIS_ATTR(obj)      (SCM_FALSEP(obj)?NULL:&((ScmPangoGlyphVisAttr*)(obj))->data)
#define SCM_MAKE_PANGO_GLYPH_VIS_ATTR(obj) (Scm_MakePangoGlyphVisAttr(obj))
#define SCM_PANGO_GLYPH_VIS_ATTR_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_GLYPH_VIS_ATTR_P(obj))
extern ScmObj Scm_MakePangoGlyphVisAttr(PangoGlyphVisAttr *data);

typedef struct ScmPangoGlyphInfoRec {
    SCM_HEADER;
    PangoGlyphInfo data;
} ScmPangoGlyphInfo;

SCM_CLASS_DECL(Scm_PangoGlyphInfoClass);
#define SCM_CLASS_PANGO_GLYPH_INFO     (&Scm_PangoGlyphInfoClass)
#define SCM_PANGO_GLYPH_INFO_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_PANGO_GLYPH_INFO)
#define SCM_PANGO_GLYPH_INFO(obj)      (SCM_FALSEP(obj)?NULL:&((ScmPangoGlyphInfo*)(obj))->data)
#define SCM_MAKE_PANGO_GLYPH_INFO(obj) (Scm_MakePangoGlyphInfo(obj))
#define SCM_PANGO_GLYPH_INFO_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_GLYPH_INFO_P(obj))
extern ScmObj Scm_MakePangoGlyphInfo(PangoGlyphInfo *data);

typedef struct ScmPangoGlyphStringRec {
    SCM_HEADER;
    PangoGlyphString data;
} ScmPangoGlyphString;

SCM_CLASS_DECL(Scm_PangoGlyphStringClass);
#define SCM_CLASS_PANGO_GLYPH_STRING     (&Scm_PangoGlyphStringClass)
#define SCM_PANGO_GLYPH_STRING_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_PANGO_GLYPH_STRING)
#define SCM_PANGO_GLYPH_STRING(obj)      (SCM_FALSEP(obj)?NULL:&((ScmPangoGlyphString*)(obj))->data)
#define SCM_MAKE_PANGO_GLYPH_STRING(obj) (Scm_MakePangoGlyphString(obj))
#define SCM_PANGO_GLYPH_STRING_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_GLYPH_STRING_P(obj))
extern ScmObj Scm_MakePangoGlyphString(PangoGlyphString *data);

/* pango-item.h */

typedef struct ScmPangoAnalysisRec {
    SCM_HEADER;
    PangoAnalysis data;
} ScmPangoAnalysis;

SCM_CLASS_DECL(Scm_PangoAnalysisClass);
#define SCM_CLASS_PANGO_ANALYSIS     (&Scm_PangoAnalysisClass)
#define SCM_PANGO_ANALYSIS_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_PANGO_ANALYSIS)
#define SCM_PANGO_ANALYSIS(obj)      (SCM_FALSEP(obj)?NULL:&((ScmPangoAnalysis*)(obj))->data)
#define SCM_MAKE_PANGO_ANALYSIS(obj) (Scm_MakePangoAnalysis(obj))
#define SCM_PANGO_ANALYSIS_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_ANALYSIS_P(obj))
extern ScmObj Scm_MakePangoAnalysis(PangoAnalysis *data);

typedef struct ScmPangoItemRec {
    SCM_HEADER;
    PangoItem data;
} ScmPangoItem;

SCM_CLASS_DECL(Scm_PangoItemClass);
#define SCM_CLASS_PANGO_ITEM     (&Scm_PangoItemClass)
#define SCM_PANGO_ITEM_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_PANGO_ITEM)
#define SCM_PANGO_ITEM(obj)      (SCM_FALSEP(obj)?NULL:&((ScmPangoItem*)(obj))->data)
#define SCM_MAKE_PANGO_ITEM(obj) (Scm_MakePangoItem(obj))
#define SCM_PANGO_ITEM_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_ITEM_P(obj))
extern ScmObj Scm_MakePangoItem(PangoItem *data);

/* pango-layout.h */

typedef struct ScmPangoLayoutLineRec {
    SCM_HEADER;
    PangoLayoutLine data;
} ScmPangoLayoutLine;

SCM_CLASS_DECL(Scm_PangoLayoutLineClass);
#define SCM_CLASS_PANGO_LAYOUT_LINE     (&Scm_PangoLayoutLineClass)
#define SCM_PANGO_LAYOUT_LINE_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_PANGO_LAYOUT_LINE)
#define SCM_PANGO_LAYOUT_LINE(obj)      (SCM_FALSEP(obj)?NULL:&((ScmPangoLayoutLine*)(obj))->data)
#define SCM_MAKE_PANGO_LAYOUT_LINE(obj) (Scm_MakePangoLayoutLine(obj))
#define SCM_PANGO_LAYOUT_LINE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_LAYOUT_LINE_P(obj))
extern ScmObj Scm_MakePangoLayoutLine(PangoLayoutLine *data);

SCM_CLASS_DECL(Scm_PangoLayoutClass);
#define SCM_CLASS_PANGO_LAYOUT     (&Scm_PangoLayoutClass)
#define SCM_PANGO_LAYOUT_P(obj)    (Scm_TypeP(obj, SCM_CLASS_PANGO_LAYOUT))
#define SCM_PANGO_LAYOUT(obj)      SCM_GOBJECT_UNBOX(PANGO_LAYOUT, obj)
#define SCM_MAKE_PANGO_LAYOUT(obj) SCM_GOBJECT_BOX(obj)
#define SCM_PANGO_LAYOUT_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_LAYOUT_P(obj))

/* pango-types.h */

typedef struct ScmPangoRectangleRec {
    SCM_HEADER;
    PangoRectangle data;
} ScmPangoRectangle;

SCM_CLASS_DECL(Scm_PangoRectangleClass);
#define SCM_CLASS_PANGO_RECTANGLE     (&Scm_PangoRectangleClass)
#define SCM_PANGO_RECTANGLE_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_PANGO_RECTANGLE)
#define SCM_PANGO_RECTANGLE(obj)      (SCM_FALSEP(obj)?NULL:&((ScmPangoRectangle*)(obj))->data)
#define SCM_MAKE_PANGO_RECTANGLE(obj) (Scm_MakePangoRectangle(obj))
#define SCM_PANGO_RECTANGLE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_RECTANGLE_P(obj))
extern ScmObj Scm_MakePangoRectangle(PangoRectangle *data);

typedef struct ScmPangoLanguageRec {
    SCM_HEADER;
    PangoLanguage *data;
} ScmPangoLanguage;

SCM_CLASS_DECL(Scm_PangoLanguageClass);
#define SCM_CLASS_PANGO_LANGUAGE     (&Scm_PangoLanguageClass)
#define SCM_PANGO_LANGUAGE_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_PANGO_LANGUAGE)
#define SCM_PANGO_LANGUAGE(obj)      (SCM_FALSEP(obj)?NULL:((ScmPangoLanguage*)(obj))->data)
#define SCM_MAKE_PANGO_LANGUAGE(obj) (Scm_MakePangoLanguage(obj))
#define SCM_PANGO_LANGUAGE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_PANGO_LANGUAGE_P(obj))
extern ScmObj Scm_MakePangoLanguage(PangoLanguage *data);

/* gdk.h */

/* gdkcolor.h */

typedef struct ScmGdkColorRec {
    SCM_HEADER;
    GdkColor data;
} ScmGdkColor;

SCM_CLASS_DECL(Scm_GdkColorClass);
#define SCM_CLASS_GDK_COLOR     (&Scm_GdkColorClass)
#define SCM_GDK_COLOR_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_COLOR)
#define SCM_GDK_COLOR(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGdkColor*)(obj))->data)
#define SCM_MAKE_GDK_COLOR(obj) (Scm_MakeGdkColor(obj))
#define SCM_GDK_COLOR_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_COLOR_P(obj))
extern ScmObj Scm_MakeGdkColor(GdkColor *data);

SCM_CLASS_DECL(Scm_GdkColormapClass);
#define SCM_CLASS_GDK_COLORMAP     (&Scm_GdkColormapClass)
#define SCM_GDK_COLORMAP_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GDK_COLORMAP))
#define SCM_GDK_COLORMAP(obj)      SCM_GOBJECT_UNBOX(GDK_COLORMAP, obj)
#define SCM_MAKE_GDK_COLORMAP(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GDK_COLORMAP_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_COLORMAP_P(obj))

/* gdkcursor.h */

typedef struct ScmGdkCursorRec {
    SCM_HEADER;
    GdkCursor *data;
} ScmGdkCursor;

SCM_CLASS_DECL(Scm_GdkCursorClass);
#define SCM_CLASS_GDK_CURSOR     (&Scm_GdkCursorClass)
#define SCM_GDK_CURSOR_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_CURSOR)
#define SCM_GDK_CURSOR(obj)      (SCM_FALSEP(obj)?NULL:((ScmGdkCursor*)(obj))->data)
#define SCM_MAKE_GDK_CURSOR(obj) (Scm_MakeGdkCursor(obj))
#define SCM_GDK_CURSOR_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_CURSOR_P(obj))
extern ScmObj Scm_MakeGdkCursor(GdkCursor *data);

/* gdkdisplay.h */

SCM_CLASS_DECL(Scm_GdkDisplayClass);
#define SCM_CLASS_GDK_DISPLAY     (&Scm_GdkDisplayClass)
#define SCM_GDK_DISPLAY_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GDK_DISPLAY))
#define SCM_GDK_DISPLAY(obj)      SCM_GOBJECT_UNBOX(GDK_DISPLAY_OBJECT, obj)
#define SCM_MAKE_GDK_DISPLAY(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GDK_DISPLAY_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_DISPLAY_P(obj))

typedef struct ScmGdkDisplayPointerHooksRec {
    SCM_HEADER;
    GdkDisplayPointerHooks data;
} ScmGdkDisplayPointerHooks;

SCM_CLASS_DECL(Scm_GdkDisplayPointerHooksClass);
#define SCM_CLASS_GDK_DISPLAY_POINTER_HOOKS     (&Scm_GdkDisplayPointerHooksClass)
#define SCM_GDK_DISPLAY_POINTER_HOOKS_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_DISPLAY_POINTER_HOOKS)
#define SCM_GDK_DISPLAY_POINTER_HOOKS(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGdkDisplayPointerHooks*)(obj))->data)
#define SCM_MAKE_GDK_DISPLAY_POINTER_HOOKS(obj) (Scm_MakeGdkDisplayPointerHooks(obj))
#define SCM_GDK_DISPLAY_POINTER_HOOKS_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_DISPLAY_POINTER_HOOKS_P(obj))
extern ScmObj Scm_MakeGdkDisplayPointerHooks(GdkDisplayPointerHooks *data);

/* gdkdnd.h */

SCM_CLASS_DECL(Scm_GdkDragContextClass);
#define SCM_CLASS_GDK_DRAG_CONTEXT     (&Scm_GdkDragContextClass)
#define SCM_GDK_DRAG_CONTEXT_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GDK_DRAG_CONTEXT))
#define SCM_GDK_DRAG_CONTEXT(obj)      SCM_GOBJECT_UNBOX(GDK_DRAG_CONTEXT, obj)
#define SCM_MAKE_GDK_DRAG_CONTEXT(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GDK_DRAG_CONTEXT_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_DRAG_CONTEXT_P(obj))

/* gdkdrawable.h */

SCM_CLASS_DECL(Scm_GdkDrawableClass);
#define SCM_CLASS_GDK_DRAWABLE     (&Scm_GdkDrawableClass)
#define SCM_GDK_DRAWABLE_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GDK_DRAWABLE))
#define SCM_GDK_DRAWABLE(obj)      SCM_GOBJECT_UNBOX(GDK_DRAWABLE, obj)
#define SCM_MAKE_GDK_DRAWABLE(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GDK_DRAWABLE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_DRAWABLE_P(obj))

typedef struct ScmGdkTrapezoidRec {
    SCM_HEADER;
    GdkTrapezoid data;
} ScmGdkTrapezoid;

SCM_CLASS_DECL(Scm_GdkTrapezoidClass);
#define SCM_CLASS_GDK_TRAPEZOID     (&Scm_GdkTrapezoidClass)
#define SCM_GDK_TRAPEZOID_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_TRAPEZOID)
#define SCM_GDK_TRAPEZOID(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGdkTrapezoid*)(obj))->data)
#define SCM_MAKE_GDK_TRAPEZOID(obj) (Scm_MakeGdkTrapezoid(obj))
#define SCM_GDK_TRAPEZOID_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_TRAPEZOID_P(obj))
extern ScmObj Scm_MakeGdkTrapezoid(GdkTrapezoid *data);

/* gdkenumtypes.h */

/* gdkevents.h */

typedef struct ScmGdkEventAnyRec {
    SCM_HEADER;
    GdkEventAny *data;
} ScmGdkEventAny;

SCM_CLASS_DECL(Scm_GdkEventAnyClass);
#define SCM_CLASS_GDK_EVENT_ANY     (&Scm_GdkEventAnyClass)
#define SCM_GDK_EVENT_ANY_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_EVENT_ANY)
#define SCM_GDK_EVENT_ANY(obj)      (SCM_FALSEP(obj)?NULL:((ScmGdkEventAny*)(obj))->data)
#define SCM_MAKE_GDK_EVENT_ANY(obj) (Scm_MakeGdkEventAny(obj))
#define SCM_GDK_EVENT_ANY_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_EVENT_ANY_P(obj))
extern ScmObj Scm_MakeGdkEventAny(GdkEventAny *data);

typedef struct ScmGdkEventExposeRec {
    SCM_HEADER;
    GdkEventExpose *data;
} ScmGdkEventExpose;

SCM_CLASS_DECL(Scm_GdkEventExposeClass);
#define SCM_CLASS_GDK_EVENT_EXPOSE     (&Scm_GdkEventExposeClass)
#define SCM_GDK_EVENT_EXPOSE_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_EVENT_EXPOSE)
#define SCM_GDK_EVENT_EXPOSE(obj)      (SCM_FALSEP(obj)?NULL:((ScmGdkEventExpose*)(obj))->data)
#define SCM_MAKE_GDK_EVENT_EXPOSE(obj) (Scm_MakeGdkEventExpose(obj))
#define SCM_GDK_EVENT_EXPOSE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_EVENT_EXPOSE_P(obj))
extern ScmObj Scm_MakeGdkEventExpose(GdkEventExpose *data);

typedef struct ScmGdkEventNoExposeRec {
    SCM_HEADER;
    GdkEventNoExpose *data;
} ScmGdkEventNoExpose;

SCM_CLASS_DECL(Scm_GdkEventNoExposeClass);
#define SCM_CLASS_GDK_EVENT_NO_EXPOSE     (&Scm_GdkEventNoExposeClass)
#define SCM_GDK_EVENT_NO_EXPOSE_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_EVENT_NO_EXPOSE)
#define SCM_GDK_EVENT_NO_EXPOSE(obj)      (SCM_FALSEP(obj)?NULL:((ScmGdkEventNoExpose*)(obj))->data)
#define SCM_MAKE_GDK_EVENT_NO_EXPOSE(obj) (Scm_MakeGdkEventNoExpose(obj))
#define SCM_GDK_EVENT_NO_EXPOSE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_EVENT_NO_EXPOSE_P(obj))
extern ScmObj Scm_MakeGdkEventNoExpose(GdkEventNoExpose *data);

typedef struct ScmGdkEventVisibilityRec {
    SCM_HEADER;
    GdkEventVisibility *data;
} ScmGdkEventVisibility;

SCM_CLASS_DECL(Scm_GdkEventVisibilityClass);
#define SCM_CLASS_GDK_EVENT_VISIBILITY     (&Scm_GdkEventVisibilityClass)
#define SCM_GDK_EVENT_VISIBILITY_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_EVENT_VISIBILITY)
#define SCM_GDK_EVENT_VISIBILITY(obj)      (SCM_FALSEP(obj)?NULL:((ScmGdkEventVisibility*)(obj))->data)
#define SCM_MAKE_GDK_EVENT_VISIBILITY(obj) (Scm_MakeGdkEventVisibility(obj))
#define SCM_GDK_EVENT_VISIBILITY_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_EVENT_VISIBILITY_P(obj))
extern ScmObj Scm_MakeGdkEventVisibility(GdkEventVisibility *data);

typedef struct ScmGdkEventMotionRec {
    SCM_HEADER;
    GdkEventMotion *data;
} ScmGdkEventMotion;

SCM_CLASS_DECL(Scm_GdkEventMotionClass);
#define SCM_CLASS_GDK_EVENT_MOTION     (&Scm_GdkEventMotionClass)
#define SCM_GDK_EVENT_MOTION_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_EVENT_MOTION)
#define SCM_GDK_EVENT_MOTION(obj)      (SCM_FALSEP(obj)?NULL:((ScmGdkEventMotion*)(obj))->data)
#define SCM_MAKE_GDK_EVENT_MOTION(obj) (Scm_MakeGdkEventMotion(obj))
#define SCM_GDK_EVENT_MOTION_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_EVENT_MOTION_P(obj))
extern ScmObj Scm_MakeGdkEventMotion(GdkEventMotion *data);

typedef struct ScmGdkEventButtonRec {
    SCM_HEADER;
    GdkEventButton *data;
} ScmGdkEventButton;

SCM_CLASS_DECL(Scm_GdkEventButtonClass);
#define SCM_CLASS_GDK_EVENT_BUTTON     (&Scm_GdkEventButtonClass)
#define SCM_GDK_EVENT_BUTTON_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_EVENT_BUTTON)
#define SCM_GDK_EVENT_BUTTON(obj)      (SCM_FALSEP(obj)?NULL:((ScmGdkEventButton*)(obj))->data)
#define SCM_MAKE_GDK_EVENT_BUTTON(obj) (Scm_MakeGdkEventButton(obj))
#define SCM_GDK_EVENT_BUTTON_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_EVENT_BUTTON_P(obj))
extern ScmObj Scm_MakeGdkEventButton(GdkEventButton *data);

typedef struct ScmGdkEventScrollRec {
    SCM_HEADER;
    GdkEventScroll *data;
} ScmGdkEventScroll;

SCM_CLASS_DECL(Scm_GdkEventScrollClass);
#define SCM_CLASS_GDK_EVENT_SCROLL     (&Scm_GdkEventScrollClass)
#define SCM_GDK_EVENT_SCROLL_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_EVENT_SCROLL)
#define SCM_GDK_EVENT_SCROLL(obj)      (SCM_FALSEP(obj)?NULL:((ScmGdkEventScroll*)(obj))->data)
#define SCM_MAKE_GDK_EVENT_SCROLL(obj) (Scm_MakeGdkEventScroll(obj))
#define SCM_GDK_EVENT_SCROLL_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_EVENT_SCROLL_P(obj))
extern ScmObj Scm_MakeGdkEventScroll(GdkEventScroll *data);

typedef struct ScmGdkEventKeyRec {
    SCM_HEADER;
    GdkEventKey *data;
} ScmGdkEventKey;

SCM_CLASS_DECL(Scm_GdkEventKeyClass);
#define SCM_CLASS_GDK_EVENT_KEY     (&Scm_GdkEventKeyClass)
#define SCM_GDK_EVENT_KEY_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_EVENT_KEY)
#define SCM_GDK_EVENT_KEY(obj)      (SCM_FALSEP(obj)?NULL:((ScmGdkEventKey*)(obj))->data)
#define SCM_MAKE_GDK_EVENT_KEY(obj) (Scm_MakeGdkEventKey(obj))
#define SCM_GDK_EVENT_KEY_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_EVENT_KEY_P(obj))
extern ScmObj Scm_MakeGdkEventKey(GdkEventKey *data);

typedef struct ScmGdkEventCrossingRec {
    SCM_HEADER;
    GdkEventCrossing *data;
} ScmGdkEventCrossing;

SCM_CLASS_DECL(Scm_GdkEventCrossingClass);
#define SCM_CLASS_GDK_EVENT_CROSSING     (&Scm_GdkEventCrossingClass)
#define SCM_GDK_EVENT_CROSSING_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_EVENT_CROSSING)
#define SCM_GDK_EVENT_CROSSING(obj)      (SCM_FALSEP(obj)?NULL:((ScmGdkEventCrossing*)(obj))->data)
#define SCM_MAKE_GDK_EVENT_CROSSING(obj) (Scm_MakeGdkEventCrossing(obj))
#define SCM_GDK_EVENT_CROSSING_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_EVENT_CROSSING_P(obj))
extern ScmObj Scm_MakeGdkEventCrossing(GdkEventCrossing *data);

typedef struct ScmGdkEventFocusRec {
    SCM_HEADER;
    GdkEventFocus *data;
} ScmGdkEventFocus;

SCM_CLASS_DECL(Scm_GdkEventFocusClass);
#define SCM_CLASS_GDK_EVENT_FOCUS     (&Scm_GdkEventFocusClass)
#define SCM_GDK_EVENT_FOCUS_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_EVENT_FOCUS)
#define SCM_GDK_EVENT_FOCUS(obj)      (SCM_FALSEP(obj)?NULL:((ScmGdkEventFocus*)(obj))->data)
#define SCM_MAKE_GDK_EVENT_FOCUS(obj) (Scm_MakeGdkEventFocus(obj))
#define SCM_GDK_EVENT_FOCUS_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_EVENT_FOCUS_P(obj))
extern ScmObj Scm_MakeGdkEventFocus(GdkEventFocus *data);

typedef struct ScmGdkEventConfigureRec {
    SCM_HEADER;
    GdkEventConfigure *data;
} ScmGdkEventConfigure;

SCM_CLASS_DECL(Scm_GdkEventConfigureClass);
#define SCM_CLASS_GDK_EVENT_CONFIGURE     (&Scm_GdkEventConfigureClass)
#define SCM_GDK_EVENT_CONFIGURE_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_EVENT_CONFIGURE)
#define SCM_GDK_EVENT_CONFIGURE(obj)      (SCM_FALSEP(obj)?NULL:((ScmGdkEventConfigure*)(obj))->data)
#define SCM_MAKE_GDK_EVENT_CONFIGURE(obj) (Scm_MakeGdkEventConfigure(obj))
#define SCM_GDK_EVENT_CONFIGURE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_EVENT_CONFIGURE_P(obj))
extern ScmObj Scm_MakeGdkEventConfigure(GdkEventConfigure *data);

typedef struct ScmGdkEventPropertyRec {
    SCM_HEADER;
    GdkEventProperty *data;
} ScmGdkEventProperty;

SCM_CLASS_DECL(Scm_GdkEventPropertyClass);
#define SCM_CLASS_GDK_EVENT_PROPERTY     (&Scm_GdkEventPropertyClass)
#define SCM_GDK_EVENT_PROPERTY_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_EVENT_PROPERTY)
#define SCM_GDK_EVENT_PROPERTY(obj)      (SCM_FALSEP(obj)?NULL:((ScmGdkEventProperty*)(obj))->data)
#define SCM_MAKE_GDK_EVENT_PROPERTY(obj) (Scm_MakeGdkEventProperty(obj))
#define SCM_GDK_EVENT_PROPERTY_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_EVENT_PROPERTY_P(obj))
extern ScmObj Scm_MakeGdkEventProperty(GdkEventProperty *data);

typedef struct ScmGdkEventSelectionRec {
    SCM_HEADER;
    GdkEventSelection *data;
} ScmGdkEventSelection;

SCM_CLASS_DECL(Scm_GdkEventSelectionClass);
#define SCM_CLASS_GDK_EVENT_SELECTION     (&Scm_GdkEventSelectionClass)
#define SCM_GDK_EVENT_SELECTION_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_EVENT_SELECTION)
#define SCM_GDK_EVENT_SELECTION(obj)      (SCM_FALSEP(obj)?NULL:((ScmGdkEventSelection*)(obj))->data)
#define SCM_MAKE_GDK_EVENT_SELECTION(obj) (Scm_MakeGdkEventSelection(obj))
#define SCM_GDK_EVENT_SELECTION_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_EVENT_SELECTION_P(obj))
extern ScmObj Scm_MakeGdkEventSelection(GdkEventSelection *data);

typedef struct ScmGdkEventOwnerChangeRec {
    SCM_HEADER;
    GdkEventOwnerChange data;
} ScmGdkEventOwnerChange;

SCM_CLASS_DECL(Scm_GdkEventOwnerChangeClass);
#define SCM_CLASS_GDK_EVENT_OWNER_CHANGE     (&Scm_GdkEventOwnerChangeClass)
#define SCM_GDK_EVENT_OWNER_CHANGE_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_EVENT_OWNER_CHANGE)
#define SCM_GDK_EVENT_OWNER_CHANGE(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGdkEventOwnerChange*)(obj))->data)
#define SCM_MAKE_GDK_EVENT_OWNER_CHANGE(obj) (Scm_MakeGdkEventOwnerChange(obj))
#define SCM_GDK_EVENT_OWNER_CHANGE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_EVENT_OWNER_CHANGE_P(obj))
extern ScmObj Scm_MakeGdkEventOwnerChange(GdkEventOwnerChange *data);

typedef struct ScmGdkEventProximityRec {
    SCM_HEADER;
    GdkEventProximity *data;
} ScmGdkEventProximity;

SCM_CLASS_DECL(Scm_GdkEventProximityClass);
#define SCM_CLASS_GDK_EVENT_PROXIMITY     (&Scm_GdkEventProximityClass)
#define SCM_GDK_EVENT_PROXIMITY_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_EVENT_PROXIMITY)
#define SCM_GDK_EVENT_PROXIMITY(obj)      (SCM_FALSEP(obj)?NULL:((ScmGdkEventProximity*)(obj))->data)
#define SCM_MAKE_GDK_EVENT_PROXIMITY(obj) (Scm_MakeGdkEventProximity(obj))
#define SCM_GDK_EVENT_PROXIMITY_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_EVENT_PROXIMITY_P(obj))
extern ScmObj Scm_MakeGdkEventProximity(GdkEventProximity *data);

typedef struct ScmGdkEventClientRec {
    SCM_HEADER;
    GdkEventClient *data;
} ScmGdkEventClient;

SCM_CLASS_DECL(Scm_GdkEventClientClass);
#define SCM_CLASS_GDK_EVENT_CLIENT     (&Scm_GdkEventClientClass)
#define SCM_GDK_EVENT_CLIENT_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_EVENT_CLIENT)
#define SCM_GDK_EVENT_CLIENT(obj)      (SCM_FALSEP(obj)?NULL:((ScmGdkEventClient*)(obj))->data)
#define SCM_MAKE_GDK_EVENT_CLIENT(obj) (Scm_MakeGdkEventClient(obj))
#define SCM_GDK_EVENT_CLIENT_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_EVENT_CLIENT_P(obj))
extern ScmObj Scm_MakeGdkEventClient(GdkEventClient *data);

typedef struct ScmGdkEventSettingRec {
    SCM_HEADER;
    GdkEventSetting *data;
} ScmGdkEventSetting;

SCM_CLASS_DECL(Scm_GdkEventSettingClass);
#define SCM_CLASS_GDK_EVENT_SETTING     (&Scm_GdkEventSettingClass)
#define SCM_GDK_EVENT_SETTING_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_EVENT_SETTING)
#define SCM_GDK_EVENT_SETTING(obj)      (SCM_FALSEP(obj)?NULL:((ScmGdkEventSetting*)(obj))->data)
#define SCM_MAKE_GDK_EVENT_SETTING(obj) (Scm_MakeGdkEventSetting(obj))
#define SCM_GDK_EVENT_SETTING_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_EVENT_SETTING_P(obj))
extern ScmObj Scm_MakeGdkEventSetting(GdkEventSetting *data);

typedef struct ScmGdkEventWindowStateRec {
    SCM_HEADER;
    GdkEventWindowState *data;
} ScmGdkEventWindowState;

SCM_CLASS_DECL(Scm_GdkEventWindowStateClass);
#define SCM_CLASS_GDK_EVENT_WINDOW_STATE     (&Scm_GdkEventWindowStateClass)
#define SCM_GDK_EVENT_WINDOW_STATE_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_EVENT_WINDOW_STATE)
#define SCM_GDK_EVENT_WINDOW_STATE(obj)      (SCM_FALSEP(obj)?NULL:((ScmGdkEventWindowState*)(obj))->data)
#define SCM_MAKE_GDK_EVENT_WINDOW_STATE(obj) (Scm_MakeGdkEventWindowState(obj))
#define SCM_GDK_EVENT_WINDOW_STATE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_EVENT_WINDOW_STATE_P(obj))
extern ScmObj Scm_MakeGdkEventWindowState(GdkEventWindowState *data);

typedef struct ScmGdkEventGrabBrokenRec {
    SCM_HEADER;
    GdkEventGrabBroken data;
} ScmGdkEventGrabBroken;

SCM_CLASS_DECL(Scm_GdkEventGrabBrokenClass);
#define SCM_CLASS_GDK_EVENT_GRAB_BROKEN     (&Scm_GdkEventGrabBrokenClass)
#define SCM_GDK_EVENT_GRAB_BROKEN_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_EVENT_GRAB_BROKEN)
#define SCM_GDK_EVENT_GRAB_BROKEN(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGdkEventGrabBroken*)(obj))->data)
#define SCM_MAKE_GDK_EVENT_GRAB_BROKEN(obj) (Scm_MakeGdkEventGrabBroken(obj))
#define SCM_GDK_EVENT_GRAB_BROKEN_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_EVENT_GRAB_BROKEN_P(obj))
extern ScmObj Scm_MakeGdkEventGrabBroken(GdkEventGrabBroken *data);

typedef struct ScmGdkEventDNDRec {
    SCM_HEADER;
    GdkEventDND *data;
} ScmGdkEventDND;

SCM_CLASS_DECL(Scm_GdkEventDNDClass);
#define SCM_CLASS_GDK_EVENT_DND     (&Scm_GdkEventDNDClass)
#define SCM_GDK_EVENT_DND_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_EVENT_DND)
#define SCM_GDK_EVENT_DND(obj)      (SCM_FALSEP(obj)?NULL:((ScmGdkEventDND*)(obj))->data)
#define SCM_MAKE_GDK_EVENT_DND(obj) (Scm_MakeGdkEventDND(obj))
#define SCM_GDK_EVENT_DND_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_EVENT_DND_P(obj))
extern ScmObj Scm_MakeGdkEventDND(GdkEventDND *data);

/* gdkfont.h */

typedef struct ScmGdkFontRec {
    SCM_HEADER;
    GdkFont data;
} ScmGdkFont;

SCM_CLASS_DECL(Scm_GdkFontClass);
#define SCM_CLASS_GDK_FONT     (&Scm_GdkFontClass)
#define SCM_GDK_FONT_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_FONT)
#define SCM_GDK_FONT(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGdkFont*)(obj))->data)
#define SCM_MAKE_GDK_FONT(obj) (Scm_MakeGdkFont(obj))
#define SCM_GDK_FONT_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_FONT_P(obj))
extern ScmObj Scm_MakeGdkFont(GdkFont *data);

/* gdkgc.h */

typedef struct ScmGdkGCValuesRec {
    SCM_HEADER;
    GdkGCValues data;
} ScmGdkGCValues;

SCM_CLASS_DECL(Scm_GdkGCValuesClass);
#define SCM_CLASS_GDK_GC_VALUES     (&Scm_GdkGCValuesClass)
#define SCM_GDK_GC_VALUES_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_GC_VALUES)
#define SCM_GDK_GC_VALUES(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGdkGCValues*)(obj))->data)
#define SCM_MAKE_GDK_GC_VALUES(obj) (Scm_MakeGdkGCValues(obj))
#define SCM_GDK_GC_VALUES_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_GC_VALUES_P(obj))
extern ScmObj Scm_MakeGdkGCValues(GdkGCValues *data);

SCM_CLASS_DECL(Scm_GdkGCClass);
#define SCM_CLASS_GDK_GC     (&Scm_GdkGCClass)
#define SCM_GDK_GC_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GDK_GC))
#define SCM_GDK_GC(obj)      SCM_GOBJECT_UNBOX(GDK_GC, obj)
#define SCM_MAKE_GDK_GC(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GDK_GC_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_GC_P(obj))

/* gdkimage.h */

SCM_CLASS_DECL(Scm_GdkImageClass);
#define SCM_CLASS_GDK_IMAGE     (&Scm_GdkImageClass)
#define SCM_GDK_IMAGE_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GDK_IMAGE))
#define SCM_GDK_IMAGE(obj)      SCM_GOBJECT_UNBOX(GDK_IMAGE, obj)
#define SCM_MAKE_GDK_IMAGE(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GDK_IMAGE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_IMAGE_P(obj))

/* gdkinput.h */

typedef struct ScmGdkDeviceKeyRec {
    SCM_HEADER;
    GdkDeviceKey data;
} ScmGdkDeviceKey;

SCM_CLASS_DECL(Scm_GdkDeviceKeyClass);
#define SCM_CLASS_GDK_DEVICE_KEY     (&Scm_GdkDeviceKeyClass)
#define SCM_GDK_DEVICE_KEY_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_DEVICE_KEY)
#define SCM_GDK_DEVICE_KEY(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGdkDeviceKey*)(obj))->data)
#define SCM_MAKE_GDK_DEVICE_KEY(obj) (Scm_MakeGdkDeviceKey(obj))
#define SCM_GDK_DEVICE_KEY_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_DEVICE_KEY_P(obj))
extern ScmObj Scm_MakeGdkDeviceKey(GdkDeviceKey *data);

typedef struct ScmGdkDeviceAxisRec {
    SCM_HEADER;
    GdkDeviceAxis data;
} ScmGdkDeviceAxis;

SCM_CLASS_DECL(Scm_GdkDeviceAxisClass);
#define SCM_CLASS_GDK_DEVICE_AXIS     (&Scm_GdkDeviceAxisClass)
#define SCM_GDK_DEVICE_AXIS_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_DEVICE_AXIS)
#define SCM_GDK_DEVICE_AXIS(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGdkDeviceAxis*)(obj))->data)
#define SCM_MAKE_GDK_DEVICE_AXIS(obj) (Scm_MakeGdkDeviceAxis(obj))
#define SCM_GDK_DEVICE_AXIS_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_DEVICE_AXIS_P(obj))
extern ScmObj Scm_MakeGdkDeviceAxis(GdkDeviceAxis *data);

SCM_CLASS_DECL(Scm_GdkDeviceClass);
#define SCM_CLASS_GDK_DEVICE     (&Scm_GdkDeviceClass)
#define SCM_GDK_DEVICE_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GDK_DEVICE))
#define SCM_GDK_DEVICE(obj)      SCM_GOBJECT_UNBOX(GDK_DEVICE, obj)
#define SCM_MAKE_GDK_DEVICE(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GDK_DEVICE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_DEVICE_P(obj))

typedef struct ScmGdkTimeCoordRec {
    SCM_HEADER;
    GdkTimeCoord data;
} ScmGdkTimeCoord;

SCM_CLASS_DECL(Scm_GdkTimeCoordClass);
#define SCM_CLASS_GDK_TIME_COORD     (&Scm_GdkTimeCoordClass)
#define SCM_GDK_TIME_COORD_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_TIME_COORD)
#define SCM_GDK_TIME_COORD(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGdkTimeCoord*)(obj))->data)
#define SCM_MAKE_GDK_TIME_COORD(obj) (Scm_MakeGdkTimeCoord(obj))
#define SCM_GDK_TIME_COORD_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_TIME_COORD_P(obj))
extern ScmObj Scm_MakeGdkTimeCoord(GdkTimeCoord *data);

/* gdkkeys.h */

typedef struct ScmGdkKeymapKeyRec {
    SCM_HEADER;
    GdkKeymapKey data;
} ScmGdkKeymapKey;

SCM_CLASS_DECL(Scm_GdkKeymapKeyClass);
#define SCM_CLASS_GDK_KEYMAP_KEY     (&Scm_GdkKeymapKeyClass)
#define SCM_GDK_KEYMAP_KEY_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_KEYMAP_KEY)
#define SCM_GDK_KEYMAP_KEY(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGdkKeymapKey*)(obj))->data)
#define SCM_MAKE_GDK_KEYMAP_KEY(obj) (Scm_MakeGdkKeymapKey(obj))
#define SCM_GDK_KEYMAP_KEY_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_KEYMAP_KEY_P(obj))
extern ScmObj Scm_MakeGdkKeymapKey(GdkKeymapKey *data);

SCM_CLASS_DECL(Scm_GdkKeymapClass);
#define SCM_CLASS_GDK_KEYMAP     (&Scm_GdkKeymapClass)
#define SCM_GDK_KEYMAP_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GDK_KEYMAP))
#define SCM_GDK_KEYMAP(obj)      SCM_GOBJECT_UNBOX(GDK_KEYMAP, obj)
#define SCM_MAKE_GDK_KEYMAP(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GDK_KEYMAP_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_KEYMAP_P(obj))

/* gdkpango.h */

typedef struct ScmGdkPangoRendererRec {
    SCM_HEADER;
    GdkPangoRenderer data;
} ScmGdkPangoRenderer;

SCM_CLASS_DECL(Scm_GdkPangoRendererClass);
#define SCM_CLASS_GDK_PANGO_RENDERER     (&Scm_GdkPangoRendererClass)
#define SCM_GDK_PANGO_RENDERER_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_PANGO_RENDERER)
#define SCM_GDK_PANGO_RENDERER(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGdkPangoRenderer*)(obj))->data)
#define SCM_MAKE_GDK_PANGO_RENDERER(obj) (Scm_MakeGdkPangoRenderer(obj))
#define SCM_GDK_PANGO_RENDERER_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_PANGO_RENDERER_P(obj))
extern ScmObj Scm_MakeGdkPangoRenderer(GdkPangoRenderer *data);

typedef struct ScmGdkPangoAttrStippleRec {
    SCM_HEADER;
    GdkPangoAttrStipple data;
} ScmGdkPangoAttrStipple;

SCM_CLASS_DECL(Scm_GdkPangoAttrStippleClass);
#define SCM_CLASS_GDK_PANGO_ATTR_STIPPLE     (&Scm_GdkPangoAttrStippleClass)
#define SCM_GDK_PANGO_ATTR_STIPPLE_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_PANGO_ATTR_STIPPLE)
#define SCM_GDK_PANGO_ATTR_STIPPLE(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGdkPangoAttrStipple*)(obj))->data)
#define SCM_MAKE_GDK_PANGO_ATTR_STIPPLE(obj) (Scm_MakeGdkPangoAttrStipple(obj))
#define SCM_GDK_PANGO_ATTR_STIPPLE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_PANGO_ATTR_STIPPLE_P(obj))
extern ScmObj Scm_MakeGdkPangoAttrStipple(GdkPangoAttrStipple *data);

typedef struct ScmGdkPangoAttrEmbossedRec {
    SCM_HEADER;
    GdkPangoAttrEmbossed data;
} ScmGdkPangoAttrEmbossed;

SCM_CLASS_DECL(Scm_GdkPangoAttrEmbossedClass);
#define SCM_CLASS_GDK_PANGO_ATTR_EMBOSSED     (&Scm_GdkPangoAttrEmbossedClass)
#define SCM_GDK_PANGO_ATTR_EMBOSSED_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_PANGO_ATTR_EMBOSSED)
#define SCM_GDK_PANGO_ATTR_EMBOSSED(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGdkPangoAttrEmbossed*)(obj))->data)
#define SCM_MAKE_GDK_PANGO_ATTR_EMBOSSED(obj) (Scm_MakeGdkPangoAttrEmbossed(obj))
#define SCM_GDK_PANGO_ATTR_EMBOSSED_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_PANGO_ATTR_EMBOSSED_P(obj))
extern ScmObj Scm_MakeGdkPangoAttrEmbossed(GdkPangoAttrEmbossed *data);

typedef struct ScmGdkPangoAttrEmbossColorRec {
    SCM_HEADER;
    GdkPangoAttrEmbossColor data;
} ScmGdkPangoAttrEmbossColor;

SCM_CLASS_DECL(Scm_GdkPangoAttrEmbossColorClass);
#define SCM_CLASS_GDK_PANGO_ATTR_EMBOSS_COLOR     (&Scm_GdkPangoAttrEmbossColorClass)
#define SCM_GDK_PANGO_ATTR_EMBOSS_COLOR_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_PANGO_ATTR_EMBOSS_COLOR)
#define SCM_GDK_PANGO_ATTR_EMBOSS_COLOR(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGdkPangoAttrEmbossColor*)(obj))->data)
#define SCM_MAKE_GDK_PANGO_ATTR_EMBOSS_COLOR(obj) (Scm_MakeGdkPangoAttrEmbossColor(obj))
#define SCM_GDK_PANGO_ATTR_EMBOSS_COLOR_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_PANGO_ATTR_EMBOSS_COLOR_P(obj))
extern ScmObj Scm_MakeGdkPangoAttrEmbossColor(GdkPangoAttrEmbossColor *data);

/* gdkpixbuf.h */

SCM_CLASS_DECL(Scm_GdkPixbufClass);
#define SCM_CLASS_GDK_PIXBUF     (&Scm_GdkPixbufClass)
#define SCM_GDK_PIXBUF_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GDK_PIXBUF))
#define SCM_GDK_PIXBUF(obj)      SCM_GOBJECT_UNBOX(GDK_PIXBUF, obj)
#define SCM_MAKE_GDK_PIXBUF(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GDK_PIXBUF_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_PIXBUF_P(obj))

SCM_CLASS_DECL(Scm_GdkPixbufAnimationClass);
#define SCM_CLASS_GDK_PIXBUF_ANIMATION     (&Scm_GdkPixbufAnimationClass)
#define SCM_GDK_PIXBUF_ANIMATION_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GDK_PIXBUF_ANIMATION))
#define SCM_GDK_PIXBUF_ANIMATION(obj)      SCM_GOBJECT_UNBOX(GDK_PIXBUF_ANIMATION, obj)
#define SCM_MAKE_GDK_PIXBUF_ANIMATION(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GDK_PIXBUF_ANIMATION_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_PIXBUF_ANIMATION_P(obj))

SCM_CLASS_DECL(Scm_GdkPixbufAnimationIterClass);
#define SCM_CLASS_GDK_PIXBUF_ANIMATION_ITER     (&Scm_GdkPixbufAnimationIterClass)
#define SCM_GDK_PIXBUF_ANIMATION_ITER_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GDK_PIXBUF_ANIMATION_ITER))
#define SCM_GDK_PIXBUF_ANIMATION_ITER(obj)      SCM_GOBJECT_UNBOX(GDK_PIXBUF_ANIMATION_ITER, obj)
#define SCM_MAKE_GDK_PIXBUF_ANIMATION_ITER(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GDK_PIXBUF_ANIMATION_ITER_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_PIXBUF_ANIMATION_ITER_P(obj))

/* gdkpixmap.h */

SCM_CLASS_DECL(Scm_GdkPixmapObjectClass);
#define SCM_CLASS_GDK_PIXMAP_OBJECT     (&Scm_GdkPixmapObjectClass)
#define SCM_GDK_PIXMAP_OBJECT_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GDK_PIXMAP_OBJECT))
#define SCM_GDK_PIXMAP_OBJECT(obj)      SCM_GOBJECT_UNBOX(GDK_PIXMAP_OBJECT, obj)
#define SCM_MAKE_GDK_PIXMAP_OBJECT(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GDK_PIXMAP_OBJECT_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_PIXMAP_OBJECT_P(obj))

/* gdkproperty.h */

/* gdkregion.h */

typedef struct ScmGdkRegionRec {
    SCM_HEADER;
    GdkRegion *data;
} ScmGdkRegion;

SCM_CLASS_DECL(Scm_GdkRegionClass);
#define SCM_CLASS_GDK_REGION     (&Scm_GdkRegionClass)
#define SCM_GDK_REGION_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_REGION)
#define SCM_GDK_REGION(obj)      (SCM_FALSEP(obj)?NULL:((ScmGdkRegion*)(obj))->data)
#define SCM_MAKE_GDK_REGION(obj) (Scm_MakeGdkRegion(obj))
#define SCM_GDK_REGION_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_REGION_P(obj))
extern ScmObj Scm_MakeGdkRegion(GdkRegion *data);

/* gdkrgb.h */

typedef struct ScmGdkRgbCmapRec {
    SCM_HEADER;
    GdkRgbCmap data;
} ScmGdkRgbCmap;

SCM_CLASS_DECL(Scm_GdkRgbCmapClass);
#define SCM_CLASS_GDK_RGB_CMAP     (&Scm_GdkRgbCmapClass)
#define SCM_GDK_RGB_CMAP_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_RGB_CMAP)
#define SCM_GDK_RGB_CMAP(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGdkRgbCmap*)(obj))->data)
#define SCM_MAKE_GDK_RGB_CMAP(obj) (Scm_MakeGdkRgbCmap(obj))
#define SCM_GDK_RGB_CMAP_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_RGB_CMAP_P(obj))
extern ScmObj Scm_MakeGdkRgbCmap(GdkRgbCmap *data);

/* gdkscreen.h */

SCM_CLASS_DECL(Scm_GdkScreenClass);
#define SCM_CLASS_GDK_SCREEN     (&Scm_GdkScreenClass)
#define SCM_GDK_SCREEN_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GDK_SCREEN))
#define SCM_GDK_SCREEN(obj)      SCM_GOBJECT_UNBOX(GDK_SCREEN, obj)
#define SCM_MAKE_GDK_SCREEN(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GDK_SCREEN_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_SCREEN_P(obj))

/* gdkselection.h */

/* gdktypes.h */

typedef struct ScmGdkPointRec {
    SCM_HEADER;
    GdkPoint data;
} ScmGdkPoint;

SCM_CLASS_DECL(Scm_GdkPointClass);
#define SCM_CLASS_GDK_POINT     (&Scm_GdkPointClass)
#define SCM_GDK_POINT_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_POINT)
#define SCM_GDK_POINT(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGdkPoint*)(obj))->data)
#define SCM_MAKE_GDK_POINT(obj) (Scm_MakeGdkPoint(obj))
#define SCM_GDK_POINT_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_POINT_P(obj))
extern ScmObj Scm_MakeGdkPoint(GdkPoint *data);

typedef struct ScmGdkRectangleRec {
    SCM_HEADER;
    GdkRectangle data;
} ScmGdkRectangle;

SCM_CLASS_DECL(Scm_GdkRectangleClass);
#define SCM_CLASS_GDK_RECTANGLE     (&Scm_GdkRectangleClass)
#define SCM_GDK_RECTANGLE_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_RECTANGLE)
#define SCM_GDK_RECTANGLE(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGdkRectangle*)(obj))->data)
#define SCM_MAKE_GDK_RECTANGLE(obj) (Scm_MakeGdkRectangle(obj))
#define SCM_GDK_RECTANGLE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_RECTANGLE_P(obj))
extern ScmObj Scm_MakeGdkRectangle(GdkRectangle *data);

typedef struct ScmGdkSegmentRec {
    SCM_HEADER;
    GdkSegment data;
} ScmGdkSegment;

SCM_CLASS_DECL(Scm_GdkSegmentClass);
#define SCM_CLASS_GDK_SEGMENT     (&Scm_GdkSegmentClass)
#define SCM_GDK_SEGMENT_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_SEGMENT)
#define SCM_GDK_SEGMENT(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGdkSegment*)(obj))->data)
#define SCM_MAKE_GDK_SEGMENT(obj) (Scm_MakeGdkSegment(obj))
#define SCM_GDK_SEGMENT_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_SEGMENT_P(obj))
extern ScmObj Scm_MakeGdkSegment(GdkSegment *data);

typedef struct ScmGdkSpanRec {
    SCM_HEADER;
    GdkSpan data;
} ScmGdkSpan;

SCM_CLASS_DECL(Scm_GdkSpanClass);
#define SCM_CLASS_GDK_SPAN     (&Scm_GdkSpanClass)
#define SCM_GDK_SPAN_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_SPAN)
#define SCM_GDK_SPAN(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGdkSpan*)(obj))->data)
#define SCM_MAKE_GDK_SPAN(obj) (Scm_MakeGdkSpan(obj))
#define SCM_GDK_SPAN_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_SPAN_P(obj))
extern ScmObj Scm_MakeGdkSpan(GdkSpan *data);

/* gdkvisual.h */

SCM_CLASS_DECL(Scm_GdkVisualClass);
#define SCM_CLASS_GDK_VISUAL     (&Scm_GdkVisualClass)
#define SCM_GDK_VISUAL_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GDK_VISUAL))
#define SCM_GDK_VISUAL(obj)      SCM_GOBJECT_UNBOX(GDK_VISUAL, obj)
#define SCM_MAKE_GDK_VISUAL(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GDK_VISUAL_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_VISUAL_P(obj))

/* gdkwindow.h */

typedef struct ScmGdkWindowAttrRec {
    SCM_HEADER;
    GdkWindowAttr data;
} ScmGdkWindowAttr;

SCM_CLASS_DECL(Scm_GdkWindowAttrClass);
#define SCM_CLASS_GDK_WINDOW_ATTR     (&Scm_GdkWindowAttrClass)
#define SCM_GDK_WINDOW_ATTR_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_WINDOW_ATTR)
#define SCM_GDK_WINDOW_ATTR(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGdkWindowAttr*)(obj))->data)
#define SCM_MAKE_GDK_WINDOW_ATTR(obj) (Scm_MakeGdkWindowAttr(obj))
#define SCM_GDK_WINDOW_ATTR_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_WINDOW_ATTR_P(obj))
extern ScmObj Scm_MakeGdkWindowAttr(GdkWindowAttr *data);

typedef struct ScmGdkGeometryRec {
    SCM_HEADER;
    GdkGeometry data;
} ScmGdkGeometry;

SCM_CLASS_DECL(Scm_GdkGeometryClass);
#define SCM_CLASS_GDK_GEOMETRY     (&Scm_GdkGeometryClass)
#define SCM_GDK_GEOMETRY_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_GEOMETRY)
#define SCM_GDK_GEOMETRY(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGdkGeometry*)(obj))->data)
#define SCM_MAKE_GDK_GEOMETRY(obj) (Scm_MakeGdkGeometry(obj))
#define SCM_GDK_GEOMETRY_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_GEOMETRY_P(obj))
extern ScmObj Scm_MakeGdkGeometry(GdkGeometry *data);

typedef struct ScmGdkPointerHooksRec {
    SCM_HEADER;
    GdkPointerHooks data;
} ScmGdkPointerHooks;

SCM_CLASS_DECL(Scm_GdkPointerHooksClass);
#define SCM_CLASS_GDK_POINTER_HOOKS     (&Scm_GdkPointerHooksClass)
#define SCM_GDK_POINTER_HOOKS_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_POINTER_HOOKS)
#define SCM_GDK_POINTER_HOOKS(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGdkPointerHooks*)(obj))->data)
#define SCM_MAKE_GDK_POINTER_HOOKS(obj) (Scm_MakeGdkPointerHooks(obj))
#define SCM_GDK_POINTER_HOOKS_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_POINTER_HOOKS_P(obj))
extern ScmObj Scm_MakeGdkPointerHooks(GdkPointerHooks *data);

SCM_CLASS_DECL(Scm_GdkWindowObjectClass);
#define SCM_CLASS_GDK_WINDOW_OBJECT     (&Scm_GdkWindowObjectClass)
#define SCM_GDK_WINDOW_OBJECT_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GDK_WINDOW_OBJECT))
#define SCM_GDK_WINDOW_OBJECT(obj)      SCM_GOBJECT_UNBOX(GDK_WINDOW_OBJECT, obj)
#define SCM_MAKE_GDK_WINDOW_OBJECT(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GDK_WINDOW_OBJECT_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_WINDOW_OBJECT_P(obj))

/* gdk-pixbuf-loader.h */

SCM_CLASS_DECL(Scm_GdkPixbufLoaderClass);
#define SCM_CLASS_GDK_PIXBUF_LOADER     (&Scm_GdkPixbufLoaderClass)
#define SCM_GDK_PIXBUF_LOADER_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GDK_PIXBUF_LOADER))
#define SCM_GDK_PIXBUF_LOADER(obj)      SCM_GOBJECT_UNBOX(GDK_PIXBUF_LOADER, obj)
#define SCM_MAKE_GDK_PIXBUF_LOADER(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GDK_PIXBUF_LOADER_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_PIXBUF_LOADER_P(obj))

/* gdk-pixdata.h */

typedef struct ScmGdkPixdataRec {
    SCM_HEADER;
    GdkPixdata data;
} ScmGdkPixdata;

SCM_CLASS_DECL(Scm_GdkPixdataClass);
#define SCM_CLASS_GDK_PIXDATA     (&Scm_GdkPixdataClass)
#define SCM_GDK_PIXDATA_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_PIXDATA)
#define SCM_GDK_PIXDATA(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGdkPixdata*)(obj))->data)
#define SCM_MAKE_GDK_PIXDATA(obj) (Scm_MakeGdkPixdata(obj))
#define SCM_GDK_PIXDATA_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_PIXDATA_P(obj))
extern ScmObj Scm_MakeGdkPixdata(GdkPixdata *data);

/* gdk-pixbuf-core.h */

/* gdk-pixbuf-transform.h */

/* gtkaboutdialog.h */

SCM_CLASS_DECL(Scm_GtkAboutDialogClass);
#define SCM_CLASS_GTK_ABOUT_DIALOG     (&Scm_GtkAboutDialogClass)
#define SCM_GTK_ABOUT_DIALOG_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_ABOUT_DIALOG))
#define SCM_GTK_ABOUT_DIALOG(obj)      SCM_GOBJECT_UNBOX(GTK_ABOUT_DIALOG, obj)
#define SCM_MAKE_GTK_ABOUT_DIALOG(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_ABOUT_DIALOG_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_ABOUT_DIALOG_P(obj))

/* gtkaccelgroup.h */

SCM_CLASS_DECL(Scm_GtkAccelGroupClass);
#define SCM_CLASS_GTK_ACCEL_GROUP     (&Scm_GtkAccelGroupClass)
#define SCM_GTK_ACCEL_GROUP_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_ACCEL_GROUP))
#define SCM_GTK_ACCEL_GROUP(obj)      SCM_GOBJECT_UNBOX(GTK_ACCEL_GROUP, obj)
#define SCM_MAKE_GTK_ACCEL_GROUP(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_ACCEL_GROUP_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_ACCEL_GROUP_P(obj))

typedef struct ScmGtkAccelKeyRec {
    SCM_HEADER;
    GtkAccelKey data;
} ScmGtkAccelKey;

SCM_CLASS_DECL(Scm_GtkAccelKeyClass);
#define SCM_CLASS_GTK_ACCEL_KEY     (&Scm_GtkAccelKeyClass)
#define SCM_GTK_ACCEL_KEY_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_ACCEL_KEY)
#define SCM_GTK_ACCEL_KEY(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkAccelKey*)(obj))->data)
#define SCM_MAKE_GTK_ACCEL_KEY(obj) (Scm_MakeGtkAccelKey(obj))
#define SCM_GTK_ACCEL_KEY_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_ACCEL_KEY_P(obj))
extern ScmObj Scm_MakeGtkAccelKey(GtkAccelKey *data);

typedef struct ScmGtkAccelGroupEntryRec {
    SCM_HEADER;
    GtkAccelGroupEntry data;
} ScmGtkAccelGroupEntry;

SCM_CLASS_DECL(Scm_GtkAccelGroupEntryClass);
#define SCM_CLASS_GTK_ACCEL_GROUP_ENTRY     (&Scm_GtkAccelGroupEntryClass)
#define SCM_GTK_ACCEL_GROUP_ENTRY_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_ACCEL_GROUP_ENTRY)
#define SCM_GTK_ACCEL_GROUP_ENTRY(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkAccelGroupEntry*)(obj))->data)
#define SCM_MAKE_GTK_ACCEL_GROUP_ENTRY(obj) (Scm_MakeGtkAccelGroupEntry(obj))
#define SCM_GTK_ACCEL_GROUP_ENTRY_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_ACCEL_GROUP_ENTRY_P(obj))
extern ScmObj Scm_MakeGtkAccelGroupEntry(GtkAccelGroupEntry *data);

/* gtkaccellabel.h */

SCM_CLASS_DECL(Scm_GtkAccelLabelClass);
#define SCM_CLASS_GTK_ACCEL_LABEL     (&Scm_GtkAccelLabelClass)
#define SCM_GTK_ACCEL_LABEL_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_ACCEL_LABEL))
#define SCM_GTK_ACCEL_LABEL(obj)      SCM_GOBJECT_UNBOX(GTK_ACCEL_LABEL, obj)
#define SCM_MAKE_GTK_ACCEL_LABEL(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_ACCEL_LABEL_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_ACCEL_LABEL_P(obj))

/* gtkaccelmap.h */

/* gtkaccessible.h */

typedef struct ScmGtkAccessibleRec {
    SCM_HEADER;
    GtkAccessible data;
} ScmGtkAccessible;

SCM_CLASS_DECL(Scm_GtkAccessibleClass);
#define SCM_CLASS_GTK_ACCESSIBLE     (&Scm_GtkAccessibleClass)
#define SCM_GTK_ACCESSIBLE_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_ACCESSIBLE)
#define SCM_GTK_ACCESSIBLE(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkAccessible*)(obj))->data)
#define SCM_MAKE_GTK_ACCESSIBLE(obj) (Scm_MakeGtkAccessible(obj))
#define SCM_GTK_ACCESSIBLE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_ACCESSIBLE_P(obj))
extern ScmObj Scm_MakeGtkAccessible(GtkAccessible *data);

/* gtkaction.h */

SCM_CLASS_DECL(Scm_GtkActionClass);
#define SCM_CLASS_GTK_ACTION     (&Scm_GtkActionClass)
#define SCM_GTK_ACTION_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_ACTION))
#define SCM_GTK_ACTION(obj)      SCM_GOBJECT_UNBOX(GTK_ACTION, obj)
#define SCM_MAKE_GTK_ACTION(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_ACTION_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_ACTION_P(obj))

/* gtkactiongroup.h */

SCM_CLASS_DECL(Scm_GtkActionGroupClass);
#define SCM_CLASS_GTK_ACTION_GROUP     (&Scm_GtkActionGroupClass)
#define SCM_GTK_ACTION_GROUP_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_ACTION_GROUP))
#define SCM_GTK_ACTION_GROUP(obj)      SCM_GOBJECT_UNBOX(GTK_ACTION_GROUP, obj)
#define SCM_MAKE_GTK_ACTION_GROUP(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_ACTION_GROUP_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_ACTION_GROUP_P(obj))

typedef struct ScmGtkActionEntryRec {
    SCM_HEADER;
    GtkActionEntry data;
} ScmGtkActionEntry;

SCM_CLASS_DECL(Scm_GtkActionEntryClass);
#define SCM_CLASS_GTK_ACTION_ENTRY     (&Scm_GtkActionEntryClass)
#define SCM_GTK_ACTION_ENTRY_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_ACTION_ENTRY)
#define SCM_GTK_ACTION_ENTRY(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkActionEntry*)(obj))->data)
#define SCM_MAKE_GTK_ACTION_ENTRY(obj) (Scm_MakeGtkActionEntry(obj))
#define SCM_GTK_ACTION_ENTRY_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_ACTION_ENTRY_P(obj))
extern ScmObj Scm_MakeGtkActionEntry(GtkActionEntry *data);

typedef struct ScmGtkToggleActionEntryRec {
    SCM_HEADER;
    GtkToggleActionEntry data;
} ScmGtkToggleActionEntry;

SCM_CLASS_DECL(Scm_GtkToggleActionEntryClass);
#define SCM_CLASS_GTK_TOGGLE_ACTION_ENTRY     (&Scm_GtkToggleActionEntryClass)
#define SCM_GTK_TOGGLE_ACTION_ENTRY_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_TOGGLE_ACTION_ENTRY)
#define SCM_GTK_TOGGLE_ACTION_ENTRY(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkToggleActionEntry*)(obj))->data)
#define SCM_MAKE_GTK_TOGGLE_ACTION_ENTRY(obj) (Scm_MakeGtkToggleActionEntry(obj))
#define SCM_GTK_TOGGLE_ACTION_ENTRY_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TOGGLE_ACTION_ENTRY_P(obj))
extern ScmObj Scm_MakeGtkToggleActionEntry(GtkToggleActionEntry *data);

typedef struct ScmGtkRadioActionEntryRec {
    SCM_HEADER;
    GtkRadioActionEntry data;
} ScmGtkRadioActionEntry;

SCM_CLASS_DECL(Scm_GtkRadioActionEntryClass);
#define SCM_CLASS_GTK_RADIO_ACTION_ENTRY     (&Scm_GtkRadioActionEntryClass)
#define SCM_GTK_RADIO_ACTION_ENTRY_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_RADIO_ACTION_ENTRY)
#define SCM_GTK_RADIO_ACTION_ENTRY(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkRadioActionEntry*)(obj))->data)
#define SCM_MAKE_GTK_RADIO_ACTION_ENTRY(obj) (Scm_MakeGtkRadioActionEntry(obj))
#define SCM_GTK_RADIO_ACTION_ENTRY_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_RADIO_ACTION_ENTRY_P(obj))
extern ScmObj Scm_MakeGtkRadioActionEntry(GtkRadioActionEntry *data);

/* gtkadjustment.h */

SCM_CLASS_DECL(Scm_GtkAdjustmentClass);
#define SCM_CLASS_GTK_ADJUSTMENT     (&Scm_GtkAdjustmentClass)
#define SCM_GTK_ADJUSTMENT_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_ADJUSTMENT))
#define SCM_GTK_ADJUSTMENT(obj)      SCM_GOBJECT_UNBOX(GTK_ADJUSTMENT, obj)
#define SCM_MAKE_GTK_ADJUSTMENT(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_ADJUSTMENT_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_ADJUSTMENT_P(obj))

/* gtkalignment.h */

SCM_CLASS_DECL(Scm_GtkAlignmentClass);
#define SCM_CLASS_GTK_ALIGNMENT     (&Scm_GtkAlignmentClass)
#define SCM_GTK_ALIGNMENT_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_ALIGNMENT))
#define SCM_GTK_ALIGNMENT(obj)      SCM_GOBJECT_UNBOX(GTK_ALIGNMENT, obj)
#define SCM_MAKE_GTK_ALIGNMENT(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_ALIGNMENT_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_ALIGNMENT_P(obj))

/* gtkarrow.h */

SCM_CLASS_DECL(Scm_GtkArrowClass);
#define SCM_CLASS_GTK_ARROW     (&Scm_GtkArrowClass)
#define SCM_GTK_ARROW_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_ARROW))
#define SCM_GTK_ARROW(obj)      SCM_GOBJECT_UNBOX(GTK_ARROW, obj)
#define SCM_MAKE_GTK_ARROW(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_ARROW_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_ARROW_P(obj))

/* gtkaspectframe.h */

SCM_CLASS_DECL(Scm_GtkAspectFrameClass);
#define SCM_CLASS_GTK_ASPECT_FRAME     (&Scm_GtkAspectFrameClass)
#define SCM_GTK_ASPECT_FRAME_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_ASPECT_FRAME))
#define SCM_GTK_ASPECT_FRAME(obj)      SCM_GOBJECT_UNBOX(GTK_ASPECT_FRAME, obj)
#define SCM_MAKE_GTK_ASPECT_FRAME(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_ASPECT_FRAME_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_ASPECT_FRAME_P(obj))

/* gtkbbox.h */

SCM_CLASS_DECL(Scm_GtkButtonBoxClass);
#define SCM_CLASS_GTK_BUTTON_BOX     (&Scm_GtkButtonBoxClass)
#define SCM_GTK_BUTTON_BOX_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_BUTTON_BOX))
#define SCM_GTK_BUTTON_BOX(obj)      SCM_GOBJECT_UNBOX(GTK_BUTTON_BOX, obj)
#define SCM_MAKE_GTK_BUTTON_BOX(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_BUTTON_BOX_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_BUTTON_BOX_P(obj))

/* gtkbin.h */

SCM_CLASS_DECL(Scm_GtkBinClass);
#define SCM_CLASS_GTK_BIN     (&Scm_GtkBinClass)
#define SCM_GTK_BIN_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_BIN))
#define SCM_GTK_BIN(obj)      SCM_GOBJECT_UNBOX(GTK_BIN, obj)
#define SCM_MAKE_GTK_BIN(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_BIN_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_BIN_P(obj))

/* gtkbindings.h */

typedef struct ScmGtkBindingSetRec {
    SCM_HEADER;
    GtkBindingSet data;
} ScmGtkBindingSet;

SCM_CLASS_DECL(Scm_GtkBindingSetClass);
#define SCM_CLASS_GTK_BINDING_SET     (&Scm_GtkBindingSetClass)
#define SCM_GTK_BINDING_SET_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_BINDING_SET)
#define SCM_GTK_BINDING_SET(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkBindingSet*)(obj))->data)
#define SCM_MAKE_GTK_BINDING_SET(obj) (Scm_MakeGtkBindingSet(obj))
#define SCM_GTK_BINDING_SET_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_BINDING_SET_P(obj))
extern ScmObj Scm_MakeGtkBindingSet(GtkBindingSet *data);

typedef struct ScmGtkBindingEntryRec {
    SCM_HEADER;
    GtkBindingEntry data;
} ScmGtkBindingEntry;

SCM_CLASS_DECL(Scm_GtkBindingEntryClass);
#define SCM_CLASS_GTK_BINDING_ENTRY     (&Scm_GtkBindingEntryClass)
#define SCM_GTK_BINDING_ENTRY_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_BINDING_ENTRY)
#define SCM_GTK_BINDING_ENTRY(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkBindingEntry*)(obj))->data)
#define SCM_MAKE_GTK_BINDING_ENTRY(obj) (Scm_MakeGtkBindingEntry(obj))
#define SCM_GTK_BINDING_ENTRY_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_BINDING_ENTRY_P(obj))
extern ScmObj Scm_MakeGtkBindingEntry(GtkBindingEntry *data);

typedef struct ScmGtkBindingArgRec {
    SCM_HEADER;
    GtkBindingArg data;
} ScmGtkBindingArg;

SCM_CLASS_DECL(Scm_GtkBindingArgClass);
#define SCM_CLASS_GTK_BINDING_ARG     (&Scm_GtkBindingArgClass)
#define SCM_GTK_BINDING_ARG_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_BINDING_ARG)
#define SCM_GTK_BINDING_ARG(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkBindingArg*)(obj))->data)
#define SCM_MAKE_GTK_BINDING_ARG(obj) (Scm_MakeGtkBindingArg(obj))
#define SCM_GTK_BINDING_ARG_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_BINDING_ARG_P(obj))
extern ScmObj Scm_MakeGtkBindingArg(GtkBindingArg *data);

typedef struct ScmGtkBindingSignalRec {
    SCM_HEADER;
    GtkBindingSignal data;
} ScmGtkBindingSignal;

SCM_CLASS_DECL(Scm_GtkBindingSignalClass);
#define SCM_CLASS_GTK_BINDING_SIGNAL     (&Scm_GtkBindingSignalClass)
#define SCM_GTK_BINDING_SIGNAL_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_BINDING_SIGNAL)
#define SCM_GTK_BINDING_SIGNAL(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkBindingSignal*)(obj))->data)
#define SCM_MAKE_GTK_BINDING_SIGNAL(obj) (Scm_MakeGtkBindingSignal(obj))
#define SCM_GTK_BINDING_SIGNAL_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_BINDING_SIGNAL_P(obj))
extern ScmObj Scm_MakeGtkBindingSignal(GtkBindingSignal *data);

/* gtkbox.h */

SCM_CLASS_DECL(Scm_GtkBoxClass);
#define SCM_CLASS_GTK_BOX     (&Scm_GtkBoxClass)
#define SCM_GTK_BOX_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_BOX))
#define SCM_GTK_BOX(obj)      SCM_GOBJECT_UNBOX(GTK_BOX, obj)
#define SCM_MAKE_GTK_BOX(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_BOX_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_BOX_P(obj))

typedef struct ScmGtkBoxChildRec {
    SCM_HEADER;
    GtkBoxChild data;
} ScmGtkBoxChild;

SCM_CLASS_DECL(Scm_GtkBoxChildClass);
#define SCM_CLASS_GTK_BOX_CHILD     (&Scm_GtkBoxChildClass)
#define SCM_GTK_BOX_CHILD_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_BOX_CHILD)
#define SCM_GTK_BOX_CHILD(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkBoxChild*)(obj))->data)
#define SCM_MAKE_GTK_BOX_CHILD(obj) (Scm_MakeGtkBoxChild(obj))
#define SCM_GTK_BOX_CHILD_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_BOX_CHILD_P(obj))
extern ScmObj Scm_MakeGtkBoxChild(GtkBoxChild *data);

/* gtkbutton.h */

SCM_CLASS_DECL(Scm_GtkButtonClass);
#define SCM_CLASS_GTK_BUTTON     (&Scm_GtkButtonClass)
#define SCM_GTK_BUTTON_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_BUTTON))
#define SCM_GTK_BUTTON(obj)      SCM_GOBJECT_UNBOX(GTK_BUTTON, obj)
#define SCM_MAKE_GTK_BUTTON(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_BUTTON_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_BUTTON_P(obj))

/* gtkcalendar.h */

SCM_CLASS_DECL(Scm_GtkCalendarClass);
#define SCM_CLASS_GTK_CALENDAR     (&Scm_GtkCalendarClass)
#define SCM_GTK_CALENDAR_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_CALENDAR))
#define SCM_GTK_CALENDAR(obj)      SCM_GOBJECT_UNBOX(GTK_CALENDAR, obj)
#define SCM_MAKE_GTK_CALENDAR(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_CALENDAR_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CALENDAR_P(obj))

/* gtkcelllayout.h */

typedef struct ScmGtkCellLayoutIfaceRec {
    SCM_HEADER;
    GtkCellLayoutIface data;
} ScmGtkCellLayoutIface;

SCM_CLASS_DECL(Scm_GtkCellLayoutIfaceClass);
#define SCM_CLASS_GTK_CELL_LAYOUT_IFACE     (&Scm_GtkCellLayoutIfaceClass)
#define SCM_GTK_CELL_LAYOUT_IFACE_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_CELL_LAYOUT_IFACE)
#define SCM_GTK_CELL_LAYOUT_IFACE(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkCellLayoutIface*)(obj))->data)
#define SCM_MAKE_GTK_CELL_LAYOUT_IFACE(obj) (Scm_MakeGtkCellLayoutIface(obj))
#define SCM_GTK_CELL_LAYOUT_IFACE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CELL_LAYOUT_IFACE_P(obj))
extern ScmObj Scm_MakeGtkCellLayoutIface(GtkCellLayoutIface *data);

SCM_CLASS_DECL(Scm_GtkCellLayoutClass);
#define SCM_CLASS_GTK_CELL_LAYOUT     (&Scm_GtkCellLayoutClass)
#define SCM_GTK_CELL_LAYOUT_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_CELL_LAYOUT))
#define SCM_GTK_CELL_LAYOUT(obj)      SCM_GOBJECT_UNBOX(GTK_CELL_LAYOUT, obj)
#define SCM_MAKE_GTK_CELL_LAYOUT(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_CELL_LAYOUT_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CELL_LAYOUT_P(obj))

/* gtkcellrenderer.h */

SCM_CLASS_DECL(Scm_GtkCellRendererClass);
#define SCM_CLASS_GTK_CELL_RENDERER     (&Scm_GtkCellRendererClass)
#define SCM_GTK_CELL_RENDERER_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_CELL_RENDERER))
#define SCM_GTK_CELL_RENDERER(obj)      SCM_GOBJECT_UNBOX(GTK_CELL_RENDERER, obj)
#define SCM_MAKE_GTK_CELL_RENDERER(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_CELL_RENDERER_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CELL_RENDERER_P(obj))

/* gtkcellrenderercombo.h */

SCM_CLASS_DECL(Scm_GtkCellRendererComboClass);
#define SCM_CLASS_GTK_CELL_RENDERER_COMBO     (&Scm_GtkCellRendererComboClass)
#define SCM_GTK_CELL_RENDERER_COMBO_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_CELL_RENDERER_COMBO))
#define SCM_GTK_CELL_RENDERER_COMBO(obj)      SCM_GOBJECT_UNBOX(GTK_CELL_RENDERER_COMBO, obj)
#define SCM_MAKE_GTK_CELL_RENDERER_COMBO(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_CELL_RENDERER_COMBO_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CELL_RENDERER_COMBO_P(obj))

/* gtkcellrendererpixbuf.h */

SCM_CLASS_DECL(Scm_GtkCellRendererPixbufClass);
#define SCM_CLASS_GTK_CELL_RENDERER_PIXBUF     (&Scm_GtkCellRendererPixbufClass)
#define SCM_GTK_CELL_RENDERER_PIXBUF_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_CELL_RENDERER_PIXBUF))
#define SCM_GTK_CELL_RENDERER_PIXBUF(obj)      SCM_GOBJECT_UNBOX(GTK_CELL_RENDERER_PIXBUF, obj)
#define SCM_MAKE_GTK_CELL_RENDERER_PIXBUF(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_CELL_RENDERER_PIXBUF_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CELL_RENDERER_PIXBUF_P(obj))

/* gtkcellrendererprogress.h */

SCM_CLASS_DECL(Scm_GtkCellRendererProgressClass);
#define SCM_CLASS_GTK_CELL_RENDERER_PROGRESS     (&Scm_GtkCellRendererProgressClass)
#define SCM_GTK_CELL_RENDERER_PROGRESS_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_CELL_RENDERER_PROGRESS))
#define SCM_GTK_CELL_RENDERER_PROGRESS(obj)      SCM_GOBJECT_UNBOX(GTK_CELL_RENDERER_PROGRESS, obj)
#define SCM_MAKE_GTK_CELL_RENDERER_PROGRESS(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_CELL_RENDERER_PROGRESS_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CELL_RENDERER_PROGRESS_P(obj))

/* gtkcellrenderertext.h */

SCM_CLASS_DECL(Scm_GtkCellRendererTextClass);
#define SCM_CLASS_GTK_CELL_RENDERER_TEXT     (&Scm_GtkCellRendererTextClass)
#define SCM_GTK_CELL_RENDERER_TEXT_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_CELL_RENDERER_TEXT))
#define SCM_GTK_CELL_RENDERER_TEXT(obj)      SCM_GOBJECT_UNBOX(GTK_CELL_RENDERER_TEXT, obj)
#define SCM_MAKE_GTK_CELL_RENDERER_TEXT(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_CELL_RENDERER_TEXT_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CELL_RENDERER_TEXT_P(obj))

/* gtkcellrenderertoggle.h */

SCM_CLASS_DECL(Scm_GtkCellRendererToggleClass);
#define SCM_CLASS_GTK_CELL_RENDERER_TOGGLE     (&Scm_GtkCellRendererToggleClass)
#define SCM_GTK_CELL_RENDERER_TOGGLE_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_CELL_RENDERER_TOGGLE))
#define SCM_GTK_CELL_RENDERER_TOGGLE(obj)      SCM_GOBJECT_UNBOX(GTK_CELL_RENDERER_TOGGLE, obj)
#define SCM_MAKE_GTK_CELL_RENDERER_TOGGLE(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_CELL_RENDERER_TOGGLE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CELL_RENDERER_TOGGLE_P(obj))

/* gtkcellview.h */

SCM_CLASS_DECL(Scm_GtkCellViewClass);
#define SCM_CLASS_GTK_CELL_VIEW     (&Scm_GtkCellViewClass)
#define SCM_GTK_CELL_VIEW_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_CELL_VIEW))
#define SCM_GTK_CELL_VIEW(obj)      SCM_GOBJECT_UNBOX(GTK_CELL_VIEW, obj)
#define SCM_MAKE_GTK_CELL_VIEW(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_CELL_VIEW_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CELL_VIEW_P(obj))

/* gtkcheckbutton.h */

SCM_CLASS_DECL(Scm_GtkCheckButtonClass);
#define SCM_CLASS_GTK_CHECK_BUTTON     (&Scm_GtkCheckButtonClass)
#define SCM_GTK_CHECK_BUTTON_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_CHECK_BUTTON))
#define SCM_GTK_CHECK_BUTTON(obj)      SCM_GOBJECT_UNBOX(GTK_CHECK_BUTTON, obj)
#define SCM_MAKE_GTK_CHECK_BUTTON(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_CHECK_BUTTON_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CHECK_BUTTON_P(obj))

/* gtkcheckmenuitem.h */

SCM_CLASS_DECL(Scm_GtkCheckMenuItemClass);
#define SCM_CLASS_GTK_CHECK_MENU_ITEM     (&Scm_GtkCheckMenuItemClass)
#define SCM_GTK_CHECK_MENU_ITEM_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_CHECK_MENU_ITEM))
#define SCM_GTK_CHECK_MENU_ITEM(obj)      SCM_GOBJECT_UNBOX(GTK_CHECK_MENU_ITEM, obj)
#define SCM_MAKE_GTK_CHECK_MENU_ITEM(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_CHECK_MENU_ITEM_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CHECK_MENU_ITEM_P(obj))

/* gtkclipboard.h */

typedef struct ScmGtkClipboardRec {
    SCM_HEADER;
    GtkClipboard *data;
} ScmGtkClipboard;

SCM_CLASS_DECL(Scm_GtkClipboardClass);
#define SCM_CLASS_GTK_CLIPBOARD     (&Scm_GtkClipboardClass)
#define SCM_GTK_CLIPBOARD_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_CLIPBOARD)
#define SCM_GTK_CLIPBOARD(obj)      (SCM_FALSEP(obj)?NULL:((ScmGtkClipboard*)(obj))->data)
#define SCM_MAKE_GTK_CLIPBOARD(obj) (Scm_MakeGtkClipboard(obj))
#define SCM_GTK_CLIPBOARD_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CLIPBOARD_P(obj))
extern ScmObj Scm_MakeGtkClipboard(GtkClipboard *data);

/* gtkclist.h */

typedef struct ScmGtkCListCellInfoRec {
    SCM_HEADER;
    GtkCListCellInfo data;
} ScmGtkCListCellInfo;

SCM_CLASS_DECL(Scm_GtkCListCellInfoClass);
#define SCM_CLASS_GTK_CLIST_CELL_INFO     (&Scm_GtkCListCellInfoClass)
#define SCM_GTK_CLIST_CELL_INFO_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_CLIST_CELL_INFO)
#define SCM_GTK_CLIST_CELL_INFO(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkCListCellInfo*)(obj))->data)
#define SCM_MAKE_GTK_CLIST_CELL_INFO(obj) (Scm_MakeGtkCListCellInfo(obj))
#define SCM_GTK_CLIST_CELL_INFO_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CLIST_CELL_INFO_P(obj))
extern ScmObj Scm_MakeGtkCListCellInfo(GtkCListCellInfo *data);

typedef struct ScmGtkCListDestInfoRec {
    SCM_HEADER;
    GtkCListDestInfo data;
} ScmGtkCListDestInfo;

SCM_CLASS_DECL(Scm_GtkCListDestInfoClass);
#define SCM_CLASS_GTK_CLIST_DEST_INFO     (&Scm_GtkCListDestInfoClass)
#define SCM_GTK_CLIST_DEST_INFO_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_CLIST_DEST_INFO)
#define SCM_GTK_CLIST_DEST_INFO(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkCListDestInfo*)(obj))->data)
#define SCM_MAKE_GTK_CLIST_DEST_INFO(obj) (Scm_MakeGtkCListDestInfo(obj))
#define SCM_GTK_CLIST_DEST_INFO_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CLIST_DEST_INFO_P(obj))
extern ScmObj Scm_MakeGtkCListDestInfo(GtkCListDestInfo *data);

SCM_CLASS_DECL(Scm_GtkCListClass);
#define SCM_CLASS_GTK_CLIST     (&Scm_GtkCListClass)
#define SCM_GTK_CLIST_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_CLIST))
#define SCM_GTK_CLIST(obj)      SCM_GOBJECT_UNBOX(GTK_CLIST, obj)
#define SCM_MAKE_GTK_CLIST(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_CLIST_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CLIST_P(obj))

typedef struct ScmGtkCListColumnRec {
    SCM_HEADER;
    GtkCListColumn data;
} ScmGtkCListColumn;

SCM_CLASS_DECL(Scm_GtkCListColumnClass);
#define SCM_CLASS_GTK_CLIST_COLUMN     (&Scm_GtkCListColumnClass)
#define SCM_GTK_CLIST_COLUMN_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_CLIST_COLUMN)
#define SCM_GTK_CLIST_COLUMN(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkCListColumn*)(obj))->data)
#define SCM_MAKE_GTK_CLIST_COLUMN(obj) (Scm_MakeGtkCListColumn(obj))
#define SCM_GTK_CLIST_COLUMN_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CLIST_COLUMN_P(obj))
extern ScmObj Scm_MakeGtkCListColumn(GtkCListColumn *data);

typedef struct ScmGtkCListRowRec {
    SCM_HEADER;
    GtkCListRow data;
} ScmGtkCListRow;

SCM_CLASS_DECL(Scm_GtkCListRowClass);
#define SCM_CLASS_GTK_CLIST_ROW     (&Scm_GtkCListRowClass)
#define SCM_GTK_CLIST_ROW_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_CLIST_ROW)
#define SCM_GTK_CLIST_ROW(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkCListRow*)(obj))->data)
#define SCM_MAKE_GTK_CLIST_ROW(obj) (Scm_MakeGtkCListRow(obj))
#define SCM_GTK_CLIST_ROW_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CLIST_ROW_P(obj))
extern ScmObj Scm_MakeGtkCListRow(GtkCListRow *data);

typedef struct ScmGtkCellTextRec {
    SCM_HEADER;
    GtkCellText data;
} ScmGtkCellText;

SCM_CLASS_DECL(Scm_GtkCellTextClass);
#define SCM_CLASS_GTK_CELL_TEXT     (&Scm_GtkCellTextClass)
#define SCM_GTK_CELL_TEXT_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_CELL_TEXT)
#define SCM_GTK_CELL_TEXT(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkCellText*)(obj))->data)
#define SCM_MAKE_GTK_CELL_TEXT(obj) (Scm_MakeGtkCellText(obj))
#define SCM_GTK_CELL_TEXT_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CELL_TEXT_P(obj))
extern ScmObj Scm_MakeGtkCellText(GtkCellText *data);

typedef struct ScmGtkCellPixmapRec {
    SCM_HEADER;
    GtkCellPixmap data;
} ScmGtkCellPixmap;

SCM_CLASS_DECL(Scm_GtkCellPixmapClass);
#define SCM_CLASS_GTK_CELL_PIXMAP     (&Scm_GtkCellPixmapClass)
#define SCM_GTK_CELL_PIXMAP_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_CELL_PIXMAP)
#define SCM_GTK_CELL_PIXMAP(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkCellPixmap*)(obj))->data)
#define SCM_MAKE_GTK_CELL_PIXMAP(obj) (Scm_MakeGtkCellPixmap(obj))
#define SCM_GTK_CELL_PIXMAP_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CELL_PIXMAP_P(obj))
extern ScmObj Scm_MakeGtkCellPixmap(GtkCellPixmap *data);

typedef struct ScmGtkCellPixTextRec {
    SCM_HEADER;
    GtkCellPixText data;
} ScmGtkCellPixText;

SCM_CLASS_DECL(Scm_GtkCellPixTextClass);
#define SCM_CLASS_GTK_CELL_PIX_TEXT     (&Scm_GtkCellPixTextClass)
#define SCM_GTK_CELL_PIX_TEXT_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_CELL_PIX_TEXT)
#define SCM_GTK_CELL_PIX_TEXT(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkCellPixText*)(obj))->data)
#define SCM_MAKE_GTK_CELL_PIX_TEXT(obj) (Scm_MakeGtkCellPixText(obj))
#define SCM_GTK_CELL_PIX_TEXT_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CELL_PIX_TEXT_P(obj))
extern ScmObj Scm_MakeGtkCellPixText(GtkCellPixText *data);

typedef struct ScmGtkCellWidgetRec {
    SCM_HEADER;
    GtkCellWidget data;
} ScmGtkCellWidget;

SCM_CLASS_DECL(Scm_GtkCellWidgetClass);
#define SCM_CLASS_GTK_CELL_WIDGET     (&Scm_GtkCellWidgetClass)
#define SCM_GTK_CELL_WIDGET_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_CELL_WIDGET)
#define SCM_GTK_CELL_WIDGET(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkCellWidget*)(obj))->data)
#define SCM_MAKE_GTK_CELL_WIDGET(obj) (Scm_MakeGtkCellWidget(obj))
#define SCM_GTK_CELL_WIDGET_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CELL_WIDGET_P(obj))
extern ScmObj Scm_MakeGtkCellWidget(GtkCellWidget *data);

typedef struct ScmGtkCellRec {
    SCM_HEADER;
    GtkCell data;
} ScmGtkCell;

SCM_CLASS_DECL(Scm_GtkCellClass);
#define SCM_CLASS_GTK_CELL     (&Scm_GtkCellClass)
#define SCM_GTK_CELL_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_CELL)
#define SCM_GTK_CELL(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkCell*)(obj))->data)
#define SCM_MAKE_GTK_CELL(obj) (Scm_MakeGtkCell(obj))
#define SCM_GTK_CELL_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CELL_P(obj))
extern ScmObj Scm_MakeGtkCell(GtkCell *data);

/* gtkcolorbutton.h */

SCM_CLASS_DECL(Scm_GtkColorButtonClass);
#define SCM_CLASS_GTK_COLOR_BUTTON     (&Scm_GtkColorButtonClass)
#define SCM_GTK_COLOR_BUTTON_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_COLOR_BUTTON))
#define SCM_GTK_COLOR_BUTTON(obj)      SCM_GOBJECT_UNBOX(GTK_COLOR_BUTTON, obj)
#define SCM_MAKE_GTK_COLOR_BUTTON(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_COLOR_BUTTON_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_COLOR_BUTTON_P(obj))

/* gtkcolorsel.h */

SCM_CLASS_DECL(Scm_GtkColorSelectionClass);
#define SCM_CLASS_GTK_COLOR_SELECTION     (&Scm_GtkColorSelectionClass)
#define SCM_GTK_COLOR_SELECTION_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_COLOR_SELECTION))
#define SCM_GTK_COLOR_SELECTION(obj)      SCM_GOBJECT_UNBOX(GTK_COLOR_SELECTION, obj)
#define SCM_MAKE_GTK_COLOR_SELECTION(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_COLOR_SELECTION_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_COLOR_SELECTION_P(obj))

/* gtkcolorseldialog.h */

SCM_CLASS_DECL(Scm_GtkColorSelectionDialogClass);
#define SCM_CLASS_GTK_COLOR_SELECTION_DIALOG     (&Scm_GtkColorSelectionDialogClass)
#define SCM_GTK_COLOR_SELECTION_DIALOG_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_COLOR_SELECTION_DIALOG))
#define SCM_GTK_COLOR_SELECTION_DIALOG(obj)      SCM_GOBJECT_UNBOX(GTK_COLOR_SELECTION_DIALOG, obj)
#define SCM_MAKE_GTK_COLOR_SELECTION_DIALOG(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_COLOR_SELECTION_DIALOG_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_COLOR_SELECTION_DIALOG_P(obj))

/* gtkcombo.h */

SCM_CLASS_DECL(Scm_GtkComboClass);
#define SCM_CLASS_GTK_COMBO     (&Scm_GtkComboClass)
#define SCM_GTK_COMBO_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_COMBO))
#define SCM_GTK_COMBO(obj)      SCM_GOBJECT_UNBOX(GTK_COMBO, obj)
#define SCM_MAKE_GTK_COMBO(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_COMBO_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_COMBO_P(obj))

/* gtkcombobox.h */

SCM_CLASS_DECL(Scm_GtkComboBoxClass);
#define SCM_CLASS_GTK_COMBO_BOX     (&Scm_GtkComboBoxClass)
#define SCM_GTK_COMBO_BOX_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_COMBO_BOX))
#define SCM_GTK_COMBO_BOX(obj)      SCM_GOBJECT_UNBOX(GTK_COMBO_BOX, obj)
#define SCM_MAKE_GTK_COMBO_BOX(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_COMBO_BOX_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_COMBO_BOX_P(obj))

/* gtkcomboboxentry.h */

SCM_CLASS_DECL(Scm_GtkComboBoxEntryClass);
#define SCM_CLASS_GTK_COMBO_BOX_ENTRY     (&Scm_GtkComboBoxEntryClass)
#define SCM_GTK_COMBO_BOX_ENTRY_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_COMBO_BOX_ENTRY))
#define SCM_GTK_COMBO_BOX_ENTRY(obj)      SCM_GOBJECT_UNBOX(GTK_COMBO_BOX_ENTRY, obj)
#define SCM_MAKE_GTK_COMBO_BOX_ENTRY(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_COMBO_BOX_ENTRY_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_COMBO_BOX_ENTRY_P(obj))

/* gtkcomboboxtext.h */

SCM_CLASS_DECL(Scm_GtkComboBoxTextClass);
#define SCM_CLASS_GTK_COMBO_BOX_TEXT     (&Scm_GtkComboBoxTextClass)
#define SCM_GTK_COMBO_BOX_TEXT_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_COMBO_BOX_TEXT))
#define SCM_GTK_COMBO_BOX_TEXT(obj)      SCM_GOBJECT_UNBOX(GTK_COMBO_BOX_TEXT, obj)
#define SCM_MAKE_GTK_COMBO_BOX_TEXT(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_COMBO_BOX_TEXT_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_COMBO_BOX_TEXT_P(obj))

/* gtkcontainer.h */

SCM_CLASS_DECL(Scm_GtkContainerClass);
#define SCM_CLASS_GTK_CONTAINER     (&Scm_GtkContainerClass)
#define SCM_GTK_CONTAINER_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_CONTAINER))
#define SCM_GTK_CONTAINER(obj)      SCM_GOBJECT_UNBOX(GTK_CONTAINER, obj)
#define SCM_MAKE_GTK_CONTAINER(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_CONTAINER_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CONTAINER_P(obj))

/* gtkctree.h */

SCM_CLASS_DECL(Scm_GtkCTreeClass);
#define SCM_CLASS_GTK_CTREE     (&Scm_GtkCTreeClass)
#define SCM_GTK_CTREE_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_CTREE))
#define SCM_GTK_CTREE(obj)      SCM_GOBJECT_UNBOX(GTK_CTREE, obj)
#define SCM_MAKE_GTK_CTREE(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_CTREE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CTREE_P(obj))

typedef struct ScmGtkCTreeRowRec {
    SCM_HEADER;
    GtkCTreeRow data;
} ScmGtkCTreeRow;

SCM_CLASS_DECL(Scm_GtkCTreeRowClass);
#define SCM_CLASS_GTK_CTREE_ROW     (&Scm_GtkCTreeRowClass)
#define SCM_GTK_CTREE_ROW_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_CTREE_ROW)
#define SCM_GTK_CTREE_ROW(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkCTreeRow*)(obj))->data)
#define SCM_MAKE_GTK_CTREE_ROW(obj) (Scm_MakeGtkCTreeRow(obj))
#define SCM_GTK_CTREE_ROW_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CTREE_ROW_P(obj))
extern ScmObj Scm_MakeGtkCTreeRow(GtkCTreeRow *data);

typedef struct ScmGtkCTreeNodeRec {
    SCM_HEADER;
    GtkCTreeNode data;
} ScmGtkCTreeNode;

SCM_CLASS_DECL(Scm_GtkCTreeNodeClass);
#define SCM_CLASS_GTK_CTREE_NODE     (&Scm_GtkCTreeNodeClass)
#define SCM_GTK_CTREE_NODE_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_CTREE_NODE)
#define SCM_GTK_CTREE_NODE(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkCTreeNode*)(obj))->data)
#define SCM_MAKE_GTK_CTREE_NODE(obj) (Scm_MakeGtkCTreeNode(obj))
#define SCM_GTK_CTREE_NODE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CTREE_NODE_P(obj))
extern ScmObj Scm_MakeGtkCTreeNode(GtkCTreeNode *data);

/* gtkcurve.h */

SCM_CLASS_DECL(Scm_GtkCurveClass);
#define SCM_CLASS_GTK_CURVE     (&Scm_GtkCurveClass)
#define SCM_GTK_CURVE_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_CURVE))
#define SCM_GTK_CURVE(obj)      SCM_GOBJECT_UNBOX(GTK_CURVE, obj)
#define SCM_MAKE_GTK_CURVE(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_CURVE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CURVE_P(obj))

/* gtkdialog.h */

SCM_CLASS_DECL(Scm_GtkDialogClass);
#define SCM_CLASS_GTK_DIALOG     (&Scm_GtkDialogClass)
#define SCM_GTK_DIALOG_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_DIALOG))
#define SCM_GTK_DIALOG(obj)      SCM_GOBJECT_UNBOX(GTK_DIALOG, obj)
#define SCM_MAKE_GTK_DIALOG(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_DIALOG_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_DIALOG_P(obj))

/* gtkdnd.h */

/* gtkdrawingarea.h */

SCM_CLASS_DECL(Scm_GtkDrawingAreaClass);
#define SCM_CLASS_GTK_DRAWING_AREA     (&Scm_GtkDrawingAreaClass)
#define SCM_GTK_DRAWING_AREA_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_DRAWING_AREA))
#define SCM_GTK_DRAWING_AREA(obj)      SCM_GOBJECT_UNBOX(GTK_DRAWING_AREA, obj)
#define SCM_MAKE_GTK_DRAWING_AREA(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_DRAWING_AREA_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_DRAWING_AREA_P(obj))

/* gtkeditable.h */

SCM_CLASS_DECL(Scm_GtkEditableClass);
#define SCM_CLASS_GTK_EDITABLE     (&Scm_GtkEditableClass)
#define SCM_GTK_EDITABLE_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_EDITABLE))
#define SCM_GTK_EDITABLE(obj)      SCM_GOBJECT_UNBOX(GTK_EDITABLE, obj)
#define SCM_MAKE_GTK_EDITABLE(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_EDITABLE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_EDITABLE_P(obj))

/* gtkentry.h */

SCM_CLASS_DECL(Scm_GtkEntryClass);
#define SCM_CLASS_GTK_ENTRY     (&Scm_GtkEntryClass)
#define SCM_GTK_ENTRY_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_ENTRY))
#define SCM_GTK_ENTRY(obj)      SCM_GOBJECT_UNBOX(GTK_ENTRY, obj)
#define SCM_MAKE_GTK_ENTRY(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_ENTRY_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_ENTRY_P(obj))

/* gtkentrycompletion.h */

SCM_CLASS_DECL(Scm_GtkEntryCompletionClass);
#define SCM_CLASS_GTK_ENTRY_COMPLETION     (&Scm_GtkEntryCompletionClass)
#define SCM_GTK_ENTRY_COMPLETION_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_ENTRY_COMPLETION))
#define SCM_GTK_ENTRY_COMPLETION(obj)      SCM_GOBJECT_UNBOX(GTK_ENTRY_COMPLETION, obj)
#define SCM_MAKE_GTK_ENTRY_COMPLETION(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_ENTRY_COMPLETION_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_ENTRY_COMPLETION_P(obj))

/* gtkenums.h */

/* gtkeventbox.h */

SCM_CLASS_DECL(Scm_GtkEventBoxClass);
#define SCM_CLASS_GTK_EVENT_BOX     (&Scm_GtkEventBoxClass)
#define SCM_GTK_EVENT_BOX_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_EVENT_BOX))
#define SCM_GTK_EVENT_BOX(obj)      SCM_GOBJECT_UNBOX(GTK_EVENT_BOX, obj)
#define SCM_MAKE_GTK_EVENT_BOX(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_EVENT_BOX_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_EVENT_BOX_P(obj))

/* gtkexpander.h */

SCM_CLASS_DECL(Scm_GtkExpanderClass);
#define SCM_CLASS_GTK_EXPANDER     (&Scm_GtkExpanderClass)
#define SCM_GTK_EXPANDER_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_EXPANDER))
#define SCM_GTK_EXPANDER(obj)      SCM_GOBJECT_UNBOX(GTK_EXPANDER, obj)
#define SCM_MAKE_GTK_EXPANDER(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_EXPANDER_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_EXPANDER_P(obj))

/* gtkfilesel.h */

SCM_CLASS_DECL(Scm_GtkFileSelectionClass);
#define SCM_CLASS_GTK_FILE_SELECTION     (&Scm_GtkFileSelectionClass)
#define SCM_GTK_FILE_SELECTION_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_FILE_SELECTION))
#define SCM_GTK_FILE_SELECTION(obj)      SCM_GOBJECT_UNBOX(GTK_FILE_SELECTION, obj)
#define SCM_MAKE_GTK_FILE_SELECTION(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_FILE_SELECTION_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_FILE_SELECTION_P(obj))

/* gtkfixed.h */

SCM_CLASS_DECL(Scm_GtkFixedClass);
#define SCM_CLASS_GTK_FIXED     (&Scm_GtkFixedClass)
#define SCM_GTK_FIXED_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_FIXED))
#define SCM_GTK_FIXED(obj)      SCM_GOBJECT_UNBOX(GTK_FIXED, obj)
#define SCM_MAKE_GTK_FIXED(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_FIXED_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_FIXED_P(obj))

typedef struct ScmGtkFixedChildRec {
    SCM_HEADER;
    GtkFixedChild data;
} ScmGtkFixedChild;

SCM_CLASS_DECL(Scm_GtkFixedChildClass);
#define SCM_CLASS_GTK_FIXED_CHILD     (&Scm_GtkFixedChildClass)
#define SCM_GTK_FIXED_CHILD_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_FIXED_CHILD)
#define SCM_GTK_FIXED_CHILD(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkFixedChild*)(obj))->data)
#define SCM_MAKE_GTK_FIXED_CHILD(obj) (Scm_MakeGtkFixedChild(obj))
#define SCM_GTK_FIXED_CHILD_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_FIXED_CHILD_P(obj))
extern ScmObj Scm_MakeGtkFixedChild(GtkFixedChild *data);

/* gtkfilechooserbutton.h */

SCM_CLASS_DECL(Scm_GtkFileChooserButtonClass);
#define SCM_CLASS_GTK_FILE_CHOOSER_BUTTON     (&Scm_GtkFileChooserButtonClass)
#define SCM_GTK_FILE_CHOOSER_BUTTON_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_FILE_CHOOSER_BUTTON))
#define SCM_GTK_FILE_CHOOSER_BUTTON(obj)      SCM_GOBJECT_UNBOX(GTK_FILE_CHOOSER_BUTTON, obj)
#define SCM_MAKE_GTK_FILE_CHOOSER_BUTTON(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_FILE_CHOOSER_BUTTON_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_FILE_CHOOSER_BUTTON_P(obj))

/* gtkfilechooserdialog.h */

SCM_CLASS_DECL(Scm_GtkFileChooserDialogClass);
#define SCM_CLASS_GTK_FILE_CHOOSER_DIALOG     (&Scm_GtkFileChooserDialogClass)
#define SCM_GTK_FILE_CHOOSER_DIALOG_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_FILE_CHOOSER_DIALOG))
#define SCM_GTK_FILE_CHOOSER_DIALOG(obj)      SCM_GOBJECT_UNBOX(GTK_FILE_CHOOSER_DIALOG, obj)
#define SCM_MAKE_GTK_FILE_CHOOSER_DIALOG(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_FILE_CHOOSER_DIALOG_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_FILE_CHOOSER_DIALOG_P(obj))

/* gtkfilechooserwidget.h */

SCM_CLASS_DECL(Scm_GtkFileChooserWidgetClass);
#define SCM_CLASS_GTK_FILE_CHOOSER_WIDGET     (&Scm_GtkFileChooserWidgetClass)
#define SCM_GTK_FILE_CHOOSER_WIDGET_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_FILE_CHOOSER_WIDGET))
#define SCM_GTK_FILE_CHOOSER_WIDGET(obj)      SCM_GOBJECT_UNBOX(GTK_FILE_CHOOSER_WIDGET, obj)
#define SCM_MAKE_GTK_FILE_CHOOSER_WIDGET(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_FILE_CHOOSER_WIDGET_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_FILE_CHOOSER_WIDGET_P(obj))

/* gtkfontbutton.h */

SCM_CLASS_DECL(Scm_GtkFontButtonClass);
#define SCM_CLASS_GTK_FONT_BUTTON     (&Scm_GtkFontButtonClass)
#define SCM_GTK_FONT_BUTTON_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_FONT_BUTTON))
#define SCM_GTK_FONT_BUTTON(obj)      SCM_GOBJECT_UNBOX(GTK_FONT_BUTTON, obj)
#define SCM_MAKE_GTK_FONT_BUTTON(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_FONT_BUTTON_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_FONT_BUTTON_P(obj))

/* gtkfontsel.h */

SCM_CLASS_DECL(Scm_GtkFontSelectionClass);
#define SCM_CLASS_GTK_FONT_SELECTION     (&Scm_GtkFontSelectionClass)
#define SCM_GTK_FONT_SELECTION_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_FONT_SELECTION))
#define SCM_GTK_FONT_SELECTION(obj)      SCM_GOBJECT_UNBOX(GTK_FONT_SELECTION, obj)
#define SCM_MAKE_GTK_FONT_SELECTION(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_FONT_SELECTION_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_FONT_SELECTION_P(obj))

SCM_CLASS_DECL(Scm_GtkFontSelectionDialogClass);
#define SCM_CLASS_GTK_FONT_SELECTION_DIALOG     (&Scm_GtkFontSelectionDialogClass)
#define SCM_GTK_FONT_SELECTION_DIALOG_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_FONT_SELECTION_DIALOG))
#define SCM_GTK_FONT_SELECTION_DIALOG(obj)      SCM_GOBJECT_UNBOX(GTK_FONT_SELECTION_DIALOG, obj)
#define SCM_MAKE_GTK_FONT_SELECTION_DIALOG(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_FONT_SELECTION_DIALOG_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_FONT_SELECTION_DIALOG_P(obj))

/* gtkframe.h */

SCM_CLASS_DECL(Scm_GtkFrameClass);
#define SCM_CLASS_GTK_FRAME     (&Scm_GtkFrameClass)
#define SCM_GTK_FRAME_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_FRAME))
#define SCM_GTK_FRAME(obj)      SCM_GOBJECT_UNBOX(GTK_FRAME, obj)
#define SCM_MAKE_GTK_FRAME(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_FRAME_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_FRAME_P(obj))

/* gtkgamma.h */

SCM_CLASS_DECL(Scm_GtkGammaCurveClass);
#define SCM_CLASS_GTK_GAMMA_CURVE     (&Scm_GtkGammaCurveClass)
#define SCM_GTK_GAMMA_CURVE_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_GAMMA_CURVE))
#define SCM_GTK_GAMMA_CURVE(obj)      SCM_GOBJECT_UNBOX(GTK_GAMMA_CURVE, obj)
#define SCM_MAKE_GTK_GAMMA_CURVE(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_GAMMA_CURVE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_GAMMA_CURVE_P(obj))

/* gtkgc.h */

/* gtkhandlebox.h */

SCM_CLASS_DECL(Scm_GtkHandleBoxClass);
#define SCM_CLASS_GTK_HANDLE_BOX     (&Scm_GtkHandleBoxClass)
#define SCM_GTK_HANDLE_BOX_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_HANDLE_BOX))
#define SCM_GTK_HANDLE_BOX(obj)      SCM_GOBJECT_UNBOX(GTK_HANDLE_BOX, obj)
#define SCM_MAKE_GTK_HANDLE_BOX(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_HANDLE_BOX_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_HANDLE_BOX_P(obj))

/* gtkhbbox.h */

SCM_CLASS_DECL(Scm_GtkHButtonBoxClass);
#define SCM_CLASS_GTK_HBUTTON_BOX     (&Scm_GtkHButtonBoxClass)
#define SCM_GTK_HBUTTON_BOX_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_HBUTTON_BOX))
#define SCM_GTK_HBUTTON_BOX(obj)      SCM_GOBJECT_UNBOX(GTK_HBUTTON_BOX, obj)
#define SCM_MAKE_GTK_HBUTTON_BOX(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_HBUTTON_BOX_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_HBUTTON_BOX_P(obj))

/* gtkhbox.h */

SCM_CLASS_DECL(Scm_GtkHBoxClass);
#define SCM_CLASS_GTK_HBOX     (&Scm_GtkHBoxClass)
#define SCM_GTK_HBOX_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_HBOX))
#define SCM_GTK_HBOX(obj)      SCM_GOBJECT_UNBOX(GTK_HBOX, obj)
#define SCM_MAKE_GTK_HBOX(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_HBOX_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_HBOX_P(obj))

/* gtkhpaned.h */

SCM_CLASS_DECL(Scm_GtkHPanedClass);
#define SCM_CLASS_GTK_HPANED     (&Scm_GtkHPanedClass)
#define SCM_GTK_HPANED_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_HPANED))
#define SCM_GTK_HPANED(obj)      SCM_GOBJECT_UNBOX(GTK_HPANED, obj)
#define SCM_MAKE_GTK_HPANED(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_HPANED_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_HPANED_P(obj))

/* gtkhruler.h */

SCM_CLASS_DECL(Scm_GtkHRulerClass);
#define SCM_CLASS_GTK_HRULER     (&Scm_GtkHRulerClass)
#define SCM_GTK_HRULER_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_HRULER))
#define SCM_GTK_HRULER(obj)      SCM_GOBJECT_UNBOX(GTK_HRULER, obj)
#define SCM_MAKE_GTK_HRULER(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_HRULER_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_HRULER_P(obj))

/* gtkhscale.h */

SCM_CLASS_DECL(Scm_GtkHScaleClass);
#define SCM_CLASS_GTK_HSCALE     (&Scm_GtkHScaleClass)
#define SCM_GTK_HSCALE_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_HSCALE))
#define SCM_GTK_HSCALE(obj)      SCM_GOBJECT_UNBOX(GTK_HSCALE, obj)
#define SCM_MAKE_GTK_HSCALE(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_HSCALE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_HSCALE_P(obj))

/* gtkhscrollbar.h */

SCM_CLASS_DECL(Scm_GtkHScrollbarClass);
#define SCM_CLASS_GTK_HSCROLLBAR     (&Scm_GtkHScrollbarClass)
#define SCM_GTK_HSCROLLBAR_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_HSCROLLBAR))
#define SCM_GTK_HSCROLLBAR(obj)      SCM_GOBJECT_UNBOX(GTK_HSCROLLBAR, obj)
#define SCM_MAKE_GTK_HSCROLLBAR(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_HSCROLLBAR_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_HSCROLLBAR_P(obj))

/* gtkhseparator.h */

SCM_CLASS_DECL(Scm_GtkHSeparatorClass);
#define SCM_CLASS_GTK_HSEPARATOR     (&Scm_GtkHSeparatorClass)
#define SCM_GTK_HSEPARATOR_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_HSEPARATOR))
#define SCM_GTK_HSEPARATOR(obj)      SCM_GOBJECT_UNBOX(GTK_HSEPARATOR, obj)
#define SCM_MAKE_GTK_HSEPARATOR(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_HSEPARATOR_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_HSEPARATOR_P(obj))

/* gtkiconfactory.h */

SCM_CLASS_DECL(Scm_GtkIconFactoryClass);
#define SCM_CLASS_GTK_ICON_FACTORY     (&Scm_GtkIconFactoryClass)
#define SCM_GTK_ICON_FACTORY_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_ICON_FACTORY))
#define SCM_GTK_ICON_FACTORY(obj)      SCM_GOBJECT_UNBOX(GTK_ICON_FACTORY, obj)
#define SCM_MAKE_GTK_ICON_FACTORY(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_ICON_FACTORY_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_ICON_FACTORY_P(obj))

/* gtkicontheme.h */

SCM_CLASS_DECL(Scm_GtkIconThemeClass);
#define SCM_CLASS_GTK_ICON_THEME     (&Scm_GtkIconThemeClass)
#define SCM_GTK_ICON_THEME_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_ICON_THEME))
#define SCM_GTK_ICON_THEME(obj)      SCM_GOBJECT_UNBOX(GTK_ICON_THEME, obj)
#define SCM_MAKE_GTK_ICON_THEME(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_ICON_THEME_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_ICON_THEME_P(obj))

/* gtkiconview.h */

SCM_CLASS_DECL(Scm_GtkIconViewClass);
#define SCM_CLASS_GTK_ICON_VIEW     (&Scm_GtkIconViewClass)
#define SCM_GTK_ICON_VIEW_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_ICON_VIEW))
#define SCM_GTK_ICON_VIEW(obj)      SCM_GOBJECT_UNBOX(GTK_ICON_VIEW, obj)
#define SCM_MAKE_GTK_ICON_VIEW(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_ICON_VIEW_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_ICON_VIEW_P(obj))

/* gtkimage.h */

typedef struct ScmGtkImagePixmapDataRec {
    SCM_HEADER;
    GtkImagePixmapData data;
} ScmGtkImagePixmapData;

SCM_CLASS_DECL(Scm_GtkImagePixmapDataClass);
#define SCM_CLASS_GTK_IMAGE_PIXMAP_DATA     (&Scm_GtkImagePixmapDataClass)
#define SCM_GTK_IMAGE_PIXMAP_DATA_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_IMAGE_PIXMAP_DATA)
#define SCM_GTK_IMAGE_PIXMAP_DATA(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkImagePixmapData*)(obj))->data)
#define SCM_MAKE_GTK_IMAGE_PIXMAP_DATA(obj) (Scm_MakeGtkImagePixmapData(obj))
#define SCM_GTK_IMAGE_PIXMAP_DATA_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_IMAGE_PIXMAP_DATA_P(obj))
extern ScmObj Scm_MakeGtkImagePixmapData(GtkImagePixmapData *data);

typedef struct ScmGtkImageImageDataRec {
    SCM_HEADER;
    GtkImageImageData data;
} ScmGtkImageImageData;

SCM_CLASS_DECL(Scm_GtkImageImageDataClass);
#define SCM_CLASS_GTK_IMAGE_IMAGE_DATA     (&Scm_GtkImageImageDataClass)
#define SCM_GTK_IMAGE_IMAGE_DATA_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_IMAGE_IMAGE_DATA)
#define SCM_GTK_IMAGE_IMAGE_DATA(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkImageImageData*)(obj))->data)
#define SCM_MAKE_GTK_IMAGE_IMAGE_DATA(obj) (Scm_MakeGtkImageImageData(obj))
#define SCM_GTK_IMAGE_IMAGE_DATA_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_IMAGE_IMAGE_DATA_P(obj))
extern ScmObj Scm_MakeGtkImageImageData(GtkImageImageData *data);

typedef struct ScmGtkImagePixbufDataRec {
    SCM_HEADER;
    GtkImagePixbufData data;
} ScmGtkImagePixbufData;

SCM_CLASS_DECL(Scm_GtkImagePixbufDataClass);
#define SCM_CLASS_GTK_IMAGE_PIXBUF_DATA     (&Scm_GtkImagePixbufDataClass)
#define SCM_GTK_IMAGE_PIXBUF_DATA_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_IMAGE_PIXBUF_DATA)
#define SCM_GTK_IMAGE_PIXBUF_DATA(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkImagePixbufData*)(obj))->data)
#define SCM_MAKE_GTK_IMAGE_PIXBUF_DATA(obj) (Scm_MakeGtkImagePixbufData(obj))
#define SCM_GTK_IMAGE_PIXBUF_DATA_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_IMAGE_PIXBUF_DATA_P(obj))
extern ScmObj Scm_MakeGtkImagePixbufData(GtkImagePixbufData *data);

typedef struct ScmGtkImageStockDataRec {
    SCM_HEADER;
    GtkImageStockData data;
} ScmGtkImageStockData;

SCM_CLASS_DECL(Scm_GtkImageStockDataClass);
#define SCM_CLASS_GTK_IMAGE_STOCK_DATA     (&Scm_GtkImageStockDataClass)
#define SCM_GTK_IMAGE_STOCK_DATA_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_IMAGE_STOCK_DATA)
#define SCM_GTK_IMAGE_STOCK_DATA(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkImageStockData*)(obj))->data)
#define SCM_MAKE_GTK_IMAGE_STOCK_DATA(obj) (Scm_MakeGtkImageStockData(obj))
#define SCM_GTK_IMAGE_STOCK_DATA_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_IMAGE_STOCK_DATA_P(obj))
extern ScmObj Scm_MakeGtkImageStockData(GtkImageStockData *data);

typedef struct ScmGtkImageIconSetDataRec {
    SCM_HEADER;
    GtkImageIconSetData data;
} ScmGtkImageIconSetData;

SCM_CLASS_DECL(Scm_GtkImageIconSetDataClass);
#define SCM_CLASS_GTK_IMAGE_ICON_SET_DATA     (&Scm_GtkImageIconSetDataClass)
#define SCM_GTK_IMAGE_ICON_SET_DATA_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_IMAGE_ICON_SET_DATA)
#define SCM_GTK_IMAGE_ICON_SET_DATA(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkImageIconSetData*)(obj))->data)
#define SCM_MAKE_GTK_IMAGE_ICON_SET_DATA(obj) (Scm_MakeGtkImageIconSetData(obj))
#define SCM_GTK_IMAGE_ICON_SET_DATA_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_IMAGE_ICON_SET_DATA_P(obj))
extern ScmObj Scm_MakeGtkImageIconSetData(GtkImageIconSetData *data);

typedef struct ScmGtkImageAnimationDataRec {
    SCM_HEADER;
    GtkImageAnimationData data;
} ScmGtkImageAnimationData;

SCM_CLASS_DECL(Scm_GtkImageAnimationDataClass);
#define SCM_CLASS_GTK_IMAGE_ANIMATION_DATA     (&Scm_GtkImageAnimationDataClass)
#define SCM_GTK_IMAGE_ANIMATION_DATA_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_IMAGE_ANIMATION_DATA)
#define SCM_GTK_IMAGE_ANIMATION_DATA(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkImageAnimationData*)(obj))->data)
#define SCM_MAKE_GTK_IMAGE_ANIMATION_DATA(obj) (Scm_MakeGtkImageAnimationData(obj))
#define SCM_GTK_IMAGE_ANIMATION_DATA_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_IMAGE_ANIMATION_DATA_P(obj))
extern ScmObj Scm_MakeGtkImageAnimationData(GtkImageAnimationData *data);

typedef struct ScmGtkImageIconNameDataRec {
    SCM_HEADER;
    GtkImageIconNameData data;
} ScmGtkImageIconNameData;

SCM_CLASS_DECL(Scm_GtkImageIconNameDataClass);
#define SCM_CLASS_GTK_IMAGE_ICON_NAME_DATA     (&Scm_GtkImageIconNameDataClass)
#define SCM_GTK_IMAGE_ICON_NAME_DATA_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_IMAGE_ICON_NAME_DATA)
#define SCM_GTK_IMAGE_ICON_NAME_DATA(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkImageIconNameData*)(obj))->data)
#define SCM_MAKE_GTK_IMAGE_ICON_NAME_DATA(obj) (Scm_MakeGtkImageIconNameData(obj))
#define SCM_GTK_IMAGE_ICON_NAME_DATA_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_IMAGE_ICON_NAME_DATA_P(obj))
extern ScmObj Scm_MakeGtkImageIconNameData(GtkImageIconNameData *data);

typedef struct ScmGtkImageGIconDataRec {
    SCM_HEADER;
    GtkImageGIconData data;
} ScmGtkImageGIconData;

SCM_CLASS_DECL(Scm_GtkImageGIconDataClass);
#define SCM_CLASS_GTK_IMAGE_GICON_DATA     (&Scm_GtkImageGIconDataClass)
#define SCM_GTK_IMAGE_GICON_DATA_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_IMAGE_GICON_DATA)
#define SCM_GTK_IMAGE_GICON_DATA(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkImageGIconData*)(obj))->data)
#define SCM_MAKE_GTK_IMAGE_GICON_DATA(obj) (Scm_MakeGtkImageGIconData(obj))
#define SCM_GTK_IMAGE_GICON_DATA_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_IMAGE_GICON_DATA_P(obj))
extern ScmObj Scm_MakeGtkImageGIconData(GtkImageGIconData *data);

SCM_CLASS_DECL(Scm_GtkImageClass);
#define SCM_CLASS_GTK_IMAGE     (&Scm_GtkImageClass)
#define SCM_GTK_IMAGE_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_IMAGE))
#define SCM_GTK_IMAGE(obj)      SCM_GOBJECT_UNBOX(GTK_IMAGE, obj)
#define SCM_MAKE_GTK_IMAGE(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_IMAGE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_IMAGE_P(obj))

/* gtkimagemenuitem.h */

SCM_CLASS_DECL(Scm_GtkImageMenuItemClass);
#define SCM_CLASS_GTK_IMAGE_MENU_ITEM     (&Scm_GtkImageMenuItemClass)
#define SCM_GTK_IMAGE_MENU_ITEM_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_IMAGE_MENU_ITEM))
#define SCM_GTK_IMAGE_MENU_ITEM(obj)      SCM_GOBJECT_UNBOX(GTK_IMAGE_MENU_ITEM, obj)
#define SCM_MAKE_GTK_IMAGE_MENU_ITEM(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_IMAGE_MENU_ITEM_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_IMAGE_MENU_ITEM_P(obj))

/* gtkimcontext.h */

SCM_CLASS_DECL(Scm_GtkIMContextClass);
#define SCM_CLASS_GTK_IM_CONTEXT     (&Scm_GtkIMContextClass)
#define SCM_GTK_IM_CONTEXT_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_IM_CONTEXT))
#define SCM_GTK_IM_CONTEXT(obj)      SCM_GOBJECT_UNBOX(GTK_IM_CONTEXT, obj)
#define SCM_MAKE_GTK_IM_CONTEXT(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_IM_CONTEXT_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_IM_CONTEXT_P(obj))

/* gtkimcontextsimple.h */

SCM_CLASS_DECL(Scm_GtkIMContextSimpleClass);
#define SCM_CLASS_GTK_IM_CONTEXT_SIMPLE     (&Scm_GtkIMContextSimpleClass)
#define SCM_GTK_IM_CONTEXT_SIMPLE_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_IM_CONTEXT_SIMPLE))
#define SCM_GTK_IM_CONTEXT_SIMPLE(obj)      SCM_GOBJECT_UNBOX(GTK_IM_CONTEXT_SIMPLE, obj)
#define SCM_MAKE_GTK_IM_CONTEXT_SIMPLE(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_IM_CONTEXT_SIMPLE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_IM_CONTEXT_SIMPLE_P(obj))

/* gtkimmulticontext.h */

SCM_CLASS_DECL(Scm_GtkIMMulticontextClass);
#define SCM_CLASS_GTK_IM_MULTICONTEXT     (&Scm_GtkIMMulticontextClass)
#define SCM_GTK_IM_MULTICONTEXT_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_IM_MULTICONTEXT))
#define SCM_GTK_IM_MULTICONTEXT(obj)      SCM_GOBJECT_UNBOX(GTK_IM_MULTICONTEXT, obj)
#define SCM_MAKE_GTK_IM_MULTICONTEXT(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_IM_MULTICONTEXT_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_IM_MULTICONTEXT_P(obj))

/* gtkinputdialog.h */

SCM_CLASS_DECL(Scm_GtkInputDialogClass);
#define SCM_CLASS_GTK_INPUT_DIALOG     (&Scm_GtkInputDialogClass)
#define SCM_GTK_INPUT_DIALOG_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_INPUT_DIALOG))
#define SCM_GTK_INPUT_DIALOG(obj)      SCM_GOBJECT_UNBOX(GTK_INPUT_DIALOG, obj)
#define SCM_MAKE_GTK_INPUT_DIALOG(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_INPUT_DIALOG_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_INPUT_DIALOG_P(obj))

/* gtkinvisible.h */

SCM_CLASS_DECL(Scm_GtkInvisibleClass);
#define SCM_CLASS_GTK_INVISIBLE     (&Scm_GtkInvisibleClass)
#define SCM_GTK_INVISIBLE_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_INVISIBLE))
#define SCM_GTK_INVISIBLE(obj)      SCM_GOBJECT_UNBOX(GTK_INVISIBLE, obj)
#define SCM_MAKE_GTK_INVISIBLE(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_INVISIBLE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_INVISIBLE_P(obj))

/* gtkitem.h */

SCM_CLASS_DECL(Scm_GtkItemClass);
#define SCM_CLASS_GTK_ITEM     (&Scm_GtkItemClass)
#define SCM_GTK_ITEM_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_ITEM))
#define SCM_GTK_ITEM(obj)      SCM_GOBJECT_UNBOX(GTK_ITEM, obj)
#define SCM_MAKE_GTK_ITEM(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_ITEM_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_ITEM_P(obj))

/* gtkitemfactory.h */

SCM_CLASS_DECL(Scm_GtkItemFactoryClass);
#define SCM_CLASS_GTK_ITEM_FACTORY     (&Scm_GtkItemFactoryClass)
#define SCM_GTK_ITEM_FACTORY_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_ITEM_FACTORY))
#define SCM_GTK_ITEM_FACTORY(obj)      SCM_GOBJECT_UNBOX(GTK_ITEM_FACTORY, obj)
#define SCM_MAKE_GTK_ITEM_FACTORY(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_ITEM_FACTORY_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_ITEM_FACTORY_P(obj))

typedef struct ScmGtkItemFactoryEntryRec {
    SCM_HEADER;
    GtkItemFactoryEntry data;
} ScmGtkItemFactoryEntry;

SCM_CLASS_DECL(Scm_GtkItemFactoryEntryClass);
#define SCM_CLASS_GTK_ITEM_FACTORY_ENTRY     (&Scm_GtkItemFactoryEntryClass)
#define SCM_GTK_ITEM_FACTORY_ENTRY_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_ITEM_FACTORY_ENTRY)
#define SCM_GTK_ITEM_FACTORY_ENTRY(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkItemFactoryEntry*)(obj))->data)
#define SCM_MAKE_GTK_ITEM_FACTORY_ENTRY(obj) (Scm_MakeGtkItemFactoryEntry(obj))
#define SCM_GTK_ITEM_FACTORY_ENTRY_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_ITEM_FACTORY_ENTRY_P(obj))
extern ScmObj Scm_MakeGtkItemFactoryEntry(GtkItemFactoryEntry *data);

typedef struct ScmGtkItemFactoryItemRec {
    SCM_HEADER;
    GtkItemFactoryItem data;
} ScmGtkItemFactoryItem;

SCM_CLASS_DECL(Scm_GtkItemFactoryItemClass);
#define SCM_CLASS_GTK_ITEM_FACTORY_ITEM     (&Scm_GtkItemFactoryItemClass)
#define SCM_GTK_ITEM_FACTORY_ITEM_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_ITEM_FACTORY_ITEM)
#define SCM_GTK_ITEM_FACTORY_ITEM(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkItemFactoryItem*)(obj))->data)
#define SCM_MAKE_GTK_ITEM_FACTORY_ITEM(obj) (Scm_MakeGtkItemFactoryItem(obj))
#define SCM_GTK_ITEM_FACTORY_ITEM_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_ITEM_FACTORY_ITEM_P(obj))
extern ScmObj Scm_MakeGtkItemFactoryItem(GtkItemFactoryItem *data);

/* gtklabel.h */

SCM_CLASS_DECL(Scm_GtkLabelClass);
#define SCM_CLASS_GTK_LABEL     (&Scm_GtkLabelClass)
#define SCM_GTK_LABEL_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_LABEL))
#define SCM_GTK_LABEL(obj)      SCM_GOBJECT_UNBOX(GTK_LABEL, obj)
#define SCM_MAKE_GTK_LABEL(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_LABEL_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_LABEL_P(obj))

/* gtklayout.h */

SCM_CLASS_DECL(Scm_GtkLayoutClass);
#define SCM_CLASS_GTK_LAYOUT     (&Scm_GtkLayoutClass)
#define SCM_GTK_LAYOUT_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_LAYOUT))
#define SCM_GTK_LAYOUT(obj)      SCM_GOBJECT_UNBOX(GTK_LAYOUT, obj)
#define SCM_MAKE_GTK_LAYOUT(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_LAYOUT_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_LAYOUT_P(obj))

/* gtklist.h */

SCM_CLASS_DECL(Scm_GtkListClass);
#define SCM_CLASS_GTK_LIST     (&Scm_GtkListClass)
#define SCM_GTK_LIST_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_LIST))
#define SCM_GTK_LIST(obj)      SCM_GOBJECT_UNBOX(GTK_LIST, obj)
#define SCM_MAKE_GTK_LIST(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_LIST_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_LIST_P(obj))

/* gtklistitem.h */

SCM_CLASS_DECL(Scm_GtkListItemClass);
#define SCM_CLASS_GTK_LIST_ITEM     (&Scm_GtkListItemClass)
#define SCM_GTK_LIST_ITEM_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_LIST_ITEM))
#define SCM_GTK_LIST_ITEM(obj)      SCM_GOBJECT_UNBOX(GTK_LIST_ITEM, obj)
#define SCM_MAKE_GTK_LIST_ITEM(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_LIST_ITEM_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_LIST_ITEM_P(obj))

/* gtkliststore.h */

SCM_CLASS_DECL(Scm_GtkListStoreClass);
#define SCM_CLASS_GTK_LIST_STORE     (&Scm_GtkListStoreClass)
#define SCM_GTK_LIST_STORE_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_LIST_STORE))
#define SCM_GTK_LIST_STORE(obj)      SCM_GOBJECT_UNBOX(GTK_LIST_STORE, obj)
#define SCM_MAKE_GTK_LIST_STORE(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_LIST_STORE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_LIST_STORE_P(obj))

/* gtkmain.h */

/* gtkmenu.h */

SCM_CLASS_DECL(Scm_GtkMenuClass);
#define SCM_CLASS_GTK_MENU     (&Scm_GtkMenuClass)
#define SCM_GTK_MENU_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_MENU))
#define SCM_GTK_MENU(obj)      SCM_GOBJECT_UNBOX(GTK_MENU, obj)
#define SCM_MAKE_GTK_MENU(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_MENU_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_MENU_P(obj))

/* gtkmenubar.h */

SCM_CLASS_DECL(Scm_GtkMenuBarClass);
#define SCM_CLASS_GTK_MENU_BAR     (&Scm_GtkMenuBarClass)
#define SCM_GTK_MENU_BAR_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_MENU_BAR))
#define SCM_GTK_MENU_BAR(obj)      SCM_GOBJECT_UNBOX(GTK_MENU_BAR, obj)
#define SCM_MAKE_GTK_MENU_BAR(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_MENU_BAR_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_MENU_BAR_P(obj))

/* gtkmenuitem.h */

SCM_CLASS_DECL(Scm_GtkMenuItemClass);
#define SCM_CLASS_GTK_MENU_ITEM     (&Scm_GtkMenuItemClass)
#define SCM_GTK_MENU_ITEM_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_MENU_ITEM))
#define SCM_GTK_MENU_ITEM(obj)      SCM_GOBJECT_UNBOX(GTK_MENU_ITEM, obj)
#define SCM_MAKE_GTK_MENU_ITEM(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_MENU_ITEM_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_MENU_ITEM_P(obj))

/* gtkmenushell.h */

SCM_CLASS_DECL(Scm_GtkMenuShellClass);
#define SCM_CLASS_GTK_MENU_SHELL     (&Scm_GtkMenuShellClass)
#define SCM_GTK_MENU_SHELL_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_MENU_SHELL))
#define SCM_GTK_MENU_SHELL(obj)      SCM_GOBJECT_UNBOX(GTK_MENU_SHELL, obj)
#define SCM_MAKE_GTK_MENU_SHELL(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_MENU_SHELL_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_MENU_SHELL_P(obj))

/* gtkmenutoolbutton.h */

SCM_CLASS_DECL(Scm_GtkMenuToolButtonClass);
#define SCM_CLASS_GTK_MENU_TOOL_BUTTON     (&Scm_GtkMenuToolButtonClass)
#define SCM_GTK_MENU_TOOL_BUTTON_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_MENU_TOOL_BUTTON))
#define SCM_GTK_MENU_TOOL_BUTTON(obj)      SCM_GOBJECT_UNBOX(GTK_MENU_TOOL_BUTTON, obj)
#define SCM_MAKE_GTK_MENU_TOOL_BUTTON(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_MENU_TOOL_BUTTON_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_MENU_TOOL_BUTTON_P(obj))

/* gtkmessagedialog.h */

SCM_CLASS_DECL(Scm_GtkMessageDialogClass);
#define SCM_CLASS_GTK_MESSAGE_DIALOG     (&Scm_GtkMessageDialogClass)
#define SCM_GTK_MESSAGE_DIALOG_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_MESSAGE_DIALOG))
#define SCM_GTK_MESSAGE_DIALOG(obj)      SCM_GOBJECT_UNBOX(GTK_MESSAGE_DIALOG, obj)
#define SCM_MAKE_GTK_MESSAGE_DIALOG(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_MESSAGE_DIALOG_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_MESSAGE_DIALOG_P(obj))

/* gtkmisc.h */

SCM_CLASS_DECL(Scm_GtkMiscClass);
#define SCM_CLASS_GTK_MISC     (&Scm_GtkMiscClass)
#define SCM_GTK_MISC_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_MISC))
#define SCM_GTK_MISC(obj)      SCM_GOBJECT_UNBOX(GTK_MISC, obj)
#define SCM_MAKE_GTK_MISC(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_MISC_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_MISC_P(obj))

/* gtknotebook.h */

SCM_CLASS_DECL(Scm_GtkNotebookClass);
#define SCM_CLASS_GTK_NOTEBOOK     (&Scm_GtkNotebookClass)
#define SCM_GTK_NOTEBOOK_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_NOTEBOOK))
#define SCM_GTK_NOTEBOOK(obj)      SCM_GOBJECT_UNBOX(GTK_NOTEBOOK, obj)
#define SCM_MAKE_GTK_NOTEBOOK(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_NOTEBOOK_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_NOTEBOOK_P(obj))

/* gtkobject.h */

SCM_CLASS_DECL(Scm_GtkObjectClass);
#define SCM_CLASS_GTK_OBJECT     (&Scm_GtkObjectClass)
#define SCM_GTK_OBJECT_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_OBJECT))
#define SCM_GTK_OBJECT(obj)      SCM_GOBJECT_UNBOX(GTK_OBJECT, obj)
#define SCM_MAKE_GTK_OBJECT(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_OBJECT_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_OBJECT_P(obj))

/* gtkoldeditable.h */

SCM_CLASS_DECL(Scm_GtkOldEditableClass);
#define SCM_CLASS_GTK_OLD_EDITABLE     (&Scm_GtkOldEditableClass)
#define SCM_GTK_OLD_EDITABLE_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_OLD_EDITABLE))
#define SCM_GTK_OLD_EDITABLE(obj)      SCM_GOBJECT_UNBOX(GTK_OLD_EDITABLE, obj)
#define SCM_MAKE_GTK_OLD_EDITABLE(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_OLD_EDITABLE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_OLD_EDITABLE_P(obj))

/* gtkoptionmenu.h */

SCM_CLASS_DECL(Scm_GtkOptionMenuClass);
#define SCM_CLASS_GTK_OPTION_MENU     (&Scm_GtkOptionMenuClass)
#define SCM_GTK_OPTION_MENU_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_OPTION_MENU))
#define SCM_GTK_OPTION_MENU(obj)      SCM_GOBJECT_UNBOX(GTK_OPTION_MENU, obj)
#define SCM_MAKE_GTK_OPTION_MENU(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_OPTION_MENU_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_OPTION_MENU_P(obj))

/* gtkpaned.h */

SCM_CLASS_DECL(Scm_GtkPanedClass);
#define SCM_CLASS_GTK_PANED     (&Scm_GtkPanedClass)
#define SCM_GTK_PANED_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_PANED))
#define SCM_GTK_PANED(obj)      SCM_GOBJECT_UNBOX(GTK_PANED, obj)
#define SCM_MAKE_GTK_PANED(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_PANED_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_PANED_P(obj))

/* gtkpixmap.h */

SCM_CLASS_DECL(Scm_GtkPixmapClass);
#define SCM_CLASS_GTK_PIXMAP     (&Scm_GtkPixmapClass)
#define SCM_GTK_PIXMAP_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_PIXMAP))
#define SCM_GTK_PIXMAP(obj)      SCM_GOBJECT_UNBOX(GTK_PIXMAP, obj)
#define SCM_MAKE_GTK_PIXMAP(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_PIXMAP_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_PIXMAP_P(obj))

/* gtkplug.h */

SCM_CLASS_DECL(Scm_GtkPlugClass);
#define SCM_CLASS_GTK_PLUG     (&Scm_GtkPlugClass)
#define SCM_GTK_PLUG_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_PLUG))
#define SCM_GTK_PLUG(obj)      SCM_GOBJECT_UNBOX(GTK_PLUG, obj)
#define SCM_MAKE_GTK_PLUG(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_PLUG_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_PLUG_P(obj))

/* gtkpreview.h */

SCM_CLASS_DECL(Scm_GtkPreviewClass);
#define SCM_CLASS_GTK_PREVIEW     (&Scm_GtkPreviewClass)
#define SCM_GTK_PREVIEW_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_PREVIEW))
#define SCM_GTK_PREVIEW(obj)      SCM_GOBJECT_UNBOX(GTK_PREVIEW, obj)
#define SCM_MAKE_GTK_PREVIEW(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_PREVIEW_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_PREVIEW_P(obj))

typedef struct ScmGtkPreviewInfoRec {
    SCM_HEADER;
    GtkPreviewInfo data;
} ScmGtkPreviewInfo;

SCM_CLASS_DECL(Scm_GtkPreviewInfoClass);
#define SCM_CLASS_GTK_PREVIEW_INFO     (&Scm_GtkPreviewInfoClass)
#define SCM_GTK_PREVIEW_INFO_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_PREVIEW_INFO)
#define SCM_GTK_PREVIEW_INFO(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkPreviewInfo*)(obj))->data)
#define SCM_MAKE_GTK_PREVIEW_INFO(obj) (Scm_MakeGtkPreviewInfo(obj))
#define SCM_GTK_PREVIEW_INFO_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_PREVIEW_INFO_P(obj))
extern ScmObj Scm_MakeGtkPreviewInfo(GtkPreviewInfo *data);

/* gtkprogress.h */

SCM_CLASS_DECL(Scm_GtkProgressClass);
#define SCM_CLASS_GTK_PROGRESS     (&Scm_GtkProgressClass)
#define SCM_GTK_PROGRESS_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_PROGRESS))
#define SCM_GTK_PROGRESS(obj)      SCM_GOBJECT_UNBOX(GTK_PROGRESS, obj)
#define SCM_MAKE_GTK_PROGRESS(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_PROGRESS_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_PROGRESS_P(obj))

/* gtkprogressbar.h */

SCM_CLASS_DECL(Scm_GtkProgressBarClass);
#define SCM_CLASS_GTK_PROGRESS_BAR     (&Scm_GtkProgressBarClass)
#define SCM_GTK_PROGRESS_BAR_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_PROGRESS_BAR))
#define SCM_GTK_PROGRESS_BAR(obj)      SCM_GOBJECT_UNBOX(GTK_PROGRESS_BAR, obj)
#define SCM_MAKE_GTK_PROGRESS_BAR(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_PROGRESS_BAR_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_PROGRESS_BAR_P(obj))

/* gtkradioaction.h */

SCM_CLASS_DECL(Scm_GtkRadioActionClass);
#define SCM_CLASS_GTK_RADIO_ACTION     (&Scm_GtkRadioActionClass)
#define SCM_GTK_RADIO_ACTION_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_RADIO_ACTION))
#define SCM_GTK_RADIO_ACTION(obj)      SCM_GOBJECT_UNBOX(GTK_RADIO_ACTION, obj)
#define SCM_MAKE_GTK_RADIO_ACTION(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_RADIO_ACTION_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_RADIO_ACTION_P(obj))

/* gtkradiobutton.h */

SCM_CLASS_DECL(Scm_GtkRadioButtonClass);
#define SCM_CLASS_GTK_RADIO_BUTTON     (&Scm_GtkRadioButtonClass)
#define SCM_GTK_RADIO_BUTTON_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_RADIO_BUTTON))
#define SCM_GTK_RADIO_BUTTON(obj)      SCM_GOBJECT_UNBOX(GTK_RADIO_BUTTON, obj)
#define SCM_MAKE_GTK_RADIO_BUTTON(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_RADIO_BUTTON_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_RADIO_BUTTON_P(obj))

/* gtkradiomenuitem.h */

SCM_CLASS_DECL(Scm_GtkRadioMenuItemClass);
#define SCM_CLASS_GTK_RADIO_MENU_ITEM     (&Scm_GtkRadioMenuItemClass)
#define SCM_GTK_RADIO_MENU_ITEM_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_RADIO_MENU_ITEM))
#define SCM_GTK_RADIO_MENU_ITEM(obj)      SCM_GOBJECT_UNBOX(GTK_RADIO_MENU_ITEM, obj)
#define SCM_MAKE_GTK_RADIO_MENU_ITEM(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_RADIO_MENU_ITEM_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_RADIO_MENU_ITEM_P(obj))

/* gtkradiotoolbutton.h */

SCM_CLASS_DECL(Scm_GtkRadioToolButtonClass);
#define SCM_CLASS_GTK_RADIO_TOOL_BUTTON     (&Scm_GtkRadioToolButtonClass)
#define SCM_GTK_RADIO_TOOL_BUTTON_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_RADIO_TOOL_BUTTON))
#define SCM_GTK_RADIO_TOOL_BUTTON(obj)      SCM_GOBJECT_UNBOX(GTK_RADIO_TOOL_BUTTON, obj)
#define SCM_MAKE_GTK_RADIO_TOOL_BUTTON(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_RADIO_TOOL_BUTTON_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_RADIO_TOOL_BUTTON_P(obj))

/* gtkrange.h */

SCM_CLASS_DECL(Scm_GtkRangeClass);
#define SCM_CLASS_GTK_RANGE     (&Scm_GtkRangeClass)
#define SCM_GTK_RANGE_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_RANGE))
#define SCM_GTK_RANGE(obj)      SCM_GOBJECT_UNBOX(GTK_RANGE, obj)
#define SCM_MAKE_GTK_RANGE(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_RANGE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_RANGE_P(obj))

/* gtkrc.h */

SCM_CLASS_DECL(Scm_GtkRcStyleClass);
#define SCM_CLASS_GTK_RC_STYLE     (&Scm_GtkRcStyleClass)
#define SCM_GTK_RC_STYLE_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_RC_STYLE))
#define SCM_GTK_RC_STYLE(obj)      SCM_GOBJECT_UNBOX(GTK_RC_STYLE, obj)
#define SCM_MAKE_GTK_RC_STYLE(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_RC_STYLE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_RC_STYLE_P(obj))

typedef struct ScmGtkRcPropertyRec {
    SCM_HEADER;
    GtkRcProperty data;
} ScmGtkRcProperty;

SCM_CLASS_DECL(Scm_GtkRcPropertyClass);
#define SCM_CLASS_GTK_RC_PROPERTY     (&Scm_GtkRcPropertyClass)
#define SCM_GTK_RC_PROPERTY_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_RC_PROPERTY)
#define SCM_GTK_RC_PROPERTY(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkRcProperty*)(obj))->data)
#define SCM_MAKE_GTK_RC_PROPERTY(obj) (Scm_MakeGtkRcProperty(obj))
#define SCM_GTK_RC_PROPERTY_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_RC_PROPERTY_P(obj))
extern ScmObj Scm_MakeGtkRcProperty(GtkRcProperty *data);

/* gtkruler.h */

SCM_CLASS_DECL(Scm_GtkRulerClass);
#define SCM_CLASS_GTK_RULER     (&Scm_GtkRulerClass)
#define SCM_GTK_RULER_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_RULER))
#define SCM_GTK_RULER(obj)      SCM_GOBJECT_UNBOX(GTK_RULER, obj)
#define SCM_MAKE_GTK_RULER(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_RULER_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_RULER_P(obj))

typedef struct ScmGtkRulerMetricRec {
    SCM_HEADER;
    GtkRulerMetric data;
} ScmGtkRulerMetric;

SCM_CLASS_DECL(Scm_GtkRulerMetricClass);
#define SCM_CLASS_GTK_RULER_METRIC     (&Scm_GtkRulerMetricClass)
#define SCM_GTK_RULER_METRIC_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_RULER_METRIC)
#define SCM_GTK_RULER_METRIC(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkRulerMetric*)(obj))->data)
#define SCM_MAKE_GTK_RULER_METRIC(obj) (Scm_MakeGtkRulerMetric(obj))
#define SCM_GTK_RULER_METRIC_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_RULER_METRIC_P(obj))
extern ScmObj Scm_MakeGtkRulerMetric(GtkRulerMetric *data);

/* gtkscale.h */

SCM_CLASS_DECL(Scm_GtkScaleClass);
#define SCM_CLASS_GTK_SCALE     (&Scm_GtkScaleClass)
#define SCM_GTK_SCALE_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_SCALE))
#define SCM_GTK_SCALE(obj)      SCM_GOBJECT_UNBOX(GTK_SCALE, obj)
#define SCM_MAKE_GTK_SCALE(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_SCALE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_SCALE_P(obj))

/* gtkscrollbar.h */

SCM_CLASS_DECL(Scm_GtkScrollbarClass);
#define SCM_CLASS_GTK_SCROLLBAR     (&Scm_GtkScrollbarClass)
#define SCM_GTK_SCROLLBAR_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_SCROLLBAR))
#define SCM_GTK_SCROLLBAR(obj)      SCM_GOBJECT_UNBOX(GTK_SCROLLBAR, obj)
#define SCM_MAKE_GTK_SCROLLBAR(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_SCROLLBAR_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_SCROLLBAR_P(obj))

/* gtkscrolledwindow.h */

SCM_CLASS_DECL(Scm_GtkScrolledWindowClass);
#define SCM_CLASS_GTK_SCROLLED_WINDOW     (&Scm_GtkScrolledWindowClass)
#define SCM_GTK_SCROLLED_WINDOW_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_SCROLLED_WINDOW))
#define SCM_GTK_SCROLLED_WINDOW(obj)      SCM_GOBJECT_UNBOX(GTK_SCROLLED_WINDOW, obj)
#define SCM_MAKE_GTK_SCROLLED_WINDOW(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_SCROLLED_WINDOW_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_SCROLLED_WINDOW_P(obj))

/* gtkselection.h */

typedef struct ScmGtkSelectionDataRec {
    SCM_HEADER;
    GtkSelectionData data;
} ScmGtkSelectionData;

SCM_CLASS_DECL(Scm_GtkSelectionDataClass);
#define SCM_CLASS_GTK_SELECTION_DATA     (&Scm_GtkSelectionDataClass)
#define SCM_GTK_SELECTION_DATA_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_SELECTION_DATA)
#define SCM_GTK_SELECTION_DATA(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkSelectionData*)(obj))->data)
#define SCM_MAKE_GTK_SELECTION_DATA(obj) (Scm_MakeGtkSelectionData(obj))
#define SCM_GTK_SELECTION_DATA_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_SELECTION_DATA_P(obj))
extern ScmObj Scm_MakeGtkSelectionData(GtkSelectionData *data);

typedef struct ScmGtkTargetEntryRec {
    SCM_HEADER;
    GtkTargetEntry data;
} ScmGtkTargetEntry;

SCM_CLASS_DECL(Scm_GtkTargetEntryClass);
#define SCM_CLASS_GTK_TARGET_ENTRY     (&Scm_GtkTargetEntryClass)
#define SCM_GTK_TARGET_ENTRY_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_TARGET_ENTRY)
#define SCM_GTK_TARGET_ENTRY(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkTargetEntry*)(obj))->data)
#define SCM_MAKE_GTK_TARGET_ENTRY(obj) (Scm_MakeGtkTargetEntry(obj))
#define SCM_GTK_TARGET_ENTRY_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TARGET_ENTRY_P(obj))
extern ScmObj Scm_MakeGtkTargetEntry(GtkTargetEntry *data);

typedef struct ScmGtkTargetListRec {
    SCM_HEADER;
    GtkTargetList *data;
} ScmGtkTargetList;

SCM_CLASS_DECL(Scm_GtkTargetListClass);
#define SCM_CLASS_GTK_TARGET_LIST     (&Scm_GtkTargetListClass)
#define SCM_GTK_TARGET_LIST_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_TARGET_LIST)
#define SCM_GTK_TARGET_LIST(obj)      (SCM_FALSEP(obj)?NULL:((ScmGtkTargetList*)(obj))->data)
#define SCM_MAKE_GTK_TARGET_LIST(obj) (Scm_MakeGtkTargetList(obj))
#define SCM_GTK_TARGET_LIST_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TARGET_LIST_P(obj))
extern ScmObj Scm_MakeGtkTargetList(GtkTargetList *data);

typedef struct ScmGtkTargetPairRec {
    SCM_HEADER;
    GtkTargetPair data;
} ScmGtkTargetPair;

SCM_CLASS_DECL(Scm_GtkTargetPairClass);
#define SCM_CLASS_GTK_TARGET_PAIR     (&Scm_GtkTargetPairClass)
#define SCM_GTK_TARGET_PAIR_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_TARGET_PAIR)
#define SCM_GTK_TARGET_PAIR(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkTargetPair*)(obj))->data)
#define SCM_MAKE_GTK_TARGET_PAIR(obj) (Scm_MakeGtkTargetPair(obj))
#define SCM_GTK_TARGET_PAIR_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TARGET_PAIR_P(obj))
extern ScmObj Scm_MakeGtkTargetPair(GtkTargetPair *data);

/* gtkseparator.h */

SCM_CLASS_DECL(Scm_GtkSeparatorClass);
#define SCM_CLASS_GTK_SEPARATOR     (&Scm_GtkSeparatorClass)
#define SCM_GTK_SEPARATOR_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_SEPARATOR))
#define SCM_GTK_SEPARATOR(obj)      SCM_GOBJECT_UNBOX(GTK_SEPARATOR, obj)
#define SCM_MAKE_GTK_SEPARATOR(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_SEPARATOR_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_SEPARATOR_P(obj))

/* gtkseparatormenuitem.h */

SCM_CLASS_DECL(Scm_GtkSeparatorMenuItemClass);
#define SCM_CLASS_GTK_SEPARATOR_MENU_ITEM     (&Scm_GtkSeparatorMenuItemClass)
#define SCM_GTK_SEPARATOR_MENU_ITEM_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_SEPARATOR_MENU_ITEM))
#define SCM_GTK_SEPARATOR_MENU_ITEM(obj)      SCM_GOBJECT_UNBOX(GTK_SEPARATOR_MENU_ITEM, obj)
#define SCM_MAKE_GTK_SEPARATOR_MENU_ITEM(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_SEPARATOR_MENU_ITEM_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_SEPARATOR_MENU_ITEM_P(obj))

/* gtkseparatortoolitem.h */

SCM_CLASS_DECL(Scm_GtkSeparatorToolItemClass);
#define SCM_CLASS_GTK_SEPARATOR_TOOL_ITEM     (&Scm_GtkSeparatorToolItemClass)
#define SCM_GTK_SEPARATOR_TOOL_ITEM_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_SEPARATOR_TOOL_ITEM))
#define SCM_GTK_SEPARATOR_TOOL_ITEM(obj)      SCM_GOBJECT_UNBOX(GTK_SEPARATOR_TOOL_ITEM, obj)
#define SCM_MAKE_GTK_SEPARATOR_TOOL_ITEM(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_SEPARATOR_TOOL_ITEM_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_SEPARATOR_TOOL_ITEM_P(obj))

/* gtksettings.h */

SCM_CLASS_DECL(Scm_GtkSettingsClass);
#define SCM_CLASS_GTK_SETTINGS     (&Scm_GtkSettingsClass)
#define SCM_GTK_SETTINGS_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_SETTINGS))
#define SCM_GTK_SETTINGS(obj)      SCM_GOBJECT_UNBOX(GTK_SETTINGS, obj)
#define SCM_MAKE_GTK_SETTINGS(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_SETTINGS_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_SETTINGS_P(obj))

typedef struct ScmGtkSettingsValueRec {
    SCM_HEADER;
    GtkSettingsValue data;
} ScmGtkSettingsValue;

SCM_CLASS_DECL(Scm_GtkSettingsValueClass);
#define SCM_CLASS_GTK_SETTINGS_VALUE     (&Scm_GtkSettingsValueClass)
#define SCM_GTK_SETTINGS_VALUE_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_SETTINGS_VALUE)
#define SCM_GTK_SETTINGS_VALUE(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkSettingsValue*)(obj))->data)
#define SCM_MAKE_GTK_SETTINGS_VALUE(obj) (Scm_MakeGtkSettingsValue(obj))
#define SCM_GTK_SETTINGS_VALUE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_SETTINGS_VALUE_P(obj))
extern ScmObj Scm_MakeGtkSettingsValue(GtkSettingsValue *data);

/* gtksignal.h */

/* gtksizegroup.h */

SCM_CLASS_DECL(Scm_GtkSizeGroupClass);
#define SCM_CLASS_GTK_SIZE_GROUP     (&Scm_GtkSizeGroupClass)
#define SCM_GTK_SIZE_GROUP_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_SIZE_GROUP))
#define SCM_GTK_SIZE_GROUP(obj)      SCM_GOBJECT_UNBOX(GTK_SIZE_GROUP, obj)
#define SCM_MAKE_GTK_SIZE_GROUP(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_SIZE_GROUP_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_SIZE_GROUP_P(obj))

/* gtksocket.h */

SCM_CLASS_DECL(Scm_GtkSocketClass);
#define SCM_CLASS_GTK_SOCKET     (&Scm_GtkSocketClass)
#define SCM_GTK_SOCKET_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_SOCKET))
#define SCM_GTK_SOCKET(obj)      SCM_GOBJECT_UNBOX(GTK_SOCKET, obj)
#define SCM_MAKE_GTK_SOCKET(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_SOCKET_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_SOCKET_P(obj))

/* gtkspinbutton.h */

SCM_CLASS_DECL(Scm_GtkSpinButtonClass);
#define SCM_CLASS_GTK_SPIN_BUTTON     (&Scm_GtkSpinButtonClass)
#define SCM_GTK_SPIN_BUTTON_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_SPIN_BUTTON))
#define SCM_GTK_SPIN_BUTTON(obj)      SCM_GOBJECT_UNBOX(GTK_SPIN_BUTTON, obj)
#define SCM_MAKE_GTK_SPIN_BUTTON(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_SPIN_BUTTON_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_SPIN_BUTTON_P(obj))

/* gtkstatusbar.h */

SCM_CLASS_DECL(Scm_GtkStatusbarClass);
#define SCM_CLASS_GTK_STATUSBAR     (&Scm_GtkStatusbarClass)
#define SCM_GTK_STATUSBAR_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_STATUSBAR))
#define SCM_GTK_STATUSBAR(obj)      SCM_GOBJECT_UNBOX(GTK_STATUSBAR, obj)
#define SCM_MAKE_GTK_STATUSBAR(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_STATUSBAR_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_STATUSBAR_P(obj))

/* gtkstock.h */

typedef struct ScmGtkStockItemRec {
    SCM_HEADER;
    GtkStockItem data;
} ScmGtkStockItem;

SCM_CLASS_DECL(Scm_GtkStockItemClass);
#define SCM_CLASS_GTK_STOCK_ITEM     (&Scm_GtkStockItemClass)
#define SCM_GTK_STOCK_ITEM_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_STOCK_ITEM)
#define SCM_GTK_STOCK_ITEM(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkStockItem*)(obj))->data)
#define SCM_MAKE_GTK_STOCK_ITEM(obj) (Scm_MakeGtkStockItem(obj))
#define SCM_GTK_STOCK_ITEM_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_STOCK_ITEM_P(obj))
extern ScmObj Scm_MakeGtkStockItem(GtkStockItem *data);

/* gtkstyle.h */

SCM_CLASS_DECL(Scm_GtkStyleClass);
#define SCM_CLASS_GTK_STYLE     (&Scm_GtkStyleClass)
#define SCM_GTK_STYLE_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_STYLE))
#define SCM_GTK_STYLE(obj)      SCM_GOBJECT_UNBOX(GTK_STYLE, obj)
#define SCM_MAKE_GTK_STYLE(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_STYLE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_STYLE_P(obj))

typedef struct ScmGtkBorderRec {
    SCM_HEADER;
    GtkBorder data;
} ScmGtkBorder;

SCM_CLASS_DECL(Scm_GtkBorderClass);
#define SCM_CLASS_GTK_BORDER     (&Scm_GtkBorderClass)
#define SCM_GTK_BORDER_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_BORDER)
#define SCM_GTK_BORDER(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkBorder*)(obj))->data)
#define SCM_MAKE_GTK_BORDER(obj) (Scm_MakeGtkBorder(obj))
#define SCM_GTK_BORDER_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_BORDER_P(obj))
extern ScmObj Scm_MakeGtkBorder(GtkBorder *data);

/* gtktable.h */

SCM_CLASS_DECL(Scm_GtkTableClass);
#define SCM_CLASS_GTK_TABLE     (&Scm_GtkTableClass)
#define SCM_GTK_TABLE_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_TABLE))
#define SCM_GTK_TABLE(obj)      SCM_GOBJECT_UNBOX(GTK_TABLE, obj)
#define SCM_MAKE_GTK_TABLE(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_TABLE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TABLE_P(obj))

typedef struct ScmGtkTableChildRec {
    SCM_HEADER;
    GtkTableChild data;
} ScmGtkTableChild;

SCM_CLASS_DECL(Scm_GtkTableChildClass);
#define SCM_CLASS_GTK_TABLE_CHILD     (&Scm_GtkTableChildClass)
#define SCM_GTK_TABLE_CHILD_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_TABLE_CHILD)
#define SCM_GTK_TABLE_CHILD(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkTableChild*)(obj))->data)
#define SCM_MAKE_GTK_TABLE_CHILD(obj) (Scm_MakeGtkTableChild(obj))
#define SCM_GTK_TABLE_CHILD_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TABLE_CHILD_P(obj))
extern ScmObj Scm_MakeGtkTableChild(GtkTableChild *data);

typedef struct ScmGtkTableRowColRec {
    SCM_HEADER;
    GtkTableRowCol data;
} ScmGtkTableRowCol;

SCM_CLASS_DECL(Scm_GtkTableRowColClass);
#define SCM_CLASS_GTK_TABLE_ROW_COL     (&Scm_GtkTableRowColClass)
#define SCM_GTK_TABLE_ROW_COL_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_TABLE_ROW_COL)
#define SCM_GTK_TABLE_ROW_COL(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkTableRowCol*)(obj))->data)
#define SCM_MAKE_GTK_TABLE_ROW_COL(obj) (Scm_MakeGtkTableRowCol(obj))
#define SCM_GTK_TABLE_ROW_COL_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TABLE_ROW_COL_P(obj))
extern ScmObj Scm_MakeGtkTableRowCol(GtkTableRowCol *data);

/* gtktearoffmenuitem.h */

SCM_CLASS_DECL(Scm_GtkTearoffMenuItemClass);
#define SCM_CLASS_GTK_TEAROFF_MENU_ITEM     (&Scm_GtkTearoffMenuItemClass)
#define SCM_GTK_TEAROFF_MENU_ITEM_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_TEAROFF_MENU_ITEM))
#define SCM_GTK_TEAROFF_MENU_ITEM(obj)      SCM_GOBJECT_UNBOX(GTK_TEAROFF_MENU_ITEM, obj)
#define SCM_MAKE_GTK_TEAROFF_MENU_ITEM(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_TEAROFF_MENU_ITEM_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TEAROFF_MENU_ITEM_P(obj))

/* gtktextmark.h */

SCM_CLASS_DECL(Scm_GtkTextMarkClass);
#define SCM_CLASS_GTK_TEXT_MARK     (&Scm_GtkTextMarkClass)
#define SCM_GTK_TEXT_MARK_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_TEXT_MARK))
#define SCM_GTK_TEXT_MARK(obj)      SCM_GOBJECT_UNBOX(GTK_TEXT_MARK, obj)
#define SCM_MAKE_GTK_TEXT_MARK(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_TEXT_MARK_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TEXT_MARK_P(obj))

/* gtktextbuffer.h */

SCM_CLASS_DECL(Scm_GtkTextBufferClass);
#define SCM_CLASS_GTK_TEXT_BUFFER     (&Scm_GtkTextBufferClass)
#define SCM_GTK_TEXT_BUFFER_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_TEXT_BUFFER))
#define SCM_GTK_TEXT_BUFFER(obj)      SCM_GOBJECT_UNBOX(GTK_TEXT_BUFFER, obj)
#define SCM_MAKE_GTK_TEXT_BUFFER(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_TEXT_BUFFER_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TEXT_BUFFER_P(obj))

/* gtktextview.h */

SCM_CLASS_DECL(Scm_GtkTextViewClass);
#define SCM_CLASS_GTK_TEXT_VIEW     (&Scm_GtkTextViewClass)
#define SCM_GTK_TEXT_VIEW_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_TEXT_VIEW))
#define SCM_GTK_TEXT_VIEW(obj)      SCM_GOBJECT_UNBOX(GTK_TEXT_VIEW, obj)
#define SCM_MAKE_GTK_TEXT_VIEW(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_TEXT_VIEW_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TEXT_VIEW_P(obj))

/* gtktextchild.h */

SCM_CLASS_DECL(Scm_GtkTextChildAnchorClass);
#define SCM_CLASS_GTK_TEXT_CHILD_ANCHOR     (&Scm_GtkTextChildAnchorClass)
#define SCM_GTK_TEXT_CHILD_ANCHOR_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_TEXT_CHILD_ANCHOR))
#define SCM_GTK_TEXT_CHILD_ANCHOR(obj)      SCM_GOBJECT_UNBOX(GTK_TEXT_CHILD_ANCHOR, obj)
#define SCM_MAKE_GTK_TEXT_CHILD_ANCHOR(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_TEXT_CHILD_ANCHOR_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TEXT_CHILD_ANCHOR_P(obj))

/* gtktexttag.h */

SCM_CLASS_DECL(Scm_GtkTextTagClass);
#define SCM_CLASS_GTK_TEXT_TAG     (&Scm_GtkTextTagClass)
#define SCM_GTK_TEXT_TAG_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_TEXT_TAG))
#define SCM_GTK_TEXT_TAG(obj)      SCM_GOBJECT_UNBOX(GTK_TEXT_TAG, obj)
#define SCM_MAKE_GTK_TEXT_TAG(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_TEXT_TAG_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TEXT_TAG_P(obj))

typedef struct ScmGtkTextAppearanceRec {
    SCM_HEADER;
    GtkTextAppearance data;
} ScmGtkTextAppearance;

SCM_CLASS_DECL(Scm_GtkTextAppearanceClass);
#define SCM_CLASS_GTK_TEXT_APPEARANCE     (&Scm_GtkTextAppearanceClass)
#define SCM_GTK_TEXT_APPEARANCE_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_TEXT_APPEARANCE)
#define SCM_GTK_TEXT_APPEARANCE(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkTextAppearance*)(obj))->data)
#define SCM_MAKE_GTK_TEXT_APPEARANCE(obj) (Scm_MakeGtkTextAppearance(obj))
#define SCM_GTK_TEXT_APPEARANCE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TEXT_APPEARANCE_P(obj))
extern ScmObj Scm_MakeGtkTextAppearance(GtkTextAppearance *data);

typedef struct ScmGtkTextAttributesRec {
    SCM_HEADER;
    GtkTextAttributes data;
} ScmGtkTextAttributes;

SCM_CLASS_DECL(Scm_GtkTextAttributesClass);
#define SCM_CLASS_GTK_TEXT_ATTRIBUTES     (&Scm_GtkTextAttributesClass)
#define SCM_GTK_TEXT_ATTRIBUTES_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_TEXT_ATTRIBUTES)
#define SCM_GTK_TEXT_ATTRIBUTES(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkTextAttributes*)(obj))->data)
#define SCM_MAKE_GTK_TEXT_ATTRIBUTES(obj) (Scm_MakeGtkTextAttributes(obj))
#define SCM_GTK_TEXT_ATTRIBUTES_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TEXT_ATTRIBUTES_P(obj))
extern ScmObj Scm_MakeGtkTextAttributes(GtkTextAttributes *data);

/* gtktextiter.h */

typedef struct ScmGtkTextIterRec {
    SCM_HEADER;
    GtkTextIter data;
} ScmGtkTextIter;

SCM_CLASS_DECL(Scm_GtkTextIterClass);
#define SCM_CLASS_GTK_TEXT_ITER     (&Scm_GtkTextIterClass)
#define SCM_GTK_TEXT_ITER_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_TEXT_ITER)
#define SCM_GTK_TEXT_ITER(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkTextIter*)(obj))->data)
#define SCM_MAKE_GTK_TEXT_ITER(obj) (Scm_MakeGtkTextIter(obj))
#define SCM_GTK_TEXT_ITER_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TEXT_ITER_P(obj))
extern ScmObj Scm_MakeGtkTextIter(GtkTextIter *data);

/* gtktexttagtable.h */

SCM_CLASS_DECL(Scm_GtkTextTagTableClass);
#define SCM_CLASS_GTK_TEXT_TAG_TABLE     (&Scm_GtkTextTagTableClass)
#define SCM_GTK_TEXT_TAG_TABLE_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_TEXT_TAG_TABLE))
#define SCM_GTK_TEXT_TAG_TABLE(obj)      SCM_GOBJECT_UNBOX(GTK_TEXT_TAG_TABLE, obj)
#define SCM_MAKE_GTK_TEXT_TAG_TABLE(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_TEXT_TAG_TABLE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TEXT_TAG_TABLE_P(obj))

/* gtktipsquery.h */

/* gtktoggleaction.h */

SCM_CLASS_DECL(Scm_GtkToggleActionClass);
#define SCM_CLASS_GTK_TOGGLE_ACTION     (&Scm_GtkToggleActionClass)
#define SCM_GTK_TOGGLE_ACTION_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_TOGGLE_ACTION))
#define SCM_GTK_TOGGLE_ACTION(obj)      SCM_GOBJECT_UNBOX(GTK_TOGGLE_ACTION, obj)
#define SCM_MAKE_GTK_TOGGLE_ACTION(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_TOGGLE_ACTION_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TOGGLE_ACTION_P(obj))

/* gtktogglebutton.h */

SCM_CLASS_DECL(Scm_GtkToggleButtonClass);
#define SCM_CLASS_GTK_TOGGLE_BUTTON     (&Scm_GtkToggleButtonClass)
#define SCM_GTK_TOGGLE_BUTTON_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_TOGGLE_BUTTON))
#define SCM_GTK_TOGGLE_BUTTON(obj)      SCM_GOBJECT_UNBOX(GTK_TOGGLE_BUTTON, obj)
#define SCM_MAKE_GTK_TOGGLE_BUTTON(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_TOGGLE_BUTTON_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TOGGLE_BUTTON_P(obj))

/* gtktoggletoolbutton.h */

SCM_CLASS_DECL(Scm_GtkToggleToolButtonClass);
#define SCM_CLASS_GTK_TOGGLE_TOOL_BUTTON     (&Scm_GtkToggleToolButtonClass)
#define SCM_GTK_TOGGLE_TOOL_BUTTON_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_TOGGLE_TOOL_BUTTON))
#define SCM_GTK_TOGGLE_TOOL_BUTTON(obj)      SCM_GOBJECT_UNBOX(GTK_TOGGLE_TOOL_BUTTON, obj)
#define SCM_MAKE_GTK_TOGGLE_TOOL_BUTTON(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_TOGGLE_TOOL_BUTTON_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TOGGLE_TOOL_BUTTON_P(obj))

/* gtktoolbar.h */

typedef struct ScmGtkToolbarChildRec {
    SCM_HEADER;
    GtkToolbarChild data;
} ScmGtkToolbarChild;

SCM_CLASS_DECL(Scm_GtkToolbarChildClass);
#define SCM_CLASS_GTK_TOOLBAR_CHILD     (&Scm_GtkToolbarChildClass)
#define SCM_GTK_TOOLBAR_CHILD_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_TOOLBAR_CHILD)
#define SCM_GTK_TOOLBAR_CHILD(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkToolbarChild*)(obj))->data)
#define SCM_MAKE_GTK_TOOLBAR_CHILD(obj) (Scm_MakeGtkToolbarChild(obj))
#define SCM_GTK_TOOLBAR_CHILD_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TOOLBAR_CHILD_P(obj))
extern ScmObj Scm_MakeGtkToolbarChild(GtkToolbarChild *data);

SCM_CLASS_DECL(Scm_GtkToolbarClass);
#define SCM_CLASS_GTK_TOOLBAR     (&Scm_GtkToolbarClass)
#define SCM_GTK_TOOLBAR_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_TOOLBAR))
#define SCM_GTK_TOOLBAR(obj)      SCM_GOBJECT_UNBOX(GTK_TOOLBAR, obj)
#define SCM_MAKE_GTK_TOOLBAR(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_TOOLBAR_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TOOLBAR_P(obj))

/* gtktoolbutton.h */

SCM_CLASS_DECL(Scm_GtkToolButtonClass);
#define SCM_CLASS_GTK_TOOL_BUTTON     (&Scm_GtkToolButtonClass)
#define SCM_GTK_TOOL_BUTTON_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_TOOL_BUTTON))
#define SCM_GTK_TOOL_BUTTON(obj)      SCM_GOBJECT_UNBOX(GTK_TOOL_BUTTON, obj)
#define SCM_MAKE_GTK_TOOL_BUTTON(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_TOOL_BUTTON_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TOOL_BUTTON_P(obj))

/* gtktoolitem.h */

SCM_CLASS_DECL(Scm_GtkToolItemClass);
#define SCM_CLASS_GTK_TOOL_ITEM     (&Scm_GtkToolItemClass)
#define SCM_GTK_TOOL_ITEM_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_TOOL_ITEM))
#define SCM_GTK_TOOL_ITEM(obj)      SCM_GOBJECT_UNBOX(GTK_TOOL_ITEM, obj)
#define SCM_MAKE_GTK_TOOL_ITEM(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_TOOL_ITEM_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TOOL_ITEM_P(obj))

/* gtktooltips.h */

typedef struct ScmGtkTooltipsDataRec {
    SCM_HEADER;
    GtkTooltipsData data;
} ScmGtkTooltipsData;

SCM_CLASS_DECL(Scm_GtkTooltipsDataClass);
#define SCM_CLASS_GTK_TOOLTIPS_DATA     (&Scm_GtkTooltipsDataClass)
#define SCM_GTK_TOOLTIPS_DATA_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_TOOLTIPS_DATA)
#define SCM_GTK_TOOLTIPS_DATA(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkTooltipsData*)(obj))->data)
#define SCM_MAKE_GTK_TOOLTIPS_DATA(obj) (Scm_MakeGtkTooltipsData(obj))
#define SCM_GTK_TOOLTIPS_DATA_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TOOLTIPS_DATA_P(obj))
extern ScmObj Scm_MakeGtkTooltipsData(GtkTooltipsData *data);

SCM_CLASS_DECL(Scm_GtkTooltipsClass);
#define SCM_CLASS_GTK_TOOLTIPS     (&Scm_GtkTooltipsClass)
#define SCM_GTK_TOOLTIPS_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_TOOLTIPS))
#define SCM_GTK_TOOLTIPS(obj)      SCM_GOBJECT_UNBOX(GTK_TOOLTIPS, obj)
#define SCM_MAKE_GTK_TOOLTIPS(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_TOOLTIPS_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TOOLTIPS_P(obj))

/* gtktreednd.h */

typedef struct ScmGtkTreeDragSourceIfaceRec {
    SCM_HEADER;
    GtkTreeDragSourceIface data;
} ScmGtkTreeDragSourceIface;

SCM_CLASS_DECL(Scm_GtkTreeDragSourceIfaceClass);
#define SCM_CLASS_GTK_TREE_DRAG_SOURCE_IFACE     (&Scm_GtkTreeDragSourceIfaceClass)
#define SCM_GTK_TREE_DRAG_SOURCE_IFACE_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_TREE_DRAG_SOURCE_IFACE)
#define SCM_GTK_TREE_DRAG_SOURCE_IFACE(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkTreeDragSourceIface*)(obj))->data)
#define SCM_MAKE_GTK_TREE_DRAG_SOURCE_IFACE(obj) (Scm_MakeGtkTreeDragSourceIface(obj))
#define SCM_GTK_TREE_DRAG_SOURCE_IFACE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TREE_DRAG_SOURCE_IFACE_P(obj))
extern ScmObj Scm_MakeGtkTreeDragSourceIface(GtkTreeDragSourceIface *data);

typedef struct ScmGtkTreeDragDestIfaceRec {
    SCM_HEADER;
    GtkTreeDragDestIface data;
} ScmGtkTreeDragDestIface;

SCM_CLASS_DECL(Scm_GtkTreeDragDestIfaceClass);
#define SCM_CLASS_GTK_TREE_DRAG_DEST_IFACE     (&Scm_GtkTreeDragDestIfaceClass)
#define SCM_GTK_TREE_DRAG_DEST_IFACE_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_TREE_DRAG_DEST_IFACE)
#define SCM_GTK_TREE_DRAG_DEST_IFACE(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkTreeDragDestIface*)(obj))->data)
#define SCM_MAKE_GTK_TREE_DRAG_DEST_IFACE(obj) (Scm_MakeGtkTreeDragDestIface(obj))
#define SCM_GTK_TREE_DRAG_DEST_IFACE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TREE_DRAG_DEST_IFACE_P(obj))
extern ScmObj Scm_MakeGtkTreeDragDestIface(GtkTreeDragDestIface *data);

SCM_CLASS_DECL(Scm_GtkTreeDragSourceClass);
#define SCM_CLASS_GTK_TREE_DRAG_SOURCE     (&Scm_GtkTreeDragSourceClass)
#define SCM_GTK_TREE_DRAG_SOURCE_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_TREE_DRAG_SOURCE))
#define SCM_GTK_TREE_DRAG_SOURCE(obj)      SCM_GOBJECT_UNBOX(GTK_TREE_DRAG_SOURCE, obj)
#define SCM_MAKE_GTK_TREE_DRAG_SOURCE(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_TREE_DRAG_SOURCE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TREE_DRAG_SOURCE_P(obj))

SCM_CLASS_DECL(Scm_GtkTreeDragDestClass);
#define SCM_CLASS_GTK_TREE_DRAG_DEST     (&Scm_GtkTreeDragDestClass)
#define SCM_GTK_TREE_DRAG_DEST_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_TREE_DRAG_DEST))
#define SCM_GTK_TREE_DRAG_DEST(obj)      SCM_GOBJECT_UNBOX(GTK_TREE_DRAG_DEST, obj)
#define SCM_MAKE_GTK_TREE_DRAG_DEST(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_TREE_DRAG_DEST_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TREE_DRAG_DEST_P(obj))

/* gtktreemodel.h */

typedef struct ScmGtkTreeIterRec {
    SCM_HEADER;
    GtkTreeIter data;
} ScmGtkTreeIter;

SCM_CLASS_DECL(Scm_GtkTreeIterClass);
#define SCM_CLASS_GTK_TREE_ITER     (&Scm_GtkTreeIterClass)
#define SCM_GTK_TREE_ITER_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_TREE_ITER)
#define SCM_GTK_TREE_ITER(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkTreeIter*)(obj))->data)
#define SCM_MAKE_GTK_TREE_ITER(obj) (Scm_MakeGtkTreeIter(obj))
#define SCM_GTK_TREE_ITER_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TREE_ITER_P(obj))
extern ScmObj Scm_MakeGtkTreeIter(GtkTreeIter *data);

typedef struct ScmGtkTreeModelIfaceRec {
    SCM_HEADER;
    GtkTreeModelIface data;
} ScmGtkTreeModelIface;

SCM_CLASS_DECL(Scm_GtkTreeModelIfaceClass);
#define SCM_CLASS_GTK_TREE_MODEL_IFACE     (&Scm_GtkTreeModelIfaceClass)
#define SCM_GTK_TREE_MODEL_IFACE_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_TREE_MODEL_IFACE)
#define SCM_GTK_TREE_MODEL_IFACE(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkTreeModelIface*)(obj))->data)
#define SCM_MAKE_GTK_TREE_MODEL_IFACE(obj) (Scm_MakeGtkTreeModelIface(obj))
#define SCM_GTK_TREE_MODEL_IFACE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TREE_MODEL_IFACE_P(obj))
extern ScmObj Scm_MakeGtkTreeModelIface(GtkTreeModelIface *data);

SCM_CLASS_DECL(Scm_GtkTreeModelClass);
#define SCM_CLASS_GTK_TREE_MODEL     (&Scm_GtkTreeModelClass)
#define SCM_GTK_TREE_MODEL_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_TREE_MODEL))
#define SCM_GTK_TREE_MODEL(obj)      SCM_GOBJECT_UNBOX(GTK_TREE_MODEL, obj)
#define SCM_MAKE_GTK_TREE_MODEL(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_TREE_MODEL_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TREE_MODEL_P(obj))

typedef struct ScmGtkTreePathRec {
    SCM_HEADER;
    GtkTreePath *data;
} ScmGtkTreePath;

SCM_CLASS_DECL(Scm_GtkTreePathClass);
#define SCM_CLASS_GTK_TREE_PATH     (&Scm_GtkTreePathClass)
#define SCM_GTK_TREE_PATH_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_TREE_PATH)
#define SCM_GTK_TREE_PATH(obj)      (SCM_FALSEP(obj)?NULL:((ScmGtkTreePath*)(obj))->data)
#define SCM_MAKE_GTK_TREE_PATH(obj) (Scm_MakeGtkTreePath(obj))
#define SCM_GTK_TREE_PATH_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TREE_PATH_P(obj))
extern ScmObj Scm_MakeGtkTreePath(GtkTreePath *data);

typedef struct ScmGtkTreeRowReferenceRec {
    SCM_HEADER;
    GtkTreeRowReference *data;
} ScmGtkTreeRowReference;

SCM_CLASS_DECL(Scm_GtkTreeRowReferenceClass);
#define SCM_CLASS_GTK_TREE_ROW_REFERENCE     (&Scm_GtkTreeRowReferenceClass)
#define SCM_GTK_TREE_ROW_REFERENCE_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_TREE_ROW_REFERENCE)
#define SCM_GTK_TREE_ROW_REFERENCE(obj)      (SCM_FALSEP(obj)?NULL:((ScmGtkTreeRowReference*)(obj))->data)
#define SCM_MAKE_GTK_TREE_ROW_REFERENCE(obj) (Scm_MakeGtkTreeRowReference(obj))
#define SCM_GTK_TREE_ROW_REFERENCE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TREE_ROW_REFERENCE_P(obj))
extern ScmObj Scm_MakeGtkTreeRowReference(GtkTreeRowReference *data);

/* gtktreemodelfilter.h */

SCM_CLASS_DECL(Scm_GtkTreeModelFilterClass);
#define SCM_CLASS_GTK_TREE_MODEL_FILTER     (&Scm_GtkTreeModelFilterClass)
#define SCM_GTK_TREE_MODEL_FILTER_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_TREE_MODEL_FILTER))
#define SCM_GTK_TREE_MODEL_FILTER(obj)      SCM_GOBJECT_UNBOX(GTK_TREE_MODEL_FILTER, obj)
#define SCM_MAKE_GTK_TREE_MODEL_FILTER(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_TREE_MODEL_FILTER_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TREE_MODEL_FILTER_P(obj))

/* gtktreemodelsort.h */

SCM_CLASS_DECL(Scm_GtkTreeModelSortClass);
#define SCM_CLASS_GTK_TREE_MODEL_SORT     (&Scm_GtkTreeModelSortClass)
#define SCM_GTK_TREE_MODEL_SORT_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_TREE_MODEL_SORT))
#define SCM_GTK_TREE_MODEL_SORT(obj)      SCM_GOBJECT_UNBOX(GTK_TREE_MODEL_SORT, obj)
#define SCM_MAKE_GTK_TREE_MODEL_SORT(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_TREE_MODEL_SORT_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TREE_MODEL_SORT_P(obj))

/* gtktreeselection.h */

SCM_CLASS_DECL(Scm_GtkTreeSelectionClass);
#define SCM_CLASS_GTK_TREE_SELECTION     (&Scm_GtkTreeSelectionClass)
#define SCM_GTK_TREE_SELECTION_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_TREE_SELECTION))
#define SCM_GTK_TREE_SELECTION(obj)      SCM_GOBJECT_UNBOX(GTK_TREE_SELECTION, obj)
#define SCM_MAKE_GTK_TREE_SELECTION(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_TREE_SELECTION_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TREE_SELECTION_P(obj))

/* gtktreestore.h */

SCM_CLASS_DECL(Scm_GtkTreeStoreClass);
#define SCM_CLASS_GTK_TREE_STORE     (&Scm_GtkTreeStoreClass)
#define SCM_GTK_TREE_STORE_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_TREE_STORE))
#define SCM_GTK_TREE_STORE(obj)      SCM_GOBJECT_UNBOX(GTK_TREE_STORE, obj)
#define SCM_MAKE_GTK_TREE_STORE(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_TREE_STORE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TREE_STORE_P(obj))

/* gtktreeview.h */

SCM_CLASS_DECL(Scm_GtkTreeViewClass);
#define SCM_CLASS_GTK_TREE_VIEW     (&Scm_GtkTreeViewClass)
#define SCM_GTK_TREE_VIEW_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_TREE_VIEW))
#define SCM_GTK_TREE_VIEW(obj)      SCM_GOBJECT_UNBOX(GTK_TREE_VIEW, obj)
#define SCM_MAKE_GTK_TREE_VIEW(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_TREE_VIEW_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TREE_VIEW_P(obj))

/* gtktreeviewcolumn.h */

SCM_CLASS_DECL(Scm_GtkTreeViewColumnClass);
#define SCM_CLASS_GTK_TREE_VIEW_COLUMN     (&Scm_GtkTreeViewColumnClass)
#define SCM_GTK_TREE_VIEW_COLUMN_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_TREE_VIEW_COLUMN))
#define SCM_GTK_TREE_VIEW_COLUMN(obj)      SCM_GOBJECT_UNBOX(GTK_TREE_VIEW_COLUMN, obj)
#define SCM_MAKE_GTK_TREE_VIEW_COLUMN(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_TREE_VIEW_COLUMN_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TREE_VIEW_COLUMN_P(obj))

/* gtktypeutils.h */

typedef struct ScmGtkArgRec {
    SCM_HEADER;
    GtkArg data;
} ScmGtkArg;

SCM_CLASS_DECL(Scm_GtkArgClass);
#define SCM_CLASS_GTK_ARG     (&Scm_GtkArgClass)
#define SCM_GTK_ARG_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_ARG)
#define SCM_GTK_ARG(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkArg*)(obj))->data)
#define SCM_MAKE_GTK_ARG(obj) (Scm_MakeGtkArg(obj))
#define SCM_GTK_ARG_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_ARG_P(obj))
extern ScmObj Scm_MakeGtkArg(GtkArg *data);

typedef struct ScmGtkTypeInfoRec {
    SCM_HEADER;
    GtkTypeInfo data;
} ScmGtkTypeInfo;

SCM_CLASS_DECL(Scm_GtkTypeInfoClass);
#define SCM_CLASS_GTK_TYPE_INFO     (&Scm_GtkTypeInfoClass)
#define SCM_GTK_TYPE_INFO_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_TYPE_INFO)
#define SCM_GTK_TYPE_INFO(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkTypeInfo*)(obj))->data)
#define SCM_MAKE_GTK_TYPE_INFO(obj) (Scm_MakeGtkTypeInfo(obj))
#define SCM_GTK_TYPE_INFO_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TYPE_INFO_P(obj))
extern ScmObj Scm_MakeGtkTypeInfo(GtkTypeInfo *data);

/* gtkuimanager.h */

SCM_CLASS_DECL(Scm_GtkUIManagerClass);
#define SCM_CLASS_GTK_UI_MANAGER     (&Scm_GtkUIManagerClass)
#define SCM_GTK_UI_MANAGER_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_UI_MANAGER))
#define SCM_GTK_UI_MANAGER(obj)      SCM_GOBJECT_UNBOX(GTK_UI_MANAGER, obj)
#define SCM_MAKE_GTK_UI_MANAGER(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_UI_MANAGER_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_UI_MANAGER_P(obj))

/* gtkvbbox.h */

SCM_CLASS_DECL(Scm_GtkVButtonBoxClass);
#define SCM_CLASS_GTK_VBUTTON_BOX     (&Scm_GtkVButtonBoxClass)
#define SCM_GTK_VBUTTON_BOX_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_VBUTTON_BOX))
#define SCM_GTK_VBUTTON_BOX(obj)      SCM_GOBJECT_UNBOX(GTK_VBUTTON_BOX, obj)
#define SCM_MAKE_GTK_VBUTTON_BOX(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_VBUTTON_BOX_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_VBUTTON_BOX_P(obj))

/* gtkvbox.h */

SCM_CLASS_DECL(Scm_GtkVBoxClass);
#define SCM_CLASS_GTK_VBOX     (&Scm_GtkVBoxClass)
#define SCM_GTK_VBOX_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_VBOX))
#define SCM_GTK_VBOX(obj)      SCM_GOBJECT_UNBOX(GTK_VBOX, obj)
#define SCM_MAKE_GTK_VBOX(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_VBOX_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_VBOX_P(obj))

/* gtkviewport.h */

SCM_CLASS_DECL(Scm_GtkViewportClass);
#define SCM_CLASS_GTK_VIEWPORT     (&Scm_GtkViewportClass)
#define SCM_GTK_VIEWPORT_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_VIEWPORT))
#define SCM_GTK_VIEWPORT(obj)      SCM_GOBJECT_UNBOX(GTK_VIEWPORT, obj)
#define SCM_MAKE_GTK_VIEWPORT(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_VIEWPORT_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_VIEWPORT_P(obj))

/* gtkvpaned.h */

SCM_CLASS_DECL(Scm_GtkVPanedClass);
#define SCM_CLASS_GTK_VPANED     (&Scm_GtkVPanedClass)
#define SCM_GTK_VPANED_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_VPANED))
#define SCM_GTK_VPANED(obj)      SCM_GOBJECT_UNBOX(GTK_VPANED, obj)
#define SCM_MAKE_GTK_VPANED(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_VPANED_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_VPANED_P(obj))

/* gtkvruler.h */

SCM_CLASS_DECL(Scm_GtkVRulerClass);
#define SCM_CLASS_GTK_VRULER     (&Scm_GtkVRulerClass)
#define SCM_GTK_VRULER_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_VRULER))
#define SCM_GTK_VRULER(obj)      SCM_GOBJECT_UNBOX(GTK_VRULER, obj)
#define SCM_MAKE_GTK_VRULER(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_VRULER_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_VRULER_P(obj))

/* gtkvscale.h */

SCM_CLASS_DECL(Scm_GtkVScaleClass);
#define SCM_CLASS_GTK_VSCALE     (&Scm_GtkVScaleClass)
#define SCM_GTK_VSCALE_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_VSCALE))
#define SCM_GTK_VSCALE(obj)      SCM_GOBJECT_UNBOX(GTK_VSCALE, obj)
#define SCM_MAKE_GTK_VSCALE(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_VSCALE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_VSCALE_P(obj))

/* gtkvscrollbar.h */

SCM_CLASS_DECL(Scm_GtkVScrollbarClass);
#define SCM_CLASS_GTK_VSCROLLBAR     (&Scm_GtkVScrollbarClass)
#define SCM_GTK_VSCROLLBAR_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_VSCROLLBAR))
#define SCM_GTK_VSCROLLBAR(obj)      SCM_GOBJECT_UNBOX(GTK_VSCROLLBAR, obj)
#define SCM_MAKE_GTK_VSCROLLBAR(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_VSCROLLBAR_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_VSCROLLBAR_P(obj))

/* gtkvseparator.h */

SCM_CLASS_DECL(Scm_GtkVSeparatorClass);
#define SCM_CLASS_GTK_VSEPARATOR     (&Scm_GtkVSeparatorClass)
#define SCM_GTK_VSEPARATOR_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_VSEPARATOR))
#define SCM_GTK_VSEPARATOR(obj)      SCM_GOBJECT_UNBOX(GTK_VSEPARATOR, obj)
#define SCM_MAKE_GTK_VSEPARATOR(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_VSEPARATOR_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_VSEPARATOR_P(obj))

/* gtkwidget.h */

typedef struct ScmGtkRequisitionRec {
    SCM_HEADER;
    GtkRequisition data;
} ScmGtkRequisition;

SCM_CLASS_DECL(Scm_GtkRequisitionClass);
#define SCM_CLASS_GTK_REQUISITION     (&Scm_GtkRequisitionClass)
#define SCM_GTK_REQUISITION_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_REQUISITION)
#define SCM_GTK_REQUISITION(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkRequisition*)(obj))->data)
#define SCM_MAKE_GTK_REQUISITION(obj) (Scm_MakeGtkRequisition(obj))
#define SCM_GTK_REQUISITION_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_REQUISITION_P(obj))
extern ScmObj Scm_MakeGtkRequisition(GtkRequisition *data);

SCM_CLASS_DECL(Scm_GtkWidgetClass);
#define SCM_CLASS_GTK_WIDGET     (&Scm_GtkWidgetClass)
#define SCM_GTK_WIDGET_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_WIDGET))
#define SCM_GTK_WIDGET(obj)      SCM_GOBJECT_UNBOX(GTK_WIDGET, obj)
#define SCM_MAKE_GTK_WIDGET(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_WIDGET_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_WIDGET_P(obj))

typedef struct ScmGtkWidgetAuxInfoRec {
    SCM_HEADER;
    GtkWidgetAuxInfo data;
} ScmGtkWidgetAuxInfo;

SCM_CLASS_DECL(Scm_GtkWidgetAuxInfoClass);
#define SCM_CLASS_GTK_WIDGET_AUX_INFO     (&Scm_GtkWidgetAuxInfoClass)
#define SCM_GTK_WIDGET_AUX_INFO_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_WIDGET_AUX_INFO)
#define SCM_GTK_WIDGET_AUX_INFO(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkWidgetAuxInfo*)(obj))->data)
#define SCM_MAKE_GTK_WIDGET_AUX_INFO(obj) (Scm_MakeGtkWidgetAuxInfo(obj))
#define SCM_GTK_WIDGET_AUX_INFO_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_WIDGET_AUX_INFO_P(obj))
extern ScmObj Scm_MakeGtkWidgetAuxInfo(GtkWidgetAuxInfo *data);

typedef struct ScmGtkWidgetShapeInfoRec {
    SCM_HEADER;
    GtkWidgetShapeInfo data;
} ScmGtkWidgetShapeInfo;

SCM_CLASS_DECL(Scm_GtkWidgetShapeInfoClass);
#define SCM_CLASS_GTK_WIDGET_SHAPE_INFO     (&Scm_GtkWidgetShapeInfoClass)
#define SCM_GTK_WIDGET_SHAPE_INFO_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_WIDGET_SHAPE_INFO)
#define SCM_GTK_WIDGET_SHAPE_INFO(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkWidgetShapeInfo*)(obj))->data)
#define SCM_MAKE_GTK_WIDGET_SHAPE_INFO(obj) (Scm_MakeGtkWidgetShapeInfo(obj))
#define SCM_GTK_WIDGET_SHAPE_INFO_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_WIDGET_SHAPE_INFO_P(obj))
extern ScmObj Scm_MakeGtkWidgetShapeInfo(GtkWidgetShapeInfo *data);

/* gtkwindow.h */

SCM_CLASS_DECL(Scm_GtkWindowClass);
#define SCM_CLASS_GTK_WINDOW     (&Scm_GtkWindowClass)
#define SCM_GTK_WINDOW_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_WINDOW))
#define SCM_GTK_WINDOW(obj)      SCM_GOBJECT_UNBOX(GTK_WINDOW, obj)
#define SCM_MAKE_GTK_WINDOW(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_WINDOW_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_WINDOW_P(obj))

SCM_CLASS_DECL(Scm_GtkWindowGroupClass);
#define SCM_CLASS_GTK_WINDOW_GROUP     (&Scm_GtkWindowGroupClass)
#define SCM_GTK_WINDOW_GROUP_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_WINDOW_GROUP))
#define SCM_GTK_WINDOW_GROUP(obj)      SCM_GOBJECT_UNBOX(GTK_WINDOW_GROUP, obj)
#define SCM_MAKE_GTK_WINDOW_GROUP(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_WINDOW_GROUP_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_WINDOW_GROUP_P(obj))

/* gtktreesortable.h */

typedef struct ScmGtkTreeSortableIfaceRec {
    SCM_HEADER;
    GtkTreeSortableIface data;
} ScmGtkTreeSortableIface;

SCM_CLASS_DECL(Scm_GtkTreeSortableIfaceClass);
#define SCM_CLASS_GTK_TREE_SORTABLE_IFACE     (&Scm_GtkTreeSortableIfaceClass)
#define SCM_GTK_TREE_SORTABLE_IFACE_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_TREE_SORTABLE_IFACE)
#define SCM_GTK_TREE_SORTABLE_IFACE(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkTreeSortableIface*)(obj))->data)
#define SCM_MAKE_GTK_TREE_SORTABLE_IFACE(obj) (Scm_MakeGtkTreeSortableIface(obj))
#define SCM_GTK_TREE_SORTABLE_IFACE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TREE_SORTABLE_IFACE_P(obj))
extern ScmObj Scm_MakeGtkTreeSortableIface(GtkTreeSortableIface *data);

SCM_CLASS_DECL(Scm_GtkTreeSortableClass);
#define SCM_CLASS_GTK_TREE_SORTABLE     (&Scm_GtkTreeSortableClass)
#define SCM_GTK_TREE_SORTABLE_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_TREE_SORTABLE))
#define SCM_GTK_TREE_SORTABLE(obj)      SCM_GOBJECT_UNBOX(GTK_TREE_SORTABLE, obj)
#define SCM_MAKE_GTK_TREE_SORTABLE(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_TREE_SORTABLE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_TREE_SORTABLE_P(obj))

/* gtkcelleditable.h */

typedef struct ScmGtkCellEditableIfaceRec {
    SCM_HEADER;
    GtkCellEditableIface data;
} ScmGtkCellEditableIface;

SCM_CLASS_DECL(Scm_GtkCellEditableIfaceClass);
#define SCM_CLASS_GTK_CELL_EDITABLE_IFACE     (&Scm_GtkCellEditableIfaceClass)
#define SCM_GTK_CELL_EDITABLE_IFACE_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GTK_CELL_EDITABLE_IFACE)
#define SCM_GTK_CELL_EDITABLE_IFACE(obj)      (SCM_FALSEP(obj)?NULL:&((ScmGtkCellEditableIface*)(obj))->data)
#define SCM_MAKE_GTK_CELL_EDITABLE_IFACE(obj) (Scm_MakeGtkCellEditableIface(obj))
#define SCM_GTK_CELL_EDITABLE_IFACE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CELL_EDITABLE_IFACE_P(obj))
extern ScmObj Scm_MakeGtkCellEditableIface(GtkCellEditableIface *data);

SCM_CLASS_DECL(Scm_GtkCellEditableClass);
#define SCM_CLASS_GTK_CELL_EDITABLE     (&Scm_GtkCellEditableClass)
#define SCM_GTK_CELL_EDITABLE_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_CELL_EDITABLE))
#define SCM_GTK_CELL_EDITABLE(obj)      SCM_GOBJECT_UNBOX(GTK_CELL_EDITABLE, obj)
#define SCM_MAKE_GTK_CELL_EDITABLE(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_CELL_EDITABLE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_CELL_EDITABLE_P(obj))

/* gtkfilechooser.h */

SCM_CLASS_DECL(Scm_GtkFileChooserClass);
#define SCM_CLASS_GTK_FILE_CHOOSER     (&Scm_GtkFileChooserClass)
#define SCM_GTK_FILE_CHOOSER_P(obj)    (Scm_TypeP(obj, SCM_CLASS_GTK_FILE_CHOOSER))
#define SCM_GTK_FILE_CHOOSER(obj)      SCM_GOBJECT_UNBOX(GTK_FILE_CHOOSER, obj)
#define SCM_MAKE_GTK_FILE_CHOOSER(obj) SCM_GOBJECT_BOX(obj)
#define SCM_GTK_FILE_CHOOSER_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GTK_FILE_CHOOSER_P(obj))

/* gdk-pixbuf-features.h */

/* gdk-pixbuf.h */

typedef struct ScmGdkPixbufFormatRec {
    SCM_HEADER;
    GdkPixbufFormat *data;
} ScmGdkPixbufFormat;

SCM_CLASS_DECL(Scm_GdkPixbufFormatClass);
#define SCM_CLASS_GDK_PIXBUF_FORMAT     (&Scm_GdkPixbufFormatClass)
#define SCM_GDK_PIXBUF_FORMAT_P(obj)     SCM_XTYPEP(obj, SCM_CLASS_GDK_PIXBUF_FORMAT)
#define SCM_GDK_PIXBUF_FORMAT(obj)      (SCM_FALSEP(obj)?NULL:((ScmGdkPixbufFormat*)(obj))->data)
#define SCM_MAKE_GDK_PIXBUF_FORMAT(obj) (Scm_MakeGdkPixbufFormat(obj))
#define SCM_GDK_PIXBUF_FORMAT_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_PIXBUF_FORMAT_P(obj))
extern ScmObj Scm_MakeGdkPixbufFormat(GdkPixbufFormat *data);

