rndrgn.h File Reference

(r1785/r1445)

#include "listitem.h"
#include "handles.h"
#include "docrect.h"
#include "rndstack.h"
#include "quality.h"
#include "attr.h"
#include "pathtype.h"
#include "gradtype.h"
#include "matrix.h"
#include "txtattr.h"
#include "slowjob.h"
#include "pathshap.h"
#include "winrect.h"
#include "bitmapcache.h"
#include "capturemanager.h"
#include "genstack.h"

Go to the source code of this file.

Classes

class  SubRenderContext
 Provide a base class for pointing to when storing sub-rendering contexts. These are needed when a node takes a long time to render, such as a NodeBlender object which interrupts itself before all the blended objects have finished rendering. This class is essentially empty - derive your own specific context class from it. More...
class  SubTreeRenderContext
 Represents the rendering state where tree rendering has been suspended but the current node is the root of a subtree that has ALREADY BEEN RENDERED. More...
class  RenderRegion
 THIS IS AN ABSTRACT CLASS. Don't try to create a RenderRegion itself, but rather create one of it's derived classes. A RenderRegion object is created when an area of the screen/printer (or any destination) has become invalid and needs to be redrawn. It 'lives' for as long as that region is still invalid. It is also used for e.g. exporting files or in smart click detection. Background rendering and region merging is achieved by using a List of Render Region objects. When a new region becomes invalid, a RenderRegion is created and added to that list. If the rendering is interrupted before it is complete, then it will continue again when the OnIdle routine scans through the list of RenderRegions. RenderRegions can also be created at other times for Immediate rendering. To use a RenderRegion, create an OSRenderRegion or a GRenderRegion depending on the method of rendering required, then Attach a DC and CWnd to the region to specify the Render destination. Next call InitRender which will return the RenderRegions previous render state if it had been interrupted or Null if it has just been created. You can then set attributes, Save/Restore them, and Render objects. When rendering is complete, call ExitRender passing the current render state. More...
struct  RenderRegion::FlagBlock
struct  RenderRegion::_StrokeFlags
struct  RenderRegion::_FillFlags
struct  RenderRegion::_TextFlags
class  RenderCallback
 Provide a base class for handling callbacks from RenderTree Notes: RenderTree function calls the BeforeNode function in this class when it's about to render any Node. Derive from this class and implement Callback to provide specialised processing of nodes during rendering Derived versions of Callback can: Prevent the node being rendered Set attributes Set subrender contexts Accumulate their own info about the render sequence. More...

Defines

