#ifndef __GDAM_DEVICE_SWITCHER_SKIN_H_
#define __GDAM_DEVICE_SWITCHER_SKIN_H_


typedef struct _GdamDeviceSwitcherSkin GdamDeviceSwitcherSkin;
typedef struct _GdamDeviceSwitcherSkinClass GdamDeviceSwitcherSkinClass;

#include "gdamskin.h"
#include <gtk/gtkentry.h>
#include <gtk/gtklabel.h>

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

GtkType gdam_device_switcher_skin_get_type();
#define GDAM_TYPE_DEVICE_SWITCHER_SKIN			(gdam_device_switcher_skin_get_type ())
#define GDAM_DEVICE_SWITCHER_SKIN(obj)              (GTK_CHECK_CAST ((obj), GDAM_TYPE_DEVICE_SWITCHER_SKIN, GdamDeviceSwitcherSkin))
#define GDAM_DEVICE_SWITCHER_SKIN_CLASS(klass)      (GTK_CHECK_CLASS_CAST ((klass), GDAM_TYPE_DEVICE_SWITCHER_SKIN, GdamDeviceSwitcherSkinClass))
#define GDAM_IS_DEVICE_SWITCHER_SKIN(obj)           (GTK_CHECK_TYPE ((obj), GDAM_TYPE_DEVICE_SWITCHER_SKIN))
#define GDAM_IS_DEVICE_SWITCHER_SKIN_CLASS(klass)   (GTK_CHECK_CLASS_TYPE ((klass), GDAM_TYPE_DEVICE_SWITCHER_SKIN))

struct _GdamDeviceSwitcherSkin {
	GdamSkin			skin;
	GdamSkin*			child_skin;
	char*				call;
	GtkEntry*			call_entry;
	GtkLabel*			buffer_label;
	char*				device_name;
	int				buffer_size;
};

struct _GdamDeviceSwitcherSkinClass {
	GdamSkinClass		skin_class;
	void          (*device_changed)(GdamDeviceSwitcherSkin* switcher);
	void          (*cycle_device)(GdamDeviceSwitcherSkin* switcher);
};

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif
