/* Generated by GOB (v2.0.20)   (do not edit directly) */

#include <glib.h>
#include <glib-object.h>


#include <gtk/gtk.h>
#include <metadata.h>
#include <libmpd/libmpd.h>
#include "gmpc-extras.h"

#ifndef __GMPC_METAIMAGE_H__
#define __GMPC_METAIMAGE_H__

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */


/*
 * Type checking and casting macros
 */
#define GMPC_TYPE_METAIMAGE	(gmpc_metaimage_get_type())
#define GMPC_METAIMAGE(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), gmpc_metaimage_get_type(), GmpcMetaImage)
#define GMPC_METAIMAGE_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), gmpc_metaimage_get_type(), GmpcMetaImage const)
#define GMPC_METAIMAGE_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), gmpc_metaimage_get_type(), GmpcMetaImageClass)
#define GMPC_IS_METAIMAGE(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), gmpc_metaimage_get_type ())

#define GMPC_METAIMAGE_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), gmpc_metaimage_get_type(), GmpcMetaImageClass)

/* Private structure type */
typedef struct _GmpcMetaImagePrivate GmpcMetaImagePrivate;

/*
 * Main object structure
 */
#ifndef __TYPEDEF_GMPC_METAIMAGE__
#define __TYPEDEF_GMPC_METAIMAGE__
typedef struct _GmpcMetaImage GmpcMetaImage;
#endif
struct _GmpcMetaImage {
	GtkEventBox __parent__;
	/*< public >*/
	int size;
	MetaDataType image_type;
	MpdObj * connection;
	gboolean hide_on_na;
	gboolean squared;
	gchar * no_cover_icon;
	gchar * loading_cover_icon;
	gboolean scale_up;
	gboolean is_visible;
	/*< private >*/
	GmpcMetaImagePrivate *_priv;
};

/*
 * Class definition
 */
typedef struct _GmpcMetaImageClass GmpcMetaImageClass;
struct _GmpcMetaImageClass {
	GtkEventBoxClass __parent__;
	/*signal*/void (* menu_populate_client) (GmpcMetaImage * self, GtkMenu * menu);
};


/*
 * Public methods
 */
GType	gmpc_metaimage_get_type	(void) G_GNUC_CONST;
gint 	gmpc_metaimage_get_image_type	(GmpcMetaImage * self);
void 	gmpc_metaimage_set_image_type	(GmpcMetaImage * self,
					gint val);
gint 	gmpc_metaimage_get_size	(GmpcMetaImage * self);
void 	gmpc_metaimage_set_size	(GmpcMetaImage * self,
					gint val);
gboolean 	gmpc_metaimage_get_hide_on_na	(GmpcMetaImage * self);
void 	gmpc_metaimage_set_hide_on_na	(GmpcMetaImage * self,
					gboolean val);
gboolean 	gmpc_metaimage_get_scale_up	(GmpcMetaImage * self);
void 	gmpc_metaimage_set_scale_up	(GmpcMetaImage * self,
					gboolean val);
void 	gmpc_metaimage_set_no_cover_icon	(GmpcMetaImage * self,
					const gchar * name);
void 	gmpc_metaimage_set_loading_cover_icon	(GmpcMetaImage * self,
					const gchar * name);
void 	gmpc_metaimage_set_squared	(GmpcMetaImage * self,
					const gboolean item);
void 	gmpc_metaimage_set_connection	(GmpcMetaImage * self,
					MpdObj * conn);
GmpcMetaImage * 	gmpc_metaimage_new_size	(int type,
					int size);
GtkWidget * 	gmpc_metaimage_new	(int type);
void 	gmpc_metaimage_update_cover	(GmpcMetaImage * self,
					MpdObj * mi,
					ChangedStatusType what,
					GmpcConnection * gc);
void 	gmpc_metaimage_update_cover_from_song	(GmpcMetaImage * self,
					const mpd_Song * song);
void 	gmpc_metaimage_update_cover_from_song_delayed	(GmpcMetaImage * self,
					mpd_Song * song);
void 	gmpc_metaimage_set_cover_invalid_query	(GmpcMetaImage * self);
void 	gmpc_metaimage_set_cover_na	(GmpcMetaImage * self);
void 	gmpc_metaimage_set_cover_fetching	(GmpcMetaImage * self);
void 	gmpc_metaimage_set_cover_raw	(GmpcMetaImage * self,
					unsigned char * data,
					unsigned int size,
					unsigned char * md5sum);
void 	gmpc_metaimage_set_is_visible	(GmpcMetaImage * self,
					gboolean is_visible);
void 	gmpc_metaimage_query_refetch	(GmpcMetaImage * self);
void 	gmpc_metaimage_menu_populate_client	(GmpcMetaImage * self,
					GtkMenu * menu);
void 	gmpc_metaimage_select_file	(GmpcMetaImage * self);
void 	gmpc_metaimage_reload_image	(GmpcMetaImage * self);
void 	gmpc_metaimage_set_dirty	(GmpcMetaImage * self);

/*
 * Signal connection wrapper macros
 */