#define FORMAT_TOP   0x00000000
#define FORMAT_LEFT   0x00000000
#define FORMAT_CENTER   0x00000001
#define FORMAT_RIGHT   0x00000002
#define FORMAT_VCENTER   0x00000004
#define FORMAT_BOTTOM   0x00000008
#define FORMAT_WORDBREAK   0x00000010
#define FORMAT_SINGLELINE   0x00000020
#define FORMAT_EXPANFORMATABS   0x00000040
#define FORMAT_TABSTOP   0x00000080
#define FORMAT_NOCLIP   0x00000100
#define FORMAT_EXTERNALLEADING   0x00000200
#define FORMAT_CALCRECT   0x00000400
#define FORMAT_NOPREFIX   0x00000800
#define FORMAT_INTERNAL   0x00001000
#define DEFAULT_TEXT_FORMATTING   FORMAT_SINGLELINE | FORMAT_NOPREFIX | FORMAT_VCENTER
#define RR_STROKECOLOUR()   (((StrokeColourAttribute *) CurrentAttrs[ATTR_STROKECOLOUR].pAttr)->Colour)
#define RR_FILLCOLOUR()   (((ColourFillAttribute *) CurrentAttrs[ATTR_FILLGEOMETRY].pAttr)->Colour)
#define RR_LINEWIDTH()   (((LineWidthAttribute *) CurrentAttrs[ATTR_LINEWIDTH ].pAttr)->LineWidth)
#define RR_WINDINGRULE()   (((WindingRuleAttribute *) CurrentAttrs[ATTR_WINDINGRULE ].pAttr)->WindingRule)
#define RR_STARTCAP()   (((StartCapAttribute *) CurrentAttrs[ATTR_STARTCAP ].pAttr)->StartCap)
#define RR_JOINTYPE()   (((JoinTypeAttribute *) CurrentAttrs[ATTR_JOINTYPE ].pAttr)->JoinType)
#define RR_QUALITY()   (((QualityAttribute *) CurrentAttrs[ATTR_QUALITY ].pAttr)->Quality)
#define RR_STARTARROW()   (((StartArrowAttribute *) CurrentAttrs[ATTR_STARTARROW ].pAttr)->StartArrow)
#define RR_ENDARROW()   (((EndArrowAttribute *) CurrentAttrs[ATTR_ENDARROW ].pAttr)->EndArrow)
#define RR_MITRELIMIT()   (((MitreLimitAttribute *) CurrentAttrs[ATTR_MITRELIMIT ].pAttr)->MitreLimit)
#define RR_DASHPATTERN()   (((DashPatternAttribute *) CurrentAttrs[ATTR_DASHPATTERN ].pAttr)->DashPattern)
#define RR_FILLTRANSP()   ((TranspFillAttribute*)CurrentAttrs[ATTR_TRANSPFILLGEOMETRY].pAttr)
#define RR_FILLEFFECT()   ((FillEffectAttribute*)CurrentAttrs[ATTR_FILLEFFECT].pAttr)
#define RR_FILLMAPPING()   ((FillMappingAttribute*)CurrentAttrs[ATTR_FILLMAPPING].pAttr)
#define RR_TRANSPFILLMAPPING()   ((FillTranspMappingAttribute*)CurrentAttrs[ATTR_TRANSPFILLMAPPING].pAttr)
#define RR_STROKETRANSP()   ((StrokeTranspAttribute*)CurrentAttrs[ATTR_STROKETRANSP].pAttr)
#define RR_TXTFONTTYPEFACE()   (((TxtFontTypefaceAttribute *) CurrentAttrs[ATTR_TXTFONTTYPEFACE ].pAttr)->HTypeface)
#define RR_TXTBOLD()
#define RR_TXTITALIC()
#define RR_TXTASPECTRATIO()   (((TxtAspectRatioAttribute *) CurrentAttrs[ATTR_TXTASPECTRATIO ].pAttr)->AspectRatio)
#define RR_TXTJUSTIFICATION()   (((TxtJustificationAttribute *) CurrentAttrs[ATTR_TXTJUSTIFICATION ].pAttr)->justification)
#define RR_TXTTRACKING()   (((TxtTrackingAttribute *) CurrentAttrs[ATTR_TXTTRACKING ].pAttr)->Tracking)
#define RR_TXTUNDERLINE()   (((TxtUnderlineAttribute *) CurrentAttrs[ATTR_TXTUNDERLINE ].pAttr)->Underlined)
#define RR_TXTFONTSIZE()   (((TxtFontSizeAttribute *) CurrentAttrs[ATTR_TXTFONTSIZE ].pAttr)->FontSize)
#define RR_TXTSCRIPT()   ((TxtScriptAttribute *) CurrentAttrs[ATTR_TXTSCRIPT ].pAttr)
#define RR_TXTBASELINE()   (((TxtBaseLineAttribute *) CurrentAttrs[ATTR_TXTBASELINE ].pAttr)->Value)
#define RR_TXTLINESPACE()   (((TxtLineSpaceAttribute *) CurrentAttrs[ATTR_TXTLINESPACE ].pAttr)->Value)
#define RR_TXTLEFTMARGIN()   (((TxtLeftMarginAttribute *) CurrentAttrs[ATTR_TXTLEFTMARGIN ].pAttr)->Value)
#define RR_TXTRIGHTMARGIN()   (((TxtRightMarginAttribute *) CurrentAttrs[ATTR_TXTRIGHTMARGIN ].pAttr)->Value)
#define RR_TXTFIRSTINDENT()   (((TxtFirstIndentAttribute *) CurrentAttrs[ATTR_TXTFIRSTINDENT ].pAttr)->Value)
#define RR_TXTRULER()   (((TxtRulerAttribute *) CurrentAttrs[ATTR_TXTRULER ].pAttr)->Value)
#define RR_CLIPREGION()   ((ClipRegionAttribute*)CurrentAttrs[ATTR_CLIPREGION].pAttr)

Enumerations

