NodeAttribute Class Reference

Abstract class from which various Attribute nodes are derived. More...

#include <nodeattr.h>

Inheritance diagram for NodeAttribute:

NodeRenderable Node CCObject SimpleCCObject AttrBevel AttrBrushType AttrClipView AttrDashPattern AttrEndArrow AttrFeather AttrFillEffect AttrFillGeometry AttrFillMapping AttrImagesetting AttrJoinType AttrLineWidth AttrMitreLimit AttrMould AttrQuality AttrStartArrow AttrStartCap AttrStrokeType AttrTranspFillMapping AttrTxtBase AttrUser AttrVariableWidth AttrWebAddress AttrWindingRule List of all members.

Public Member Functions

 NodeAttribute ()
 Default constructor for Node Attribute class.
 NodeAttribute (Node *ContextNode, AttachNodeDirection Direction, BOOL Locked=FALSE, BOOL Mangled=FALSE, BOOL Marked=FALSE, BOOL Selected=FALSE)
 Who knows ?
virtual void Render (RenderRegion *pRender)
 For rendering a node.
virtual SubtreeRenderState RenderSubtree (RenderRegion *pRender, Node **ppNextNode=NULL, BOOL bClip=TRUE)
 Virtual function - this version always returns TRUE, which indicates to the caller that we always want to render nodes of this type if we have encountered them.
virtual BOOL NeedsToExport (RenderRegion *pRender, BOOL VisibleLayersOnly=FALSE, BOOL CheckSelected=FALSE)
 Virtual function - this version always returns TRUE, because we always want to export attributes.
virtual NodeSimpleCopy ()
 This method returns a shallow copy of the node with all Node pointers NULL. The function is virtual, and must be defined for all derived classes.
virtual INT32 operator== (const NodeAttribute &NodeAttrib)
 This function is slightly weird. Unlike most definitions of operator== it's virtual.
virtual BOOL IsDifferent (Node *pOther)
 Determine if 2 nodes are considered different.
virtual UINT32 GetAttrNameID (void)
 Returns back a string resource ID describing the attribute, this base class function returns the resource _R(IDS_ATTRIBUTE).
virtual DocColourEnumerateColourFields (UINT32 Context)
 Enumerates all the colour fields used by an attribute. This enables the colour manager to scan the tree and process any attribute it finds to carry out operations such as turning indexed colours into immediate colours, and so on. The Context parameter indicates which colour field should be returned next. It is 0 initially, then it will be 1, then 2, etc. The NodeAttribute object should use this to deduce how far it has got through its colour fields, and return the next one, or NULL if there are no more. The order in which the colours are returned is not important, as long as EVERY colour in the attribute is returned ONCE and ONLY once. Other than this stipulation, the NodeAttribute can amuse itself in whatever foul and depraved manner it deems appropriate.
virtual CCRuntimeClassGetAttributeType ()
virtual AttributeValueGetAttributeValue ()
virtual AttributeIdentifier GetAttributeClassID () const
virtual AttrIndex GetAttributeIndex ()
virtual VisibleAttributeCreateVisibleAttribute () const
virtual BOOL CopyComponentData (BaseDocument *SrcDoc, BaseDocument *NodesDoc)
 If the attribute contains any DocColours which are indexed then a copy of the indexed colour is made and added to the NodesDoc ColourListComponent.
virtual BOOL Blend (BlendAttrParam *pBlendParam)
 This will blend this attribute using the data held in pBlendParam. This base version does this: If the blend ratio <= 50%, this attr is copied If the blend ratio > 50%, the other attr is copied.
virtual BOOL HasEquivalentDefaultValue (BOOL bAppearance=FALSE)
 Determine whether this attribute has the default value or not.
virtual NodeAttributeGetOtherAttrToApply (BOOL *IsMutate)
virtual BOOL OtherAttrIsAppliedSelectively () const
virtual void OnMakeCurrent ()
virtual BOOL IsAnAttribute () const
 Virtual function for determining if the node is an attribute.
virtual BOOL IsOrHidesAnAttribute () const
 To see if this node is an attribute, or is hiding an attribute (NodeHiddens).
virtual BOOL IsRenderedAsInk () const
virtual BOOL IsAValueChange () const
 Virtual function for determining if the node is a value change attribute.
virtual BOOL IsAColourFill () const
 Virtual function for determining if the node is a Colour Fill attribute.
virtual BOOL IsATranspFill () const
 Virtual function for determining if the node is an attribute.
virtual BOOL IsAStrokeColour () const
 Virtual function for determining if the node is an attribute.
virtual BOOL IsAStrokeTransp () const
 Virtual function for determining if the node is an attribute.
virtual BOOL IsAFlatFill () const
 Virtual function for determining if the node is an attribute.
virtual BOOL IsAGradFill () const
 Virtual function for determining if the node is an attribute.
virtual BOOL IsABitmapFill () const
 Virtual function for determining if the node is an attribute.
virtual BOOL IsAFractalFill () const
 Virtual function for determining if the node is an attribute.
virtual BOOL IsALineLevelAttrib ()
virtual BOOL IsALineWidthAttr () const
virtual BOOL NeedsToRenderAtEachBrushStroke () const
 So that don't have to keep re-rendering attributes whilst drawing a brush, this identifies whether or not the attribute need to be rendered at each step, e.g. radial fills.
virtual BOOL CanBeAppliedToObject ()
virtual BOOL CanBeMultiplyApplied ()
virtual BOOL ShouldBeOptimized ()
virtual BOOL IsEffectAttribute () const
BOOL IsADefaultAttr ()
 Simple but useful fn to determine if the attribute (which must be in the tree) is a default attribute.
virtual BOOL EffectsParentBounds ()
 Virtual function for determining if the node will effect it's parent bounds. eg. ArrowHeads.
virtual DocRect GetAttrBoundingRect (NodeRenderableInk *pParent=NULL, CCAttrMap *pAttribMap=NULL)
 Virtual function for determining the bounding rect of an attribute. eg. ArrowHeads.
virtual void TransformToNewBounds (DocRect &NewBounds)
virtual BOOL ShouldBecomeCurrent ()
 The attribute manager calls this function before making an attribute current.
NodeAttributeFindNextAttr (Node::TypeFunc pfnTest) const
virtual BOOL IsLinkedToNodeGeometry ()
virtual BOOL IsLinkedToThisNode (Node *pNode)
virtual BOOL PostDynCreateInit (CCAttrMap *pMap, Path *InkPath, CCRuntimeClass *pCreatorClass)
virtual BOOL PostDynCreateInit (CCAttrMap *pMap, Node *pNode, CCRuntimeClass *pCreatorClass)
virtual void PostDynCreateDeInit ()
virtual BOOL LinkedNodeGeometryHasChanged (UndoableOperation *pOp)
virtual BOOL LinkToGeometry (Node *pContext)
virtual void NewlyCreatedDefaultAttr (NodeDocument *pNode)
virtual BOOL ContainsAttributeValue (AttributeValue *pVal)
virtual BOOL IsAnOffscreenAttribute ()
virtual BOOL IsSeeThrough (BOOL CheckIndirectAttrs)

Static Public Member Functions

static NodeAttributeFindFirstAppliedAttr (Node *pContextNode, Node *pRoot=NULL)
 Find the attribute which is closest in attribute scope to the context node. Use in conjunction with FindPrevAppliedAtt. Note! This routine and FindPrevAppliedAttr will return "Effect Attributes" that only apply to pContextNode, and not its children. You should test for them using IsEffectAttribute outside this function if you don't want to find them.
