//
//     Copyright 2006 Jim Bublitz <jbublitz@nwinternet.com>
//     Earlier copyrights 1998 - 2005 Jim Bublitz and/or Phil Thompson
//     may also apply


//                 Generated by preSip
//            module kdecore  version KDE 3.5.3


// This software is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as
// published by the Free Software Foundation; either version 2 of
// the License, or (at your option) any later version.
//
// This software 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 General Public License for more details.
//
// You should have received a copy of the GNU General Public
// License along with this library; see the file COPYING.
// If not, write to the Free Software Foundation, Inc.,
// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

%ModuleHeaderCode
#include <kkeyserver_x11.h>
%End

namespace KKeyServer
{

%If ( KDE_3_1_0 -  )

enum ExtraModFlag
{
    MODE_SWITCH
};

%End


class Sym
{
%TypeHeaderCode
#include <kkeyserver_x11.h>
%End


public:
    uint                 m_sym;
                         Sym ();
                         Sym (uint);
                         Sym (const QString&);
    bool                 initQt (int);
    bool                 init (const QString&);
    int                  qt () const;
    QString              toStringInternal () const;
    QString              toString () const;
    uint                 getModsRequired () const;
    uint                 getSymVariation () const;

%If ( KDE_3_1_4 -  )
//ig                          operator uint () const;
%End


};  // class Sym


class Key
{
%TypeHeaderCode
#include <kkeyserver_x11.h>
%End


public:

    enum 
    {
        CODE_FOR_QT
    };

    uint                 m_code;
    uint                 m_mod;
    uint                 m_sym;
    bool                 init (const KKey&, bool);
    bool                 isNative () const;
    uint                 code () const;
    uint                 mod () const;
    uint                 sym () const;
    int                  keyCodeQt () const;
    void                 setKeycodeQt (int);
    int                  compare (const KKeyServer::Key&) const;

%If ( KDE_3_1_4 -  )
    bool                 operator == (const KKeyServer::Key&) const;
    bool                 operator < (const KKeyServer::Key&) const;
%End

    KKey                 key () const;

};  // class Key


class Variations
{
%TypeHeaderCode
#include <kkeyserver_x11.h>
%End


public:

    enum 
    {
        MAX_VARIATIONS
    };

//ig     KKeyServer::Key      m_rgkey[MAX_VARIATIONS];
    uint                 m_nVariations;
                         Variations ();
    void                 init (const KKey&, bool);
    uint                 count () const;
    const KKeyServer::Key& key (uint) const;

};  // class Variations

bool                 initializeMods ();
uint                 modX (KKey::ModFlag);
bool                 keyboardHasWinKey ();
uint                 modXShift ();
uint                 modXLock ();
uint                 modXCtrl ();
uint                 modXAlt ();
uint                 modXNumLock ();
uint                 modXWin ();
uint                 modXScrollLock ();

%If ( KDE_3_4_2 -  )
uint                 modXModeSwitch ();
%End

uint                 accelModMaskX ();
//ig bool                 keyQtToSym (int, uint&);
//ig bool                 keyQtToMod (int, uint&);
//ig bool                 symToKeyQt (uint, int&);
//ig bool                 modToModQt (uint, int&);
//ig bool                 modToModX (uint, uint&);
//ig bool                 modXToModQt (uint, int&);

%If ( KDE_3_4_2 -  )
//ig int                  qtButtonStateToMod (Qt::ButtonState);
%End

//ig bool                 modXToMod (uint, uint&);
//ig bool                 codeXToSym (uchar, uint, uint&);
//ig QString              modToStringInternal (uint);
//ig QString              modToStringUser (uint);

%If ( KDE_3_5_0 -  )
uint                 stringUserToMod (const QString&);
%End

//ig bool                 stringToSymMod (const QString&, uint&, uint&);
//ig void                 keyQtToKeyX (uint, uchar*, uint*, uint*);

%If (  - KDE_3_2_0 )

class CodeMod
{
%TypeHeaderCode
#include <kkeyserver_x11.h>
%End


public:
    int                  code;
    int                  mod;

};  // class CodeMod

%End

};  // namespace KKeyServer

