diff --git a/python/core/qgsvectoroverlay.sip b/python/core/qgsvectoroverlay.sip new file mode 100644 index 00000000000..87176cd9ee1 --- /dev/null +++ b/python/core/qgsvectoroverlay.sip @@ -0,0 +1,56 @@ +class CORE_EXPORT QgsVectorOverlay +{ +%TypeHeaderCode +#include "qgsvectoroverlay.h" +%End + public: + QgsVectorOverlay( QgsVectorLayer* vl ); + virtual ~QgsVectorOverlay(); + + /**Create the overlay objects contained in a view extent. Subclasses need to implement this method and assign width/height information to the overlay ovbjects*/ + + virtual void createOverlayObjects( const QgsRenderContext& renderContext ) = 0; + + /**Remove the overlay objects and release their memory*/ + void removeOverlayObjects(); + + /**Draw the overlay objects*/ + virtual void drawOverlayObjects( QgsRenderContext& context ) const = 0; + + /**Gives direct access to oberlay objects*/ + QMap* overlayObjects() {return &mOverlayObjects;} + + /**Describes the overlay type (e.g. "diagram" or "label")*/ + virtual QString typeName() const = 0; + + /**Set attribute indices necessary to fetch*/ + void setAttributes( const QgsAttributeList& list ) {mAttributes = list;} + + bool displayFlag() const {return mDisplayFlag;} + + /**Display yes/no*/ + void setDisplayFlag( bool flag ) {mDisplayFlag = flag;} + + /**Restore from project file*/ + virtual bool readXML( const QDomNode& overlayNode ) = 0; + + /**Save to project file*/ + virtual bool writeXML( QDomNode& layer_node, QDomDocument& doc ) const = 0; + + protected: + /**Pointer to the vector layer for this overlay*/ + QgsVectorLayer* mVectorLayer; + + /**True if overlay should be displayed*/ + bool mDisplayFlag; + + /**A list with attribute indexes that are needed for overlay rendering*/ + QgsAttributeList mAttributes; + + /**Key: feature ids, value: the corresponding overlay objects. Normally, they are created for each redraw and deleted before the next redraw*/ + QMap mOverlayObjects; + + /**Position constraints that may be set to be persistent after redraws. Key is the feature id, value the map point + where the feature should be placed*/ + QMap mPositionConstraints; +};