static NodeAttributeFindPrevAppliedAttr (Node *pContextNode, Node *pRoot=NULL)
 Finds the previous attribute in the tree, from this node, by searching backwards and up (along Previous and Parent links), or null if there is no such attribute. Note! This routine and FindFirstAppliedAttr will return "Effect Attributes" that only apply to pContextNode, and not its children. You should test for them using IsEffectAttribute outside this function if you don't want to find them.

Protected Member Functions

virtual void CopyNodeContents (NodeAttribute *NodeCopy)
 This method copies the node's contents to the node pointed to by NodeCopy.

Private Member Functions

 CC_DECLARE_DYNAMIC (NodeAttribute)

Detailed Description

Abstract class from which various Attribute nodes are derived.

Author:
Will_Cowling (Xara Group Ltd) <camelotdev@xara.com>
Date:
21/6/93

Definition at line 185 of file nodeattr.h.


Constructor & Destructor Documentation

NodeAttribute::NodeAttribute  ) 
 

Default constructor for Node Attribute class.

Author:
Will_Cowling (Xara Group Ltd) <camelotdev@xara.com>
Date:
21/6/93
Parameters:
- [INPUTS]
- [OUTPUTS]
Returns:
-

Errors: -

See also:
-

Definition at line 137 of file nodeattr.cpp.

00137                              : NodeRenderable()
00138 {
00139 }

NodeAttribute::NodeAttribute Node ContextNode,
AttachNodeDirection  Direction,
BOOL  Locked = FALSE,
BOOL  Mangled = FALSE,
BOOL  Marked = FALSE,
BOOL  Selected = FALSE
 

Who knows ?

Author:
Will_Cowling (Xara Group Ltd) <camelotdev@xara.com>
Date:
21/6/93
Parameters:
- [INPUTS]
- [OUTPUTS]
Returns:
-

Errors: -

See also:
-

Definition at line 162 of file nodeattr.cpp.

00168                : NodeRenderable(ContextNode, Direction, Locked, Mangled, Marked, Selected)  
00169 {                         
00170 } 


Member Function Documentation

BOOL NodeAttribute::Blend BlendAttrParam pBlendParam  )  [virtual]
 

This will blend this attribute using the data held in pBlendParam. This base version does this: If the blend ratio <= 50%, this attr is copied If the blend ratio > 50%, the other attr is copied.

Author:
Mark_Neves (Xara Group Ltd) <camelotdev@xara.com>
Date:
25/10/94
Parameters:
pBlendParam = ptr to a blend attr class object [INPUTS]
- [OUTPUTS]
Returns:
TRUE if successful, FALSE otherwise

Errors: -

See also:
-

Reimplemented in AttrBevelIndent, AttrBevelLightAngle, AttrBevelContrast, AttrBevelType, AttrBevelLightTilt, AttrBrushType, AttrClipView, AttrFillGeometry, AttrFeather, AttrLineWidth, AttrUser, and AttrWebAddress.

Definition at line 958 of file nodeattr.cpp.

00959 {
00960     // Check NULL entry param
00961     ERROR3IF(pBlendParam == NULL,"pBlendParam == NULL");
00962     if (pBlendParam == NULL) return FALSE;
00963 
00964     // Make a copy of this node, and make this the blended attribute
00965     NodeAttribute* pBlendedAttr = NULL;
00966     NodeAttribute* pAttrToCopy  = NULL;
00967 
00968     if (pBlendParam->GetBlendRatio() <= 0.5)
00969         pAttrToCopy = this;
00970     else
00971         pAttrToCopy = pBlendParam->GetOtherAttr();
00972 
00973     if (pAttrToCopy != NULL)
00974     {
00975         pBlendedAttr = (NodeAttribute*) pAttrToCopy->SimpleCopy();
00976         pBlendParam->SetBlendedAttr(pBlendedAttr);
00977     }
00978 
00979     // Return TRUE if we were able to make a copy of this node
00980     return (pBlendedAttr != NULL);
00981 }

virtual BOOL NodeAttribute::CanBeAppliedToObject  )  [inline, virtual]
 

Reimplemented in AttrQuality.

Definition at line 253 of file nodeattr.h.

00253 { return TRUE; };

virtual BOOL NodeAttribute::CanBeMultiplyApplied  )  [inline, virtual]
 

Reimplemented in AttrClipView, AttrFeather, and AttrUser.

Definition at line 258 of file nodeattr.h.

00258 { return FALSE; }

NodeAttribute::CC_DECLARE_DYNAMIC NodeAttribute   )  [private]
 

BOOL NodeAttribute::ContainsAttributeValue AttributeValue pVal  )  [virtual]
 

Reimplemented in AttrClipView, and AttrFeather.

Definition at line 1293 of file nodeattr.cpp.

01294 {
01295     return FALSE;
01296 }

BOOL NodeAttribute::CopyComponentData BaseDocument SrcDoc,
BaseDocument NodesDoc
[virtual]
 

If the attribute contains any DocColours which are indexed then a copy of the indexed colour is made and added to the NodesDoc ColourListComponent.

Author:
Simon_Maneggio (Xara Group Ltd) <camelotdev@xara.com>
Date:
12/9/94
Parameters:
SrcDoc,: The document from where this node was copied [INPUTS] NodesDoc: The document where this node lives
- [OUTPUTS]
Returns:
FALSE if unable to copy data

Errors: -

See also:
NodeRenderable::CopyComponentData

Reimplemented from NodeRenderable.

Reimplemented in AttrFillGeometry, and StyleReferenceAttribute.

Definition at line 746 of file nodeattr.cpp.

00747 {
00748     // Ask the base class to copy its data
00749     if (!NodeRenderable::CopyComponentData(SrcDoc, NodesDoc))
00750     {
00751         return FALSE; // Failed
00752     }
00753     // Get the colour list component
00754     ColourListComponent *pComponent = 
00755         (ColourListComponent *) NodesDoc->GetDocComponent(CC_RUNTIME_CLASS(ColourListComponent));
00756 
00757     ENSURE (pComponent != NULL, "Could not find ColourListComponent");
00758 
00759     // Copy across all DocColours
00760     for (INT32 i=0;;i++)
00761     {
00762         DocColour* pDocCol = EnumerateColourFields(i); 
00763         if (pDocCol == NULL)
00764         {
00765             // there are no more colours to copy
00766             break;
00767         }
00768         // Copy the colour across 
00769         if (pComponent->CopyColourAcross(pDocCol) == CCCOPY_FAILED)
00770         {
00771             return FALSE; // Failed to copy colour info
00772         } 
00773     }
00774     return TRUE; 
00775 }

void NodeAttribute::CopyNodeContents NodeAttribute NodeCopy  )  [protected, virtual]
 

This method copies the node's contents to the node pointed to by NodeCopy.

Author:
Simon_Maneggio (Xara Group Ltd) <camelotdev@xara.com>
Date:
28/4/93
Parameters:
[INPUTS] 
A copy of this node [OUTPUTS]
Returns:
-

Errors: An assertion failure will occur if NodeCopy is NULL

Scope: protected

Reimplemented in AttrClipView, and AttrFeather.

Definition at line 672 of file nodeattr.cpp.

