/** \ingroup MapComposer * A item that forms part of a map composition. */ class QgsComposerObject : QObject { %TypeHeaderCode #include %End public: /** Data defined properties for different item types */ enum DataDefinedProperty { NoProperty = 0, /*< no property */ AllProperties, /*< all properties for item */ //composer page properties PresetPaperSize, /*< preset paper size for composition */ PaperWidth, /*< paper width */ PaperHeight, /*< paper height */ NumPages, /*< number of pages in composition */ PaperOrientation, /*< paper orientation */ //general composer item properties PageNumber, /*< page number for item placement */ PositionX, /*< x position on page */ PositionY, /*< y position on page */ ItemWidth, /*< width of item */ ItemHeight, /*< height of item */ ItemRotation, /*< rotation of item */ Transparency, /*< item transparency */ BlendMode, /*< item blend mode */ //composer map MapRotation, /*< map rotation */ MapScale, /*< map scale */ MapXMin, /*< map extent x minimum */ MapYMin, /*< map extent y minimum */ MapXMax, /*< map extent x maximum */ MapYMax, /*< map extent y maximum */ //composer picture PictureSource /*< picture source url */ }; /** Specifies whether the value returned by a function should be the original, user * set value, or the current evaluated value for the property. This may differ if * a property has a data defined expression active. */ enum PropertyValueType { EvaluatedValue = 0, /*< return the current evaluated value for the property */ OriginalValue /*< return the original, user set value */ }; /**Constructor * @param composition parent composition */ QgsComposerObject( QgsComposition* composition ); virtual ~QgsComposerObject(); /**Returns the composition the item is attached to. * @returns QgsComposition for item. */ const QgsComposition* composition() const; /**Stores item state in DOM element * @param elem is DOM element corresponding to 'Composer' tag * @param doc is the DOM document */ virtual bool writeXML( QDomElement& elem, QDomDocument & doc ) const; /**Sets item state from DOM element * @param itemElem is DOM node corresponding to item tag * @param doc is DOM document */ virtual bool readXML( const QDomElement& itemElem, const QDomDocument& doc ); /**Returns a reference to the data defined settings for one of the item's data defined properties. * @param property data defined property to return * @note this method was added in version 2.5 */ QgsDataDefined* dataDefinedProperty( const DataDefinedProperty property ) const; /**Sets parameters for a data defined property for the item * @param property data defined property to set * @param active true if data defined property is active, false if it is disabled * @param useExpression true if the expression should be used * @param expression expression for data defined property * @field field name if the data defined property should take its value from a field * @note this method was added in version 2.5 */ void setDataDefinedProperty( const DataDefinedProperty property, const bool active, const bool useExpression, const QString &expression, const QString &field ); public slots: /**Triggers a redraw for the item*/ virtual void repaint(); /**Refreshes a data defined property for the item by reevaluating the property's value * and redrawing the item with this new value. * @param property data defined property to refresh. If property is set to * QgsComposerItem::AllProperties then all data defined properties for the item will be * refreshed. * @note this method was added in version 2.5 */ virtual void refreshDataDefinedProperty( const DataDefinedProperty property = AllProperties ); protected: /**Evaluate a data defined property and return the calculated value * @returns true if data defined property could be successfully evaluated * @param property data defined property to evaluate * @param expressionValue QVariant for storing the evaluated value * @note this method was added in version 2.5 */ bool dataDefinedEvaluate( QgsComposerObject::DataDefinedProperty property, QVariant &expressionValue ); signals: /**Emitted when the item changes. Signifies that the item widgets must update the * gui elements. */ void itemChanged(); };