Qt 4.8
Public Functions | Protected Variables | Private Functions | Properties | List of all members
QPlatformSoftwareCursor Class Reference

#include <fb_base.h>

Inheritance diagram for QPlatformSoftwareCursor:
QPlatformCursor QObject QVNCCursor

Public Functions

virtual void changeCursor (QCursor *widgetCursor, QWidget *widget)
 This method is called by Qt whenever the cursor graphic should be changed. More...
 
QRect dirtyRect ()
 
virtual QRect drawCursor (QPainter &painter)
 
virtual bool isDirty ()
 
virtual bool isOnScreen ()
 
virtual QRect lastPainted ()
 
virtual void pointerEvent (const QMouseEvent &event)
 This method is called by Qt whenever a QMouseEvent is generated by the underlying pointer input. More...
 
 QPlatformSoftwareCursor (QPlatformScreen *scr)
 
virtual void setDirty ()
 
- Public Functions inherited from QPlatformCursor
virtual QPoint pos () const
 
 QPlatformCursor (QPlatformScreen *)
 Constructs a QPlatformCursor for the given screen. More...
 
virtual void setPos (const QPoint &pos)
 
- Public Functions inherited from QObject
bool blockSignals (bool b)
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). More...
 
const QObjectListchildren () const
 Returns a list of child objects. More...
 
bool connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=0, const QObject *receiver=0, const char *member=0)
 
bool disconnect (const QObject *receiver, const char *member=0)
 
void dumpObjectInfo ()
 Dumps information about signal connections, etc. More...
 
void dumpObjectTree ()
 Dumps a tree of children to the debug output. More...
 
QList< QByteArraydynamicPropertyNames () const
 Returns the names of all properties that were dynamically added to the object using setProperty(). More...
 
virtual bool event (QEvent *)
 This virtual function receives events to an object and should return true if the event e was recognized and processed. More...
 
virtual bool eventFilter (QObject *, QEvent *)
 Filters events if this object has been installed as an event filter for the watched object. More...
 
template<typename T >
findChild (const QString &aName=QString()) const
 Returns the child of this object that can be cast into type T and that is called name, or 0 if there is no such object. More...
 
template<typename T >
QList< T > findChildren (const QString &aName=QString()) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. More...
 
template<typename T >
QList< T > findChildren (const QRegExp &re) const
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false. More...
 
void installEventFilter (QObject *)
 Installs an event filter filterObj on this object. More...
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false. More...
 
void killTimer (int id)
 Kills the timer with timer identifier, id. More...
 
virtual const QMetaObjectmetaObject () const
 Returns a pointer to the meta-object of this object. More...
 
void moveToThread (QThread *thread)
 Changes the thread affinity for this object and its children. More...
 
QString objectName () const
 
QObjectparent () const
 Returns a pointer to the parent object. More...
 
QVariant property (const char *name) const
 Returns the value of the object's name property. More...
 
Q_INVOKABLE QObject (QObject *parent=0)
 Constructs an object with parent object parent. More...
 
void removeEventFilter (QObject *)
 Removes an event filter object obj from this object. More...
 
void setObjectName (const QString &name)
 
void setParent (QObject *)
 Makes the object a child of parent. More...
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value. More...
 
void setUserData (uint id, QObjectUserData *data)
 
bool signalsBlocked () const
 Returns true if signals are blocked; otherwise returns false. More...
 
int startTimer (int interval)
 Starts a timer and returns a timer identifier, or returns zero if it could not start a timer. More...
 
QThreadthread () const
 Returns the thread in which the object lives. More...
 
QObjectUserDatauserData (uint id) const
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects. More...
 

Protected Variables

QPlatformCursorImagegraphic
 
- Protected Variables inherited from QPlatformCursor
QPlatformScreenscreen
 
- Protected Variables inherited from QObject
QScopedPointer< QObjectDatad_ptr
 

Private Functions

QRect getCurrentRect ()
 
void setCursor (const uchar *data, const uchar *mask, int width, int height, int hotX, int hotY)
 
void setCursor (Qt::CursorShape shape)
 
void setCursor (const QImage &image, int hotx, int hoty)
 

Properties

QRect currentRect
 
bool dirty
 
bool onScreen
 
QRect prevRect
 

Additional Inherited Members

- Public Slots inherited from QObject
void deleteLater ()
 Schedules this object for deletion. More...
 
- Signals inherited from QObject
void destroyed (QObject *=0)
 This signal is emitted immediately before the object obj is destroyed, and can not be blocked. More...
 
- Static Public Functions inherited from QObject
static bool connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 Creates a connection of the given type from the signal in the sender object to the method in the receiver object. More...
 
static bool connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 Disconnects signal in object sender from method in object receiver. More...
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static uint registerUserData ()
 