00673 {
00674     NodeRenderable::CopyNodeContents( NodeCopy );
00675 } 

virtual VisibleAttribute* NodeAttribute::CreateVisibleAttribute  )  const [inline, virtual]
 

Reimplemented in TemplateAttribute, StyleReferenceAttribute, and AttrUser.

Definition at line 212 of file nodeattr.h.

00212 {   return NULL;    }

BOOL NodeAttribute::EffectsParentBounds  )  [virtual]
 

Virtual function for determining if the node will effect it's parent bounds. eg. ArrowHeads.

Author:
Will_Cowling (Xara Group Ltd) <camelotdev@xara.com>
Date:
4/4/95
Parameters:
- [INPUTS]
- [OUTPUTS]
Returns:
TRUE if the node will effect the bounds of it's parent.
See also:
NodeAttribute::GetAttrBoundingRect

Reimplemented in AttrBevelIndent, AttrBevelLightAngle, AttrBevelContrast, AttrBevelType, AttrBevelLightTilt, AttrBrushType, AttrColourDrop, AttrLineWidth, AttrStrokeColour, AttrStrokeColourChange, AttrStartArrow, AttrEndArrow, AttrStartCap, AttrJoinType, AttrMitreLimit, AttrTxtBase, and AttrUser.

Definition at line 436 of file nodeattr.cpp.

00437 {
00438     return FALSE;
00439 }

DocColour * NodeAttribute::EnumerateColourFields UINT32  Context  )  [virtual]
 

Enumerates all the colour fields used by an attribute. This enables the colour manager to scan the tree and process any attribute it finds to carry out operations such as turning indexed colours into immediate colours, and so on. The Context parameter indicates which colour field should be returned next. It is 0 initially, then it will be 1, then 2, etc. The NodeAttribute object should use this to deduce how far it has got through its colour fields, and return the next one, or NULL if there are no more. The order in which the colours are returned is not important, as long as EVERY colour in the attribute is returned ONCE and ONLY once. Other than this stipulation, the NodeAttribute can amuse itself in whatever foul and depraved manner it deems appropriate.

Author:
Tim_Browse (Xara Group Ltd) <camelotdev@xara.com>
Date:
19/07/94
Parameters:
Context - indicates which colour field should be returned next. [INPUTS]
Returns:
Pointer to the next colour field - this may well be altered by the caller.

Reimplemented in AttrFillGeometry.

Definition at line 721 of file nodeattr.cpp.

00722 {
00723     // No colours in a standard NodeAttribute.
00724     return NULL;
00725 }

NodeAttribute * NodeAttribute::FindFirstAppliedAttr Node pContextNode,
Node pRoot = NULL
[static]
 

Find the attribute which is closest in attribute scope to the context node. Use in conjunction with FindPrevAppliedAtt. Note! This routine and FindPrevAppliedAttr will return "Effect Attributes" that only apply to pContextNode, and not its children. You should test for them using IsEffectAttribute outside this function if you don't want to find them.

Author:
Phil_Martin (Xara Group Ltd) <camelotdev@xara.com>
Date:
06/01/2005
Parameters:
- [INPUTS]
- [OUTPUTS]
Returns:
Pointer to attribute which is closest in scope to the context node.

Errors: -

See also:
NodeAttribute::FindPrevAppliedAtt

Definition at line 798 of file nodeattr.cpp.

00799 {
00800     ERROR2IF(pContextNode == NULL, NULL, "FindFirstAppliedAttr() called on NULL");
00801     Node* pNode = NULL;
00802 
00803     // Begin the attribute search from the right-most child of "this" node.
00804     // (So that Effect Attributes are picked up)
00805     pNode = pContextNode->FindLastChild();
00806     if (pNode == NULL) pNode = pContextNode;
00807 
00808     // If the very first node is an attribute, great, return that...
00809     if (pNode->IsAnAttribute() && !pNode->IsAClipViewAttr())
00810         return ((NodeAttribute*) pNode);
00811 
00812     // Otherwise must search in reverse render order for an attribute...
00813     return FindPrevAppliedAttr(pNode, pRoot);
00814 }

NodeAttribute* NodeAttribute::FindNextAttr Node::TypeFunc  pfnTest  )  const
 

NodeAttribute * NodeAttribute::FindPrevAppliedAttr Node pContextNode,
Node pRoot = NULL
[static]
 

Finds the previous attribute in the tree, from this node, by searching backwards and up (along Previous and Parent links), or null if there is no such attribute. Note! This routine and FindFirstAppliedAttr will return "Effect Attributes" that only apply to pContextNode, and not its children. You should test for them using IsEffectAttribute outside this function if you don't want to find them.

Author:
Phil_Martin (Xara Group Ltd) <camelotdev@xara.com>
Date:
06/01/2005
Parameters:
- [INPUTS]
- [OUTPUTS]
Returns:
A pointer to the attribute which occurs "previous" to this node.

Errors: -

See also:
-

Definition at line 838 of file nodeattr.cpp.

00839 {
00840     ERROR2IF(pContextNode == NULL, NULL, "FindPrevAppliedAttr() called on NULL");
00841 
00842     // We are going to start from this attribute node.
00843     // All attributes are collected together as the first nodes in a sub-tree, so we can
00844     // call FindPrevious here as the previous node will either be NULL or another attribute.
00845     Node* pNode = pContextNode;
00846     
00847     // Search for the next attribute
00848     do
00849     {
00850         // Get the previous node
00851         if (pNode->FindPrevious())
00852             pNode = pNode->FindPrevious();
00853         else
00854         {
00855             // Move up to sibling list above
00856             pNode = pNode->FindParent();
00857 
00858             // --------------------------------------
00859             // Optimisation!
00860             // There are often a small number of attributes at the start of a large sibling
00861             // list. So it's often quicker to skip to the start and then skip forward from there
00862             // (This clause can be removed without changing the basic operation of this
00863             // function.)
00864             if (pNode==pRoot) return NULL;
00865 
00866             // Quick test to see whether attr is readily available in new sibling list
00867             // (Assume that paper node tree section is quicker to scan the obvious way)
00868             Node* pTestNode = pNode->FindPrevious();
00869             if (!(pNode->IsPaper() || (pTestNode && pTestNode->IsOrHidesAnAttribute())))
00870             {
00871                 Node* pAttr = NULL;                                         // Init the attr pointer we're searching for
00872                 pTestNode = pNode;
00873                 while (pTestNode && pAttr==NULL)                            // Start looping up through sibling lists til we find an attr
00874                 {
00875                     Node* pParent = pTestNode->FindParent();                // Find first node in this sibling list
00876                     pTestNode = pParent ? pParent->FindFirstChild() : NULL;
00877 
00878                     while (pTestNode && pTestNode->IsOrHidesAnAttribute())  // Loop through nodes in this sib list until find a non-attr
00879                     {
00880                         pAttr = pTestNode;                                  // Remember the last attr we've found
00881                         pTestNode = pTestNode->FindNext();                  // Test next node in this sibling list
00882                     }
00883 
00884                     pTestNode = pParent;                                    // Find parent sibling list
00885                 }
00886 
00887                 if (pAttr)                                                  // If we found an attribute
00888                     pNode = pAttr;                                          // return it
00889                                                                             // (otherwise leave pNode unchanged and allow normal
00890                                                                             //  algorithm to work out how to handle it)
00891             }
00892             // --------------------------------------
00893         }
00894 
00895         if (pNode && pNode->IsAnAttribute() && !pNode->IsAClipViewAttr())
00896             return ((NodeAttribute*) pNode);
00897     }
00898     while (pNode!=pRoot);
00899 
00900     return NULL;
00901 }

