diff options
Diffstat (limited to 'kchart/kdchart/KDChartPropertySet.h')
-rw-r--r-- | kchart/kdchart/KDChartPropertySet.h | 985 |
1 files changed, 985 insertions, 0 deletions
diff --git a/kchart/kdchart/KDChartPropertySet.h b/kchart/kdchart/KDChartPropertySet.h new file mode 100644 index 00000000..306109cd --- /dev/null +++ b/kchart/kdchart/KDChartPropertySet.h @@ -0,0 +1,985 @@ +/* -*- Mode: C++ -*- + KDChart - a multi-platform charting engine + */ + +/**************************************************************************** + ** Copyright (C) 2001-2003 Klarälvdalens Datakonsult AB. All rights reserved. + ** + ** This file is part of the KDChart library. + ** + ** This file may be distributed and/or modified under the terms of the + ** GNU General Public License version 2 as published by the Free Software + ** Foundation and appearing in the file LICENSE.GPL included in the + ** packaging of this file. + ** + ** Licensees holding valid commercial KDChart licenses may use this file in + ** accordance with the KDChart Commercial License Agreement provided with + ** the Software. + ** + ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE + ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + ** + ** See http://www.klaralvdalens-datakonsult.se/?page=products for + ** information about KDChart Commercial License Agreements. + ** + ** Contact info@klaralvdalens-datakonsult.se if any conditions of this + ** licensing are not clear to you. + ** + **********************************************************************/ +#ifndef __KDCHARTPROPERTYSET__ +#define __KDCHARTPROPERTYSET__ + + +#include <KDChartEnums.h> +#include <kdchart_export.h> +#include <qdom.h> +#include <qcolor.h> +#include <qbrush.h> + +/** + \file KDChartPropertySet.h + + \brief Property settings of a single KDChart data cell. + */ + +/** + \class KDChartPropertySet KDChartPropertySet.h + \brief Property settings of a single KDChart data cell. + + \note The property settings feature currently is supported by + normal (== not 3-dimensional!) Line Charts only. Future releases + of KDChart will offer a rich set of options to use cell-specific + properties for other chart types as well... + + The KDChartPropertySet class stores several settings to be + used by the painter classes to decide how to visualize the + respective data cell. + Each of the settings may be specified either by giving a + value for it or by using the ID of another KDChartPropertySet +instance: If the later the value of that instance is used +instead of the value that is stored locally. + +\sa KDChartData::setPropertySet +\sa KDCHART_PROPSET_NORMAL_DATA, KDCHART_PROPSET_TRANSPARENT_DATA +\sa KDChartParams::registerProperties +*/ +class KDCHART_EXPORT KDChartPropertySet :public QObject +{ + Q_OBJECT + Q_ENUMS( SpecialDataPropertyID ) + + // Required by QSA + Q_ENUMS( PenStyle ) + + friend class KDChartParams; + + public: + /** + Special property IDs. + + \li \c UndefinedID (the default value) + used to indicate that <b>no</b> ID was set for + members \c mIdLineWidth, \c mIdLineColor, + \c mIdLineStyle, \c mIdShowMarker and the like... + + \li \c OwnID used for referencing a property set's *own* ID. + + \sa KDChartPropertySet + */ + enum SpecialDataPropertyID { + UndefinedID = -2, + OwnID = -1 + }; + + /** + default constructor setting all values to undefined + and name to empty string + */ + KDChartPropertySet() : + mOwnID( UndefinedID ) + { fullReset(""); } + + + /** + Constructor setting all Property Set IDs to the same ID value. + + This constructor may be used to initialize a property set + and let it have all property IDs set to a specific value, + e.g. you might pass KDCHART_PROPSET_NORMAL_DATA + as ID to make the default property set the parent of all + values. + + \param name (may be empty) a name describing this property set. + \param idParent the ID of the parent property set. Skip this paramter + to define a property set without specifying a parent. + */ + KDChartPropertySet( const QString& name, int idParent=KDChartPropertySet::UndefinedID ) : + mOwnID( UndefinedID ) + { fullReset( name, idParent ); } + + + /** + Copy the settings stored by property set \c source into this property set. + + \note Use this method instead of using the assignment operator. + + \sa clone, quickReset, fullReset + */ + void deepCopy( const KDChartPropertySet* source ); + + + /** + Create a new property set on the heap, copy the settings stored by + this property set into the newly created property set and return + the pointer to the new property set. + + \note Use this method instead of using the copy constructor. + + \sa deepCopy, quickReset, fullReset + */ + const KDChartPropertySet* clone() const; + + + /** + Set the name, + set all of the ID settings to idParent, + but do NOT change the value settings, + and do NOT modify mOwnID. + + \note Use this to quickly reset the ID settings: in most cases this should + be sufficient for resetting the property set. + + \sa clone, fullReset + */ + void quickReset( const QString& name, int idParent=KDChartPropertySet::UndefinedID ); + + + /** + Set the name, + set all of the ID settings to idParent, + set all of the value settings back to their default value, + but do NOT modify mOwnID. + + \note Use this to entirely reset both the ID values and the value settings: one of + the very few reasons why you might want to do that might be your saving this property set + into a data stream. In most other cases just calling quickReset should be sufficient. + + \sa clone, quickReset + */ + void fullReset( const QString& name, int idParent=KDChartPropertySet::UndefinedID ); + + + /** + Save this property set's settings in a stream, + this stores the own property set ID as well. + + \sa loadXML + */ + QDomElement saveXML(QDomDocument& doc) const; + + + /** + Retrieves a property set and stores it in parameter set. + + \note Since the property set's internal <b>ID</b> is also read + make sure to call KDChartParams::setProperties( set.id(), set ) + after calling \c load() if you want to use the loaded + property set in the context of KDChartParam settings. + + \returns TRUE if the property set could be read. + + \sa id, saveXLM + */ + static bool loadXML( const QDomElement& element, KDChartPropertySet& set ); + +public slots: + /** + Returns the name of this property set. + */ + int id() const { return mOwnID; } + + /** + Change the descriptive name of this property set. + */ + void setName( const QString& name ) + { + mName = name; + } + + /** + Returns the name of this property set. + */ + QString name() const { return mName; } + + + + /** + Specify the ID of the property set specifying a boolean flag indicating + whether this cell's bar is to be painted + <b>or</b> specifying this flag directly. + + \note This function should be used for Bar Charts only, otherwise + the settings specified here will be ignored. + + \param idShowBar ID of the property set specifying the flag + indicating whether this cell's bar is to be painted. + Use special value KDChartPropertySet::UndefinedID + to specify neither another property set's ID + nor an own value for this flag. + Use special value KDChartPropertySet::OwnID + if you do NOT want to inherit another property set's + settings but want to specify the flag by using + the following parameter. + \param showBar Flag indicating whether this cell's bar is to be painted. + This parameter is stored but ignored if the previous parameter + is not set to KDChartPropertySet::OwnID. + + \sa hasOwnShowBar + \sa setBarColor + \sa hasOwnBarColor + */ + void setShowBar( int idShowBar, bool showBar ) + { + mIdShowBar = idShowBar; + mShowBar = showBar; + } + + /** + Returns whether this property set is specifying it's own flag indicating + whether this cell's bar is to be painted. + + \note This function should be used for Bar Charts only, otherwise + the settings specified here will be ignored. + + \returns TRUE if this property set is specifying it's own showBar flag, + FALSE if the settings of another property set are to be used instead. + + \note The return value will also be FALSE if the 'default' properties + are to be used: in this case idShowBar will be KDChartParams::NormalData + + \param idShowBar to be ignored if return value is TRUE. + If idShowBar is KDChartPropertySet::UndefinedID + then neither a property set ID + nor an own flag were specified (so no special + enabeling/disabeling of bars is associated to the + respective data cell), else idShowBar contains the + ID of another property set that is specifying the flag + to be used. + \param showBar this parameter's value is not modified if return value is FALSE. + Parameter showBar contains the showBar flag + associated with the respective data cell. + If return value is FALSE the showBar + flag is not set (so the parameter keeps its previous value) + but this is to be overridden by the respective value + of another property set that is indicated + by the idShowBar parameter - unless this has the special + value KDChartPropertySet::UndefinedID as decribed above. + + \sa setShowBar + \sa setBarColor + \sa hasOwnBarColor + */ + bool hasOwnShowBar( int& idShowBar, bool& showBar ) + { + idShowBar = mIdShowBar; + if( OwnID == idShowBar ){ + showBar = mShowBar; + return true; + } + return false; + } + + /** + Specify the ID of the property set specifying the bar color + to be used for this cell + <b>or</b> specify the bar color directly. + + \note This function should be used for Bar Charts only, otherwise + the settings specified here will be ignored. + + \param idBarColor ID of the property set specifying the bar color. + Use special value KDChartPropertySet::UndefinedID + to specify neither another property set's ID + nor an own value for the bar color. + Use special value KDChartPropertySet::OwnID + if you do NOT want to inherit another property set's + settings but want to specify the bar color by using + the following parameter. + \param barColor The bar color to be used. + This parameter is stored but ignored if the previous parameter + is not set to KDChartPropertySet::OwnID. + + \sa hasOwnBarColor + */ + void setBarColor( int idBarColor, const QColor& barColor ) + { + mIdBarColor = idBarColor; + mBarColor = barColor; + } + + /** + Returns whether this property set is specifying it's own bar color settings. + + \note This function should be used for Bar Charts only, otherwise + the settings specified here will be ignored. + + \returns TRUE if this property set is specifying it's own bar color settings, + FALSE if the settings of another property set are to be used instead. + + \note The return value will also be FALSE if the 'default' properties + are to be used: in this case idBarColor will be KDChartParams::NormalData + + \param idBarColor to be ignored if return value is TRUE. + If idBarColor is KDChartPropertySet::UndefinedID + then neither a property set ID + nor an own bar color were specified (so no special + Bar color is associated to the respective data cell), + else idBarColor contains the ID of another property set + that is specifying the Bar color to be used. + \param barColor this parameter's value is not modified if return value is FALSE. + Parameter barColor contains the bar color value + associated with the respective data cell. + If return value is FALSE the barColor + value is not set (so the parameter keeps its previous value) + but this is to be overridden by the respective value + of another property set that is indicated + by the idBarColor parameter - unless this has the special + value KDChartPropertySet::UndefinedID as decribed above. + + \sa setBarColor + */ + bool hasOwnBarColor( int& idBarColor, QColor& barColor ) + { + idBarColor = mIdBarColor; + if( OwnID == mIdBarColor ){ + barColor = mBarColor; + return true; + } + return false; + } + + + /** + Specify the ID of the property set specifying the line width + to be used for drawing a line from this data point to the next one + <b>or</b> specify the line width directly. + + \note This function should be used for Line Charts only, otherwise + the settings specified here will be ignored. + + \param idLineWidth ID of the property set specifying the line width. + Use special value KDChartPropertySet::UndefinedID + to specify neither another property set's ID + nor an own value for the line width. + Use special value KDChartPropertySet::OwnID + if you do NOT want to inherit another property set's + settings but want to specify the line width by using + the following parameter. + \param lineWidth The line width to be used. + This parameter is stored but ignored if the previous parameter + is not set to KDChartPropertySet::OwnID. + + \sa setLineWidth, setLineColor, setLineStyle, setShowMarker + \sa hasOwnLineWidth, hasOwnLineColor, hasOwnLineStyle, hasOwnShowMarker + */ + void setLineWidth( int idLineWidth, int lineWidth ) + { + mIdLineWidth = idLineWidth; + mLineWidth = lineWidth; + } + + /** + Returns whether this property set is specifying it's own line width settings. + + \note This function should be used for Line Charts only. + + \returns TRUE if this property set is specifying it's own line width settings, + FALSE if the settings of another property set are to be used instead. + + \param idLineWidth to be ignored if return value is TRUE. + If idLineWidth is KDChartPropertySet::UndefinedID + then neither a property set ID + nor an own line width were specified (so no special + line width is associated to the respective data cell), + else idLineWidth contains the ID of another property set + that is specifying the line width to be used. + \param lineWidth this parameter's value is not modified if return value is FALSE. + Parameter lineWidth contains the line width value + associated with the respective data cell. + If return value is FALSE the lineWidth + value is not set (so the parameter keeps its previous value) + but this is to be overridden by the respective value + of another property set that is indicated + by the idLineWidth parameter - unless this has the special + value KDChartPropertySet::UndefinedID as decribed above. + + \sa setLineWidth, setLineColor, setLineStyle, setShowMarker + \sa hasOwnLineColor, hasOwnLineStyle, hasOwnShowMarker + */ + bool hasOwnLineWidth( int& idLineWidth, int& lineWidth ) + { + idLineWidth = mIdLineWidth; + if( OwnID == mIdLineWidth ){ + lineWidth = mLineWidth; + return true; + } + return false; + } + + /** + Specify the ID of the property set specifying the line color + to be used for drawing a line from this data point to the next one + <b>or</b> specify the line color directly. + + \note This function should be used for Line Charts only, otherwise + the settings specified here will be ignored. + + \param idLineColor ID of the property set specifying the line color. + Use special value KDChartPropertySet::UndefinedID + to specify neither another property set's ID + nor an own value for the line color. + Use special value KDChartPropertySet::OwnID + if you do NOT want to inherit another property set's + settings but want to specify the line color by using + the following parameter. + \param lineColor The line color to be used. + This parameter is stored but ignored if the previous parameter + is not set to KDChartPropertySet::OwnID. + + \sa setLineWidth, setLineStyle, setShowMarker + \sa hasOwnLineWidth, hasOwnLineColor, hasOwnLineStyle, hasOwnShowMarker + */ + void setLineColor( int idLineColor, const QColor& lineColor ) + { + mIdLineColor = idLineColor; + mLineColor = lineColor; + } + + /** + Returns whether this property set is specifying it's own line color settings. + + \note This function should be used for Line Charts only, otherwise + the settings specified here will be ignored. + + \returns TRUE if this property set is specifying it's own line color settings, + FALSE if the settings of another property set are to be used instead. + + \note The return value will also be FALSE if the 'default' properties + are to be used: in this case idLineColor will be KDChartParams::NormalData + + \param idLineColor to be ignored if return value is TRUE. + If idLineColor is KDChartPropertySet::UndefinedID + then neither a property set ID + nor an own line color were specified (so no special + line color is associated to the respective data cell), + else idLineColor contains the ID of another property set + that is specifying the line color to be used. + \param lineColor this parameter's value is not modified if return value is FALSE. + Parameter lineColor contains the line color value + associated with the respective data cell. + If return value is FALSE the lineColor + value is not set (so the parameter keeps its previous value) + but this is to be overridden by the respective value + of another property set that is indicated + by the idLineColor parameter - unless this has the special + value KDChartPropertySet::UndefinedID as decribed above. + + \sa setLineWidth, setLineColor, setLineStyle, setShowMarker + \sa hasOwnLineWidth, hasOwnLineStyle, hasOwnShowMarker + */ + bool hasOwnLineColor( int& idLineColor, QColor& lineColor ) + { + idLineColor = mIdLineColor; + if( OwnID == mIdLineColor ){ + lineColor = mLineColor; + return true; + } + return false; + } + + /** + Specify the ID of the property set specifying the line style + to be used for drawing a line from this data point to the next one + <b>or</b> specify the line width directly. + + \note This function should be used for Line Charts only, otherwise + the settings specified here will be ignored. + + \param idLineStyle ID of the property set specifying the line style. + Use special value KDChartPropertySet::UndefinedID + to specify neither another property set's ID + nor an own value for the line style. + Use special value KDChartPropertySet::OwnID + if you do NOT want to inherit another property set's + settings but want to specify the line style by using + the following parameter. + \param lineStyle The line style to be used. + This parameter is stored but ignored if the previous parameter + is not set to KDChartPropertySet::OwnID. + + \sa setLineWidth, setLineColor, setShowMarker + \sa hasOwnLineWidth, hasOwnLineColor, hasOwnLineStyle, hasOwnShowMarker + */ + void setLineStyle( int idLineStyle, const PenStyle& lineStyle ) + { + mIdLineStyle = idLineStyle; + mLineStyle = lineStyle; + } + + /** + Returns whether this property set is specifying it's own line style settings. + + \note This function should be used for Line Charts only, otherwise + the settings specified here will be ignored. + + \returns TRUE if this property set is specifying it's own line style settings, + FALSE if the settings of another property set are to be used instead. + + \note The return value will also be FALSE if the 'default' properties + are to be used: in this case idLineStyle will be KDChartParams::NormalData + + \param idLineStyle to be ignored if return value is TRUE. + If idLineStyle is KDChartPropertySet::UndefinedID + then neither a property set ID + nor an own line style were specified (so no special + line style is associated to the respective data cell), + else idLineStyle contains the ID of another property set + that is specifying the line style to be used. + \param lineStyle this parameter's value is not modified if return value is FALSE. + Parameter lineStyle contains the line style value + associated with the respective data cell. + If return value is FALSE the lineStyle + value is not set (so the parameter keeps its previous value) + but this is to be overridden by the respective value + of another property set that is indicated + by the idLineStyle parameter - unless this has the special + value KDChartPropertySet::UndefinedID as decribed above. + + \sa setLineWidth, setLineColor, setLineStyle, setShowMarker + \sa hasOwnLineWidth, hasOwnLineColor, hasOwnShowMarker + */ + bool hasOwnLineStyle( int& idLineStyle, PenStyle& lineStyle ) + { + idLineStyle = mIdLineStyle; + if( OwnID == mIdLineStyle ){ + lineStyle = mLineStyle; + return true; + } + return false; + } + + + + /** + Specify the ID of the property set specifying the area brush + to be used for this cell + <b>or</b> specify the area brush directly. + + \note This function should be used for Area Charts in <b>Normal</b> mode + only, otherwise the settings specified here will be ignored. + + \param idAreaBrush ID of the property set specifying the area brush. + Use special value KDChartPropertySet::UndefinedID + to specify neither another property set's ID + nor an own value for the area brush. + Use special value KDChartPropertySet::OwnID + if you do NOT want to inherit another property set's + settings but want to specify the area brush by using + the following parameter. + \param areaBrush The area brush to be used. + This parameter is stored but ignored if the previous parameter + is not set to KDChartPropertySet::OwnID. + + \sa hasOwnAreaBrush + */ + void setAreaBrush( int idAreaBrush, const QBrush& areaBrush ) + { + mIdAreaBrush = idAreaBrush; + mAreaBrush = areaBrush; + } + + /** + Returns whether this property set is specifying it's own area brush settings. + + \note This function should be used for Area Charts in <b>Normal</b> mode + only, otherwise the settings specified here will be ignored. + + \returns TRUE if this property set is specifying it's own area brush settings, + FALSE if the settings of another property set are to be used instead. + + \note The return value will also be FALSE if the 'default' properties + are to be used: in this case idAreaBrush will be KDChartParams::NormalData + + \param idAreaBrush to be ignored if return value is TRUE. + If idAreaBrush is KDChartPropertySet::UndefinedID + then neither a property set ID + nor an own area brush were specified (so no special + area brush is associated to the respective data cell), + else idAreaBrush contains the ID of another property set + that is specifying the area brush to be used. + \param areaBrush this parameter's value is not modified if return value is FALSE. + Parameter areaBrush contains the area brush value + associated with the respective data cell. + If return value is FALSE the areaBrush + value is not set (so the parameter keeps its previous value) + but this is to be overridden by the respective value + of another property set that is indicated + by the idAreaBrush parameter - unless this has the special + value KDChartPropertySet::UndefinedID as decribed above. + + \sa setAreaBrush + */ + bool hasOwnAreaBrush( int& idAreaBrush, QBrush& areaBrush ) + { + idAreaBrush = mIdAreaBrush; + if( OwnID == mIdAreaBrush ){ + areaBrush = mAreaBrush; + return true; + } + return false; + } + + + + + + /** + Specify the ID of the property set specifying a boolean flag indicating + whether a Marker is to be displayed for this data value + <b>or</b> specifying this flag directly. + + \note This function should be used for Line Charts only, otherwise + the settings specified here will be ignored. + + \param idShowMarker ID of the property set specifying the flag + indicating whether a marker is to be shown. + Use special value KDChartPropertySet::UndefinedID + to specify neither another property set's ID + nor an own value for this flag. + Use special value KDChartPropertySet::OwnID + if you do NOT want to inherit another property set's + settings but want to specify the flag by using + the following parameter. + \param showMarker Flag indicating whether a marker is to be shown. + This parameter is stored but ignored if the previous parameter + is not set to KDChartPropertySet::OwnID. + + \sa hasOwnShowMarker + \sa setMarkerAlign, setMarkerSize, setMarkerColor, setMarkerStyle + \sa setLineWidth, setLineColor, setLineStyle + */ + void setShowMarker( int idShowMarker, bool showMarker ) + { + mIdShowMarker = idShowMarker; + mShowMarker = showMarker; + } + + /** + Returns whether this property set is specifying it's own flag indicating + whether a Marker is to be displayed. + + \note This function should be used for Line Charts only, otherwise + the settings specified here will be ignored. + + \returns TRUE if this property set is specifying it's own showMarker flag, + FALSE if the settings of another property set are to be used instead. + + \note The return value will also be FALSE if the 'default' properties + are to be used: in this case idShowMarker will be KDChartParams::NormalData + + \param idShowMarker to be ignored if return value is TRUE. + If idShowMarker is KDChartPropertySet::UndefinedID + then neither a property set ID + nor an own flag were specified (so no special + enabeling/disabeling of markers is associated to the + respective data cell), else idShowMarker contains the + ID of another property set that is specifying the flag + to be used. + \param showMarker this parameter's value is not modified if return value is FALSE. + Parameter showMarker contains the showMarker flag + associated with the respective data cell. + If return value is FALSE the showMarker + flag is not set (so the parameter keeps its previous value) + but this is to be overridden by the respective value + of another property set that is indicated + by the idShowMarker parameter - unless this has the special + value KDChartPropertySet::UndefinedID as decribed above. + + \sa setShowMarker + \sa hasOwnMarkerAlign, hasOwnMarkerSize, hasOwnMarkerColor, hasOwnMarkerStyle + \sa hasOwnLineWidth, hasOwnLineColor, hasOwnLineStyle + */ + bool hasOwnShowMarker( int& idShowMarker, bool& showMarker ) + { + idShowMarker = mIdShowMarker; + if( OwnID == idShowMarker ){ + showMarker = mShowMarker; + return true; + } + return false; + } + + /** + Specify the ID of the property set specifying the alignment of the + Marker to be displayed for this data value + <b>or</b> specifying this flag directly. + + \note This function should be used for Line Charts only, otherwise + the settings specified here will be ignored. + + \param idMarkerAlign ID of the property set specifying the alignment + of the Marker to be shown. + Use special value KDChartPropertySet::UndefinedID + to specify neither another property set's ID + nor an own value for this flag. + Use special value KDChartPropertySet::OwnID + if you do NOT want to inherit another property set's + settings but want to specify the flag by using + the following parameter. + \param markerAlign The alignment of the marker to be shown. + This parameter is stored but ignored if the previous parameter + is not set to KDChartPropertySet::OwnID. + + \sa hasOwnShowMarker + \sa setMarkerAlign, setMarkerSize, setMarkerColor, setMarkerStyle + \sa setLineWidth, setLineColor, setLineStyle + */ + void setMarkerAlign( int idMarkerAlign, uint markerAlign ) + { + mIdMarkerAlign = idMarkerAlign; + mMarkerAlign = markerAlign; + } + bool hasOwnMarkerAlign( int& idMarkerAlign, uint& markerAlign ) + { + idMarkerAlign = mIdMarkerAlign; + if( OwnID == idMarkerAlign ){ + markerAlign = mMarkerAlign; + return true; + } + return false; + } + void setMarkerSize( int idMarkerSize, const QSize& markerSize ) + { + mIdMarkerSize = idMarkerSize; + mMarkerSize = markerSize; + } + bool hasOwnMarkerSize( int& idMarkerSize, QSize& markerSize ) + { + idMarkerSize = mIdMarkerSize; + if( OwnID == idMarkerSize ){ + markerSize = mMarkerSize; + return true; + } + return false; + } + void setMarkerColor( int idMarkerColor, const QColor& markerColor ) + { + mIdMarkerColor = idMarkerColor; + mMarkerColor = markerColor; + } + bool hasOwnMarkerColor( int& idMarkerColor, QColor& markerColor ) + { + idMarkerColor = mIdMarkerColor; + if( OwnID == idMarkerColor ){ + markerColor = mMarkerColor; + return true; + } + return false; + } + void setMarkerStyle( int idMarkerStyle, int markerStyle ) + { + mIdMarkerStyle = idMarkerStyle; + mMarkerStyle = markerStyle; + } + bool hasOwnMarkerStyle( int& idMarkerStyle, int& markerStyle ) + { + idMarkerStyle = mIdMarkerStyle; + if( OwnID == idMarkerStyle ){ + markerStyle = mMarkerStyle; + return true; + } + return false; + } + + + + + + + void setExtraLinesAlign( int idExtraLinesAlign, uint extraLinesAlign ) + { + mIdExtraLinesAlign = idExtraLinesAlign; + mExtraLinesAlign = extraLinesAlign; + } + bool hasOwnExtraLinesAlign( int& idExtraLinesAlign, uint& extraLinesAlign ) + { + idExtraLinesAlign = mIdExtraLinesAlign; + if( OwnID == idExtraLinesAlign ){ + extraLinesAlign = mExtraLinesAlign; + return true; + } + return false; + } + void setExtraLinesInFront( int idExtraLinesInFront, bool extraLinesInFront ) + { + mIdExtraLinesInFront = idExtraLinesInFront; + mExtraLinesInFront = extraLinesInFront; + } + bool hasOwnExtraLinesInFront( int& idExtraLinesInFront, bool& extraLinesInFront ) + { + idExtraLinesInFront = mIdExtraLinesInFront; + if( OwnID == idExtraLinesInFront ){ + extraLinesInFront = mExtraLinesInFront; + return true; + } + return false; + } + void setExtraLinesLength( int idExtraLinesLength, int extraLinesLength ) + { + mIdExtraLinesLength = idExtraLinesLength; + mExtraLinesLength = extraLinesLength; + } + bool hasOwnExtraLinesLength( int& idExtraLinesLength, int& extraLinesLength ) + { + idExtraLinesLength = mIdExtraLinesLength; + if( OwnID == idExtraLinesLength ){ + extraLinesLength = mExtraLinesLength; + return true; + } + return false; + } + void setExtraLinesWidth( int idExtraLinesWidth, int extraLinesWidth ) + { + mIdExtraLinesWidth = idExtraLinesWidth; + mExtraLinesWidth = extraLinesWidth; + } + bool hasOwnExtraLinesWidth( int& idExtraLinesWidth, int& extraLinesWidth ) + { + idExtraLinesWidth = mIdExtraLinesWidth; + if( OwnID == idExtraLinesWidth ){ + extraLinesWidth = mExtraLinesWidth; + return true; + } + return false; + } + void setExtraLinesColor( int idExtraLinesColor, const QColor& extraLinesColor ) + { + mIdExtraLinesColor = idExtraLinesColor; + mExtraLinesColor = extraLinesColor; + } + bool hasOwnExtraLinesColor( int& idExtraLinesColor, QColor& extraLinesColor ) + { + idExtraLinesColor = mIdExtraLinesColor; + if( OwnID == idExtraLinesColor ){ + extraLinesColor = mExtraLinesColor; + return true; + } + return false; + } + void setExtraLinesStyle( int idExtraLinesStyle, const PenStyle extraLinesStyle ) + { + mIdExtraLinesStyle = idExtraLinesStyle; + mExtraLinesStyle = extraLinesStyle; + } + bool hasOwnExtraLinesStyle( int& idExtraLinesStyle, PenStyle& extraLinesStyle ) + { + idExtraLinesStyle = mIdExtraLinesStyle; + if( OwnID == idExtraLinesStyle ){ + extraLinesStyle = mExtraLinesStyle; + return true; + } + return false; + } + + void setExtraMarkersAlign( int idExtraMarkersAlign, uint extraMarkersAlign ) + { + mIdExtraMarkersAlign = idExtraMarkersAlign; + mExtraMarkersAlign = extraMarkersAlign; + } + bool hasOwnExtraMarkersAlign( int& idExtraMarkersAlign, uint& extraMarkersAlign ) + { + idExtraMarkersAlign = mIdExtraMarkersAlign; + if( OwnID == idExtraMarkersAlign ){ + extraMarkersAlign = mExtraMarkersAlign; + return true; + } + return false; + } + void setExtraMarkersSize( int idExtraMarkersSize, const QSize& extraMarkersSize ) + { + mIdExtraMarkersSize = idExtraMarkersSize; + mExtraMarkersSize = extraMarkersSize; + } + bool hasOwnExtraMarkersSize( int& idExtraMarkersSize, QSize& extraMarkersSize ) + { + idExtraMarkersSize = mIdExtraMarkersSize; + if( OwnID == idExtraMarkersSize ){ + extraMarkersSize = mExtraMarkersSize; + return true; + } + return false; + } + void setExtraMarkersColor( int idExtraMarkersColor, const QColor& extraMarkersColor ) + { + mIdExtraMarkersColor = idExtraMarkersColor; + mExtraMarkersColor = extraMarkersColor; + } + bool hasOwnExtraMarkersColor( int& idExtraMarkersColor, QColor& extraMarkersColor ) + { + idExtraMarkersColor = mIdExtraMarkersColor; + if( OwnID == idExtraMarkersColor ){ + extraMarkersColor = mExtraMarkersColor; + return true; + } + return false; + } + void setExtraMarkersStyle( int idExtraMarkersStyle, int extraMarkersStyle ) + { + mIdExtraMarkersStyle = idExtraMarkersStyle; + mExtraMarkersStyle = extraMarkersStyle; + } + bool hasOwnExtraMarkersStyle( int& idExtraMarkersStyle, int& extraMarkersStyle ) + { + idExtraMarkersStyle = mIdExtraMarkersStyle; + if( OwnID == idExtraMarkersStyle ){ + extraMarkersStyle = mExtraMarkersStyle; + return true; + } + return false; + } + +protected: + // the following member only to be set internally by KDChartParams::registerProperties + // and by KDChartParams::setProperties + int mOwnID; + +private: + KDChartPropertySet( const KDChartPropertySet& ) : QObject(0) {} + + QString mName; + // IDs: values used if ID == OwnID: + int mIdLineWidth; int mLineWidth; + int mIdLineColor; QColor mLineColor; + int mIdLineStyle; Qt::PenStyle mLineStyle; + int mIdShowMarker; bool mShowMarker; + int mIdMarkerSize; QSize mMarkerSize; + int mIdMarkerColor; QColor mMarkerColor; + int mIdMarkerStyle; int mMarkerStyle; + int mIdMarkerAlign; uint mMarkerAlign; + int mIdExtraLinesAlign; uint mExtraLinesAlign; + int mIdExtraLinesInFront; bool mExtraLinesInFront; + int mIdExtraLinesLength; int mExtraLinesLength; + int mIdExtraLinesWidth; int mExtraLinesWidth; + int mIdExtraLinesColor; QColor mExtraLinesColor; + int mIdExtraLinesStyle; Qt::PenStyle mExtraLinesStyle; + int mIdExtraMarkersAlign; uint mExtraMarkersAlign; + int mIdExtraMarkersSize; QSize mExtraMarkersSize; + int mIdExtraMarkersColor; QColor mExtraMarkersColor; + int mIdExtraMarkersStyle; int mExtraMarkersStyle; + int mIdShowBar; bool mShowBar; + int mIdBarColor; QColor mBarColor; + int mIdAreaBrush; QBrush mAreaBrush; + void fillValueMembersWithDummyValues(); +}; + +#endif |