enum  ChangeAttrType {
  CHANGEATTR_ALL = -1, CHANGEATTR_GEOMETRY = 0, CHANGEATTR_EFFECT, CHANGEATTR_MAPPING,
  CHANGEATTR_TRANSP_GEOMETRY, CHANGEATTR_TRANSP_EFFECT, CHANGEATTR_TRANSP_MAPPING, CHANGEATTR_WINDING_RULE
}
enum  ChangeLineAttrType {
  CHANGELINEATTR_ALL = -1, CHANGEATTR_STROKECOL = 0, CHANGEATTR_STROKETRANSP, CHANGEATTR_LINEWIDTH,
  CHANGEATTR_JOINTYPE, CHANGEATTR_DASHPATTERN, CHANGEATTR_LINECAP, CHANGEATTR_STARTARROW,
  CHANGEATTR_ENDARROW, CHANGEATTR_MITRELIMIT
}
enum  ChangeFillAttrType {
  CHANGEFILLATTR_ALL = -1, CHANGEATTR_FONT = 0, CHANGEATTR_BOLD, CHANGEATTR_ITALIC,
  CHANGEATTR_UNDERLINE, CHANGEATTR_ASPECT, CHANGEATTR_TRACKING, CHANGEATTR_SIZE,
  CHANGEATTR_JUSTIFY, CHANGEATTR_SCRIPT, CHANGEATTR_BASELINE, CHANGEATTR_LINESPACE,
  CHANGEATTR_LEFTMARGIN, CHANGEATTR_RIGHTMARGIN, CHANGEATTR_FIRSTINDENT, CHANGEATTR_RULER
}


Define Documentation

#define DEFAULT_TEXT_FORMATTING   FORMAT_SINGLELINE | FORMAT_NOPREFIX | FORMAT_VCENTER
 

Definition at line 146 of file rndrgn.h.

#define FORMAT_BOTTOM   0x00000008
 

Definition at line 136 of file rndrgn.h.

#define FORMAT_CALCRECT   0x00000400
 

Definition at line 143 of file rndrgn.h.

#define FORMAT_CENTER   0x00000001
 

Definition at line 133 of file rndrgn.h.

#define FORMAT_EXPANFORMATABS   0x00000040
 

Definition at line 139 of file rndrgn.h.

#define FORMAT_EXTERNALLEADING   0x00000200
 

Definition at line 142 of file rndrgn.h.

#define FORMAT_INTERNAL   0x00001000
 

Definition at line 145 of file rndrgn.h.

#define FORMAT_LEFT   0x00000000
 

Definition at line 132 of file rndrgn.h.

#define FORMAT_NOCLIP   0x00000100
 

Definition at line 141 of file rndrgn.h.

#define FORMAT_NOPREFIX   0x00000800
 

Definition at line 144 of file rndrgn.h.

#define FORMAT_RIGHT   0x00000002
 

Definition at line 134 of file rndrgn.h.

#define FORMAT_SINGLELINE   0x00000020
 

Definition at line 138 of file rndrgn.h.

#define FORMAT_TABSTOP   0x00000080
 

Definition at line 140 of file rndrgn.h.

#define FORMAT_TOP   0x00000000
 

Definition at line 131 of file rndrgn.h.

#define FORMAT_VCENTER   0x00000004
 

Definition at line 135 of file rndrgn.h.

#define FORMAT_WORDBREAK   0x00000010
 

Definition at line 137 of file rndrgn.h.

 
#define RR_CLIPREGION  )     ((ClipRegionAttribute*)CurrentAttrs[ATTR_CLIPREGION].pAttr)
 

Definition at line 1010 of file rndrgn.h.

 
#define RR_DASHPATTERN  )     (((DashPatternAttribute *) CurrentAttrs[ATTR_DASHPATTERN ].pAttr)->DashPattern)
 

Definition at line 981 of file rndrgn.h.

 
#define RR_ENDARROW  )     (((EndArrowAttribute *) CurrentAttrs[ATTR_ENDARROW ].pAttr)->EndArrow)
 

Definition at line 979 of file rndrgn.h.

 
#define RR_FILLCOLOUR  )     (((ColourFillAttribute *) CurrentAttrs[ATTR_FILLGEOMETRY].pAttr)->Colour)
 

Definition at line 972 of file rndrgn.h.

 
#define RR_FILLEFFECT  )     ((FillEffectAttribute*)CurrentAttrs[ATTR_FILLEFFECT].pAttr)
 

Definition at line 984 of file rndrgn.h.

 
#define RR_FILLMAPPING  )     ((FillMappingAttribute*)CurrentAttrs[ATTR_FILLMAPPING].pAttr)
 

Definition at line 985 of file rndrgn.h.

 
#define RR_FILLTRANSP  )     ((TranspFillAttribute*)CurrentAttrs[ATTR_TRANSPFILLGEOMETRY].pAttr)
 