static QString tr (const char *sourceText, const char *comment=0, int n=-1)
 
static QString trUtf8 (const char *sourceText, const char *comment=0, int n=-1)
 
- Static Public Variables inherited from QObject
static const QMetaObject staticMetaObject
 This variable stores the meta-object for the class. More...
 
- Protected Functions inherited from QObject
virtual void childEvent (QChildEvent *)
 This event handler can be reimplemented in a subclass to receive child events. More...
 
virtual void connectNotify (const char *signal)
 This virtual function is called when something has been connected to signal in this object. More...
 
virtual void customEvent (QEvent *)
 This event handler can be reimplemented in a subclass to receive custom events. More...
 
virtual void disconnectNotify (const char *signal)
 This virtual function is called when something has been disconnected from signal in this object. More...
 
 QObject (QObjectPrivate &dd, QObject *parent=0)
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal. More...
 
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns 0. More...
 
int senderSignalIndex () const
 
virtual void timerEvent (QTimerEvent *)
 This event handler can be reimplemented in a subclass to receive timer events for the object. More...
 
- Static Protected Variables inherited from QObject
static const QMetaObject staticQtMetaObject
 

Detailed Description

Definition at line 60 of file fb_base.h.

Constructors and Destructors

◆ QPlatformSoftwareCursor()

QPlatformSoftwareCursor::QPlatformSoftwareCursor ( QPlatformScreen scr)

Definition at line 49 of file fb_base.cpp.

51 {
52  graphic = new QPlatformCursorImage(0, 0, 0, 0, 0, 0);
54 }
void setCursor(const uchar *data, const uchar *mask, int width, int height, int hotX, int hotY)
Definition: fb_base.cpp:115
QPlatformCursor(QPlatformScreen *)
Constructs a QPlatformCursor for the given screen.
The QPlatformCursorImage class provides a set of graphics intended to be used as cursors.
The QRect class defines a rectangle in the plane using integer precision.
Definition: qrect.h:58
QPlatformCursorImage * graphic
Definition: fb_base.h:79

Functions

◆ changeCursor()

void QPlatformSoftwareCursor::changeCursor ( QCursor widgetCursor,
QWidget widget 
)
virtual

This method is called by Qt whenever the cursor graphic should be changed.

Implementation of this method is mandatory for a subclass of QPlatformCursor.

widgetCursor is a pointer to the QCursor that should be displayed.

widget is a pointer to the widget currently displayed at QCursor::pos(). Note that this may be 0 if the current position is not occupied by a displayed widget.

See also
QCursor::pos()

Implements QPlatformCursor.

Reimplemented in QVNCCursor.

Definition at line 120 of file fb_base.cpp.

Referenced by QVNCCursor::changeCursor().

