Qt logo

qcursor.h


This is the verbatim text of the qcursor.h include file. It is provided only for illustration; the copyright remains with Troll Tech.
/****************************************************************************
** $Id: qcursor.h,v 2.16 1999/04/28 09:55:56 aavit Exp $
**
** Definition of QCursor class
**
** Created : 940219
**
** Copyright (C) 1992-1999 Troll Tech AS.  All rights reserved.
**
** This file is part of the Qt GUI Toolkit.
**
** This file may be distributed under the terms of the Q Public License
** as defined by Troll Tech AS of Norway and appearing in the file
** LICENSE.QPL included in the packaging of this file.
**
** Licensees holding valid Qt Professional Edition licenses may use this
** file in accordance with the Qt Professional Edition License Agreement
** provided with the Qt Professional Edition.
**
** See http://www.troll.no/pricing.html or email sales@troll.no for
** information about the Professional Edition licensing, or see
** http://www.troll.no/qpl/ for QPL licensing information.
**
*****************************************************************************/

#ifndef QCURSOR_H
#define QCURSOR_H

#ifndef QT_H
#include "qpoint.h"
#include "qshared.h"
#include "qnamespace.h"
#endif // QT_H


struct QCursorData;                             // internal cursor data


class Q_EXPORT QCursor                          // cursor class
{
public:
    QCursor();                                  // create default arrow cursor
    QCursor( int shape );
    QCursor( const QBitmap &bitmap, const QBitmap &mask,
             int hotX=-1, int hotY=-1 );
    QCursor( const QPixmap &pixmap,
             int hotX=-1, int hotY=-1 );
    QCursor( const QCursor & );
   ~QCursor();
    QCursor &operator=( const QCursor & );

    int           shape()   const;
    void          setShape( int );

    const QBitmap *bitmap() const;
    const QBitmap *mask()   const;
    QPoint        hotSpot() const;

#if defined(_WS_WIN_)
    HCURSOR       handle()  const;
#elif defined(_WS_X11_)
    HANDLE        handle()  const;
#endif

    static QPoint pos();
    static void   setPos( int x, int y );
    static void   setPos( const QPoint & );

    static void   initialize();
    static void   cleanup();

private:
    void          setBitmap( const QBitmap &bitmap, const QBitmap &mask,
                                 int hotX, int hotY );
    void          update() const;
    QCursorData  *data;
    QCursor      *find_cur(int);
};


inline void QCursor::setPos( const QPoint &p )
{
    setPos( p.x(), p.y() );
}


/*****************************************************************************
  Cursor shape identifiers (correspond to global cursor objects)
 *****************************************************************************/

enum QCursorShape {
    ArrowCursor, UpArrowCursor, CrossCursor, WaitCursor, IbeamCursor,
    SizeVerCursor, SizeHorCursor, SizeBDiagCursor, SizeFDiagCursor,
    SizeAllCursor, BlankCursor, SplitVCursor, SplitHCursor, PointingHandCursor,
    LastCursor=PointingHandCursor, BitmapCursor=24 };


/*****************************************************************************
  QCursor stream functions
 *****************************************************************************/

Q_EXPORT QDataStream &operator<<( QDataStream &, const QCursor & );
Q_EXPORT QDataStream &operator>>( QDataStream &, QCursor & );


#endif // QCURSOR_H


Copyright 1999 Troll TechTrademarks
Qt version 2.0.2