This repository has been archived on 2020-04-11. You can view files and clone it, but cannot push or open issues or pull requests.
gnoemoe/gnoemoe/template.h

58 lines
1.8 KiB
C

#ifndef __{NAMESPACE}_{TEMPLATE}_H__
#define __{NAMESPACE}_{TEMPLATE}_H__
#include <glib-object.h>
#include <gtk/gtk.h>
G_BEGIN_DECLS
/*
* Type checking and casting macros
*/
#define {NAMESPACE}_TYPE_{TEMPLATE} ({namespace}_{template_}_get_type())
#define {NAMESPACE}_{TEMPLATE}(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), \
{NAMESPACE}_TYPE_{TEMPLATE}, {Namespace}{Template}))
#define {NAMESPACE}_{TEMPLATE}_CONST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),\
{NAMESPACE}_TYPE_{TEMPLATE}, {Namespace}{Template} const))
#define {NAMESPACE}_{TEMPLATE}_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), \
{NAMESPACE}_TYPE_{TEMPLATE}, {Namespace}{Template}Class))
#define {NAMESPACE}_IS_{TEMPLATE}(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), \
{NAMESPACE}_TYPE_{TEMPLATE}))
#define {NAMESPACE}_IS_{TEMPLATE}_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \
{NAMESPACE}_TYPE_{TEMPLATE}))
#define {NAMESPACE}_{TEMPLATE}_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), \
{NAMESPACE}_TYPE_{TEMPLATE}, {Namespace}{Template}Class))
/* Private structure type */
typedef struct _{Namespace}{Template}Private {Namespace}{Template}Private;
/*
* Main object structure
*/
typedef struct _{Namespace}{Template} {Namespace}{Template};
struct _{Namespace}{Template} {
{Parent_Namespace}{Parent} parent;
/*< private > */
{Namespace}{Template}Private *priv;
};
/*
* Class definition
*/
typedef struct _{Namespace}{Template}Class {Namespace}{Template}Class;
struct _{Namespace}{Template}Class {
{Parent_Namespace}{Parent}Class parent_class;
/* Signals
void (* proto) ({Namespace}{Template} *obj); */
};
GType {namespace}_{template_}_get_type(void) G_GNUC_CONST;
{Namespace}{Template} *{namespace}_{template_}_new(void);
G_END_DECLS
#endif /* __{NAMESPACE}_{TEMPLATE}_H__ */