Definition at line 983 of file rndrgn.h.

 
#define RR_JOINTYPE  )     (((JoinTypeAttribute *) CurrentAttrs[ATTR_JOINTYPE ].pAttr)->JoinType)
 

Definition at line 976 of file rndrgn.h.

 
#define RR_LINEWIDTH  )     (((LineWidthAttribute *) CurrentAttrs[ATTR_LINEWIDTH ].pAttr)->LineWidth)
 

Definition at line 973 of file rndrgn.h.

 
#define RR_MITRELIMIT  )     (((MitreLimitAttribute *) CurrentAttrs[ATTR_MITRELIMIT ].pAttr)->MitreLimit)
 

Definition at line 980 of file rndrgn.h.

 
#define RR_QUALITY  )     (((QualityAttribute *) CurrentAttrs[ATTR_QUALITY ].pAttr)->Quality)
 

Definition at line 977 of file rndrgn.h.

 
#define RR_STARTARROW  )     (((StartArrowAttribute *) CurrentAttrs[ATTR_STARTARROW ].pAttr)->StartArrow)
 

Definition at line 978 of file rndrgn.h.

 
#define RR_STARTCAP  )     (((StartCapAttribute *) CurrentAttrs[ATTR_STARTCAP ].pAttr)->StartCap)
 

Definition at line 975 of file rndrgn.h.

 
#define RR_STROKECOLOUR  )     (((StrokeColourAttribute *) CurrentAttrs[ATTR_STROKECOLOUR].pAttr)->Colour)
 

Definition at line 971 of file rndrgn.h.

 
#define RR_STROKETRANSP  )     ((StrokeTranspAttribute*)CurrentAttrs[ATTR_STROKETRANSP].pAttr)
 

Definition at line 987 of file rndrgn.h.

 
#define RR_TRANSPFILLMAPPING  )     ((FillTranspMappingAttribute*)CurrentAttrs[ATTR_TRANSPFILLMAPPING].pAttr)
 

Definition at line 986 of file rndrgn.h.

 
#define RR_TXTASPECTRATIO  )     (((TxtAspectRatioAttribute *) CurrentAttrs[ATTR_TXTASPECTRATIO ].pAttr)->AspectRatio)
 

Definition at line 997 of file rndrgn.h.

 
#define RR_TXTBASELINE  )     (((TxtBaseLineAttribute *) CurrentAttrs[ATTR_TXTBASELINE ].pAttr)->Value)
 

Definition at line 1003 of file rndrgn.h.

 
#define RR_TXTBOLD  ) 
 

Value:

(((TxtBoldAttribute         *) CurrentAttrs[ATTR_TXTBOLD ].pAttr)->BoldOn \
                                ||((TxtFontTypefaceAttribute *) CurrentAttrs[ATTR_TXTFONTTYPEFACE ].pAttr)->IsBold)

Definition at line 991 of file rndrgn.h.

 
#define RR_TXTFIRSTINDENT  )     (((TxtFirstIndentAttribute *) CurrentAttrs[ATTR_TXTFIRSTINDENT ].pAttr)->Value)
 

Definition at line 1007 of file rndrgn.h.

 
#define RR_TXTFONTSIZE  )     (((TxtFontSizeAttribute *) CurrentAttrs[ATTR_TXTFONTSIZE ].pAttr)->FontSize)
 

Definition at line 1001 of file rndrgn.h.

 
#define RR_TXTFONTTYPEFACE  )     (((TxtFontTypefaceAttribute *) CurrentAttrs[ATTR_TXTFONTTYPEFACE ].pAttr)->HTypeface)
 

Definition at line 989 of file rndrgn.h.

 
#define RR_TXTITALIC  ) 
 

Value:

(((TxtItalicAttribute       *) CurrentAttrs[ATTR_TXTITALIC ].pAttr)->ItalicOn \
                                ||((TxtFontTypefaceAttribute *) CurrentAttrs[ATTR_TXTFONTTYPEFACE ].pAttr)->IsItalic)

Definition at line 994 of file rndrgn.h.

 
#define RR_TXTJUSTIFICATION  )     (((TxtJustificationAttribute *) CurrentAttrs[ATTR_TXTJUSTIFICATION ].pAttr)->justification)
 

Definition at line 998 of file rndrgn.h.

 
#define RR_TXTLEFTMARGIN  )     (((TxtLeftMarginAttribute *) CurrentAttrs[ATTR_TXTLEFTMARGIN ].pAttr)->Value)
 