DocRect NodeAttribute::GetAttrBoundingRect NodeRenderableInk pParent = NULL,
CCAttrMap pAttribMap = NULL
[virtual]
 

Virtual function for determining the bounding rect of an attribute. eg. ArrowHeads.

Author:
Will_Cowling (Xara Group Ltd) <camelotdev@xara.com>
Date:
4/4/95
Parameters:
pParent,the parent Ink node that this attribute will effect. [INPUTS]
- [OUTPUTS]
Returns:
The Bounding rect of the attribute (NULL rectangle is it doesn't have any).
See also:
NodeAttribute::EffectsParentBounds

Reimplemented in AttrBevelType, AttrBrushType, AttrStartArrow, and AttrEndArrow.

Definition at line 456 of file nodeattr.cpp.

00457 {
00458     return DocRect(0,0,0,0);
00459 }

virtual AttributeIdentifier NodeAttribute::GetAttributeClassID  )  const [inline, virtual]
 

Reimplemented in TemplateAttribute, and AttrUser.

Definition at line 210 of file nodeattr.h.

00210 {   return NullString;  }

virtual AttrIndex NodeAttribute::GetAttributeIndex  )  [inline, virtual]
 

Reimplemented in AttrBevelIndent, AttrBevelLightAngle, AttrBevelContrast, AttrBevelType, AttrBevelLightTilt, AttrClipView, AttrFeather, AttrOverprintLine, AttrOverprintFill, AttrPrintOnAllPlates, AttrLineWidth, AttrStrokeColour, AttrStrokeTransp, AttrStartArrow, AttrEndArrow, AttrStartCap, AttrJoinType, AttrMitreLimit, AttrWindingRule, AttrDashPattern, AttrQuality, AttrStrokeType, AttrVariableWidth, AttrTxtFontTypeface, AttrTxtBold, AttrTxtItalic, AttrTxtUnderline, AttrTxtAspectRatio, AttrTxtJustification, AttrTxtTracking, AttrTxtFontSize, AttrTxtScript, AttrTxtBaseLine, AttrTxtLeftMargin, AttrTxtRightMargin, AttrTxtFirstIndent, AttrTxtRuler, AttrTxtLineSpace, AttrUser, and AttrWebAddress.

Definition at line 211 of file nodeattr.h.

00211 { return ATTR_BAD_ID; }

virtual CCRuntimeClass* NodeAttribute::GetAttributeType  )  [inline, virtual]
 

Reimplemented in AttrBevelIndent, AttrBevelLightAngle, AttrBevelContrast, AttrBevelType, AttrBevelLightTilt, AttrValueChange, AttrColourChange, AttrTranspChange, AttrColFillRampChange, AttrTranspFillRampChange, AttrFlatColourFill, AttrFlatTranspFill, AttrLinearColourFill, AttrLinearTranspFill, AttrRadialColourFill, AttrRadialTranspFill, AttrConicalColourFill, AttrConicalTranspFill, AttrSquareColourFill, AttrSquareTranspFill, AttrThreeColColourFill, AttrThreeColTranspFill, AttrFourColColourFill, AttrFourColTranspFill, AttrBitmapColourFill, AttrBitmapTranspFill, AttrTextureColourFill, AttrTextureTranspFill, AttrFillMapping, AttrFillEffect, AttrTranspFillMapping, AttrMould, AttrLineWidth, AttrStrokeColour, AttrStrokeTransp, AttrStrokeColourChange, AttrStrokeTranspChange, AttrStrokeTranspTypeChange, AttrStartArrow, AttrEndArrow, AttrStartCap, AttrJoinType, AttrMitreLimit, AttrWindingRule, AttrDashPattern, AttrUser, AttrWebAddress, and AttrRemoveStrokeTransp.

Definition at line 208 of file nodeattr.h.

00208 { return GetRuntimeClass(); }

virtual AttributeValue* NodeAttribute::GetAttributeValue  )  [inline, virtual]
 

Reimplemented in AttrBevelIndent, AttrBevelLightAngle, AttrBevelContrast, AttrBevelType, AttrBevelLightTilt, AttrBrushType, AttrClipView, AttrFillGeometry, AttrValueChange, AttrColourChange, AttrBitmapChange, AttrFractalChange, AttrTranspChange, AttrNoiseScaleChange, AttrColFillRampChange, AttrTranspFillRampChange, AttrFlatColourFill, AttrFlatTranspFill, AttrLinearFill, AttrLinearColourFill, AttrLinearTranspFill, AttrRadialFill, AttrRadialColourFill, AttrRadialTranspFill, AttrConicalFill, AttrConicalColourFill, AttrConicalTranspFill, AttrSquareFill, AttrSquareColourFill, AttrSquareTranspFill, AttrThreeColFill, AttrThreeColColourFill, AttrThreeColTranspFill, AttrFourColFill, AttrFourColColourFill, AttrFourColTranspFill, AttrBitmapFill, AttrBitmapColourFill, AttrBitmapTranspFill, AttrTextureColourFill, AttrFractalColourFill, AttrNoiseColourFill, AttrTextureTranspFill, AttrFractalTranspFill, AttrNoiseTranspFill, AttrFillMappingLinear, AttrFillMappingSin, AttrFillEffectFade, AttrFillEffectRainbow, AttrFillEffectAltRainbow, AttrTranspFillMappingLinear, AttrTranspFillMappingSin, AttrFeather, AttrOverprintLine, AttrOverprintFill, AttrPrintOnAllPlates, AttrLineWidth, AttrStrokeColour, AttrStrokeTransp, AttrStrokeColourChange, AttrStrokeTranspChange, AttrStrokeTranspTypeChange, AttrStartArrow, AttrEndArrow, AttrStartCap, AttrJoinType, AttrMitreLimit, AttrWindingRule, AttrDashPattern, AttrStrokeType, AttrVariableWidth, AttrTxtFontTypeface, AttrTxtBold, AttrTxtItalic, AttrTxtUnderline, AttrTxtAspectRatio, AttrTxtJustification, AttrTxtTracking, AttrTxtFontSize, AttrTxtScript, AttrTxtBaseLine, AttrTxtLeftMargin, AttrTxtRightMargin, AttrTxtFirstIndent, AttrTxtRuler, AttrTxtLineSpace, AttrUser, AttrWebAddress, and AttrRemoveStrokeTransp.

Definition at line 209 of file nodeattr.h.

00209 { return NULL; }

UINT32 NodeAttribute::GetAttrNameID void   )  [virtual]
 

Returns back a string resource ID describing the attribute, this base class function returns the resource _R(IDS_ATTRIBUTE).

Author:
Simon_Maneggio (Xara Group Ltd) <camelotdev@xara.com>
Date:
22/2/94
Parameters:
- [INPUTS]
- [OUTPUTS]
Returns:
Attribute description ID

Errors: -

See also:
-

