/***************************************************************************
                            kde_KKey.h -  description
                             -------------------
    begin                : Tue Mar 19 20:11:49 2002
    copyright            : (C) 2000-2001 Lost Highway Ltd. All rights reserved.
    email                : Lost_Highway@tipitina.demon.co.uk
    generated by         : duke@tipitina on Tue Mar 19 20:11:49 2002, using kalyptus 0.9.
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This library is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU Library General Public License as       *
 *   published by the Free Software Foundation; either version 2 of the    *
 *   License, or (at your option) any later version.                       *
 *                                                                         *
 ***************************************************************************/

#ifndef KDE_KKEY
#define KDE_KKEY

#include <qtc/qtc_types.h>
#include <qtc/qt_Qt.h>

#include <kdec/kde_types.h>

/**

 A KKey object represents a single key with possible modifiers
 (Shift, Ctrl, Alt, Win).  It can represent both keys which are
 understood by Qt as well as those which are additionally supported
 by the underlying system (e.g. X11).
********************************************************************
 @short 
 A KKey object represents a single key with possible modifiers
 (Shift, Ctrl, Alt, Win).
*/
#define KKEY_MOD_FLAG_COUNT	4
#define KKEY_QtWIN	(QT_ALT<<1)
#define KKEY_SHIFT	0x01
#define KKEY_CTRL	0x02
#define KKEY_ALT	0x04
#define KKEY_WIN	0x08
kde_KKey * kde_new_KKey();
kde_KKey * kde_new_KKey1(int keyQt);
kde_KKey * kde_new_KKey2(qt_QKeySequence* arg1);
kde_KKey * kde_new_KKey3(qt_QKeyEvent* arg1);
kde_KKey * kde_new_KKey4(kde_KKey* arg1);
kde_KKey * kde_new_KKey5(qt_QString * arg1);

/** 

	 
*/
kde_KKey * kde_new_KKey6(unsigned int key, unsigned int mod);
void kde_del_KKey( kde_KKey* p );
void kde_KKey_clear(kde_KKey* instPointer);
int kde_KKey_init(kde_KKey* instPointer,int keyQt);
int kde_KKey_init1(kde_KKey* instPointer,qt_QKeySequence* arg1);
int kde_KKey_init2(kde_KKey* instPointer,qt_QKeyEvent* arg1);
int kde_KKey_init3(kde_KKey* instPointer,kde_KKey* arg1);
int kde_KKey_init4(kde_KKey* instPointer,qt_QString * arg1);

/** 

	 
*/
int kde_KKey_init5(kde_KKey* instPointer,unsigned int key, unsigned int mod);
int kde_KKey_isNull(kde_KKey* instPointer);
//int kde_KKey_isValidQt(kde_KKey* instPointer);
//int kde_KKey_isValidNative(kde_KKey* instPointer);

/** 

	 
*/
unsigned int kde_KKey_sym(kde_KKey* instPointer);

/** 

	 
*/
unsigned int kde_KKey_modFlags(kde_KKey* instPointer);
int kde_KKey_compare(kde_KKey* instPointer,kde_KKey* arg1);
int kde_KKey_keyCodeQt(kde_KKey* instPointer);
qt_QString * kde_KKey_toString(kde_KKey* instPointer);
qt_QString * kde_KKey_toStringInternal(kde_KKey* instPointer);
void kde_KKey_simplify(kde_KKey* instPointer);
kde_KKey* kde_KKey_null( );
qt_QString * kde_KKey_modFlagLabel( int arg1);

#endif