121 {
122 #ifdef QT_NO_CURSOR
123  Q_UNUSED(widgetCursor);
124  Q_UNUSED(widget);
125 #else
126  Q_UNUSED(widget);
127  Qt::CursorShape shape = widgetCursor->shape();
128 
129  if (shape == Qt::BitmapCursor) {
130  // application supplied cursor
131  QPoint spot = widgetCursor->hotSpot();
132  setCursor(widgetCursor->pixmap().toImage(), spot.x(), spot.y());
133  } else {
134  // system cursor
135  setCursor(shape);
136  }
138  QPoint screenOffset = screen->geometry().topLeft(); // global to local translation
139  if (onScreen || screen->geometry().intersects(currentRect.translated(screenOffset)))
140  setDirty();
141 #endif
142 }
QImage toImage() const
Converts the pixmap to a QImage.
Definition: qpixmap.cpp:542
QRect translated(int dx, int dy) const
Returns a copy of the rectangle that is translated dx along the x axis and dy along the y axis...
Definition: qrect.h:328
void setCursor(const uchar *data, const uchar *mask, int width, int height, int hotX, int hotY)
Definition: fb_base.cpp:115
QPixmap pixmap() const
Returns the cursor pixmap.
Definition: qcursor.cpp:528
virtual QRect geometry() const =0
Reimplement in subclass to return the pixel geometry of the screen.
QPoint hotSpot() const
Returns the cursor hot spot, or (0, 0) if it is one of the standard cursors.
Definition: qcursor.cpp:540
CursorShape
Definition: qnamespace.h:1262
The QPoint class defines a point in the plane using integer precision.
Definition: qpoint.h:53
QPlatformScreen * screen
int y() const
Returns the y coordinate of this point.
Definition: qpoint.h:131
bool intersects(const QRect &r) const
Returns true if this rectangle intersects with the given rectangle (i.
Definition: qrect.cpp:1429
int x() const
Returns the x coordinate of this point.
Definition: qpoint.h:128
virtual void setDirty()
Definition: fb_base.h:73
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun...
Definition: qglobal.h:1729
Qt::CursorShape shape() const
Returns the cursor shape identifier.
Definition: qcursor.cpp:469
QPoint topLeft() const
Returns the position of the rectangle&#39;s top-left corner.
Definition: qrect.h:288

◆ dirtyRect()

QRect QPlatformSoftwareCursor::dirtyRect ( )

Definition at line 96 of file fb_base.cpp.

Referenced by QFbScreen::doRedraw().

97 {
98  if (onScreen) {
99  onScreen = false;
100  return prevRect;
101  }
102  return QRect();
103 }
The QRect class defines a rectangle in the plane using integer precision.
Definition: qrect.h:58

◆ drawCursor()

QRect QPlatformSoftwareCursor::drawCursor ( QPainter painter)
virtual

Reimplemented in QVNCCursor.

Definition at line 78 of file fb_base.cpp.

Referenced by QFbScreen::doRedraw(), and QVNCCursor::drawCursor().

79 {
80  dirty = false;
81  if (currentRect.isNull())
82  return QRect();
83 
84  // We need this because the cursor might be dirty due to moving off screen
85  QPoint screenOffset = screen->geometry().topLeft();
86  // global to local translation
87  if (!currentRect.translated(screenOffset).intersects(screen->geometry()))
88  return QRect();
89 
91  painter.drawImage(prevRect, *graphic->image());
92  onScreen = true;
93  return prevRect;
94 }
bool isNull() const
Returns true if the rectangle is a null rectangle, otherwise returns false.
Definition: qrect.h:231
QRect translated(int dx, int dy) const
Returns a copy of the rectangle that is translated dx along the x axis and dy along the y axis...
Definition: qrect.h:328
QImage * image()
Return the cursor graphic as a pointer to a QImage.
virtual QRect geometry() const =0
Reimplement in subclass to return the pixel geometry of the screen.
The QPoint class defines a point in the plane using integer precision.
Definition: qpoint.h:53
QPlatformScreen * screen
The QRect class defines a rectangle in the plane using integer precision.
Definition: qrect.h:58
void drawImage(const QRectF &targetRect, const QImage &image, const QRectF &sourceRect, Qt::ImageConversionFlags flags=Qt::AutoColor)
Definition: qpainter.cpp:5936
bool intersects(const QRect &r) const
Returns true if this rectangle intersects with the given rectangle (i.
Definition: qrect.cpp:1429
QPlatformCursorImage * graphic
Definition: fb_base.h:79
QPoint topLeft() const
Returns the position of the rectangle&#39;s top-left corner.
Definition: qrect.h:288

◆ getCurrentRect()

QRect QPlatformSoftwareCursor::getCurrentRect ( )
private

Definition at line 56 of file fb_base.cpp.

Referenced by changeCursor(), and pointerEvent().

57 {
58  QRect rect = graphic->image()->rect().translated(-graphic->hotspot().x(),
59  -graphic->hotspot().y());
60  rect.translate(QCursor::pos());
61  QPoint screenOffset = screen->geometry().topLeft();
62  rect.translate(-screenOffset); // global to local translation
63  return rect;
64 }
QRect translated(int dx, int dy) const
Returns a copy of the rectangle that is translated dx along the x axis and dy along the y axis...
Definition: qrect.h:328
QRect rect() const
Returns the enclosing rectangle (0, 0, width(), height()) of the image.
Definition: qimage.cpp:1603
QImage * image()
Return the cursor graphic as a pointer to a QImage.
virtual QRect geometry() const =0
Reimplement in subclass to return the pixel geometry of the screen.
QPoint hotspot()
Return the cursor&#39;s hotspot.
The QPoint class defines a point in the plane using integer precision.
Definition: qpoint.h:53
QPlatformScreen * screen
The QRect class defines a rectangle in the plane using integer precision.
Definition: qrect.h:58
int y() const
Returns the y coordinate of this point.
Definition: qpoint.h:131
int x() const
Returns the x coordinate of this point.
Definition: qpoint.h:128
QPlatformCursorImage * graphic
Definition: fb_base.h:79
void translate(int dx, int dy)
Moves the rectangle dx along the x axis and dy along the y axis, relative to the current position...
Definition: qrect.h:312
static QPoint pos()
Returns the position of the cursor (hot spot) in global screen coordinates.
Definition: qcursor_mac.mm:310
QPoint topLeft() const
Returns the position of the rectangle&#39;s top-left corner.
Definition: qrect.h:288

◆ isDirty()

virtual bool QPlatformSoftwareCursor::isDirty ( )
inlinevirtual

Definition at line 74 of file fb_base.h.

Referenced by QFbScreen::doRedraw().

74 { return dirty; }

◆ isOnScreen()

virtual bool QPlatformSoftwareCursor::isOnScreen ( )
inlinevirtual

Definition at line 75 of file fb_base.h.

Referenced by QFbScreen::doRedraw().

75 { return onScreen; }

◆ lastPainted()

virtual QRect QPlatformSoftwareCursor::lastPainted ( )
inlinevirtual

Definition at line 76 of file fb_base.h.

Referenced by QFbScreen::doRedraw().

76 { return prevRect; }

◆ pointerEvent()

void QPlatformSoftwareCursor::pointerEvent ( const QMouseEvent event)
virtual

This method is called by Qt whenever a QMouseEvent is generated by the underlying pointer input.

event is a reference to the QMouseEvent in question. A default do-nothing implementation is provided.

Reimplemented from QPlatformCursor.

Definition at line 67 of file fb_base.cpp.

Referenced by QVNCServer::hasClientCursor(), and QVNCServer::setCursor().

68 {
69  Q_UNUSED(e);
70  QPoint screenOffset = screen->geometry().topLeft();
72  // global to local translation
73  if (onScreen || screen->geometry().intersects(currentRect.translated(screenOffset))) {
74  setDirty();
75  }
76 }
QRect translated(int dx, int dy) const
Returns a copy of the rectangle that is translated dx along the x axis and dy along the y axis...
Definition: qrect.h:328
virtual QRect geometry() const =0
Reimplement in subclass to return the pixel geometry of the screen.
The QPoint class defines a point in the plane using integer precision.
Definition: qpoint.h:53
QPlatformScreen * screen
bool intersects(const QRect &r) const
Returns true if this rectangle intersects with the given rectangle (i.
Definition: qrect.cpp:1429
virtual void setDirty()
Definition: fb_base.h:73
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun...
Definition: qglobal.h:1729
QPoint topLeft() const
Returns the position of the rectangle&#39;s top-left corner.
Definition: qrect.h:288

◆ setCursor() [1/3]

void QPlatformSoftwareCursor::setCursor ( const uchar data,
const uchar mask,
int  width,
int  height,
int  hotX,
int  hotY 
)
private

Definition at line 115 of file fb_base.cpp.

Referenced by changeCursor(), and QPlatformSoftwareCursor().

116 {
117  graphic->set(data, mask, width, height, hotX, hotY);
118 }
static const char * data(const QByteArray &arr)
void set(const uchar *data, const uchar *mask, int width, int height, int hotX, int hotY)
Sets the cursor image to the graphic represented by the combination of data and mask, with dimensions given by width and height and a hotspot at the point specified by (hx, hy).
QPlatformCursorImage * graphic
Definition: fb_base.h:79

◆ setCursor() [2/3]

void QPlatformSoftwareCursor::setCursor ( Qt::CursorShape  shape)
private

Definition at line 105 of file fb_base.cpp.

106 {
107  graphic->set(shape);
108 }
void set(const uchar *data, const uchar *mask, int width, int height, int hotX, int hotY)
Sets the cursor image to the graphic represented by the combination of data and mask, with dimensions given by width and height and a hotspot at the point specified by (hx, hy).
QPlatformCursorImage * graphic
Definition: fb_base.h:79

◆ setCursor() [3/3]

void QPlatformSoftwareCursor::setCursor ( const QImage image,
int  hotx,
int  hoty 
)
private

Definition at line 110 of file fb_base.cpp.

111 {
112  graphic->set(image, hotx, hoty);
113 }
void set(const uchar *data, const uchar *mask, int width, int height, int hotX, int hotY)
Sets the cursor image to the graphic represented by the combination of data and mask, with dimensions given by width and height and a hotspot at the point specified by (hx, hy).
QPlatformCursorImage * graphic
Definition: fb_base.h:79

◆ setDirty()

virtual void QPlatformSoftwareCursor::setDirty ( )
inlinevirtual

Properties

◆ currentRect

QRect QPlatformSoftwareCursor::currentRect
private

Definition at line 85 of file fb_base.h.

Referenced by changeCursor(), drawCursor(), and pointerEvent().

◆ dirty

bool QPlatformSoftwareCursor::dirty
private

Definition at line 88 of file fb_base.h.

Referenced by drawCursor(), isDirty(), QVNCCursor::move(), QVNCCursor::set(), and setDirty().

◆ graphic

QPlatformCursorImage* QPlatformSoftwareCursor::graphic
protected

◆ onScreen

bool QPlatformSoftwareCursor::onScreen
private

Definition at line 89 of file fb_base.h.

Referenced by changeCursor(), dirtyRect(), drawCursor(), isOnScreen(), and pointerEvent().

◆ prevRect

QRect QPlatformSoftwareCursor::prevRect
private

Definition at line 86 of file fb_base.h.

Referenced by dirtyRect(), drawCursor(), and lastPainted().


The documentation for this class was generated from the following files: