/**
 * projectM -- Milkdrop-esque visualisation SDK
 * Copyright (C)2003-2004 projectM Team
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 * See 'LICENSE.txt' included within this release
 *
 */
/**
 * $Id: event.h,v 1.2 2004/10/08 10:54:27 cvs Exp $
 *
 * projectM keycodes. Enables translation from various event schemes such as Win32, SDL
 * &c.
 *
 * $Log: event.h,v $
 */

#ifndef _PROJECTM_EVENT_H
#define _PROJECTM_EVENT_H

typedef enum {
    /** Event types */
    PROJECTM_KEYUP,
    PROJECTM_KEYDOWN,
    PROJECTM_VIDEORESIZE,
    PROJECTM_VIDEOQUIT,
  } projectMEvent;

typedef enum {
    /** Keycodes */
    PROJECTM_K_RETURN,
    PROJECTM_K_RIGHT,
    PROJECTM_K_LEFT,
    PROJECTM_K_UP,
    PROJECTM_K_DOWN,
    PROJECTM_K_PAGEUP,
    PROJECTM_K_PAGEDOWN,
    PROJECTM_K_INSERT,
    PROJECTM_K_DELETE,
    PROJECTM_K_ESCAPE,
    PROJECTM_K_LSHIFT,
    PROJECTM_K_RSHIFT,
    PROJECTM_K_CAPSLOCK,
    PROJECTM_K_LCTRL,
    PROJECTM_K_HOME,
    PROJECTM_K_END,
    PROJECTM_K_BACKSPACE,
    PROJECTM_K_SLASH,
    PROJECTM_K_BACKSLASH,

    PROJECTM_K_F1,
    PROJECTM_K_F2,
    PROJECTM_K_F3,
    PROJECTM_K_F4,
    PROJECTM_K_F5,
    PROJECTM_K_F6,
    PROJECTM_K_F7,
    PROJECTM_K_F8,
    PROJECTM_K_F9,
    PROJECTM_K_F10,
    PROJECTM_K_F11,
    PROJECTM_K_F12,

    PROJECTM_K_0 = 48,
    PROJECTM_K_1,
    PROJECTM_K_2,
    PROJECTM_K_3,
    PROJECTM_K_4,
    PROJECTM_K_5,
    PROJECTM_K_6,
    PROJECTM_K_7,
    PROJECTM_K_8,
    PROJECTM_K_9,

    PROJECTM_K_A = 65,
    PROJECTM_K_B,
    PROJECTM_K_C,
    PROJECTM_K_D,
    PROJECTM_K_E,
    PROJECTM_K_F,
    PROJECTM_K_G,
    PROJECTM_K_H,
    PROJECTM_K_I,
    PROJECTM_K_J,
    PROJECTM_K_K,
    PROJECTM_K_L,
    PROJECTM_K_M,
    PROJECTM_K_N,
    PROJECTM_K_O,
    PROJECTM_K_P,
    PROJECTM_K_Q,
    PROJECTM_K_R,
    PROJECTM_K_S,
    PROJECTM_K_T,
    PROJECTM_K_U,
    PROJECTM_K_V,
    PROJECTM_K_W,
    PROJECTM_K_X,
    PROJECTM_K_Y,
    PROJECTM_K_Z,

    PROJECTM_K_a = 97,
    PROJECTM_K_b,
    PROJECTM_K_c,
    PROJECTM_K_d,
    PROJECTM_K_e,
    PROJECTM_K_f,
    PROJECTM_K_g,
    PROJECTM_K_h,
    PROJECTM_K_i,
    PROJECTM_K_j,
    PROJECTM_K_k,
    PROJECTM_K_l,
    PROJECTM_K_m,
    PROJECTM_K_n,
    PROJECTM_K_o,
    PROJECTM_K_p,
    PROJECTM_K_q,
    PROJECTM_K_r,
    PROJECTM_K_s,
    PROJECTM_K_t,
    PROJECTM_K_u,
    PROJECTM_K_v,
    PROJECTM_K_w,
    PROJECTM_K_x,
    PROJECTM_K_y,
    PROJECTM_K_z,
    PROJECTM_K_NONE,
    PROJECTM_K_PLUS,
    PROJECTM_K_MINUS,
    PROJECTM_K_EQUALS
  } projectMKeycode;

typedef enum {
    /** Modifiers */
    PROJECTM_KMOD_NONE = -1,
    PROJECTM_KMOD_LSHIFT,
    PROJECTM_KMOD_RSHIFT,
    PROJECTM_KMOD_CAPS,
    PROJECTM_KMOD_LCTRL,
    PROJECTM_KMOD_RCTRL,
  } projectMModifier;

#endif /** !_PROJECTM_EVENT_H */