#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
#define gmpc_metaimage_connect__menu_populate_client(object,func,data)	g_signal_connect(GMPC_METAIMAGE(__extension__ ({GmpcMetaImage *___object = (object); ___object; })),"menu_populate_client",(GCallback) __extension__ ({void (* ___menu_populate_client) (GmpcMetaImage * ___fake___self, GtkMenu * ___fake___menu, gpointer ___data ) = (func); ___menu_populate_client; }), (data))
#define gmpc_metaimage_connect_after__menu_populate_client(object,func,data)	g_signal_connect_after(GMPC_METAIMAGE(__extension__ ({GmpcMetaImage *___object = (object); ___object; })),"menu_populate_client",(GCallback) __extension__ ({void (* ___menu_populate_client) (GmpcMetaImage * ___fake___self, GtkMenu * ___fake___menu, gpointer ___data ) = (func); ___menu_populate_client; }), (data))
#define gmpc_metaimage_connect_data__menu_populate_client(object,func,data,destroy_data,flags)	g_signal_connect_data(GMPC_METAIMAGE(__extension__ ({GmpcMetaImage *___object = (object); ___object; })),"menu_populate_client",(GCallback) __extension__ ({void (* ___menu_populate_client) (GmpcMetaImage * ___fake___self, GtkMenu * ___fake___menu, gpointer ___data ) = (func); ___menu_populate_client; }), (data), (destroy_data), (GConnectFlags)(flags))
#else /* __GNUC__ && !__STRICT_ANSI__ */
#define gmpc_metaimage_connect__menu_populate_client(object,func,data)	g_signal_connect(GMPC_METAIMAGE(object),"menu_populate_client",(GCallback)(func),(data))
#define gmpc_metaimage_connect_after__menu_populate_client(object,func,data)	g_signal_connect_after(GMPC_METAIMAGE(object),"menu_populate_client",(GCallback)(func),(data))
#define gmpc_metaimage_connect_data__menu_populate_client(object,func,data,destroy_data,flags)	g_signal_connect_data(GMPC_METAIMAGE(object),"menu_populate_client",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags))
#endif /* __GNUC__ && !__STRICT_ANSI__ */


/*
 * Argument wrapping macros
 */
#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
#define GMPC_METAIMAGE_PROP_IMAGE_TYPE(arg)    	"image_type", __extension__ ({gint z = (arg); z;})
#define GMPC_METAIMAGE_GET_PROP_IMAGE_TYPE(arg)	"image_type", __extension__ ({gint *z = (arg); z;})
#define GMPC_METAIMAGE_PROP_SIZE(arg)    	"size", __extension__ ({gint z = (arg); z;})
#define GMPC_METAIMAGE_GET_PROP_SIZE(arg)	"size", __extension__ ({gint *z = (arg); z;})
#define GMPC_METAIMAGE_PROP_HIDE_ON_NA(arg)    	"hide_on_na", __extension__ ({gboolean z = (arg); z;})
#define GMPC_METAIMAGE_GET_PROP_HIDE_ON_NA(arg)	"hide_on_na", __extension__ ({gboolean *z = (arg); z;})
#define GMPC_METAIMAGE_PROP_SCALE_UP(arg)    	"scale_up", __extension__ ({gboolean z = (arg); z;})
#define GMPC_METAIMAGE_GET_PROP_SCALE_UP(arg)	"scale_up", __extension__ ({gboolean *z = (arg); z;})
#define GMPC_METAIMAGE_PROP_SQUARED(arg)    	"squared", __extension__ ({gboolean z = (arg); z;})
#define GMPC_METAIMAGE_GET_PROP_SQUARED(arg)	"squared", __extension__ ({gboolean *z = (arg); z;})
#else /* __GNUC__ && !__STRICT_ANSI__ */
#define GMPC_METAIMAGE_PROP_IMAGE_TYPE(arg)    	"image_type",(gint )(arg)
#define GMPC_METAIMAGE_GET_PROP_IMAGE_TYPE(arg)	"image_type",(gint *)(arg)
#define GMPC_METAIMAGE_PROP_SIZE(arg)    	"size",(gint )(arg)
#define GMPC_METAIMAGE_GET_PROP_SIZE(arg)	"size",(gint *)(arg)
#define GMPC_METAIMAGE_PROP_HIDE_ON_NA(arg)    	"hide_on_na",(gboolean )(arg)
#define GMPC_METAIMAGE_GET_PROP_HIDE_ON_NA(arg)	"hide_on_na",(gboolean *)(arg)
#define GMPC_METAIMAGE_PROP_SCALE_UP(arg)    	"scale_up",(gboolean )(arg)
#define GMPC_METAIMAGE_GET_PROP_SCALE_UP(arg)	"scale_up",(gboolean *)(arg)
#define GMPC_METAIMAGE_PROP_SQUARED(arg)    	"squared",(gboolean )(arg)
#define GMPC_METAIMAGE_GET_PROP_SQUARED(arg)	"squared",(gboolean *)(arg)
#endif /* __GNUC__ && !__STRICT_ANSI__ */


#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif
