KGameCanvasAdapter

Search for usage in LXR

KGameCanvasAdapter Class Referenceabstract

#include <KGameCanvas>

Inheritance diagram for KGameCanvasAdapter:

Public Member Functions

 KGameCanvasAdapter ()
 
QPoint canvasPosition () const override
 
virtual void render (QPainter *p)
 
class KGameCanvasWidgettopLevelCanvas () override
 
virtual void updateParent (const QRect &rect)=0
 
- Public Member Functions inherited from KGameCanvasAbstract
 KGameCanvasAbstract ()
 
KGameCanvasItemitemAt (const QPoint &pos) const
 
KGameCanvasItemitemAt (int x, int y) const
 
const QList< KGameCanvasItem * > * items () const
 
QList< KGameCanvasItem * > itemsAt (const QPoint &pos) const
 
QList< KGameCanvasItem * > itemsAt (int x, int y) const
 

Additional Inherited Members

- Protected Attributes inherited from KGameCanvasAbstract
QList< KGameCanvasItem * > m_animated_items
 
QList< KGameCanvasItem * > m_items
 

Detailed Description

A generic adapter for KGameCanvas.

KGameCanvasAdapter can be used to draw content managed by KGameCanvas inside systems which do not use KGameCanvas internally for their rendering.

For example, suppose you have a widget CustomDisplay which paints itself with direct QPainter calls in its paintEvent, and you want to add a complex element to its rendering, which is best implemented via the KGameCanvas abstractions. What you can do is to create a KGameCanvasAdapter subclass, use it just like a KGameCanvasGroup, then call its render member function to have a QPainter object draw it.

A KGameCanvas adapter notifies its parent using the pure virtual function updateParent, which is called when the adapter content is invalidated.

Todo:
Support animations
Deprecated:
For new applications, use Qt's Graphics View framework or Qt Quick.

Definition at line 682 of file kgamecanvas.h.

Constructor & Destructor Documentation

◆ KGameCanvasAdapter()

KGameCanvasAdapter::KGameCanvasAdapter ( )

Constructor.

Definition at line 990 of file kgamecanvas.cpp.

Member Function Documentation

◆ canvasPosition()

QPoint KGameCanvasAdapter::canvasPosition ( ) const
inlineoverridevirtual

The absolute position of the rendered content is not well defined for KGameCanvasAdapter.

We assume that the adapter will be rendered at (0,0), and leave it to the user to perform the necessary adjustments, which will depend on the chosen rendering method.

Returns
The point (0, 0).

Implements KGameCanvasAbstract.

Definition at line 719 of file kgamecanvas.h.

◆ render()

void KGameCanvasAdapter::render ( QPainter p)
virtual

Draw the items of the adapter using the specified painter.

Parameters
pThe QPainter object to be used for rendering.

Definition at line 1008 of file kgamecanvas.cpp.

◆ topLevelCanvas()

class KGameCanvasWidget* KGameCanvasAdapter::topLevelCanvas ( )
inlineoverridevirtual

An adapter is not associated to any canvas, so this function simply returns 0.

Implements KGameCanvasAbstract.

Definition at line 705 of file kgamecanvas.h.

◆ updateParent()

virtual void KGameCanvasAdapter::updateParent ( const QRect rect)
pure virtual

Notify the parent that the adapter content inside rect needs to be redrawn.

rect The bounding rectangle of the region that needs repainting.


The documentation for this class was generated from the following files:
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Wed Sep 27 2023 04:05:14 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.