Reimplemented in AttrBevelIndent, AttrBevelLightAngle, AttrBevelContrast, AttrBevelType, AttrBevelLightTilt, AttrBrushType, AttrClipView, AttrValueChange, AttrColourChange, AttrColourDrop, AttrBitmapChange, AttrBitmapTessChange, AttrBitmapDpiChange, AttrFractalChange, AttrFractalGrainChange, AttrFractalTileableChange, AttrTranspChange, AttrTranspTypeChange, AttrNoiseScaleChange, AttrColFillRampChange, AttrTranspFillRampChange, AttrFlatColourFill, AttrFlatTranspFill, AttrLinearColourFill, AttrLinearTranspFill, AttrRadialColourFill, AttrRadialTranspFill, AttrConicalColourFill, AttrConicalTranspFill, AttrSquareColourFill, AttrSquareTranspFill, AttrThreeColColourFill, AttrThreeColTranspFill, AttrFourColColourFill, AttrFourColTranspFill, AttrBitmapColourFill, AttrBitmapTranspFill, AttrTextureColourFill, AttrFractalColourFill, AttrNoiseColourFill, AttrTextureTranspFill, AttrFractalTranspFill, AttrNoiseTranspFill, AttrFillMappingLinear, AttrFillMappingSin, AttrFillEffectFade, AttrFillEffectRainbow, AttrFillEffectAltRainbow, AttrTranspFillMappingLinear, AttrTranspFillMappingSin, AttrMould, AttrFeather, AttrOverprintLine, AttrOverprintFill, AttrPrintOnAllPlates, AttrLineWidth, AttrStrokeColour, AttrStrokeTransp, AttrStrokeColourChange, AttrStrokeTranspChange, AttrStrokeTranspTypeChange, AttrStartArrow, AttrEndArrow, AttrStartCap, AttrJoinType, AttrMitreLimit, AttrWindingRule, AttrDashPattern, AttrQuality, AttrStrokeType, AttrVariableWidth, TemplateAttribute, StyleReferenceAttribute, AttrTxtFontTypeface, AttrTxtBold, AttrTxtItalic, AttrTxtUnderline, AttrTxtAspectRatio, AttrTxtJustification, AttrTxtTracking, AttrTxtFontSize, AttrTxtScript, AttrTxtBaseLine, AttrTxtLeftMargin, AttrTxtRightMargin, AttrTxtFirstIndent, AttrTxtRuler, AttrTxtLineSpace, AttrUser, and AttrWebAddress.

Definition at line 649 of file nodeattr.cpp.

00650 {
00651     return (_R(IDS_ATTRIBUTE)); 
00652 }               

virtual NodeAttribute* NodeAttribute::GetOtherAttrToApply BOOL *  IsMutate  )  [inline, virtual]
 

Reimplemented in AttrTranspChange, AttrTranspTypeChange, AttrBitmapFill, AttrFractalFill, AttrFillMapping, AttrTranspFillMapping, AttrLineWidth, AttrStrokeColourChange, AttrRemoveTransp, and AttrMakeFlatTransp.

Definition at line 219 of file nodeattr.h.

00219 { return NULL; }

BOOL NodeAttribute::HasEquivalentDefaultValue BOOL  bAppearance = FALSE  )  [virtual]
 

Determine whether this attribute has the default value or not.

Author:
Phil_Martin (Xara Group Ltd) <camelotdev@xara.com>
Date:
22/03/2005
Parameters:
- [INPUTS]
- [OUTPUTS]
Returns:
TRUE if this node has a value equivalent to the relevant FALSE otherwise

Errors: -

See also:
-

Reimplemented in AttrFlatTranspFill, AttrLinearTranspFill, AttrRadialTranspFill, AttrConicalTranspFill, AttrSquareTranspFill, AttrThreeColTranspFill, AttrFourColTranspFill, AttrBitmapTranspFill, AttrFractalTranspFill, AttrNoiseTranspFill, and AttrTranspFillMappingLinear.

Definition at line 918 of file nodeattr.cpp.

00919 {
00920     AttributeValue* pDefaultAttrVal = NULL;
00921 //  CCRuntimeClass* AttrType = GetAttributeType();
00922 
00923     // Look for the default attr directly
00924     // (But this doesn't work for those attrs which are grouped together
00925     //  and share a common default value - e.g. fills)
00926     AttrIndex attrid = GetAttributeIndex();
00927     if (attrid!=ATTR_BAD_ID && attrid<ATTR_FIRST_FREE_ID)
00928         pDefaultAttrVal = AttributeManager::GetDefaultAttributeVal(attrid);
00929 
00930     if (pDefaultAttrVal && !GetAttributeValue()->IsDifferent(pDefaultAttrVal))
00931     {
00932         // Just allow the node to be hidden
00933         return TRUE;
00934     }
00935 
00936     return FALSE;
00937 }

BOOL NodeAttribute::IsABitmapFill  )  const [virtual]
 

Virtual function for determining if the node is an attribute.

Author:
Will_Cowling (Xara Group Ltd) <camelotdev@xara.com>
Date:
13/2/95
Parameters:
- [INPUTS]
- [OUTPUTS]
Returns:
TRUE if the node is a NodeAttribute, will return TRUE

Errors:

Reimplemented from Node.

Reimplemented in AttrBitmapFill, and AttrBitmapColourFill.

Definition at line 356 of file nodeattr.cpp.

00357 { 
00358     return FALSE;  
00359 } 

BOOL NodeAttribute::IsAColourFill  )  const [virtual]
 

Virtual function for determining if the node is a Colour Fill attribute.

Author:
Will_Cowling (Xara Group Ltd) <camelotdev@xara.com>
Date:
13/2/95
Parameters:
- [INPUTS]
- [OUTPUTS]
Returns:
TRUE if the node is a AttrColourFill, will return TRUE

Errors:

Reimplemented in AttrFlatColourFill, AttrLinearColourFill, AttrRadialColourFill, AttrConicalColourFill, AttrSquareColourFill, AttrThreeColColourFill, AttrFourColColourFill, AttrBitmapColourFill, and AttrTextureColourFill.

Definition at line 243 of file nodeattr.cpp.

00244 { 
00245     return FALSE;  
00246 } 

BOOL NodeAttribute::IsADefaultAttr  ) 
 

Simple but useful fn to determine if the attribute (which must be in the tree) is a default attribute.

Author:
Simon_Maneggio (Xara Group Ltd) <camelotdev@xara.com>
Date:
28/9/95
Returns:
TRUE if attribute is a default attribute. i.e. it's parent is a NodeDocument

Definition at line 997 of file nodeattr.cpp.

00998 { 
00999     return (IS_A(FindParent(), NodeDocument)); 
01000 }

BOOL NodeAttribute::IsAFlatFill  )  const [virtual]
 

Virtual function for determining if the node is an attribute.

Author:
Will_Cowling (Xara Group Ltd) <camelotdev@xara.com>
Date:
13/2/95
Parameters:
- [INPUTS]
- [OUTPUTS]
Returns:
TRUE if the node is a NodeAttribute, will return TRUE

Errors:

Reimplemented in AttrFlatFill.

Definition at line 319 of file nodeattr.cpp.

00320 { 
00321     return FALSE;  
00322 } 

BOOL NodeAttribute::IsAFractalFill  )  const [virtual]
 

Virtual function for determining if the node is an attribute.

Author:
Will_Cowling (Xara Group Ltd) <camelotdev@xara.com>
Date:
13/2/95
Parameters:
- [INPUTS]
- [OUTPUTS]
Returns:
TRUE if the node is a NodeAttribute, will return TRUE

Errors:

Reimplemented in AttrFractalFill.

