/* funky-foo-bar.h */
/* insert (c)/licensing information) */

#ifndef __FUNKY_FOO_BAR_H__
#define __FUNKY_FOO_BAR_H__

#include <gtk/gtk.h>
/* other include files */

G_BEGIN_DECLS

/* convenience macros */
#define FUNKY_TYPE_FOO_BAR             (funky_foo_bar_get_type())
#define FUNKY_FOO_BAR(obj)             (G_TYPE_CHECK_INSTANCE_CAST((obj),FUNKY_TYPE_FOO_BAR,FunkyFooBar))
#define FUNKY_FOO_BAR_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST((klass),FUNKY_TYPE_FOO_BAR,GtkWidget))
#define FUNKY_IS_FOO_BAR(obj)          (G_TYPE_CHECK_INSTANCE_TYPE((obj),FUNKY_TYPE_FOO_BAR))
#define FUNKY_IS_FOO_BAR_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE((klass),FUNKY_TYPE_FOO_BAR))
#define FUNKY_FOO_BAR_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS((obj),FUNKY_TYPE_FOO_BAR,FunkyFooBarClass))

typedef struct _FunkyFooBar      FunkyFooBar;
typedef struct _FunkyFooBarClass FunkyFooBarClass;

struct _FunkyFooBar {
	 GtkWidget parent;
	/* insert public members, if any */
};

struct _FunkyFooBarClass {
	GtkWidgetClass parent_class;
	/* insert signal callback declarations, eg. */
	/* void (* my_event) (FunkyFooBar* obj); */
};

/* member functions */
GType        funky_foo_bar_get_type    (void) G_GNUC_CONST;

/* typical parameter-less _new function */
/* if this is a kind of GtkWidget, it should probably return at GtkWidget* */
GtkWidget*   funky_foo_bar_new         (void);

/* fill in other public functions, eg.: */
/* 	void       funky_foo_bar_do_something (FunkyFooBar *self, const gchar* param); */
/* 	gboolean   funky_foo_bar_has_foo      (FunkyFooBar *self, gint value); */


G_END_DECLS

#endif /* __FUNKY_FOO_BAR_H__ */