Definition at line 1005 of file rndrgn.h.

 
#define RR_TXTLINESPACE  )     (((TxtLineSpaceAttribute *) CurrentAttrs[ATTR_TXTLINESPACE ].pAttr)->Value)
 

Definition at line 1004 of file rndrgn.h.

 
#define RR_TXTRIGHTMARGIN  )     (((TxtRightMarginAttribute *) CurrentAttrs[ATTR_TXTRIGHTMARGIN ].pAttr)->Value)
 

Definition at line 1006 of file rndrgn.h.

 
#define RR_TXTRULER  )     (((TxtRulerAttribute *) CurrentAttrs[ATTR_TXTRULER ].pAttr)->Value)
 

Definition at line 1008 of file rndrgn.h.

 
#define RR_TXTSCRIPT  )     ((TxtScriptAttribute *) CurrentAttrs[ATTR_TXTSCRIPT ].pAttr)
 

Definition at line 1002 of file rndrgn.h.

 
#define RR_TXTTRACKING  )     (((TxtTrackingAttribute *) CurrentAttrs[ATTR_TXTTRACKING ].pAttr)->Tracking)
 

Definition at line 999 of file rndrgn.h.

 
#define RR_TXTUNDERLINE  )     (((TxtUnderlineAttribute *) CurrentAttrs[ATTR_TXTUNDERLINE ].pAttr)->Underlined)
 

Definition at line 1000 of file rndrgn.h.

 
#define RR_WINDINGRULE  )     (((WindingRuleAttribute *) CurrentAttrs[ATTR_WINDINGRULE ].pAttr)->WindingRule)
 

Definition at line 974 of file rndrgn.h.


Enumeration Type Documentation

enum ChangeAttrType
 

Comment: This is used in the function RenderRegion::SetFillAttributes(), to indicate that a fill attribute has changed and the render region should do whatever is appropriate to handle the change. This enumerated type is just used to indicate which aspect of the fill has changed.

See also:
RenderRegion::SetFillAttributes
Enumerator:
CHANGEATTR_ALL 
CHANGEATTR_GEOMETRY 
CHANGEATTR_EFFECT 
CHANGEATTR_MAPPING 
CHANGEATTR_TRANSP_GEOMETRY 
CHANGEATTR_TRANSP_EFFECT 
CHANGEATTR_TRANSP_MAPPING 
CHANGEATTR_WINDING_RULE 

Definition at line 223 of file rndrgn.h.

enum ChangeFillAttrType
 

Comment: This is used in the function RenderRegion::SetFillAttributes(), to indicate that a fill attribute has changed and the render region should do whatever is appropriate to handle the change. This enumerated type is just used to indicate which aspect of the fill has changed.

See also:
RenderRegion::SetFillAttributes
Enumerator:
CHANGEFILLATTR_ALL 
CHANGEATTR_FONT 
CHANGEATTR_BOLD 
CHANGEATTR_ITALIC 
CHANGEATTR_UNDERLINE 
CHANGEATTR_ASPECT 
CHANGEATTR_TRACKING 
CHANGEATTR_SIZE 
CHANGEATTR_JUSTIFY 
CHANGEATTR_SCRIPT 
CHANGEATTR_BASELINE 
CHANGEATTR_LINESPACE 
CHANGEATTR_LEFTMARGIN 
CHANGEATTR_RIGHTMARGIN 
CHANGEATTR_FIRSTINDENT 
CHANGEATTR_RULER 

Definition at line 273 of file rndrgn.h.

enum ChangeLineAttrType
 

Comment: This is used in the function RenderRegion::SetLineAttributes(), to indicate that a line attribute has changed and the render region should do whatever is appropriate to handle the change. This enumerated type is just used to indicate which aspect of the fill has changed.

See also:
RenderRegion::SetLineAttributes
Enumerator:
CHANGELINEATTR_ALL 
CHANGEATTR_STROKECOL 
CHANGEATTR_STROKETRANSP 
CHANGEATTR_LINEWIDTH 
CHANGEATTR_JOINTYPE 
CHANGEATTR_DASHPATTERN 
CHANGEATTR_LINECAP 
CHANGEATTR_STARTARROW 
CHANGEATTR_ENDARROW 
CHANGEATTR_MITRELIMIT 

Definition at line 247 of file rndrgn.h.


Generated on Sat Nov 10 03:49:20 2007 for Camelot by  doxygen 1.4.4