Definition at line 374 of file nodeattr.cpp.

00375 { 
00376     return FALSE;  
00377 } 

BOOL NodeAttribute::IsAGradFill  )  const [virtual]
 

Virtual function for determining if the node is an attribute.

Author:
Will_Cowling (Xara Group Ltd) <camelotdev@xara.com>
Date:
13/2/95
Parameters:
- [INPUTS]
- [OUTPUTS]
Returns:
TRUE if the node is a NodeAttribute, will return TRUE

Errors:

Reimplemented in AttrLinearFill, AttrRadialFill, AttrConicalFill, AttrSquareFill, AttrThreeColFill, AttrFourColFill, and AttrBitmapFill.

Definition at line 337 of file nodeattr.cpp.

00338 { 
00339     return FALSE;  
00340 } 

virtual BOOL NodeAttribute::IsALineLevelAttrib  )  [inline, virtual]
 

Reimplemented in AttrTxtJustification, AttrTxtLeftMargin, AttrTxtRightMargin, AttrTxtFirstIndent, AttrTxtRuler, and AttrTxtLineSpace.

Definition at line 247 of file nodeattr.h.

00247 { return FALSE; }; // Is the attribute a text line level attribute

BOOL NodeAttribute::IsALineWidthAttr  )  const [virtual]
 

Reimplemented in AttrLineWidth.

Definition at line 392 of file nodeattr.cpp.

00393 {
00394     return FALSE;
00395 }

BOOL NodeAttribute::IsAnAttribute  )  const [virtual]
 

Virtual function for determining if the node is an attribute.

Author:
Simon_Maneggio (Xara Group Ltd) <camelotdev@xara.com>
Date:
19/4/93
Parameters:
- [INPUTS]
- [OUTPUTS]
Returns:
TRUE if the node is a NodeAttribute, will return TRUE

Errors:

Reimplemented from Node.

Definition at line 187 of file nodeattr.cpp.

00188 { 
00189     return TRUE;  
00190 } 

virtual BOOL NodeAttribute::IsAnOffscreenAttribute  )  [inline, virtual]
 

Reimplemented in AttrFeather.

Definition at line 322 of file nodeattr.h.

00322 { return FALSE; }

BOOL NodeAttribute::IsAStrokeColour  )  const [virtual]
 

Virtual function for determining if the node is an attribute.

Author:
Will_Cowling (Xara Group Ltd) <camelotdev@xara.com>
Date:
13/2/95
Parameters:
- [INPUTS]
- [OUTPUTS]
Returns:
TRUE if the node is a NodeAttribute, will return TRUE

Errors:

Reimplemented in AttrStrokeColour.

Definition at line 281 of file nodeattr.cpp.

00282 { 
00283     return FALSE;  
00284 } 

BOOL NodeAttribute::IsAStrokeTransp  )  const [virtual]
 

Virtual function for determining if the node is an attribute.

Author:
Will_Cowling (Xara Group Ltd) <camelotdev@xara.com>
Date:
13/2/95
Parameters:
- [INPUTS]
- [OUTPUTS]
Returns:
TRUE if the node is a NodeAttribute, will return TRUE

Errors:

Reimplemented in AttrStrokeTransp.

Definition at line 300 of file nodeattr.cpp.

00301 { 
00302     return FALSE;  
00303 } 

BOOL NodeAttribute::IsATranspFill  )  const [virtual]
 

Virtual function for determining if the node is an attribute.

Author:
Will_Cowling (Xara Group Ltd) <camelotdev@xara.com>
Date:
13/2/95
Parameters:
- [INPUTS]
- [OUTPUTS]
Returns:
TRUE if the node is a NodeAttribute, will return TRUE

Errors:

Reimplemented in AttrFlatTranspFill, AttrLinearTranspFill, AttrRadialTranspFill, AttrConicalTranspFill, AttrSquareTranspFill, AttrThreeColTranspFill, AttrFourColTranspFill, AttrBitmapTranspFill, and AttrTextureTranspFill.

Definition at line 262 of file nodeattr.cpp.

00263 { 
00264     return FALSE;  
00265 } 

BOOL NodeAttribute::IsAValueChange  )  const [virtual]
 

Virtual function for determining if the node is a value change attribute.

Author:
Will_Cowling (Xara Group Ltd) <camelotdev@xara.com>
Date:
13/2/95
Parameters:
- [INPUTS]
- [OUTPUTS]
Returns:
TRUE if the node is an AttrValueChange, will return TRUE

Errors:

Reimplemented in AttrValueChange.

Definition at line 224 of file nodeattr.cpp.

00225 { 
00226     return FALSE;  
00227 } 

BOOL NodeAttribute::IsDifferent Node pOther  )  [virtual]
 

Determine if 2 nodes are considered different.

Author:
Jason_Williams (Xara Group Ltd) <camelotdev@xara.com>
Date:
28/2/97
Parameters:
pOther - The node to compare this one to [INPUTS]
Returns:
TRUE if this is considered different from pOther, FALSE if they are the same
Notes: NodeAttribute uses its own (and derived class) operator== method to determine if the nodes are different. This will work for ANY derived attribute class.

Reimplemented from Node.

Definition at line 614 of file nodeattr.cpp.

00615 {
00616     // First, check with the base class - this checks the classes are the same type
00617     if (NodeRenderable::IsDifferent(pOther))
00618         return(TRUE);
00619 
00620     ERROR3IF(GetRuntimeClass() != pOther->GetRuntimeClass(),
00621             "Node::IsDifferent base class method seems to have been broken");
00622 
00623     // Check if different using the operator== which is defined from NodeAttribute onwards
00624     if (*this == *((NodeAttribute *)pOther) )
00625         return(FALSE);
00626 
00627     return(TRUE);
00628 }

BOOL NodeAttribute::IsEffectAttribute  )  const [virtual]
 

Author:
Phil_Martin (Xara Group Ltd) <camelotdev@xara.com>
Date:
05/01/2005
Returns:
TRUE if attribute is an Effect attribute. i.e. it's not in the usual place in the tree, it's at the end of a child list with bounded nodes ahead of it.

Definition at line 1014 of file nodeattr.cpp.

01015 { 
01016 //  Node* pSibling = FindPrevious(CC_RUNTIME_CLASS(NodeRenderableBounded));
01017     Node* pSibling = FindPrevious();
01018     while (pSibling && !pSibling->IsBounded())
01019         pSibling = pSibling->FindPrevious();
01020 
01021     return (pSibling!=NULL);
01022 }

BOOL NodeAttribute::IsLinkedToNodeGeometry  )  [virtual]
 

Reimplemented in AttrFeather.

Definition at line 1114 of file nodeattr.cpp.

01115 {
01116     return FALSE;
01117 }

BOOL NodeAttribute::IsLinkedToThisNode Node pNode  )  [virtual]
 

Reimplemented in AttrFeather.

Definition at line 1130 of file nodeattr.cpp.

01131 {
01132     return FALSE;
01133 }

BOOL NodeAttribute::IsOrHidesAnAttribute  )  const [virtual]
 

To see if this node is an attribute, or is hiding an attribute (NodeHiddens).

Author:
Rik_Heywood (Xara Group Ltd) <camelotdev@xara.com>
Date:
12/6/95
Returns:
TRUE, as this is an attribute

Reimplemented from Node.

Definition at line 204 of file nodeattr.cpp.

