Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > f929d94d7626ab2657467deac4a3b098 > files > 9

libphat-devel-0.3.1-3mdv2009.1.i586.rpm

#ifndef __PHAT_KEYBOARD__
#define __PHAT_KEYBOARD__

#include <gtk/gtk.h>
#include <libgnomecanvas/libgnomecanvas.h>

G_BEGIN_DECLS

#define PHAT_TYPE_KEYBOARD (phat_keyboard_get_type())
#define PHAT_KEYBOARD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHAT_TYPE_KEYBOARD, PhatKeyboard))
#define PHAT_KEYBOARD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHAT_TYPE_KEYBOARD, PhatKeyboardClass))
#define PHAT_IS_KEYBOARD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHAT_TYPE_KEYBOARD))
#define PHAT_IS_KEYBOARD_CLASS(klass) (G_TYPE_CHECK_INSTANCE_TYPE ((klass), PHAT_TYPE_KEYBOARD))

typedef struct _PhatKeyboardClass PhatKeyboardClass;
typedef struct _PhatKeyboard PhatKeyboard;
typedef struct __Key _Key;

/* key dimensions */
enum
{
    PHAT_KEYBOARD_KEY_WIDTH  = 13,
    PHAT_KEYBOARD_KEY_LENGTH = 33,
};


struct __Key
{
    int index;
    PhatKeyboard* keyboard;	/* the keyboard we belong to */
    GnomeCanvasGroup* group;	/* the group this key belongs to */
    GnomeCanvasItem* pre;	/* prelight rectangle */
    GnomeCanvasItem* on;	/* active (depressed) rectangle */
    GnomeCanvasItem* shad;	/* active shadow */
};

struct _PhatKeyboard
{
    /*< private >*/
    GtkViewport parent;

    _Key *keys;
    int nkeys;
    int label;
    GnomeCanvas* canvas;
    GtkOrientation orientation;
};

struct _PhatKeyboardClass
{
    /*< private >*/
    GtkViewportClass parent_class;

    void (*key_pressed)(PhatKeyboard* keyboard, int key);
    void (*key_released)(PhatKeyboard* keyboard, int key);
};

GType phat_keyboard_get_type(void);
GtkAdjustment* phat_keyboard_get_adjustment(PhatKeyboard* keyboard);
void phat_keyboard_set_adjustment(PhatKeyboard* keyboard, GtkAdjustment* adjustment);

G_END_DECLS

#endif /* __PHAT_KEYBOARD__ */