00205 {
00206     return TRUE;
00207 }

virtual BOOL NodeAttribute::IsRenderedAsInk  )  const [inline, virtual]
 

Reimplemented from Node.

Definition at line 235 of file nodeattr.h.

00235 {return TRUE;}

virtual BOOL NodeAttribute::IsSeeThrough BOOL  CheckIndirectAttrs  )  [inline, virtual]
 

Reimplemented from NodeRenderable.

Reimplemented in AttrFlatColourFill, AttrFlatTranspFill, AttrLinearColourFill, AttrLinearTranspFill, AttrRadialColourFill, AttrRadialTranspFill, AttrConicalColourFill, AttrConicalTranspFill, AttrSquareColourFill, AttrSquareTranspFill, AttrThreeColColourFill, AttrThreeColTranspFill, AttrFourColColourFill, AttrFourColTranspFill, AttrBitmapColourFill, AttrBitmapTranspFill, AttrTextureColourFill, and AttrTextureTranspFill.

Definition at line 331 of file nodeattr.h.

00331 { return FALSE; }

BOOL NodeAttribute::LinkedNodeGeometryHasChanged UndoableOperation pOp  )  [virtual]
 

Reimplemented in AttrFeather.

Definition at line 1249 of file nodeattr.cpp.

01250 {
01251     return TRUE;
01252 }

BOOL NodeAttribute::LinkToGeometry Node pContext  )  [virtual]
 

Reimplemented in AttrFeather.

Definition at line 1274 of file nodeattr.cpp.

01275 {
01276     return TRUE;
01277 }

BOOL NodeAttribute::NeedsToExport RenderRegion pRender,
BOOL  VisibleLayersOnly = FALSE,
BOOL  CheckSelected = FALSE
[virtual]
 

Virtual function - this version always returns TRUE, because we always want to export attributes.

Author:
Tim_Browse (Xara Group Ltd) <camelotdev@xara.com>
Date:
23/03/94
Parameters:
pRender - A pointer to the current export region [INPUTS] VisibleLayersOnly - TRUE => remove nodes which are on invisible layers
  • FALSE => export everything CheckSelected - TRUE => we check if object selected and only export selected bjects

Reimplemented from NodeRenderable.

Definition at line 502 of file nodeattr.cpp.

00504 {
00505     return TRUE;
00506 }

BOOL NodeAttribute::NeedsToRenderAtEachBrushStroke  )  const [virtual]
 

So that don't have to keep re-rendering attributes whilst drawing a brush, this identifies whether or not the attribute need to be rendered at each step, e.g. radial fills.

Author:
Diccon_Yamanaka (Xara Group Ltd) <camelotdev@xara.com>
Date:
29/11/99
Parameters:
- [INPUTS]
- [OUTPUTS]
Returns:
TRUE if this attribute should be rendered at every step of a brush stroke

Errors: See Also; Brush code (ndbrshmk.cpp)

Reimplemented in AttrLinearFill, AttrRadialFill, AttrRadialTranspFill, AttrConicalFill, AttrSquareFill, AttrBitmapFill, and AttrLineWidth.

Definition at line 414 of file nodeattr.cpp.

00415 {
00416     return FALSE;
00417 }

void NodeAttribute::NewlyCreatedDefaultAttr NodeDocument pNode  )  [virtual]
 

Reimplemented in AttrFeather.

Definition at line 1269 of file nodeattr.cpp.

01270 {
01271 }

virtual void NodeAttribute::OnMakeCurrent  )  [inline, virtual]
 

Definition at line 226 of file nodeattr.h.

00226 {}

INT32 NodeAttribute::operator== const NodeAttribute Attrib  )  [virtual]
 

This function is slightly weird. Unlike most definitions of operator== it's virtual.

Author:
Simon_Maneggio (Xara Group Ltd) <camelotdev@xara.com>
Date:
9/2/94
Parameters:
Atrib,: The attribute to compare [INPUTS]
- [OUTPUTS]
Returns:
-
To see why it's required, consider the following

NodeAttribute* A,B;

A = X; B = Y;

where X and Y are pointers to instances of derived classes of NodeAttribute.

if X->GetRuntimeClass() == Y->GetRuntimeClass() then we should be able to compare X and Y. But if we had defined a normal operator== fn then we find we cannot do this, because there is no way of casting to a type which is unknown at compile time.

The implementation of operator== in all derived classes of NodeAttribute should look something like this.

INT32 DerivedClass::operator==(const NodeAttribute& Attrib) { DerivedClass* Attr = (DerivedClass*)

Compare member vars with Attr }

Before calling this function you must be sure that the attributes have the same runtime class.

The function needs to be defined in all derived classes of NodeAttribute

Returns:
Errors: If this function is called on an instance of a derived class of NodeAttribute, and the function has not been defined for the derived class, then an ENSURE failure will result.
See also:
-

Reimplemented in AttrBevelIndent, AttrBevelLightAngle, AttrBevelContrast, AttrBevelType, AttrBevelLightTilt, AttrBrushType, AttrClipView, AttrFillGeometry, AttrFillMapping, AttrFillEffect, AttrTranspFillMapping, AttrMould, AttrFeather, AttrOverprintLine, AttrOverprintFill, AttrPrintOnAllPlates, AttrLineWidth, AttrStrokeColour, AttrStrokeTransp, AttrStartArrow, AttrEndArrow, AttrStartCap, AttrJoinType, AttrMitreLimit, AttrWindingRule, AttrDashPattern, AttrQuality, AttrStrokeType, AttrVariableWidth, AttrTxtFontTypeface, AttrTxtBold, AttrTxtItalic, AttrTxtUnderline, AttrTxtAspectRatio, AttrTxtJustification, AttrTxtTracking, AttrTxtFontSize, AttrTxtScript, AttrTxtBaseLine, AttrTxtLeftMargin, AttrTxtRightMargin, AttrTxtFirstIndent, AttrTxtRuler, AttrTxtLineSpace, AttrUser, and AttrWebAddress.

Definition at line 586 of file nodeattr.cpp.

00587 {
00588     ENSURE(FALSE, "the pure virtual operator== fn has not been defined"); 
00589     return (FALSE); 
00590 }

virtual BOOL NodeAttribute::OtherAttrIsAppliedSelectively  )  const [inline, virtual]
 

Reimplemented in AttrLineWidth.

Definition at line 224 of file nodeattr.h.

00224 { return FALSE; }

void NodeAttribute::PostDynCreateDeInit  )  [virtual]
 

Reimplemented in AttrFeather.

Definition at line 1211 of file nodeattr.cpp.

01212 {
01213 }

BOOL NodeAttribute::PostDynCreateInit CCAttrMap pMap,
Node pNode,
CCRuntimeClass pCreatorClass
[virtual]
 

Reimplemented in AttrFeather.

Definition at line 1193 of file nodeattr.cpp.

01196 {
01197     return TRUE;
01198 }

BOOL NodeAttribute::PostDynCreateInit CCAttrMap pMap,
Path InkPath,
CCRuntimeClass pCreatorClass
[virtual]
 

Reimplemented in AttrFeather.

Definition at line 1170 of file nodeattr.cpp.

01173 {
01174     return TRUE;
01175 }

virtual void NodeAttribute::Render RenderRegion pRender  )  [inline, virtual]
 

For rendering a node.

Author:
Simon_Maneggio (Xara Group Ltd) <camelotdev@xara.com>
Date:
30/4/93
Parameters:
RendRegion,: Render region to render into [INPUTS]
- [OUTPUTS]
Returns:
-

Reimplemented from Node.

Reimplemented in AttrBevelIndent, AttrBevelLightAngle, AttrBevelContrast, AttrBevelType, AttrBevelLightTilt, AttrBrushType, AttrClipView, AttrFlatColourFill, AttrFlatTranspFill, AttrLinearColourFill, AttrLinearTranspFill, AttrRadialColourFill, AttrRadialTranspFill, AttrConicalColourFill, AttrConicalTranspFill, AttrSquareColourFill, AttrSquareTranspFill, AttrThreeColColourFill, AttrThreeColTranspFill, AttrFourColColourFill, AttrFourColTranspFill, AttrBitmapColourFill, AttrBitmapTranspFill, AttrTextureColourFill, AttrTextureTranspFill, AttrFillMappingLinear, AttrFillMappingSin, AttrFillEffectFade, AttrFillEffectRainbow, AttrFillEffectAltRainbow, AttrTranspFillMappingLinear, AttrTranspFillMappingSin, AttrMould, AttrFeather, AttrImagesetting, AttrLineWidth, AttrStrokeColour, AttrStrokeTransp, AttrStartArrow, AttrEndArrow, AttrStartCap, AttrJoinType, AttrMitreLimit, AttrWindingRule, AttrDashPattern, AttrQuality, AttrStrokeType, AttrVariableWidth, AttrTxtFontTypeface, AttrTxtBold, AttrTxtItalic, AttrTxtUnderline, AttrTxtAspectRatio, AttrTxtJustification, AttrTxtTracking, AttrTxtFontSize, AttrTxtScript, AttrTxtBaseLine, AttrTxtLeftMargin, AttrTxtRightMargin, AttrTxtFirstIndent, AttrTxtRuler, AttrTxtLineSpace, AttrUser, and AttrWebAddress.

Definition at line 198 of file nodeattr.h.

00198 {};

SubtreeRenderState NodeAttribute::RenderSubtree RenderRegion pRender,
Node **  ppNextNode = NULL,
BOOL  bClip = TRUE
[virtual]
 

Virtual function - this version always returns TRUE, which indicates to the caller that we always want to render nodes of this type if we have encountered them.

Author:
Tim_Browse (Xara Group Ltd) <camelotdev@xara.com>
Date:
07/02/94
Parameters:
pRender - A pointer to the current render region [INPUTS]
Returns:
TRUE => This node should be rendered, FALSE => This node does not need to be rendered.
See also:
Node::NeedsToRender

Reimplemented from NodeRenderable.

Reimplemented in AttrBrushType, AttrClipView, and AttrFeather.

Definition at line 477 of file nodeattr.cpp.

00478 {
00479     // If we've found an attribute node, then we always want to render it.
00480     return SUBTREE_ROOTONLY;
00481 }

BOOL NodeAttribute::ShouldBecomeCurrent  )  [virtual]
 

The attribute manager calls this function before making an attribute current.

Author:
Graham_Walmsley (Xara Group Ltd) <camelotdev@xara.com>
Date:
14/6/96
Returns:
TRUE if this attribute should become current.
FALSE if the user must deliberately apply this attribute to an object every time he wants to use it.

There are some attributes - like this URL Hot Link attribute I'm about to put in - that the user probably won't want to become current. For example, if a user puts a HotLink on an object and happens to have the Give Other Objects Most Recent Attributes option on, all his new objects are going to have HotLinks. That's not good.

So those attributes will override this function and return FALSE.

Reimplemented in AttrUser, and AttrWebAddress.

Definition at line 1049 of file nodeattr.cpp.

01050 { 
01051     //Yes, we'd like this attribute to be passed to other objects.
01052     return TRUE; 
01053 }

virtual BOOL NodeAttribute::ShouldBeOptimized  )  [inline, virtual]
 

Reimplemented in AttrBrushType, AttrClipView, AttrFeather, and AttrUser.

Definition at line 261 of file nodeattr.h.

00261 { return !IsEffectAttribute(); }

Node * NodeAttribute::SimpleCopy void   )  [virtual]
 

This method returns a shallow copy of the node with all Node pointers NULL. The function is virtual, and must be defined for all derived classes.

Author:
Will_Cowling (Xara Group Ltd) <camelotdev@xara.com>
Date:
21/6/93
Parameters:
- [INPUTS]
[OUTPUTS] 
Returns:
A copy of the node, or NULL if memory runs out

Errors: If memory runs out when trying to copy, then ERROR is called with an out of memory error and the function returns NULL.

Scope: protected

Reimplemented from NodeRenderable.

Reimplemented in AttrBevelIndent, AttrBevelLightAngle, AttrBevelContrast, AttrBevelType, AttrBevelLightTilt, AttrBrushType, AttrClipView, AttrFlatColourFill, AttrFlatTranspFill, AttrLinearColourFill, AttrLinearTranspFill, AttrRadialColourFill, AttrRadialTranspFill, AttrConicalColourFill, AttrConicalTranspFill, AttrSquareColourFill, AttrSquareTranspFill, AttrThreeColColourFill, AttrThreeColTranspFill, AttrFourColColourFill, AttrFourColTranspFill, AttrBitmapColourFill, AttrBitmapTranspFill, AttrTextureColourFill, AttrFractalColourFill, AttrNoiseColourFill, AttrTextureTranspFill, AttrFractalTranspFill, AttrNoiseTranspFill, AttrFillMappingLinear, AttrFillMappingSin, AttrFillEffectFade, AttrFillEffectRainbow, AttrFillEffectAltRainbow, AttrTranspFillMappingLinear, AttrTranspFillMappingSin, AttrMould, AttrFeather, AttrOverprintLine, AttrOverprintFill, AttrPrintOnAllPlates, AttrLineWidth, AttrStrokeColour, AttrStrokeTransp, AttrStartArrow, AttrEndArrow, AttrStartCap, AttrJoinType, AttrMitreLimit, AttrWindingRule, AttrDashPattern, AttrQuality, AttrStrokeType, AttrVariableWidth, TemplateAttribute, StyleReferenceAttribute, AttrTxtFontTypeface, AttrTxtBold, AttrTxtItalic, AttrTxtUnderline, AttrTxtAspectRatio, AttrTxtJustification, AttrTxtTracking, AttrTxtFontSize, AttrTxtScript, AttrTxtBaseLine, AttrTxtLeftMargin, AttrTxtRightMargin, AttrTxtFirstIndent, AttrTxtRuler, AttrTxtLineSpace, AttrUser, and AttrWebAddress.

Definition at line 527 of file nodeattr.cpp.

00528 {
00529     NodeAttribute* NodeCopy = new NodeAttribute();
00530     ERRORIF(NodeCopy == NULL, _R(IDE_NOMORE_MEMORY), NULL); 
00531     CopyNodeContents(NodeCopy);
00532     
00533     return NodeCopy;
00534 } 

virtual void NodeAttribute::TransformToNewBounds DocRect NewBounds  )  [inline, virtual]
 

Reimplemented in AttrFillGeometry.

Definition at line 275 of file nodeattr.h.

00275 { return; } 


The documentation for this class was generated from the following files:
Generated on Sat Nov 10 03:56:33 2007 for Camelot by  doxygen 1.4.4