; ; workaround ; #Chart_NoValue_Q = 9218378953502702454 Procedure.d Chart_NoValue() Protected theQuad.q = #Chart_NoValue_Q ProcedureReturn PeekD(@theQuad) EndProcedure #Chart_Minus_1_7E308_Q = -4993083352073354 ; -1.7E308 Procedure.d Chart_Minus_1_7E308() Protected theQuad.q = #Chart_Minus_1_7E308_Q ProcedureReturn PeekD(@theQuad) EndProcedure EnableExplicit ; ; end workaround ; ; ; extras for PureBasic ; Macro cd_bool : a : EndMacro Macro CD_RGB(r,g,b) ( ((r)<<16)|((g)<<8)|(b) ) EndMacro Macro CD_RGBA(r,g,b,a) ( ((a)<<24)|((r)<<16)|((g)<<8)|(b) ) EndMacro CompilerIf #PB_Compiler_OS = #PB_OS_Windows Macro CD_PATH(path) ReplaceString(path,"/","\") EndMacro CompilerElse Macro CD_PATH(path) ReplaceString(path,"\","/") EndMacro CompilerEndIf ;{ Imports CompilerIf #PB_Compiler_OS = #PB_OS_Windows ImportC "chartdir51.lib" CompilerEndIf CompilerIf #PB_Compiler_OS = #PB_OS_Linux ImportC "/usr/lib/libchartdir.so" CompilerEndIf CompilerIf #PB_Compiler_OS = #PB_OS_MacOS ImportC "libchartdir.5.dylib" CompilerEndIf ;//////////////////////////////////////////////////////////////////////////////////////// ;// chartdir.h ;//////////////////////////////////////////////////////////////////////////////////////// CChart_getVersion.l() CChart_getDescription.i() CChart_getCopyright.i() CChart_getBootLog( *buffer.Ascii ) CChart_testFont.cd_bool( font.p-ascii, fontIndex.l, fontHeight.d, fontWidth.d, angle.d, *buffer.Ascii ) CChart_setFontSearchPath( path.p-ascii ) CChart_isLicensed.cd_bool() CChart_getLicenseAttr.cd_bool( key.p-ascii, *buffer.Ascii ) CChart_setLicenseFile.cd_bool( filename.p-ascii, *buffer.Ascii ) CChart_setLicenseCode.cd_bool( licCode.p-ascii, *buffer.Ascii ) CChart_chartTime.d( y.l, m.l, d.l, h.l, n.l, s.l ) CChart_chartTime2.d( t.l ) CChart_getChartYMD.l( t.d ) CChart_metalColor.l( c.l, angle.l ) CChart_encodeFilter.l( filterTag.l, labelStep.l, initialMargin.d ) CChart_glassEffect.l( glareSize.l, glareDirection.l, raisedEffect.l ) CChart_softLighting.l( direction.l, raisedEffect.l ) CChart_barLighting.l( startBrightness.d, endBrightness.d ) CChart_cylinderEffect.l( orientation.l, ambientIntensity.d, diffuseIntensity.d, specularIntensity.d, shininess.l ) CChart_bSearch.d( *a.Double, len.l, v.d ) CChart_ClearTypeMono.l( gamma.d ) CChart_ClearTypeColor.l( gamma.d ) CChart_phongLighting.l( ambientIntensity.d, diffuseIntensity.d, specularIntensity.d, shininess.l ) ; blah ;//////////////////////////////////////////////////////////////////////////////////////// ;// libgraphics.h ;//////////////////////////////////////////////////////////////////////////////////////// ;Interface TTFTextInternal : EndInterface Macro TTFTextInternal : i : EndMacro CTTFText_destroy( ptr.TTFTextInternal ) CTTFText_getWidth.l( ptr.TTFTextInternal ) CTTFText_getHeight.l( ptr.TTFTextInternal ) CTTFText_getLineHeight.l( ptr.TTFTextInternal ) CTTFText_getLineDistance.l( ptr.TTFTextInternal ) CTTFText_draw( ptr.TTFTextInternal, x.l, y.l, color.l, align.l) Macro DrawAreaInternal : i : EndMacro CDrawArea_create.DrawAreaInternal() CDrawArea_destroy( ptr.DrawAreaInternal ) CDrawArea_enableVectorOutput( ptr.DrawAreaInternal ) CDrawArea_setSize( ptr.DrawAreaInternal, width.l, height.l, bgColor.l ) CDrawArea_resize( ptr.DrawAreaInternal, newWidth.l, newHeight.l, f.l, blur.d ) CDrawArea_getWidth.l( ptr.DrawAreaInternal ) CDrawArea_getHeight.l( ptr.DrawAreaInternal ) CDrawArea_setClipRect( ptr.DrawAreaInternal, left.l, top.l, right.l, bottom.l ) CDrawArea_setBgColor( ptr.DrawAreaInternal, c.l ) CDrawArea_move( ptr.DrawAreaInternal, xOffset.d, yOffset.d, bgColor.l, ft.l, blur.d ) CDrawArea_rotate( ptr.DrawAreaInternal, angle.d, bgColor.l, cx.d, cy.d, ft.l, blur.d ) CDrawArea_hFlip( ptr.DrawAreaInternal ) CDrawArea_vFlip( ptr.DrawAreaInternal ) CDrawArea_clone( ptr.DrawAreaInternal, d.DrawAreaInternal, x.l, y.l, align.l, newWidth.l, newHeight.l, ft.l, blur.d ) CDrawArea_pixel( ptr.DrawAreaInternal, x.l, y.l, c.l ) CDrawArea_getPixel.l( ptr.DrawAreaInternal, x.l, y.l ) CDrawArea_hline( ptr.DrawAreaInternal, x1.l, x2.l, y.l, c.l ) CDrawArea_vline( ptr.DrawAreaInternal, y1.l, y2.l, x.l, c.l ) CDrawArea_line( ptr.DrawAreaInternal, x1.d, y1.d, x2.d, y2.d, c.l, lineWidth.l ) CDrawArea_arc( ptr.DrawAreaInternal, cx.l, cy.l, rx.l, ry.l, a1.d, a2.d, c.l ) CDrawArea_rect( ptr.DrawAreaInternal, x1.l, y1.l, x2.l, y2.l, edgeColor.l, fillColor.l, raisedEffect.l ) CDrawArea_polygon2( ptr.DrawAreaInternal, *xData.Long, xLen.l, *yData.Long, yLen.l, edgeColor.l, fillColor.l ) CDrawArea_polygon( ptr.DrawAreaInternal, *xData.Double, xLen.l, *yData.Double, yLen.l, edgeColor.l, fillColor.l ) CDrawArea_surface( ptr.DrawAreaInternal, x1.d, y1.d, x2.d, y2.d, depthX.l, depthY.l, edgeColor.l, fillColor.l ) CDrawArea_sector( ptr.DrawAreaInternal, cx.l, cy.l, rx.l, ry.l, a1.d, a2.d, edgeColor.l, fillColor.l ) CDrawArea_cylinder( ptr.DrawAreaInternal, cx.l, cy.l, rx.l, ry.l, a1.d, a2.d, depthX.l, depthY.l, edgeColor.l, fillColor.l ) CDrawArea_circle( ptr.DrawAreaInternal, cx.l, cy.l, rx.l, ry.l, edgeColor.l, fillColor.l ) CDrawArea_ringSector( ptr.DrawAreaInternal, cx.l, cy.l, rx.l, ry.l, rx2.l, ry2.l, a1.d, a2.d, edgeColor.l, fillColor.l ) CDrawArea_ring( ptr.DrawAreaInternal, cx.l, cy.l, rx.l, ry.l, rx2.l, ry2.l, edgeColor.l, fillColor.l ) CDrawArea_fill( ptr.DrawAreaInternal, x.l, y.l, color.l ) CDrawArea_fill2( ptr.DrawAreaInternal, x.l, y.l, color.l, borderColor.l ) CDrawArea_text2( ptr.DrawAreaInternal, STR.p-ascii, font.p-ascii, fontIndex.l, fontHeight.d, fontWidth.d, angle.d, vertical.cd_bool, x.l, y.l, color.l, align.l ) CDrawArea_text2w( ptr.DrawAreaInternal, STR.p-unicode, font.p-ascii, fontIndex.l, fontHeight.d, fontWidth.d, angle.d, vertical.cd_bool, x.l, y.l, color.l, align.l ) CDrawArea_text( ptr.DrawAreaInternal, STR.p-ascii, font.p-ascii, fontSize.d, x.l, y.l, color.l ) CDrawArea_textw( ptr.DrawAreaInternal, STR.p-unicode, font.p-ascii, fontSize.d, x.l, y.l, color.l ) CDrawArea_text4w.TTFTextInternal( ptr.DrawAreaInternal, text.p-unicode, font.p-ascii, fontIndex.l, fontHeight.d, fontWidth.d, angle.d, vertical.cd_bool ) CDrawArea_text4.TTFTextInternal( ptr.DrawAreaInternal, text.p-ascii, font.p-ascii, fontIndex.l, fontHeight.d, fontWidth.d, angle.d, vertical.cd_bool ) CDrawArea_text3.TTFTextInternal( ptr.DrawAreaInternal, STR.p-ascii, font.p-ascii, fontSize.d ) CDrawArea_text3w.TTFTextInternal( ptr.DrawAreaInternal, STR.p-unicode, font.p-ascii, fontSize.d ) CDrawArea_close( ptr.DrawAreaInternal, text.TTFTextInternal ) CDrawArea_merge( ptr.DrawAreaInternal, d.DrawAreaInternal, x.l, y.l, align.l, transparency.l ) CDrawArea_tile( ptr.DrawAreaInternal, d.DrawAreaInternal, transparency.l ) CDrawArea_setSearchPath( ptr.DrawAreaInternal, path.p-ascii ) CDrawArea_loadGIF.cd_bool( ptr.DrawAreaInternal, filename.p-ascii ) CDrawArea_loadPNG.cd_bool( ptr.DrawAreaInternal, filename.p-ascii ) CDrawArea_loadJPG.cd_bool( ptr.DrawAreaInternal, filename.p-ascii ) CDrawArea_loadWMP.cd_bool( ptr.DrawAreaInternal, filename.p-ascii ) CDrawArea_load.cd_bool( ptr.DrawAreaInternal, filename.p-ascii ) CDrawArea_rAffineTransform( ptr.DrawAreaInternal, a.d, b.d, c.d, d.d, e.d, f.d, bgColor.l, ft.l, blur.d ) CDrawArea_affineTransform( ptr.DrawAreaInternal, a.d, b.d, c.d, d.d, e.d, f.d, bgColor.l, ft.l, blur.d ) CDrawArea_sphereTransform( ptr.DrawAreaInternal, xDiameter.l, yDiameter.l, bgColor.l, ft.l, blur.d ) CDrawArea_hCylinderTransform( ptr.DrawAreaInternal, yDiameter.l, bgColor.l, ft.l, blur.d ) CDrawArea_vCylinderTransform( ptr.DrawAreaInternal, xDiameter.l, bgColor.l, ft.l, blur.d ) CDrawArea_vTriangleTransform( ptr.DrawAreaInternal, tHeight.l, bgColor.l, ft.l, blur.d ) CDrawArea_hTriangleTransform( ptr.DrawAreaInternal, tWidth.l, bgColor.l, ft.l, blur.d ) CDrawArea_shearTransform( ptr.DrawAreaInternal, xShear.d, yShear.d, bgColor.l, ft.l, blur.d ) CDrawArea_waveTransform( ptr.DrawAreaInternal, period.l, amplitude.d, direction.d, startAngle.d, longitudinal.cd_bool, bgColor.l, ft.l, blur.d ) CDrawArea_out.cd_bool( ptr.DrawAreaInternal, filename.p-ascii ) CDrawArea_outGIF.cd_bool( ptr.DrawAreaInternal, filename.p-ascii ) CDrawArea_outPNG.cd_bool( ptr.DrawAreaInternal, filename.p-ascii ) CDrawArea_outJPG.cd_bool( ptr.DrawAreaInternal, filename.p-ascii, quality.l ) CDrawArea_outWMP.cd_bool( ptr.DrawAreaInternal, filename.p-ascii ) CDrawArea_outBMP.cd_bool( ptr.DrawAreaInternal, filename.p-ascii ) CDrawArea_outSVG.cd_bool( ptr.DrawAreaInternal, filename.p-ascii, options.p-ascii ) CDrawArea_outGIF2.cd_bool( ptr.DrawAreaInternal, *data_, *len.Long ) CDrawArea_outPNG2.cd_bool( ptr.DrawAreaInternal, *data_, *len.Long ) CDrawArea_outJPG2.cd_bool( ptr.DrawAreaInternal, *data_, *len.Long, quality.l ) CDrawArea_outWMP2.cd_bool( ptr.DrawAreaInternal, *data_, *len.Long ) CDrawArea_outBMP2.cd_bool( ptr.DrawAreaInternal, *data_, *len.Long ) CDrawArea_outSVG2.cd_bool( ptr.DrawAreaInternal, *data_, *len.Long, options.p-ascii ) CDrawArea_cacheOutput.cd_bool( ptr.DrawAreaInternal, id.p-ascii ) CDrawArea_setPaletteMode( ptr.DrawAreaInternal, p.l ) CDrawArea_setDitherMethod( ptr.DrawAreaInternal, m.l ) CDrawArea_setTransparentColor( ptr.DrawAreaInternal, c.l ) CDrawArea_setAntiAliasText( ptr.DrawAreaInternal, a.l ) CDrawArea_setAntiAlias( ptr.DrawAreaInternal, shapeAntiAlias.cd_bool, textAntiAlias.l ) CDrawArea_setInterlace( ptr.DrawAreaInternal, i.cd_bool ) CDrawArea_setColorTable( ptr.DrawAreaInternal, *colors.Long, noOfColors.l, offset.l ) CDrawArea_getARGBColor.l( ptr.DrawAreaInternal, c.l ) CDrawArea_halfColor.l( ptr.DrawAreaInternal, c.l ) CDrawArea_adjustBrightness.l( ptr.DrawAreaInternal, c.l, brightness.d ) CDrawArea_dashLineColor.l( ptr.DrawAreaInternal, color.l, dashPattern.l ) CDrawArea_patternColor.l( ptr.DrawAreaInternal, *cData.Long, cLen.l, h.l, startX.l, startY.l ) CDrawArea_patternColor2.l( ptr.DrawAreaInternal, filename.p-ascii, startX.l, startY.l ) CDrawArea_gradientColor2a.l( ptr.DrawAreaInternal, *c.Long, angle.d, scale.d, startX.l, startY.l ) CDrawArea_gradientColor2.l( ptr.DrawAreaInternal, *cData.Long, cLen.l, angle.d, scale.d, startX.l, startY.l ) CDrawArea_gradientColor.l( ptr.DrawAreaInternal, startX.l, startY.l, endX.l, endY.l, startColor.l, endColor.l ) CDrawArea_linearGradientColor.l( ptr.DrawAreaInternal, startX.l, startY.l, endX.l, endY.l, startColor.l, endColor.l, periodic.cd_bool ) CDrawArea_linearGradientColor2.l( ptr.DrawAreaInternal, startX.l, startY.l, endX.l, endY.l, *cData.Long, cLen.l, periodic.cd_bool ) CDrawArea_radialGradientColor.l( ptr.DrawAreaInternal, cx.l, cy.l, rx.l, ry.l, startColor.l, endColor.l, periodic.cd_bool ) CDrawArea_radialGradientColor2.l( ptr.DrawAreaInternal, cx.l, cy.l, rx.l, ry.l, *cData.Long, cLen.l, periodic.cd_bool ) CDrawArea_reduceColors.l( ptr.DrawAreaInternal, colorCount.l, blackAndWhite.cd_bool ) CDrawArea_setDefaultFonts( ptr.DrawAreaInternal, normal.p-ascii, bold.p-ascii, italic.p-ascii, boldItalic.p-ascii ) CDrawArea_setFontTable( ptr.DrawAreaInternal, index.l, font.p-ascii ) CDrawArea_initDynamicLayer( ptr.DrawAreaInternal ) CDrawArea_removeDynamicLayer( ptr.DrawAreaInternal, keepOriginal.cd_bool ) ;//////////////////////////////////////////////////////////////////////////////////////// ;// drawobj.h ;//////////////////////////////////////////////////////////////////////////////////////// Macro DrawObjInternal : i : EndMacro CDrawObj_paint( ptr.DrawObjInternal, d.DrawAreaInternal ) CDrawObj_setZOrder( ptr.DrawObjInternal, z.l ) Macro BoxInternal : i : EndMacro Box2DrawObj.DrawObjInternal( ptr.BoxInternal ) CBox_setPos( ptr.BoxInternal, x.l, y.l ) CBox_setSize( ptr.BoxInternal, w.l, h.l ) CBox_setBackground( ptr.BoxInternal, color.l, edgeColor.l, raisedEffect.l ) CBox_setRoundedCorners( ptr.BoxInternal, r1.l, r2.l, r3.l, r4.l ) CBox_getLeftX.l( ptr.BoxInternal ) CBox_getTopY.l( ptr.BoxInternal ) CBox_getWidth.l( ptr.BoxInternal ) CBox_getHeight.l( ptr.BoxInternal ) CBox_getImageCoor.i( ptr.BoxInternal, offsetX.l, offsetY.l ) Macro TextBoxInternal : i : EndMacro TextBox2Box.BoxInternal( ptr.TextBoxInternal ) CTextBox_setText( ptr.TextBoxInternal, text.p-ascii ) CTextBox_setAlignment( ptr.TextBoxInternal, a.l ) CTextBox_setFontStyle( ptr.TextBoxInternal, font.p-ascii, fontIndex.l ) CTextBox_setFontSize( ptr.TextBoxInternal, fontHeight.d, fontWidth.d ) CTextBox_setFontAngle( ptr.TextBoxInternal, angle.d, vertical.cd_bool ) CTextBox_setFontColor( ptr.TextBoxInternal, color.l ) CTextBox_setMargin2( ptr.TextBoxInternal, leftMargin.l, rightMargin.l, topMargin.l, bottomMargin.l ) CTextBox_setMargin( ptr.TextBoxInternal, m.l ) CTextBox_setWidth( ptr.TextBoxInternal, width.l ) CTextBox_setHeight( ptr.TextBoxInternal, height.l ) CTextBox_setMaxWidth( ptr.TextBoxInternal, maxWidth.l ) CTextBox_setTruncate( ptr.TextBoxInternal, maxWidth.l, maxLines.l ) Macro LineInternal : i : EndMacro Line2DrawObj.DrawObjInternal( ptr.LineInternal ) CLine_setPos( ptr.LineInternal, x1.l, y1.l, x2.l, y2.l ) CLine_setColor( ptr.LineInternal, c.l ) CLine_setWidth( ptr.LineInternal, w.l ) Macro CDMLTableInternal : i : EndMacro CDMLTable2DrawObj.DrawObjInternal( ptr.CDMLTableInternal ) CCDMLTable_setPos( ptr.CDMLTableInternal, x.l, y.l, alignment.l ) CCDMLTable_insertCol.TextBoxInternal( ptr.CDMLTableInternal, col.l ) CCDMLTable_appendCol.TextBoxInternal( ptr.CDMLTableInternal ) CCDMLTable_getColCount.l( ptr.CDMLTableInternal ) CCDMLTable_insertRow.TextBoxInternal( ptr.CDMLTableInternal, row.l ) CCDMLTable_appendRow.TextBoxInternal( ptr.CDMLTableInternal ) CCDMLTable_getRowCount.l( ptr.CDMLTableInternal ) CCDMLTable_setText.TextBoxInternal( ptr.CDMLTableInternal, col.l, row.l, text.p-ascii ) CCDMLTable_setCell.TextBoxInternal( ptr.CDMLTableInternal, col.l, row.l, width.l, height.l, text.p-ascii ) CCDMLTable_getCell.TextBoxInternal( ptr.CDMLTableInternal, col.l, row.l ) CCDMLTable_getColStyle.TextBoxInternal( ptr.CDMLTableInternal, col.l ) CCDMLTable_getRowStyle.TextBoxInternal( ptr.CDMLTableInternal, row.l ) CCDMLTable_getStyle.TextBoxInternal( ptr.CDMLTableInternal ) CCDMLTable_layout( ptr.CDMLTableInternal ) CCDMLTable_getColWidth.l( ptr.CDMLTableInternal, col.l ) CCDMLTable_getRowHeight.l( ptr.CDMLTableInternal, row.l ) CCDMLTable_getWidth.l( ptr.CDMLTableInternal ) CCDMLTable_getHeight.l( ptr.CDMLTableInternal ) ; ; Top Profile Reply With quote ; ; Oliver13 ; Post subject: Re: ChartDirector - Professional charts For PBPostPosted: Thu Apr 06, 2017 8:49 pm ; Offline ; User ; User ; ; Joined: Thu Sep 30, 2010 6:40 am ; Posts: 51 ; Chartdirector.pbi Part 2 ; ; Code: ;//////////////////////////////////////////////////////////////////////////////////////// ;// basechart.h ;//////////////////////////////////////////////////////////////////////////////////////// Macro LegendBoxInternal : i : EndMacro LegendBox2TextBox.TextBoxInternal( ptr.LegendBoxInternal ) CLegendBox_setCols( ptr.LegendBoxInternal, noOfCols.l ) CLegendBox_setReverse( ptr.LegendBoxInternal, b.cd_bool ) CLegendBox_addKey( ptr.LegendBoxInternal, text.p-ascii, color.l, lineWidth.l, symbol.DrawAreaInternal ) CLegendBox_addKey2( ptr.LegendBoxInternal, pos.l, text.p-ascii, color.l, lineWidth.l, symbol.DrawAreaInternal ) CLegendBox_setKeySize( ptr.LegendBoxInternal, width.l, height.l, gap.l ) CLegendBox_setKeySpacing( ptr.LegendBoxInternal, keySpacing.l, lineSpacing.l ) CLegendBox_setKeyBorder( ptr.LegendBoxInternal, edgeColor.l, raisedEffect.l ) CLegendBox_setLineStyleKey( ptr.LegendBoxInternal, b.cd_bool ) CLegendBox_getImageCoor.i( ptr.LegendBoxInternal, dataItem.l, offsetX.l, offsetY.l ) CLegendBox_getHTMLImageMap.i( ptr.LegendBoxInternal, url.p-ascii, queryFormat.p-ascii, extraAttr.p-ascii, offsetX.l, offsetY.l ) Macro BaseChartInternal : i : EndMacro CBaseChart_destroy( ptr.BaseChartInternal ) CBaseChart_enableVectorOutput( ptr.BaseChartInternal ) CBaseChart_setSize( ptr.BaseChartInternal, width.l, height.l ) CBaseChart_getWidth.l( ptr.BaseChartInternal ) CBaseChart_getHeight.l( ptr.BaseChartInternal ) CBaseChart_setBackground( ptr.BaseChartInternal, bgColor.l, edgeColor.l, raisedEffect.l ) CBaseChart_setBorder( ptr.BaseChartInternal, color.l ) ; deprecated - use setBackground CBaseChart_setRoundedFrame( ptr.BaseChartInternal, extColor.l, r1.l, r2.l, r3.l, r4.l ) CBaseChart_setWallpaper( ptr.BaseChartInternal, img.p-ascii ) CBaseChart_setBgImage( ptr.BaseChartInternal, img.p-ascii, align.l ) CBaseChart_setDropShadow( ptr.BaseChartInternal, color.l, offsetX.l, offsetY.l, blurRadius.l ) CBaseChart_setTransparentColor( ptr.BaseChartInternal, c.l ) CBaseChart_setAntiAlias( ptr.BaseChartInternal, antiAliasShape.cd_bool, antiAliasText.l ) CBaseChart_setSearchPath( ptr.BaseChartInternal, path.p-ascii ) CBaseChart_addTitle2.TextBoxInternal( ptr.BaseChartInternal, alignment.l, text.p-ascii, font.p-ascii, fontSize.d, fontColor.l, bgColor.l, edgeColor.l ) CBaseChart_addTitle.TextBoxInternal( ptr.BaseChartInternal, text.p-ascii, font.p-ascii, fontSize.d, fontColor.l, bgColor.l, edgeColor.l ) CBaseChart_addLegend.LegendBoxInternal( ptr.BaseChartInternal, x.l, y.l, vertical.cd_bool, font.p-ascii, fontHeight.d ) CBaseChart_addLegend2.LegendBoxInternal( ptr.BaseChartInternal, x.l, y.l, noOfCols.l, font.p-ascii, fontHeight.d ) CBaseChart_getLegend.LegendBoxInternal( ptr.BaseChartInternal ) CBaseChart_getDrawArea.DrawAreaInternal( ptr.BaseChartInternal ) CBaseChart_addText.TextBoxInternal( ptr.BaseChartInternal, x.l, y.l, text.p-ascii, font.p-ascii, fontSize.d, fontColor.l, alignment.l, angle.d, vertical.cd_bool ) CBaseChart_addLine.LineInternal( ptr.BaseChartInternal, x1.l, y1.l, x2.l, y2.l, color.l, lineWidth.l ) CBaseChart_addTable.CDMLTableInternal( ptr.BaseChartInternal, x.l, y.l, alignment.l, col.l, row.l ) CBaseChart_addExtraField( ptr.BaseChartInternal, *strData.Integer, arrayLen.l ) CBaseChart_addExtraField2( ptr.BaseChartInternal, *dblData.Double, arrayLen.l ) CBaseChart_setColors( ptr.BaseChartInternal, paletteEntry.l, *colorsData.Long, colorsLen.l ) CBaseChart_getColor.l( ptr.BaseChartInternal, paletteEntry.l ) CBaseChart_halfColor.l( ptr.BaseChartInternal, c.l ) CBaseChart_adjustBrightness.l( ptr.BaseChartInternal, c.l, brightness.d ) CBaseChart_dashLineColor.l( ptr.BaseChartInternal, color.l, patternCode.l ) CBaseChart_patternColor.l( ptr.BaseChartInternal, *cData.Long, cLen.l, h.l, startX.l, startY.l ) CBaseChart_patternColor2.l( ptr.BaseChartInternal, filename.p-ascii, startX.l, startY.l ) CBaseChart_gradientColor2a.l( ptr.BaseChartInternal, *c.Long, angle.d, scale.d, startX.l, startY.l ) CBaseChart_gradientColor2.l( ptr.BaseChartInternal, *cData.Long, cLen.l, angle.d, scale.d, startX.l, startY.l ) CBaseChart_gradientColor.l( ptr.BaseChartInternal, startX.l, startY.l, endX.l, endY.l, startColor.l, endColor.l ) CBaseChart_linearGradientColor.l( ptr.BaseChartInternal, startX.l, startY.l, endX.l, endY.l, startColor.l, endColor.l, periodic.cd_bool ) CBaseChart_linearGradientColor2.l( ptr.BaseChartInternal, startX.l, startY.l, endX.l, endY.l, *cData.Long, cLen.l, periodic.cd_bool ) CBaseChart_radialGradientColor.l( ptr.BaseChartInternal, cx.l, cy.l, rx.l, ry.l, startColor.l, endColor.l, periodic.cd_bool ) CBaseChart_radialGradientColor2.l( ptr.BaseChartInternal, cx.l, cy.l, rx.l, ry.l, *cData.Long, cLen.l, periodic.cd_bool ) CBaseChart_setDefaultFonts( ptr.BaseChartInternal, normal.p-ascii, bold.p-ascii, italic.p-ascii, boldItalic.p-ascii ) CBaseChart_setFontTable( ptr.BaseChartInternal, index.l, font.p-ascii ) CBaseChart_setNumberFormat( ptr.BaseChartInternal, thousandSeparator.a, decimalPointChar.a, signChar.a ) CBaseChart_setMonthNames( ptr.BaseChartInternal, *namesData.Integer, namesLen.l ) CBaseChart_setWeekDayNames( ptr.BaseChartInternal, *namesData.Integer, namesLen.l ) CBaseChart_setAMPM( ptr.BaseChartInternal, AM.p-ascii, PM.p-ascii ) CBaseChart_formatValue.i( ptr.BaseChartInternal, value.d, formatString.p-ascii ) CBaseChart_layoutLegend.LegendBoxInternal( ptr.BaseChartInternal ) CBaseChart_layout( ptr.BaseChartInternal ) CBaseChart_makeChart.cd_bool( ptr.BaseChartInternal, filename.p-ascii ) CBaseChart_makeChart2.cd_bool( ptr.BaseChartInternal, format.l, *data_, *len.Long ) CBaseChart_makeChart3.DrawAreaInternal( ptr.BaseChartInternal ) CBaseChart_getHTMLImageMap.i( ptr.BaseChartInternal, url.p-ascii, queryFormat.p-ascii, extraAttr.p-ascii, offsetX.l, offsetY.l ) CBaseChart_getChartMetrics.i( ptr.BaseChartInternal ) Macro MultiChartInternal : i : EndMacro MultiChart2BaseChart.BaseChartInternal( ptr.MultiChartInternal ) CMultiChart_create.MultiChartInternal( width.l, height.l, bgColor.l, edgeColor.l, raisedEffect.l ) CMultiChart_addChart( ptr.MultiChartInternal, x.l, y.l, c.BaseChartInternal ) CMultiChart_setMainChart( ptr.MultiChartInternal, c.BaseChartInternal ) CBaseChart_getAbsOffsetX.l( ptr.BaseChartInternal ) CBaseChart_getAbsOffsetY.l( ptr.BaseChartInternal ) CBaseChart_initDynamicLayer.DrawAreaInternal( ptr.BaseChartInternal ) CBaseChart_removeDynamicLayer( ptr.BaseChartInternal ) CBaseChart_getJsChartModel.i( ptr.BaseChartInternal, options.p-ascii ) ;//////////////////////////////////////////////////////////////////////////////////////// ;// piechart.h ;//////////////////////////////////////////////////////////////////////////////////////// Macro SectorInternal : i : EndMacro CSector_setExplode( ptr.SectorInternal, distance.l ) CSector_setStyle( ptr.SectorInternal, shadingMethod.l, edgeColor.l, edgeWidth.l ) CSector_setLabelFormat( ptr.SectorInternal, formatString.p-ascii ) CSector_setLabelStyle.TextBoxInternal( ptr.SectorInternal, font.p-ascii, fontSize.d, fontColor.l ) CSector_setLabelPos( ptr.SectorInternal, pos.l, joinLineColor.l ) CSector_setLabelLayout( ptr.SectorInternal, layoutMethod.l, pos.l ) CSector_setJoinLine( ptr.SectorInternal, joinLineColor.l, joinLineWidth.l ) CSector_setColor( ptr.SectorInternal, color.l, edgeColor.l, joinLineColor.l ) CSector_getImageCoor.i( ptr.SectorInternal, offsetX.l, offsetY.l ) CSector_getLabelCoor.i( ptr.SectorInternal, offsetX.l, offsetY.l ) Macro PieChartInternal : i : EndMacro PieChart2BaseChart.BaseChartInternal( ptr.PieChartInternal ) CPieChart_create.PieChartInternal( width.l, height.l, bgColor.l, edgeColor.l, raisedEffect.l ) CPieChart_setPieSize( ptr.PieChartInternal, x.l, y.l, r.l ) CPieChart_setDonutSize( ptr.PieChartInternal, x.l, y.l, r.l, r2.l ) CPieChart_set3D( ptr.PieChartInternal, depth.l, angle.d, shadowMode.cd_bool ) CPieChart_set3D2( ptr.PieChartInternal, *depthsData.Double, depthsLen.l, angle.d, shadowMode.cd_bool ) CPieChart_setSectorStyle( ptr.PieChartInternal, shadingMethod.l, edgeColor.l, edgeWidth.l ) CPieChart_setStartAngle( ptr.PieChartInternal, startAngle.d, clockWise.cd_bool ) CPieChart_setExplode( ptr.PieChartInternal, sectorNo.l, distance.l ) CPieChart_setExplodeGroup( ptr.PieChartInternal, startSector.l, endSector.l, distance.l ) CPieChart_setLabelFormat( ptr.PieChartInternal, formatString.p-ascii ) CPieChart_setLabelStyle.TextBoxInternal( ptr.PieChartInternal, font.p-ascii, fontSize.d, fontColor.l ) CPieChart_setLabelPos( ptr.PieChartInternal, pos.l, joinLineColor.l ) CPieChart_setLabelLayout( ptr.PieChartInternal, layoutMethod.l, pos.l, topBound.l, bottomBound.l ) CPieChart_setJoinLine( ptr.PieChartInternal, joinLineColor.l, joinLineWidth.l ) CPieChart_setLineColor( ptr.PieChartInternal, edgeColor.l, joinLineColor.l ) CPieChart_setData( ptr.PieChartInternal, *dataData.Double, dataLen.l, *labelsData.Integer, labelsLen.l ) CPieChart_sector.SectorInternal( ptr.PieChartInternal, sectorNo.l ) ;//////////////////////////////////////////////////////////////////////////////////////// ;// axis.h ;//////////////////////////////////////////////////////////////////////////////////////// Macro MarkInternal : i : EndMacro Macro LineObjInternal : i : EndMacro Mark2TextBox.TextBoxInternal( ptr.MarkInternal ) CMark_setValue( ptr.MarkInternal, value.d ) CMark_setMarkColor( ptr.MarkInternal, lineColor.l, textColor.l, tickColor.l ) CMark_setLineWidth( ptr.MarkInternal, w.l ) CMark_setDrawOnTop( ptr.MarkInternal, b.cd_bool ) CMark_getLine.LineObjInternal( ptr.MarkInternal ) Macro AxisInternal : i : EndMacro CAxis_setLabelStyle.TextBoxInternal( ptr.AxisInternal, font.p-ascii, fontSize.d, fontColor.l, fontAngle.d ) CAxis_setLabelFormat( ptr.AxisInternal, formatString.p-ascii ) CAxis_setMultiFormat( ptr.AxisInternal, filter1.l, format1.p-ascii, filter2.l, format2.p-ascii, labelSpan.l, promoteFirst.cd_bool ) CAxis_setMultiFormat2( ptr.AxisInternal, filterId.l, formatString.p-ascii, labelSpan.l, promoteFirst.cd_bool ) CAxis_setFormatCondition( ptr.AxisInternal, condition.p-ascii, operand.d ) CAxis_setLabelGap( ptr.AxisInternal, d.l ) CAxis_setTitle.TextBoxInternal( ptr.AxisInternal, text.p-ascii, font.p-ascii, fontSize.d, fontColor.l ) CAxis_setTitlePos( ptr.AxisInternal, alignment.l, titleGap.l ) CAxis_setColors( ptr.AxisInternal, axisColor.l, labelColor.l, titleColor.l, tickColor.l ) CAxis_setTickLength( ptr.AxisInternal, majorTickLen.l ) CAxis_setTickLength2( ptr.AxisInternal, majorTickLen.l, minorTickLen.l ) CAxis_setTickWidth( ptr.AxisInternal, majorTickWidth.l, minorTickWidth.l ) CAxis_setTickColor( ptr.AxisInternal, majorTickColor.l, minorTickColor.l ) CAxis_setWidth( ptr.AxisInternal, width.l ) CAxis_setLength( ptr.AxisInternal, length.l ) CAxis_setOffset( ptr.AxisInternal, x.l, y.l ) CAxis_setAngle( ptr.AxisInternal, startAngle.d ) CAxis_setMargin( ptr.AxisInternal, topMargin.l, bottomMargin.l ) CAxis_setIndent( ptr.AxisInternal, indent.cd_bool ) CAxis_setTickOffset( ptr.AxisInternal, offset.d ) CAxis_setLabelOffset( ptr.AxisInternal, offset.d ) CAxis_setAutoScale( ptr.AxisInternal, topExtension.d, bottomExtension.d, zeroAffinity.d ) CAxis_setRounding( ptr.AxisInternal, roundMin.cd_bool, roundMax.cd_bool ) CAxis_setTickDensity( ptr.AxisInternal, majorTickSpacing.l, minorTickSpacing.l ) CAxis_setReverse( ptr.AxisInternal, b.cd_bool ) CAxis_setMinTickInc( ptr.AxisInternal, INC.d ) CAxis_setLabels.TextBoxInternal( ptr.AxisInternal, *labelsData.Integer, labelsLen.l ) CAxis_setLabels2.TextBoxInternal( ptr.AxisInternal, *labelsData.Double, labelsLen.l, formatString.p-ascii ) CAxis_makeLabelTable.CDMLTableInternal( ptr.AxisInternal ) CAxis_getLabelTable.CDMLTableInternal( ptr.AxisInternal ) CAxis_setLabelStep( ptr.AxisInternal, majorTickStep.l, minorTickStep.l, majorTickOffset.l, minorTickOffset.l ) CAxis_setLinearScale3( ptr.AxisInternal, formatString.p-ascii ) CAxis_setLinearScale2( ptr.AxisInternal, lowerLimit.d, upperLimit.d, *labelsData.Integer, labelsLen.l ) CAxis_setLinearScale( ptr.AxisInternal, lowerLimit.d, upperLimit.d, majorTickInc.d, minorTickInc.d ) CAxis_setLogScale3( ptr.AxisInternal, formatString.p-ascii ) CAxis_setLogScale2( ptr.AxisInternal, lowerLimit.d, upperLimit.d, *labelsData.Integer, labelsLen.l ) CAxis_setLogScale( ptr.AxisInternal, lowerLimit.d, upperLimit.d, majorTickInc.d, minorTickInc.d ) CAxis_setDateScale3( ptr.AxisInternal, formatString.p-ascii ) CAxis_setDateScale2( ptr.AxisInternal, lowerLimit.d, upperLimit.d, *labelsData.Integer, labelsLen.l ) CAxis_setDateScale( ptr.AxisInternal, lowerLimit.d, upperLimit.d, majorTickInc.d, minorTickInc.d ) CAxis_syncAxis( ptr.AxisInternal, axis.AxisInternal, slope.d, intercept.d ) CAxis_copyAxis( ptr.AxisInternal, axis.AxisInternal ) CAxis_addLabel( ptr.AxisInternal, pos.d, label.p-ascii ) CAxis_addMark.MarkInternal( ptr.AxisInternal, value.d, lineColor.l, text.p-ascii, font.p-ascii, fontSize.d ) CAxis_addZone( ptr.AxisInternal, startValue.d, endValue.d, color.l ) CAxis_getCoor.l( ptr.AxisInternal, v.d ) CAxis_getMinValue.d( ptr.AxisInternal ) CAxis_getMaxValue.d( ptr.AxisInternal ) CAxis_getThickness.l( ptr.AxisInternal ) CAxis_getTicks( ptr.AxisInternal, *d, *len.Long ) CAxis_getLabel.i( ptr.AxisInternal, i.d ) CAxis_getAxisImageMap.i( ptr.AxisInternal, noOfSegments.l, mapWidth.l, url.p-ascii, queryFormat.p-ascii, extraAttr.p-ascii, offsetX.l, offsetY.l ) CAxis_getHTMLImageMap.i( ptr.AxisInternal, url.p-ascii, queryFormat.p-ascii, extraAttr.p-ascii, offsetX.l, offsetY.l ) CAxis_getFormattedLabel.i( ptr.AxisInternal, v.d, formatString.p-ascii ) CAxis_getX.l( ptr.AxisInternal ) CAxis_getY.l( ptr.AxisInternal ) CAxis_getAlignment.l( ptr.AxisInternal ) Macro RadialAxisInternal : AxisInternal : EndMacro Macro AngularAxisInternal : i : EndMacro CAngularAxis_setLabelStyle.TextBoxInternal( ptr.AngularAxisInternal, font.p-ascii, fontSize.d, fontColor.l, fontAngle.d ) CAngularAxis_setLabelGap( ptr.AngularAxisInternal, d.l ) CAngularAxis_setLabels.TextBoxInternal( ptr.AngularAxisInternal, *labelsData.Integer, labelsLen.l ) CAngularAxis_setLabels2.TextBoxInternal( ptr.AngularAxisInternal, *labelsData.Double, labelsLen.l, formatString.p-ascii ) CAngularAxis_addLabel( ptr.AngularAxisInternal, pos.d, label.p-ascii ) CAngularAxis_setLinearScale2( ptr.AngularAxisInternal, lowerLimit.d, upperLimit.d, *labelsData.Integer, labelsLen.l ) CAngularAxis_setLinearScale( ptr.AngularAxisInternal, lowerLimit.d, upperLimit.d, majorTickInc.d, minorTickInc.d ) CAngularAxis_addZone( ptr.AngularAxisInternal, startValue.d, endValue.d, startRadius.d, endRadius.d, fillColor.l, edgeColor.l ) CAngularAxis_addZone2( ptr.AngularAxisInternal, startValue.d, endValue.d, fillColor.l, edgeColor.l ) CAngularAxis_getAxisImageMap.i( ptr.AngularAxisInternal, noOfSegments.l, mapWidth.l, url.p-ascii, queryFormat.p-ascii, extraAttr.p-ascii, offsetX.l, offsetY.l ) CAngularAxis_getHTMLImageMap.i( ptr.AngularAxisInternal, url.p-ascii, queryFormat.p-ascii, extraAttr.p-ascii, offsetX.l, offsetY.l ) Macro ColorAxisInternal : i : EndMacro ColorAxis2Axis.AxisInternal( ptr.ColorAxisInternal ) CColorAxis_setColorGradient( ptr.ColorAxisInternal, isContinuous.cd_bool, *colorsData.Long, colorsLen.l, underflowColor.l, overflowColor.l ) CColorAxis_setAxisPos( ptr.ColorAxisInternal, x.l, y.l, alignment.l ) CColorAxis_setLevels( ptr.ColorAxisInternal, maxLevels.l ) CColorAxis_setCompactAxis( ptr.ColorAxisInternal, b.cd_bool ) CColorAxis_setAxisBorder( ptr.ColorAxisInternal, edgeColor.l, raisedEffect.l ) CColorAxis_setBoundingBox( ptr.ColorAxisInternal, fillColor.l, edgeColor.l, raisedEffect.l ) CColorAxis_setBoxMargin( ptr.ColorAxisInternal, m.l ) CColorAxis_setBoxMargin2( ptr.ColorAxisInternal, leftMargin.l, rightMargin.l, topMargin.l, bottomMargin.l ) CColorAxis_setRoundedCorners( ptr.ColorAxisInternal, r1.l, r2.l, r3.l, r4.l ) CColorAxis_getBoxWidth.l( ptr.ColorAxisInternal ) CColorAxis_getBoxHeight.l( ptr.ColorAxisInternal ) CColorAxis_getColor.l( ptr.ColorAxisInternal, z.d ) ;//////////////////////////////////////////////////////////////////////////////////////// ;// layer.h ;//////////////////////////////////////////////////////////////////////////////////////// Macro DataSetInternal : i : EndMacro CDataSet_setData( ptr.DataSetInternal, *dataData.Double, dataLen.l ) CDataSet_setDataName( ptr.DataSetInternal, name.p-ascii ) CDataSet_setDataColor( ptr.DataSetInternal, dataColor.l, edgeColor.l, shadowColor.l, shadowEdgeColor.l ) CDataSet_setDataSymbol2( ptr.DataSetInternal, image.p-ascii ) CDataSet_setDataSymbol3( ptr.DataSetInternal, image.DrawAreaInternal ) CDataSet_setDataSymbol( ptr.DataSetInternal, symbol.l, size.l, fillColor.l, edgeColor.l, lineWidth.l ) CDataSet_setDataSymbol4( ptr.DataSetInternal, *polygonData.Long, polygonLen.l, size.l, fillColor.l, edgeColor.l ) CDataSet_setLineWidth( ptr.DataSetInternal, w.l ) CDataSet_setDataLabelFormat( ptr.DataSetInternal, formatString.p-ascii ) CDataSet_setDataLabelStyle.TextBoxInternal( ptr.DataSetInternal, font.p-ascii, fontSize.d, fontColor.l, fontAngle.d ) CDataSet_setUseYAxis2( ptr.DataSetInternal, b.cd_bool ) CDataSet_setUseYAxis( ptr.DataSetInternal, a.AxisInternal ) CDataSet_getValue.d( ptr.DataSetInternal, i.l ) CDataSet_getPosition.d( ptr.DataSetInternal, i.l ) CDataSet_getDataName.i( ptr.DataSetInternal ) CDataSet_getDataColor.l( ptr.DataSetInternal ) CDataSet_getLegendIcon.i( ptr.DataSetInternal ) CDataSet_getUseYAxis.AxisInternal( ptr.DataSetInternal ) Macro LayerInternal : i : EndMacro CLayer_moveFront( ptr.LayerInternal, layer.LayerInternal ) CLayer_moveBack( ptr.LayerInternal, layer.LayerInternal ) CLayer_set3D( ptr.LayerInternal, d.l, zGap.l ) CLayer_setLineWidth( ptr.LayerInternal, w.l ) CLayer_setBorderColor( ptr.LayerInternal, color.l, raisedEffect.l ) CLayer_setLegend( ptr.LayerInternal, m.l ) CLayer_setLegendOrder( ptr.LayerInternal, dataSetOrder.l, layerOrder.l ) CLayer_getLegendIcon.i( ptr.LayerInternal, dataSetNo.l ) CLayer_setDataCombineMethod( ptr.LayerInternal, m.l ) CLayer_setBaseLine( ptr.LayerInternal, baseLine.d ) CLayer_addDataSet.DataSetInternal( ptr.LayerInternal, *dataData.Double, dataLen.l, color.l, name.p-ascii ) CLayer_addDataGroup( ptr.LayerInternal, name.p-ascii ) CLayer_addExtraField( ptr.LayerInternal, *textsData.Integer, textsLen.l ) CLayer_addExtraField2( ptr.LayerInternal, *numbersData.Double, numbersLen.l ) CLayer_getDataSet.DataSetInternal( ptr.LayerInternal, dataSet.l ) CLayer_setUseYAxis2( ptr.LayerInternal, b.cd_bool ) CLayer_setUseYAxis( ptr.LayerInternal, a.AxisInternal ) CLayer_setXData( ptr.LayerInternal, *xDataData.Double, xDataLen.l ) CLayer_setXData2( ptr.LayerInternal, minValue.d, maxValue.d ) CLayer_alignLayer( ptr.LayerInternal, layer.LayerInternal, dataSet.l ) CLayer_getXCoor.l( ptr.LayerInternal, v.d ) CLayer_getYCoor.l( ptr.LayerInternal, v.d, yAxis.cd_bool ) CLayer_getYCoor2.l( ptr.LayerInternal, v.d, yAxis.AxisInternal ) CLayer_xZoneColor.l( ptr.LayerInternal, threshold.d, belowColor.l, aboveColor.l ) CLayer_yZoneColor.l( ptr.LayerInternal, threshold.d, belowColor.l, aboveColor.l, mainAxis.cd_bool ) CLayer_yZoneColor2.l( ptr.LayerInternal, threshold.d, belowColor.l, aboveColor.l, yAxis.AxisInternal ) CLayer_getImageCoor.i( ptr.LayerInternal, dataSet.l, dataItem.l, offsetX.l, offsetY.l ) CLayer_getImageCoor2.i( ptr.LayerInternal, dataItem.l, offsetX.l, offsetY.l ) CLayer_getHTMLImageMap.i( ptr.LayerInternal, url.p-ascii, queryFormat.p-ascii, extraAttr.p-ascii, offsetX.l, offsetY.l ) CLayer_setHTMLImageMap( ptr.LayerInternal, url.p-ascii, queryFormat.p-ascii, extraAttr.p-ascii ) CLayer_setDataLabelFormat( ptr.LayerInternal, formatString.p-ascii ) CLayer_setDataLabelStyle.TextBoxInternal( ptr.LayerInternal, font.p-ascii, fontSize.d, fontColor.l, fontAngle.d ) CLayer_setAggregateLabelFormat( ptr.LayerInternal, formatString.p-ascii ) CLayer_setAggregateLabelStyle.TextBoxInternal( ptr.LayerInternal, font.p-ascii, fontSize.d, fontColor.l, fontAngle.d ) CLayer_addCustomDataLabel.TextBoxInternal( ptr.LayerInternal, dataSet.l, dataItem.l, label.p-ascii, font.p-ascii, fontSize.d, fontColor.l, fontAngle.d ) CLayer_addCustomAggregateLabel.TextBoxInternal( ptr.LayerInternal, dataItem.l, label.p-ascii, font.p-ascii, fontSize.d, fontColor.l, fontAngle.d ) CLayer_addCustomGroupLabel.TextBoxInternal( ptr.LayerInternal, dataGroup.l, dataItem.l, label.p-ascii, font.p-ascii, fontSize.d, fontColor.l, fontAngle.d ) CLayer_getDataSetByZ.DataSetInternal( ptr.LayerInternal, i.l ) CLayer_getDataSetCount.l( ptr.LayerInternal ) CLayer_getXPosition.d( ptr.LayerInternal, i.l ) CLayer_getNearestXValue.d( ptr.LayerInternal, target.d ) CLayer_getXIndexOf.l( ptr.LayerInternal, xValue.d, tolerance.d ) ;//////////////////////////////////////////////////////////////////////////////////////// ;// barlayer.h ;//////////////////////////////////////////////////////////////////////////////////////// Macro BarLayerInternal : i : EndMacro BarLayer2Layer.LayerInternal( ptr.BarLayerInternal ) CBarLayer_setBarGap( ptr.BarLayerInternal, barGap.d, subBarGap.d ) CBarLayer_setBarWidth( ptr.BarLayerInternal, barWidth.l, subBarWidth.l ) CBarLayer_setMinLabelSize( ptr.BarLayerInternal, s.l ) CBarLayer_setMinImageMapSize( ptr.BarLayerInternal, s.l ) CBarLayer_setBarShape( ptr.BarLayerInternal, shape.l, dataGroup.l, dataItem.l ) CBarLayer_setBarShape2( ptr.BarLayerInternal, *shapeData.Long, shapeLen.l, dataGroup.l, dataItem.l ) CBarLayer_setIconSize( ptr.BarLayerInternal, height.l, width.l ) CBarLayer_setOverlapRatio( ptr.BarLayerInternal, overlapRatio.d, firstOnTop.cd_bool ) ;//////////////////////////////////////////////////////////////////////////////////////// ;// linelayer.h ;//////////////////////////////////////////////////////////////////////////////////////// Macro InterLineLayerInternal : i : EndMacro InterLineLayer2Layer.LayerInternal( ptr.InterLineLayerInternal ) CInterLineLayer_setGapColor( ptr.InterLineLayerInternal, gapColor12.l, gapColor21.l ) Macro LineLayerInternal : i : EndMacro LineLayer2Layer.LayerInternal( ptr.LineLayerInternal ) CLineLayer_setSymbolScale( ptr.LineLayerInternal, *zDataXData.Double, zDataXLen.l, scaleTypeX.l, *zDataYData.Double, zDataYLen.l, scaleTypeY.l ) CLineLayer_setGapColor( ptr.LineLayerInternal, lineColor.l, lineWidth.l ) CLineLayer_setImageMapWidth( ptr.LineLayerInternal, width.l ) CLineLayer_getLine.LineObjInternal( ptr.LineLayerInternal, dataSet.l ) CLineLayer_setFastLineMode( ptr.LineLayerInternal, b.cd_bool ) Macro SplineLayerInternal : i : EndMacro SplineLayer2LineLayer.LineLayerInternal( ptr.SplineLayerInternal ) CSplineLayer_setTension( ptr.SplineLayerInternal, tension.d ) CSplineLayer_setMonotonicity( ptr.SplineLayerInternal, m.l ) Macro StepLineLayerInternal : i : EndMacro StepLineLayer2LineLayer.LineLayerInternal( ptr.StepLineLayerInternal ) CStepLineLayer_setAlignment( ptr.StepLineLayerInternal, a.l ) Macro ScatterLayerInternal : LineLayerInternal : EndMacro ;//////////////////////////////////////////////////////////////////////////////////////// ;// arealayer.h ;//////////////////////////////////////////////////////////////////////////////////////// Macro AreaLayerInternal : i : EndMacro AreaLayer2Layer.LayerInternal( ptr.AreaLayerInternal ) CAreaLayer_setMinLabelSize( ptr.AreaLayerInternal, s.l ) CAreaLayer_setGapColor( ptr.AreaLayerInternal, fillColor.l ) ;//////////////////////////////////////////////////////////////////////////////////////// ;// hloclayer.h ;//////////////////////////////////////////////////////////////////////////////////////// Macro BaseBoxLayerInternal : i : EndMacro BaseBoxLayer2Layer.LayerInternal( ptr.BaseBoxLayerInternal ) CBaseBoxLayer_setDataGap( ptr.BaseBoxLayerInternal, gap.d ) CBaseBoxLayer_setDataWidth( ptr.BaseBoxLayerInternal, width.l ) CBaseBoxLayer_setMinImageMapSize( ptr.BaseBoxLayerInternal, size.l ) Macro HLOCLayerInternal : i : EndMacro HLOCLayer2BaseBoxLayer.BaseBoxLayerInternal( ptr.HLOCLayerInternal ) CHLOCLayer_setColorMethod( ptr.HLOCLayerInternal, colorMethod.l, riseColor.l, fallColor.l, leadValue.d ) Macro CandleStickLayerInternal : i : EndMacro CandleStickLayer2BaseBoxLayer.BaseBoxLayerInternal( ptr.CandleStickLayerInternal ) Macro BoxWhiskerLayerInternal : i : EndMacro BoxWhiskerLayer2BaseBoxLayer.BaseBoxLayerInternal( ptr.BoxWhiskerLayerInternal ) CBoxWhiskerLayer_setBoxColors( ptr.BoxWhiskerLayerInternal, *colorsData.Long, colorsLen.l, *namesData.Integer = 0, namesLen.l = 0) CBoxWhiskerLayer_setBoxColor( ptr.BoxWhiskerLayerInternal, item.l, boxColor.l ) CBoxWhiskerLayer_setWhiskerBrightness( ptr.BoxWhiskerLayerInternal, whiskerBrightness.d ) ;//////////////////////////////////////////////////////////////////////////////////////// ;// trendlayer.h ;//////////////////////////////////////////////////////////////////////////////////////// Macro TrendLayerInternal : i : EndMacro TrendLayer2Layer.LayerInternal( ptr.TrendLayerInternal ) CTrendLayer_setRegressionType( ptr.TrendLayerInternal, regressionType.l ) CTrendLayer_addConfidenceBand( ptr.TrendLayerInternal, confidence.d, upperFillColor.l, upperEdgeColor.l, upperLineWidth.l, lowerFillColor.l, lowerEdgeColor.l, lowerLineWidth.l ) CTrendLayer_addPredictionBand( ptr.TrendLayerInternal, confidence.d, upperFillColor.l, upperEdgeColor.l, upperLineWidth.l, lowerFillColor.l, lowerEdgeColor.l, lowerLineWidth.l ) CTrendLayer_getSlope.d( ptr.TrendLayerInternal ) CTrendLayer_getIntercept.d( ptr.TrendLayerInternal ) CTrendLayer_getCorrelation.d( ptr.TrendLayerInternal ) CTrendLayer_getStdError.d( ptr.TrendLayerInternal ) CTrendLayer_getCoefficient.d( ptr.TrendLayerInternal, i.l ) CTrendLayer_setImageMapWidth( ptr.TrendLayerInternal, width.l ) CTrendLayer_getLine.LineObjInternal( ptr.TrendLayerInternal ) ;//////////////////////////////////////////////////////////////////////////////////////// ;// vectorlayer.h ;//////////////////////////////////////////////////////////////////////////////////////// Macro VectorLayerInternal : i : EndMacro VectorLayer2Layer.LayerInternal( ptr.VectorLayerInternal ) CVectorLayer_setVector( ptr.VectorLayerInternal, *lengthsData.Double, lengthsLen.l, *directionsData.Double, directionsLen.l, lengthScale.l ) CVectorLayer_setArrowHead2( ptr.VectorLayerInternal, *polygonData.Long, polygonLen.l ) CVectorLayer_setArrowHead( ptr.VectorLayerInternal, width.l, height.l ) CVectorLayer_setArrowStem( ptr.VectorLayerInternal, *polygonData.Long, polygonLen.l ) CVectorLayer_setArrowAlignment( ptr.VectorLayerInternal, alignment.l ) CVectorLayer_setIconSize( ptr.VectorLayerInternal, height.l, width.l ) CVectorLayer_setVectorMargin( ptr.VectorLayerInternal, startMargin.d, endMargin.d ) ;//////////////////////////////////////////////////////////////////////////////////////// ;// contourlayer.h ;//////////////////////////////////////////////////////////////////////////////////////// Macro ContourLayerInternal : i : EndMacro ContourLayer2Layer.LayerInternal( ptr.ContourLayerInternal ) CContourLayer_setZData( ptr.ContourLayerInternal, *zDataData.Double, zDataLen.l ) CContourLayer_setSmoothInterpolation( ptr.ContourLayerInternal, b.cd_bool ) CContourLayer_setContourColor( ptr.ContourLayerInternal, contourColor.l, minorContourColor.l ) CContourLayer_setContourWidth( ptr.ContourLayerInternal, contourWidth.l, minorContourWidth.l ) CContourLayer_setColorAxis.ColorAxisInternal( ptr.ContourLayerInternal, x.l, y.l, alignment.l, length.l, orientation.l ) CContourLayer_colorAxis.ColorAxisInternal( ptr.ContourLayerInternal ) CContourLayer_setZBounds( ptr.ContourLayerInternal, minZ.d, maxZ.d ) CContourLayer_setExactContour( ptr.ContourLayerInternal, contour.cd_bool, markContour.cd_bool ) ;//////////////////////////////////////////////////////////////////////////////////////// ;// xychart.h ;//////////////////////////////////////////////////////////////////////////////////////// Macro PlotAreaInternal : i : EndMacro CPlotArea_setBackground( ptr.PlotAreaInternal, color.l, altBgColor.l, edgeColor.l ) CPlotArea_setBackground2( ptr.PlotAreaInternal, img.p-ascii, align.l ) CPlotArea_set4QBgColor( ptr.PlotAreaInternal, Q1Color.l, Q2Color.l, Q3Color.l, Q4Color.l, edgeColor.l ) CPlotArea_setAltBgColor( ptr.PlotAreaInternal, horizontal.cd_bool, color1.l, color2.l, edgeColor.l ) CPlotArea_setGridColor( ptr.PlotAreaInternal, hGridColor.l, vGridColor.l, minorHGridColor.l, minorVGridColor.l ) CPlotArea_setGridWidth( ptr.PlotAreaInternal, hGridWidth.l, vGridWidth.l, minorHGridWidth.l, minorVGridWidth.l ) CPlotArea_setGridAxis( ptr.PlotAreaInternal, xGridAxis.AxisInternal, yGridAxis.AxisInternal ) CPlotArea_moveGridBefore( ptr.PlotAreaInternal, layer.LayerInternal ) CPlotArea_getLeftX.l( ptr.PlotAreaInternal ) CPlotArea_getTopY.l( ptr.PlotAreaInternal ) CPlotArea_getWidth.l( ptr.PlotAreaInternal ) CPlotArea_getHeight.l( ptr.PlotAreaInternal ) CPlotArea_getRightX.l( ptr.PlotAreaInternal ) CPlotArea_getBottomY.l( ptr.PlotAreaInternal ) Macro XYChartInternal : i : EndMacro XYChart2BaseChart.BaseChartInternal( ptr.XYChartInternal ) CXYChart_create.XYChartInternal( width.l, height.l, bgColor.l, edgeColor.l, raisedEffect.l ) CXYChart_addAxis.AxisInternal( ptr.XYChartInternal, align.l, offset.l ) CXYChart_yAxis.AxisInternal( ptr.XYChartInternal ) CXYChart_yAxis2.AxisInternal( ptr.XYChartInternal ) CXYChart_syncYAxis( ptr.XYChartInternal, slope.d, intercept.d ) CXYChart_setYAxisOnRight( ptr.XYChartInternal, b.cd_bool ) CXYChart_xAxis.AxisInternal( ptr.XYChartInternal ) CXYChart_xAxis2.AxisInternal( ptr.XYChartInternal ) CXYChart_setXAxisOnTop( ptr.XYChartInternal, b.cd_bool ) CXYChart_swapXY( ptr.XYChartInternal, b.cd_bool ) CXYChart_setAxisAtOrigin( ptr.XYChartInternal, originMode.l, symmetryMode.l ) CXYChart_getXCoor.l( ptr.XYChartInternal, v.d ) CXYChart_getYCoor.l( ptr.XYChartInternal, v.d, yAxis.AxisInternal ) CXYChart_xZoneColor.l( ptr.XYChartInternal, threshold.d, belowColor.l, aboveColor.l ) CXYChart_yZoneColor.l( ptr.XYChartInternal, threshold.d, belowColor.l, aboveColor.l, axis.AxisInternal ) CXYChart_setPlotArea.PlotAreaInternal( ptr.XYChartInternal, x.l, y.l, width.l, height.l, bgColor.l, altBgColor.l, edgeColor.l, hGridColor.l, vGridColor.l ) CXYChart_getPlotArea.PlotAreaInternal( ptr.XYChartInternal ) CXYChart_setClipping( ptr.XYChartInternal, margin.l ) CXYChart_setTrimData( ptr.XYChartInternal, startPos.l, len.l ) CXYChart_addBarLayer.BarLayerInternal( ptr.XYChartInternal, *dataData.Double, dataLen.l, color.l, name.p-ascii, depth.l ) CXYChart_addBarLayer3.BarLayerInternal( ptr.XYChartInternal, *dataData.Double, dataLen.l, *colorsData.Long, colorsLen.l, *namesData.Integer = 0, namesLen.l = 0, depth.l = 0) CXYChart_addBarLayer2.BarLayerInternal( ptr.XYChartInternal, dataCombineMethod.l, depth.l ) CXYChart_addLineLayer.LineLayerInternal( ptr.XYChartInternal, *dataData.Double, dataLen.l, color.l, name.p-ascii, depth.l ) CXYChart_addLineLayer2.LineLayerInternal( ptr.XYChartInternal, dataCombineMethod.l, depth.l ) CXYChart_addAreaLayer.AreaLayerInternal( ptr.XYChartInternal, *dataData.Double, dataLen.l, color.l, name.p-ascii, depth.l ) CXYChart_addAreaLayer2.AreaLayerInternal( ptr.XYChartInternal, dataCombineMethod.l, depth.l ) CXYChart_addHLOCLayer2.HLOCLayerInternal( ptr.XYChartInternal ) CXYChart_addHLOCLayer.HLOCLayerInternal( ptr.XYChartInternal, *highDataData.Double, highDataLen.l, *lowDataData.Double, lowDataLen.l, *openDataData.Double, openDataLen.l, *closeDataData.Double, closeDataLen.l, color.l ) CXYChart_addHLOCLayer3.HLOCLayerInternal( ptr.XYChartInternal, *highDataData.Double, highDataLen.l, *lowDataData.Double, lowDataLen.l, *openDataData.Double, openDataLen.l, *closeDataData.Double, closeDataLen.l, upColor.l, downColor.l, colorMode.l, leadValue.d ) CXYChart_addCandleStickLayer.CandleStickLayerInternal( ptr.XYChartInternal, *highDataData.Double, highDataLen.l, *lowDataData.Double, lowDataLen.l, *openDataData.Double, openDataLen.l, *closeDataData.Double, closeDataLen.l, riseColor.l, fallColor.l, edgeColor.l ) CXYChart_addBoxWhiskerLayer.BoxWhiskerLayerInternal( ptr.XYChartInternal, *boxTopData.Double, boxTopLen.l, *boxBottomData.Double, boxBottomLen.l, *maxDataData.Double, maxDataLen.l, *minDataData.Double, minDataLen.l, *midDataData.Double, midDataLen.l, fillColor.l, whiskerColor.l, edgeColor.l ) CXYChart_addBoxWhiskerLayer2.BoxWhiskerLayerInternal( ptr.XYChartInternal, *boxTopData.Double, boxTopLen.l, *boxBottomData.Double, boxBottomLen.l, *maxDataData.Double = 0, maxDataLen.l = 0, *minDataData.Double = 0, minDataLen.l = 0, *midDataData.Double = 0, midDataLen.l = 0, *fillColorsData.Long = 0, fillColorsLen.l = 0, whiskerBrightness.d = 0.5, *namesData.Integer = 0, namesLen.l = 0) CXYChart_addBoxLayer.BoxWhiskerLayerInternal( ptr.XYChartInternal, *boxTopData.Double, boxTopLen.l, *boxBottomData.Double, boxBottomLen.l, color.l, name.p-ascii ) CXYChart_addScatterLayer.ScatterLayerInternal( ptr.XYChartInternal, *xDataData.Double, xDataLen.l, *yDataData.Double, yDataLen.l, name.p-ascii, symbol.l, symbolSize.l, fillColor.l, edgeColor.l ) CXYChart_addTrendLayer.TrendLayerInternal( ptr.XYChartInternal, *dataData.Double, dataLen.l, color.l, name.p-ascii, depth.l ) CXYChart_addTrendLayer2.TrendLayerInternal( ptr.XYChartInternal, *xDataData.Double, xDataLen.l, *yDataData.Double, yDataLen.l, color.l, name.p-ascii, depth.l ) CXYChart_addSplineLayer.SplineLayerInternal( ptr.XYChartInternal, *dataData.Double, dataLen.l, color.l, name.p-ascii ) CXYChart_addStepLineLayer.StepLineLayerInternal( ptr.XYChartInternal, *dataData.Double, dataLen.l, color.l, name.p-ascii ) CXYChart_addInterLineLayer.InterLineLayerInternal( ptr.XYChartInternal, line1.LineObjInternal, line2.LineObjInternal, color12.l, color21.l ) CXYChart_addVectorLayer.VectorLayerInternal( ptr.XYChartInternal, *xDataData.Double, xDataLen.l, *yDataData.Double, yDataLen.l, *lengthsData.Double, lengthsLen.l, *directionsData.Double, directionsLen.l, lengthScale.l, color.l, name.p-ascii ) CXYChart_addContourLayer.ContourLayerInternal( ptr.XYChartInternal, *xDataData.Double, xDataLen.l, *yDataData.Double, yDataLen.l, *zDataData.Double, zDataLen.l ) CXYChart_layoutAxes( ptr.XYChartInternal ) CXYChart_packPlotArea( ptr.XYChartInternal, leftX.l, topY.l, rightX.l, bottomY.l, minWidth.l, minHeight.l ) CXYChart_getXValue.d( ptr.XYChartInternal, xCoor.l ) CXYChart_getNearestXValue.d( ptr.XYChartInternal, xCoor.d ) CXYChart_getYValue.d( ptr.XYChartInternal, yCoor.l, yAxis.AxisInternal ) CXYChart_getLayer.LayerInternal( ptr.XYChartInternal, i.l ) CXYChart_getLayerByZ.LayerInternal( ptr.XYChartInternal, i.l ) CXYChart_getLayerCount.l( ptr.XYChartInternal ) ;//////////////////////////////////////////////////////////////////////////////////////// ;// surfacechart.h ;//////////////////////////////////////////////////////////////////////////////////////// Macro ThreeDChartInternal : i : EndMacro ThreeDChart2BaseChart.BaseChartInternal( ptr.ThreeDChartInternal ) CThreeDChart_setPlotRegion( ptr.ThreeDChartInternal, cx.l, cy.l, xWidth.l, yDepth.l, zHeight.l ) CThreeDChart_setViewAngle( ptr.ThreeDChartInternal, elevation.d, rotation.d, twist.d ) CThreeDChart_setPerspective( ptr.ThreeDChartInternal, perspective.d ) CThreeDChart_xAxis.AxisInternal( ptr.ThreeDChartInternal ) CThreeDChart_yAxis.AxisInternal( ptr.ThreeDChartInternal ) CThreeDChart_zAxis.AxisInternal( ptr.ThreeDChartInternal ) CThreeDChart_setZAxisPos( ptr.ThreeDChartInternal, pos.l ) CThreeDChart_setColorAxis.ColorAxisInternal( ptr.ThreeDChartInternal, x.l, y.l, alignment.l, length.l, orientation.l ) CThreeDChart_colorAxis.ColorAxisInternal( ptr.ThreeDChartInternal ) CThreeDChart_setWallVisibility( ptr.ThreeDChartInternal, xyVisible.cd_bool, yzVisible.cd_bool, zxVisible.cd_bool ) CThreeDChart_setWallColor( ptr.ThreeDChartInternal, xyColor.l, yzColor.l, zxColor.l, borderColor.l ) CThreeDChart_setWallThickness( ptr.ThreeDChartInternal, xyThickness.l, yzThickness.l, zxThickness.l ) CThreeDChart_setWallGrid( ptr.ThreeDChartInternal, majorXGridColor.l, majorYGridColor.l, majorZGridColor.l, minorXGridColor.l, minorYGridColor.l, minorZGridColor.l ) Macro SurfaceChartInternal : i : EndMacro SurfaceChart2ThreeDChart.ThreeDChartInternal( ptr.SurfaceChartInternal ) CSurfaceChart_create.SurfaceChartInternal( width.l, height.l, bgColor.l, edgeColor.l, raisedEffect.l ) CSurfaceChart_setData( ptr.SurfaceChartInternal, *xDataData.Double, xDataLen.l, *yDataData.Double, yDataLen.l, *zDataData.Double, zDataLen.l ) CSurfaceChart_setInterpolation( ptr.SurfaceChartInternal, xSamples.l, ySamples.l, isSmooth.cd_bool ) CSurfaceChart_setLighting( ptr.SurfaceChartInternal, ambientIntensity.d, diffuseIntensity.d, specularIntensity.d, shininess.d ) CSurfaceChart_setShadingMode( ptr.SurfaceChartInternal, shadingMode.l, wireWidth.l ) CSurfaceChart_setSurfaceAxisGrid( ptr.SurfaceChartInternal, majorXGridColor.l, majorYGridColor.l, minorXGridColor.l, minorYGridColor.l ) CSurfaceChart_setSurfaceDataGrid( ptr.SurfaceChartInternal, xGridColor.l, yGridColor.l ) CSurfaceChart_setContourColor( ptr.SurfaceChartInternal, contourColor.l, minorContourColor.l ) CSurfaceChart_setBackSideBrightness( ptr.SurfaceChartInternal, brightness.d ) CSurfaceChart_setBackSideColor( ptr.SurfaceChartInternal, color.l ) CSurfaceChart_setBackSideLighting( ptr.SurfaceChartInternal, ambientLight.d, diffuseLight.d, specularLight.d, shininess.d ) Macro ThreeDScatterGroupInternal : i : EndMacro CThreeDScatterGroup_setDataSymbol( ptr.ThreeDScatterGroupInternal, symbol.l, size.l, fillColor.l, edgeColor.l, lineWidth.l ) CThreeDScatterGroup_setDataSymbol2( ptr.ThreeDScatterGroupInternal, image.p-ascii ) CThreeDScatterGroup_setDataSymbol3( ptr.ThreeDScatterGroupInternal, image.DrawAreaInternal ) CThreeDScatterGroup_setDataSymbol4( ptr.ThreeDScatterGroupInternal, *polygonData.Long, polygonLen.l, size.l, fillColor.l, edgeColor.l ) CThreeDScatterGroup_setDropLine( ptr.ThreeDScatterGroupInternal, dropLineColor.l, dropLineWidth.l ) CThreeDScatterGroup_setLegendIcon( ptr.ThreeDScatterGroupInternal, width.l, height.l, color.l ) Macro ThreeDScatterChartInternal : i : EndMacro ThreeDScatterChart2ThreeDChart.ThreeDChartInternal( ptr.ThreeDScatterChartInternal ) CThreeDScatterChart_create.ThreeDScatterChartInternal( width.l, height.l, bgColor.l, edgeColor.l, raisedEffect.l ) CThreeDScatterChart_addScatterGroup.ThreeDScatterGroupInternal( ptr.ThreeDScatterChartInternal, *xData.Double, xLen.l, *yData.Double, yLen.l, *zData.Double, zLen.l, name.p-ascii, symbol.l, symbolSize.l, fillColor.l, edgeColor.l ) ;//////////////////////////////////////////////////////////////////////////////////////// ;// polarchart.h ;//////////////////////////////////////////////////////////////////////////////////////// Macro PolarLayerInternal : i : EndMacro CPolarLayer_setData( ptr.PolarLayerInternal, *dataData.Double, dataLen.l, color.l, name.p-ascii ) CPolarLayer_setAngles( ptr.PolarLayerInternal, *anglesData.Double, anglesLen.l ) CPolarLayer_setBorderColor( ptr.PolarLayerInternal, edgeColor.l ) CPolarLayer_setLineWidth( ptr.PolarLayerInternal, w.l ) CPolarLayer_setDataSymbol2( ptr.PolarLayerInternal, image.p-ascii ) CPolarLayer_setDataSymbol3( ptr.PolarLayerInternal, image.DrawAreaInternal ) CPolarLayer_setDataSymbol( ptr.PolarLayerInternal, symbol.l, size.l, fillColor.l, edgeColor.l, lineWidth.l ) CPolarLayer_setDataSymbol4( ptr.PolarLayerInternal, *polygonData.Long, polygonLen.l, size.l, fillColor.l, edgeColor.l ) CPolarLayer_setSymbolScale( ptr.PolarLayerInternal, *zDataData.Double, zDataLen.l, scaleType.l ) CPolarLayer_setImageMapWidth( ptr.PolarLayerInternal, width.l ) CPolarLayer_getImageCoor.i( ptr.PolarLayerInternal, dataItem.l, offsetX.l, offsetY.l ) CPolarLayer_getHTMLImageMap.i( ptr.PolarLayerInternal, url.p-ascii, queryFormat.p-ascii, extraAttr.p-ascii, offsetX.l, offsetY.l ) CPolarLayer_setHTMLImageMap( ptr.PolarLayerInternal, url.p-ascii, queryFormat.p-ascii, extraAttr.p-ascii ) CPolarLayer_setDataLabelFormat( ptr.PolarLayerInternal, formatString.p-ascii ) CPolarLayer_setDataLabelStyle.TextBoxInternal( ptr.PolarLayerInternal, font.p-ascii, fontSize.d, fontColor.l, fontAngle.d ) CPolarLayer_addCustomDataLabel.TextBoxInternal( ptr.PolarLayerInternal, i.l, label.p-ascii, font.p-ascii, fontSize.d, fontColor.l, fontAngle.d ) Macro PolarAreaLayerInternal : i : EndMacro PolarAreaLayer2PolarLayer.PolarLayerInternal( ptr.PolarAreaLayerInternal ) Macro PolarLineLayerInternal : i : EndMacro PolarLineLayer2PolarLayer.PolarLayerInternal( ptr.PolarLineLayerInternal ) CPolarLineLayer_setCloseLoop( ptr.PolarLineLayerInternal, b.cd_bool ) CPolarLineLayer_setGapColor( ptr.PolarLineLayerInternal, lineColor.l, lineWidth.l ) Macro PolarSplineLineLayerInternal : i : EndMacro PolarSplineLineLayer2PolarLineLayer.PolarLineLayerInternal( ptr.PolarSplineLineLayerInternal ) CPolarSplineLineLayer_setTension( ptr.PolarSplineLineLayerInternal, tension.d ) Macro PolarSplineAreaLayerInternal : i : EndMacro PolarSplineAreaLayer2PolarAreaLayer.PolarAreaLayerInternal( ptr.PolarSplineAreaLayerInternal ) CPolarSplineAreaLayer_setTension( ptr.PolarSplineAreaLayerInternal, tension.d ) Macro PolarVectorLayerInternal : i : EndMacro PolarVectorLayer2PolarLayer.PolarLayerInternal( ptr.PolarVectorLayerInternal ) CPolarVectorLayer_setVector( ptr.PolarVectorLayerInternal, *lengthsData.Double, lengthsLen.l, *directionsData.Double, directionsLen.l, lengthScale.l ) CPolarVectorLayer_setArrowHead2( ptr.PolarVectorLayerInternal, *polygonData.Long, polygonLen.l ) CPolarVectorLayer_setArrowHead( ptr.PolarVectorLayerInternal, width.l, height.l ) CPolarVectorLayer_setArrowStem( ptr.PolarVectorLayerInternal, *polygonData.Long, polygonLen.l ) CPolarVectorLayer_setArrowAlignment( ptr.PolarVectorLayerInternal, alignment.l ) CPolarVectorLayer_setIconSize( ptr.PolarVectorLayerInternal, height.l, width.l ) CPolarVectorLayer_setVectorMargin( ptr.PolarVectorLayerInternal, startMargin.d, endMargin.d ) Macro PolarChartInternal : i : EndMacro PolarChart2BaseChart.BaseChartInternal( ptr.PolarChartInternal ) CPolarChart_create.PolarChartInternal( width.l, height.l, bgColor.l, edgeColor.l, raisedEffect.l ) CPolarChart_setPlotArea( ptr.PolarChartInternal, x.l, y.l, r.l, bgColor.l, edgeColor.l, edgeWidth.l ) CPolarChart_setPlotAreaBg( ptr.PolarChartInternal, bgColor1.l, bgColor2.l, altRings.cd_bool ) CPolarChart_setGridColor( ptr.PolarChartInternal, rGridColor.l, rGridWidth.l, aGridColor.l, aGridWidth.l ) CPolarChart_setGridStyle( ptr.PolarChartInternal, polygonGrid.cd_bool, gridOnTop.cd_bool ) CPolarChart_setStartAngle( ptr.PolarChartInternal, startAngle.d, clockwise.cd_bool ) CPolarChart_angularAxis.AngularAxisInternal( ptr.PolarChartInternal ) CPolarChart_radialAxis.RadialAxisInternal( ptr.PolarChartInternal ) CPolarChart_getXCoor.l( ptr.PolarChartInternal, r.d, a.d ) CPolarChart_getYCoor.l( ptr.PolarChartInternal, r.d, a.d ) CPolarChart_addAreaLayer.PolarAreaLayerInternal( ptr.PolarChartInternal, *dataData.Double, dataLen.l, color.l, name.p-ascii ) CPolarChart_addLineLayer.PolarLineLayerInternal( ptr.PolarChartInternal, *dataData.Double, dataLen.l, color.l, name.p-ascii ) CPolarChart_addSplineLineLayer.PolarSplineLineLayerInternal( ptr.PolarChartInternal, *dataData.Double, dataLen.l, color.l, name.p-ascii ) CPolarChart_addSplineAreaLayer.PolarSplineAreaLayerInternal( ptr.PolarChartInternal, *dataData.Double, dataLen.l, color.l, name.p-ascii ) CPolarChart_addVectorLayer.PolarVectorLayerInternal( ptr.PolarChartInternal, *rDataData.Double, rDataLen.l, *aDataData.Double, aDataLen.l, *lengthsData.Double, lengthsLen.l, *directionsData.Double, directionsLen.l, lengthScale.l, color.l, name.p-ascii ) ;//////////////////////////////////////////////////////////////////////////////////////// ;// pyramidchart.h ;//////////////////////////////////////////////////////////////////////////////////////// Macro PyramidLayerInternal : i : EndMacro CPyramidLayer_setCenterLabel.TextBoxInternal( ptr.PyramidLayerInternal, labelTemplate.p-ascii, font.p-ascii, fontSize.d, fontColor.l ) CPyramidLayer_setRightLabel.TextBoxInternal( ptr.PyramidLayerInternal, labelTemplate.p-ascii, font.p-ascii, fontSize.d, fontColor.l ) CPyramidLayer_setLeftLabel.TextBoxInternal( ptr.PyramidLayerInternal, labelTemplate.p-ascii, font.p-ascii, fontSize.d, fontColor.l ) CPyramidLayer_setColor( ptr.PyramidLayerInternal, color.l ) CPyramidLayer_setJoinLine( ptr.PyramidLayerInternal, color.l, width.l ) CPyramidLayer_setJoinLineGap( ptr.PyramidLayerInternal, pyramidGap.l, pyramidMargin.l, textGap.l ) CPyramidLayer_setLayerBorder( ptr.PyramidLayerInternal, color.l, width.l ) CPyramidLayer_setLayerGap( ptr.PyramidLayerInternal, layerGap.d ) Macro PyramidChartInternal : i : EndMacro PyramidChart2BaseChart.BaseChartInternal( ptr.PyramidChartInternal ) CPyramidChart_create.PyramidChartInternal( width.l, height.l, bgColor.l, edgeColor.l, raisedEffect.l ) CPyramidChart_setPyramidSize( ptr.PyramidChartInternal, cx.l, cy.l, radius.l, height.l ) CPyramidChart_setConeSize( ptr.PyramidChartInternal, cx.l, cy.l, radius.l, height.l ) CPyramidChart_setFunnelSize( ptr.PyramidChartInternal, cx.l, cy.l, radius.l, height.l, tubeRadius.d, tubeHeight.d ) CPyramidChart_setData( ptr.PyramidChartInternal, *dataData.Double, dataLen.l, *labelsData.Integer = 0, labelsLen.l = 0) CPyramidChart_setCenterLabel.TextBoxInternal( ptr.PyramidChartInternal, labelTemplate.p-ascii, font.p-ascii, fontSize.d, fontColor.l ) CPyramidChart_setRightLabel.TextBoxInternal( ptr.PyramidChartInternal, labelTemplate.p-ascii, font.p-ascii, fontSize.d, fontColor.l ) CPyramidChart_setLeftLabel.TextBoxInternal( ptr.PyramidChartInternal, labelTemplate.p-ascii, font.p-ascii, fontSize.d, fontColor.l ) CPyramidChart_setPyramidSides( ptr.PyramidChartInternal, noOfSides.l ) CPyramidChart_setViewAngle( ptr.PyramidChartInternal, elevation.d, rotation.d, twist.d ) CPyramidChart_setGradientShading( ptr.PyramidChartInternal, startBrightness.d, endBrightness.d ) CPyramidChart_setLighting( ptr.PyramidChartInternal, ambientIntensity.d, diffuseIntensity.d, specularIntensity.d, shininess.d ) CPyramidChart_setJoinLine( ptr.PyramidChartInternal, color.l, width.l ) CPyramidChart_setJoinLineGap( ptr.PyramidChartInternal, pyramidGap.l, pyramidMargin.l, textGap.l ) CPyramidChart_setLayerBorder( ptr.PyramidChartInternal, color.l, width.l ) CPyramidChart_setLayerGap( ptr.PyramidChartInternal, layerGap.d ) CPyramidChart_getLayer.PyramidLayerInternal( ptr.PyramidChartInternal, layerNo.l ) ;//////////////////////////////////////////////////////////////////////////////////////// ;// meterpointer.h ;//////////////////////////////////////////////////////////////////////////////////////// Macro MeterPointerInternal : i : EndMacro MeterPointer2DrawObj.DrawObjInternal( ptr.MeterPointerInternal ) CMeterPointer_setColor( ptr.MeterPointerInternal, fillColor.l, edgeColor.l ) CMeterPointer_setPos( ptr.MeterPointerInternal, value.d ) CMeterPointer_setShape( ptr.MeterPointerInternal, pointerType.l, lengthRatio.d, widthRatio.d ) CMeterPointer_setShape2( ptr.MeterPointerInternal, *pointerCoor.Long, len.l, lengthRatio.d, widthRatio.d ) ;//////////////////////////////////////////////////////////////////////////////////////// ;// basemeter.h ;//////////////////////////////////////////////////////////////////////////////////////// Macro BaseMeterInternal : i : EndMacro BaseMeter2BaseChart.BaseChartInternal( ptr.BaseMeterInternal ) CBaseMeter_addPointer.MeterPointerInternal( ptr.BaseMeterInternal, value.d, fillColor.l, edgeColor.l ) CBaseMeter_setScale( ptr.BaseMeterInternal, lowerLimit.d, upperLimit.d, majorTickInc.d, minorTickInc.d, microTickInc.d ) CBaseMeter_setScale2( ptr.BaseMeterInternal, lowerLimit.d, upperLimit.d, *labels.Integer, labelsLen.l ) CBaseMeter_setScale3( ptr.BaseMeterInternal, lowerLimit.d, upperLimit.d, *labels.Double, labelsLen.l, formatString.p-ascii ) CBaseMeter_addLabel( ptr.BaseMeterInternal, pos.d, label.p-ascii ) CBaseMeter_getLabel.i( ptr.BaseMeterInternal, i.d ) CBaseMeter_getTicks( ptr.BaseMeterInternal, *d, *len.Long ) CBaseMeter_setLabelStyle.TextBoxInternal( ptr.BaseMeterInternal, font.p-ascii, fontSize.d, fontColor.l, fontAngle.d ) CBaseMeter_setLabelPos( ptr.BaseMeterInternal, labelInside.cd_bool, labelOffset.l ) CBaseMeter_setLabelFormat( ptr.BaseMeterInternal, mainLabelFormat.p-ascii ) CBaseMeter_setTickLength( ptr.BaseMeterInternal, majorLen.l, minorLen.l, microLen.l ) CBaseMeter_setLineWidth( ptr.BaseMeterInternal, axisWidth.l, majorTickWidth.l, minorTickWidth.l, microTickWidth.l ) CBaseMeter_setMeterColors( ptr.BaseMeterInternal, axisColor.l, labelColor.l, tickColor.l ) CBaseMeter_getCoor.l( ptr.BaseMeterInternal, v.d ) ;//////////////////////////////////////////////////////////////////////////////////////// ;// angularmeter.h ;//////////////////////////////////////////////////////////////////////////////////////// Macro AngularMeterInternal : i : EndMacro AngularMeter2BaseMeter.BaseMeterInternal( ptr.AngularMeterInternal ) CAngularMeter_create.AngularMeterInternal( width.l, height.l, bgColor.l, edgeColor.l, raisedEffect.l ) CAngularMeter_addRing( ptr.AngularMeterInternal, startRadius.l, endRadius.l, fillColor.l, edgeColor.l ) CAngularMeter_addRingSector( ptr.AngularMeterInternal, startRadius.l, endRadius.l, a1.d, a2.d, fillColor.l, edgeColor.l ) CAngularMeter_setCap( ptr.AngularMeterInternal, radius.l, fillColor.l, edgeColor.l ) CAngularMeter_setMeter( ptr.AngularMeterInternal, cx.l, cy.l, radius.l, startAngle.d, endAngle.d ) CAngularMeter_addZone( ptr.AngularMeterInternal, startValue.d, endValue.d, startRadius.l, endRadius.l, fillColor.l, edgeColor.l ) CAngularMeter_addZone2( ptr.AngularMeterInternal, startValue.d, endValue.d, fillColor.l, edgeColor.l ) ;//////////////////////////////////////////////////////////////////////////////////////// ;// linearmeter.h ;//////////////////////////////////////////////////////////////////////////////////////// Macro LinearMeterInternal : i : EndMacro LinearMeter2BaseMeter.BaseMeterInternal( ptr.LinearMeterInternal ) CLinearMeter_create.LinearMeterInternal( width.l, height.l, bgColor.l, edgeColor.l, raisedEffect.l ) CLinearMeter_setMeter( ptr.LinearMeterInternal, leftX.l, topY.l, width.l, height.l, axisPos.l, isReversed.cd_bool ) CLinearMeter_setRail( ptr.LinearMeterInternal, railColor.l, railWidth.l, railOffset.l ) CLinearMeter_addZone.TextBoxInternal( ptr.LinearMeterInternal, startValue.d, endValue.d, color.l, label.p-ascii ) ; Top Profile Reply With quote ; ; Oliver13 ; Post subject: Re: ChartDirector - Professional charts For PBPostPosted: Thu Apr 06, 2017 8:51 pm ; Offline ; User ; User ; ; Joined: Thu Sep 30, 2010 6:40 am ; Posts: 51 ; Chartdirector.pbi Part 3 ; ; Code: ;//////////////////////////////////////////////////////////////////////////////////////// ;// datafilter.h ;//////////////////////////////////////////////////////////////////////////////////////// Macro ArrayMathInternal : i : EndMacro CArrayMath_create.ArrayMathInternal(*aData.Double, aLen.l ) CArrayMath_destroy( ptr.ArrayMathInternal ) CArrayMath_add( ptr.ArrayMathInternal, *bData.Double, bLen.l ) CArrayMath_add2( ptr.ArrayMathInternal, b.d ) CArrayMath_sub( ptr.ArrayMathInternal, *bData.Double, bLen.l ) CArrayMath_sub2( ptr.ArrayMathInternal, b.d ) CArrayMath_mul( ptr.ArrayMathInternal, *bData.Double, bLen.l ) CArrayMath_mul2( ptr.ArrayMathInternal, b.d ) CArrayMath_div( ptr.ArrayMathInternal, *bData.Double, bLen.l ) CArrayMath_div2( ptr.ArrayMathInternal, b.d ) CArrayMath_financeDiv( ptr.ArrayMathInternal, *bData.Double, bLen.l, zeroByZeroValue.d ) CArrayMath_shift( ptr.ArrayMathInternal, offset.l, fillValue.d ) CArrayMath_delta( ptr.ArrayMathInternal, offset.l ) CArrayMath_rate( ptr.ArrayMathInternal, offset.l ) CArrayMath_abs( ptr.ArrayMathInternal ) CArrayMath_acc( ptr.ArrayMathInternal ) CArrayMath_selectGTZ( ptr.ArrayMathInternal, *bData.Double, bLen.l, fillValue.d ) CArrayMath_selectGEZ( ptr.ArrayMathInternal, *bData.Double, bLen.l, fillValue.d ) CArrayMath_selectLTZ( ptr.ArrayMathInternal, *bData.Double, bLen.l, fillValue.d ) CArrayMath_selectLEZ( ptr.ArrayMathInternal, *bData.Double, bLen.l, fillValue.d ) CArrayMath_selectEQZ( ptr.ArrayMathInternal, *bData.Double, bLen.l, fillValue.d ) CArrayMath_selectNEZ( ptr.ArrayMathInternal, *bData.Double, bLen.l, fillValue.d ) CArrayMath_selectStartOfHour( ptr.ArrayMathInternal, majorTickStep.l, initialMargin.d ) CArrayMath_selectStartOfDay( ptr.ArrayMathInternal, majorTickStep.l, initialMargin.d ) CArrayMath_selectStartOfWeek( ptr.ArrayMathInternal, majorTickStep.l, initialMargin.d ) CArrayMath_selectStartOfMonth( ptr.ArrayMathInternal, majorTickStep.l, initialMargin.d ) CArrayMath_selectStartOfYear( ptr.ArrayMathInternal, majorTickStep.l, initialMargin.d ) CArrayMath_selectRegularSpacing( ptr.ArrayMathInternal, majorTickStep.l, minorTickStep.l, initialMargin.l ) CArrayMath_trim( ptr.ArrayMathInternal, startIndex.l, len.l ) CArrayMath_insert( ptr.ArrayMathInternal, *aData.Double, aLen.l, insertPoint.l ) CArrayMath_insert2( ptr.ArrayMathInternal, c.d, len.l, insertPoint.l ) CArrayMath_replace( ptr.ArrayMathInternal, a.d, b.d ) CArrayMath_movAvg( ptr.ArrayMathInternal, interval.l ) CArrayMath_expAvg( ptr.ArrayMathInternal, smoothingFactor.d ) CArrayMath_movMed( ptr.ArrayMathInternal, interval.l ) CArrayMath_movPercentile( ptr.ArrayMathInternal, interval.l, percentile.d ) CArrayMath_movMax( ptr.ArrayMathInternal, interval.l ) CArrayMath_movMin( ptr.ArrayMathInternal, interval.l ) CArrayMath_movStdDev( ptr.ArrayMathInternal, interval.l ) CArrayMath_movCorr( ptr.ArrayMathInternal, interval.l, *bData.Double, bLen.l ) CArrayMath_lowess( ptr.ArrayMathInternal, smoothness.d, iteration.l ) CArrayMath_lowess2( ptr.ArrayMathInternal, *bData.Double, bLen.l, smoothness.d, iteration.l ) CArrayMath_result( ptr.ArrayMathInternal, *ret, *retLen.Long ) CArrayMath_max.d( ptr.ArrayMathInternal ) CArrayMath_min.d( ptr.ArrayMathInternal ) CArrayMath_avg.d( ptr.ArrayMathInternal ) CArrayMath_sum.d( ptr.ArrayMathInternal ) CArrayMath_stdDev.d( ptr.ArrayMathInternal ) CArrayMath_med.d( ptr.ArrayMathInternal ) CArrayMath_percentile.d( ptr.ArrayMathInternal, p.d ) CArrayMath_maxIndex.l( ptr.ArrayMathInternal ) CArrayMath_minIndex.l( ptr.ArrayMathInternal ) CArrayMath_aggregate( ptr.ArrayMathInternal, *srcData.Double, srcLen.l, aggregateMethod.l, param.d, *ret, *retLen.Long ) ;//////////////////////////////////////////////////////////////////////////////////////// ;// rantable.h ;//////////////////////////////////////////////////////////////////////////////////////// Macro RanTableInternal : i : EndMacro CRanTable_create.RanTableInternal( seed.l, noOfCols.l, noOfRows.l ) CRanTable_destroy( ptr.RanTableInternal ) CRanTable_setCol( ptr.RanTableInternal, colNo.l, minValue.d, maxValue.d ) CRanTable_setCol2( ptr.RanTableInternal, colNo.l, startValue.d, minDelta.d, maxDelta.d, lowerLimit.d, upperLimit.d ) CRanTable_setDateCol( ptr.RanTableInternal, i.l, startTime.d, tickInc.d, weekDayOnly.cd_bool ) CRanTable_setHLOCCols( ptr.RanTableInternal, i.l, startValue.d, minDelta.d, maxDelta.d, lowerLimit.d, upperLimit.d ) CRanTable_selectDate.l( ptr.RanTableInternal, ColNo.l, minDate.d, maxData.d ) CRanTable_getCol( ptr.RanTableInternal, i.l, *ret, *len.Long ) Macro RanSeriesInternal : i : EndMacro CRanSeries_create.RanSeriesInternal( seed.l ) CRanSeries_destroy( ptr.RanSeriesInternal ) CRanSeries_getSeries( ptr.RanSeriesInternal, len.l, minValue.d, maxValue.d, *ret, *len.Long ) CRanSeries_getSeries2( ptr.RanSeriesInternal, len.l, startValue.d, minDelta.d, maxDelta.d, lowerLimit.d, upperLimit.d, *ret, *len.Long ) CRanSeries_getDateSeries( ptr.RanSeriesInternal, len.l, startTime.d, tickInc.d, weekDayOnly.cd_bool, *ret, *len.Long ) Macro FinanceSimulatorInternal : i : EndMacro CFinanceSimulator_create.FinanceSimulatorInternal( seed.l, startTime.d, endTime.d, resolution.l ) CFinanceSimulator_create2.FinanceSimulatorInternal( seed.p-ascii, startTime.d, endTime.d, resolution.l ) CFinanceSimulator_destroy( ptr.FinanceSimulatorInternal ) CFinanceSimulator_getTimeStamps( ptr.FinanceSimulatorInternal, *ret, *len.Long ) CFinanceSimulator_getHighData( ptr.FinanceSimulatorInternal, *ret, *len.Long ) CFinanceSimulator_getLowData( ptr.FinanceSimulatorInternal, *ret, *len.Long ) CFinanceSimulator_getOpenData( ptr.FinanceSimulatorInternal, *ret, *len.Long ) CFinanceSimulator_getCloseData( ptr.FinanceSimulatorInternal, *ret, *len.Long ) CFinanceSimulator_getVolData( ptr.FinanceSimulatorInternal, *ret, *len.Long ) ;//////////////////////////////////////////////////////////////////////////////////////// ;// imagemaphandler.h ;//////////////////////////////////////////////////////////////////////////////////////// Macro ImageMapHandlerInternal : i : EndMacro CImageMapHandler_create.ImageMapHandlerInternal( imageMap.p-ascii ) CImageMapHandler_destroy( ptr.ImageMapHandlerInternal ) CImageMapHandler_getHotSpot.l( ptr.ImageMapHandlerInternal, x.l, y.l ) CImageMapHandler_getValue.i( ptr.ImageMapHandlerInternal, key.p-ascii ) CImageMapHandler_getKey.i( ptr.ImageMapHandlerInternal, i.l ) CImageMapHandler_getValue2.i( ptr.ImageMapHandlerInternal, i.l ) ;//////////////////////////////////////////////////////////////////////////////////////// ;// viewportmanager.h ;//////////////////////////////////////////////////////////////////////////////////////// Macro ViewPortManagerInternal : i : EndMacro CViewPortManager_create.ViewPortManagerInternal() CViewPortManager_destroy( ptr.ViewPortManagerInternal ) CViewPortManager_setChartMetrics( ptr.ViewPortManagerInternal, metrics.p-ascii ) CViewPortManager_getPlotAreaLeft.l( ptr.ViewPortManagerInternal ) CViewPortManager_getPlotAreaTop.l( ptr.ViewPortManagerInternal ) CViewPortManager_getPlotAreaWidth.l( ptr.ViewPortManagerInternal ) CViewPortManager_getPlotAreaHeight.l( ptr.ViewPortManagerInternal ) CViewPortManager_getViewPortLeft.d( ptr.ViewPortManagerInternal ) CViewPortManager_getViewPortTop.d( ptr.ViewPortManagerInternal ) CViewPortManager_getViewPortWidth.d( ptr.ViewPortManagerInternal ) CViewPortManager_getViewPortHeight.d( ptr.ViewPortManagerInternal ) CViewPortManager_setViewPortLeft( ptr.ViewPortManagerInternal, left.d ) CViewPortManager_setViewPortTop( ptr.ViewPortManagerInternal, top.d ) CViewPortManager_setViewPortWidth( ptr.ViewPortManagerInternal, width.d ) CViewPortManager_setViewPortHeight( ptr.ViewPortManagerInternal, height.d ) CViewPortManager_getZoomInWidthLimit.d( ptr.ViewPortManagerInternal ) CViewPortManager_getZoomOutWidthLimit.d( ptr.ViewPortManagerInternal ) CViewPortManager_setZoomInWidthLimit( ptr.ViewPortManagerInternal, viewPortWidth.d ) CViewPortManager_setZoomOutWidthLimit( ptr.ViewPortManagerInternal, viewPortWidth.d ) CViewPortManager_getZoomInHeightLimit.d( ptr.ViewPortManagerInternal ) CViewPortManager_getZoomOutHeightLimit.d( ptr.ViewPortManagerInternal ) CViewPortManager_setZoomInHeightLimit( ptr.ViewPortManagerInternal, viewPortHeight.d ) CViewPortManager_setZoomOutHeightLimit( ptr.ViewPortManagerInternal, viewPortHeight.d ) CViewPortManager_validateViewPort( ptr.ViewPortManagerInternal ) CViewPortManager_inPlotArea.cd_bool( ptr.ViewPortManagerInternal, x.l, y.l ) CViewPortManager_canZoomIn.cd_bool( ptr.ViewPortManagerInternal, zoomDirection.l ) CViewPortManager_canZoomOut.cd_bool( ptr.ViewPortManagerInternal, zoomDirection.l ) CViewPortManager_startDrag( ptr.ViewPortManagerInternal ) CViewPortManager_dragTo.cd_bool( ptr.ViewPortManagerInternal, scrollDirection.l, deltaX.l, deltaY.l ) CViewPortManager_zoomAt.cd_bool( ptr.ViewPortManagerInternal, zoomDirection.l, x.l, y.l, zoomRatio.d ) CViewPortManager_zoomTo.cd_bool( ptr.ViewPortManagerInternal, zoomDirection.l, x1.l, y1.l, x2.l, y2.l ) CViewPortManager_setFullRange( ptr.ViewPortManagerInternal, id.p-ascii, minValue.d, maxValue.d ) CViewPortManager_clearAllRanges( ptr.ViewPortManagerInternal ) CViewPortManager_getValueAtViewPort.d( ptr.ViewPortManagerInternal, id.p-ascii, ratio.d, isLogScale.cd_bool ) CViewPortManager_getViewPortAtValue.d( ptr.ViewPortManagerInternal, id.p-ascii, ratio.d, isLogScale.cd_bool ) CViewPortManager_syncLinearAxisWithViewPort( ptr.ViewPortManagerInternal, id.p-ascii, axis.AxisInternal ) CViewPortManager_syncLogAxisWithViewPort( ptr.ViewPortManagerInternal, id.p-ascii, axis.AxisInternal ) CViewPortManager_syncDateAxisWithViewPort( ptr.ViewPortManagerInternal, id.p-ascii, axis.AxisInternal ) CViewPortManager_commitPendingSyncAxis( ptr.ViewPortManagerInternal, c.BaseChartInternal ) CViewPortManager_setPlotAreaMouseMargin( ptr.ViewPortManagerInternal, leftMargin.l, rightMargin.l, topMargin.l, bottomMargin.l ) CViewPortManager_inExtendedPlotArea.cd_bool( ptr.ViewPortManagerInternal, x.l, y.l ) EndImport ;} ;/////////////////////////////////////////////////////////////////////////////////////// ;// constants and namespace Chart ;/////////////////////////////////////////////////////////////////////////////////////// ;{ namespace Chart { #Chart_NoValue = 1.7e308 #Chart_LogTick = 1.6e308 #Chart_LinearTick = 1.5e308 #Chart_TickInc = 1.0e200 #Chart_MinorTickOnly = -1.7e308 #Chart_MicroTickOnly = -1.6e308 Enumeration #Chart_AutoGrid = -2 EndEnumeration #Chart_TouchBar = -1.7E-100 #Chart_DataBound = -1.7E-100 Enumeration ; Alignment #Chart_BottomLeft = 1 #Chart_BottomCenter = 2 #Chart_BottomRight = 3 #Chart_Left = 4 #Chart_Center = 5 #Chart_Right = 6 #Chart_TopLeft = 7 #Chart_TopCenter = 8 #Chart_TopRight = 9 #Chart_TopLeft2 = 10 #Chart_TopRight2 = 11 #Chart_BottomLeft2 = 12 #Chart_BottomRight2 = 13 #Chart_Top = #Chart_TopCenter #Chart_Bottom = #Chart_BottomCenter EndEnumeration Enumeration #Chart_DashLine = $0505 #Chart_DotLine = $0202 #Chart_DotDashLine = $05050205 #Chart_AltDashLine = $0A050505 EndEnumeration DataSection p_Chart_goldGradient: : Data.l 0, $FFE743, $60, $FFFFE0, $B0, $FFF0B0, $100, $FFE743 p_Chart_silverGradient: : Data.l 0, $C8C8C8, $60, $F8F8F8, $B0, $E0E0E0, $100, $C8C8C8 p_Chart_redMetalGradient: : Data.l 0, $E09898, $60, $FFF0F0, $B0, $F0D8D8, $100, $E09898 p_Chart_blueMetalGradient: : Data.l 0, $9898E0, $60, $F0F0FF, $B0, $D8D8F0, $100, $9898E0 p_Chart_greenMetalGradient: : Data.l 0, $98E098, $60, $F0FFF0, $B0, $D8F0D8, $100, $98E098 EndDataSection Macro Chart_goldGradient : ?p_Chart_goldGradient : EndMacro Macro Chart_silverGradient : ?p_Chart_silverGradient : EndMacro Macro Chart_redMetalGradient : ?p_Chart_redMetalGradient : EndMacro Macro Chart_blueMetalGradient : ?p_Chart_blueMetalGradient : EndMacro Macro Chart_greenMetalGradient : ?p_Chart_greenMetalGradient : EndMacro Macro Chart_metalColor( c, angle = 90 ) ( CChart_metalColor(c, angle) ) EndMacro Macro Chart_goldColor( angle = 90 ) ( Chart_metalColor($ffee44, angle) ) EndMacro Macro Chart_silverColor( angle = 90 ) ( Chart_metalColor($dddddd, angle) ) EndMacro Macro Chart_brushedMetalColor( c, texture = 2, angle = 90 ) ( Chart_metalColor(c, angle) | ((texture & $3) << 18) ) EndMacro Macro Chart_brushedSilverColor( texture = 2, angle = 90 ) ( Chart_brushedMetalColor($dddddd, texture, angle) ) EndMacro Macro Chart_brushedGoldColor( texture = 2, angle = 90 ) ( Chart_brushedMetalColor($ffee44, texture, angle) ) EndMacro Enumeration ; AntiAliasMode #Chart_NoAntiAlias #Chart_AntiAlias #Chart_AutoAntiAlias #Chart_ClearType #Chart_CompatAntiAlias = 6 EndEnumeration Enumeration ; PaletteMode #Chart_TryPalette #Chart_ForcePalette #Chart_NoPalette EndEnumeration Enumeration ; DitherMethod #Chart_Quantize #Chart_OrderedDither #Chart_ErrorDiffusion EndEnumeration Enumeration ; CDFilterType #Chart_BoxFilter #Chart_LinearFilter #Chart_QuadraticFilter #Chart_BSplineFilter #Chart_HermiteFilter #Chart_CatromFilter #Chart_MitchellFilter #Chart_SincFilter #Chart_LanczosFilter #Chart_GaussianFilter #Chart_HanningFilter #Chart_HammingFilter #Chart_BlackmanFilter #Chart_BesselFilter EndEnumeration Enumeration #Chart_Transparent = $ff000000 #Chart_Palette = $ffff0000 #Chart_BackgroundColor = $ffff0000 #Chart_LineColor = $ffff0001 #Chart_TextColor = $ffff0002 #Chart_DataColor = $ffff0008 #Chart_SameAsMainColor = $ffff0007 EndEnumeration Enumeration ; ImgFormat #Chart_PNG #Chart_GIF #Chart_JPG #Chart_WMP #Chart_BMP #Chart_SVG #Chart_SVGZ EndEnumeration DataSection p_Chart_oldDefaultPalette: Data.l $ffffff, $000000, $000000, $808080 Data.l $808080, $808080, $808080, $808080 Data.l $ff0000, $00ff00, $0000ff, $ffff00 Data.l $ff00ff, $66ffff, $ffcc33, $cccccc Data.l $9966ff, $339966, $999900, $cc3300 Data.l $99cccc, $006600, $660066, $cc9999 Data.l -1 p_Chart_defaultPalette: Data.l $ffffff, $000000, $000000, $808080 Data.l $808080, $808080, $808080, $808080 Data.l $ff3333, $33ff33, $6666ff, $ffff00 Data.l $ff66ff, $99ffff, $ffcc33, $cccccc Data.l $cc9999, $339966, $999900, $cc3300 Data.l $669999, $993333, $006600, $990099 Data.l $ff9966, $99ff99, $9999ff, $cc6600 Data.l $33cc33, $cc99ff, $ff6666, $99cc66 Data.l $009999, $cc3333, $9933ff, $ff0000 Data.l $0000ff, $00ff00, $ffcc99, $999999 Data.l -1 p_Chart_whiteOnBlackPalette: Data.l $000000, $ffffff, $ffffff, $808080 Data.l $808080, $808080, $808080, $808080 Data.l $ff0000, $00ff00, $0000ff, $ffff00 Data.l $ff00ff, $66ffff, $ffcc33, $cccccc Data.l $9966ff, $339966, $999900, $cc3300 Data.l $99cccc, $006600, $660066, $cc9999 Data.l $ff9966, $99ff99, $9999ff, $cc6600 Data.l $33cc33, $cc99ff, $ff6666, $99cc66 Data.l $009999, $cc3333, $9933ff, $ff0000 Data.l $0000ff, $00ff00, $ffcc99, $999999 Data.l -1 p_Chart_transparentPalette: Data.l $ffffff, $000000, $000000, $808080 Data.l $808080, $808080, $808080, $808080 Data.l $80ff0000, $8000ff00, $800000ff, $80ffff00 Data.l $80ff00ff, $8066ffff, $80ffcc33, $80cccccc Data.l $809966ff, $80339966, $80999900, $80cc3300 Data.l $8099cccc, $80006600, $80660066, $80cc9999 Data.l $80ff9966, $8099ff99, $809999ff, $80cc6600 Data.l $8033cc33, $80cc99ff, $80ff6666, $8099cc66 Data.l $80009999, $80cc3333, $809933ff, $80ff0000 Data.l $800000ff, $8000ff00, $80ffcc99, $80999999 Data.l -1 EndDataSection Macro Chart_oldDefaultPalette : ?p_Chart_oldDefaultPalette : EndMacro Macro Chart_defaultPalette : ?p_Chart_defaultPalette : EndMacro Macro Chart_whiteOnBlackPalette : ?p_Chart_whiteOnBlackPalette : EndMacro Macro Chart_transparentPalette : ?p_Chart_transparentPalette : EndMacro Enumeration #Chart_SideLayout #Chart_CircleLayout EndEnumeration Enumeration #Chart_DefaultShading = 0 #Chart_FlatShading = 1 #Chart_LocalGradientShading = 2 #Chart_GlobalGradientShading = 3 #Chart_ConcaveShading = 4 #Chart_RoundedEdgeNoGlareShading = 5 #Chart_RoundedEdgeShading = 6 #Chart_RadialShading = 7 #Chart_RingShading = 8 EndEnumeration Enumeration ; SymbolType #Chart_NoSymbol = 0 #Chart_SquareSymbol = 1 #Chart_DiamondSymbol = 2 #Chart_TriangleSymbol = 3 #Chart_RightTriangleSymbol = 4 #Chart_LeftTriangleSymbol = 5 #Chart_InvertedTriangleSymbol = 6 #Chart_CircleSymbol = 7 #Chart_CrossSymbol = 8 #Chart_Cross2Symbol = 9 #Chart_ChartDir_PolygonSymbol = 11 #Chart_ChartDir_Polygon2Symbol = 12 #Chart_ChartDir_StarSymbol = 13 #Chart_ChartDir_CustomSymbol = 14 EndEnumeration Enumeration #Chart_NoShape = 0 #Chart_SquareShape = 1 #Chart_DiamondShape = 2 #Chart_TriangleShape = 3 #Chart_RightTriangleShape = 4 #Chart_LeftTriangleShape = 5 #Chart_InvertedTriangleShape = 6 #Chart_CircleShape = 7 #Chart_CircleShapeNoShading = 10 #Chart_GlassSphereShape = 15 #Chart_GlassSphere2Shape = 16 #Chart_SolidSphereShape = 17 EndEnumeration Procedure.l Chart_CrossShape( width.d = 0.5 ) Protected w.l If width < 0 w = 0 Else If width > 1 w = Int(1.0 * 4095 + 0.5) Else w = Int(width * 4095 + 0.5) EndIf EndIf ProcedureReturn #Chart_CrossSymbol | ( w << 12 ) EndProcedure Procedure.l Chart_Cross2Shape( width.d = 0.5 ) Protected w.l If width < 0 w = 0 Else If width > 1 w = Int(1.0 * 4095 + 0.5) Else w = Int(width * 4095 + 0.5) EndIf EndIf ProcedureReturn #Chart_Cross2Symbol | ( w << 12 ) EndProcedure Procedure.l Chart_PolygonShape( side.l ) If side < 0 side = 0 ElseIf side > 100 side = 100 EndIf ProcedureReturn #Chart_ChartDir_PolygonSymbol | ( side << 12 ) EndProcedure Procedure.l Chart_Polygon2Shape( side.l ) If side < 0 side = 0 ElseIf side > 100 side = 100 EndIf ProcedureReturn #Chart_ChartDir_Polygon2Symbol | ( side << 12 ) EndProcedure Procedure.l Chart_StarShape( side.l ) If side < 0 side = 0 ElseIf side > 100 side = 100 EndIf ProcedureReturn #Chart_ChartDir_StarSymbol | ( side << 12 ) EndProcedure Enumeration ; DataCombineMethod #Chart_Overlay #Chart_Stack #Chart_Depth #Chart_Side #Chart_Percentage EndEnumeration Enumeration ; LegendMode #Chart_NormalLegend #Chart_ReverseLegend #Chart_NoLegend EndEnumeration Enumeration ; ScaleType #Chart_PixelScale #Chart_XAxisScale #Chart_YAxisScale #Chart_EndPoints #Chart_AngularAxisScale = #Chart_XAxisScale #Chart_RadialAxisScale = #Chart_YAxisScale EndEnumeration Enumeration #Chart_MonotonicNone = 0 #Chart_MonotonicX = 1 #Chart_MonotonicY = 2 #Chart_MonotonicXY = 3 #Chart_MonotonicAuto = 4 EndEnumeration Enumeration #Chart_ConstrainedLinearRegression = 0 #Chart_LinearRegression = 1 #Chart_ExponentialRegression = -1 #Chart_LogarithmicRegression = -2 EndEnumeration Procedure.l Chart_PolynomialRegression( n.l ) ProcedureReturn n EndProcedure Enumeration #Chart_HLOCDefault #Chart_HLOCOpenClose #Chart_HLOCUpDown EndEnumeration Enumeration #Chart_DiamondPointer #Chart_TriangularPointer #Chart_ArrowPointer #Chart_ArrowPointer2 #Chart_LinePointer #Chart_PencilPointer EndEnumeration Enumeration #Chart_SmoothShading = 0 #Chart_TriangularShading = 1 #Chart_RectangularShading = 2 #Chart_TriangularFrame = 3 #Chart_RectangularFrame = 4 EndEnumeration Enumeration #Chart_ChartBackZ = $100 #Chart_ChartFrontZ = $ffff #Chart_PlotAreaZ = $1000 #Chart_GridLinesZ = $2000 EndEnumeration Enumeration #Chart_XAxisSymmetric = 1 #Chart_XAxisSymmetricIfNeeded = 2 #Chart_YAxisSymmetric = 4 #Chart_YAxisSymmetricIfNeeded = 8 #Chart_XYAxisSymmetric = 16 #Chart_XYAxisSymmetricIfNeeded = 32 EndEnumeration Enumeration #Chart_XAxisAtOrigin = 1 #Chart_YAxisAtOrigin = 2 #Chart_XYAxisAtOrigin = 3 EndEnumeration Enumeration #Chart_ChartDir_StartOfHourFilterTag = 1 #Chart_ChartDir_StartOfDayFilterTag = 2 #Chart_ChartDir_StartOfWeekFilterTag = 3 #Chart_ChartDir_StartOfMonthFilterTag = 4 #Chart_ChartDir_StartOfYearFilterTag = 5 #Chart_ChartDir_RegularSpacingFilterTag = 6 #Chart_ChartDir_AllPassFilterTag = 7 #Chart_ChartDir_NonePassFilterTag = 8 #Chart_ChartDir_SelectItemFilterTag = 9 EndEnumeration Macro Chart_StartOfHourFilter( labelStep_l = 1, initialMargin_d = 0.05 ) ( CChart_encodeFilter(#Chart_ChartDir_StartOfHourFilterTag, labelStep_l, initialMargin_d) ) EndMacro Macro Chart_StartOfDayFilter( labelStep_l = 1, initialMargin_d = 0.05 ) ( CChart_encodeFilter(#Chart_ChartDir_StartOfDayFilterTag, labelStep_l, initialMargin_d) ) EndMacro Macro Chart_StartOfWeekFilter( labelStep_l = 1, initialMargin_d = 0.05 ) ( CChart_encodeFilter(#Chart_ChartDir_StartOfWeekFilterTag, labelStep_l, initialMargin_d) ) EndMacro Macro Chart_StartOfMonthFilter( labelStep_l = 1, initialMargin_d = 0.05 ) ( CChart_encodeFilter(#Chart_ChartDir_StartOfMonthFilterTag, labelStep_l, initialMargin_d) ) EndMacro Macro Chart_StartOfYearFilter( labelStep_l = 1, initialMargin_d = 0.05 ) ( CChart_encodeFilter(#Chart_ChartDir_StartOfYearFilterTag, labelStep_l, initialMargin_d) ) EndMacro Macro Chart_RegularSpacingFilter( labelStep_l = 1, initialMargin_d = 0 ) ( CChart_encodeFilter(#Chart_ChartDir_RegularSpacingFilterTag, labelStep_l, initialMargin_d / 4095.0) ) EndMacro Macro Chart_AllPassFilter() ( CChart_encodeFilter(#Chart_ChartDir_AllPassFilterTag, 0, 0) ) EndMacro Macro Chart_NonePassFilter() ( CChart_encodeFilter(#Chart_ChartDir_NonePassFilterTag, 0, 0) ) EndMacro Macro Chart_SelectItemFilter( item_l ) ( CChart_encodeFilter(ChartDir_SelectItemFilterTag, item_l, 0) ) EndMacro Macro Chart_getVersion() ( CChart_getVersion() ) EndMacro Procedure.s Chart_getVersionStr() Protected version.l = CChart_getVersion() ProcedureReturn Str((version >> 24) & $FF)+"."+Str((version >> 16) & $FF)+"."+Str(version & $FFFF) EndProcedure Procedure.s Chart_getDescription() Protected *p.Ascii = CChart_getDescription() If *p ProcedureReturn PeekS( *p, -1, #PB_Ascii ) EndIf EndProcedure Procedure.s Chart_getCopyright() Protected *p.Ascii = CChart_getCopyright() If *p ProcedureReturn PeekS( *p, -1, #PB_Ascii ) EndIf EndProcedure Procedure.s Chart_getBootLog() Protected *buffer.Ascii = AllocateMemory(4096) Protected bootlog.s If *buffer CChart_getBootLog(*buffer) bootlog = PeekS( *buffer, 4096, #PB_Ascii ) FreeMemory( *buffer ) EndIf ProcedureReturn bootlog EndProcedure Procedure.s Chart_testFont( font.s, fontIndex.l, fontHeight.d, fontWidth.d, angle.d ) Protected *buffer.Ascii = AllocateMemory(4096) Protected result.s If *buffer CChart_testFont(font, fontIndex, fontHeight, fontWidth, angle, *buffer) result = PeekS( *buffer, 4096, #PB_Ascii ) FreeMemory( *buffer ) EndIf ProcedureReturn result EndProcedure Macro Chart_isLicensed() ( CChart_isLicensed() ) EndMacro Procedure.s Chart_getLicenseAttr( key.s ) Protected *buffer.Ascii = AllocateMemory(4096) Protected result.s If *buffer If CChart_getLicenseAttr(key, *buffer) result = PeekS( *buffer, 4096, #PB_Ascii ) EndIf FreeMemory( *buffer ) EndIf ProcedureReturn result EndProcedure Macro Chart_setLicenseFile( filename_s, buffer_Ascii = 0 ) ( CChart_setLicenseFile(filename_s, buffer_Ascii) ) EndMacro Macro Chart_setLicenseCode( licCode_s, buffer_Ascii = 0 ) ( CChart_setLicenseCode(licCode_s, buffer_Ascii) ) EndMacro Macro Chart_chartTime( year_l, month_l, day_l, hour_l = 0, minute_l = 0, second_l = 0 ) ( CChart_chartTime(year_l, month_l, day_l, hour_l, minute_l, second_l) ) EndMacro Macro Chart_chartTime2( t_l ) ( CChart_chartTime2( t_l ) EndMacro Macro Chart_getChartYMD( t_d ) ( CChart_getChartYMD( t_d ) ) EndMacro Macro Chart_getChartWeekDay( t_d ) ( (Int(t_d / 86400 + 1)) % 7 ) EndMacro Enumeration #Chart_NormalGlare = 3 #Chart_ReducedGlare = 2 #Chart_NoGlare = 1 EndEnumeration Macro Chart_glassEffect( glareSize_l = #Chart_NormalGlare, glareDirection_l = #Chart_Top, raisedEffect_l = 5 ) ( CChart_glassEffect(glareSize_l, glareDirection_l, raisedEffect_l) ) EndMacro Macro Chart_softLighting( direction_l = #Chart_Top, raisedEffect_l = 4 ) ( CChart_softLighting(direction_l, raisedEffect_l) ) EndMacro Macro Chart_barLighting( startBrightness_d = 0.75, endBrightness_d = 1.5 ) ( CChart_barLighting(startBrightness_d, endBrightness_d) ) EndMacro Macro Chart_cylinderEffect( orientation_l = #Chart_Center, ambientIntensity_d = 0.5, diffuseIntensity_d = 0.5, specularIntensity_d = 0.75, shininess_l = 8 ) ( CChart_cylinderEffect(orientation_l, ambientIntensity_d, diffuseIntensity_d, specularIntensity_d, shininess_l) ) EndMacro Enumeration #Chart_AggregateSum = 0 #Chart_AggregateAvg = 1 #Chart_AggregateStdDev = 2 #Chart_AggregateMin = 3 #Chart_AggregateMed = 4 #Chart_AggregateMax = 5 #Chart_AggregatePercentile = 6 #Chart_AggregateFirst = 7 #Chart_AggregateLast = 8 #Chart_AggregateCount = 9 EndEnumeration Enumeration #Chart_DirectionHorizontal = 0 #Chart_DirectionVertical = 1 #Chart_DirectionHorizontalVertical = 2 EndEnumeration ;// ;// Ver 5.1 ;// Procedure.d Chart_bSearch(*arr.Double, arrLen.l, v.d) ProcedureReturn CChart_bSearch(*arr, arrLen, v) EndProcedure Macro Chart_ClearTypeMono( gamma_d = 0.0 ) CChart_ClearTypeMono(gamma_d) EndMacro Macro Chart_ClearTypeColor( gamma_d = 0.0 ) CChart_ClearTypeColor(gamma_d) EndMacro Macro Chart_phongLighting( ambientIntensity_d = 0.5, diffuseIntensity_d = 0.5, specularIntensity_d = 0.75, shininess_l = 8 ) CChart_phongLighting(ambientIntensity_d, diffuseIntensity_d, specularIntensity_d, shininess_l) EndMacro ;} //namespace Chart ;{ OOP Macros Macro Dbg(msg) ;Debug msg EndMacro Macro Method(classname,method_name,type=) Procedure#type _#classname#_#method_name EndMacro Macro EndMethod() EndProcedure EndMacro Macro Destructor(classname,extendname) Procedure _#classname#_Destructor(*this.s#classname) _#extendname#_Destructor(*this) EndMacro Macro EndDestructor() EndProcedure EndMacro Macro baseInit(extendname,base_init) _#extendname#_Constructor_Init(*this,base_init) EndMacro Macro ConstructorInit(classname,extendname) Procedure _#classname#_Constructor_Init(*this.s#classname, init) EndMacro Macro EndConstructorInit() EndProcedure EndMacro Macro Constructor(classname,extendname) CompilerIf Defined(_#classname#_Destructor, #PB_Procedure)=0 Destructor(classname,extendname) EndDestructor() CompilerEndIf CompilerIf Defined(_#classname#_Constructor_Init, #PB_Procedure)=0 ConstructorInit(classname,extendname) EndConstructorInit() CompilerEndIf Procedure _#classname#_destroy(*this.s#classname) _#classname#_Destructor(*this) ;FreeMemory( *this\vtable ) ClearStructure(*this,s#classname) FreeMemory( *this ) EndProcedure Procedure _#classname#_Constructor(*this.s#classname) _#extendname#_Constructor(*this) Override(classname,destroy) EndMacro Macro EndConstructor() EndProcedure EndMacro Macro AddMethod(classname,methodname) CompilerIf #PB_Compiler_Debugger If PeekI( *this\vtable + OffsetOf( classname \ methodname () ) ) Debug "OVERRIDE METHOD "+__DQ__#methodname#__DQ__+" IN CLASS "+__DQ__#classname#__DQ__+"! "+Str( PeekI( *this\vtable + OffsetOf( classname \ methodname () ) ) ) ;Debug OffsetOf( classname \ methodname () ) EndIf CompilerEndIf PokeI(*this\vtable + OffsetOf( classname \ methodname () ), @_#classname#_#methodname()) EndMacro Macro Override(classname,methodname) CompilerIf #PB_Compiler_Debugger If PeekI( *this\vtable + OffsetOf( classname \ methodname () ) ) = 0 Debug "OVERRIDE METHOD "+__DQ__#methodname#__DQ__+" IN CLASS "+__DQ__#classname#__DQ__+" was 0!" ;Debug OffsetOf( classname \ methodname () ) EndIf CompilerEndIf PokeI(*this\vtable + OffsetOf( classname \ methodname () ), @_#classname#_#methodname()) EndMacro ; Top Profile Reply With quote ; ; Oliver13 ; Post subject: Re: ChartDirector - Professional charts For PBPostPosted: Thu Apr 06, 2017 8:53 pm ; Offline ; User ; User ; ; Joined: Thu Sep 30, 2010 6:40 am ; Posts: 51 ; Chartdirector.pbi Part 4 ; ; Code: ; Macro InitInterface(classname,extendname,init=) ; Protected *ptr.s#classname ; Protected this.classname ; *ptr = New_#extendname#(init) ; *ptr\vtable = ReAllocateMemory(*ptr\vtable,SizeOf(classname)) ; *ptr = ReAllocateMemory(*ptr,SizeOf(s#classname)) ; InitializeStructure(*ptr,sObject) ; this = *ptr ; EndMacro Macro InitInterface_NoReturn(classname,extendname,self_init=0) Protected *this.s#classname ; *this = AllocateMemory( SizeOf(s#classname) ) ; If *this = 0 ; ProcedureReturn 0 ; EndIf ; ; InitializeStructure(*this,s#classname) ; ; *this\vtable = AllocateMemory( SizeOf(classname) ) ; If *this\vtable = 0 ; ClearStructure(*this,s#classname) ; FreeMemory(*this) ; ProcedureReturn 0 ; EndIf *this = AllocateMemory( SizeOf(s#classname) + SizeOf(classname) ) If *this = 0 ProcedureReturn 0 EndIf InitializeStructure(*this,s#classname) *this\vtable = *this + SizeOf(s#classname) _#classname#_Constructor(*this) _#classname#_Constructor_Init(*this, self_init) CHECKINTERFACE(classname) EndMacro Macro InitInterface(classname,extendname,self_init=0) InitInterface_NoReturn(classname,extendname,self_init) ProcedureReturn *this EndMacro Macro Delete(Class) Class \ destroy() : Class = 0 EndMacro Macro New(Class) New_#class EndMacro ;Procedure delete(class.Object) ; Protected *interface.sObject = class ; class\destroy() ;EndProcedure Macro __DQ__ " EndMacro Macro CHECKINTERFACE(classname) CompilerIf #PB_Compiler_Debugger Protected CHECKINTERFACE_i.i If SizeOf(classname) For CHECKINTERFACE_i = 0 To SizeOf(classname) / SizeOf(Integer) - 1 ;If *ptr\vtable\i[ CHECKINTERFACE_i ] = 0 If PeekI(*this\vtable + CHECKINTERFACE_i *SizeOf(Integer)) = 0 Debug "MISSING METHOD IN VTABLE "+__DQ__#classname#__DQ__+"! method: "+Str(CHECKINTERFACE_i)+" (offset: "+Str(CHECKINTERFACE_i*SizeOf(Integer))+")" ;Debug SizeOf(classname) EndIf Next CHECKINTERFACE_i EndIf CompilerEndIf EndMacro ;} ;- Class Object ;{ Class Object ;Structure Interface_IntPtr ; i.i[0] ;EndStructure Interface Object destroy() reg(obj.Object) EndInterface Structure sObject *vtable.Integer;.Interface_IntPtr List regged.Object() EndStructure Method(Object,reg)(*this.sObject,obj.Object) If AddElement( *this\regged() ) *this\regged() = obj EndIf EndMethod() Method(Object,Destructor)(*this.sObject) Dbg("Object::Destructor() -> " + Str(ListSize(*this\regged())) + " registered objects" ) ForEach *this\regged() If *this\regged() *this\regged()\destroy() EndIf Next EndMethod() Method(Object,destroy)(*this.sObject) Dbg("Object::destroy()") _Object_Destructor(*this) ;FreeMemory( *this\vtable ) ClearStructure(*this,sObject) FreeMemory( *this ) EndMethod() Method(Object,Constructor)(*this.sObject) Dbg("Object::Constructor()") AddMethod(Object,destroy) AddMethod(Object,reg) EndMethod() ; Procedure New_Object() ; Protected *this.sObject ; *this = AllocateMemory(SizeOf(sObject)) ; InitializeStructure(*this,sObject) ; *this\vtable = AllocateMemory(SizeOf(Object)) ; ; _Object_Constructor(*this,0) ; ; CHECKINTERFACE(Object) ; ; ProcedureReturn *this ; EndProcedure ;} ;/////////////////////////////////////////////////////////////////////////////////////// ;// Class wrappers ;/////////////////////////////////////////////////////////////////////////////////////// ;- Class TTFText ;{ Class TTFText Macro pTTFText : i : EndMacro Interface TTFText Extends Object getWidth.l() getHeight.l() getLineHeight.l() getLineDistance.l() draw(x.l, y.l, color.l, alignment.l = #Chart_TopLeft) EndInterface Structure sTTFText Extends sObject TTFText_ptr.TTFTextInternal EndStructure Method(TTFText,getWidth,.l)(*this.sTTFText) ProcedureReturn CTTFText_getWidth(*this\TTFText_ptr) EndMethod() Method(TTFText,getHeight,.l)(*this.sTTFText) ProcedureReturn CTTFText_getHeight(*this\TTFText_ptr) EndMethod() Method(TTFText,getLineHeight,.l)(*this.sTTFText) ProcedureReturn CTTFText_getLineHeight(*this\TTFText_ptr) EndMethod() Method(TTFText,getLineDistance,.l)(*this.sTTFText) ProcedureReturn CTTFText_getLineDistance(*this\TTFText_ptr) EndMethod() Method(TTFText,draw)(*this.sTTFText, x.l, y.l, color.l, alignment.l) CTTFText_draw(*this\TTFText_ptr, x, y, color, alignment) EndMethod() Destructor(TTFText,Object) If *this\TTFText_ptr CTTFText_destroy(*this\TTFText_ptr) EndIf EndDestructor() ConstructorInit(TTFText,Object) *this\TTFText_ptr = init EndConstructorInit() Constructor(TTFText,Object) AddMethod(TTFText,getWidth) AddMethod(TTFText,getHeight) AddMethod(TTFText,getLineHeight) AddMethod(TTFText,getLineDistance) AddMethod(TTFText,draw) EndConstructor() Procedure.i New_TTFText(ptr.TTFTextInternal) InitInterface(TTFText,Object,ptr) EndProcedure ;} ;- Class DrawArea ;{ Class DrawArea Macro pDrawArea : i : EndMacro Interface DrawArea Extends Object getInternalPtr.DrawAreaInternal() enableVectorOutput() setSize(width.l, height.l, bgColor.l = $ffffff) resize(newWidth.l, newHeight.l, filter.l = #Chart_LinearFilter, blur.d = 1) getWidth.l() getHeight.l() setClipRect(left.l, top.l, right.l, bottom.l) setBgColor(c.l) move(xOffset.d, yOffset.d, bgColor.l = $ffffff, filter.l = #Chart_LinearFilter, blur.d = 1) rotate(angle.d, bgColor.l = $ffffff, cx.d = -1, cy.d = -1, filter.l = #Chart_LinearFilter, blur.d = 1) hFlip() vFlip() clone(d.DrawArea, x.l, y.l, align.l, newWidth.l = -1, newHeight.l = -1, filter.l = #Chart_LinearFilter, blur.d = 1) pixel(x.l, y.l, c.l) getPixel.l(x.l, y.l) hline(x1.l, x2.l, y.l, c.l) vline(y1.l, y2.l, x.l, c.l) Line(x1.d, y1.d, x2.d, y2.d, c.l, lineWidth.l = 1) arc(cx.l, cy.l, rx.l, ry.l, a1.d, a2.d, c.l) rect(x1.l, y1.l, x2.l, y2.l, edgeColor.l, fillColor.l, raisedEffect.l = 0) polygon(*xData.Long, xDataLen.l, *yData.Long, yDataLen.l, edgeColor.l, fillColor.l) ;polygonArrayLong(Array x.l(1), Array y.l(1), edgeColor.l, fillColor.l) ; PB does not support Array in interfaces ;polygonArrayDouble(Array x.d(1), Array y.d(1), edgeColor.l, fillColor.l) ; PB does not support Array in interfaces surface(x1.d, y1.d, x2.d, y2.d, depthX.l, depthY.l, edgeColor.l, fillColor.l) sector(cx.l, cy.l, rx.l, ry.l, a1.d, a2.d, edgeColor.l, fillColor.l) cylinder(cx.l, cy.l, rx.l, ry.l, a1.d, a2.d, depthX.l, depthY.l, edgeColor.l, fillColor.l) Circle(cx.l, cy.l, rx.l, ry.l, edgeColor.l, fillColor.l) ringSector(cx.l, cy.l, rx.l, ry.l, rx2.l, ry2.l, a1.d, a2.d, edgeColor.l, fillColor.l) ring(cx.l, cy.l, rx.l, ry.l, rx2.l, ry2.l, edgeColor.l, fillColor.l) fill(x.l, y.l, color.l) fill2(x.l, y.l, color.l, borderColor.l) text(STR.s, font.s, fontSize.d, x.l, y.l, color.l) textw(STR.s, font.s, fontSize.d, x.l, y.l, color.l) text2(STR.s, font.s, fontIndex.l, fontHeight.d, fontWidth.d, angle.d, vertical.cd_bool, x.l, y.l, color.l, alignment.l = #Chart_TopLeft) text2w(STR.s, font.s, fontIndex.l, fontHeight.d, fontWidth.d, angle.d, vertical.cd_bool, x.l, y.l, color.l, alignment.l = #Chart_TopLeft) text3.pTTFText(STR.s, font.s, fontSize.d) text3w.pTTFText(STR.s, font.s, fontSize.d) text4w.pTTFText(text.s, font.s, fontIndex.l, fontHeight.d, fontWidth.d, angle.d, vertical.cd_bool) text4.pTTFText(text.s, font.s, fontIndex.l, fontHeight.d, fontWidth.d, angle.d, vertical.cd_bool) close(text.TTFText) merge(d.DrawArea, x.l, y.l, align.l, transparency.l) tile(d.DrawArea, transparency.l) setSearchPath(path.s) loadGIF.cd_bool(filename.s) loadPNG.cd_bool(filename.s) loadJPG.cd_bool(filename.s) loadWMP.cd_bool(filename.s) load.cd_bool(filename.s) rAffineTransform(a.d, b.d, c.d, d.d, e.d, f.d, bgColor.l = $ffffff, filter.l = #Chart_LinearFilter, blur.d = 1) affineTransform(a.d, b.d, c.d, d.d, e.d, f.d, bgColor.l = $ffffff, filter.l = #Chart_LinearFilter, blur.d = 1) sphereTransform(xDiameter.l, yDiameter.l, bgColor.l = $ffffff, filter.l = #Chart_LinearFilter, blur.d = 1) hCylinderTransform(yDiameter.l, bgColor.l = $ffffff, filter.l = #Chart_LinearFilter, blur.d = 1) vCylinderTransform(xDiameter.l, bgColor.l = $ffffff, filter.l = #Chart_LinearFilter, blur.d = 1) vTriangleTransform(tHeight.l = -1, bgColor.l = $ffffff, filter.l = #Chart_LinearFilter, blur.d = 1) hTriangleTransform(tWidth.l = -1, bgColor.l = $ffffff, filter.l = #Chart_LinearFilter, blur.d = 1) shearTransform(xShear.d, yShear.d = 0, bgColor.l = $ffffff, filter.l = #Chart_LinearFilter, blur.d = 1) waveTransform(period.l, amplitude.d, direction.d = 0, startAngle.d = 0, longitudinal.cd_bool = #False, bgColor.l = $ffffff, filter.l = #Chart_LinearFilter, blur.d = 1) OUT.cd_bool(filename.s) outGIF.cd_bool(filename.s) outPNG.cd_bool(filename.s) outJPG.cd_bool(filename.s, quality.l = 80) outWMP.cd_bool(filename.s) outBMP.cd_bool(filename.s) outSVG.cd_bool(filename.s, options.s = "") outGIF2.cd_bool(*_data_.Integer, *len.Long) outPNG2.cd_bool(*_data_.Integer, *len.Long) outJPG2.cd_bool(*_data_.Integer, *len.Long, quality.l = 80) outWMP2.cd_bool(*_data_.Integer, *len.Long) outBMP2.cd_bool(*_data_.Integer, *len.Long) ; outGIF.MemBlock() ; outPNG.MemBlock() ; outJPG.MemBlock(quality.l = 80) ; outWMP.MemBlock() ; outBMP.MemBlock() ; outSVG2.MemBlock(options.s = 0) ; outSVG.MemBlock() setPaletteMode(p.l) setDitherMethod(m.l) setTransparentColor(c.l) setAntiAliasText(a.l) setAntiAlias(shapeAntiAlias.cd_bool = #True, textAntiAlias.l = #Chart_AutoAntiAlias) setInterlace(i.cd_bool) setColorTable(*colors.Long, noOfColors.l, offset.l) ;setColorTableArray(Array colors.l(1), offset.l) ; new getARGBColor.l(c.l) halfColor.l(c.l) adjustBrightness.l(c.l, brightness.d) dashLineColor.l(color.l, patternCode.l = #Chart_DashLine) patternColor.l(*cData.Long, cDataLen.l, h.l, startX.l = 0, startY.l = 0) patternColorFromFile.l(filename.s, startX.l = 0, startY.l = 0) gradientColor.l(startX.l, startY.l, endX.l, endY.l, startColor.l, endColor.l) gradientColor2.l(*colorArray.Long, colorArrayLen.l, angle.d = 90, scale.d = 1.0, startX.l = 0, startY.l = 0) gradientColor2a.l(*c.Long, angle.d = 90, scale.d = 1, startX.l = 0, startY.l = 0) linearGradientColor.l(startX.l, startY.l, endX.l, endY.l, startColor.l, endColor.l, periodic.cd_bool = #False) linearGradientColor2.l(startX.l, startY.l, endX.l, endY.l, *cData.Long, cDataLen.l, periodic.cd_bool = #False) radialGradientColor.l(cx.l, cy.l, rx.l, ry.l, startColor.l, endColor.l, periodic.cd_bool = #False) radialGradientColor2.l(cx.l, cy.l, rx.l, ry.l, *cData.Long, cDataLen.l, periodic.cd_bool = #False) reduceColors.l(colorCount.l, blackAndWhite.cd_bool = #False) setDefaultFonts(normal.s, bold.s = "", italic.s = "", boldItalic.s = "") setFontTable(index.l, font.s) ;// ;// Ver 5.1 ;// initDynamicLayer() removeDynamicLayer(keepOriginal.cd_bool = #False) EndInterface Structure sDrawArea Extends sObject DrawArea_ptr.DrawAreaInternal DrawArea_own_this.cd_bool EndStructure Method(DrawArea,getInternalPtr,.DrawAreaInternal)(*this.sDrawArea) ProcedureReturn *this\DrawArea_ptr EndMethod() Method(DrawArea,enableVectorOutput)(*this.sDrawArea) CDrawArea_enableVectorOutput(*this\DrawArea_ptr) EndMethod() Method(DrawArea,setSize)(*this.sDrawArea, width.l, height.l, bgColor.l) CDrawArea_setSize(*this\DrawArea_ptr, width, height, bgColor) EndMethod() Method(DrawArea,resize)(*this.sDrawArea, newWidth.l, newHeight.l, filter.l, blur.d) CDrawArea_resize(*this\DrawArea_ptr, newWidth, newHeight, filter, blur) EndMethod() Method(DrawArea,getWidth,.l)(*this.sDrawArea) ProcedureReturn CDrawArea_getWidth(*this\DrawArea_ptr) EndMethod() Method(DrawArea,getHeight,.l)(*this.sDrawArea) ProcedureReturn CDrawArea_getHeight(*this\DrawArea_ptr) EndMethod() Method(DrawArea,setClipRect)(*this.sDrawArea, left.l, top.l, right.l, bottom.l) CDrawArea_setClipRect(*this\DrawArea_ptr, left, top, right, bottom) EndMethod() Method(DrawArea,setBgColor)(*this.sDrawArea, c.l) CDrawArea_setBgColor(*this\DrawArea_ptr, c) EndMethod() Method(DrawArea,move)(*this.sDrawArea, xOffset.d, yOffset.d, bgColor.l, filter.l, blur.d) CDrawArea_move(*this\DrawArea_ptr, xOffset, yOffset, bgColor, filter, blur) EndMethod() Method(DrawArea,rotate)(*this.sDrawArea, angle.d, bgColor.l, cx.d, cy.d, filter.l, blur.d) CDrawArea_rotate(*this\DrawArea_ptr, angle, bgColor, cx, cy, filter, blur) EndMethod() Method(DrawArea,hFlip)(*this.sDrawArea) CDrawArea_hFlip(*this\DrawArea_ptr) EndMethod() Method(DrawArea,vFlip)(*this.sDrawArea) CDrawArea_vFlip(*this\DrawArea_ptr) EndMethod() Method(DrawArea,clone)(*this.sDrawArea, d.DrawArea, x.l, y.l, align.l, newWidth.l, newHeight.l, filter.l, blur.d) Protected *d_this.sDrawArea = d If *d_this CDrawArea_clone(*this\DrawArea_ptr, *d_this\DrawArea_ptr, x, y, align, newWidth, newHeight, filter, blur) EndIf EndMethod() Method(DrawArea,pixel)(*this.sDrawArea, x.l, y.l, c.l) CDrawArea_pixel(*this\DrawArea_ptr, x, y, c) EndMethod() Method(DrawArea,getPixel,.l)(*this.sDrawArea, x.l, y.l) ProcedureReturn CDrawArea_getPixel(*this\DrawArea_ptr, x, y) EndMethod() Method(DrawArea,hline)(*this.sDrawArea, x1.l, x2.l, y.l, c.l) CDrawArea_hline(*this\DrawArea_ptr, x1, x2, y, c) EndMethod() Method(DrawArea,vline)(*this.sDrawArea, y1.l, y2.l, x.l, c.l) CDrawArea_vline(*this\DrawArea_ptr, y1, y2, x, c) EndMethod() Method(DrawArea,line)(*this.sDrawArea, x1.d, y1.d, x2.d, y2.d, c.l, lineWidth.l) CDrawArea_line(*this\DrawArea_ptr, x1, y1, x2, y2, c, lineWidth) EndMethod() Method(DrawArea,arc)(*this.sDrawArea, cx.l, cy.l, rx.l, ry.l, a1.d, a2.d, c.l) CDrawArea_arc(*this\DrawArea_ptr, cx, cy, rx, ry, a1, a2, c) EndMethod() Method(DrawArea,rect)(*this.sDrawArea, x1.l, y1.l, x2.l, y2.l, edgeColor.l, fillColor.l, raisedEffect.l) CDrawArea_rect(*this\DrawArea_ptr, x1, y1, x2, y2, edgeColor, fillColor, raisedEffect) EndMethod() Method(DrawArea,polygon)(*this.sDrawArea, *xData.Long, xDataLen.l, *yData.Long, yDataLen.l, edgeColor.l, fillColor.l) CDrawArea_polygon2(*this\DrawArea_ptr, *xData, xDataLen, *yData, yDataLen, edgeColor, fillColor) EndMethod() ; Method(DrawArea,polygonArrayLong)(*this.sDrawArea, Array x.l(1), Array y.l(1), edgeColor.l, fillColor.l) ; CDrawArea_polygon2(*this\DrawArea_ptr, @x(), ArraySize(x()), @y(), ArraySize(y()), edgeColor, fillColor) ; EndMethod() ; ; Method(DrawArea,polygonArrayDouble)(*this.sDrawArea, Array x.d(1), Array y.d(1), edgeColor.l, fillColor.l) ; CDrawArea_polygon(*this\DrawArea_ptr, @x(), ArraySize(x()), @y(), ArraySize(y()), edgeColor, fillColor) ; EndMethod() Method(DrawArea,surface)(*this.sDrawArea, x1.d, y1.d, x2.d, y2.d, depthX.l, depthY.l, edgeColor.l, fillColor.l) CDrawArea_surface(*this\DrawArea_ptr, x1, y1, x2, y2, depthX, depthY, edgeColor, fillColor) EndMethod() Method(DrawArea,sector)(*this.sDrawArea, cx.l, cy.l, rx.l, ry.l, a1.d, a2.d, edgeColor.l, fillColor.l) CDrawArea_sector(*this\DrawArea_ptr, cx, cy, rx, ry, a1, a2, edgeColor, fillColor) EndMethod() Method(DrawArea,cylinder)(*this.sDrawArea, cx.l, cy.l, rx.l, ry.l, a1.d, a2.d, depthX.l, depthY.l, edgeColor.l, fillColor.l) CDrawArea_cylinder(*this\DrawArea_ptr, cx, cy, rx, ry, a1, a2, depthX, depthY, edgeColor, fillColor) EndMethod() Method(DrawArea,circle)(*this.sDrawArea, cx.l, cy.l, rx.l, ry.l, edgeColor.l, fillColor.l) CDrawArea_circle(*this\DrawArea_ptr, cx, cy, rx, ry, edgeColor, fillColor) EndMethod() Method(DrawArea,ringSector)(*this.sDrawArea, cx.l, cy.l, rx.l, ry.l, rx2.l, ry2.l, a1.d, a2.d, edgeColor.l, fillColor.l) CDrawArea_ringSector(*this\DrawArea_ptr, cx, cy, rx, ry, rx2, ry2, a1, a2, edgeColor, fillColor) EndMethod() Method(DrawArea,ring)(*this.sDrawArea, cx.l, cy.l, rx.l, ry.l, rx2.l, ry2.l, edgeColor.l, fillColor.l) CDrawArea_ring(*this\DrawArea_ptr, cx, cy, rx, ry, rx2, ry2, edgeColor, fillColor) EndMethod() Method(DrawArea,fill)(*this.sDrawArea, x.l, y.l, color.l) CDrawArea_fill(*this\DrawArea_ptr, x, y, color) EndMethod() Method(DrawArea,fill2)(*this.sDrawArea, x.l, y.l, color.l, borderColor.l) CDrawArea_fill2(*this\DrawArea_ptr, x, y, color, borderColor) EndMethod() Method(DrawArea,text)(*this.sDrawArea, STR.s, font.s, fontSize.d, x.l, y.l, color.l) CDrawArea_text(*this\DrawArea_ptr, STR, font, fontSize, x, y, color) EndMethod() Method(DrawArea,textw)(*this.sDrawArea, STR.s, font.s, fontSize.d, x.l, y.l, color.l) CDrawArea_textw(*this\DrawArea_ptr, STR, font, fontSize, x, y, color) EndMethod() Method(DrawArea,text2)(*this.sDrawArea, STR.s, font.s, fontIndex.l, fontHeight.d, fontWidth.d, angle.d, vertical.cd_bool, x.l, y.l, color.l, alignment.l) CDrawArea_text2(*this\DrawArea_ptr, STR, font, fontIndex, fontHeight, fontWidth, angle, vertical, x, y, color, alignment) EndMethod() Method(DrawArea,text2w)(*this.sDrawArea, STR.s, font.s, fontIndex.l, fontHeight.d, fontWidth.d, angle.d, vertical.cd_bool, x.l, y.l, color.l, alignment.l) CDrawArea_text2w(*this\DrawArea_ptr, STR, font, fontIndex, fontHeight, fontWidth, angle, vertical, x, y, color, alignment) EndMethod() Method(DrawArea,text3,.pTTFText)(*this.sDrawArea, STR.s, font.s, fontSize.d) ProcedureReturn New_TTFText(CDrawArea_text3(*this\DrawArea_ptr, STR, font, fontSize)) EndMethod() Method(DrawArea,text3w,.pTTFText)(*this.sDrawArea, STR.s, font.s, fontSize.d) ProcedureReturn New_TTFText(CDrawArea_text3w(*this\DrawArea_ptr, STR, font, fontSize)) EndMethod() Method(DrawArea,text4w,.pTTFText)(*this.sDrawArea, text.s, font.s, fontIndex.l, fontHeight.d, fontWidth.d, angle.d, vertical.cd_bool) ProcedureReturn New_TTFText(CDrawArea_text4w(*this\DrawArea_ptr, text, font, fontIndex, fontHeight, fontWidth, angle, vertical)) EndMethod() Method(DrawArea,text4,.pTTFText)(*this.sDrawArea, text.s, font.s, fontIndex.l, fontHeight.d, fontWidth.d, angle.d, vertical.cd_bool) ProcedureReturn New_TTFText(CDrawArea_text4(*this\DrawArea_ptr, text, font, fontIndex, fontHeight, fontWidth, angle, vertical)) EndMethod() Method(DrawArea,close)(*this.sDrawArea, text.TTFText) Delete(text) EndMethod() Method(DrawArea,merge)(*this.sDrawArea, d.DrawArea, x.l, y.l, align.l, transparency.l) Protected *d_this.sDrawArea = d If *d_this CDrawArea_merge(*this\DrawArea_ptr, *d_this\DrawArea_ptr, x, y, align, transparency) EndIf EndMethod() Method(DrawArea,tile)(*this.sDrawArea, d.DrawArea, transparency.l) Protected *d_this.sDrawArea = d If *d_this CDrawArea_tile(*this\DrawArea_ptr, *d_this\DrawArea_ptr, transparency); EndIf EndMethod() Method(DrawArea,setSearchPath)(*this.sDrawArea, path.s) CDrawArea_setSearchPath(*this\DrawArea_ptr, path) EndMethod() Method(DrawArea,loadGIF,.cd_bool)(*this.sDrawArea, filename.s) ProcedureReturn CDrawArea_loadGIF(*this\DrawArea_ptr, filename) EndMethod() Method(DrawArea,loadPNG,.cd_bool)(*this.sDrawArea, filename.s) ProcedureReturn CDrawArea_loadPNG(*this\DrawArea_ptr, filename) EndMethod() Method(DrawArea,loadJPG,.cd_bool)(*this.sDrawArea, filename.s) ProcedureReturn CDrawArea_loadJPG(*this\DrawArea_ptr, filename) EndMethod() Method(DrawArea,loadWMP,.cd_bool)(*this.sDrawArea, filename.s) ProcedureReturn CDrawArea_loadWMP(*this\DrawArea_ptr, filename) EndMethod() Method(DrawArea,load,.cd_bool)(*this.sDrawArea, filename.s) ProcedureReturn CDrawArea_load(*this\DrawArea_ptr, filename) EndMethod() Method(DrawArea,rAffineTransform)(*this.sDrawArea, a.d, b.d, c.d, d.d, e.d, f.d, bgColor.l, filter.l, blur.d) CDrawArea_rAffineTransform(*this\DrawArea_ptr, a, b, c, d, e, f, bgColor, filter, blur) EndMethod() Method(DrawArea,affineTransform)(*this.sDrawArea, a.d, b.d, c.d, d.d, e.d, f.d, bgColor.l, filter.l, blur.d) CDrawArea_affineTransform(*this\DrawArea_ptr, a, b, c, d, e, f, bgColor, filter, blur) EndMethod() Method(DrawArea,sphereTransform)(*this.sDrawArea, xDiameter.l, yDiameter.l, bgColor.l, filter.l, blur.d) CDrawArea_sphereTransform(*this\DrawArea_ptr, xDiameter, yDiameter, bgColor, filter, blur) EndMethod() Method(DrawArea,hCylinderTransform)(*this.sDrawArea, yDiameter.l, bgColor.l, filter.l, blur.d) CDrawArea_hCylinderTransform(*this\DrawArea_ptr, yDiameter, bgColor, filter, blur) EndMethod() Method(DrawArea,vCylinderTransform)(*this.sDrawArea, xDiameter.l, bgColor.l, filter.l, blur.d) CDrawArea_vCylinderTransform(*this\DrawArea_ptr, xDiameter, bgColor, filter, blur) EndMethod() Method(DrawArea,vTriangleTransform)(*this.sDrawArea, tHeight.l, bgColor.l, filter.l, blur.d) CDrawArea_vTriangleTransform(*this\DrawArea_ptr, tHeight, bgColor, filter, blur) EndMethod() Method(DrawArea,hTriangleTransform)(*this.sDrawArea, tWidth.l, bgColor.l, filter.l, blur.d) CDrawArea_hTriangleTransform(*this\DrawArea_ptr, tWidth, bgColor, filter, blur) EndMethod() Method(DrawArea,shearTransform)(*this.sDrawArea, xShear.d, yShear.d, bgColor.l, filter.l, blur.d) CDrawArea_shearTransform(*this\DrawArea_ptr, xShear, yShear, bgColor, filter, blur) EndMethod() Method(DrawArea,waveTransform)(*this.sDrawArea, period.l, amplitude.d, direction.d, startAngle.d, longitudinal.cd_bool, bgColor.l, filter.l, blur.d) CDrawArea_waveTransform(*this\DrawArea_ptr, period, amplitude, direction, startAngle, longitudinal, bgColor, filter, blur) EndMethod() Method(DrawArea,OUT,.cd_bool)(*this.sDrawArea, filename.s) ProcedureReturn CDrawArea_out(*this\DrawArea_ptr, filename) EndMethod() Method(DrawArea,outGIF,.cd_bool)(*this.sDrawArea, filename.s) ProcedureReturn CDrawArea_outGIF(*this\DrawArea_ptr, filename) EndMethod() Method(DrawArea,outPNG,.cd_bool)(*this.sDrawArea, filename.s) ProcedureReturn CDrawArea_outPNG(*this\DrawArea_ptr, filename) EndMethod() Method(DrawArea,outJPG,.cd_bool)(*this.sDrawArea, filename.s, quality.l) ProcedureReturn CDrawArea_outJPG(*this\DrawArea_ptr, filename, quality) EndMethod() Method(DrawArea,outWMP,.cd_bool)(*this.sDrawArea, filename.s) ProcedureReturn CDrawArea_outWMP(*this\DrawArea_ptr, filename) EndMethod() Method(DrawArea,outBMP,.cd_bool)(*this.sDrawArea, filename.s) ProcedureReturn CDrawArea_outBMP(*this\DrawArea_ptr, filename) EndMethod() Method(DrawArea,outSVG,.cd_bool)(*this.sDrawArea, filename.s, options.s) ProcedureReturn CDrawArea_outSVG(*this\DrawArea_ptr, filename, options) EndMethod() Method(DrawArea,outGIF2,.cd_bool)(*this.sDrawArea, *_data_.Integer, *len.Long) ProcedureReturn CDrawArea_outGIF2(*this\DrawArea_ptr, *_data_, *len) EndMethod() Method(DrawArea,outPNG2,.cd_bool)(*this.sDrawArea, *_data_.Integer, *len.Long) ProcedureReturn CDrawArea_outPNG2(*this\DrawArea_ptr, *_data_, *len) EndMethod() Method(DrawArea,outJPG2,.cd_bool)(*this.sDrawArea, *_data_.Integer, *len.Long, quality.l) ProcedureReturn CDrawArea_outJPG2(*this\DrawArea_ptr, *_data_, *len, quality) EndMethod() Method(DrawArea,outWMP2,.cd_bool)(*this.sDrawArea, *_data_.Integer, *len.Long) ProcedureReturn CDrawArea_outWMP2(*this\DrawArea_ptr, *_data_, *len) EndMethod() Method(DrawArea,outBMP2,.cd_bool)(*this.sDrawArea, *_data_.Integer, *len.Long) ProcedureReturn CDrawArea_outBMP2(*this\DrawArea_ptr, *_data_, *len) EndMethod() ; Method(DrawArea,outGIF,.MemBlock)(*this.sDrawArea) ; ; const char *data; int len; outGIF(&data, &len); ProcedureReturn MemBlock(data, len); ; EndMethod() ; ; Method(DrawArea,outPNG,.MemBlock)(*this.sDrawArea) ; ; const char *data; int len; outPNG(&data, &len); ProcedureReturn MemBlock(data, len); ; EndMethod() ; ; Method(DrawArea,outJPG,.MemBlock)(*this.sDrawArea, quality.l) ; ; const char *data; int len; outJPG(&data, &len, quality); ProcedureReturn MemBlock(data, len); ; EndMethod() ; ; Method(DrawArea,outWMP,.MemBlock)(*this.sDrawArea) ; ; const char *data; int len; outWMP(&data, &len); ProcedureReturn MemBlock(data, len); ; EndMethod() ; ; Method(DrawArea,outBMP,.MemBlock)(*this.sDrawArea) ; ; const char *data; int len; outBMP(&data, &len); ProcedureReturn MemBlock(data, len); ; EndMethod() ; ; Method(DrawArea,outSVG2,.MemBlock)(*this.sDrawArea, options.s) ; ; const char *data; int len; CDrawArea_outSVG2(*this\DrawArea_ptr, &data, &len, options); ProcedureReturn MemBlock(data, len); ; EndMethod() ; ; Method(DrawArea,outSVG,.MemBlock)(*this.sDrawArea) ; ; ProcedureReturn outSVG2(); ; EndMethod() Method(DrawArea,setPaletteMode)(*this.sDrawArea, p.l) CDrawArea_setPaletteMode(*this\DrawArea_ptr, p) EndMethod() Method(DrawArea,setDitherMethod)(*this.sDrawArea, m.l) CDrawArea_setDitherMethod(*this\DrawArea_ptr, m) EndMethod() Method(DrawArea,setTransparentColor)(*this.sDrawArea, c.l) CDrawArea_setTransparentColor(*this\DrawArea_ptr, c) EndMethod() Method(DrawArea,setAntiAliasText)(*this.sDrawArea, a.l) CDrawArea_setAntiAliasText(*this\DrawArea_ptr, a) EndMethod() Method(DrawArea,setAntiAlias)(*this.sDrawArea, shapeAntiAlias.cd_bool, textAntiAlias.l) CDrawArea_setAntiAlias(*this\DrawArea_ptr, shapeAntiAlias, textAntiAlias) EndMethod() Method(DrawArea,setInterlace)(*this.sDrawArea, i.cd_bool) CDrawArea_setInterlace(*this\DrawArea_ptr, i) EndMethod() Method(DrawArea,setColorTable)(*this.sDrawArea, *colors.Long, noOfColors.l, offset.l) CDrawArea_setColorTable(*this\DrawArea_ptr, *colors, noOfColors, offset) EndMethod() ;Method(DrawArea,setColorTableArray)(*this.sDrawArea, Array colors.l(1), offset.l) ; CDrawArea_setColorTable(*this\DrawArea_ptr, @colors(), ArraySize(colors()), offset) ;EndMethod() Method(DrawArea,getARGBColor,.l)(*this.sDrawArea, c.l) ProcedureReturn CDrawArea_getARGBColor(*this\DrawArea_ptr, c) EndMethod() Method(DrawArea,halfColor,.l)(*this.sDrawArea, c.l) ProcedureReturn CDrawArea_halfColor(*this\DrawArea_ptr, c) EndMethod() Method(DrawArea,adjustBrightness,.l)(*this.sDrawArea, c.l, brightness.d) ProcedureReturn CDrawArea_adjustBrightness(*this\DrawArea_ptr, c, brightness) EndMethod() Method(DrawArea,dashLineColor,.l)(*this.sDrawArea, color.l, patternCode.l) ProcedureReturn CDrawArea_dashLineColor(*this\DrawArea_ptr, color, patternCode) EndMethod() Method(DrawArea,patternColor,.l)(*this.sDrawArea, *cData.Long, cDataLen.l, h.l, startX.l, startY.l) ProcedureReturn CDrawArea_patternColor(*this\DrawArea_ptr, *cData, cDataLen, h, startX, startY); EndMethod() Method(DrawArea,patternColorFromFile,.l)(*this.sDrawArea, filename.s, startX.l, startY.l) ProcedureReturn CDrawArea_patternColor2(*this\DrawArea_ptr, filename, startX, startY) EndMethod() Method(DrawArea,gradientColor,.l)(*this.sDrawArea, startX.l, startY.l, endX.l, endY.l, startColor.l, endColor.l) ProcedureReturn CDrawArea_gradientColor(*this\DrawArea_ptr, startX, startY, endX, endY, startColor, endColor) EndMethod() Method(DrawArea,gradientColor2,.l)(*this.sDrawArea, *colorArray_data.Long, colorArrayLen.l, angle.d, scale.d, startX.l, startY.l) ProcedureReturn CDrawArea_gradientColor2(*this\DrawArea_ptr, *colorArray_data, colorArrayLen, angle, scale, startX, startY) EndMethod() Method(DrawArea,gradientColor2a,.l)(*this.sDrawArea, *c.Long, angle.d, scale.d, startX.l, startY.l) ProcedureReturn CDrawArea_gradientColor2a(*this\DrawArea_ptr, *c, angle, scale, startX, startY) EndMethod() Method(DrawArea,linearGradientColor,.l)(*this.sDrawArea, startX.l, startY.l, endX.l, endY.l, startColor.l, endColor.l, periodic.cd_bool) ProcedureReturn CDrawArea_linearGradientColor(*this\DrawArea_ptr, startX, startY, endX, endY, startColor, endColor, periodic) EndMethod() Method(DrawArea,linearGradientColor2,.l)(*this.sDrawArea, startX.l, startY.l, endX.l, endY.l, *cData.Long, cDataLen.l, periodic.cd_bool) ProcedureReturn CDrawArea_linearGradientColor2(*this\DrawArea_ptr, startX, startY, endX, endY, *cData, cDataLen, periodic) EndMethod() Method(DrawArea,radialGradientColor,.l)(*this.sDrawArea, cx.l, cy.l, rx.l, ry.l, startColor.l, endColor.l, periodic.cd_bool) ProcedureReturn CDrawArea_radialGradientColor(*this\DrawArea_ptr, cx, cy, rx, ry, startColor, endColor, periodic) EndMethod() Method(DrawArea,radialGradientColor2,.l)(*this.sDrawArea, cx.l, cy.l, rx.l, ry.l, *cData.Long, cDataLen.l, periodic.cd_bool) ProcedureReturn CDrawArea_radialGradientColor2(*this\DrawArea_ptr, cx, cy, rx, ry, *cData, cDataLen, periodic) EndMethod() Method(DrawArea,reduceColors,.l)(*this.sDrawArea, colorCount.l, blackAndWhite.cd_bool) ProcedureReturn CDrawArea_reduceColors(*this\DrawArea_ptr, colorCount, blackAndWhite) EndMethod() Method(DrawArea,setDefaultFonts)(*this.sDrawArea, normal.s, bold.s, italic.s, boldItalic.s) CDrawArea_setDefaultFonts(*this\DrawArea_ptr, normal, bold, italic, boldItalic) EndMethod() Method(DrawArea,setFontTable)(*this.sDrawArea, index.l, font.s) CDrawArea_setFontTable(*this\DrawArea_ptr, index, font) EndMethod() Method(DrawArea,initDynamicLayer)(*this.sDrawArea) CDrawArea_initDynamicLayer(*this\DrawArea_ptr) EndMethod() Method(DrawArea,removeDynamicLayer)(*this.sDrawArea, keepOriginal.cd_bool) CDrawArea_removeDynamicLayer(*this\DrawArea_ptr, keepOriginal) EndMethod() Destructor(DrawArea,Object) If *this\DrawArea_own_this = #True CDrawArea_destroy(*this\DrawArea_ptr) EndIf EndDestructor() ConstructorInit(DrawArea,Object) If init *this\DrawArea_ptr = init *this\DrawArea_own_this = #False Else *this\DrawArea_ptr = CDrawArea_create() *this\DrawArea_own_this = #True EndIf EndConstructorInit() Constructor(DrawArea,Object) AddMethod(DrawArea,getInternalPtr) AddMethod(DrawArea,enableVectorOutput) AddMethod(DrawArea,setSize) AddMethod(DrawArea,resize) AddMethod(DrawArea,getWidth) AddMethod(DrawArea,getHeight) AddMethod(DrawArea,setClipRect) AddMethod(DrawArea,setBgColor) AddMethod(DrawArea,move) AddMethod(DrawArea,rotate) AddMethod(DrawArea,hFlip) AddMethod(DrawArea,vFlip) AddMethod(DrawArea,clone) AddMethod(DrawArea,pixel) AddMethod(DrawArea,getPixel) AddMethod(DrawArea,hline) AddMethod(DrawArea,vline) AddMethod(DrawArea,line) AddMethod(DrawArea,arc) AddMethod(DrawArea,rect) AddMethod(DrawArea,polygon) ;AddMethod(DrawArea,polygonArrayLong) ; new ;AddMethod(DrawArea,polygonArrayDouble) ; new AddMethod(DrawArea,surface) AddMethod(DrawArea,sector) AddMethod(DrawArea,cylinder) AddMethod(DrawArea,circle) AddMethod(DrawArea,ringSector) AddMethod(DrawArea,ring) AddMethod(DrawArea,fill) AddMethod(DrawArea,fill2) AddMethod(DrawArea,text) AddMethod(DrawArea,textw) AddMethod(DrawArea,text2) AddMethod(DrawArea,text2w) AddMethod(DrawArea,text3) AddMethod(DrawArea,text3w) AddMethod(DrawArea,text4) AddMethod(DrawArea,text4w) AddMethod(DrawArea,close) AddMethod(DrawArea,merge) AddMethod(DrawArea,tile) AddMethod(DrawArea,setSearchPath) AddMethod(DrawArea,loadGIF) AddMethod(DrawArea,loadPNG) AddMethod(DrawArea,loadJPG) AddMethod(DrawArea,loadWMP) AddMethod(DrawArea,load) AddMethod(DrawArea,rAffineTransform) AddMethod(DrawArea,affineTransform) AddMethod(DrawArea,sphereTransform) AddMethod(DrawArea,hCylinderTransform) AddMethod(DrawArea,vCylinderTransform) AddMethod(DrawArea,vTriangleTransform) AddMethod(DrawArea,hTriangleTransform) AddMethod(DrawArea,shearTransform) AddMethod(DrawArea,waveTransform) AddMethod(DrawArea,OUT) AddMethod(DrawArea,outGIF) AddMethod(DrawArea,outPNG) AddMethod(DrawArea,outJPG) AddMethod(DrawArea,outWMP) AddMethod(DrawArea,outBMP) AddMethod(DrawArea,outSVG) AddMethod(DrawArea,outGIF2) AddMethod(DrawArea,outPNG2) AddMethod(DrawArea,outJPG2) AddMethod(DrawArea,outWMP2) AddMethod(DrawArea,outBMP2) ;AddMethod(DrawArea,outGIF3) ;AddMethod(DrawArea,outPNG3) ;AddMethod(DrawArea,outJPG3) ;AddMethod(DrawArea,outWMP3) ;AddMethod(DrawArea,outBMP3) ;AddMethod(DrawArea,outSVG3_2) ;AddMethod(DrawArea,outSVG3) AddMethod(DrawArea,setPaletteMode) AddMethod(DrawArea,setDitherMethod) AddMethod(DrawArea,setTransparentColor) AddMethod(DrawArea,setAntiAliasText) AddMethod(DrawArea,setAntiAlias) AddMethod(DrawArea,setInterlace) AddMethod(DrawArea,setColorTable) ;AddMethod(DrawArea,setColorTableArray) AddMethod(DrawArea,getARGBColor) AddMethod(DrawArea,halfColor) AddMethod(DrawArea,adjustBrightness) AddMethod(DrawArea,dashLineColor) AddMethod(DrawArea,patternColor) AddMethod(DrawArea,patternColorFromFile) AddMethod(DrawArea,gradientColor) AddMethod(DrawArea,gradientColor2) AddMethod(DrawArea,gradientColor2a) AddMethod(DrawArea,linearGradientColor) AddMethod(DrawArea,linearGradientColor2) AddMethod(DrawArea,radialGradientColor) AddMethod(DrawArea,radialGradientColor2) AddMethod(DrawArea,reduceColors) AddMethod(DrawArea,setDefaultFonts) AddMethod(DrawArea,setFontTable) AddMethod(DrawArea,initDynamicLayer) AddMethod(DrawArea,removeDynamicLayer) EndConstructor() Procedure.i New_DrawArea(ptr.DrawAreaInternal=0) InitInterface(DrawArea,Object,ptr) EndProcedure ;} ;- Class DrawObj ;{ Class DrawObj Macro pDrawObj : i : EndMacro Interface DrawObj Extends Object getInternalPtr.DrawObjInternal() setZOrder(z.l) paint(d.DrawArea) EndInterface Structure sDrawObj Extends sObject DrawObj_ptr.DrawObjInternal EndStructure Method(DrawObj,getInternalPtr,.DrawObjInternal)(*this.sDrawObj) ProcedureReturn *this\DrawObj_ptr EndMethod() Method(DrawObj,setZOrder)(*this.sDrawObj, z.l) CDrawObj_setZOrder(*this\DrawObj_ptr, z) EndMethod() Method(DrawObj,paint)(*this.sDrawObj, d.DrawArea) CDrawObj_paint(*this\DrawObj_ptr, d\getInternalPtr()) EndMethod() ConstructorInit(DrawObj,Object) *this\DrawObj_ptr = init EndConstructorInit() Constructor(DrawObj,Object) AddMethod(DrawObj,getInternalPtr) AddMethod(DrawObj,setZOrder) AddMethod(DrawObj,paint) EndConstructor() Procedure.i New_DrawObj(ptr.DrawObjInternal) InitInterface(DrawObj,Object,ptr) EndProcedure ;} ;- Class Box ;{ Class Box Macro pBox : i : EndMacro Interface Box Extends DrawObj setPos(x.l, y.l) setSize(w.l, h.l) setBackground(color.l, edgeColor.l = -1, raisedEffect.l = 0) setRoundedCorners(r1.l = 10, r2.l = -1, r3.l = -1, r4.l = -1) getLeftX.l() getTopY.l() getWidth.l() getHeight.l() getImageCoor.s(offsetX.l = 0, offsetY.l = 0) EndInterface Structure sBox Extends sDrawObj Box_ptr.BoxInternal EndStructure Method(Box,setPos)(*this.sBox, x.l, y.l) CBox_setPos(*this\Box_ptr, x, y) EndMethod() Method(Box,setSize)(*this.sBox, w.l, h.l) CBox_setSize(*this\Box_ptr, w, h) EndMethod() Method(Box,setBackground)(*this.sBox, color.l, edgeColor.l, raisedEffect.l) CBox_setBackground(*this\Box_ptr, color, edgeColor, raisedEffect) EndMethod() Method(Box,setRoundedCorners)(*this.sBox, r1.l, r2.l, r3.l, r4.l) CBox_setRoundedCorners(*this\Box_ptr, r1, r2, r3, r4) EndMethod() Method(Box,getLeftX,.l)(*this.sBox) ProcedureReturn CBox_getLeftX(*this\Box_ptr) EndMethod() Method(Box,getTopY,.l)(*this.sBox) ProcedureReturn CBox_getTopY(*this\Box_ptr) EndMethod() Method(Box,getWidth,.l)(*this.sBox) ProcedureReturn CBox_getWidth(*this\Box_ptr) EndMethod() Method(Box,getHeight,.l)(*this.sBox) ProcedureReturn CBox_getHeight(*this\Box_ptr) EndMethod() Method(Box,getImageCoor,.s)(*this.sBox, offsetX.l, offsetY.l) Protected *p.Ascii = CBox_getImageCoor(*this\Box_ptr, offsetX, offsetY) If *p ProcedureReturn PeekS(*p,-1,#PB_Ascii) EndIf EndMethod() ConstructorInit(Box,DrawObj) baseInit(DrawObj,Box2DrawObj(init)) *this\Box_ptr = init EndConstructorInit() Constructor(Box,DrawObj) AddMethod(Box,setPos) AddMethod(Box,setSize) AddMethod(Box,setBackground) AddMethod(Box,setRoundedCorners) AddMethod(Box,getLeftX) AddMethod(Box,getTopY) AddMethod(Box,getWidth) AddMethod(Box,getHeight) AddMethod(Box,getImageCoor) EndConstructor() Procedure.i New_Box(ptr.BoxInternal) InitInterface(Box,DrawObj,ptr) EndProcedure ;} ;- Class TextBox ;{ Class TextBox Macro pTextBox : i : EndMacro Interface TextBox Extends Box setText(text.s) setAlignment(a.l) setFontStyle(font.s, fontIndex.l = 0) setFontSize(fontHeight.d, fontWidth.d = 0) setFontAngle(angle.d, vertical.cd_bool = #False) setFontColor(color.l) setMargin2(m.l) setMargin(leftMargin.l, rightMargin.l, topMargin.l, bottomMargin.l) setWidth(width.l) setHeight(height.l) setMaxWidth(maxWidth.l) setTruncate(maxWidth.l, maxLines.l = 1) EndInterface Structure sTextBox Extends sBox TextBox_ptr.TextBoxInternal EndStructure Method(TextBox,setText)(*this.sTextBox, text.s) CTextBox_setText(*this\TextBox_ptr, text) EndMethod() Method(TextBox,setAlignment)(*this.sTextBox, a.l) CTextBox_setAlignment(*this\TextBox_ptr, a) EndMethod() Method(TextBox,setFontStyle)(*this.sTextBox, font.s, fontIndex.l) CTextBox_setFontStyle(*this\TextBox_ptr, font, fontIndex) EndMethod() Method(TextBox,setFontSize)(*this.sTextBox, fontHeight.d, fontWidth.d) CTextBox_setFontSize(*this\TextBox_ptr, fontHeight, fontWidth) EndMethod() Method(TextBox,setFontAngle)(*this.sTextBox, angle.d, vertical.cd_bool) CTextBox_setFontAngle(*this\TextBox_ptr, angle, vertical) EndMethod() Method(TextBox,setFontColor)(*this.sTextBox, color.l) CTextBox_setFontColor(*this\TextBox_ptr, color) EndMethod() Method(TextBox,setMargin2)(*this.sTextBox, m.l) CTextBox_setMargin(*this\TextBox_ptr, m) EndMethod() Method(TextBox,setMargin)(*this.sTextBox, leftMargin.l, rightMargin.l, topMargin.l, bottomMargin.l) CTextBox_setMargin2(*this\TextBox_ptr, leftMargin, rightMargin, topMargin, bottomMargin) EndMethod() Method(TextBox,setWidth)(*this.sTextBox, width.l) CTextBox_setWidth(*this\TextBox_ptr, width) EndMethod() Method(TextBox,setHeight)(*this.sTextBox, height.l) CTextBox_setHeight(*this\TextBox_ptr, height) EndMethod() Method(TextBox,setMaxWidth)(*this.sTextBox, maxWidth.l) CTextBox_setMaxWidth(*this\TextBox_ptr, maxWidth) EndMethod() Method(TextBox,setTruncate)(*this.sTextBox, maxWidth.l, maxLines.l) CTextBox_setTruncate(*this\TextBox_ptr, maxWidth, maxLines) EndMethod() ConstructorInit(TextBox,Box) baseInit(Box,TextBox2Box(init)) *this\TextBox_ptr = init EndConstructorInit() Constructor(TextBox,Box) AddMethod(TextBox,setText) AddMethod(TextBox,setAlignment) AddMethod(TextBox,setFontStyle) AddMethod(TextBox,setFontSize) AddMethod(TextBox,setFontAngle) AddMethod(TextBox,setFontColor) AddMethod(TextBox,setMargin) AddMethod(TextBox,setMargin2) AddMethod(TextBox,setWidth) AddMethod(TextBox,setHeight) AddMethod(TextBox,setMaxWidth) AddMethod(TextBox,setTruncate) EndConstructor() Procedure.i New_TextBox(ptr.TextBoxInternal) InitInterface(TextBox,Box,ptr) EndProcedure ;} ; for compatibility with ChartDirector Ver 1.5 C++ code ;Macro TextStyle : TextBox : EndMacro ;- Class Line ;{ Class Line Macro pLine : i : EndMacro Interface Line Extends DrawObj setPos(x1.l, y1.l, x2.l, y2.l) setColor(c.l) setWidth(w.l) EndInterface Structure sLine Extends sDrawObj Line_ptr.LineInternal EndStructure Method(Line,setPos)(*this.sLine, x1.l, y1.l, x2.l, y2.l) CLine_setPos(*this\Line_ptr, x1, y1, x2, y2) EndMethod() Method(Line,setColor)(*this.sLine, c.l) CLine_setColor(*this\Line_ptr, c) EndMethod() Method(Line,setWidth)(*this.sLine, w.l) CLine_setWidth(*this\Line_ptr, w) EndMethod() ConstructorInit(Line,DrawObj) baseInit(DrawObj,Line2DrawObj(init)) *this\Line_ptr = init EndConstructorInit() Constructor(Line,DrawObj) AddMethod(Line,setPos) AddMethod(Line,setColor) AddMethod(Line,setWidth) EndConstructor() Procedure.i New_Line(ptr.LineInternal) InitInterface(Line,DrawObj,ptr) EndProcedure ;} ;- Class CDMLTable ;{ Class CDMLTable Macro pCDMLTable : i : EndMacro Interface CDMLTable Extends DrawObj __makeTextBox.pTextBox(p.TextBoxInternal) setPos(x.l, y.l, alignment.l = #Chart_TopLeft) insertCol.pTextBox(col.l) appendCol.pTextBox() getColCount.l() insertRow.pTextBox(row.l) appendRow.pTextBox() getRowCount.l() setText.pTextBox(col.l, row.l, text.s) setCell.pTextBox(col.l, row.l, width.l, height.l, text.s) getCell.pTextBox(col.l, row.l) getColStyle.pTextBox(col.l) getRowStyle.pTextBox(row.l) getStyle.pTextBox() layout() getColWidth.l(col.l) getRowHeight.l(row.l) getWidth.l() getHeight.l() EndInterface Structure sCDMLTable Extends sDrawObj CDMLTable_ptr.CDMLTableInternal EndStructure Method(CDMLTable,__makeTextBox,.pTextBox)(*this.sCDMLTable, p.TextBoxInternal) If Not p ProcedureReturn 0 EndIf Protected this.CDMLTable = *this Protected RET.TextBox = New( TextBox(p) ) this\reg(RET) ProcedureReturn RET EndMethod() Method(CDMLTable,setPos)(*this.sCDMLTable, x.l, y.l, alignment.l) CCDMLTable_setPos(*this\CDMLTable_ptr, x, y, alignment) EndMethod() Method(CDMLTable,insertCol,.pTextBox)(*this.sCDMLTable, col.l) Protected this.CDMLTable = *this ProcedureReturn this\__makeTextBox(CCDMLTable_insertCol(*this\CDMLTable_ptr, col)) EndMethod() Method(CDMLTable,appendCol,.pTextBox)(*this.sCDMLTable) Protected this.CDMLTable = *this ProcedureReturn this\__makeTextBox(CCDMLTable_appendCol(*this\CDMLTable_ptr)) EndMethod() Method(CDMLTable,getColCount,.l)(*this.sCDMLTable) ProcedureReturn CCDMLTable_getColCount(*this\CDMLTable_ptr) EndMethod() Method(CDMLTable,insertRow,.pTextBox)(*this.sCDMLTable, row.l) Protected this.CDMLTable = *this ProcedureReturn this\__makeTextBox(CCDMLTable_insertRow(*this\CDMLTable_ptr, row)) EndMethod() Method(CDMLTable,appendRow,.pTextBox)(*this.sCDMLTable) Protected this.CDMLTable = *this ProcedureReturn this\__makeTextBox(CCDMLTable_appendRow(*this\CDMLTable_ptr)) EndMethod() Method(CDMLTable,getRowCount,.l)(*this.sCDMLTable) ProcedureReturn CCDMLTable_getRowCount(*this\CDMLTable_ptr) EndMethod() Method(CDMLTable,setText,.pTextBox)(*this.sCDMLTable, col.l, row.l, text.s) Protected this.CDMLTable = *this ProcedureReturn this\__makeTextBox(CCDMLTable_setText(*this\CDMLTable_ptr, col, row, text)) EndMethod() Method(CDMLTable,setCell,.pTextBox)(*this.sCDMLTable, col.l, row.l, width.l, height.l, text.s) Protected this.CDMLTable = *this ProcedureReturn this\__makeTextBox(CCDMLTable_setCell(*this\CDMLTable_ptr, col, row, width, height, text)) EndMethod() Method(CDMLTable,getCell,.pTextBox)(*this.sCDMLTable, col.l, row.l) Protected this.CDMLTable = *this ProcedureReturn this\__makeTextBox(CCDMLTable_getCell(*this\CDMLTable_ptr, col, row)) EndMethod() Method(CDMLTable,getColStyle,.pTextBox)(*this.sCDMLTable, col.l) Protected this.CDMLTable = *this ProcedureReturn this\__makeTextBox(CCDMLTable_getColStyle(*this\CDMLTable_ptr, col)) EndMethod() Method(CDMLTable,getRowStyle,.pTextBox)(*this.sCDMLTable, row.l) Protected this.CDMLTable = *this ProcedureReturn this\__makeTextBox(CCDMLTable_getRowStyle(*this\CDMLTable_ptr, row)) EndMethod() Method(CDMLTable,getStyle,.pTextBox)(*this.sCDMLTable) Protected this.CDMLTable = *this ProcedureReturn this\__makeTextBox(CCDMLTable_getStyle(*this\CDMLTable_ptr)) EndMethod() Method(CDMLTable,layout)(*this.sCDMLTable) CCDMLTable_layout(*this\CDMLTable_ptr) EndMethod() Method(CDMLTable,getColWidth,.l)(*this.sCDMLTable, col.l) ProcedureReturn CCDMLTable_getColWidth(*this\CDMLTable_ptr, col) EndMethod() Method(CDMLTable,getRowHeight,.l)(*this.sCDMLTable, row.l) ProcedureReturn CCDMLTable_getRowHeight(*this\CDMLTable_ptr, row) EndMethod() Method(CDMLTable,getWidth,.l)(*this.sCDMLTable) ProcedureReturn CCDMLTable_getWidth(*this\CDMLTable_ptr) EndMethod() Method(CDMLTable,getHeight,.l)(*this.sCDMLTable) ProcedureReturn CCDMLTable_getHeight(*this\CDMLTable_ptr) EndMethod() ConstructorInit(CDMLTable,DrawObj) baseInit(DrawObj,CDMLTable2DrawObj(init)) *this\CDMLTable_ptr = init EndConstructorInit() Constructor(CDMLTable,DrawObj) AddMethod(CDMLTable,__makeTextBox) AddMethod(CDMLTable,setPos) AddMethod(CDMLTable,insertCol) AddMethod(CDMLTable,appendCol) AddMethod(CDMLTable,getColCount) AddMethod(CDMLTable,insertRow) AddMethod(CDMLTable,appendRow) AddMethod(CDMLTable,getRowCount) AddMethod(CDMLTable,setText) AddMethod(CDMLTable,setCell) AddMethod(CDMLTable,getCell) AddMethod(CDMLTable,getColStyle) AddMethod(CDMLTable,getRowStyle) AddMethod(CDMLTable,getStyle) AddMethod(CDMLTable,layout) AddMethod(CDMLTable,getColWidth) AddMethod(CDMLTable,getRowHeight) AddMethod(CDMLTable,getWidth) AddMethod(CDMLTable,getHeight) EndConstructor() Procedure.i New_CDMLTable(ptr.CDMLTableInternal) InitInterface(CDMLTable,DrawObj,ptr) EndProcedure ;} ;- Class LegendBox ;{ Class LegendBox Macro pLegendBox : i : EndMacro Interface LegendBox Extends TextBox setCols(noOfCols.l) setReverse(b.cd_bool = #True) setLineStyleKey(b.cd_bool = #True) addKey(text.s, color.l, lineWidth.l = 0, drawarea.DrawArea = 0) addKey2(pos.l, text.s, color.l, lineWidth.l = 0, drawarea.DrawArea = 0) setKeySize(width.l, height.l = -1, gap.l = -1) setKeySpacing(keySpacing.l, lineSpacing.l = -1) setKeyBorder(edgeColor.l, raisedEffect.l = 0) getImageCoor2.s(dataItem.l, offsetX.l = 0, offsetY.l = 0) getHTMLImageMap.s(url.s, queryFormat.s = "", extraAttr.s = "", offsetX.l = 0, offsetY.l = 0) EndInterface Structure sLegendBox Extends sTextBox LegendBox_ptr.LegendBoxInternal EndStructure Method(LegendBox,setCols)(*this.sLegendBox, noOfCols.l) CLegendBox_setCols(*this\LegendBox_ptr, noOfCols) EndMethod() Method(LegendBox,setReverse)(*this.sLegendBox, b.cd_bool) CLegendBox_setReverse(*this\LegendBox_ptr, b) EndMethod() Method(LegendBox,setLineStyleKey)(*this.sLegendBox, b.cd_bool) CLegendBox_setLineStyleKey(*this\LegendBox_ptr, b) EndMethod() Method(LegendBox,addKey)(*this.sLegendBox, text.s, color.l, lineWidth.l, drawarea.DrawArea) If drawarea CLegendBox_addKey(*this\LegendBox_ptr, text, color, lineWidth, drawarea\getInternalPtr() ) Else CLegendBox_addKey(*this\LegendBox_ptr, text, color, lineWidth, 0 ) EndIf EndMethod() Method(LegendBox,addKey2)(*this.sLegendBox, pos.l, text.s, color.l, lineWidth.l, drawarea.DrawArea) If drawarea CLegendBox_addKey2(*this\LegendBox_ptr, pos, text, color, lineWidth, drawarea\getInternalPtr() ) Else CLegendBox_addKey2(*this\LegendBox_ptr, pos, text, color, lineWidth, 0 ) EndIf EndMethod() Method(LegendBox,setKeySize)(*this.sLegendBox, width.l, height.l, gap.l) CLegendBox_setKeySize(*this\LegendBox_ptr, width, height, gap) EndMethod() Method(LegendBox,setKeySpacing)(*this.sLegendBox, keySpacing.l, lineSpacing.l) CLegendBox_setKeySpacing(*this\LegendBox_ptr, keySpacing, lineSpacing) EndMethod() Method(LegendBox,setKeyBorder)(*this.sLegendBox, edgeColor.l, raisedEffect.l) CLegendBox_setKeyBorder(*this\LegendBox_ptr, edgeColor, raisedEffect) EndMethod() Method(LegendBox,getImageCoor2,.s)(*this.sLegendBox, dataItem.l, offsetX.l, offsetY.l) Protected *p.Ascii = CLegendBox_getImageCoor(*this\LegendBox_ptr, dataItem, offsetX, offsetY) If *p ProcedureReturn PeekS(*p,-1,#PB_Ascii) EndIf EndMethod() Method(LegendBox,getHTMLImageMap,.s)(*this.sLegendBox, url.s, queryFormat.s, extraAttr.s, offsetX.l, offsetY.l) Protected *p.Ascii = CLegendBox_getHTMLImageMap(*this\LegendBox_ptr, url, queryFormat, extraAttr, offsetX, offsetY) If *p ProcedureReturn PeekS(*p,-1,#PB_Ascii) EndIf EndMethod() ConstructorInit(LegendBox,TextBox) baseInit(TextBox,LegendBox2TextBox(init)) *this\LegendBox_ptr = init EndConstructorInit() Constructor(LegendBox,TextBox) AddMethod(LegendBox,setCols) AddMethod(LegendBox,setReverse) AddMethod(LegendBox,setLineStyleKey) AddMethod(LegendBox,addKey) AddMethod(LegendBox,addKey2) AddMethod(LegendBox,setKeySize) AddMethod(LegendBox,setKeySpacing) AddMethod(LegendBox,setKeyBorder) AddMethod(LegendBox,getImageCoor2) AddMethod(LegendBox,getHTMLImageMap) EndConstructor() Procedure.i New_LegendBox(ptr.LegendBoxInternal) InitInterface(LegendBox,TextBox,ptr) EndProcedure ;} ;- Class BaseChart ;{ Class BaseChart Macro pBaseChart : i : EndMacro Interface BaseChart Extends Object init(ptr.BaseChartInternal) getInternalPtr.BaseChartInternal() enableVectorOutput() ; ////////////////////////////////////////////////////////////////////////////////////// ; // set overall chart ; ////////////////////////////////////////////////////////////////////////////////////// setSize(width.l, height.l) getWidth.l() getHeight.l() setBackground(color.l, edgeColor.l = #Chart_Transparent, raisedEffect.l = 0) setBorder(color.l) setRoundedFrame(extColor.l = $ffffff, r1.l = 10, r2.l = -1, r3.l = -1, r4.l = -1) setWallpaper(img.s) setBgImage(img.s, align.l = #Chart_Center) setDropShadow(color.l = $aaaaaa, offsetX.l = 5, offsetY.l = $7fffffff, blurRadius.l = 5) setTransparentColor(c.l) setAntiAlias(shapeAntiAlias.cd_bool = #True, textAntiAlias.l = #Chart_AutoAntiAlias) setSearchPath(path.s) addTitle.pTextBox(text.s, font.s = "", fontSize.d = 12, fontColor.l = #Chart_TextColor, bgColor.l = #Chart_Transparent, edgeColor.l = #Chart_Transparent) addTitle2.pTextBox(alignment.l, text.s, font.s = "", fontSize.d = 12, fontColor.l = #Chart_TextColor, bgColor.l = #Chart_Transparent, edgeColor.l = #Chart_Transparent) addLegend.pLegendBox(x.l, y.l, vertical.cd_bool = #True, font.s = "", fontSize.d = 10) addLegend2.pLegendBox(x.l, y.l, noOfCols.l, font.s = "", fontSize.d = 10) getLegend.pLegendBox() ; ////////////////////////////////////////////////////////////////////////////////////// ; // drawing primitives ; ////////////////////////////////////////////////////////////////////////////////////// getDrawArea.pDrawArea() addText.pTextBox(x.l, y.l, text.s, font.s = "", fontSize.d = 8, fontColor.l = #Chart_TextColor, alignment.l = #Chart_TopLeft, angle.d = 0, vertical.cd_bool = #False) addLine.pLine(x1.l, y1.l, x2.l, y2.l, color.l = #Chart_LineColor, lineWidth.l = 1) addTable.pCDMLTable(x.l, y.l, alignment.l, col.l, row.l) addExtraField(*texts.Integer, textsLen.l) addExtraField2(*numbers.Double, numbersLen.l) ; ////////////////////////////////////////////////////////////////////////////////////// ; // color management methods ; ////////////////////////////////////////////////////////////////////////////////////// setColor(paletteEntry.l, color.l) ;setColors(paletteEntry.l, colors.int) setColors(paletteEntry.l, *colorsData.Long, colorsDataLen.l) ;setColors(colors.int) setColors2(*colorsData.Long, colorsDataLen.l) setColors3(*colors.Long) getColor.l(paletteEntry.l) halfColor.l(c.l) adjustBrightness.l(c.l, brightness.d) dashLineColor.l(color.l, patternCode.l = #Chart_DashLine) ;patternColor.l(c.int, w.l, h.l, startX.l = 0, startY.l = 0) patternColor.l(*colorArray.Long, colorArrayLen.l, height.l, startX.l = 0, startY.l = 0) patternColor2.l(filename.s, startX.l = 0, startY.l = 0) gradientColor.l(startX.l, startY.l, endX.l, endY.l, startColor.l, endColor.l) gradientColor2.l(*colorArray.Long, colorArrayLen.l, angle.d = 90, scale.d = 1.0, startX.l = 1, startY.l = 1) gradientColor3.l(*c.Long, angle.d = 90, scale.d = 1, startX.l = 0, startY.l = 0) linearGradientColor.l(startX.l, startY.l, endX.l, endY.l, startColor.l, endColor.l, periodic.cd_bool = #False) linearGradientColor2.l(startX.l, startY.l, endX.l, endY.l, *colors.Long, colorsLen.l, periodic.cd_bool = #False) radialGradientColor.l(cx.l, cy.l, rx.l, ry.l, startColor.l, endColor.l, periodic.cd_bool = #False) radialGradientColor2.l(cx.l, cy.l, rx.l, ry.l, *colors.Long, colorsLen.l, periodic.cd_bool = #False) ; ////////////////////////////////////////////////////////////////////////////////////// ; // locale support ; ////////////////////////////////////////////////////////////////////////////////////// setDefaultFonts(normal.s, bold.s = "", italic.s = "", boldItalic.s = "") setFontTable(index.l, font.s) setNumberFormat(thousandSeparator.a = '~', decimalPointChar.a = '.', signChar.a = '-') setMonthNames(*names.Integer, namesLen.l) setWeekDayNames(*names.Integer, namesLen.l) setAMPM(am.s, pm.s) formatValue.s(value.d, formatString.s) ; ////////////////////////////////////////////////////////////////////////////////////// ; // chart creation methods ; ////////////////////////////////////////////////////////////////////////////////////// layoutLegend.pLegendBox() layout() makeChart.cd_bool(filename.s) makeChart2.cd_bool(format.l, *_data_.Integer, *len.Long) ;makeChart.pMemBlock(format.l) makeChart3.pDrawArea() ; PB specific catchChart.i(imageNr.i = #PB_Any) ; ////////////////////////////////////////////////////////////////////////////////////// ; // image map support ; ////////////////////////////////////////////////////////////////////////////////////// getHTMLImageMap.s(url.s, queryFormat.s = "", extraAttr.s = "", offsetX.l = 0, offsetY.l = 0) getChartMetrics.s() ; // ; // Ver 5.1 ; // getAbsOffsetX.l() getAbsOffsetY.l() initDynamicLayer.pDrawArea() removeDynamicLayer() getJsChartModel.s(options.s = "") EndInterface Structure sBaseChart Extends sObject BaseChart_ptr.BaseChartInternal ;BaseChart_refCount.l BaseChart_dynamicLayerCache.DrawArea EndStructure Method(BaseChart,init)(*this.sBaseChart, ptr.BaseChartInternal) *this\BaseChart_ptr = ptr EndMethod() Method(BaseChart,getInternalPtr,.BaseChartInternal)(*this.sBaseChart) ProcedureReturn *this\BaseChart_ptr EndMethod() Method(BaseChart,enableVectorOutput)(*this.sBaseChart) CBaseChart_enableVectorOutput(*this\BaseChart_ptr) EndMethod() Method(BaseChart,setSize)(*this.sBaseChart, width.l, height.l) CBaseChart_setSize(*this\BaseChart_ptr, width, height) EndMethod() Method(BaseChart,getWidth,.l)(*this.sBaseChart) ProcedureReturn CBaseChart_getWidth(*this\BaseChart_ptr) EndMethod() Method(BaseChart,getHeight,.l)(*this.sBaseChart) ProcedureReturn CBaseChart_getHeight(*this\BaseChart_ptr) EndMethod() Method(BaseChart,setBackground)(*this.sBaseChart, color.l, edgeColor.l, raisedEffect.l) CBaseChart_setBackground(*this\BaseChart_ptr, color, edgeColor, raisedEffect) EndMethod() Method(BaseChart,setBorder)(*this.sBaseChart, color.l) CBaseChart_setBorder(*this\BaseChart_ptr, color) EndMethod() Method(BaseChart,setRoundedFrame)(*this.sBaseChart, extColor.l, r1.l, r2.l, r3.l, r4.l) CBaseChart_setRoundedFrame(*this\BaseChart_ptr, extColor, r1, r2, r3, r4) EndMethod() Method(BaseChart,setWallpaper)(*this.sBaseChart, img.s) CBaseChart_setWallpaper(*this\BaseChart_ptr, img) EndMethod() Method(BaseChart,setBgImage)(*this.sBaseChart, img.s, align.l) CBaseChart_setBgImage(*this\BaseChart_ptr, img, align) EndMethod() Method(BaseChart,setDropShadow)(*this.sBaseChart, color.l, offsetX.l, offsetY.l, blurRadius.l) CBaseChart_setDropShadow(*this\BaseChart_ptr, color, offsetX, offsetY, blurRadius) EndMethod() Method(BaseChart,setTransparentColor)(*this.sBaseChart, c.l) CBaseChart_setTransparentColor(*this\BaseChart_ptr, c) EndMethod() Method(BaseChart,setAntiAlias)(*this.sBaseChart, shapeAntiAlias.cd_bool, textAntiAlias.l) CBaseChart_setAntiAlias(*this\BaseChart_ptr, shapeAntiAlias, textAntiAlias) EndMethod() Method(BaseChart,setSearchPath)(*this.sBaseChart, path.s) CBaseChart_setSearchPath(*this\BaseChart_ptr, path) EndMethod() Method(BaseChart,addTitle,.pTextBox)(*this.sBaseChart, text.s, font.s, fontSize.d, fontColor.l, bgColor.l, edgeColor.l) Protected RET.TextBox = New( TextBox(CBaseChart_addTitle(*this\BaseChart_ptr, text, font, fontSize, fontColor, bgColor, edgeColor)) ) Protected this.BaseChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(BaseChart,addTitle2,.pTextBox)(*this.sBaseChart, alignment.l, text.s, font.s, fontSize.d, fontColor.l, bgColor.l, edgeColor.l) Protected RET.TextBox = New ( TextBox(CBaseChart_addTitle2(*this\BaseChart_ptr, alignment, text, font, fontSize, fontColor, bgColor, edgeColor)) ) Protected this.BaseChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(BaseChart,addLegend,.pLegendBox)(*this.sBaseChart, x.l, y.l, vertical.cd_bool, font.s, fontSize.d) Protected RET.LegendBox = New ( LegendBox(CBaseChart_addLegend(*this\BaseChart_ptr, x, y, vertical, font, fontSize)) ) Protected this.BaseChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(BaseChart,addLegend2,.pLegendBox)(*this.sBaseChart, x.l, y.l, noOfCols.l, font.s, fontSize.d) Protected RET.LegendBox = New ( LegendBox(CBaseChart_addLegend2(*this\BaseChart_ptr, x, y, noOfCols, font, fontSize)) ) Protected this.BaseChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(BaseChart,getLegend,.pLegendBox)(*this.sBaseChart) Protected RET.LegendBox = New( LegendBox(CBaseChart_getLegend(*this\BaseChart_ptr)) ) Protected this.BaseChart = *this this\reg(RET) ProcedureReturn RET EndMethod() ; Top Profile Reply With quote ; ; Oliver13 ; Post subject: Re: ChartDirector - Professional charts For PBPostPosted: Thu Apr 06, 2017 8:56 pm ; Offline ; User ; User ; ; Joined: Thu Sep 30, 2010 6:40 am ; Posts: 51 ; Chartdirector.pbi Part 5 ; Code: Method(BaseChart,getDrawArea,.pDrawArea)(*this.sBaseChart) Protected RET.DrawArea = New( DrawArea(CBaseChart_getDrawArea(*this\BaseChart_ptr)) ) Protected this.BaseChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(BaseChart,addText,.pTextBox)(*this.sBaseChart, x.l, y.l, text.s, font.s, fontSize.d, fontColor.l, alignment.l, angle.d, vertical.cd_bool) Protected RET.TextBox = New( TextBox(CBaseChart_addText(*this\BaseChart_ptr, x, y, text, font, fontSize, fontColor, alignment, angle, vertical)) ) Protected this.BaseChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Structure sSector Extends sObject Sector_ptr.SectorInternal EndStructure Constructor(Sector,Object) AddMethod(Sector,setExplode) AddMethod(Sector,setLabelFormat) AddMethod(Sector,setLabelStyle) AddMethod(Sector,setLabelPos) AddMethod(Sector,setLabelLayout) AddMethod(Sector,setJoinLine) AddMethod(Sector,setColor) AddMethod(Sector,setStyle) AddMethod(Sector,getImageCoor) AddMethod(Sector,getLabelCoor) EndConstructor() Procedure.i New_Sector(ptr.SectorInternal) InitInterface(Sector,Object,ptr) EndProcedure ;} ;- Class PieChart ;{ Class PieChart Macro pPieChart : i : EndMacro Interface PieChart Extends BaseChart setPieSize(x.l, y.l, r.l) setDonutSize(x.l, y.l, r.l, r2.l) set3D(depth.l = -1, angle.d = -1, shadowMode.cd_bool = #False) set3D2(*depths.Double, depthsLen.l, angle.d = 45, shadowMode.cd_bool = #False) setSectorStyle(shadingMethod.l, edgeColor.l = -1, edgeWidth.l = -1) setStartAngle(startAngle.d, clockWise.cd_bool = #True) setExplode(sectorNo.l = -1, distance.l = -1) setExplodeGroup(startSector.l, endSector.l, distance.l = -1) setLabelFormat(formatString.s) setLabelStyle.pTextBox(font.s = "", fontSize.d = 8, fontColor.l = #Chart_TextColor) setLabelPos(pos.l, joinLineColor.l = -1) setLabelLayout(layoutMethod.l, pos.l = -1, topBound.l = -1, bottomBound.l = -1) setJoinLine(joinLineColor.l, joinLineWidth.l = 1) setLineColor(edgeColor.l, joinLineColor.l = -1) setData(*ddata.double, ddataLen.l, *labels.Integer = 0, labelsLen.l = 0) getSector.pSector(sectorNo.l) sector.pSector(sectorNo.l) EndInterface Structure sPieChart Extends sBaseChart PieChart_ptr.PieChartInternal EndStructure Method(PieChart,setPieSize)(*this.sPieChart, x.l, y.l, r.l) CPieChart_setPieSize(*this\PieChart_ptr, x, y, r) EndMethod() Method(PieChart,setDonutSize)(*this.sPieChart, x.l, y.l, r.l, r2.l) CPieChart_setDonutSize(*this\PieChart_ptr, x, y, r, r2) EndMethod() Method(PieChart,set3D)(*this.sPieChart, depth.l, angle.d, shadowMode.cd_bool) CPieChart_set3D(*this\PieChart_ptr, depth, angle, shadowMode) EndMethod() Method(PieChart,set3D2)(*this.sPieChart, *depths.Double, depthsLen.l, angle.d, shadowMode.cd_bool) CPieChart_set3D2(*this\PieChart_ptr, *depths, depthsLen, angle, shadowMode) EndMethod() Method(PieChart,setSectorStyle)(*this.sPieChart, shadingMethod.l, edgeColor.l, edgeWidth.l) CPieChart_setSectorStyle(*this\PieChart_ptr, shadingMethod, edgeColor, edgeWidth) EndMethod() Method(PieChart,setStartAngle)(*this.sPieChart, startAngle.d, clockWise.cd_bool) CPieChart_setStartAngle(*this\PieChart_ptr, startAngle, clockWise) EndMethod() Method(PieChart,setExplode)(*this.sPieChart, sectorNo.l, distance.l) CPieChart_setExplode(*this\PieChart_ptr, sectorNo, distance) EndMethod() Method(PieChart,setExplodeGroup)(*this.sPieChart, startSector.l, endSector.l, distance.l) CPieChart_setExplodeGroup(*this\PieChart_ptr, startSector, endSector, distance) EndMethod() Method(PieChart,setLabelFormat)(*this.sPieChart, formatString.s) CPieChart_setLabelFormat(*this\PieChart_ptr, formatString) EndMethod() Method(PieChart,setLabelStyle,.pTextBox)(*this.sPieChart, font.s, fontSize.d, fontColor.l) Protected RET.TextBox = New( TextBox(CPieChart_setLabelStyle(*this\PieChart_ptr, font, fontSize, fontColor)) ) Protected this.PieChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(PieChart,setLabelPos)(*this.sPieChart, pos.l, joinLineColor.l) CPieChart_setLabelPos(*this\PieChart_ptr, pos, joinLineColor) EndMethod() Method(PieChart,setLabelLayout)(*this.sPieChart, layoutMethod.l, pos.l, topBound.l, bottomBound.l) CPieChart_setLabelLayout(*this\PieChart_ptr, layoutMethod, pos, topBound, bottomBound) EndMethod() Method(PieChart,setJoinLine)(*this.sPieChart, joinLineColor.l, joinLineWidth.l) CPieChart_setJoinLine(*this\PieChart_ptr, joinLineColor, joinLineWidth) EndMethod() Method(PieChart,setLineColor)(*this.sPieChart, edgeColor.l, joinLineColor.l) CPieChart_setLineColor(*this\PieChart_ptr, edgeColor, joinLineColor) EndMethod() Method(PieChart,setData)(*this.sPieChart, *ddata.double, ddataLen.l, *labels.Integer = 0, labelsLen.l = 0) CPieChart_setData(*this\PieChart_ptr, *ddata, ddataLen, *labels, labelsLen) EndMethod() ; Method(PieChart,setData)(*this.sPieChart, _data_.DoubleArray, labels.StringArray) ; ; CPieChart_setData(*this\PieChart_ptr, data.data, data.len, labels.data, labels.len); ; EndMethod() Method(PieChart,getSector,.pSector)(*this.sPieChart, sectorNo.l) Protected p.SectorInternal = CPieChart_sector(*this\PieChart_ptr, sectorNo) If p Protected RET.Sector = New( Sector(p) ) Protected this.PieChart = *this this\reg(RET) ProcedureReturn RET EndIf EndMethod() Method(PieChart,sector,.pSector)(*this.sPieChart, sectorNo.l) Protected this.PieChart = *this ProcedureReturn this\getSector(sectorNo) EndMethod() Constructor(PieChart,BaseChart) AddMethod(PieChart,setPieSize) AddMethod(PieChart,setDonutSize) AddMethod(PieChart,set3D) AddMethod(PieChart,set3D2) AddMethod(PieChart,setSectorStyle) AddMethod(PieChart,setStartAngle) AddMethod(PieChart,setExplode) AddMethod(PieChart,setExplodeGroup) AddMethod(PieChart,setLabelFormat) AddMethod(PieChart,setLabelStyle) AddMethod(PieChart,setLabelPos) AddMethod(PieChart,setLabelLayout) AddMethod(PieChart,setJoinLine) AddMethod(PieChart,setLineColor) AddMethod(PieChart,setData) ;AddMethod(PieChart,setData) AddMethod(PieChart,getSector) AddMethod(PieChart,sector) EndConstructor() Procedure.i New_PieChart(width.l, height.l, bgColor.l = #Chart_BackgroundColor, edgeColor.l = #Chart_Transparent, raisedEffect.l = 0) InitInterface_NoReturn(PieChart,BaseChart) Protected this.PieChart = *this *this\PieChart_ptr = CPieChart_create(width, height, bgColor, edgeColor, raisedEffect) this\init(PieChart2BaseChart(*this\PieChart_ptr)) ProcedureReturn *this EndProcedure ;} Macro LineObj : i : EndMacro ;- Class Mark ;{ Class Mark Macro pMark : i : EndMacro Interface Mark Extends TextBox setValue(value.d) setMarkColor(lineColor.l, textColor.l = -1, tickColor.l = -1) setLineWidth(w.l) setDrawOnTop(b.cd_bool) getLine.LineObj() EndInterface Structure sMark Extends sTextBox Mark_ptr.MarkInternal EndStructure Method(Mark,setValue)(*this.sMark, value.d) CMark_setValue(*this\Mark_ptr, value) EndMethod() Method(Mark,setMarkColor)(*this.sMark, lineColor.l, textColor.l, tickColor.l) CMark_setMarkColor(*this\Mark_ptr, lineColor, textColor, tickColor) EndMethod() Method(Mark,setLineWidth)(*this.sMark, w.l) CMark_setLineWidth(*this\Mark_ptr, w) EndMethod() Method(Mark,setDrawOnTop)(*this.sMark, b.cd_bool) CMark_setDrawOnTop(*this\Mark_ptr, b) EndMethod() Method(Mark,getLine,.LineObj)(*this.sMark) ProcedureReturn CMark_getLine(*this\Mark_ptr) EndMethod() ConstructorInit(Mark,TextBox) baseInit(TextBox,Mark2TextBox(init)) *this\Mark_ptr = init EndConstructorInit() Constructor(Mark,TextBox) AddMethod(Mark,setValue) AddMethod(Mark,setMarkColor) AddMethod(Mark,setLineWidth) AddMethod(Mark,setDrawOnTop) AddMethod(Mark,getLine) EndConstructor() Procedure.i New_Mark(ptr.MarkInternal) InitInterface(Mark,TextBox,ptr) EndProcedure ;} ;- Class Axis ;{ Class Axis Macro pAxis : i : EndMacro Interface Axis Extends Object getInternalPtr.AxisInternal() setLabelStyle.pTextBox(font.s = "", fontSize.d = 8, fontColor.l = #Chart_TextColor, fontAngle.d = 0) setLabelFormat(formatString.s) setLabelGap(d.l) setMultiFormat2(filter1.l, format1.s, filter2.l, format2.s, labelSpan.l = 1, promoteFirst.cd_bool = #True) setMultiFormat(filterId.l, formatString.s, labelSpan.l = 1, promoteFirst.cd_bool = #True) setFormatCondition(condition.s, operand.d = 0) setTitle.pTextBox(text.s, font.s = "", fontSize.d = 8, fontColor.l = #Chart_TextColor) setTitlePos(alignment.l, titleGap.l = 3) setColors(axisColor.l, labelColor.l = #Chart_TextColor, titleColor.l = -1, tickColor.l = -1) setTickLength(majorTickLen.l) setTickLength2(majorTickLen.l, minorTickLen.l) setTickWidth(majorTickWidth.l, minorTickWidth.l = -1) setTickColor(majorTickColor.l, minorTickColor.l = -1) setWidth(width.l) setLength(length.l) setOffset(x.l, y.l) setAngle(startAngle.d) setMargin(topMargin.l, bottomMargin.l = 0) setIndent(indent.cd_bool) setTickOffset(offset.d) setLabelOffset(offset.d) setAutoScale(topExtension.d = 0.1, bottomExtension.d = 0.1, zeroAffinity.d = 0.8) setRounding(roundMin.cd_bool, roundMax.cd_bool) setTickDensity(majorTickSpacing.l, minorTickSpacing.l = -1) setReverse(b.cd_bool = #True) setMinTickInc(INC.d) setLabels.pTextBox(*labels.Integer, labelsLen.l) setLabels2.pTextBox(*labels.Double, labelsLen.l, formatString.s = "") makeLabelTable.pCDMLTable() getLabelTable.pCDMLTable() setLabelStep(majorTickStep.l, minorTickStep.l = 0, majorTickOffset.l = 0, minorTickOffset.l = -$7fffffff) setLinearScale(lowerLimit.d, upperLimit.d, majorTickInc.d = 0, minorTickInc.d = 0) setLinearScale2(lowerLimit.d, upperLimit.d, *labels.Integer, labelsLen.l) setLinearScale3(formatString.s = "") setLogScale(lowerLimit.d, upperLimit.d, majorTickInc.d = 0, minorTickInc.d = 0) setLogScale2(lowerLimit.d, upperLimit.d, *labels.Integer, labelsLen.l) setLogScale3(formatString.s = "") setDateScale(lowerLimit.d, upperLimit.d, majorTickInc.d = 0, minorTickInc.d = 0) setDateScale2(lowerLimit.d, upperLimit.d, *labels.Integer, labelsLen.l) setDateScale3(formatString.s = "") syncAxis(axis.Axis, slope.d = 1, intercept.d = 0) copyAxis(axis.Axis) addLabel(pos.d, label.s) addMark.pMark(value.d, lineColor.l, text.s = "", font.s = "", fontSize.d = 8) addZone(startValue.d, endValue.d, color.l) getCoor.l(v.d) getX.l() getY.l() getAlignment.l() getMinValue.d() getMaxValue.d() getThickness.l() getTicks(Array DoubleArray.d(1)) getLabel.s(i.d) getFormattedLabel.s(v.d, formatString.s = "") getAxisImageMap.s(noOfSegments.l, mapWidth.l, url.s, queryFormat.s = "", extraAttr.s = "", offsetX.l = 0, offsetY.l = 0) getHTMLImageMap.s(url.s, queryFormat.s = "", extraAttr.s = "", offsetX.l = 0, offsetY.l = 0) EndInterface Structure sAxis Extends sObject Axis_ptr.AxisInternal EndStructure Method(Axis,getInternalPtr,.AxisInternal)(*this.sAxis) ProcedureReturn *this\Axis_ptr EndMethod() Method(Axis,setLabelStyle,.pTextBox)(*this.sAxis, font.s, fontSize.d, fontColor.l, fontAngle.d) Protected RET.TextBox = New( TextBox(CAxis_setLabelStyle(*this\Axis_ptr, font, fontSize, fontColor, fontAngle)) ) Protected this.Axis = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(Axis,setLabelFormat)(*this.sAxis, formatString.s) CAxis_setLabelFormat(*this\Axis_ptr, formatString) EndMethod() Method(Axis,setLabelGap)(*this.sAxis, d.l) CAxis_setLabelGap(*this\Axis_ptr, d) EndMethod() Method(Axis,setMultiFormat2)(*this.sAxis, filter1.l, format1.s, filter2.l, format2.s, labelSpan.l, promoteFirst.cd_bool) CAxis_setMultiFormat(*this\Axis_ptr, filter1, format1, filter2, format2, labelSpan, promoteFirst) EndMethod() Method(Axis,setMultiFormat)(*this.sAxis, filterId.l, formatString.s, labelSpan.l, promoteFirst.cd_bool) CAxis_setMultiFormat2(*this\Axis_ptr, filterId, formatString, labelSpan, promoteFirst) EndMethod() Method(Axis,setFormatCondition)(*this.sAxis, condition.s, operand.d) CAxis_setFormatCondition(*this\Axis_ptr, condition, operand) EndMethod() Method(Axis,setTitle,.pTextBox)(*this.sAxis, text.s, font.s, fontSize.d, fontColor.l) Protected RET.TextBox = New( TextBox(CAxis_setTitle(*this\Axis_ptr, text, font, fontSize, fontColor)) ) Protected this.Axis = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(Axis,setTitlePos)(*this.sAxis, alignment.l, titleGap.l) CAxis_setTitlePos(*this\Axis_ptr, alignment, titleGap) EndMethod() Method(Axis,setColors)(*this.sAxis, axisColor.l, labelColor.l, titleColor.l, tickColor.l) CAxis_setColors(*this\Axis_ptr, axisColor, labelColor, titleColor, tickColor) EndMethod() Method(Axis,setTickLength)(*this.sAxis, majorTickLen.l) CAxis_setTickLength(*this\Axis_ptr, majorTickLen) EndMethod() Method(Axis,setTickLength2)(*this.sAxis, majorTickLen.l, minorTickLen.l) CAxis_setTickLength2(*this\Axis_ptr, majorTickLen, minorTickLen) EndMethod() Method(Axis,setTickWidth)(*this.sAxis, majorTickWidth.l, minorTickWidth.l) CAxis_setTickWidth(*this\Axis_ptr, majorTickWidth, minorTickWidth) EndMethod() Method(Axis,setTickColor)(*this.sAxis, majorTickColor.l, minorTickColor.l) CAxis_setTickColor(*this\Axis_ptr, majorTickColor, minorTickColor) EndMethod() Method(Axis,setWidth)(*this.sAxis, width.l) CAxis_setWidth(*this\Axis_ptr, width) EndMethod() Method(Axis,setLength)(*this.sAxis, length.l) CAxis_setLength(*this\Axis_ptr, length) EndMethod() Method(Axis,setOffset)(*this.sAxis, x.l, y.l) CAxis_setOffset(*this\Axis_ptr, x, y) EndMethod() Method(Axis,setAngle)(*this.sAxis, startAngle.d) CAxis_setAngle(*this\Axis_ptr, startAngle) EndMethod() Method(Axis,setMargin)(*this.sAxis, topMargin.l, bottomMargin.l) CAxis_setMargin(*this\Axis_ptr, topMargin, bottomMargin) EndMethod() Method(Axis,setIndent)(*this.sAxis, indent.cd_bool) CAxis_setIndent(*this\Axis_ptr, indent) EndMethod() Method(Axis,setTickOffset)(*this.sAxis, offset.d) CAxis_setTickOffset(*this\Axis_ptr, offset) EndMethod() Method(Axis,setLabelOffset)(*this.sAxis, offset.d) CAxis_setLabelOffset(*this\Axis_ptr, offset) EndMethod() Method(Axis,setAutoScale)(*this.sAxis, topExtension.d, bottomExtension.d, zeroAffinity.d) CAxis_setAutoScale(*this\Axis_ptr, topExtension, bottomExtension, zeroAffinity) EndMethod() Method(Axis,setRounding)(*this.sAxis, roundMin.cd_bool, roundMax.cd_bool) CAxis_setRounding(*this\Axis_ptr, roundMin, roundMax) EndMethod() Method(Axis,setTickDensity)(*this.sAxis, majorTickSpacing.l, minorTickSpacing.l) CAxis_setTickDensity(*this\Axis_ptr, majorTickSpacing, minorTickSpacing) EndMethod() Method(Axis,setReverse)(*this.sAxis, b.cd_bool) CAxis_setReverse(*this\Axis_ptr, b) EndMethod() Method(Axis,setMinTickInc)(*this.sAxis, INC.d) CAxis_setMinTickInc(*this\Axis_ptr, INC) EndMethod() Method(Axis,setLabels,.pTextBox)(*this.sAxis, *labels.Integer, labelsLen.l) Protected RET.TextBox = New( TextBox(CAxis_setLabels(*this\Axis_ptr, *labels, labelsLen)) ) Protected this.Axis = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(Axis,setLabels2,.pTextBox)(*this.sAxis, *labels.Double, labelsLen.l, formatString.s) Protected RET.TextBox = New( TextBox(CAxis_setLabels2(*this\Axis_ptr, *labels, labelsLen, formatString)) ) Protected this.Axis = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(Axis,makeLabelTable,.pCDMLTable)(*this.sAxis) Protected RET.CDMLTable = New( CDMLTable(CAxis_makeLabelTable(*this\Axis_ptr)) ) Protected this.Axis = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(Axis,getLabelTable,.pCDMLTable)(*this.sAxis) Protected p.CDMLTableInternal = CAxis_getLabelTable(*this\Axis_ptr) If p Protected RET.CDMLTable = New( CDMLTable(p) ) Protected this.Axis = *this this\reg(RET) ProcedureReturn RET EndIf EndMethod() Method(Axis,setLabelStep)(*this.sAxis, majorTickStep.l, minorTickStep.l, majorTickOffset.l, minorTickOffset.l) CAxis_setLabelStep(*this\Axis_ptr, majorTickStep, minorTickStep, majorTickOffset, minorTickOffset) EndMethod() Method(Axis,setLinearScale)(*this.sAxis, lowerLimit.d, upperLimit.d, majorTickInc.d, minorTickInc.d) CAxis_setLinearScale(*this\Axis_ptr, lowerLimit, upperLimit, majorTickInc, minorTickInc) EndMethod() Method(Axis,setLinearScale2)(*this.sAxis, lowerLimit.d, upperLimit.d, *labels.Integer, labelsLen.l) CAxis_setLinearScale2(*this\Axis_ptr, lowerLimit, upperLimit, *labels, labelsLen) EndMethod() Method(Axis,setLinearScale3)(*this.sAxis, formatString.s) CAxis_setLinearScale3(*this\Axis_ptr, formatString) EndMethod() Method(Axis,setLogScale)(*this.sAxis, lowerLimit.d, upperLimit.d, majorTickInc.d, minorTickInc.d) CAxis_setLogScale(*this\Axis_ptr, lowerLimit, upperLimit, majorTickInc, minorTickInc) EndMethod() Method(Axis,setLogScale2)(*this.sAxis, lowerLimit.d, upperLimit.d, *labels.Integer, labelsLen.l) CAxis_setLogScale2(*this\Axis_ptr, lowerLimit, upperLimit, *labels, labelsLen) EndMethod() Method(Axis,setLogScale3)(*this.sAxis, formatString.s) CAxis_setLogScale3(*this\Axis_ptr, formatString) EndMethod() Method(Axis,setDateScale)(*this.sAxis, lowerLimit.d, upperLimit.d, majorTickInc.d, minorTickInc.d) CAxis_setDateScale(*this\Axis_ptr, lowerLimit, upperLimit, majorTickInc, minorTickInc) EndMethod() Method(Axis,setDateScale2)(*this.sAxis, lowerLimit.d, upperLimit.d, *labels.Integer, labelsLen.l) CAxis_setDateScale2(*this\Axis_ptr, lowerLimit, upperLimit, *labels, labelsLen) EndMethod() Method(Axis,setDateScale3)(*this.sAxis, formatString.s) CAxis_setDateScale3(*this\Axis_ptr, formatString) EndMethod() Method(Axis,syncAxis)(*this.sAxis, axis.Axis, slope.d, intercept.d) If axis CAxis_syncAxis(*this\Axis_ptr, axis\getInternalPtr(), slope, intercept) EndIf EndMethod() Method(Axis,copyAxis)(*this.sAxis, axis.Axis) If axis CAxis_copyAxis(*this\Axis_ptr, axis\getInternalPtr()) EndIf EndMethod() Method(Axis,addLabel)(*this.sAxis, pos.d, label.s) CAxis_addLabel(*this\Axis_ptr, pos, label) EndMethod() Method(Axis,addMark,.pMark)(*this.sAxis, value.d, lineColor.l, text.s, font.s, fontSize.d) Protected RET.Mark = New( Mark(CAxis_addMark(*this\Axis_ptr, value, lineColor, text, font, fontSize)) ) Protected this.Axis = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(BaseChart,addLine,.pLine)(*this.sBaseChart, x1.l, y1.l, x2.l, y2.l, color.l, lineWidth.l) Protected RET.Line = New( Line(CBaseChart_addLine(*this\BaseChart_ptr, x1, y1, x2, y2, color, lineWidth)) ) Protected this.BaseChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(BaseChart,addTable,.pCDMLTable)(*this.sBaseChart, x.l, y.l, alignment.l, col.l, row.l) Protected RET.CDMLTable = New( CDMLTable(CBaseChart_addTable(*this\BaseChart_ptr, x, y, alignment, col, row)) ) Protected this.BaseChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(BaseChart,addExtraField)(*this.sBaseChart, *texts.Integer, textsLen.l) CBaseChart_addExtraField(*this\BaseChart_ptr, *texts, textsLen) EndMethod() Method(BaseChart,addExtraField2)(*this.sBaseChart, *numbers.Double, numbersLen.l) CBaseChart_addExtraField2(*this\BaseChart_ptr, *numbers, numbersLen) EndMethod() Method(BaseChart,setColor)(*this.sBaseChart, paletteEntry.l, color.l) Protected this.BaseChart = *this this\setColors(paletteEntry, @color, 1) EndMethod() Method(BaseChart,setColors)(*this.sBaseChart, paletteEntry.l, *colorsData.Long, colorsDataLen.l) CBaseChart_setColors(*this\BaseChart_ptr, paletteEntry, *colorsData, colorsDataLen) EndMethod() Method(BaseChart,setColors3)(*this.sBaseChart, *colors.Long) Protected i For i = 0 To $FFFF If PeekL(*colors + i * 4 ) = -1 CBaseChart_setColors(*this\BaseChart_ptr, 0, *colors, i) ProcedureReturn EndIf Next EndMethod() Method(BaseChart,setColors2)(*this.sBaseChart, *colorsData.Long, colorsDataLen.l) CBaseChart_setColors(*this\BaseChart_ptr, 0, *colorsData, colorsDataLen) EndMethod() Method(BaseChart,getColor,.l)(*this.sBaseChart, paletteEntry.l) ProcedureReturn CBaseChart_getColor(*this\BaseChart_ptr, paletteEntry) EndMethod() Method(BaseChart,halfColor,.l)(*this.sBaseChart, c.l) ProcedureReturn CBaseChart_halfColor(*this\BaseChart_ptr, c) EndMethod() Method(BaseChart,adjustBrightness,.l)(*this.sBaseChart, c.l, brightness.d) ProcedureReturn CBaseChart_adjustBrightness(*this\BaseChart_ptr, c, brightness) EndMethod() Method(BaseChart,dashLineColor,.l)(*this.sBaseChart, color.l, patternCode.l) ProcedureReturn CBaseChart_dashLineColor(*this\BaseChart_ptr, color, patternCode) EndMethod() ; Method(BaseChart,patternColor,.l)(*this.sBaseChart, c.int, w.l, h.l, startX.l, startY.l) ; ; ProcedureReturn patternColor(IntArray(c, w * h), startX, startY); ; EndMethod() Method(BaseChart,patternColor,.l)(*this.sBaseChart, *colorArray.Long, colorArrayLen.l, height.l, startX.l, startY.l) ProcedureReturn CBaseChart_patternColor(*this\BaseChart_ptr, *colorArray, colorArrayLen, height, startX, startY) EndMethod() Method(BaseChart,patternColor2,.l)(*this.sBaseChart, filename.s, startX.l, startY.l) ProcedureReturn CBaseChart_patternColor2(*this\BaseChart_ptr, filename, startX, startY) EndMethod() Method(BaseChart,gradientColor,.l)(*this.sBaseChart, startX.l, startY.l, endX.l, endY.l, startColor.l, endColor.l) ProcedureReturn CBaseChart_gradientColor(*this\BaseChart_ptr, startX, startY, endX, endY, startColor, endColor) EndMethod() Method(BaseChart,gradientColor2,.l)(*this.sBaseChart, *colorArray.Long, colorArrayLen.l, angle.d, scale.d, startX.l, startY.l) ProcedureReturn CBaseChart_gradientColor2(*this\BaseChart_ptr, *colorArray, colorArrayLen, angle, scale, startX, startY) EndMethod() Method(BaseChart,gradientColor3,.l)(*this.sBaseChart, *c.Long, angle.d, scale.d, startX.l, startY.l) ProcedureReturn CBaseChart_gradientColor2a(*this\BaseChart_ptr, *c, angle, scale, startX, startY) EndMethod() Method(BaseChart,linearGradientColor,.l)(*this.sBaseChart, startX.l, startY.l, endX.l, endY.l, startColor.l, endColor.l, periodic.cd_bool) ProcedureReturn CBaseChart_linearGradientColor(*this\BaseChart_ptr, startX, startY, endX, endY, startColor, endColor, periodic) EndMethod() Method(BaseChart,linearGradientColor2,.l)(*this.sBaseChart, startX.l, startY.l, endX.l, endY.l, *colors.Long, colorsLen.l, periodic.cd_bool) ProcedureReturn CBaseChart_linearGradientColor2(*this\BaseChart_ptr, startX, startY, endX, endY, *colors, colorsLen, periodic) EndMethod() Method(BaseChart,radialGradientColor,.l)(*this.sBaseChart, cx.l, cy.l, rx.l, ry.l, startColor.l, endColor.l, periodic.cd_bool) ProcedureReturn CBaseChart_radialGradientColor(*this\BaseChart_ptr, cx, cy, rx, ry, startColor, endColor, periodic) EndMethod() Method(BaseChart,radialGradientColor2,.l)(*this.sBaseChart, cx.l, cy.l, rx.l, ry.l, *colors.Long, colorsLen.l, periodic.cd_bool) ProcedureReturn CBaseChart_radialGradientColor2(*this\BaseChart_ptr, cx, cy, rx, ry, *colors, colorsLen, periodic) EndMethod() Method(BaseChart,setDefaultFonts)(*this.sBaseChart, normal.s, bold.s, italic.s, boldItalic.s) CBaseChart_setDefaultFonts(*this\BaseChart_ptr, normal, bold, italic, boldItalic) EndMethod() Method(BaseChart,setFontTable)(*this.sBaseChart, index.l, font.s) CBaseChart_setFontTable(*this\BaseChart_ptr, index, font) EndMethod() Method(BaseChart,setNumberFormat)(*this.sBaseChart, thousandSeparator.a, decimalPointChar.a, signChar.a) CBaseChart_setNumberFormat(*this\BaseChart_ptr, thousandSeparator, decimalPointChar, signChar) EndMethod() Method(BaseChart,setMonthNames)(*this.sBaseChart, *names.Integer, namesLen.l) CBaseChart_setMonthNames(*this\BaseChart_ptr, *names, namesLen) EndMethod() Method(BaseChart,setWeekDayNames)(*this.sBaseChart, *names.Integer, namesLen.l) CBaseChart_setWeekDayNames(*this\BaseChart_ptr, *names, namesLen) EndMethod() Method(BaseChart,setAMPM)(*this.sBaseChart, am.s, pm.s) CBaseChart_setAMPM(*this\BaseChart_ptr, am, pm) EndMethod() Method(BaseChart,formatValue,.s)(*this.sBaseChart, value.d, formatString.s) Protected *p.Ascii = CBaseChart_formatValue(*this\BaseChart_ptr, value, formatString) If *p ProcedureReturn PeekS(*p,-1,#PB_Ascii) EndIf EndMethod() Method(BaseChart,layoutLegend,.pLegendBox)(*this.sBaseChart) Protected RET.LegendBox = New( LegendBox(CBaseChart_layoutLegend(*this\BaseChart_ptr)) ) Protected this.BaseChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(BaseChart,layout)(*this.sBaseChart) CBaseChart_layout(*this\BaseChart_ptr) EndMethod() Method(BaseChart,makeChart,.cd_bool)(*this.sBaseChart, filename.s) ProcedureReturn CBaseChart_makeChart(*this\BaseChart_ptr, filename) EndMethod() Method(BaseChart,makeChart2,.cd_bool)(*this.sBaseChart, format.l, *_data_.Integer, *len.Long) ProcedureReturn CBaseChart_makeChart2(*this\BaseChart_ptr, format, *_data_, *len) EndMethod() ; Method(BaseChart,makeChart,.pMemBlock)(*this.sBaseChart, format.l) ; ; const char *data; int len; makeChart(format, &data, &len); ProcedureReturn MemBlock(data, len); ; EndMethod() Method(BaseChart,makeChart3,.pDrawArea)(*this.sBaseChart) Protected RET.DrawArea = New( DrawArea(CBaseChart_makeChart3(*this\BaseChart_ptr)) ) Protected this.BaseChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(BaseChart,catchChart,.i)(*this.sBaseChart, imageNr.i) Protected this.BaseChart = *this Protected image_data.i, image_len.l Protected pb_image.i If this\makeChart2(#Chart_BMP,@image_data,@image_len) If image_data And image_len pb_image = CatchImage(imageNr,image_data,image_len) EndIf EndIf ProcedureReturn pb_image EndMethod() Method(BaseChart,getHTMLImageMap,.s)(*this.sBaseChart, url.s, queryFormat.s, extraAttr.s, offsetX.l, offsetY.l) Protected *p.Ascii = CBaseChart_getHTMLImageMap(*this\BaseChart_ptr, url, queryFormat, extraAttr, offsetX, offsetY) If *p ProcedureReturn PeekS(*p,-1,#PB_Ascii) EndIf EndMethod() Method(BaseChart,getChartMetrics,.s)(*this.sBaseChart) Protected *p.Ascii = CBaseChart_getChartMetrics(*this\BaseChart_ptr) If *p ProcedureReturn PeekS(*p,-1,#PB_Ascii) EndIf EndMethod() Method(BaseChart,getAbsOffsetX,.l)(*this.sBaseChart) ProcedureReturn CBaseChart_getAbsOffsetX(*this\BaseChart_ptr) EndMethod() Method(BaseChart,getAbsOffsetY,.l)(*this.sBaseChart) ProcedureReturn CBaseChart_getAbsOffsetY(*this\BaseChart_ptr) EndMethod() Method(BaseChart,initDynamicLayer,.pDrawArea)(*this.sBaseChart) Protected retPtr.DrawAreaInternal = CBaseChart_initDynamicLayer(*this\BaseChart_ptr) If ( (*this\BaseChart_dynamicLayerCache = 0) Or (retPtr <> *this\BaseChart_dynamicLayerCache\getInternalPtr()) ) *this\BaseChart_dynamicLayerCache = New( DrawArea(retPtr) ) Protected this.BaseChart = *this this\reg(*this\BaseChart_dynamicLayerCache) EndIf ProcedureReturn *this\BaseChart_dynamicLayerCache EndMethod() Method(BaseChart,removeDynamicLayer)(*this.sBaseChart) CBaseChart_removeDynamicLayer(*this\BaseChart_ptr) EndMethod() Method(BaseChart,getJsChartModel,.s)(*this.sBaseChart, options.s) Protected *p.Ascii = CBaseChart_getJsChartModel(*this\BaseChart_ptr, options) If *p ProcedureReturn PeekS(*p,-1,#PB_Ascii) EndIf EndMethod() Destructor(BaseChart,Object) ;*this\BaseChart_refCount - 1 ;If *this\BaseChart_refCount = 0 ;Dbg("BaseChart::Destructor()") If *this\BaseChart_ptr CBaseChart_destroy(*this\BaseChart_ptr) EndIf ;EndIf EndDestructor() Constructor(BaseChart,Object) AddMethod(BaseChart,init) AddMethod(BaseChart,getInternalPtr) AddMethod(BaseChart,enableVectorOutput) AddMethod(BaseChart,setSize) AddMethod(BaseChart,getWidth) AddMethod(BaseChart,getHeight) AddMethod(BaseChart,setBackground) AddMethod(BaseChart,setBorder) AddMethod(BaseChart,setRoundedFrame) AddMethod(BaseChart,setWallpaper) AddMethod(BaseChart,setBgImage) AddMethod(BaseChart,setDropShadow) AddMethod(BaseChart,setTransparentColor) AddMethod(BaseChart,setAntiAlias) AddMethod(BaseChart,setSearchPath) AddMethod(BaseChart,addTitle) AddMethod(BaseChart,addTitle2) AddMethod(BaseChart,addLegend) AddMethod(BaseChart,addLegend2) AddMethod(BaseChart,getLegend) AddMethod(BaseChart,getDrawArea) AddMethod(BaseChart,addText) AddMethod(BaseChart,addLine) AddMethod(BaseChart,addTable) AddMethod(BaseChart,addExtraField) AddMethod(BaseChart,addExtraField2) AddMethod(BaseChart,setColor) AddMethod(BaseChart,setColors) AddMethod(BaseChart,setColors2) AddMethod(BaseChart,setColors3) AddMethod(BaseChart,getColor) AddMethod(BaseChart,halfColor) AddMethod(BaseChart,adjustBrightness) AddMethod(BaseChart,dashLineColor) AddMethod(BaseChart,patternColor) AddMethod(BaseChart,patternColor2) ;AddMethod(BaseChart,patternColor) AddMethod(BaseChart,gradientColor) AddMethod(BaseChart,gradientColor2) AddMethod(BaseChart,gradientColor3) AddMethod(BaseChart,linearGradientColor) AddMethod(BaseChart,linearGradientColor2) AddMethod(BaseChart,radialGradientColor) AddMethod(BaseChart,radialGradientColor2) AddMethod(BaseChart,setDefaultFonts) AddMethod(BaseChart,setFontTable) AddMethod(BaseChart,setNumberFormat) AddMethod(BaseChart,setMonthNames) AddMethod(BaseChart,setWeekDayNames) AddMethod(BaseChart,setAMPM) AddMethod(BaseChart,formatValue) AddMethod(BaseChart,layoutLegend) AddMethod(BaseChart,layout) AddMethod(BaseChart,makeChart) AddMethod(BaseChart,makeChart2) AddMethod(BaseChart,makeChart3) AddMethod(BaseChart,catchChart) ; PB specific ;AddMethod(BaseChart,makeChart) AddMethod(BaseChart,getHTMLImageMap) AddMethod(BaseChart,getChartMetrics) AddMethod(BaseChart,getAbsOffsetX) AddMethod(BaseChart,getAbsOffsetY) AddMethod(BaseChart,initDynamicLayer) AddMethod(BaseChart,removeDynamicLayer) AddMethod(BaseChart,getJsChartModel) ;*this\BaseChart_refCount = 1 EndConstructor() Procedure.i New_BaseChart() InitInterface(BaseChart,Object) EndProcedure ;} ;- Class MultiChart ;{ Class MultiChart Macro pMultiChart : i : EndMacro Interface MultiChart Extends BaseChart addChart(x.l, y.l, c.BaseChart) getChart.pBaseChart(i.l = 0) getChartCount.l() setMainChart(c.BaseChart) EndInterface Structure sMultiChart Extends sBaseChart MultiChart_ptr.MultiChartInternal ;MultiChart_chartCount.l ;MultiChart_maxChartCount.l MultiChart_mainChart.BaseChart List charts.BaseChart() EndStructure Method(MultiChart,addChart)(*this.sMultiChart, x.l, y.l, c.BaseChart) If c CMultiChart_addChart(*this\MultiChart_ptr, x, y, c\getInternalPtr()) LastElement( *this\charts() ) If AddElement( *this\charts() ) *this\charts() = c EndIf EndIf EndMethod() Method(MultiChart,getChart,.pBaseChart)(*this.sMultiChart, i.l) If i = -1 ProcedureReturn *this\MultiChart_mainChart Else Protected count.l = 0 ForEach *this\charts() If count = i ProcedureReturn *this\charts() EndIf count + 1 Next EndIf ProcedureReturn 0 EndMethod() Method(MultiChart,getChartCount,.l)(*this.sMultiChart) ProcedureReturn ListSize( *this\charts() ) EndMethod() Method(MultiChart,setMainChart)(*this.sMultiChart, c.BaseChart) If c CMultiChart_setMainChart(*this\MultiChart_ptr, c\getInternalPtr()) EndIf *this\MultiChart_mainChart = c EndMethod() Destructor(MultiChart,BaseChart) ;ForEach *this\charts() ; *this\charts()\destroy() ; DO NOT DELETE CHARTS ;Next EndDestructor() Constructor(MultiChart,BaseChart) AddMethod(MultiChart,addChart) AddMethod(MultiChart,getChart) AddMethod(MultiChart,getChartCount) AddMethod(MultiChart,setMainChart) EndConstructor() Procedure.i New_MultiChart(width.l, height.l, bgColor.l = #Chart_BackgroundColor, edgeColor.l = #Chart_Transparent, raisedEffect.l = 0) InitInterface_NoReturn(MultiChart,BaseChart) Protected this.MultiChart = *this *this\MultiChart_ptr = CMultiChart_create(width, height, bgColor, edgeColor, raisedEffect) this\init(MultiChart2BaseChart(*this\MultiChart_ptr)) *this\MultiChart_mainChart = 0 ProcedureReturn *this EndProcedure ;} ;- Class Sector ;{ Class Sector Macro pSector : i : EndMacro Interface Sector Extends Object setExplode(distance.l = -1) setLabelFormat(formatString.s) setLabelStyle.pTextBox(font.s = "", fontSize.d = 8, fontColor.l = #Chart_TextColor) setLabelPos(pos.l, joinLineColor.l = -1) setLabelLayout(layoutMethod.l, pos.l = -1) setJoinLine(joinLineColor.l, joinLineWidth.l = 1) setColor(color.l, edgeColor.l = -1, joinLineColor.l = -1) setStyle(shadingMethod.l, edgeColor.l = -1, edgeWidth.l = -1) getImageCoor.s(offsetX.l = 0, offsetY.l = 0) getLabelCoor.s(offsetX.l = 0, offsetY.l = 0) EndInterface Structure sSector Extends sObject Sector_ptr.SectorInternal EndStructure Method(Sector,setExplode)(*this.sSector, distance.l) CSector_setExplode(*this\Sector_ptr, distance) EndMethod() Method(Sector,setLabelFormat)(*this.sSector, formatString.s) CSector_setLabelFormat(*this\Sector_ptr, formatString) EndMethod() Method(Sector,setLabelStyle,.pTextBox)(*this.sSector, font.s, fontSize.d, fontColor.l) Protected RET.TextBox = New( TextBox(CSector_setLabelStyle(*this\Sector_ptr, font, fontSize, fontColor)) ) Protected this.Sector = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(Sector,setLabelPos)(*this.sSector, pos.l, joinLineColor.l) CSector_setLabelPos(*this\Sector_ptr, pos, joinLineColor) EndMethod() Method(Sector,setLabelLayout)(*this.sSector, layoutMethod.l, pos.l) CSector_setLabelLayout(*this\Sector_ptr, layoutMethod, pos) EndMethod() Method(Sector,setJoinLine)(*this.sSector, joinLineColor.l, joinLineWidth.l) CSector_setJoinLine(*this\Sector_ptr, joinLineColor, joinLineWidth) EndMethod() Method(Sector,setColor)(*this.sSector, color.l, edgeColor.l, joinLineColor.l) CSector_setColor(*this\Sector_ptr, color, edgeColor, joinLineColor) EndMethod() Method(Sector,setStyle)(*this.sSector, shadingMethod.l, edgeColor.l, edgeWidth.l) CSector_setStyle(*this\Sector_ptr, shadingMethod, edgeColor, edgeWidth) EndMethod() Method(Sector,getImageCoor,.s)(*this.sSector, offsetX.l, offsetY.l) Protected *p.Ascii = CSector_getImageCoor(*this\Sector_ptr, offsetX, offsetY) If *p ProcedureReturn PeekS(*p,-1,#PB_Ascii) EndIf EndMethod() Method(Sector,getLabelCoor,.s)(*this.sSector, offsetX.l, offsetY.l) Protected *p.Ascii = CSector_getLabelCoor(*this\Sector_ptr, offsetX, offsetY) If *p ProcedureReturn PeekS(*p,-1,#PB_Ascii) EndIf EndMethod() ConstructorInit(Sector,Object) *this\Sector_ptr = init EndConstructorInit() Method(Axis,addZone)(*this.sAxis, startValue.d, endValue.d, color.l) CAxis_addZone(*this\Axis_ptr, startValue, endValue, color) EndMethod() Method(Axis,getCoor,.l)(*this.sAxis, v.d) ProcedureReturn CAxis_getCoor(*this\Axis_ptr, v) EndMethod() Method(Axis,getX,.l)(*this.sAxis) ProcedureReturn CAxis_getX(*this\Axis_ptr) EndMethod() Method(Axis,getY,.l)(*this.sAxis) ProcedureReturn CAxis_getY(*this\Axis_ptr) EndMethod() Method(Axis,getAlignment,.l)(*this.sAxis) ProcedureReturn CAxis_getAlignment(*this\Axis_ptr) EndMethod() Method(Axis,getMinValue,.d)(*this.sAxis) ProcedureReturn CAxis_getMinValue(*this\Axis_ptr) EndMethod() Method(Axis,getMaxValue,.d)(*this.sAxis) ProcedureReturn CAxis_getMaxValue(*this\Axis_ptr) EndMethod() Method(Axis,getThickness,.l)(*this.sAxis) ProcedureReturn CAxis_getThickness(*this\Axis_ptr) EndMethod() Method(Axis,getTicks,.l)(*this.sAxis, Array dArr.d(1)) Protected *d.double, len.l CAxis_getTicks(*this\Axis_ptr, @*d, @len) ReDim dArr(len) If len CopyMemory(*d,@dArr(),len*SizeOf(Double)) ProcedureReturn len EndIf EndMethod() Method(Axis,getLabel,.s)(*this.sAxis, i.d) Protected *p.Ascii = CAxis_getLabel(*this\Axis_ptr, i) If *p ProcedureReturn PeekS(*p,-1,#PB_Ascii) EndIf EndMethod() Method(Axis,getFormattedLabel,.s)(*this.sAxis, v.d, formatString.s) Protected *p.Ascii = CAxis_getFormattedLabel(*this\Axis_ptr, v, formatString) If *p ProcedureReturn PeekS(*p,-1,#PB_Ascii) EndIf EndMethod() Method(Axis,getAxisImageMap,.s)(*this.sAxis, noOfSegments.l, mapWidth.l, url.s, queryFormat.s, extraAttr.s, offsetX.l, offsetY.l) Protected *p.Ascii = CAxis_getAxisImageMap(*this\Axis_ptr, noOfSegments, mapWidth, url, queryFormat, extraAttr, offsetX, offsetY) If *p ProcedureReturn PeekS(*p,-1,#PB_Ascii) EndIf EndMethod() Method(Axis,getHTMLImageMap,.s)(*this.sAxis, url.s, queryFormat.s, extraAttr.s, offsetX.l, offsetY.l) Protected *p.Ascii = CAxis_getHTMLImageMap(*this\Axis_ptr, url, queryFormat, extraAttr, offsetX, offsetY) If *p ProcedureReturn PeekS(*p,-1,#PB_Ascii) EndIf EndMethod() ConstructorInit(Axis,Object) *this\Axis_ptr = init EndConstructorInit() Constructor(Axis,Object) AddMethod(Axis,getInternalPtr) AddMethod(Axis,setLabelStyle) AddMethod(Axis,setLabelFormat) AddMethod(Axis,setLabelGap) AddMethod(Axis,setMultiFormat) AddMethod(Axis,setMultiFormat2) AddMethod(Axis,setFormatCondition) AddMethod(Axis,setTitle) AddMethod(Axis,setTitlePos) AddMethod(Axis,setColors) AddMethod(Axis,setTickLength) AddMethod(Axis,setTickLength2) AddMethod(Axis,setTickWidth) AddMethod(Axis,setTickColor) AddMethod(Axis,setWidth) AddMethod(Axis,setLength) AddMethod(Axis,setOffset) AddMethod(Axis,setAngle) AddMethod(Axis,setMargin) AddMethod(Axis,setIndent) AddMethod(Axis,setTickOffset) AddMethod(Axis,setLabelOffset) AddMethod(Axis,setAutoScale) AddMethod(Axis,setRounding) AddMethod(Axis,setTickDensity) AddMethod(Axis,setReverse) AddMethod(Axis,setMinTickInc) AddMethod(Axis,setLabels) AddMethod(Axis,setLabels2) AddMethod(Axis,makeLabelTable) AddMethod(Axis,getLabelTable) AddMethod(Axis,setLabelStep) AddMethod(Axis,setLinearScale) AddMethod(Axis,setLinearScale2) AddMethod(Axis,setLinearScale3) AddMethod(Axis,setLogScale) AddMethod(Axis,setLogScale2) AddMethod(Axis,setLogScale3) AddMethod(Axis,setDateScale) AddMethod(Axis,setDateScale2) AddMethod(Axis,setDateScale3) AddMethod(Axis,syncAxis) AddMethod(Axis,copyAxis) AddMethod(Axis,addLabel) AddMethod(Axis,addMark) AddMethod(Axis,addZone) AddMethod(Axis,getCoor) AddMethod(Axis,getX) AddMethod(Axis,getY) AddMethod(Axis,getAlignment) AddMethod(Axis,getMinValue) AddMethod(Axis,getMaxValue) AddMethod(Axis,getThickness) AddMethod(Axis,getTicks) AddMethod(Axis,getLabel) AddMethod(Axis,getFormattedLabel) AddMethod(Axis,getAxisImageMap) AddMethod(Axis,getHTMLImageMap) EndConstructor() Procedure.i New_Axis(ptr.AxisInternal) InitInterface(Axis,Object,ptr) EndProcedure ;} ; ; for compatibility ; Macro BaseAxis : Axis : EndMacro ;Macro XAxis : BaseAxis : EndMacro ; collides with xAxis() interface method ;Macro YAxis : BaseAxis : EndMacro ; collides with yAxis() interface method ; ; In this version, PolarChart RadialAxis is the same as the XYChart Axis ; Macro RadialAxis : Axis : EndMacro Macro pRadialAxis : i : EndMacro ; ; AngularAxis for PolarChart ; ;- Class AngularAxis ;{ Class AngularAxis Macro pAngularAxis : i : EndMacro Interface AngularAxis Extends Object setLabelStyle.pTextBox(font.s = "bold", fontSize.d = 10, fontColor.l = #Chart_TextColor, fontAngle.d = 0) setLabelGap(d.l) setLabels.pTextBox(*labels.Integer, labelsLen.l) setLabels2.pTextBox(*labels.Double, labelsLen.l, formatString.s = "") addLabel(pos.d, label.s) setLinearScale(lowerLimit.d, upperLimit.d, majorTickInc.d = 0, minorTickInc.d = 0) setLinearScale2(lowerLimit.d, upperLimit.d, *labels.Integer, labelsLen.l) addZone(startValue.d, endValue.d, startRadius.d, endRadius.d, fillColor.l, edgeColor.l = -1) addZone2(startValue.d, endValue.d, fillColor.l, edgeColor.l = -1) getAxisImageMap.s(noOfSegments.l, mapWidth.l, url.s, queryFormat.s = "", extraAttr.s = "", offsetX.l = 0, offsetY.l = 0) getHTMLImageMap.s(url.s, queryFormat.s = "", extraAttr.s = "", offsetX.l = 0, offsetY.l = 0) EndInterface Structure sAngularAxis Extends sObject AngularAxis_ptr.AngularAxisInternal EndStructure Method(AngularAxis,setLabelStyle,.pTextBox)(*this.sAngularAxis, font.s, fontSize.d, fontColor.l, fontAngle.d) Protected RET.TextBox = New( TextBox(CAngularAxis_setLabelStyle(*this\AngularAxis_ptr, font, fontSize, fontColor, fontAngle)) ) Protected this.AngularAxis = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(AngularAxis,setLabelGap)(*this.sAngularAxis, d.l) CAngularAxis_setLabelGap(*this\AngularAxis_ptr, d) EndMethod() Method(AngularAxis,setLabels,.pTextBox)(*this.sAngularAxis, *labels.Integer, labelsLen.l) Protected RET.TextBox = New( TextBox(CAngularAxis_setLabels(*this\AngularAxis_ptr, *labels, labelsLen)) ) Protected this.AngularAxis = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(AngularAxis,setLabels2,.pTextBox)(*this.sAngularAxis, *labels.Double, labelsLen.l, formatString.s) Protected RET.TextBox = New( TextBox(CAngularAxis_setLabels2(*this\AngularAxis_ptr, *labels, labelsLen, formatString)) ) Protected this.AngularAxis = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(AngularAxis,addLabel)(*this.sAngularAxis, pos.d, label.s) CAngularAxis_addLabel(*this\AngularAxis_ptr, pos, label) EndMethod() Method(AngularAxis,setLinearScale)(*this.sAngularAxis, lowerLimit.d, upperLimit.d, majorTickInc.d, minorTickInc.d) CAngularAxis_setLinearScale(*this\AngularAxis_ptr, lowerLimit, upperLimit, majorTickInc, minorTickInc) EndMethod() Method(AngularAxis,setLinearScale2)(*this.sAngularAxis, lowerLimit.d, upperLimit.d, *labels.Integer, labelsLen.l) CAngularAxis_setLinearScale2(*this\AngularAxis_ptr, lowerLimit, upperLimit, *labels, labelsLen) EndMethod() Method(AngularAxis,addZone)(*this.sAngularAxis, startValue.d, endValue.d, startRadius.d, endRadius.d, fillColor.l, edgeColor.l) CAngularAxis_addZone(*this\AngularAxis_ptr, startValue, endValue, startRadius, endRadius, fillColor, edgeColor) EndMethod() Method(AngularAxis,addZone2)(*this.sAngularAxis, startValue.d, endValue.d, fillColor.l, edgeColor.l) CAngularAxis_addZone2(*this\AngularAxis_ptr, startValue, endValue, fillColor, edgeColor) EndMethod() Method(AngularAxis,getAxisImageMap,.s)(*this.sAngularAxis, noOfSegments.l, mapWidth.l, url.s, queryFormat.s, extraAttr.s, offsetX.l, offsetY.l) Protected *p.Ascii = CAngularAxis_getAxisImageMap(*this\AngularAxis_ptr, noOfSegments, mapWidth, url, queryFormat, extraAttr, offsetX, offsetY) If *p ProcedureReturn PeekS(*p,-1,#PB_Ascii) EndIf EndMethod() Method(AngularAxis,getHTMLImageMap,.s)(*this.sAngularAxis, url.s, queryFormat.s, extraAttr.s, offsetX.l, offsetY.l) Protected *p.Ascii = CAngularAxis_getHTMLImageMap(*this\AngularAxis_ptr, url, queryFormat, extraAttr, offsetX, offsetY) If *p ProcedureReturn PeekS(*p,-1,#PB_Ascii) EndIf EndMethod() ConstructorInit(AngularAxis,Object) *this\AngularAxis_ptr = init EndConstructorInit() Constructor(AngularAxis,Object) AddMethod(AngularAxis,setLabelStyle) AddMethod(AngularAxis,setLabelGap) AddMethod(AngularAxis,setLabels) AddMethod(AngularAxis,setLabels2) AddMethod(AngularAxis,addLabel) AddMethod(AngularAxis,setLinearScale) AddMethod(AngularAxis,setLinearScale2) AddMethod(AngularAxis,addZone) AddMethod(AngularAxis,addZone2) AddMethod(AngularAxis,getAxisImageMap) AddMethod(AngularAxis,getHTMLImageMap) EndConstructor() Procedure.i New_AngularAxis(ptr.AngularAxisInternal) InitInterface(AngularAxis,Object,ptr) EndProcedure ;} ;- Class ColorAxis ;{ Class ColorAxis Macro pColorAxis : i : EndMacro Interface ColorAxis Extends Axis setColorGradient(isContinuous.cd_bool = #True, *colors.Long = 0, colorsLen.l = 0, underflowColor.l = -1, overflowColor.l = -1) setAxisPos(x.l, y.l, alignment.l) setLevels(maxLevels.l) setCompactAxis(b.cd_bool = #True) setAxisBorder(edgeColor.l, raisedEffect.l = 0) setBoundingBox(fillColor.l, edgeColor.l = #Chart_Transparent, raisedEffect.l = 0) setBoxMargin(m.l) setBoxMargin2(leftMargin.l, rightMargin.l, topMargin.l, bottomMargin.l) setRoundedCorners(r1.l = 10, r2.l = -1, r3.l = -1, r4.l = -1) getBoxWidth.l() getBoxHeight.l() getColor.l(z.d) EndInterface Structure sColorAxis Extends sAxis ColorAxis_ptr.ColorAxisInternal EndStructure Method(ColorAxis,setColorGradient)(*this.sColorAxis, isContinuous.cd_bool, *colors.Long, colorsLen.l, underflowColor.l, overflowColor.l) CColorAxis_setColorGradient(*this\ColorAxis_ptr, isContinuous, *colors.Long, colorsLen, overflowColor, underflowColor); EndMethod() Method(ColorAxis,setAxisPos)(*this.sColorAxis, x.l, y.l, alignment.l) CColorAxis_setAxisPos(*this\ColorAxis_ptr, x, y, alignment) EndMethod() Method(ColorAxis,setLevels)(*this.sColorAxis, maxLevels.l) CColorAxis_setLevels(*this\ColorAxis_ptr, maxLevels) EndMethod() Method(ColorAxis,setCompactAxis)(*this.sColorAxis, b.cd_bool) CColorAxis_setCompactAxis(*this\ColorAxis_ptr, b) EndMethod() Method(ColorAxis,setAxisBorder)(*this.sColorAxis, edgeColor.l, raisedEffect.l) CColorAxis_setAxisBorder(*this\ColorAxis_ptr, edgeColor, raisedEffect) EndMethod() Method(ColorAxis,setBoundingBox)(*this.sColorAxis, fillColor.l, edgeColor.l, raisedEffect.l) CColorAxis_setBoundingBox(*this\ColorAxis_ptr, fillColor, edgeColor, raisedEffect) EndMethod() Method(ColorAxis,setBoxMargin)(*this.sColorAxis, m.l) CColorAxis_setBoxMargin(*this\ColorAxis_ptr, m) EndMethod() Method(ColorAxis,setBoxMargin2)(*this.sColorAxis, leftMargin.l, rightMargin.l, topMargin.l, bottomMargin.l) CColorAxis_setBoxMargin2(*this\ColorAxis_ptr, leftMargin, rightMargin, topMargin, bottomMargin) EndMethod() Method(ColorAxis,setRoundedCorners)(*this.sColorAxis, r1.l, r2.l, r3.l, r4.l) CColorAxis_setRoundedCorners(*this\ColorAxis_ptr, r1, r2, r3, r4) EndMethod() Method(ColorAxis,getBoxWidth,.l)(*this.sColorAxis) ProcedureReturn CColorAxis_getBoxWidth(*this\ColorAxis_ptr) EndMethod() Method(ColorAxis,getBoxHeight,.l)(*this.sColorAxis) ProcedureReturn CColorAxis_getBoxHeight(*this\ColorAxis_ptr) EndMethod() Method(ColorAxis,getColor,.l)(*this.sColorAxis, z.d) ProcedureReturn CColorAxis_getColor(*this\ColorAxis_ptr, z) EndMethod() ConstructorInit(ColorAxis,Axis) baseInit(Axis,ColorAxis2Axis(init)) *this\ColorAxis_ptr = init EndConstructorInit() Constructor(ColorAxis,Axis) AddMethod(ColorAxis,setColorGradient) AddMethod(ColorAxis,setAxisPos) AddMethod(ColorAxis,setLevels) AddMethod(ColorAxis,setCompactAxis) AddMethod(ColorAxis,setAxisBorder) AddMethod(ColorAxis,setBoundingBox) AddMethod(ColorAxis,setBoxMargin) AddMethod(ColorAxis,setBoxMargin2) AddMethod(ColorAxis,setRoundedCorners) AddMethod(ColorAxis,getBoxWidth) AddMethod(ColorAxis,getBoxHeight) AddMethod(ColorAxis,getColor) EndConstructor() Procedure.i New_ColorAxis(ptr.ColorAxisInternal) InitInterface(ColorAxis,Axis,ptr) EndProcedure ;} ;- Class DataSet ;{ Class DataSet Macro pDataSet : i : EndMacro Interface DataSet Extends Object getInternalPtr.DataSetInternal() setData(*dataData.double, dataDataLen.l) getValue.d(i.l) getPosition.d(i.l) setDataName(name.s) getDataName.s() setDataColor(dataColor.l, edgeColor.l = -1, shadowColor.l = -1, shadowEdgeColor.l = -1) getDataColor.l() setDataSymbol(symbol.l, size.l = 5, fillColor.l = -1, edgeColor.l = -1, lineWidth.l = 1) setDataSymbol2(image.s) setDataSymbol3(obj.DrawArea) setDataSymbol4(*polygon.Long, polygonLen.l, size.l = 11, fillColor.l = -1, edgeColor.l = -1) setLineWidth(w.l) setDataLabelFormat(formatString.s) setDataLabelStyle.pTextBox(font.s = "", fontSize.d = 8, fontColor.l = #Chart_TextColor, fontAngle.d = 0) setUseYAxis2(b.cd_bool = #True) setUseYAxis(a.Axis) getUseYAxis.pAxis() getLegendIcon.s() EndInterface Structure sDataSet Extends sObject DataSet_ptr.DataSetInternal DataSet_useYAxisCache.Axis EndStructure Method(DataSet,getInternalPtr,.DataSetInternal)(*this.sDataSet) ProcedureReturn *this\DataSet_ptr EndMethod() Method(DataSet,setData)(*this.sDataSet, *dataData.double, dataDataLen.l) CDataSet_setData(*this\DataSet_ptr, *dataData, dataDataLen) EndMethod() ; Method(DataSet,setData)(*this.sDataSet, _data_.DoubleArray) ; ; CDataSet_setData(*this\DataSet_ptr, data.data, data.len); ; EndMethod() Method(DataSet,getValue,.d)(*this.sDataSet, i.l) ProcedureReturn CDataSet_getValue(*this\DataSet_ptr, i) EndMethod() Method(DataSet,getPosition,.d)(*this.sDataSet, i.l) ProcedureReturn CDataSet_getPosition(*this\DataSet_ptr, i) EndMethod() Method(DataSet,setDataName)(*this.sDataSet, name.s) CDataSet_setDataName(*this\DataSet_ptr, name) EndMethod() Method(DataSet,getDataName,.s)(*this.sDataSet) Protected *p.Ascii = CDataSet_getDataName(*this\DataSet_ptr) If *p ProcedureReturn PeekS(*p,-1,#PB_Ascii) EndIf EndMethod() Method(DataSet,setDataColor)(*this.sDataSet, dataColor.l, edgeColor.l, shadowColor.l, shadowEdgeColor.l) CDataSet_setDataColor(*this\DataSet_ptr, dataColor, edgeColor, shadowColor, shadowEdgeColor) EndMethod() Method(DataSet,getDataColor,.l)(*this.sDataSet) ProcedureReturn CDataSet_getDataColor(*this\DataSet_ptr) EndMethod() Method(DataSet,setDataSymbol)(*this.sDataSet, symbol.l, size.l, fillColor.l, edgeColor.l, lineWidth.l) CDataSet_setDataSymbol(*this\DataSet_ptr, symbol, size, fillColor, edgeColor, lineWidth) EndMethod() Method(DataSet,setDataSymbol2)(*this.sDataSet, image.s) CDataSet_setDataSymbol2(*this\DataSet_ptr, image) EndMethod() Method(DataSet,setDataSymbol3)(*this.sDataSet, obj.DrawArea) If obj CDataSet_setDataSymbol3(*this\DataSet_ptr, obj\getInternalPtr()) EndIf EndMethod() Method(DataSet,setDataSymbol4)(*this.sDataSet, *polygon.Long, polygonLen.l, size.l, fillColor.l, edgeColor.l) CDataSet_setDataSymbol4(*this\DataSet_ptr, *polygon, polygonLen, size, fillColor, edgeColor) EndMethod() Method(DataSet,setLineWidth)(*this.sDataSet, w.l) CDataSet_setLineWidth(*this\DataSet_ptr, w) EndMethod() Method(DataSet,setDataLabelFormat)(*this.sDataSet, formatString.s) CDataSet_setDataLabelFormat(*this\DataSet_ptr, formatString) EndMethod() Method(DataSet,setDataLabelStyle,.pTextBox)(*this.sDataSet, font.s, fontSize.d, fontColor.l, fontAngle.d) Protected RET.TextBox = New( TextBox(CDataSet_setDataLabelStyle(*this\DataSet_ptr, font, fontSize, fontColor, fontAngle)) ) Protected this.DataSet = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(DataSet,setUseYAxis2)(*this.sDataSet, b.cd_bool) CDataSet_setUseYAxis2(*this\DataSet_ptr, b) EndMethod() Method(DataSet,setUseYAxis)(*this.sDataSet, a.Axis) If a CDataSet_setUseYAxis(*this\DataSet_ptr, a\getInternalPtr()) EndIf EndMethod() Method(DataSet,getUseYAxis,.pAxis)(*this.sDataSet) Protected retPtr.AxisInternal = CDataSet_getUseYAxis(*this\DataSet_ptr) If ( (*this\DataSet_useYAxisCache = 0) Or (retPtr <> *this\DataSet_useYAxisCache\getInternalPtr()) ) *this\DataSet_useYAxisCache = New( Axis(retPtr) ) Protected this.DataSet = *this this\reg(*this\DataSet_useYAxisCache) EndIf ProcedureReturn *this\DataSet_useYAxisCache EndMethod() Method(DataSet,getLegendIcon,.s)(*this.sDataSet) Protected *p.Ascii = CDataSet_getLegendIcon(*this\DataSet_ptr) If *p ProcedureReturn PeekS(*p,-1,#PB_Ascii) EndIf EndMethod() ConstructorInit(DataSet,Object) *this\DataSet_ptr = init EndConstructorInit() Constructor(DataSet,Object) AddMethod(DataSet,getInternalPtr) AddMethod(DataSet,setData) ; AddMethod(DataSet,setData) AddMethod(DataSet,getValue) AddMethod(DataSet,getPosition) AddMethod(DataSet,setDataName) AddMethod(DataSet,getDataName) AddMethod(DataSet,setDataColor) AddMethod(DataSet,getDataColor) AddMethod(DataSet,setDataSymbol) AddMethod(DataSet,setDataSymbol2) AddMethod(DataSet,setDataSymbol3) AddMethod(DataSet,setDataSymbol4) AddMethod(DataSet,setLineWidth) AddMethod(DataSet,setDataLabelFormat) AddMethod(DataSet,setDataLabelStyle) AddMethod(DataSet,setUseYAxis2) AddMethod(DataSet,setUseYAxis) AddMethod(DataSet,getUseYAxis) AddMethod(DataSet,getLegendIcon) EndConstructor() Procedure.i New_DataSet(ptr.DataSetInternal) InitInterface(DataSet,Object,ptr) EndProcedure ;} Top Profile Reply With quote Oliver13 Post subject: Re: ChartDirector - Professional charts For PBPostPosted: Thu Apr 06, 2017 8:57 pm Offline User User Joined: Thu Sep 30, 2010 6:40 am Posts: 51 Chartdirector.pbi Part 6 Code: ;- Class Layer ;{ Class Layer Macro pLayer : i : EndMacro Interface Layer Extends Object __regDataSet.pDataSet(ptr.DataSetInternal) getInternalPtr.LayerInternal() moveFront(layer.Layer = 0) moveBack(layer.Layer = 0) set3D(d.l = -1, zGap.l = 0) setLineWidth(w.l) setBorderColor(color.l, lightingEffect.l = 0) setLegend(m.l) setLegendOrder(dataSetOrder.l, layerOrder.l = -1) getLegendIcon.s(dataSetNo.l) setDataCombineMethod(m.l) setBaseLine(baseLine.d) addDataSet.pDataSet(*ddata.double, ddataLen.l, color.l = -1, name.s = "") addDataGroup(name.s = "") addExtraField(*texts.Integer, textsLen.l) addExtraField2(*numbers.Double, numbersLen.l) getDataSet.pDataSet(i.l) getDataSetByZ.pDataSet(i.l) getDataSetCount.l() setUseYAxis2(b.cd_bool = #True) setUseYAxis(a.Axis) setXData(*xData.Double, xDataLen.l) setXData2(minValue.d, maxValue.d) getXPosition.d(i.l) getNearestXValue.d(target.d) getXIndexOf.l(xValue.d, tolerance.d = 0) alignLayer(layer.Layer, dataSet.l) getXCoor.l(v.d) getYCoor.l(v.d, yAxis.cd_bool = #True) getYCoor2.l(v.d, yAxis.Axis) xZoneColor.l(threshold.d, belowColor.l, aboveColor.l) yZoneColor.l(threshold.d, belowColor.l, aboveColor.l, yAxis.cd_bool = #True) yZoneColor2.l(threshold.d, belowColor.l, aboveColor.l, yAxis.Axis) ; *** Note ***: The default value -0x7fffffff is maintained for compatibility getImageCoor.s(dataSet.l, dataItem.l = -$7fffffff, offsetX.l = 0, offsetY.l = 0) getImageCoor2.s(dataItem.l, offsetX.l = 0, offsetY.l = 0) getHTMLImageMap.s(url.s, queryFormat.s = "", extraAttr.s = "", offsetX.l = 0, offsetY.l = 0) setHTMLImageMap(url.s, queryFormat.s = "", extraAttr.s = "") setDataLabelFormat(formatString.s) setDataLabelStyle.pTextBox(font.s = "", fontSize.d = 8, fontColor.l = #Chart_TextColor, fontAngle.d = 0) setAggregateLabelFormat(formatString.s) setAggregateLabelStyle.pTextBox(font.s = "", fontSize.d = 8, fontColor.l = #Chart_TextColor, fontAngle.d = 0) addCustomDataLabel.pTextBox(dataSet.l, dataItem.l, label.s, font.s = "", fontSize.d = 8, fontColor.l = #Chart_TextColor, fontAngle.d = 0) addCustomAggregateLabel.pTextBox(dataItem.l, label.s, font.s = "", fontSize.d = 8, fontColor.l = #Chart_TextColor, fontAngle.d = 0) addCustomGroupLabel.pTextBox(dataGroup.l, dataItem.l, label.s, font.s = "", fontSize.d = 8, fontColor.l = #Chart_TextColor, fontAngle.d = 0) EndInterface Structure sLayer Extends sObject Layer_ptr.LayerInternal List dataSetCache.DataSet() EndStructure Method(Layer,__regDataSet,.pDataSet)(*this.sLayer, ptr.DataSetInternal) If Not ptr : ProcedureReturn 0 : EndIf ForEach *this\dataSetCache() If *this\dataSetCache()\getInternalPtr() = ptr ProcedureReturn *this\dataSetCache() EndIf Next Protected RET.DataSet = New( DataSet(ptr) ) Protected this.Layer = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(Layer,getInternalPtr,.LayerInternal)(*this.sLayer) ProcedureReturn *this\Layer_ptr EndMethod() Method(Layer,moveFront)(*this.sLayer, layer.Layer) If layer CLayer_moveFront(*this\Layer_ptr, layer\getInternalPtr()) Else CLayer_moveFront(*this\Layer_ptr, 0) EndIf EndMethod() Method(Layer,moveBack)(*this.sLayer, layer.Layer) If layer CLayer_moveBack(*this\Layer_ptr, layer\getInternalPtr()) Else CLayer_moveBack(*this\Layer_ptr, 0) EndIf EndMethod() Method(Layer,set3D)(*this.sLayer, d.l, zGap.l) CLayer_set3D(*this\Layer_ptr, d, zGap) EndMethod() Method(Layer,setLineWidth)(*this.sLayer, w.l) CLayer_setLineWidth(*this\Layer_ptr, w) EndMethod() Method(Layer,setBorderColor)(*this.sLayer, color.l, lightingEffect.l) CLayer_setBorderColor(*this\Layer_ptr, color, lightingEffect) EndMethod() Method(Layer,setLegend)(*this.sLayer, m.l) CLayer_setLegend(*this\Layer_ptr, m) EndMethod() Method(Layer,setLegendOrder)(*this.sLayer, dataSetOrder.l, layerOrder.l) CLayer_setLegendOrder(*this\Layer_ptr, dataSetOrder, layerOrder) EndMethod() Method(Layer,getLegendIcon,.s)(*this.sLayer, dataSetNo.l) Protected *p.Ascii = CLayer_getLegendIcon(*this\Layer_ptr, dataSetNo) If *p ProcedureReturn PeekS(*p,-1,#PB_Ascii) EndIf EndMethod() Method(Layer,setDataCombineMethod)(*this.sLayer, m.l) CLayer_setDataCombineMethod(*this\Layer_ptr, m) EndMethod() Method(Layer,setBaseLine)(*this.sLayer, baseLine.d) CLayer_setBaseLine(*this\Layer_ptr, baseLine) EndMethod() Method(Layer,addDataSet,.pDataSet)(*this.sLayer, *ddata.double, ddataLen.l, color.l, name.s) Protected this.Layer = *this ProcedureReturn this\__regDataSet(CLayer_addDataSet(*this\Layer_ptr, *ddata, ddataLen, color, name)) EndMethod() ; Method(Layer,addDataSet,.DataSet)(*this.sLayer, _data_.DoubleArray, color.l, name.s) ; ; ProcedureReturn regDataSet(CLayer_addDataSet(*this\Layer_ptr, data.data, data.len, color, name)); ; EndMethod() Method(Layer,addDataGroup)(*this.sLayer, name.s) CLayer_addDataGroup(*this\Layer_ptr, name) EndMethod() Method(Layer,addExtraField)(*this.sLayer, *texts.Integer, textsLen.l) CLayer_addExtraField(*this\Layer_ptr, *texts, textsLen) EndMethod() Method(Layer,addExtraField2)(*this.sLayer, *numbers.Double, numbersLen.l) CLayer_addExtraField2(*this\Layer_ptr, *numbers, numbersLen) EndMethod() Method(Layer,getDataSet,.pDataSet)(*this.sLayer, i.l) Protected this.Layer = *this ProcedureReturn this\__regDataSet(CLayer_getDataSet(*this\Layer_ptr, i)) EndMethod() Method(Layer,getDataSetByZ,.pDataSet)(*this.sLayer, i.l) Protected this.Layer = *this ProcedureReturn this\__regDataSet(CLayer_getDataSetByZ(*this\Layer_ptr, i)) EndMethod() Method(Layer,getDataSetCount,.l)(*this.sLayer) ProcedureReturn CLayer_getDataSetCount(*this\Layer_ptr) EndMethod() Method(Layer,setUseYAxis2)(*this.sLayer, b.cd_bool) CLayer_setUseYAxis2(*this\Layer_ptr, b) EndMethod() Method(Layer,setUseYAxis)(*this.sLayer, a.Axis) If a CLayer_setUseYAxis(*this\Layer_ptr, a\getInternalPtr()) EndIf EndMethod() Method(Layer,setXData)(*this.sLayer, *xData.Double, xDataLen.l) CLayer_setXData(*this\Layer_ptr, *xData, xDataLen) EndMethod() Method(Layer,setXData2)(*this.sLayer, minValue.d, maxValue.d) CLayer_setXData2(*this\Layer_ptr, minValue, maxValue) EndMethod() Method(Layer,getXPosition,.d)(*this.sLayer, i.l) ProcedureReturn CLayer_getXPosition(*this\Layer_ptr, i) EndMethod() Method(Layer,getNearestXValue,.d)(*this.sLayer, target.d) ProcedureReturn CLayer_getNearestXValue(*this\Layer_ptr, target) EndMethod() Method(Layer,getXIndexOf,.l)(*this.sLayer, xValue.d, tolerance.d) ProcedureReturn CLayer_getXIndexOf(*this\Layer_ptr, xValue, tolerance) EndMethod() Method(Layer,alignLayer)(*this.sLayer, layer.Layer, dataSet.l) If layer CLayer_alignLayer(*this\Layer_ptr, layer\getInternalPtr(), dataSet) EndIf EndMethod() Method(Layer,getXCoor,.l)(*this.sLayer, v.d) ProcedureReturn CLayer_getXCoor(*this\Layer_ptr, v) EndMethod() Method(Layer,getYCoor,.l)(*this.sLayer, v.d, yAxis.cd_bool) ProcedureReturn CLayer_getYCoor(*this\Layer_ptr, v, yAxis) EndMethod() Method(Layer,getYCoor2,.l)(*this.sLayer, v.d, yAxis.Axis) Protected this.Layer = *this If yAxis = 0 ProcedureReturn this\getYCoor(v) EndIf ProcedureReturn CLayer_getYCoor2(*this\Layer_ptr, v, yAxis\getInternalPtr()) EndMethod() Method(Layer,xZoneColor,.l)(*this.sLayer, threshold.d, belowColor.l, aboveColor.l) ProcedureReturn CLayer_xZoneColor(*this\Layer_ptr, threshold, belowColor, aboveColor) EndMethod() Method(Layer,yZoneColor,.l)(*this.sLayer, threshold.d, belowColor.l, aboveColor.l, yAxis.cd_bool) ProcedureReturn CLayer_yZoneColor(*this\Layer_ptr, threshold, belowColor, aboveColor, yAxis) EndMethod() Method(Layer,yZoneColor2,.l)(*this.sLayer, threshold.d, belowColor.l, aboveColor.l, yAxis.Axis) Protected this.Layer = *this If yAxis = 0 ProcedureReturn this\yZoneColor(threshold, belowColor, aboveColor) EndIf ProcedureReturn CLayer_yZoneColor2(*this\Layer_ptr, threshold, belowColor, aboveColor, yAxis\getInternalPtr()) EndMethod() Method(Layer,getImageCoor,.s)(*this.sLayer, dataSet.l, dataItem.l, offsetX.l, offsetY.l) Protected *p.Ascii = CLayer_getImageCoor(*this\Layer_ptr, dataSet, dataItem, offsetX, offsetY) If *p ProcedureReturn PeekS(*p,-1,#PB_Ascii) EndIf EndMethod() Method(Layer,getImageCoor2,.s)(*this.sLayer, dataItem.l, offsetX.l, offsetY.l) Protected *p.Ascii = CLayer_getImageCoor2(*this\Layer_ptr, dataItem, offsetX, offsetY) If *p ProcedureReturn PeekS(*p,-1,#PB_Ascii) EndIf EndMethod() Method(Layer,getHTMLImageMap,.s)(*this.sLayer, url.s, queryFormat.s, extraAttr.s, offsetX.l, offsetY.l) Protected *p.Ascii = CLayer_getHTMLImageMap(*this\Layer_ptr, url, queryFormat, extraAttr, offsetX, offsetY) If *p ProcedureReturn PeekS(*p,-1,#PB_Ascii) EndIf EndMethod() Method(Layer,setHTMLImageMap)(*this.sLayer, url.s, queryFormat.s, extraAttr.s) CLayer_setHTMLImageMap(*this\Layer_ptr, url, queryFormat, extraAttr) EndMethod() Method(Layer,setDataLabelFormat)(*this.sLayer, formatString.s) CLayer_setDataLabelFormat(*this\Layer_ptr, formatString) EndMethod() Method(Layer,setDataLabelStyle,.pTextBox)(*this.sLayer, font.s, fontSize.d, fontColor.l, fontAngle.d) Protected RET.TextBox = New( TextBox(CLayer_setDataLabelStyle(*this\Layer_ptr, font, fontSize, fontColor, fontAngle)) ) Protected this.Layer = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(Layer,setAggregateLabelFormat)(*this.sLayer, formatString.s) CLayer_setAggregateLabelFormat(*this\Layer_ptr, formatString) EndMethod() Method(Layer,setAggregateLabelStyle,.pTextBox)(*this.sLayer, font.s, fontSize.d, fontColor.l, fontAngle.d) Protected RET.TextBox = New( TextBox(CLayer_setAggregateLabelStyle(*this\Layer_ptr, font, fontSize, fontColor, fontAngle)) ) Protected this.Layer = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(Layer,addCustomDataLabel,.pTextBox)(*this.sLayer, dataSet.l, dataItem.l, label.s, font.s, fontSize.d, fontColor.l, fontAngle.d) Protected RET.TextBox = New( TextBox(CLayer_addCustomDataLabel(*this\Layer_ptr, dataSet, dataItem, label, font, fontSize, fontColor, fontAngle)) ) Protected this.Layer = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(Layer,addCustomAggregateLabel,.pTextBox)(*this.sLayer, dataItem.l, label.s, font.s, fontSize.d, fontColor.l, fontAngle.d) Protected RET.TextBox = New( TextBox(CLayer_addCustomAggregateLabel(*this\Layer_ptr, dataItem, label, font, fontSize, fontColor, fontAngle)) ) Protected this.Layer = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(Layer,addCustomGroupLabel,.pTextBox)(*this.sLayer, dataGroup.l, dataItem.l, label.s, font.s, fontSize.d, fontColor.l, fontAngle.d) Protected RET.TextBox = New( TextBox(CLayer_addCustomGroupLabel(*this\Layer_ptr, dataGroup, dataItem, label, font, fontSize, fontColor, fontAngle)) ) Protected this.Layer = *this this\reg(RET) ProcedureReturn RET EndMethod() Destructor(Layer,Object) ;ForEach *this\dataSetCache() ; *this\dataSetCache()\destroy() ; DO NOT DELETE, the DataSets are regged and automatically freed ( this\reg(ret) ) ;Next EndDestructor() ConstructorInit(Layer,Object) *this\Layer_ptr = init EndConstructorInit() Constructor(Layer,Object) AddMethod(Layer,__regDataSet) AddMethod(Layer,getInternalPtr) AddMethod(Layer,moveFront) AddMethod(Layer,moveBack) AddMethod(Layer,set3D) AddMethod(Layer,setLineWidth) AddMethod(Layer,setBorderColor) AddMethod(Layer,setLegend) AddMethod(Layer,setLegendOrder) AddMethod(Layer,getLegendIcon) AddMethod(Layer,setDataCombineMethod) AddMethod(Layer,setBaseLine) AddMethod(Layer,addDataSet) ;AddMethod(Layer,addDataSet) AddMethod(Layer,addDataGroup) AddMethod(Layer,addExtraField) AddMethod(Layer,addExtraField2) AddMethod(Layer,getDataSet) AddMethod(Layer,getDataSetByZ) AddMethod(Layer,getDataSetCount) AddMethod(Layer,setUseYAxis2) AddMethod(Layer,setUseYAxis) AddMethod(Layer,setXData) AddMethod(Layer,setXData2) AddMethod(Layer,getXPosition) AddMethod(Layer,getNearestXValue) AddMethod(Layer,getXIndexOf) AddMethod(Layer,alignLayer) AddMethod(Layer,getXCoor) AddMethod(Layer,getYCoor) AddMethod(Layer,getYCoor2) AddMethod(Layer,xZoneColor) AddMethod(Layer,yZoneColor) AddMethod(Layer,yZoneColor2) AddMethod(Layer,getImageCoor) AddMethod(Layer,getImageCoor2) AddMethod(Layer,getHTMLImageMap) AddMethod(Layer,setHTMLImageMap) AddMethod(Layer,setDataLabelFormat) AddMethod(Layer,setDataLabelStyle) AddMethod(Layer,setAggregateLabelFormat) AddMethod(Layer,setAggregateLabelStyle) AddMethod(Layer,addCustomDataLabel) AddMethod(Layer,addCustomAggregateLabel) AddMethod(Layer,addCustomGroupLabel) EndConstructor() Procedure.i New_Layer(ptr.LayerInternal) InitInterface(Layer,Object,ptr) EndProcedure ;} ;- Class BarLayer ;{ Class BarLayer Macro pBarLayer : i : EndMacro Interface BarLayer Extends Layer setBarGap(barGap.d, subBarGap.d = #Chart_NoValue) setBarWidth(barWidth.l, subBarWidth.l = -1) setMinLabelSize(s.l) setMinImageMapSize(s.l) setBarShape(shape.l, dataGroup.l = -1, dataItem.l = -1) setBarShape2(*shape.Long, shapeLen.l, dataGroup.l = -1, dataItem.l = -1) setIconSize(height.l, width.l = -1) setOverlapRatio(overlapRatio.d, firstOnTop.cd_bool = #True) EndInterface Structure sBarLayer Extends sLayer BarLayer_ptr.BarLayerInternal EndStructure Method(BarLayer,setBarGap)(*this.sBarLayer, barGap.d, subBarGap.d) CBarLayer_setBarGap(*this\BarLayer_ptr, barGap, subBarGap) EndMethod() Method(BarLayer,setBarWidth)(*this.sBarLayer, barWidth.l, subBarWidth.l) CBarLayer_setBarWidth(*this\BarLayer_ptr, barWidth, subBarWidth) EndMethod() Method(BarLayer,setMinLabelSize)(*this.sBarLayer, s.l) CBarLayer_setMinLabelSize(*this\BarLayer_ptr, s) EndMethod() Method(BarLayer,setMinImageMapSize)(*this.sBarLayer, s.l) CBarLayer_setMinImageMapSize(*this\BarLayer_ptr, s) EndMethod() Method(BarLayer,setBarShape)(*this.sBarLayer, shape.l, dataGroup.l, dataItem.l) CBarLayer_setBarShape(*this\BarLayer_ptr, shape, dataGroup, dataItem) EndMethod() Method(BarLayer,setBarShape2)(*this.sBarLayer, *shape.Long, shapeLen.l, dataGroup.l, dataItem.l) CBarLayer_setBarShape2(*this\BarLayer_ptr, *shape, shapeLen, dataGroup, dataItem) EndMethod() Method(BarLayer,setIconSize)(*this.sBarLayer, height.l, width.l) CBarLayer_setIconSize(*this\BarLayer_ptr, height, width) EndMethod() Method(BarLayer,setOverlapRatio)(*this.sBarLayer, overlapRatio.d, firstOnTop.cd_bool) CBarLayer_setOverlapRatio(*this\BarLayer_ptr, overlapRatio, firstOnTop) EndMethod() ConstructorInit(BarLayer,Layer) baseInit(Layer,BarLayer2Layer(init)) *this\BarLayer_ptr = init EndConstructorInit() Constructor(BarLayer,Layer) AddMethod(BarLayer,setBarGap) AddMethod(BarLayer,setBarWidth) AddMethod(BarLayer,setMinLabelSize) AddMethod(BarLayer,setMinImageMapSize) AddMethod(BarLayer,setBarShape) AddMethod(BarLayer,setBarShape2) AddMethod(BarLayer,setIconSize) AddMethod(BarLayer,setOverlapRatio) EndConstructor() Procedure.i New_BarLayer(ptr.BarLayerInternal) InitInterface(BarLayer,Layer,ptr) EndProcedure ;} ;- Class InterLineLayer ;{ Class InterLineLayer Macro pInterLineLayer : i : EndMacro Interface InterLineLayer Extends Layer setGapColor(gapColor12.l, gapColor21.l = -1) EndInterface Structure sInterLineLayer Extends sLayer InterLineLayer_ptr.InterLineLayerInternal EndStructure Method(InterLineLayer,setGapColor)(*this.sInterLineLayer, gapColor12.l, gapColor21.l) CInterLineLayer_setGapColor(*this\InterLineLayer_ptr, gapColor12, gapColor21) EndMethod() ConstructorInit(InterLineLayer,Layer) baseInit(Layer,InterLineLayer2Layer(init)) *this\InterLineLayer_ptr = init EndConstructorInit() Constructor(InterLineLayer,Layer) AddMethod(InterLineLayer,setGapColor) EndConstructor() Procedure.i New_InterLineLayer(ptr.InterLineLayerInternal) InitInterface(InterLineLayer,Layer,ptr) EndProcedure ;} ;- Class LineLayer ;{ Class LineLayer Macro pLineLayer : i : EndMacro Interface LineLayer Extends Layer setSymbolScale(*zDataX.Double, zDataXLen.l, scaleTypeX.l = #Chart_PixelScale, *zDataY.Double = 0, zDataYLen.l = 0, scaleTypeY.l = #Chart_PixelScale) setGapColor(lineColor.l, lineWidth.l = -1) setImageMapWidth(width.l) setFastLineMode(b.cd_bool = #True) getLine.LineObj(dataSet.l = 0) EndInterface Structure sLineLayer Extends sLayer LineLayer_ptr.LineLayerInternal EndStructure Method(LineLayer,setSymbolScale)(*this.sLineLayer, *zDataX.Double, zDataXLen.l, scaleTypeX.l, *zDataY.Double, zDataYLen.l, scaleTypeY.l) CLineLayer_setSymbolScale(*this\LineLayer_ptr, *zDataX, zDataXLen, scaleTypeX, *zDataY, zDataYLen, scaleTypeY) EndMethod() Method(LineLayer,setGapColor)(*this.sLineLayer, lineColor.l, lineWidth.l) CLineLayer_setGapColor(*this\LineLayer_ptr, lineColor, lineWidth) EndMethod() Method(LineLayer,setImageMapWidth)(*this.sLineLayer, width.l) CLineLayer_setImageMapWidth(*this\LineLayer_ptr, width) EndMethod() Method(LineLayer,setFastLineMode)(*this.sLineLayer, b.cd_bool) CLineLayer_setFastLineMode(*this\LineLayer_ptr, b) EndMethod() Method(LineLayer,getLine,.LineObj)(*this.sLineLayer, dataSet.l) ProcedureReturn CLineLayer_getLine(*this\LineLayer_ptr, dataSet) EndMethod() ConstructorInit(LineLayer,Layer) baseInit(Layer,LineLayer2Layer(init)) *this\LineLayer_ptr = init EndConstructorInit() Constructor(LineLayer,Layer) AddMethod(LineLayer,setSymbolScale) AddMethod(LineLayer,setGapColor) AddMethod(LineLayer,setImageMapWidth) AddMethod(LineLayer,setFastLineMode) AddMethod(LineLayer,getLine) EndConstructor() Procedure.i New_LineLayer(ptr.LineLayerInternal) InitInterface(LineLayer,Layer,ptr) EndProcedure ;} ; In the current version, a Scatter chart is implemented as a ; special configuration of a Line chart. Macro ScatterLayer : LineLayer : EndMacro Macro pScatterLayer : i : EndMacro ;- Class SplineLayer ;{ Class SplineLayer Macro pSplineLayer : i : EndMacro Interface SplineLayer Extends LineLayer setTension(tension.d) setMonotonicity(m.l) EndInterface Structure sSplineLayer Extends sLineLayer SplineLayer_ptr.SplineLayerInternal EndStructure Method(SplineLayer,setTension)(*this.sSplineLayer, tension.d) CSplineLayer_setTension(*this\SplineLayer_ptr, tension) EndMethod() Method(SplineLayer,setMonotonicity)(*this.sSplineLayer, m.l) CSplineLayer_setMonotonicity(*this\SplineLayer_ptr, m) EndMethod() ConstructorInit(SplineLayer,LineLayer) baseInit(LineLayer,SplineLayer2LineLayer(init)) *this\SplineLayer_ptr = init EndConstructorInit() Constructor(SplineLayer,LineLayer) AddMethod(SplineLayer,setTension) AddMethod(SplineLayer,setMonotonicity) EndConstructor() Procedure.i New_SplineLayer(ptr.SplineLayerInternal) InitInterface(SplineLayer,LineLayer,ptr) EndProcedure ;} ;- Class StepLineLayer ;{ Class StepLineLayer Macro pStepLineLayer : i : EndMacro Interface StepLineLayer Extends LineLayer setAlignment(a.l) EndInterface Structure sStepLineLayer Extends sLineLayer StepLineLayer_ptr.StepLineLayerInternal EndStructure Method(StepLineLayer,setAlignment)(*this.sStepLineLayer, a.l) CStepLineLayer_setAlignment(*this\StepLineLayer_ptr, a) EndMethod() ConstructorInit(StepLineLayer,LineLayer) baseInit(LineLayer,StepLineLayer2LineLayer(init)) *this\StepLineLayer_ptr = init EndConstructorInit() Constructor(StepLineLayer,LineLayer) AddMethod(StepLineLayer,setAlignment) EndConstructor() Procedure.i New_StepLineLayer(ptr.StepLineLayerInternal) InitInterface(StepLineLayer,LineLayer,ptr) EndProcedure ;} ;- Class AreaLayer ;{ Class AreaLayer Macro pAreaLayer : i : EndMacro Interface AreaLayer Extends Layer setMinLabelSize(s.l) setGapColor(fillColor.l) EndInterface Structure sAreaLayer Extends sLayer AreaLayer_ptr.AreaLayerInternal EndStructure Method(AreaLayer,setMinLabelSize)(*this.sAreaLayer, s.l) CAreaLayer_setMinLabelSize(*this\AreaLayer_ptr, s) EndMethod() Method(AreaLayer,setGapColor)(*this.sAreaLayer, fillColor.l) CAreaLayer_setGapColor(*this\AreaLayer_ptr, fillColor) EndMethod() ConstructorInit(AreaLayer,Layer) baseInit(Layer,AreaLayer2Layer(init)) *this\AreaLayer_ptr = init EndConstructorInit() Constructor(AreaLayer,Layer) AddMethod(AreaLayer,setMinLabelSize) AddMethod(AreaLayer,setGapColor) EndConstructor() Procedure.i New_AreaLayer(ptr.AreaLayerInternal) InitInterface(AreaLayer,Layer,ptr) EndProcedure ;} ;- Class BaseBoxLayer ;{ Class BaseBoxLayer Macro pBaseBoxLayer : i : EndMacro Interface BaseBoxLayer Extends Layer setDataGap(gap.d) setDataWidth(width.l) setMinImageMapSize(size.l) EndInterface Structure sBaseBoxLayer Extends sLayer BaseBoxLayer_ptr.BaseBoxLayerInternal EndStructure Method(BaseBoxLayer,setDataGap)(*this.sBaseBoxLayer, gap.d) CBaseBoxLayer_setDataGap(*this\BaseBoxLayer_ptr, gap) EndMethod() Method(BaseBoxLayer,setDataWidth)(*this.sBaseBoxLayer, width.l) CBaseBoxLayer_setDataWidth(*this\BaseBoxLayer_ptr, width) EndMethod() Method(BaseBoxLayer,setMinImageMapSize)(*this.sBaseBoxLayer, size.l) CBaseBoxLayer_setMinImageMapSize(*this\BaseBoxLayer_ptr, size) EndMethod() ConstructorInit(BaseBoxLayer,Layer) baseInit(Layer,BaseBoxLayer2Layer(init)) *this\BaseBoxLayer_ptr = init EndConstructorInit() Constructor(BaseBoxLayer,Layer) AddMethod(BaseBoxLayer,setDataGap) AddMethod(BaseBoxLayer,setDataWidth) AddMethod(BaseBoxLayer,setMinImageMapSize) EndConstructor() Procedure.i New_BaseBoxLayer(ptr.BaseBoxLayerInternal) InitInterface(BaseBoxLayer,Layer,ptr) EndProcedure ;} ;- Class HLOCLayer ;{ Class HLOCLayer Macro pHLOCLayer : i : EndMacro Interface HLOCLayer Extends BaseBoxLayer setColorMethod(colorMethod.l, riseColor.l, fallColor.l = -1, leadValue.d = -1.7E308) EndInterface Structure sHLOCLayer Extends sBaseBoxLayer HLOCLayer_ptr.HLOCLayerInternal EndStructure Method(HLOCLayer,setColorMethod)(*this.sHLOCLayer, colorMethod.l, riseColor.l, fallColor.l, leadValue.d) CHLOCLayer_setColorMethod(*this\HLOCLayer_ptr, colorMethod, riseColor, fallColor, leadValue) EndMethod() ConstructorInit(HLOCLayer,BaseBoxLayer) baseInit(BaseBoxLayer,HLOCLayer2BaseBoxLayer(init)) *this\HLOCLayer_ptr = init EndConstructorInit() Constructor(HLOCLayer,BaseBoxLayer) AddMethod(HLOCLayer,setColorMethod) EndConstructor() Procedure.i New_HLOCLayer(ptr.HLOCLayerInternal) InitInterface(HLOCLayer,BaseBoxLayer,ptr) EndProcedure ;} ;- Class CandleStickLayer ;{ Class CandleStickLayer Macro pCandleStickLayer : i : EndMacro Interface CandleStickLayer Extends BaseBoxLayer EndInterface Structure sCandleStickLayer Extends sBaseBoxLayer CandleStickLayer_ptr.CandleStickLayerInternal EndStructure ConstructorInit(CandleStickLayer,BaseBoxLayer) baseInit(BaseBoxLayer,CandleStickLayer2BaseBoxLayer(init)) *this\CandleStickLayer_ptr = init EndConstructorInit() Constructor(CandleStickLayer,BaseBoxLayer) EndConstructor() Procedure.i New_CandleStickLayer(ptr.CandleStickLayerInternal) InitInterface(CandleStickLayer,BaseBoxLayer,ptr) EndProcedure ;} ;- Class BoxWhiskerLayer ;{ Class BoxWhiskerLayer Macro pBoxWhiskerLayer : i : EndMacro Interface BoxWhiskerLayer Extends BaseBoxLayer setBoxColors(*colors.Long, colorsLen.l, *names.Integer = 0, namesLen.l = 0) setBoxColor(item.l, boxColor.l) setWhiskerBrightness(whiskerBrightness.d) EndInterface Structure sBoxWhiskerLayer Extends sBaseBoxLayer BoxWhiskerLayer_ptr.BoxWhiskerLayerInternal EndStructure Method(BoxWhiskerLayer,setBoxColors)(*this.sBoxWhiskerLayer, *colors.Long, colorsLen.l, *names.Integer, namesLen.l) CBoxWhiskerLayer_setBoxColors(*this\BoxWhiskerLayer_ptr, *colors, colorsLen, *names, namesLen) EndMethod() Method(BoxWhiskerLayer,setBoxColor)(*this.sBoxWhiskerLayer, item.l, boxColor.l) CBoxWhiskerLayer_setBoxColor(*this\BoxWhiskerLayer_ptr, item, boxColor) EndMethod() Method(BoxWhiskerLayer,setWhiskerBrightness)(*this.sBoxWhiskerLayer, whiskerBrightness.d) CBoxWhiskerLayer_setWhiskerBrightness(*this\BoxWhiskerLayer_ptr, whiskerBrightness) EndMethod() ConstructorInit(BoxWhiskerLayer,BaseBoxLayer) baseInit(BaseBoxLayer,BoxWhiskerLayer2BaseBoxLayer(init)) *this\BoxWhiskerLayer_ptr = init EndConstructorInit() Constructor(BoxWhiskerLayer,BaseBoxLayer) AddMethod(BoxWhiskerLayer,setBoxColors) AddMethod(BoxWhiskerLayer,setBoxColor) AddMethod(BoxWhiskerLayer,setWhiskerBrightness) EndConstructor() Procedure.i New_BoxWhiskerLayer(ptr.BoxWhiskerLayerInternal) InitInterface(BoxWhiskerLayer,BaseBoxLayer,ptr) EndProcedure ;} ;- Class TrendLayer ;{ Class TrendLayer Macro pTrendLayer : i : EndMacro Interface TrendLayer Extends Layer setRegressionType(regressionType.l) addConfidenceBand(confidence.d, upperFillColor.l, upperEdgeColor.l = #Chart_Transparent, upperLineWidth.l = 1, lowerFillColor.l = -1, lowerEdgeColor.l = -1, lowerLineWidth.l = -1) addPredictionBand(confidence.d, upperFillColor.l, upperEdgeColor.l = #Chart_Transparent, upperLineWidth.l = 1, lowerFillColor.l = -1, lowerEdgeColor.l = -1, lowerLineWidth.l = -1) getSlope.d() getIntercept.d() getCorrelation.d() getStdError.d() getCoefficient.d(i.l) setImageMapWidth(width.l) getLine.LineObj() EndInterface Structure sTrendLayer Extends sLayer TrendLayer_ptr.TrendLayerInternal EndStructure Method(TrendLayer,setRegressionType)(*this.sTrendLayer, regressionType.l) CTrendLayer_setRegressionType(*this\TrendLayer_ptr, regressionType) EndMethod() Method(TrendLayer,addConfidenceBand)(*this.sTrendLayer, confidence.d, upperFillColor.l, upperEdgeColor.l, upperLineWidth.l, lowerFillColor.l, lowerEdgeColor.l, lowerLineWidth.l) CTrendLayer_addConfidenceBand(*this\TrendLayer_ptr, confidence, upperFillColor, upperEdgeColor, upperLineWidth, lowerFillColor, lowerEdgeColor, lowerLineWidth) EndMethod() Method(TrendLayer,addPredictionBand)(*this.sTrendLayer, confidence.d, upperFillColor.l, upperEdgeColor.l, upperLineWidth.l, lowerFillColor.l, lowerEdgeColor.l, lowerLineWidth.l) CTrendLayer_addPredictionBand(*this\TrendLayer_ptr, confidence, upperFillColor, upperEdgeColor, upperLineWidth, lowerFillColor, lowerEdgeColor, lowerLineWidth) EndMethod() Method(TrendLayer,getSlope,.d)(*this.sTrendLayer) ProcedureReturn CTrendLayer_getSlope(*this\TrendLayer_ptr) EndMethod() Method(TrendLayer,getIntercept,.d)(*this.sTrendLayer) ProcedureReturn CTrendLayer_getIntercept(*this\TrendLayer_ptr) EndMethod() Method(TrendLayer,getCorrelation,.d)(*this.sTrendLayer) ProcedureReturn CTrendLayer_getCorrelation(*this\TrendLayer_ptr) EndMethod() Method(TrendLayer,getStdError,.d)(*this.sTrendLayer) ProcedureReturn CTrendLayer_getStdError(*this\TrendLayer_ptr) EndMethod() Method(TrendLayer,getCoefficient,.d)(*this.sTrendLayer, i.l) ProcedureReturn CTrendLayer_getCoefficient(*this\TrendLayer_ptr, i) EndMethod() Method(TrendLayer,setImageMapWidth)(*this.sTrendLayer, width.l) CTrendLayer_setImageMapWidth(*this\TrendLayer_ptr, width) EndMethod() Method(TrendLayer,getLine,.LineObj)(*this.sTrendLayer) ProcedureReturn CTrendLayer_getLine(*this\TrendLayer_ptr) EndMethod() ConstructorInit(TrendLayer,Layer) baseInit(Layer,TrendLayer2Layer(init)) *this\TrendLayer_ptr = init EndConstructorInit() Constructor(TrendLayer,Layer) AddMethod(TrendLayer,setRegressionType) AddMethod(TrendLayer,addConfidenceBand) AddMethod(TrendLayer,addPredictionBand) AddMethod(TrendLayer,getSlope) AddMethod(TrendLayer,getIntercept) AddMethod(TrendLayer,getCorrelation) AddMethod(TrendLayer,getStdError) AddMethod(TrendLayer,getCoefficient) AddMethod(TrendLayer,setImageMapWidth) AddMethod(TrendLayer,getLine) EndConstructor() Procedure.i New_TrendLayer(ptr.TrendLayerInternal) InitInterface(TrendLayer,Layer,ptr) EndProcedure ;} ;- Class VectorLayer ;{ Class VectorLayer Macro pVectorLayer : i : EndMacro Interface VectorLayer Extends Layer setVector(*lengths.Double, lengthsLen.l, *directions.Double, directionsLen.l, lengthScale.l = #Chart_PixelScale) setArrowHead(width.l, height.l = 0) setArrowHead2(*polygon.Long, polygonLen.l) setArrowStem(*polygon.Long, polygonLen.l) setArrowAlignment(alignment.l) setIconSize(height.l, width.l = 0) setVectorMargin(startMargin.d, endMargin.d = #Chart_NoValue) EndInterface Structure sVectorLayer Extends sLayer VectorLayer_ptr.VectorLayerInternal EndStructure Method(VectorLayer,setVector)(*this.sVectorLayer, *lengths.Double, lengthsLen.l, *directions.Double, directionsLen.l, lengthScale.l) CVectorLayer_setVector(*this\VectorLayer_ptr, *lengths, lengthsLen, *directions, directionsLen, lengthScale) EndMethod() Method(VectorLayer,setArrowHead)(*this.sVectorLayer, width.l, height.l) CVectorLayer_setArrowHead(*this\VectorLayer_ptr, width, height) EndMethod() Method(VectorLayer,setArrowHead2)(*this.sVectorLayer, *polygon.Long, polygonLen.l) CVectorLayer_setArrowHead2(*this\VectorLayer_ptr, *polygon, polygonLen) EndMethod() Method(VectorLayer,setArrowStem)(*this.sVectorLayer, *polygon.Long, polygonLen.l) CVectorLayer_setArrowStem(*this\VectorLayer_ptr, *polygon, polygonLen) EndMethod() Method(VectorLayer,setArrowAlignment)(*this.sVectorLayer, alignment.l) CVectorLayer_setArrowAlignment(*this\VectorLayer_ptr, alignment) EndMethod() Method(VectorLayer,setIconSize)(*this.sVectorLayer, height.l, width.l) CVectorLayer_setIconSize(*this\VectorLayer_ptr, height, width) EndMethod() Method(VectorLayer,setVectorMargin)(*this.sVectorLayer, startMargin.d, endMargin.d) CVectorLayer_setVectorMargin(*this\VectorLayer_ptr, startMargin, endMargin) EndMethod() ConstructorInit(VectorLayer,Layer) baseInit(Layer,VectorLayer2Layer(init)) *this\VectorLayer_ptr = init EndConstructorInit() Constructor(VectorLayer,Layer) AddMethod(VectorLayer,setVector) AddMethod(VectorLayer,setArrowHead) AddMethod(VectorLayer,setArrowHead2) AddMethod(VectorLayer,setArrowStem) AddMethod(VectorLayer,setArrowAlignment) AddMethod(VectorLayer,setIconSize) AddMethod(VectorLayer,setVectorMargin) EndConstructor() Procedure.i New_VectorLayer(ptr.VectorLayerInternal) InitInterface(VectorLayer,Layer,ptr) EndProcedure ;} ;- Class ContourLayer ;{ Class ContourLayer Macro pContourLayer : i : EndMacro Interface ContourLayer Extends Layer setZData(*zData.Double, zDataLen.l) setZBounds(minZ.d, maxZ.d) setSmoothInterpolation(b.cd_bool) setContourColor(contourColor.l, minorContourColor.l = -1) setContourWidth(contourWidth.l, minorContourWidth.l = -1) setExactContour(contour.cd_bool = #True) setExactContour2(contour.cd_bool, markContour.cd_bool) setColorAxis.pColorAxis(x.l, y.l, alignment.l, length.l, orientation.l) colorAxis.pColorAxis() EndInterface Structure sContourLayer Extends sLayer ContourLayer_ptr.ContourLayerInternal EndStructure Method(ContourLayer,setZData)(*this.sContourLayer, *zData.Double, zDataLen.l) CContourLayer_setZData(*this\ContourLayer_ptr, *zData, zDataLen) EndMethod() Method(ContourLayer,setZBounds)(*this.sContourLayer, minZ.d, maxZ.d) CContourLayer_setZBounds(*this\ContourLayer_ptr, minZ, maxZ) EndMethod() Method(ContourLayer,setSmoothInterpolation)(*this.sContourLayer, b.cd_bool) CContourLayer_setSmoothInterpolation(*this\ContourLayer_ptr, b) EndMethod() Method(ContourLayer,setContourColor)(*this.sContourLayer, contourColor.l, minorContourColor.l) CContourLayer_setContourColor(*this\ContourLayer_ptr, contourColor, minorContourColor) EndMethod() Method(ContourLayer,setContourWidth)(*this.sContourLayer, contourWidth.l, minorContourWidth.l) CContourLayer_setContourWidth(*this\ContourLayer_ptr, contourWidth, minorContourWidth) EndMethod() Method(ContourLayer,setExactContour)(*this.sContourLayer, contour.cd_bool) CContourLayer_setExactContour(*this\ContourLayer_ptr, contour, contour) EndMethod() Method(ContourLayer,setExactContour2)(*this.sContourLayer, contour.cd_bool, markContour.cd_bool) CContourLayer_setExactContour(*this\ContourLayer_ptr, contour, markContour) EndMethod() Method(ContourLayer,setColorAxis,.pColorAxis)(*this.sContourLayer, x.l, y.l, alignment.l, length.l, orientation.l) Protected RET.ColorAxis = New( ColorAxis(CContourLayer_setColorAxis(*this\ContourLayer_ptr, x, y, alignment, length, orientation)) ) Protected this.ContourLayer = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(ContourLayer,colorAxis,.pColorAxis)(*this.sContourLayer) Protected RET.ColorAxis = New( ColorAxis(CContourLayer_colorAxis(*this\ContourLayer_ptr)) ) Protected this.ContourLayer = *this this\reg(RET) ProcedureReturn RET EndMethod() ConstructorInit(ContourLayer,Layer) baseInit(Layer,ContourLayer2Layer(init)) *this\ContourLayer_ptr = init EndConstructorInit() Constructor(ContourLayer,Layer) AddMethod(ContourLayer,setZData) AddMethod(ContourLayer,setZBounds) AddMethod(ContourLayer,setSmoothInterpolation) AddMethod(ContourLayer,setContourColor) AddMethod(ContourLayer,setContourWidth) AddMethod(ContourLayer,setExactContour) AddMethod(ContourLayer,setExactContour2) AddMethod(ContourLayer,setColorAxis) AddMethod(ContourLayer,colorAxis) EndConstructor() Procedure.i New_ContourLayer(ptr.ContourLayerInternal) InitInterface(ContourLayer,Layer,ptr) EndProcedure ;} ;- Class PlotArea ;{ Class PlotArea Macro pPlotArea : i : EndMacro Interface PlotArea Extends Object setBackground(color.l, altBgColor.l = -1, edgeColor.l = -1) setBackground2(img.s, align.l = #Chart_Center) set4QBgColor(Q1Color.l, Q2Color.l, Q3Color.l, Q4Color.l, edgeColor.l = -1) setAltBgColor(horizontal.cd_bool, color1.l, color2.l, edgeColor.l = -1) setGridColor(hGridColor.l, vGridColor.l = #Chart_Transparent, minorHGridColor.l = -1, minorVGridColor.l = -1) setGridWidth(hGridWidth.l, vGridWidth.l = -1, minorHGridWidth.l = -1, minorVGridWidth.l = -1) setGridAxis(xGridAxis.Axis, yGridAxis.Axis) moveGridBefore(layer.Layer = 0) getLeftX.l() getTopY.l() getWidth.l() getHeight.l() getRightX.l() getBottomY.l() EndInterface Structure sPlotArea Extends sObject PlotArea_ptr.PlotAreaInternal EndStructure Method(PlotArea,setBackground)(*this.sPlotArea, color.l, altBgColor.l, edgeColor.l) CPlotArea_setBackground(*this\PlotArea_ptr, color, altBgColor, edgeColor) EndMethod() Method(PlotArea,setBackground2)(*this.sPlotArea, img.s, align.l) CPlotArea_setBackground2(*this\PlotArea_ptr, img, align) EndMethod() Method(PlotArea,set4QBgColor)(*this.sPlotArea, Q1Color.l, Q2Color.l, Q3Color.l, Q4Color.l, edgeColor.l) CPlotArea_set4QBgColor(*this\PlotArea_ptr, Q1Color, Q2Color, Q3Color, Q4Color, edgeColor) EndMethod() Method(PlotArea,setAltBgColor)(*this.sPlotArea, horizontal.cd_bool, color1.l, color2.l, edgeColor.l) CPlotArea_setAltBgColor(*this\PlotArea_ptr, horizontal, color1, color2, edgeColor) EndMethod() Method(PlotArea,setGridColor)(*this.sPlotArea, hGridColor.l, vGridColor.l, minorHGridColor.l, minorVGridColor.l) CPlotArea_setGridColor(*this\PlotArea_ptr, hGridColor, vGridColor, minorHGridColor, minorVGridColor) EndMethod() Method(PlotArea,setGridWidth)(*this.sPlotArea, hGridWidth.l, vGridWidth.l, minorHGridWidth.l, minorVGridWidth.l) CPlotArea_setGridWidth(*this\PlotArea_ptr, hGridWidth, vGridWidth, minorHGridWidth, minorVGridWidth) EndMethod() Method(PlotArea,setGridAxis)(*this.sPlotArea, xGridAxis.Axis, yGridAxis.Axis) Protected xGridAxisInternal.AxisInternal Protected yGridAxisInternal.AxisInternal If xGridAxis : xGridAxisInternal = xGridAxis\getInternalPtr() : EndIf If yGridAxis : yGridAxisInternal = yGridAxis\getInternalPtr() : EndIf CPlotArea_setGridAxis(*this\PlotArea_ptr, xGridAxisInternal, yGridAxisInternal) EndMethod() Method(PlotArea,moveGridBefore)(*this.sPlotArea, layer.Layer) If layer CPlotArea_moveGridBefore(*this\PlotArea_ptr, layer\getInternalPtr()) Else CPlotArea_moveGridBefore(*this\PlotArea_ptr, 0) EndIf EndMethod() Method(PlotArea,getLeftX,.l)(*this.sPlotArea) ProcedureReturn CPlotArea_getLeftX(*this\PlotArea_ptr) EndMethod() Method(PlotArea,getTopY,.l)(*this.sPlotArea) ProcedureReturn CPlotArea_getTopY(*this\PlotArea_ptr) EndMethod() Method(PlotArea,getWidth,.l)(*this.sPlotArea) ProcedureReturn CPlotArea_getWidth(*this\PlotArea_ptr) EndMethod() Method(PlotArea,getHeight,.l)(*this.sPlotArea) ProcedureReturn CPlotArea_getHeight(*this\PlotArea_ptr) EndMethod() Method(PlotArea,getRightX,.l)(*this.sPlotArea) ProcedureReturn CPlotArea_getRightX(*this\PlotArea_ptr) EndMethod() Method(PlotArea,getBottomY,.l)(*this.sPlotArea) ProcedureReturn CPlotArea_getBottomY(*this\PlotArea_ptr) EndMethod() ConstructorInit(PlotArea,Object) *this\PlotArea_ptr = init EndConstructorInit() Constructor(PlotArea,Object) AddMethod(PlotArea,setBackground) AddMethod(PlotArea,setBackground2) AddMethod(PlotArea,set4QBgColor) AddMethod(PlotArea,setAltBgColor) AddMethod(PlotArea,setGridColor) AddMethod(PlotArea,setGridWidth) AddMethod(PlotArea,setGridAxis) AddMethod(PlotArea,moveGridBefore) AddMethod(PlotArea,getLeftX) AddMethod(PlotArea,getTopY) AddMethod(PlotArea,getWidth) AddMethod(PlotArea,getHeight) AddMethod(PlotArea,getRightX) AddMethod(PlotArea,getBottomY) EndConstructor() Procedure.i New_PlotArea(ptr.PlotAreaInternal) InitInterface(PlotArea,Object,ptr) EndProcedure ;} ;- Class XYChart ;{ Class XYChart Macro pXYChart : i : EndMacro Interface XYChart Extends BaseChart __regLayer.pLayer(ptr.LayerInternal) addAxis.pAxis(align.l, offset.l) yAxis.pAxis() yAxis2.pAxis() syncYAxis(slope.d = 1, intercept.d = 0) setYAxisOnRight(b.cd_bool = #True) xAxis.pAxis() xAxis2.pAxis() setXAxisOnTop(b.cd_bool = #True) swapXY(b.cd_bool = #True) setAxisAtOrigin(originMode.l = #Chart_XYAxisAtOrigin, symmetryMode.l = 0) getXCoor.l(v.d) getYCoor.l(v.d, yAxis.Axis = 0) getXValue.d(xCoor.l) getNearestXValue.d(xCoor.d) getYValue.d(yCoor.l, yAxis.Axis = 0) xZoneColor.l(threshold.d, belowColor.l, aboveColor.l) yZoneColor.l(threshold.d, belowColor.l, aboveColor.l, yAxis.Axis = 0) setPlotArea.pPlotArea(x.l, y.l, width.l, height.l, bgColor.l = #Chart_Transparent, altBgColor.l = -1, edgeColor.l = -1, hGridColor.l = $c0c0c0, vGridColor.l = #Chart_Transparent) getPlotArea.pPlotArea() setClipping(margin.l = 0) setTrimData(startPos.l, len.l = $7fffffff) addBarLayer.pBarLayer(*ddata.double, ddataLen.l, color.l = -1, name.s = "", depth.l = 0) addBarLayer2.pBarLayer(dataCombineMethod.l = #Chart_Side, depth.l = 0) addBarLayer3.pBarLayer(*ddata.double, ddataLen.l, *colors.Long, colorsLen.l, *names.Integer = 0, namesLen.l = 0, depth.l = 0) addLineLayer.pLineLayer(*ddata.double, ddataLen.l, color.l = -1, name.s = "", depth.l = 0) addLineLayer2.pLineLayer(dataCombineMethod.l = #Chart_Overlay, depth.l = 0) addAreaLayer.pAreaLayer(*ddata.double, ddataLen.l, color.l = -1, name.s = "", depth.l = 0) addAreaLayer2.pAreaLayer(dataCombineMethod.l = #Chart_Stack, depth.l = 0) addHLOCLayer.pHLOCLayer() addHLOCLayer2.pHLOCLayer(*highData.double, highDataLen.l, *lowData.double, lowDataLen.l, *openData.double = 0, openDataLen.l = 0, *closeData.double = 0, closeDataLen.l = 0,color.l = -1) addHLOCLayer3.pHLOCLayer(*highData.double, highDataLen.l, *lowData.double, lowDataLen.l, *openData.double, openDataLen.l, *closeData.double, closeDataLen.l, upColor.l, downColor.l, colorMode.l = -1, leadValue.d = -1.7E308) addCandleStickLayer.pCandleStickLayer(*highData.double, highDataLen.l, *lowData.double, lowDataLen.l, *openData.double, openDataLen.l, *closeData.double, closeDataLen.l, riseColor.l = $ffffff, fallColor.l = $0, edgeColor.l = #Chart_LineColor) addBoxWhiskerLayer.pBoxWhiskerLayer(*boxTop.Double, boxTopLen.l, *boxBottom.Double, boxBottomLen.l, *maxData.Double = 0, maxDataLen.l = 0, *minData.Double = 0, minDataLen.l = 0, *midData.Double = 0, midDataLen.l = 0, fillColor.l = -1, whiskerColor.l = #Chart_LineColor, edgeColor.l = -1) addBoxWhiskerLayer2.pBoxWhiskerLayer(*boxTop.Double, boxTopLen.l, *boxBottom.Double, boxBottomLen.l, *maxData.Double = 0, maxDataLen.l = 0, *minData.Double = 0, minDataLen.l = 0, *midData.Double = 0, midDataLen.l = 0, *fillColors.Long = 0, fillColorsLen.l = 0, whiskerBrightness.d = 0.5, *names.Integer = 0, namesLen.l = 0) addBoxLayer.pBoxWhiskerLayer(*boxTop.Double, boxTopLen.l, *boxBottom.Double, boxBottomLen.l, color.l = -1, name.s = "") addScatterLayer.pScatterLayer(*xData.Double, xDataLen.l, *yData.Double, yDataLen.l, name.s = "", symbol.l = #Chart_SquareSymbol, symbolSize.l = 5, fillColor.l = -1, edgeColor.l = -1) addTrendLayer.pTrendLayer(*ddata.Double, ddataLen.l, color.l = -1, name.s = "", depth.l = 0) addTrendLayer2.pTrendLayer(*xData.Double, xDataLen.l, *yData.Double, yDataLen.l, color.l = -1, name.s = "", depth.l = 0) addSplineLayer.pSplineLayer(*ddata.Double = 0, ddataLen.l = 0, color.l = -1, name.s = "") addStepLineLayer.pStepLineLayer(*ddata.Double = 0, ddataLen.l = 0, color.l = -1, name.s = "") addInterLineLayer.pInterLineLayer(line1.LineObj, line2.LineObj, color12.l, color21.l = -1) addVectorLayer.pVectorLayer(*xData.Double, xDataLen.l, *yData.Double, yDataLen.l, *lengths.Double, lengthsLen.l, *directions.Double, directionsLen.l, lengthScale.l = #Chart_PixelScale, color.l = -1, name.s = "") addContourLayer.pContourLayer(*xData.Double, xDataLen.l, *yData.Double, yDataLen.l, *zData.Double, zDataLen.l) getLayer.pLayer(i.l) getLayerByZ.pLayer(i.l) getLayerCount.l() layoutAxes() packPlotArea(leftX.l, topY.l, rightX.l, bottomY.l, minWidth.l = 0, minHeight.l = 0) EndInterface Structure sXYChart Extends sBaseChart XYChart_ptr.XYChartInternal List layerCache.Layer() EndStructure Method(XYChart,__regLayer,.pLayer)(*this.sXYChart, ptr.LayerInternal) If ptr = 0 : ProcedureReturn 0 : EndIf ForEach *this\layerCache() If *this\layerCache()\getInternalPtr() = ptr ProcedureReturn *this\layerCache() EndIf Next Protected RET.Layer = New( Layer(ptr) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,addAxis,.pAxis)(*this.sXYChart, align.l, offset.l) Protected RET.Axis = New( Axis(CXYChart_addAxis(*this\XYChart_ptr, align, offset)) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,yAxis,.pAxis)(*this.sXYChart) Protected RET.Axis = New( Axis(CXYChart_yAxis(*this\XYChart_ptr)) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,yAxis2,.pAxis)(*this.sXYChart) Protected RET.Axis = New( Axis(CXYChart_yAxis2(*this\XYChart_ptr)) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,syncYAxis)(*this.sXYChart, slope.d, intercept.d) CXYChart_syncYAxis(*this\XYChart_ptr, slope, intercept) EndMethod() Method(XYChart,setYAxisOnRight)(*this.sXYChart, b.cd_bool) CXYChart_setYAxisOnRight(*this\XYChart_ptr, b) EndMethod() Method(XYChart,xAxis,.pAxis)(*this.sXYChart) Protected RET.Axis = New( Axis(CXYChart_xAxis(*this\XYChart_ptr)) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,xAxis2,.pAxis)(*this.sXYChart) Protected RET.Axis = New( Axis(CXYChart_xAxis2(*this\XYChart_ptr)) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,setXAxisOnTop)(*this.sXYChart, b.cd_bool) CXYChart_setXAxisOnTop(*this\XYChart_ptr, b) EndMethod() Method(XYChart,swapXY)(*this.sXYChart, b.cd_bool) CXYChart_swapXY(*this\XYChart_ptr, b) EndMethod() Method(XYChart,setAxisAtOrigin)(*this.sXYChart, originMode.l, symmetryMode.l) CXYChart_setAxisAtOrigin(*this\XYChart_ptr, originMode, symmetryMode) EndMethod() Method(XYChart,getXCoor,.l)(*this.sXYChart, v.d) ProcedureReturn CXYChart_getXCoor(*this\XYChart_ptr, v) EndMethod() Method(XYChart,getYCoor,.l)(*this.sXYChart, v.d, yAxis.Axis) If yAxis = 0 ProcedureReturn CXYChart_getYCoor(*this\XYChart_ptr, v, 0) Else ProcedureReturn CXYChart_getYCoor(*this\XYChart_ptr, v, yAxis\getInternalPtr()) EndIf EndMethod() Method(XYChart,getXValue,.d)(*this.sXYChart, xCoor.l) ProcedureReturn CXYChart_getXValue(*this\XYChart_ptr, xCoor) EndMethod() Method(XYChart,getNearestXValue,.d)(*this.sXYChart, xCoor.d) ProcedureReturn CXYChart_getNearestXValue(*this\XYChart_ptr, xCoor) EndMethod() Method(XYChart,getYValue,.d)(*this.sXYChart, yCoor.l, yAxis.Axis) If yAxis = 0 ProcedureReturn CXYChart_getYValue(*this\XYChart_ptr, yCoor, 0) Else ProcedureReturn CXYChart_getYValue(*this\XYChart_ptr, yCoor, yAxis\getInternalPtr()) EndIf EndMethod() Method(XYChart,xZoneColor,.l)(*this.sXYChart, threshold.d, belowColor.l, aboveColor.l) ProcedureReturn CXYChart_xZoneColor(*this\XYChart_ptr, threshold, belowColor, aboveColor) EndMethod() Method(XYChart,yZoneColor,.l)(*this.sXYChart, threshold.d, belowColor.l, aboveColor.l, yAxis.Axis) If yAxis = 0 ProcedureReturn CXYChart_yZoneColor(*this\XYChart_ptr, threshold, belowColor, aboveColor, 0) Else ProcedureReturn CXYChart_yZoneColor(*this\XYChart_ptr, threshold, belowColor, aboveColor, yAxis\getInternalPtr()) EndIf EndMethod() Method(XYChart,setPlotArea,.pPlotArea)(*this.sXYChart, x.l, y.l, width.l, height.l, bgColor.l, altBgColor.l, edgeColor.l, hGridColor.l, vGridColor.l) Protected RET.PlotArea = New( PlotArea(CXYChart_setPlotArea(*this\XYChart_ptr, x, y, width, height, bgColor, altBgColor, edgeColor, hGridColor, vGridColor)) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,getPlotArea,.pPlotArea)(*this.sXYChart) Protected RET.PlotArea = New( PlotArea(CXYChart_getPlotArea(*this\XYChart_ptr)) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,setClipping)(*this.sXYChart, margin.l) CXYChart_setClipping(*this\XYChart_ptr, margin) EndMethod() Method(XYChart,setTrimData)(*this.sXYChart, startPos.l, len.l) CXYChart_setTrimData(*this\XYChart_ptr, startPos, len) EndMethod() Method(XYChart,addBarLayer,.pBarLayer)(*this.sXYChart, *_data_.double, dataLen.l, color.l, name.s, depth.l) Protected RET.BarLayer = New( BarLayer(CXYChart_addBarLayer(*this\XYChart_ptr, *_data_, dataLen, color, name, depth)) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,addBarLayer2,.pBarLayer)(*this.sXYChart, dataCombineMethod.l, depth.l) Protected RET.BarLayer = New( BarLayer(CXYChart_addBarLayer2(*this\XYChart_ptr, dataCombineMethod, depth)) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,addBarLayer3,.pBarLayer)(*this.sXYChart, *_data_.double, DataLen.l, *colors.Long, colorsLen.l, *names.Integer, namesLen.l, depth.l) Protected RET.BarLayer = New( BarLayer(CXYChart_addBarLayer3(*this\XYChart_ptr, *_data_, DataLen, *colors, colorsLen, *names, namesLen, depth)) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,addLineLayer,.pLineLayer)(*this.sXYChart, *ddata.double, ddataLen.l, color.l, name.s, depth.l) Protected RET.LineLayer = New( LineLayer(CXYChart_addLineLayer(*this\XYChart_ptr, *ddata, ddataLen, color, name, depth)) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,addLineLayer2,.pLineLayer)(*this.sXYChart, dataCombineMethod.l, depth.l) Protected RET.LineLayer = New( LineLayer(CXYChart_addLineLayer2(*this\XYChart_ptr, dataCombineMethod, depth)) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,addAreaLayer,.pAreaLayer)(*this.sXYChart, *ddata.double, ddataLen.l, color.l, name.s, depth.l) Protected RET.AreaLayer = New( AreaLayer(CXYChart_addAreaLayer(*this\XYChart_ptr, *ddata, ddataLen, color, name, depth)) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,addAreaLayer2,.pAreaLayer)(*this.sXYChart, dataCombineMethod.l, depth.l) Protected RET.AreaLayer = New( AreaLayer(CXYChart_addAreaLayer2(*this\XYChart_ptr, dataCombineMethod, depth)) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,addHLOCLayer,.pHLOCLayer)(*this.sXYChart) Protected RET.HLOCLayer = New( HLOCLayer(CXYChart_addHLOCLayer2(*this\XYChart_ptr)) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,addHLOCLayer2,.pHLOCLayer)(*this.sXYChart, *highData.double, highDataLen.l, *lowData.double, lowDataLen.l, *openData.double, openDataLen.l, *closeData.double, closeDataLen.l,color.l) Protected RET.HLOCLayer = New( HLOCLayer(CXYChart_addHLOCLayer(*this\XYChart_ptr, *highData, highDataLen, *lowData, lowDataLen, *openData, openDataLen, *closeData, closeDataLen, color)) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,addHLOCLayer3,.pHLOCLayer)(*this.sXYChart, *highData.double, highDataLen.l, *lowData.double, lowDataLen.l, *openData.double, openDataLen.l, *closeData.double, closeDataLen.l, upColor.l, downColor.l, colorMode.l, leadValue.d) Protected RET.HLOCLayer = New( HLOCLayer(CXYChart_addHLOCLayer3(*this\XYChart_ptr, *highData, highDataLen, *lowData, lowDataLen, *openData, openDataLen, *closeData, closeDataLen, upColor, downColor, colorMode, leadValue)) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,addCandleStickLayer,.pCandleStickLayer)(*this.sXYChart, *highData.double, highDataLen.l, *lowData.double, lowDataLen.l, *openData.double, openDataLen.l, *closeData.double, closeDataLen.l, riseColor.l, fallColor.l, edgeColor.l) Protected RET.CandleStickLayer = New( CandleStickLayer(CXYChart_addCandleStickLayer(*this\XYChart_ptr, *highData, highDataLen, *lowData, lowDataLen, *openData, openDataLen, *closeData, closeDataLen, riseColor, fallColor, edgeColor)) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,addBoxWhiskerLayer,.pBoxWhiskerLayer)(*this.sXYChart, *boxTop.Double, boxTopLen.l, *boxBottom.Double, boxBottomLen.l, *maxData.Double, maxDataLen.l, *minData.Double, minDataLen.l, *midData.Double, midDataLen.l, fillColor.l, whiskerColor.l, edgeColor.l) Protected RET.BoxWhiskerLayer = New( BoxWhiskerLayer(CXYChart_addBoxWhiskerLayer(*this\XYChart_ptr, *boxTop, boxTopLen, *boxBottom, boxBottomLen, *maxData, maxDataLen, *minData, minDataLen, *midData, midDataLen, fillColor, whiskerColor, edgeColor)) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,addBoxWhiskerLayer2,.pBoxWhiskerLayer)(*this.sXYChart, *boxTop.Double, boxTopLen.l, *boxBottom.Double, boxBottomLen.l, *maxData.Double, maxDataLen.l, *minData.Double, minDataLen.l, *midData.Double, midDataLen.l, *fillColors.Long, fillColorsLen.l, whiskerBrightness.d, *names.Integer, namesLen.l) Protected RET.BoxWhiskerLayer = New( BoxWhiskerLayer(CXYChart_addBoxWhiskerLayer2(*this\XYChart_ptr, *boxTop, boxTopLen, *boxBottom, boxBottomLen, *maxData, maxDataLen, *minData, minDataLen, *midData, midDataLen, *fillColors, fillColorsLen, whiskerBrightness, *names, namesLen)) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,addBoxLayer,.pBoxWhiskerLayer)(*this.sXYChart, *boxTop.Double, boxTopLen.l, *boxBottom.Double, boxBottomLen.l, color.l, name.s) Protected RET.BoxWhiskerLayer = New( BoxWhiskerLayer(CXYChart_addBoxLayer(*this\XYChart_ptr, *boxTop, boxTopLen, *boxBottom, boxBottomLen, color, name)) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,addScatterLayer,.pScatterLayer)(*this.sXYChart, *xData.Double, xDataLen.l, *yData.Double, yDataLen.l, name.s, symbol.l, symbolSize.l, fillColor.l, edgeColor.l) Protected RET.ScatterLayer = New( ScatterLayer(CXYChart_addScatterLayer(*this\XYChart_ptr, *xData, xDataLen, *yData, yDataLen, name, symbol, symbolSize, fillColor, edgeColor)) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,addTrendLayer,.pTrendLayer)(*this.sXYChart, *ddata.Double, ddataLen.l, color.l, name.s, depth.l) Protected RET.TrendLayer = New( TrendLayer(CXYChart_addTrendLayer(*this\XYChart_ptr, *ddata, ddataLen, color, name, depth)) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,addTrendLayer2,.pTrendLayer)(*this.sXYChart, *xData.Double, xDataLen.l, *yData.Double, yDataLen.l, color.l, name.s, depth.l) Protected RET.TrendLayer = New( TrendLayer(CXYChart_addTrendLayer2(*this\XYChart_ptr, *xData, xDataLen, *yData, yDataLen, color, name, depth)) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,addSplineLayer,.pSplineLayer)(*this.sXYChart, *ddata.Double, ddataLen.l, color.l, name.s) Protected RET.SplineLayer = New( SplineLayer(CXYChart_addSplineLayer(*this\XYChart_ptr, *ddata, ddataLen, color, name)) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,addStepLineLayer,.pStepLineLayer)(*this.sXYChart, *ddata.Double, ddataLen.l, color.l, name.s) Protected RET.StepLineLayer = New( StepLineLayer(CXYChart_addStepLineLayer(*this\XYChart_ptr, *ddata, ddataLen, color, name)) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,addInterLineLayer,.pInterLineLayer)(*this.sXYChart, line1.LineObj, line2.LineObj, color12.l, color21.l) Protected RET.InterLineLayer = New( InterLineLayer(CXYChart_addInterLineLayer(*this\XYChart_ptr, line1, line2, color12, color21)) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,addVectorLayer,.pVectorLayer)(*this.sXYChart, *xData.Double, xDataLen.l, *yData.Double, yDataLen.l, *lengths.Double, lengthsLen.l, *directions.Double, directionsLen.l, lengthScale.l, color.l, name.s) Protected RET.VectorLayer = New( VectorLayer(CXYChart_addVectorLayer(*this\XYChart_ptr, *xData, xDataLen, *yData, yDataLen, *lengths, lengthsLen, *directions, directionsLen, lengthScale, color, name)) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,addContourLayer,.pContourLayer)(*this.sXYChart, *xData.Double, xDataLen.l, *yData.Double, yDataLen.l, *zData.Double, zDataLen.l) Protected RET.ContourLayer = New( ContourLayer(CXYChart_addContourLayer(*this\XYChart_ptr, *xData, xDataLen, *yData, yDataLen, *zData, zDataLen)) ) Protected this.XYChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(XYChart,getLayer,.pLayer)(*this.sXYChart, i.l) Protected this.XYChart = *this ProcedureReturn this\__regLayer(CXYChart_getLayer(*this\XYChart_ptr, i)) EndMethod() Method(XYChart,getLayerByZ,.pLayer)(*this.sXYChart, i.l) Protected this.XYChart = *this ProcedureReturn this\__regLayer(CXYChart_getLayerByZ(*this\XYChart_ptr, i)) EndMethod() Method(XYChart,getLayerCount,.l)(*this.sXYChart) ProcedureReturn CXYChart_getLayerCount(*this\XYChart_ptr) EndMethod() Method(XYChart,layoutAxes)(*this.sXYChart) CXYChart_layoutAxes(*this\XYChart_ptr) EndMethod() Method(XYChart,packPlotArea)(*this.sXYChart, leftX.l, topY.l, rightX.l, bottomY.l, minWidth.l, minHeight.l) CXYChart_packPlotArea(*this\XYChart_ptr, leftX, topY, rightX, bottomY, minWidth, minHeight) EndMethod() Destructor(XYChart,BaseChart) ;FreeList( *this\layerCache() ) EndDestructor() Constructor(XYChart,BaseChart) AddMethod(XYChart,__regLayer) AddMethod(XYChart,addAxis) AddMethod(XYChart,yAxis) AddMethod(XYChart,yAxis2) AddMethod(XYChart,syncYAxis) AddMethod(XYChart,setYAxisOnRight) AddMethod(XYChart,xAxis) AddMethod(XYChart,xAxis2) AddMethod(XYChart,setXAxisOnTop) AddMethod(XYChart,swapXY) AddMethod(XYChart,setAxisAtOrigin) AddMethod(XYChart,getXCoor) AddMethod(XYChart,getYCoor) AddMethod(XYChart,getXValue) AddMethod(XYChart,getNearestXValue) AddMethod(XYChart,getYValue) AddMethod(XYChart,xZoneColor) AddMethod(XYChart,yZoneColor) AddMethod(XYChart,setPlotArea) AddMethod(XYChart,getPlotArea) AddMethod(XYChart,setClipping) AddMethod(XYChart,setTrimData) AddMethod(XYChart,addBarLayer) AddMethod(XYChart,addBarLayer2) AddMethod(XYChart,addBarLayer3) AddMethod(XYChart,addLineLayer) AddMethod(XYChart,addLineLayer2) AddMethod(XYChart,addAreaLayer) AddMethod(XYChart,addAreaLayer2) AddMethod(XYChart,addHLOCLayer) AddMethod(XYChart,addHLOCLayer2) AddMethod(XYChart,addHLOCLayer3) AddMethod(XYChart,addCandleStickLayer) AddMethod(XYChart,addBoxWhiskerLayer) AddMethod(XYChart,addBoxWhiskerLayer2) AddMethod(XYChart,addBoxLayer) AddMethod(XYChart,addScatterLayer) AddMethod(XYChart,addTrendLayer) AddMethod(XYChart,addTrendLayer2) AddMethod(XYChart,addSplineLayer) AddMethod(XYChart,addStepLineLayer) AddMethod(XYChart,addInterLineLayer) AddMethod(XYChart,addVectorLayer) AddMethod(XYChart,addContourLayer) AddMethod(XYChart,getLayer) AddMethod(XYChart,getLayerByZ) AddMethod(XYChart,getLayerCount) AddMethod(XYChart,layoutAxes) AddMethod(XYChart,packPlotArea) EndConstructor() Procedure.i New_XYChart(width.l, height.l, bgColor.l = #Chart_BackgroundColor, edgeColor.l = #Chart_Transparent, raisedEffect.l = 0) InitInterface_NoReturn(XYChart,BaseChart) Protected this.XYChart = *this *this\XYChart_ptr = CXYChart_create(width, height, bgColor, edgeColor, raisedEffect) this\init( XYChart2BaseChart(*this\XYChart_ptr) ) ProcedureReturn *this EndProcedure ;} Top Profile Reply With quote Oliver13 Post subject: Re: ChartDirector - Professional charts For PBPostPosted: Thu Apr 06, 2017 8:58 pm Offline User User Joined: Thu Sep 30, 2010 6:40 am Posts: 51 Chartdirector.pbi Part 7 Code: ;// ;// Ver 5.1 ;// ;- Class ThreeDChart ;{ Class ThreeDChart Macro pThreeDChart : i : EndMacro Interface ThreeDChart Extends BaseChart ;init(ptr.ThreeDChartInternal) setPlotRegion(cx.l, cy.l, xWidth.l, yDepth.l, zHeight.l) setViewAngle(elevation.d, rotation.d = 0, twist.d = 0) setPerspective(perspective.d) xAxis.pAxis() yAxis.pAxis() zAxis.pAxis() setZAxisPos(pos.l) setColorAxis.pColorAxis(x.l, y.l, alignment.l, length.l, orientation.l) colorAxis.pColorAxis() setWallVisibility(xyVisible.cd_bool, yzVisible.cd_bool, zxVisible.cd_bool) setWallColor(xyColor.l, yzColor.l = -1, zxColor.l = -1, borderColor.l = -1) setWallThickness(xyThickness.l, yzThickness.l = -1, zxThickness.l = -1) setWallGrid(majorXGridColor.l, majorYGridColor.l = -1, majorZGridColor.l = -1, minorXGridColor.l = -1, minorYGridColor.l = -1, minorZGridColor.l = -1) EndInterface Structure sThreeDChart Extends sBaseChart ThreeDChart_ptr.ThreeDChartInternal EndStructure Method(ThreeDChart,init)(*this.sThreeDChart, ptr.ThreeDChartInternal) *this\ThreeDChart_ptr = ptr _BaseChart_init(*this, ThreeDChart2BaseChart(*this\ThreeDChart_ptr)) EndMethod() Method(ThreeDChart,setPlotRegion)(*this.sThreeDChart, cx.l, cy.l, xWidth.l, yDepth.l, zHeight.l) CThreeDChart_setPlotRegion(*this\ThreeDChart_ptr, cx, cy, xWidth, yDepth, zHeight) EndMethod() Method(ThreeDChart,setViewAngle)(*this.sThreeDChart, elevation.d, rotation.d, twist.d) CThreeDChart_setViewAngle(*this\ThreeDChart_ptr, elevation, rotation, twist) EndMethod() Method(ThreeDChart,setPerspective)(*this.sThreeDChart, perspective.d) CThreeDChart_setPerspective(*this\ThreeDChart_ptr, perspective) EndMethod() Method(ThreeDChart,xAxis,.pAxis)(*this.sThreeDChart) Protected RET.Axis = New( Axis(CThreeDChart_xAxis(*this\ThreeDChart_ptr)) ) Protected this.ThreeDChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(ThreeDChart,yAxis,.pAxis)(*this.sThreeDChart) Protected RET.Axis = New( Axis(CThreeDChart_yAxis(*this\ThreeDChart_ptr)) ) Protected this.ThreeDChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(ThreeDChart,zAxis,.pAxis)(*this.sThreeDChart) Protected RET.Axis = New( Axis(CThreeDChart_zAxis(*this\ThreeDChart_ptr)) ) Protected this.ThreeDChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(ThreeDChart,setZAxisPos)(*this.sThreeDChart, pos.l) CThreeDChart_setZAxisPos(*this\ThreeDChart_ptr, pos) EndMethod() Method(ThreeDChart,setColorAxis,.pColorAxis)(*this.sThreeDChart, x.l, y.l, alignment.l, length.l, orientation.l) Protected RET.ColorAxis = New( ColorAxis(CThreeDChart_setColorAxis(*this\ThreeDChart_ptr, x, y, alignment, length, orientation)) ) Protected this.ThreeDChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(ThreeDChart,colorAxis,.pColorAxis)(*this.sThreeDChart) Protected RET.ColorAxis = New( ColorAxis(CThreeDChart_colorAxis(*this\ThreeDChart_ptr)) ) Protected this.ThreeDChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(ThreeDChart,setWallVisibility)(*this.sThreeDChart, xyVisible.cd_bool, yzVisible.cd_bool, zxVisible.cd_bool) CThreeDChart_setWallVisibility(*this\ThreeDChart_ptr, xyVisible, yzVisible, zxVisible) EndMethod() Method(ThreeDChart,setWallColor)(*this.sThreeDChart, xyColor.l, yzColor.l, zxColor.l, borderColor.l) CThreeDChart_setWallColor(*this\ThreeDChart_ptr, xyColor, yzColor, zxColor, borderColor) EndMethod() Method(ThreeDChart,setWallThickness)(*this.sThreeDChart, xyThickness.l, yzThickness.l, zxThickness.l) CThreeDChart_setWallThickness(*this\ThreeDChart_ptr, xyThickness, yzThickness, zxThickness) EndMethod() Method(ThreeDChart,setWallGrid)(*this.sThreeDChart, majorXGridColor.l, majorYGridColor.l, majorZGridColor.l, minorXGridColor.l, minorYGridColor.l, minorZGridColor.l) CThreeDChart_setWallGrid(*this\ThreeDChart_ptr, majorXGridColor, majorYGridColor, majorZGridColor, minorXGridColor, minorYGridColor, minorZGridColor) EndMethod() Constructor(ThreeDChart,BaseChart) Override(ThreeDChart,init) AddMethod(ThreeDChart,setPlotRegion) AddMethod(ThreeDChart,setViewAngle) AddMethod(ThreeDChart,setPerspective) AddMethod(ThreeDChart,xAxis) AddMethod(ThreeDChart,yAxis) AddMethod(ThreeDChart,zAxis) AddMethod(ThreeDChart,setZAxisPos) AddMethod(ThreeDChart,setColorAxis) AddMethod(ThreeDChart,colorAxis) AddMethod(ThreeDChart,setWallVisibility) AddMethod(ThreeDChart,setWallColor) AddMethod(ThreeDChart,setWallThickness) AddMethod(ThreeDChart,setWallGrid) EndConstructor() Procedure.i New_ThreeDChart() InitInterface(ThreeDChart,BaseChart) EndProcedure ;} ;- Class SurfaceChart ;{ Class SurfaceChart Macro pSurfaceChart : i : EndMacro Interface SurfaceChart Extends ThreeDChart setData(*xData.Double, xDataLen.l, *yData.Double, yDataLen.l, *zData.Double, zDataLen.l) setInterpolation(xSamples.l, ySamples.l = -1, isSmooth.cd_bool = #True) setLighting(ambientIntensity.d, diffuseIntensity.d, specularIntensity.d, shininess.d) setShadingMode(shadingMode.l, wireWidth.l = 1) setSurfaceAxisGrid(majorXGridColor.l, majorYGridColor.l = -1, minorXGridColor.l = -1, minorYGridColor.l = -1) setSurfaceDataGrid(xGridColor.l, yGridColor.l = -1) setContourColor(contourColor.l, minorContourColor.l = -1) setBackSideBrightness(brightness.d) setBackSideColor(color.l) setBackSideLighting(ambientLight.d, diffuseLight.d, specularLight.d, shininess.d) EndInterface Structure sSurfaceChart Extends sThreeDChart SurfaceChart_ptr.SurfaceChartInternal EndStructure Method(SurfaceChart,setData)(*this.sSurfaceChart, *xData.Double, xDataLen.l, *yData.Double, yDataLen.l, *zData.Double, zDataLen.l) CSurfaceChart_setData(*this\SurfaceChart_ptr, *xData, xDataLen, *yData, yDataLen, *zData, zDataLen) EndMethod() Method(SurfaceChart,setInterpolation)(*this.sSurfaceChart, xSamples.l, ySamples.l, isSmooth.cd_bool) CSurfaceChart_setInterpolation(*this\SurfaceChart_ptr, xSamples, ySamples, isSmooth) EndMethod() Method(SurfaceChart,setLighting)(*this.sSurfaceChart, ambientIntensity.d, diffuseIntensity.d, specularIntensity.d, shininess.d) CSurfaceChart_setLighting(*this\SurfaceChart_ptr, ambientIntensity, diffuseIntensity, specularIntensity, shininess) EndMethod() Method(SurfaceChart,setShadingMode)(*this.sSurfaceChart, shadingMode.l, wireWidth.l) CSurfaceChart_setShadingMode(*this\SurfaceChart_ptr, shadingMode, wireWidth) EndMethod() Method(SurfaceChart,setSurfaceAxisGrid)(*this.sSurfaceChart, majorXGridColor.l, majorYGridColor.l, minorXGridColor.l, minorYGridColor.l) CSurfaceChart_setSurfaceAxisGrid(*this\SurfaceChart_ptr, majorXGridColor, majorYGridColor, minorXGridColor, minorYGridColor) EndMethod() Method(SurfaceChart,setSurfaceDataGrid)(*this.sSurfaceChart, xGridColor.l, yGridColor.l) CSurfaceChart_setSurfaceDataGrid(*this\SurfaceChart_ptr, xGridColor, yGridColor) EndMethod() Method(SurfaceChart,setContourColor)(*this.sSurfaceChart, contourColor.l, minorContourColor.l) CSurfaceChart_setContourColor(*this\SurfaceChart_ptr, contourColor, minorContourColor) EndMethod() Method(SurfaceChart,setBackSideBrightness)(*this.sSurfaceChart, brightness.d) CSurfaceChart_setBackSideBrightness(*this\SurfaceChart_ptr, brightness) EndMethod() Method(SurfaceChart,setBackSideColor)(*this.sSurfaceChart, color.l) CSurfaceChart_setBackSideColor(*this\SurfaceChart_ptr, color) EndMethod() Method(SurfaceChart,setBackSideLighting)(*this.sSurfaceChart, ambientLight.d, diffuseLight.d, specularLight.d, shininess.d) CSurfaceChart_setBackSideLighting(*this\SurfaceChart_ptr, ambientLight, diffuseLight, specularLight, shininess) EndMethod() Constructor(SurfaceChart,ThreeDChart) AddMethod(SurfaceChart,setData) AddMethod(SurfaceChart,setInterpolation) AddMethod(SurfaceChart,setLighting) AddMethod(SurfaceChart,setShadingMode) AddMethod(SurfaceChart,setSurfaceAxisGrid) AddMethod(SurfaceChart,setSurfaceDataGrid) AddMethod(SurfaceChart,setContourColor) AddMethod(SurfaceChart,setBackSideBrightness) AddMethod(SurfaceChart,setBackSideColor) AddMethod(SurfaceChart,setBackSideLighting) EndConstructor() Procedure.i New_SurfaceChart(width.l, height.l, bgColor.l = #Chart_BackgroundColor, edgeColor.l = #Chart_Transparent, raisedEffect.l = 0) InitInterface_NoReturn(SurfaceChart,ThreeDChart) Protected this.SurfaceChart = *this *this\SurfaceChart_ptr = CSurfaceChart_create(width, height, bgColor, edgeColor, raisedEffect) this\init( SurfaceChart2ThreeDChart(*this\SurfaceChart_ptr) ) ProcedureReturn *this EndProcedure ;} ;- Class ThreeDScatterGroup ;{ Class ThreeDScatterGroup Macro pThreeDScatterGroup : i : EndMacro Interface ThreeDScatterGroup Extends Object setDataSymbol(symbol.l, size.l = 5, fillColor.l = -1, edgeColor.l = -1, lineWidth.l = 1) setDataSymbol2(image.s) setDataSymbol3(obj.DrawArea) setDataSymbol4(*polygon.Long, polygonLen.l, size.l = 11, fillColor.l = -1, edgeColor.l = -1) setDropLine(dropLineColor.l = #Chart_LineColor, dropLineWidth.l = 1) setLegendIcon(width.l, height.l = -1, color.l = -1) EndInterface Structure sThreeDScatterGroup Extends sObject ThreeDScatterGroup_ptr.ThreeDScatterGroupInternal EndStructure Method(ThreeDScatterGroup,setDataSymbol)(*this.sThreeDScatterGroup, symbol.l, size.l, fillColor.l, edgeColor.l, lineWidth.l) CThreeDScatterGroup_setDataSymbol(*this\ThreeDScatterGroup_ptr, symbol, size, fillColor, edgeColor, lineWidth) EndMethod() Method(ThreeDScatterGroup,setDataSymbol2)(*this.sThreeDScatterGroup, image.s) CThreeDScatterGroup_setDataSymbol2(*this\ThreeDScatterGroup_ptr, image) EndMethod() Method(ThreeDScatterGroup,setDataSymbol3)(*this.sThreeDScatterGroup, obj.DrawArea) If obj CThreeDScatterGroup_setDataSymbol3(*this\ThreeDScatterGroup_ptr, obj\getInternalPtr()) EndIf EndMethod() Method(ThreeDScatterGroup,setDataSymbol4)(*this.sThreeDScatterGroup, *polygon.Long, polygonLen.l, size.l, fillColor.l, edgeColor.l) CThreeDScatterGroup_setDataSymbol4(*this\ThreeDScatterGroup_ptr, *polygon, polygonLen, size, fillColor, edgeColor) EndMethod() Method(ThreeDScatterGroup,setDropLine)(*this.sThreeDScatterGroup, dropLineColor.l, dropLineWidth.l) CThreeDScatterGroup_setDropLine(*this\ThreeDScatterGroup_ptr, dropLineColor, dropLineWidth) EndMethod() Method(ThreeDScatterGroup,setLegendIcon)(*this.sThreeDScatterGroup, width.l, height.l, color.l) CThreeDScatterGroup_setLegendIcon(*this\ThreeDScatterGroup_ptr, width, height, color) EndMethod() ConstructorInit(ThreeDScatterGroup,Object) *this\ThreeDScatterGroup_ptr = init EndConstructorInit() Constructor(ThreeDScatterGroup,Object) AddMethod(ThreeDScatterGroup,setDataSymbol) AddMethod(ThreeDScatterGroup,setDataSymbol2) AddMethod(ThreeDScatterGroup,setDataSymbol3) AddMethod(ThreeDScatterGroup,setDataSymbol4) AddMethod(ThreeDScatterGroup,setDropLine) AddMethod(ThreeDScatterGroup,setLegendIcon) EndConstructor() Procedure.i New_ThreeDScatterGroup(ptr.ThreeDScatterGroupInternal) InitInterface(ThreeDScatterGroup,Object,ptr) EndProcedure ;} ;- Class ThreeDScatterChart ;{ Class ThreeDScatterChart Macro pThreeDScatterChart : i : EndMacro Interface ThreeDScatterChart Extends ThreeDChart addScatterGroup.pThreeDScatterGroup(*xData.Double, xDataLen.l, *yData.Double, yDataLen.l, *zData.Double, zDataLen.l, name.s = "", symbol.l = #Chart_CircleSymbol, symbolSize.l = 5, fillColor.l = -1, edgeColor.l = -1) EndInterface Structure sThreeDScatterChart Extends sThreeDChart ThreeDScatterChart_ptr.ThreeDScatterChartInternal EndStructure Method(ThreeDScatterChart,addScatterGroup,.pThreeDScatterGroup)(*this.sThreeDScatterChart, *xData.Double, xDataLen.l, *yData.Double, yDataLen.l, *zData.Double, zDataLen.l, name.s, symbol.l, symbolSize.l, fillColor.l, edgeColor.l) Protected RET.ThreeDScatterGroup = New( ThreeDScatterGroup(CThreeDScatterChart_addScatterGroup(*this\ThreeDScatterChart_ptr, *xData, xDataLen, *yData, yDataLen, *zData, zDataLen, name, symbol, symbolSize, fillColor, edgeColor)) ) Protected this.ThreeDScatterChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Constructor(ThreeDScatterChart,ThreeDChart) AddMethod(ThreeDScatterChart,addScatterGroup) EndConstructor() Procedure.i New_ThreeDScatterChart(width.l, height.l, bgColor.l = #Chart_BackgroundColor, edgeColor.l = #Chart_Transparent, raisedEffect.l = 0) InitInterface_NoReturn(ThreeDScatterChart,ThreeDChart) Protected this.ThreeDScatterChart = *this *this\ThreeDScatterChart_ptr = CThreeDScatterChart_create(width, height, bgColor, edgeColor, raisedEffect) this\init(ThreeDScatterChart2ThreeDChart(*this\ThreeDScatterChart_ptr)) ProcedureReturn *this EndProcedure ;} ;- Class PolarLayer ;{ Class PolarLayer Macro pPolarLayer : i : EndMacro Interface PolarLayer Extends Object setData(*theData.Double, theDataLen.l , color.l = -1, name.s = "") setAngles(*angles.Double, anglesLen.l) setBorderColor(edgeColor.l) setLineWidth(w.l) setDataSymbol(symbol.l, size.l = 7, fillColor.l = -1, edgeColor.l = -1, lineWidth.l = 1) setDataSymbol2(image.s) setDataSymbol3(obj.DrawArea) setDataSymbol4(*polygon.Long, polygonLen.l, size.l = 11, fillColor.l = -1, edgeColor.l = -1) setSymbolScale(*zData.Double, zDataLen.l, scaleType.l = #Chart_PixelScale) setImageMapWidth(width.l) getImageCoor.s(dataItem.l, offsetX.l = 0, offsetY.l = 0) getHTMLImageMap.s(url.s, queryFormat.s = "", extraAttr.s = "", offsetX.l = 0, offsetY.l = 0) setHTMLImageMap(url.s, queryFormat.s = "", extraAttr.s = "") setDataLabelFormat(formatString.s) setDataLabelStyle.pTextBox(font.s = "", fontSize.d = 8, fontColor.l = #Chart_TextColor, fontAngle.d = 0) addCustomDataLabel.pTextBox(i.l, label.s, font.s = "", fontSize.d = 8, fontColor.l = #Chart_TextColor, fontAngle.d = 0) EndInterface Structure sPolarLayer Extends sObject PolarLayer_ptr.PolarLayerInternal EndStructure Method(PolarLayer,setData)(*this.sPolarLayer, *theData.Double, theDataLen.l, color.l, name.s) CPolarLayer_setData(*this\PolarLayer_ptr, *theData, theDataLen, color, name) EndMethod() Method(PolarLayer,setAngles)(*this.sPolarLayer, *angles.Double, anglesLen.l) CPolarLayer_setAngles(*this\PolarLayer_ptr, *angles, anglesLen) EndMethod() Method(PolarLayer,setBorderColor)(*this.sPolarLayer, edgeColor.l) CPolarLayer_setBorderColor(*this\PolarLayer_ptr, edgeColor) EndMethod() Method(PolarLayer,setLineWidth)(*this.sPolarLayer, w.l) CPolarLayer_setLineWidth(*this\PolarLayer_ptr, w) EndMethod() Method(PolarLayer,setDataSymbol)(*this.sPolarLayer, symbol.l, size.l, fillColor.l, edgeColor.l, lineWidth.l) CPolarLayer_setDataSymbol(*this\PolarLayer_ptr, symbol, size, fillColor, edgeColor, lineWidth) EndMethod() Method(PolarLayer,setDataSymbol2)(*this.sPolarLayer, image.s) CPolarLayer_setDataSymbol2(*this\PolarLayer_ptr, image) EndMethod() Method(PolarLayer,setDataSymbol3)(*this.sPolarLayer, obj.DrawArea) If obj CPolarLayer_setDataSymbol3(*this\PolarLayer_ptr, obj\getInternalPtr()) EndIf EndMethod() Method(PolarLayer,setDataSymbol4)(*this.sPolarLayer, *polygon.Long, polygonLen.l, size.l, fillColor.l, edgeColor.l) CPolarLayer_setDataSymbol4(*this\PolarLayer_ptr, *polygon, polygonLen, size, fillColor, edgeColor) EndMethod() Method(PolarLayer,setSymbolScale)(*this.sPolarLayer, *zData.Double, zDataLen.l, scaleType.l) CPolarLayer_setSymbolScale(*this\PolarLayer_ptr, *zData, zDataLen, scaleType) EndMethod() Method(PolarLayer,setImageMapWidth)(*this.sPolarLayer, width.l) CPolarLayer_setImageMapWidth(*this\PolarLayer_ptr, width) EndMethod() Method(PolarLayer,getImageCoor,.s)(*this.sPolarLayer, dataItem.l, offsetX.l, offsetY.l) Protected *p.Ascii = CPolarLayer_getImageCoor(*this\PolarLayer_ptr, dataItem, offsetX, offsetY) If *p ProcedureReturn PeekS(*p,-1,#PB_Ascii) EndIf EndMethod() Method(PolarLayer,getHTMLImageMap,.s)(*this.sPolarLayer, url.s, queryFormat.s, extraAttr.s, offsetX.l, offsetY.l) Protected *p.Ascii = CPolarLayer_getHTMLImageMap(*this\PolarLayer_ptr, url, queryFormat, extraAttr, offsetX, offsetY) If *p ProcedureReturn PeekS(*p,-1,#PB_Ascii) EndIf EndMethod() Method(PolarLayer,setHTMLImageMap)(*this.sPolarLayer, url.s, queryFormat.s, extraAttr.s) CPolarLayer_setHTMLImageMap(*this\PolarLayer_ptr, url, queryFormat, extraAttr) EndMethod() Method(PolarLayer,setDataLabelFormat)(*this.sPolarLayer, formatString.s) CPolarLayer_setDataLabelFormat(*this\PolarLayer_ptr, formatString) EndMethod() Method(PolarLayer,setDataLabelStyle,.pTextBox)(*this.sPolarLayer, font.s, fontSize.d, fontColor.l, fontAngle.d) Protected RET.TextBox = New( TextBox(CPolarLayer_setDataLabelStyle(*this\PolarLayer_ptr, font, fontSize, fontColor, fontAngle)) ) Protected this.PolarLayer = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(PolarLayer,addCustomDataLabel,.pTextBox)(*this.sPolarLayer, i.l, label.s, font.s, fontSize.d, fontColor.l, fontAngle.d) Protected RET.TextBox = New( TextBox(CPolarLayer_addCustomDataLabel(*this\PolarLayer_ptr, i, label, font, fontSize, fontColor, fontAngle)) ) Protected this.PolarLayer = *this this\reg(RET) ProcedureReturn RET EndMethod() ConstructorInit(PolarLayer,Object) *this\PolarLayer_ptr = init EndConstructorInit() Constructor(PolarLayer,Object) AddMethod(PolarLayer,setData) AddMethod(PolarLayer,setAngles) AddMethod(PolarLayer,setBorderColor) AddMethod(PolarLayer,setLineWidth) AddMethod(PolarLayer,setDataSymbol) AddMethod(PolarLayer,setDataSymbol2) AddMethod(PolarLayer,setDataSymbol3) AddMethod(PolarLayer,setDataSymbol4) AddMethod(PolarLayer,setSymbolScale) AddMethod(PolarLayer,setImageMapWidth) AddMethod(PolarLayer,getImageCoor) AddMethod(PolarLayer,getHTMLImageMap) AddMethod(PolarLayer,setHTMLImageMap) AddMethod(PolarLayer,setDataLabelFormat) AddMethod(PolarLayer,setDataLabelStyle) AddMethod(PolarLayer,addCustomDataLabel) EndConstructor() Procedure.i New_PolarLayer(ptr.PolarLayerInternal) InitInterface(PolarLayer,Object,ptr) EndProcedure ;} ;- Class PolarAreaLayer ;{ Class PolarAreaLayer Macro pPolarAreaLayer : i : EndMacro Interface PolarAreaLayer Extends PolarLayer EndInterface Structure sPolarAreaLayer Extends sPolarLayer EndStructure ConstructorInit(PolarAreaLayer,PolarLayer) baseInit(PolarLayer,PolarAreaLayer2PolarLayer(init)) EndConstructorInit() Constructor(PolarAreaLayer,PolarLayer) EndConstructor() Procedure.i New_PolarAreaLayer(ptr.PolarAreaLayerInternal) InitInterface(PolarAreaLayer,PolarLayer,ptr) EndProcedure ;} ;- Class PolarLineLayer ;{ Class PolarLineLayer Macro pPolarLineLayer : i : EndMacro Interface PolarLineLayer Extends PolarLayer setCloseLoop(b.cd_bool) setGapColor(lineColor.l, lineWidth.l = -1) EndInterface Structure sPolarLineLayer Extends sPolarLayer PolarLineLayer_ptr.PolarLineLayerInternal EndStructure Method(PolarLineLayer,setCloseLoop)(*this.sPolarLineLayer, b.cd_bool) CPolarLineLayer_setCloseLoop(*this\PolarLineLayer_ptr, b) EndMethod() Method(PolarLineLayer,setGapColor)(*this.sPolarLineLayer, lineColor.l, lineWidth.l) CPolarLineLayer_setGapColor(*this\PolarLineLayer_ptr, lineColor, lineWidth) EndMethod() ConstructorInit(PolarLineLayer,PolarLayer) baseInit(PolarLayer,PolarLineLayer2PolarLayer(init)) *this\PolarLineLayer_ptr = init EndConstructorInit() Constructor(PolarLineLayer,PolarLayer) AddMethod(PolarLineLayer,setCloseLoop) AddMethod(PolarLineLayer,setGapColor) EndConstructor() Procedure.i New_PolarLineLayer(ptr.PolarLineLayerInternal) InitInterface(PolarLineLayer,PolarLayer,ptr) EndProcedure ;} ;- Class PolarSplineLineLayer ;{ Class PolarSplineLineLayer Macro pPolarSplineLineLayer : i : EndMacro Interface PolarSplineLineLayer Extends PolarLineLayer setTension(tension.d) EndInterface Structure sPolarSplineLineLayer Extends sPolarLineLayer PolarSplineLineLayer_ptr.PolarSplineLineLayerInternal EndStructure Method(PolarSplineLineLayer,setTension)(*this.sPolarSplineLineLayer, tension.d) CPolarSplineLineLayer_setTension(*this\PolarSplineLineLayer_ptr, tension) EndMethod() ConstructorInit(PolarSplineLineLayer,PolarLineLayer) baseInit(PolarLineLayer,PolarSplineLineLayer2PolarLineLayer(init)) *this\PolarSplineLineLayer_ptr = init EndConstructorInit() Constructor(PolarSplineLineLayer,PolarLineLayer) AddMethod(PolarSplineLineLayer,setTension) EndConstructor() Procedure.i New_PolarSplineLineLayer(ptr.PolarSplineLineLayerInternal) InitInterface(PolarSplineLineLayer,PolarLineLayer,ptr) EndProcedure ;} ;- Class PolarSplineAreaLayer ;{ Class PolarSplineAreaLayer Macro pPolarSplineAreaLayer : i : EndMacro Interface PolarSplineAreaLayer Extends PolarAreaLayer setTension(tension.d) EndInterface Structure sPolarSplineAreaLayer Extends sPolarAreaLayer PolarSplineAreaLayer_ptr.PolarSplineAreaLayerInternal EndStructure Method(PolarSplineAreaLayer,setTension)(*this.sPolarSplineAreaLayer, tension.d) CPolarSplineAreaLayer_setTension(*this\PolarSplineAreaLayer_ptr, tension) EndMethod() ConstructorInit(PolarSplineAreaLayer,PolarAreaLayer) baseInit(PolarAreaLayer,PolarSplineAreaLayer2PolarAreaLayer(init)) *this\PolarSplineAreaLayer_ptr = init EndConstructorInit() Constructor(PolarSplineAreaLayer,PolarAreaLayer) AddMethod(PolarSplineAreaLayer,setTension) EndConstructor() Procedure.i New_PolarSplineAreaLayer(ptr.PolarSplineAreaLayerInternal) InitInterface(PolarSplineAreaLayer,PolarAreaLayer,ptr) EndProcedure ;} ;- Class PolarVectorLayer ;{ Class PolarVectorLayer Macro pPolarVectorLayer : i : EndMacro Interface PolarVectorLayer Extends PolarLayer setVector(*lengths.Double, lengthsLen.l, *directions.Double, directionsLen.l, lengthScale.l = #Chart_PixelScale) setArrowHead(width.l, height.l = 0) setArrowHead2(*polygon.Long, polygonLen.l) setArrowStem(*polygon.Long, polygonLen.l) setArrowAlignment(alignment.l) setIconSize(height.l, width.l = 0) setVectorMargin(startMargin.d, endMargin.d = #Chart_NoValue) EndInterface Structure sPolarVectorLayer Extends sPolarLayer PolarVectorLayer_ptr.PolarVectorLayerInternal EndStructure Method(PolarVectorLayer,setVector)(*this.sPolarVectorLayer, *lengths.Double, lengthsLen.l, *directions.Double, directionsLen.l, lengthScale.l) CPolarVectorLayer_setVector(*this\PolarVectorLayer_ptr, *lengths, lengthsLen, *directions, directionsLen, lengthScale) EndMethod() Method(PolarVectorLayer,setArrowHead)(*this.sPolarVectorLayer, width.l, height.l) CPolarVectorLayer_setArrowHead(*this\PolarVectorLayer_ptr, width, height) EndMethod() Method(PolarVectorLayer,setArrowHead2)(*this.sPolarVectorLayer, *polygon.Long, polygonLen.l) CPolarVectorLayer_setArrowHead2(*this\PolarVectorLayer_ptr, *polygon, polygonLen) EndMethod() Method(PolarVectorLayer,setArrowStem)(*this.sPolarVectorLayer, *polygon.Long, polygonLen.l) CPolarVectorLayer_setArrowStem(*this\PolarVectorLayer_ptr, *polygon, polygonLen) EndMethod() Method(PolarVectorLayer,setArrowAlignment)(*this.sPolarVectorLayer, alignment.l) CPolarVectorLayer_setArrowAlignment(*this\PolarVectorLayer_ptr, alignment) EndMethod() Method(PolarVectorLayer,setIconSize)(*this.sPolarVectorLayer, height.l, width.l) CPolarVectorLayer_setIconSize(*this\PolarVectorLayer_ptr, height, width) EndMethod() Method(PolarVectorLayer,setVectorMargin)(*this.sPolarVectorLayer, startMargin.d, endMargin.d) CPolarVectorLayer_setVectorMargin(*this\PolarVectorLayer_ptr, startMargin, endMargin) EndMethod() ConstructorInit(PolarVectorLayer,PolarLayer) baseInit(PolarLayer,PolarVectorLayer2PolarLayer(init)) *this\PolarVectorLayer_ptr = init EndConstructorInit() Constructor(PolarVectorLayer,PolarLayer) AddMethod(PolarVectorLayer,setVector) AddMethod(PolarVectorLayer,setArrowHead) AddMethod(PolarVectorLayer,setArrowHead2) AddMethod(PolarVectorLayer,setArrowStem) AddMethod(PolarVectorLayer,setArrowAlignment) AddMethod(PolarVectorLayer,setIconSize) AddMethod(PolarVectorLayer,setVectorMargin) EndConstructor() Procedure.i New_PolarVectorLayer(ptr.PolarVectorLayerInternal) InitInterface(PolarVectorLayer,PolarLayer,ptr) EndProcedure ;} ;- Class PolarChart ;{ Class PolarChart Macro pPolarChart : i : EndMacro Interface PolarChart Extends BaseChart setPlotArea(x.l, y.l, r.l, bgColor.l = #Chart_Transparent, edgeColor.l = #Chart_Transparent, edgeWidth.l = 1) setPlotAreaBg(bgColor1.l, bgColor2.l = -1, altRings.cd_bool = #True) setGridColor(rGridColor.l = $80000000, rGridWidth.l = 1, aGridColor.l = $80000000, aGridWidth.l = 1) setGridStyle(polygonGrid.cd_bool, gridOnTop.cd_bool = #True) setStartAngle(startAngle.d, clockwise.cd_bool = #True) angularAxis.pAngularAxis() radialAxis.pRadialAxis() getXCoor.l(r.d, a.d) getYCoor.l(r.d, a.d) addAreaLayer.pPolarAreaLayer(*ddata.Double, ddataLen.l, color.l = -1, name.s = "") addLineLayer.pPolarLineLayer(*ddata.Double, ddataLen.l, color.l = -1, name.s = "") addSplineLineLayer.pPolarSplineLineLayer(*ddata.Double, ddataLen.l, color.l = -1, name.s = "") addSplineAreaLayer.pPolarSplineAreaLayer(*ddata.Double, ddataLen.l, color.l = -1, name.s = "") addVectorLayer.pPolarVectorLayer(*rData.Double, rDataLen.l, *aData.Double, aDataLen.l, *lengths.Double, lengthsLen.l, *directions.Double, directionsLen.l, lengthScale.l = #Chart_PixelScale, color.l = -1, name.s = "") EndInterface Structure sPolarChart Extends sBaseChart PolarChart_ptr.PolarChartInternal EndStructure Method(PolarChart,setPlotArea)(*this.sPolarChart, x.l, y.l, r.l, bgColor.l, edgeColor.l, edgeWidth.l) CPolarChart_setPlotArea(*this\PolarChart_ptr, x, y, r, bgColor, edgeColor, edgeWidth) EndMethod() Method(PolarChart,setPlotAreaBg)(*this.sPolarChart, bgColor1.l, bgColor2.l, altRings.cd_bool) CPolarChart_setPlotAreaBg(*this\PolarChart_ptr, bgColor1, bgColor2, altRings) EndMethod() Method(PolarChart,setGridColor)(*this.sPolarChart, rGridColor.l, rGridWidth.l, aGridColor.l, aGridWidth.l) CPolarChart_setGridColor(*this\PolarChart_ptr, rGridColor, rGridWidth, aGridColor, aGridWidth) EndMethod() Method(PolarChart,setGridStyle)(*this.sPolarChart, polygonGrid.cd_bool, gridOnTop.cd_bool) CPolarChart_setGridStyle(*this\PolarChart_ptr, polygonGrid, gridOnTop) EndMethod() Method(PolarChart,setStartAngle)(*this.sPolarChart, startAngle.d, clockwise.cd_bool) CPolarChart_setStartAngle(*this\PolarChart_ptr, startAngle, clockwise) EndMethod() Method(PolarChart,angularAxis,.pAngularAxis)(*this.sPolarChart) Protected RET.AngularAxis = New( AngularAxis(CPolarChart_angularAxis(*this\PolarChart_ptr)) ) Protected this.PolarChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(PolarChart,radialAxis,.pRadialAxis)(*this.sPolarChart) Protected RET.RadialAxis = New( RadialAxis(CPolarChart_radialAxis(*this\PolarChart_ptr)) ) Protected this.PolarChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(PolarChart,getXCoor,.l)(*this.sPolarChart, r.d, a.d) ProcedureReturn CPolarChart_getXCoor(*this\PolarChart_ptr, r, a) EndMethod() Method(PolarChart,getYCoor,.l)(*this.sPolarChart, r.d, a.d) ProcedureReturn CPolarChart_getYCoor(*this\PolarChart_ptr, r, a) EndMethod() Method(PolarChart,addAreaLayer,.pPolarAreaLayer)(*this.sPolarChart, *ddata.Double, ddataLen.l, color.l, name.s) Protected RET.PolarAreaLayer = New( PolarAreaLayer(CPolarChart_addAreaLayer(*this\PolarChart_ptr, *ddata, ddataLen, color, name)) ) Protected this.PolarChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(PolarChart,addLineLayer,.pPolarLineLayer)(*this.sPolarChart, *ddata.Double, ddataLen.l, color.l, name.s) Protected RET.PolarLineLayer = New( PolarLineLayer(CPolarChart_addLineLayer(*this\PolarChart_ptr, *ddata, ddataLen, color, name)) ) Protected this.PolarChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(PolarChart,addSplineLineLayer,.pPolarSplineLineLayer)(*this.sPolarChart, *ddata.Double, ddataLen.l, color.l, name.s) Protected RET.PolarSplineLineLayer = New( PolarSplineLineLayer(CPolarChart_addSplineLineLayer(*this\PolarChart_ptr, *ddata, ddataLen, color, name)) ) Protected this.PolarChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(PolarChart,addSplineAreaLayer,.pPolarSplineAreaLayer)(*this.sPolarChart, *ddata.Double, ddataLen.l, color.l, name.s) Protected RET.PolarSplineAreaLayer = New( PolarSplineAreaLayer(CPolarChart_addSplineAreaLayer(*this\PolarChart_ptr, *ddata, ddataLen, color, name)) ) Protected this.PolarChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(PolarChart,addVectorLayer,.pPolarVectorLayer)(*this.sPolarChart, *rData.Double, rDataLen.l, *aData.Double, aDataLen.l, *lengths.Double, lengthsLen.l, *directions.Double, directionsLen.l, lengthScale.l, color.l, name.s) Protected RET.PolarVectorLayer = New( PolarVectorLayer(CPolarChart_addVectorLayer(*this\PolarChart_ptr, *rData, rDataLen, *aData, aDataLen, *lengths, lengthsLen, *directions, directionsLen, lengthScale, color, name)) ) Protected this.PolarChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Constructor(PolarChart,BaseChart) AddMethod(PolarChart,setPlotArea) AddMethod(PolarChart,setPlotAreaBg) AddMethod(PolarChart,setGridColor) AddMethod(PolarChart,setGridStyle) AddMethod(PolarChart,setStartAngle) AddMethod(PolarChart,angularAxis) AddMethod(PolarChart,radialAxis) AddMethod(PolarChart,getXCoor) AddMethod(PolarChart,getYCoor) AddMethod(PolarChart,addAreaLayer) AddMethod(PolarChart,addLineLayer) AddMethod(PolarChart,addSplineLineLayer) AddMethod(PolarChart,addSplineAreaLayer) AddMethod(PolarChart,addVectorLayer) EndConstructor() Procedure.i New_PolarChart(width.l, height.l, bgColor.l = #Chart_BackgroundColor, edgeColor.l = #Chart_Transparent, raisedEffect.l = 0) InitInterface_NoReturn(PolarChart,BaseChart) Protected this.PolarChart = *this *this\PolarChart_ptr = CPolarChart_create(width, height, bgColor, edgeColor, raisedEffect) this\init(PolarChart2BaseChart(*this\PolarChart_ptr)) ProcedureReturn *this EndProcedure ;} ;- Class PyramidLayer ;{ Class PyramidLayer Macro pPyramidLayer : i : EndMacro Interface PyramidLayer Extends Object setCenterLabel.pTextBox(labelTemplate.s = "{skip}", font.s = "{skip}", fontSize.d = -1, fontColor.l = -1) setRightLabel.pTextBox(labelTemplate.s = "{skip}", font.s = "{skip}", fontSize.d = -1, fontColor.l = -1) setLeftLabel.pTextBox(labelTemplate.s = "{skip}", font.s = "{skip}", fontSize.d = -1, fontColor.l = -1) setColor(color.l) setJoinLine(color.l, width.l = -1) setJoinLineGap(pyramidGap.l, pyramidMargin.l = -$7fffffff, textGap.l = -$7fffffff) setLayerBorder(color.l, width.l = -1) setLayerGap(layerGap.d) EndInterface Structure sPyramidLayer Extends sObject PyramidLayer_ptr.PyramidLayerInternal EndStructure Method(PyramidLayer,setCenterLabel,.pTextBox)(*this.sPyramidLayer, labelTemplate.s, font.s, fontSize.d, fontColor.l) Protected RET.TextBox = New( TextBox(CPyramidLayer_setCenterLabel(*this\PyramidLayer_ptr, labelTemplate, font, fontSize, fontColor)) ) Protected this.PyramidLayer = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(PyramidLayer,setRightLabel,.pTextBox)(*this.sPyramidLayer, labelTemplate.s, font.s, fontSize.d, fontColor.l) Protected RET.TextBox = New( TextBox(CPyramidLayer_setRightLabel(*this\PyramidLayer_ptr, labelTemplate, font, fontSize, fontColor)) ) Protected this.PyramidLayer = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(PyramidLayer,setLeftLabel,.pTextBox)(*this.sPyramidLayer, labelTemplate.s, font.s, fontSize.d, fontColor.l) Protected RET.TextBox = New( TextBox(CPyramidLayer_setLeftLabel(*this\PyramidLayer_ptr, labelTemplate, font, fontSize, fontColor)) ) Protected this.PyramidLayer = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(PyramidLayer,setColor)(*this.sPyramidLayer, color.l) CPyramidLayer_setColor(*this\PyramidLayer_ptr, color) EndMethod() Method(PyramidLayer,setJoinLine)(*this.sPyramidLayer, color.l, width.l) CPyramidLayer_setJoinLine(*this\PyramidLayer_ptr, color, width) EndMethod() Method(PyramidLayer,setJoinLineGap)(*this.sPyramidLayer, pyramidGap.l, pyramidMargin.l, textGap.l) CPyramidLayer_setJoinLineGap(*this\PyramidLayer_ptr, pyramidGap, pyramidMargin, textGap) EndMethod() Method(PyramidLayer,setLayerBorder)(*this.sPyramidLayer, color.l, width.l) CPyramidLayer_setLayerBorder(*this\PyramidLayer_ptr, color, width) EndMethod() Method(PyramidLayer,setLayerGap)(*this.sPyramidLayer, layerGap.d) CPyramidLayer_setLayerGap(*this\PyramidLayer_ptr, layerGap) EndMethod() ConstructorInit(PyramidLayer,Object) *this\PyramidLayer_ptr = init EndConstructorInit() Constructor(PyramidLayer,Object) AddMethod(PyramidLayer,setCenterLabel) AddMethod(PyramidLayer,setRightLabel) AddMethod(PyramidLayer,setLeftLabel) AddMethod(PyramidLayer,setColor) AddMethod(PyramidLayer,setJoinLine) AddMethod(PyramidLayer,setJoinLineGap) AddMethod(PyramidLayer,setLayerBorder) AddMethod(PyramidLayer,setLayerGap) EndConstructor() Procedure.i New_PyramidLayer(ptr.PyramidLayerInternal) InitInterface(PyramidLayer,Object,ptr) EndProcedure ;} ;- Class PyramidChart ;{ Class PyramidChart Macro pPyramidChart : i : EndMacro Interface PyramidChart Extends BaseChart setPyramidSize(cx.l, cy.l, radius.l, height.l) setConeSize(cx.l, cy.l, radius.l, height.l) setFunnelSize(cx.l, cy.l, radius.l, height.l, tubeRadius.d = 0.2, tubeHeight.d = 0.3) setData(*ddata.Double, ddataLen.l, *labels.Integer = 0, labelsLen.l = 0) setCenterLabel.pTextBox(labelTemplate.s = "{skip}", font.s = "{skip}", fontSize.d = -1, fontColor.l = -1) setRightLabel.pTextBox(labelTemplate.s = "{skip}", font.s = "{skip}", fontSize.d = -1, fontColor.l = -1) setLeftLabel.pTextBox(labelTemplate.s = "{skip}", font.s = "{skip}", fontSize.d = -1, fontColor.l = -1) setPyramidSides(noOfSides.l) setViewAngle(elevation.d, rotation.d = 0, twist.d = 0) setGradientShading(startBrightness.d, endBrightness.d) setLighting(ambientIntensity.d = 0.5, diffuseIntensity.d = 0.5, specularIntensity.d = 1, shininess.d = 8) setJoinLine(color.l, width.l = -1) setJoinLineGap(pyramidGap.l, pyramidMargin.l = -$7fffffff, textGap.l = -$7fffffff) setLayerBorder(color.l, width.l = -1) setLayerGap(layerGap.d) getLayer.pPyramidLayer(layerNo.l) EndInterface Structure sPyramidChart Extends sBaseChart PyramidChart_ptr.PyramidChartInternal EndStructure Method(PyramidChart,setPyramidSize)(*this.sPyramidChart, cx.l, cy.l, radius.l, height.l) CPyramidChart_setPyramidSize(*this\PyramidChart_ptr, cx, cy, radius, height) EndMethod() Method(PyramidChart,setConeSize)(*this.sPyramidChart, cx.l, cy.l, radius.l, height.l) CPyramidChart_setConeSize(*this\PyramidChart_ptr, cx, cy, radius, height) EndMethod() Method(PyramidChart,setFunnelSize)(*this.sPyramidChart, cx.l, cy.l, radius.l, height.l, tubeRadius.d, tubeHeight.d) CPyramidChart_setFunnelSize(*this\PyramidChart_ptr, cx, cy, radius, height, tubeRadius, tubeHeight) EndMethod() Method(PyramidChart,setData)(*this.sPyramidChart, *ddata.Double, ddataLen.l, *labels.Integer, labelsLen.l) CPyramidChart_setData(*this\PyramidChart_ptr, *ddata, ddataLen, *labels, labelsLen) EndMethod() Method(PyramidChart,setCenterLabel,.pTextBox)(*this.sPyramidChart, labelTemplate.s, font.s, fontSize.d, fontColor.l) Protected RET.TextBox = New( TextBox(CPyramidChart_setCenterLabel(*this\PyramidChart_ptr, labelTemplate, font, fontSize, fontColor)) ) Protected this.PyramidChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(PyramidChart,setRightLabel,.pTextBox)(*this.sPyramidChart, labelTemplate.s, font.s, fontSize.d, fontColor.l) Protected RET.TextBox = New( TextBox(CPyramidChart_setRightLabel(*this\PyramidChart_ptr, labelTemplate, font, fontSize, fontColor)) ) Protected this.PyramidChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(PyramidChart,setLeftLabel,.pTextBox)(*this.sPyramidChart, labelTemplate.s, font.s, fontSize.d, fontColor.l) Protected RET.TextBox = New( TextBox(CPyramidChart_setLeftLabel(*this\PyramidChart_ptr, labelTemplate, font, fontSize, fontColor)) ) Protected this.PyramidChart = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(PyramidChart,setPyramidSides)(*this.sPyramidChart, noOfSides.l) CPyramidChart_setPyramidSides(*this\PyramidChart_ptr, noOfSides) EndMethod() Method(PyramidChart,setViewAngle)(*this.sPyramidChart, elevation.d, rotation.d, twist.d) CPyramidChart_setViewAngle(*this\PyramidChart_ptr, elevation, rotation, twist) EndMethod() Method(PyramidChart,setGradientShading)(*this.sPyramidChart, startBrightness.d, endBrightness.d) CPyramidChart_setGradientShading(*this\PyramidChart_ptr, startBrightness, endBrightness) EndMethod() Method(PyramidChart,setLighting)(*this.sPyramidChart, ambientIntensity.d, diffuseIntensity.d, specularIntensity.d, shininess.d) CPyramidChart_setLighting(*this\PyramidChart_ptr, ambientIntensity, diffuseIntensity, specularIntensity, shininess) EndMethod() Method(PyramidChart,setJoinLine)(*this.sPyramidChart, color.l, width.l) CPyramidChart_setJoinLine(*this\PyramidChart_ptr, color, width) EndMethod() Method(PyramidChart,setJoinLineGap)(*this.sPyramidChart, pyramidGap.l, pyramidMargin.l, textGap.l) CPyramidChart_setJoinLineGap(*this\PyramidChart_ptr, pyramidGap, pyramidMargin, textGap) EndMethod() Method(PyramidChart,setLayerBorder)(*this.sPyramidChart, color.l, width.l) CPyramidChart_setLayerBorder(*this\PyramidChart_ptr, color, width) EndMethod() Method(PyramidChart,setLayerGap)(*this.sPyramidChart, layerGap.d) CPyramidChart_setLayerGap(*this\PyramidChart_ptr, layerGap) EndMethod() Method(PyramidChart,getLayer,.pPyramidLayer)(*this.sPyramidChart, layerNo.l) ; *p.PyramidLayerInternal Protected *p = CPyramidChart_getLayer(*this\PyramidChart_ptr, layerNo) If *p Protected RET.PyramidLayer = New( PyramidLayer(*p) ) Protected this.PyramidChart = *this this\reg(RET) ProcedureReturn RET EndIf ProcedureReturn 0 EndMethod() Constructor(PyramidChart,BaseChart) AddMethod(PyramidChart,setPyramidSize) AddMethod(PyramidChart,setConeSize) AddMethod(PyramidChart,setFunnelSize) AddMethod(PyramidChart,setData) AddMethod(PyramidChart,setCenterLabel) AddMethod(PyramidChart,setRightLabel) AddMethod(PyramidChart,setLeftLabel) AddMethod(PyramidChart,setPyramidSides) AddMethod(PyramidChart,setViewAngle) AddMethod(PyramidChart,setGradientShading) AddMethod(PyramidChart,setLighting) AddMethod(PyramidChart,setJoinLine) AddMethod(PyramidChart,setJoinLineGap) AddMethod(PyramidChart,setLayerBorder) AddMethod(PyramidChart,setLayerGap) AddMethod(PyramidChart,getLayer) EndConstructor() Procedure.i New_PyramidChart(width.l, height.l, bgColor.l = #Chart_BackgroundColor, edgeColor.l = #Chart_Transparent, raisedEffect.l = 0) InitInterface_NoReturn(PyramidChart,BaseChart) Protected this.PyramidChart = *this *this\PyramidChart_ptr = CPyramidChart_create(width, height, bgColor, edgeColor, raisedEffect) this\init(PyramidChart2BaseChart(*this\PyramidChart_ptr)) ProcedureReturn *this EndProcedure ;} ;- Class MeterPointer ;{ Class MeterPointer Macro pMeterPointer : i : EndMacro Interface MeterPointer Extends DrawObj setColor(fillColor.l, edgeColor.l = -1) setPos(value.d) setShape(pointerType.l, lengthRatio.d = #Chart_NoValue, widthRatio.d = #Chart_NoValue) setShape2(*pointerCoor.Long, pointerCoorLen.l, lengthRatio.d = #Chart_NoValue, widthRatio.d = #Chart_NoValue) EndInterface Structure sMeterPointer Extends sDrawObj MeterPointer_ptr.MeterPointerInternal EndStructure Method(MeterPointer,setColor)(*this.sMeterPointer, fillColor.l, edgeColor.l) CMeterPointer_setColor(*this\MeterPointer_ptr, fillColor, edgeColor) EndMethod() Method(MeterPointer,setPos)(*this.sMeterPointer, value.d) CMeterPointer_setPos(*this\MeterPointer_ptr, value) EndMethod() Method(MeterPointer,setShape)(*this.sMeterPointer, pointerType.l, lengthRatio.d, widthRatio.d) CMeterPointer_setShape(*this\MeterPointer_ptr, pointerType, lengthRatio, widthRatio) EndMethod() Method(MeterPointer,setShape2)(*this.sMeterPointer, *pointerCoor.Long, pointerCoorLen.l, lengthRatio.d, widthRatio.d) CMeterPointer_setShape2(*this\MeterPointer_ptr, *pointerCoor, pointerCoorLen, lengthRatio, widthRatio) EndMethod() ConstructorInit(MeterPointer,DrawObj) baseInit(DrawObj,MeterPointer2DrawObj(init)) *this\MeterPointer_ptr = init EndConstructorInit() Constructor(MeterPointer,DrawObj) AddMethod(MeterPointer,setColor) AddMethod(MeterPointer,setPos) AddMethod(MeterPointer,setShape) AddMethod(MeterPointer,setShape2) EndConstructor() Procedure.i New_MeterPointer(ptr.MeterPointerInternal) InitInterface(MeterPointer,DrawObj,ptr) EndProcedure ;} ;- Class BaseMeter ;{ Class BaseMeter Macro pBaseMeter : i : EndMacro Interface BaseMeter Extends BaseChart ;init(ptr.BaseMeterInternal) addPointer.pMeterPointer(value.d, fillColor.l = #Chart_LineColor, edgeColor.l = -1) setScale(lowerLimit.d, upperLimit.d, majorTickInc.d = 0, minorTickInc.d = 0, microTickInc.d = 0) setScale2(lowerLimit.d, upperLimit.d, *labels.Integer, labelsLen.l) setScale3(lowerLimit.d, upperLimit.d, *labels.Double, labelsLen.l, formatString.s = "") addLabel(pos.d, label.s) getLabel.s(i.d) ; getTicks.DoubleArray() setLabelStyle.pTextBox(font.s = "bold", fontSize.d = -1, fontColor.l = #Chart_TextColor, fontAngle.d = 0) setLabelPos(labelInside.cd_bool, labelOffset.l = 0) setLabelFormat(mainLabelFormat.s) setTickLength(majorLen.l, minorLen.l = -$7fffffff, microLen.l = -$7fffffff) setLineWidth(axisWidth.l, majorTickWidth.l = 1, minorTickWidth.l = 1, microTickWidth.l = 1) setMeterColors(axisColor.l, labelColor.l = -1, tickColor.l = -1) getCoor.l(v.d) EndInterface Structure sBaseMeter Extends sBaseChart BaseMeter_ptr.BaseMeterInternal EndStructure Method(BaseMeter,init)(*this.sBaseMeter, ptr.BaseMeterInternal) *this\BaseMeter_ptr = ptr _BaseChart_init(*this, BaseMeter2BaseChart(*this\BaseMeter_ptr)) EndMethod() Method(BaseMeter,addPointer,.pMeterPointer)(*this.sBaseMeter, value.d, fillColor.l, edgeColor.l) Protected RET.MeterPointer = New( MeterPointer(CBaseMeter_addPointer(*this\BaseMeter_ptr, value, fillColor, edgeColor)) ) Protected this.BaseMeter = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(BaseMeter,setScale)(*this.sBaseMeter, lowerLimit.d, upperLimit.d, majorTickInc.d, minorTickInc.d, microTickInc.d) CBaseMeter_setScale(*this\BaseMeter_ptr, lowerLimit, upperLimit, majorTickInc, minorTickInc, microTickInc) EndMethod() Method(BaseMeter,setScale2)(*this.sBaseMeter, lowerLimit.d, upperLimit.d, *labels.Integer, labelsLen.l) CBaseMeter_setScale2(*this\BaseMeter_ptr, lowerLimit, upperLimit, *labels, labelsLen) EndMethod() Method(BaseMeter,setScale3)(*this.sBaseMeter, lowerLimit.d, upperLimit.d, *labels.Double, labelsLen.l, formatString.s) CBaseMeter_setScale3(*this\BaseMeter_ptr, lowerLimit, upperLimit, *labels, labelsLen, formatString) EndMethod() Method(BaseMeter,addLabel)(*this.sBaseMeter, pos.d, label.s) CBaseMeter_addLabel(*this\BaseMeter_ptr, pos, label) EndMethod() Method(BaseMeter,getLabel,.s)(*this.sBaseMeter, i.d) Protected *p.Ascii = CBaseMeter_getLabel(*this\BaseMeter_ptr, i) If *p ProcedureReturn PeekS(*p,-1,#PB_Ascii) EndIf EndMethod() ; Method(BaseMeter,getTicks,.DoubleArray)(*this.sBaseMeter) ; ; const double *d; int len; CBaseMeter_getTicks(*this\BaseMeter_ptr, &d, &len); ProcedureReturn DoubleArray(d, len); ; EndMethod() Method(BaseMeter,setLabelStyle,.pTextBox)(*this.sBaseMeter, font.s, fontSize.d, fontColor.l, fontAngle.d) Protected RET.TextBox = New( TextBox(CBaseMeter_setLabelStyle(*this\BaseMeter_ptr, font, fontSize, fontColor, fontAngle)) ) Protected this.BaseMeter = *this this\reg(RET) ProcedureReturn RET EndMethod() Method(BaseMeter,setLabelPos)(*this.sBaseMeter, labelInside.cd_bool, labelOffset.l) CBaseMeter_setLabelPos(*this\BaseMeter_ptr, labelInside, labelOffset) EndMethod() Method(BaseMeter,setLabelFormat)(*this.sBaseMeter, mainLabelFormat.s) CBaseMeter_setLabelFormat(*this\BaseMeter_ptr, mainLabelFormat) EndMethod() Method(BaseMeter,setTickLength)(*this.sBaseMeter, majorLen.l, minorLen.l, microLen.l) CBaseMeter_setTickLength(*this\BaseMeter_ptr, majorLen, minorLen, microLen) EndMethod() Method(BaseMeter,setLineWidth)(*this.sBaseMeter, axisWidth.l, majorTickWidth.l, minorTickWidth.l, microTickWidth.l) CBaseMeter_setLineWidth(*this\BaseMeter_ptr, axisWidth, majorTickWidth, minorTickWidth, microTickWidth) EndMethod() Method(BaseMeter,setMeterColors)(*this.sBaseMeter, axisColor.l, labelColor.l, tickColor.l) CBaseMeter_setMeterColors(*this\BaseMeter_ptr, axisColor, labelColor, tickColor) EndMethod() Method(BaseMeter,getCoor,.l)(*this.sBaseMeter, v.d) ProcedureReturn CBaseMeter_getCoor(*this\BaseMeter_ptr, v) EndMethod() Constructor(BaseMeter,BaseChart) Override(BaseMeter,init) AddMethod(BaseMeter,addPointer) AddMethod(BaseMeter,setScale) AddMethod(BaseMeter,setScale2) AddMethod(BaseMeter,setScale3) AddMethod(BaseMeter,addLabel) AddMethod(BaseMeter,getLabel) ; AddMethod(BaseMeter,getTicks) AddMethod(BaseMeter,setLabelStyle) AddMethod(BaseMeter,setLabelPos) AddMethod(BaseMeter,setLabelFormat) AddMethod(BaseMeter,setTickLength) AddMethod(BaseMeter,setLineWidth) AddMethod(BaseMeter,setMeterColors) AddMethod(BaseMeter,getCoor) EndConstructor() Procedure.i New_BaseMeter() InitInterface(BaseMeter,BaseChart) EndProcedure ;} ;- Class AngularMeter ;{ Class AngularMeter Macro pAngularMeter : i : EndMacro Interface AngularMeter Extends BaseMeter addRing(startRadius.l, endRadius.l, fillColor.l, edgeColor.l = -1) addRingSector(startRadius.l, endRadius.l, a1.d, a2.d, fillColor.l, edgeColor.l = -1) setCap(radius.l, fillColor.l, edgeColor.l = #Chart_LineColor) setMeter(cx.l, cy.l, radius.l, startAngle.d, endAngle.d) addZone(startValue.d, endValue.d, fillColor.l, edgeColor.l = -1) addZone2(startValue.d, endValue.d, startRadius.l, endRadius.l, fillColor.l, edgeColor.l = -1) EndInterface Structure sAngularMeter Extends sBaseMeter AngularMeter_ptr.AngularMeterInternal EndStructure Method(AngularMeter,addRing)(*this.sAngularMeter, startRadius.l, endRadius.l, fillColor.l, edgeColor.l) CAngularMeter_addRing(*this\AngularMeter_ptr, startRadius, endRadius, fillColor, edgeColor) EndMethod() Method(AngularMeter,addRingSector)(*this.sAngularMeter, startRadius.l, endRadius.l, a1.d, a2.d, fillColor.l, edgeColor.l) CAngularMeter_addRingSector(*this\AngularMeter_ptr, startRadius, endRadius, a1, a2, fillColor, edgeColor) EndMethod() Method(AngularMeter,setCap)(*this.sAngularMeter, radius.l, fillColor.l, edgeColor.l) CAngularMeter_setCap(*this\AngularMeter_ptr, radius, fillColor, edgeColor) EndMethod() Method(AngularMeter,setMeter)(*this.sAngularMeter, cx.l, cy.l, radius.l, startAngle.d, endAngle.d) CAngularMeter_setMeter(*this\AngularMeter_ptr, cx, cy, radius, startAngle, endAngle) EndMethod() Method(AngularMeter,addZone)(*this.sAngularMeter, startValue.d, endValue.d, fillColor.l, edgeColor.l) CAngularMeter_addZone2(*this\AngularMeter_ptr, startValue, endValue, fillColor, edgeColor) EndMethod() Method(AngularMeter,addZone2)(*this.sAngularMeter, startValue.d, endValue.d, startRadius.l, endRadius.l, fillColor.l, edgeColor.l) CAngularMeter_addZone(*this\AngularMeter_ptr, startValue, endValue, startRadius, endRadius, fillColor, edgeColor) EndMethod() Constructor(AngularMeter,BaseMeter) AddMethod(AngularMeter,addRing) AddMethod(AngularMeter,addRingSector) AddMethod(AngularMeter,setCap) AddMethod(AngularMeter,setMeter) AddMethod(AngularMeter,addZone) AddMethod(AngularMeter,addZone2) EndConstructor() Procedure.i New_AngularMeter(width.l, height.l, bgColor.l = #Chart_BackgroundColor, edgeColor.l = #Chart_Transparent, raisedEffect.l = 0) InitInterface_NoReturn(AngularMeter,BaseMeter) Protected this.AngularMeter = *this *this\AngularMeter_ptr = CAngularMeter_create(width, height, bgColor, edgeColor, raisedEffect) this\init(AngularMeter2BaseMeter(*this\AngularMeter_ptr)) ProcedureReturn *this EndProcedure ;} ;- Class LinearMeter ;{ Class LinearMeter Macro pLinearMeter : i : EndMacro Interface LinearMeter Extends BaseMeter setMeter(leftX.l, topY.l, width.l, height.l, axisPos.l = #Chart_Left, isReversed.cd_bool = #False) setRail(railColor.l, railWidth.l = 2, railOffset.l = 6) addZone.pTextBox(startValue.d, endValue.d, color.l, label.s = "") EndInterface Structure sLinearMeter Extends sBaseMeter LinearMeter_ptr.LinearMeterInternal EndStructure Method(LinearMeter,setMeter)(*this.sLinearMeter, leftX.l, topY.l, width.l, height.l, axisPos.l, isReversed.cd_bool) CLinearMeter_setMeter(*this\LinearMeter_ptr, leftX, topY, width, height, axisPos, isReversed) EndMethod() Method(LinearMeter,setRail)(*this.sLinearMeter, railColor.l, railWidth.l, railOffset.l) CLinearMeter_setRail(*this\LinearMeter_ptr, railColor, railWidth, railOffset) EndMethod() Method(LinearMeter,addZone,.pTextBox)(*this.sLinearMeter, startValue.d, endValue.d, color.l, label.s) Protected RET.TextBox = New( TextBox(CLinearMeter_addZone(*this\LinearMeter_ptr, startValue, endValue, color, label)) ) Protected this.LinearMeter = *this this\reg(RET) ProcedureReturn RET EndMethod() Constructor(LinearMeter,BaseMeter) AddMethod(LinearMeter,setMeter) AddMethod(LinearMeter,setRail) AddMethod(LinearMeter,addZone) EndConstructor() Procedure.i New_LinearMeter(width.l, height.l, bgColor.l = #Chart_BackgroundColor, edgeColor.l = #Chart_Transparent, raisedEffect.l = 0) InitInterface_NoReturn(LinearMeter,BaseMeter) Protected this.LinearMeter = *this *this\LinearMeter_ptr = CLinearMeter_create(width, height, bgColor, edgeColor, raisedEffect) this\init(LinearMeter2BaseMeter(*this\LinearMeter_ptr)) ProcedureReturn *this EndProcedure ;} ;- Class ArrayMath ;{ Class ArrayMath Macro pArrayMath : i : EndMacro Interface ArrayMath Extends Object add2.pArrayMath(*b.Double, bLen.l) ADD.pArrayMath(b.d) sub2.pArrayMath(*b.Double, bLen.l) SUB.pArrayMath(b.d) mul2.pArrayMath(*b.Double, bLen.l) MUL.pArrayMath(b.d) div2.pArrayMath(*b.Double, bLen.l) DIV.pArrayMath(b.d) financeDiv.pArrayMath(*b.Double, bLen.l, zeroByZeroValue.d) shift.pArrayMath(offset.l = 1, fillValue.d = #Chart_NoValue) delta.pArrayMath(offset.l = 1) rate.pArrayMath(offset.l = 1) abs.pArrayMath() acc.pArrayMath() selectGTZ.pArrayMath(*decisionArray.Double = 0, decisionArrayLen.l = 0, fillValue.d = 0) selectGEZ.pArrayMath(*decisionArray.Double = 0, decisionArrayLen.l = 0, fillValue.d = 0) selectLTZ.pArrayMath(*decisionArray.Double = 0, decisionArrayLen.l = 0, fillValue.d = 0) selectLEZ.pArrayMath(*decisionArray.Double = 0, decisionArrayLen.l = 0, fillValue.d = 0) selectEQZ.pArrayMath(*decisionArray.Double = 0, decisionArrayLen.l = 0, fillValue.d = 0) selectNEZ.pArrayMath(*decisionArray.Double = 0, decisionArrayLen.l = 0, fillValue.d = 0) selectStartOfHour.pArrayMath(majorTickStep.l = 1, initialMargin.d = 300) selectStartOfDay.pArrayMath(majorTickStep.l = 1, initialMargin.d = 3 * 3600) selectStartOfWeek.pArrayMath(majorTickStep.l = 1, initialMargin.d = 2 * 86400) selectStartOfMonth.pArrayMath(majorTickStep.l = 1, initialMargin.d = 5 * 86400) selectStartOfYear.pArrayMath(majorTickStep.l = 1, initialMargin.d = 60 * 86400) selectRegularSpacing.pArrayMath(majorTickStep.l, minorTickStep.l = 0, initialMargin.l = 0) trim.pArrayMath(startIndex.l = 0, len.l = -1) insert2.pArrayMath(*a.Double, aLen.l, insertPoint.l = -1) insert.pArrayMath(c.d, len.l, insertPoint.l = -1) replace.pArrayMath(a.d, b.d) movAvg.pArrayMath(interval.l) expAvg.pArrayMath(smoothingFactor.d) movMed.pArrayMath(interval.l) movPercentile.pArrayMath(interval.l, percentile.d) movMax.pArrayMath(interval.l) movMin.pArrayMath(interval.l) movStdDev.pArrayMath(interval.l) movCorr.pArrayMath(interval.l, *b.Double = 0, bLen.l = 0) lowess.pArrayMath(smoothness.d = 0.25, iteration.l = 0) lowess2.pArrayMath(*b.Double, bLen.l, smoothness.d = 0.25, iteration.l = 0) result.i() resultLen.l() ; new for PB max.d() maxValue.d() min.d() minValue.d() avg.d() sum.d() stdDev.d() med.d() percentile.d(p.d) maxIndex.l() minIndex.l() aggregate.i(*retLen.Long, *srcArray.Double, srcArrayLen.l, aggregateMethod.l, param.d = 50) EndInterface Structure sArrayMath Extends sObject ArrayMath_ptr.ArrayMathInternal EndStructure Method(ArrayMath,add2,.pArrayMath)(*this.sArrayMath, *b.Double, bLen.l) CArrayMath_add(*this\ArrayMath_ptr, *b, bLen) ProcedureReturn *this EndMethod() Method(ArrayMath,ADD,.pArrayMath)(*this.sArrayMath, b.d) CArrayMath_add2(*this\ArrayMath_ptr, b) ProcedureReturn *this EndMethod() Method(ArrayMath,sub2,.pArrayMath)(*this.sArrayMath, *b.Double, bLen.l) CArrayMath_sub(*this\ArrayMath_ptr, *b, bLen) ProcedureReturn *this EndMethod() Method(ArrayMath,SUB,.pArrayMath)(*this.sArrayMath, b.d) CArrayMath_sub2(*this\ArrayMath_ptr, b) ProcedureReturn *this EndMethod() Method(ArrayMath,mul2,.pArrayMath)(*this.sArrayMath, *b.Double, bLen.l) CArrayMath_mul(*this\ArrayMath_ptr, *b, bLen) ProcedureReturn *this EndMethod() Method(ArrayMath,MUL,.pArrayMath)(*this.sArrayMath, b.d) CArrayMath_mul2(*this\ArrayMath_ptr, b) ProcedureReturn *this EndMethod() Method(ArrayMath,div2,.pArrayMath)(*this.sArrayMath, *b.Double, bLen.l) CArrayMath_div(*this\ArrayMath_ptr, *b, bLen) ProcedureReturn *this EndMethod() Method(ArrayMath,DIV,.pArrayMath)(*this.sArrayMath, b.d) CArrayMath_div2(*this\ArrayMath_ptr, b) ProcedureReturn *this EndMethod() Method(ArrayMath,financeDiv,.pArrayMath)(*this.sArrayMath, *b.Double, bLen.l, zeroByZeroValue.d) CArrayMath_financeDiv(*this\ArrayMath_ptr, *b, bLen, zeroByZeroValue) ProcedureReturn *this EndMethod() Method(ArrayMath,shift,.pArrayMath)(*this.sArrayMath, offset.l, fillValue.d) CArrayMath_shift(*this\ArrayMath_ptr, offset, fillValue) ProcedureReturn *this EndMethod() Method(ArrayMath,delta,.pArrayMath)(*this.sArrayMath, offset.l) CArrayMath_delta(*this\ArrayMath_ptr, offset) ProcedureReturn *this EndMethod() Method(ArrayMath,rate,.pArrayMath)(*this.sArrayMath, offset.l) CArrayMath_rate(*this\ArrayMath_ptr, offset) ProcedureReturn *this EndMethod() Method(ArrayMath,abs,.pArrayMath)(*this.sArrayMath) CArrayMath_abs(*this\ArrayMath_ptr) ProcedureReturn *this EndMethod() Method(ArrayMath,acc,.pArrayMath)(*this.sArrayMath) CArrayMath_acc(*this\ArrayMath_ptr) ProcedureReturn *this EndMethod() Method(ArrayMath,selectGTZ,.pArrayMath)(*this.sArrayMath, *decisionArray.Double, decisionArrayLen.l, fillValue.d) CArrayMath_selectGTZ(*this\ArrayMath_ptr, *decisionArray, decisionArrayLen, fillValue) ProcedureReturn *this EndMethod() Method(ArrayMath,selectGEZ,.pArrayMath)(*this.sArrayMath, *decisionArray.Double, decisionArrayLen.l, fillValue.d) CArrayMath_selectGEZ(*this\ArrayMath_ptr, *decisionArray, decisionArrayLen, fillValue) ProcedureReturn *this EndMethod() Method(ArrayMath,selectLTZ,.pArrayMath)(*this.sArrayMath, *decisionArray.Double, decisionArrayLen.l, fillValue.d) CArrayMath_selectLTZ(*this\ArrayMath_ptr, *decisionArray, decisionArrayLen, fillValue) ProcedureReturn *this EndMethod() Method(ArrayMath,selectLEZ,.pArrayMath)(*this.sArrayMath, *decisionArray.Double, decisionArrayLen.l, fillValue.d) CArrayMath_selectLEZ(*this\ArrayMath_ptr, *decisionArray, decisionArrayLen, fillValue) ProcedureReturn *this EndMethod() Method(ArrayMath,selectEQZ,.pArrayMath)(*this.sArrayMath, *decisionArray.Double, decisionArrayLen.l, fillValue.d) CArrayMath_selectEQZ(*this\ArrayMath_ptr, *decisionArray, decisionArrayLen, fillValue) ProcedureReturn *this EndMethod() Method(ArrayMath,selectNEZ,.pArrayMath)(*this.sArrayMath, *decisionArray.Double, decisionArrayLen.l, fillValue.d) CArrayMath_selectNEZ(*this\ArrayMath_ptr, *decisionArray, decisionArrayLen, fillValue) ProcedureReturn *this EndMethod() Method(ArrayMath,selectStartOfHour,.pArrayMath)(*this.sArrayMath, majorTickStep.l, initialMargin.d) CArrayMath_selectStartOfHour(*this\ArrayMath_ptr, majorTickStep, initialMargin) ProcedureReturn *this EndMethod() Method(ArrayMath,selectStartOfDay,.pArrayMath)(*this.sArrayMath, majorTickStep.l, initialMargin.d) CArrayMath_selectStartOfDay(*this\ArrayMath_ptr, majorTickStep, initialMargin) ProcedureReturn *this EndMethod() Method(ArrayMath,selectStartOfWeek,.pArrayMath)(*this.sArrayMath, majorTickStep.l, initialMargin.d) CArrayMath_selectStartOfWeek(*this\ArrayMath_ptr, majorTickStep, initialMargin) ProcedureReturn *this EndMethod() Method(ArrayMath,selectStartOfMonth,.pArrayMath)(*this.sArrayMath, majorTickStep.l, initialMargin.d) CArrayMath_selectStartOfMonth(*this\ArrayMath_ptr, majorTickStep, initialMargin) ProcedureReturn *this EndMethod() Method(ArrayMath,selectStartOfYear,.pArrayMath)(*this.sArrayMath, majorTickStep.l, initialMargin.d) CArrayMath_selectStartOfYear(*this\ArrayMath_ptr, majorTickStep, initialMargin) ProcedureReturn *this EndMethod() Method(ArrayMath,selectRegularSpacing,.pArrayMath)(*this.sArrayMath, majorTickStep.l, minorTickStep.l, initialMargin.l) CArrayMath_selectRegularSpacing(*this\ArrayMath_ptr, majorTickStep, minorTickStep, initialMargin) ProcedureReturn *this EndMethod() Top Profile Reply With quote Oliver13 Post subject: Re: ChartDirector - Professional charts For PBPostPosted: Thu Apr 06, 2017 9:00 pm Offline User User Joined: Thu Sep 30, 2010 6:40 am Posts: 51 Chartdirector.pbi - Part 8 Code: Method(ArrayMath,trim,.pArrayMath)(*this.sArrayMath, startIndex.l, len.l) CArrayMath_trim(*this\ArrayMath_ptr, startIndex, len) ProcedureReturn *this EndMethod() Method(ArrayMath,insert2,.pArrayMath)(*this.sArrayMath, *a.Double, aLen.l, insertPoint.l) CArrayMath_insert(*this\ArrayMath_ptr, *a, aLen, insertPoint) ProcedureReturn *this EndMethod() Method(ArrayMath,insert,.pArrayMath)(*this.sArrayMath, c.d, len.l, insertPoint.l) CArrayMath_insert2(*this\ArrayMath_ptr, c, len, insertPoint) ProcedureReturn *this EndMethod() Method(ArrayMath,replace,.pArrayMath)(*this.sArrayMath, a.d, b.d) CArrayMath_replace(*this\ArrayMath_ptr, a, b) ProcedureReturn *this EndMethod() Method(ArrayMath,movAvg,.pArrayMath)(*this.sArrayMath, interval.l) CArrayMath_movAvg(*this\ArrayMath_ptr, interval) ProcedureReturn *this EndMethod() Method(ArrayMath,expAvg,.pArrayMath)(*this.sArrayMath, smoothingFactor.d) CArrayMath_expAvg(*this\ArrayMath_ptr, smoothingFactor) ProcedureReturn *this EndMethod() Method(ArrayMath,movMed,.pArrayMath)(*this.sArrayMath, interval.l) CArrayMath_movMed(*this\ArrayMath_ptr, interval) ProcedureReturn *this EndMethod() Method(ArrayMath,movPercentile,.pArrayMath)(*this.sArrayMath, interval.l, percentile.d) CArrayMath_movPercentile(*this\ArrayMath_ptr, interval, percentile) ProcedureReturn *this EndMethod() Method(ArrayMath,movMax,.pArrayMath)(*this.sArrayMath, interval.l) CArrayMath_movMax(*this\ArrayMath_ptr, interval) ProcedureReturn *this EndMethod() Method(ArrayMath,movMin,.pArrayMath)(*this.sArrayMath, interval.l) CArrayMath_movMin(*this\ArrayMath_ptr, interval) ProcedureReturn *this EndMethod() Method(ArrayMath,movStdDev,.pArrayMath)(*this.sArrayMath, interval.l) CArrayMath_movStdDev(*this\ArrayMath_ptr, interval) ProcedureReturn *this EndMethod() Method(ArrayMath,movCorr,.pArrayMath)(*this.sArrayMath, interval.l, *b.Double, bLen.l) CArrayMath_movCorr(*this\ArrayMath_ptr, interval, *b, bLen) ProcedureReturn *this EndMethod() Method(ArrayMath,lowess,.pArrayMath)(*this.sArrayMath, smoothness.d, iteration.l) CArrayMath_lowess(*this\ArrayMath_ptr, smoothness, iteration) ProcedureReturn *this EndMethod() Method(ArrayMath,lowess2,.pArrayMath)(*this.sArrayMath, *b.Double, bLen.l, smoothness.d, iteration.l) CArrayMath_lowess2(*this\ArrayMath_ptr, *b, bLen, smoothness, iteration) ProcedureReturn *this EndMethod() Method(ArrayMath,result,.i)(*this.sArrayMath) Protected *d.Double, len.l CArrayMath_result(*this\ArrayMath_ptr, @*d, @len) ProcedureReturn *d EndMethod() Method(ArrayMath,resultLen,.l)(*this.sArrayMath) Protected *d.Double, len.l CArrayMath_result(*this\ArrayMath_ptr, @*d, @len) ProcedureReturn len EndMethod() Method(ArrayMath,max,.d)(*this.sArrayMath) ProcedureReturn CArrayMath_max(*this\ArrayMath_ptr) EndMethod() Method(ArrayMath,maxValue,.d)(*this.sArrayMath) ProcedureReturn CArrayMath_max(*this\ArrayMath_ptr) EndMethod() Method(ArrayMath,min,.d)(*this.sArrayMath) ProcedureReturn CArrayMath_min(*this\ArrayMath_ptr) EndMethod() Method(ArrayMath,minValue,.d)(*this.sArrayMath) ProcedureReturn CArrayMath_min(*this\ArrayMath_ptr) EndMethod() Method(ArrayMath,avg,.d)(*this.sArrayMath) ProcedureReturn CArrayMath_avg(*this\ArrayMath_ptr) EndMethod() Method(ArrayMath,sum,.d)(*this.sArrayMath) ProcedureReturn CArrayMath_sum(*this\ArrayMath_ptr) EndMethod() Method(ArrayMath,stdDev,.d)(*this.sArrayMath) ProcedureReturn CArrayMath_stdDev(*this\ArrayMath_ptr) EndMethod() Method(ArrayMath,med,.d)(*this.sArrayMath) ProcedureReturn CArrayMath_med(*this\ArrayMath_ptr) EndMethod() Method(ArrayMath,percentile,.d)(*this.sArrayMath, p.d) ProcedureReturn CArrayMath_percentile(*this\ArrayMath_ptr, p) EndMethod() Method(ArrayMath,maxIndex,.l)(*this.sArrayMath) ProcedureReturn CArrayMath_maxIndex(*this\ArrayMath_ptr) EndMethod() Method(ArrayMath,minIndex,.l)(*this.sArrayMath) ProcedureReturn CArrayMath_minIndex(*this\ArrayMath_ptr) EndMethod() Method(ArrayMath,aggregate,.i)(*this.sArrayMath, *retLen.Long, *srcArray.Double, srcArrayLen.l, aggregateMethod.l, param.d) If *retLen Protected *d.Double CArrayMath_aggregate(*this\ArrayMath_ptr, *srcArray, srcArrayLen, aggregateMethod, param, @*d, *retLen) ProcedureReturn *d EndIf EndMethod() Destructor(ArrayMath,Object) If *this\ArrayMath_ptr CArrayMath_destroy(*this\ArrayMath_ptr) EndIf EndDestructor() Constructor(ArrayMath,Object) AddMethod(ArrayMath,ADD) AddMethod(ArrayMath,add2) AddMethod(ArrayMath,SUB) AddMethod(ArrayMath,sub2) AddMethod(ArrayMath,MUL) AddMethod(ArrayMath,mul2) AddMethod(ArrayMath,DIV) AddMethod(ArrayMath,div2) AddMethod(ArrayMath,financeDiv) AddMethod(ArrayMath,shift) AddMethod(ArrayMath,delta) AddMethod(ArrayMath,rate) AddMethod(ArrayMath,abs) AddMethod(ArrayMath,acc) AddMethod(ArrayMath,selectGTZ) AddMethod(ArrayMath,selectGEZ) AddMethod(ArrayMath,selectLTZ) AddMethod(ArrayMath,selectLEZ) AddMethod(ArrayMath,selectEQZ) AddMethod(ArrayMath,selectNEZ) AddMethod(ArrayMath,selectStartOfHour) AddMethod(ArrayMath,selectStartOfDay) AddMethod(ArrayMath,selectStartOfWeek) AddMethod(ArrayMath,selectStartOfMonth) AddMethod(ArrayMath,selectStartOfYear) AddMethod(ArrayMath,selectRegularSpacing) AddMethod(ArrayMath,trim) AddMethod(ArrayMath,insert) AddMethod(ArrayMath,insert2) AddMethod(ArrayMath,replace) AddMethod(ArrayMath,movAvg) AddMethod(ArrayMath,expAvg) AddMethod(ArrayMath,movMed) AddMethod(ArrayMath,movPercentile) AddMethod(ArrayMath,movMax) AddMethod(ArrayMath,movMin) AddMethod(ArrayMath,movStdDev) AddMethod(ArrayMath,movCorr) AddMethod(ArrayMath,lowess) AddMethod(ArrayMath,lowess2) AddMethod(ArrayMath,result) AddMethod(ArrayMath,resultLen) AddMethod(ArrayMath,max) AddMethod(ArrayMath,maxValue) AddMethod(ArrayMath,min) AddMethod(ArrayMath,minValue) AddMethod(ArrayMath,avg) AddMethod(ArrayMath,sum) AddMethod(ArrayMath,stdDev) AddMethod(ArrayMath,med) AddMethod(ArrayMath,percentile) AddMethod(ArrayMath,maxIndex) AddMethod(ArrayMath,minIndex) AddMethod(ArrayMath,aggregate) EndConstructor() Procedure.i New_ArrayMath(*arr.Double, arrLen.l) InitInterface_NoReturn(ArrayMath,Object) *this\ArrayMath_ptr = CArrayMath_create(*arr, arrLen) ProcedureReturn *this EndProcedure ;} ;- Class RanTable ;{ Class RanTable Macro pRanTable : i : EndMacro Interface RanTable Extends Object setCol(colNo.l, startValue.d, minDelta.d, maxDelta.d, lowerLimit.d = -1E+308, upperLimit.d = 1E+308) setCol2(colNo.l, minValue.d, maxValue.d) setDateCol(i.l, startTime.d, tickInc.d, weekDayOnly.cd_bool = #False) setHLOCCols(i.l, startValue.d, minDelta.d, maxDelta.d, lowerLimit.d = 0, upperLimit.d = 1E+308) selectDate.l(colNo.l, minDate.d, maxDate.d) getCol.i(*retLen.Long, i.l) EndInterface Structure sRanTable Extends sObject RanTable_ptr.RanTableInternal EndStructure Method(RanTable,setCol)(*this.sRanTable, colNo.l, startValue.d, minDelta.d, maxDelta.d, lowerLimit.d, upperLimit.d) CRanTable_setCol2(*this\RanTable_ptr, colNo, startValue, minDelta, maxDelta, lowerLimit, upperLimit) EndMethod() Method(RanTable,setCol2)(*this.sRanTable, colNo.l, minValue.d, maxValue.d) CRanTable_setCol(*this\RanTable_ptr, colNo, minValue, maxValue) EndMethod() Method(RanTable,setDateCol)(*this.sRanTable, i.l, startTime.d, tickInc.d, weekDayOnly.cd_bool) CRanTable_setDateCol(*this\RanTable_ptr, i, startTime, tickInc, weekDayOnly) EndMethod() Method(RanTable,setHLOCCols)(*this.sRanTable, i.l, startValue.d, minDelta.d, maxDelta.d, lowerLimit.d, upperLimit.d) CRanTable_setHLOCCols(*this\RanTable_ptr, i, startValue, minDelta, maxDelta, lowerLimit, upperLimit) EndMethod() Method(RanTable,selectDate,.l)(*this.sRanTable, colNo.l, minDate.d, maxDate.d) ProcedureReturn CRanTable_selectDate(*this\RanTable_ptr, colNo, minDate, maxDate) EndMethod() ; Method(RanTable,getCol,.DoubleArray)(*this.sRanTable, i.l) ; ; const double *d; int len; CRanTable_getCol(*this\RanTable_ptr, i, &d, &len); ProcedureReturn DoubleArray(d, len); ; EndMethod() Method(RanTable,getCol,.i)(*this.sRanTable, *retLen.Long, i.l) If *retLen Protected *d.double CRanTable_getCol(*this\RanTable_ptr, i, @*d, *retlen) ProcedureReturn *d EndIf EndMethod() Destructor(RanTable,Object) If *this\RanTable_ptr CRanTable_destroy(*this\RanTable_ptr) EndIf EndDestructor() Constructor(RanTable,Object) AddMethod(RanTable,setCol) AddMethod(RanTable,setCol2) AddMethod(RanTable,setDateCol) AddMethod(RanTable,setHLOCCols) AddMethod(RanTable,selectDate) ;AddMethod(RanTable,getCol) AddMethod(RanTable,getCol) EndConstructor() Procedure.i New_RanTable(seed.l, noOfCols.l, noOfRows.l) InitInterface_NoReturn(RanTable,Object) *this\RanTable_ptr = CRanTable_create(seed, noOfCols, noOfRows) ProcedureReturn *this EndProcedure ;} ;- Class RanSeries ;{ Class RanSeries Macro pRanSeries : i : EndMacro Interface RanSeries Extends Object ;getSeries.DoubleArray(len.l, minValue.d, maxValue.d) ;getSeries.DoubleArray(len.l, minValue.d, maxValue.d, maxDelta.d, lowerLimit.d = -1E+308, upperLimit.d = 1E+308) ;getDateSeries.DoubleArray(len.l, startTime.d, tickInc.d, weekDayOnly.cd_bool = #False) ; ; PB specific: added 1st parameter for returning the len ; getSeries.i(*retLen.Long, len.l, minValue.d, maxValue.d, maxDelta.d, lowerLimit.d = -1E+308, upperLimit.d = 1E+308) getSeries2.i(*retLen.Long, len.l, minValue.d, maxValue.d) getDateSeries.i(*retLen.Long, len.l, startTime.d, tickInc.d, weekDayOnly.cd_bool = #False) EndInterface Structure sRanSeries Extends sObject RanSeries_ptr.RanSeriesInternal EndStructure Method(RanSeries,getSeries,.i)(*this.sRanSeries, *retLen.Long, len.l, minValue.d, maxValue.d, maxDelta.d, lowerLimit.d, upperLimit.d) If *retLen Protected *ret.Double CRanSeries_getSeries2(*this\RanSeries_ptr, len, minValue, maxValue, maxDelta, lowerLimit, upperLimit, @*ret, *retLen) ProcedureReturn *ret EndIf EndMethod() Method(RanSeries,getSeries2,.i)(*this.sRanSeries, *retLen.Long, len.l, minValue.d, maxValue.d) If *retLen Protected *ret.Double CRanSeries_getSeries(*this\RanSeries_ptr, len, minValue, maxValue, @*ret, *retLen) ProcedureReturn *ret EndIf EndMethod() Method(RanSeries,getDateSeries,.i)(*this.sRanSeries, *retLen.Long, len.l, startTime.d, tickInc.d, weekDayOnly.cd_bool) If *retLen Protected *ret.Double CRanSeries_getDateSeries(*this\RanSeries_ptr, len, startTime, tickInc, weekDayOnly, @*ret, *retLen) ProcedureReturn *ret EndIf EndMethod() Destructor(RanSeries,Object) If *this\RanSeries_ptr CRanSeries_destroy(*this\RanSeries_ptr) EndIf EndDestructor() Constructor(RanSeries,Object) AddMethod(RanSeries,getSeries) AddMethod(RanSeries,getSeries2) AddMethod(RanSeries,getDateSeries) EndConstructor() Procedure.i New_RanSeries(seed.l) InitInterface_NoReturn(RanSeries,Object) *this\RanSeries_ptr = CRanSeries_create(seed) ProcedureReturn *this EndProcedure ;} ;- Class FinanceSimulator ;{ Class FinanceSimulator Macro pFinanceSimulator : i : EndMacro Interface FinanceSimulator Extends Object ;getTimeStamps.DoubleArray() ;getHighData.DoubleArray() ;getLowData.DoubleArray() ;getOpenData.DoubleArray() ;getCloseData.DoubleArray() ;getVolData.DoubleArray() getTimeStamps.i(*retLen.Long) getHighData.i(*retLen.Long) getLowData.i(*retLen.Long) getOpenData.i(*retLen.Long) getCloseData.i(*retLen.Long) getVolData.i(*retLen.Long) EndInterface Structure sFinanceSimulator Extends sObject FinanceSimulator_ptr.FinanceSimulatorInternal EndStructure Method(FinanceSimulator,getTimeStamps,.i)(*this.sFinanceSimulator, *retLen.Long) If *retLen Protected *d.Double CFinanceSimulator_getTimeStamps(*this\FinanceSimulator_ptr, @*d, *retLen) ProcedureReturn *d EndIf EndMethod() Method(FinanceSimulator,getHighData,.i)(*this.sFinanceSimulator, *retLen.Long) If *retLen Protected *d.Double CFinanceSimulator_getHighData(*this\FinanceSimulator_ptr, @*d, *retLen) ProcedureReturn *d EndIf EndMethod() Method(FinanceSimulator,getLowData,.i)(*this.sFinanceSimulator, *retLen.Long) If *retLen Protected *d.Double CFinanceSimulator_getLowData(*this\FinanceSimulator_ptr, @*d, *retLen) ProcedureReturn *d EndIf EndMethod() Method(FinanceSimulator,getOpenData,.i)(*this.sFinanceSimulator, *retLen.Long) If *retLen Protected *d.Double CFinanceSimulator_getOpenData(*this\FinanceSimulator_ptr, @*d, *retLen) ProcedureReturn *d EndIf EndMethod() Method(FinanceSimulator,getCloseData,.i)(*this.sFinanceSimulator, *retLen.Long) If *retLen Protected *d.Double CFinanceSimulator_getCloseData(*this\FinanceSimulator_ptr, @*d, *retLen) ProcedureReturn *d EndIf EndMethod() Method(FinanceSimulator,getVolData,.i)(*this.sFinanceSimulator, *retLen.Long) If *retLen Protected *d.Double CFinanceSimulator_getVolData(*this\FinanceSimulator_ptr, @*d, *retLen) ProcedureReturn *d EndIf EndMethod() Destructor(FinanceSimulator,Object) If *this\FinanceSimulator_ptr CFinanceSimulator_destroy(*this\FinanceSimulator_ptr) EndIf EndDestructor() Constructor(FinanceSimulator,Object) AddMethod(FinanceSimulator,getTimeStamps) AddMethod(FinanceSimulator,getHighData) AddMethod(FinanceSimulator,getLowData) AddMethod(FinanceSimulator,getOpenData) AddMethod(FinanceSimulator,getCloseData) AddMethod(FinanceSimulator,getVolData) EndConstructor() Procedure.i New_FinanceSimulator(seed.l, startTime.d, endTime.d, resolution.l) InitInterface_NoReturn(FinanceSimulator,Object) *this\FinanceSimulator_ptr = CFinanceSimulator_create(seed, startTime, endTime, resolution) ProcedureReturn *this EndProcedure Procedure.i New_FinanceSimulator2(seed.s, startTime.d, endTime.d, resolution.l) InitInterface_NoReturn(FinanceSimulator,Object) *this\FinanceSimulator_ptr = CFinanceSimulator_create2(seed, startTime, endTime, resolution) ProcedureReturn *this EndProcedure ;} ;- Class ImageMapHandler ;{ Class ImageMapHandler Macro pImageMapHandler : i : EndMacro Interface ImageMapHandler Extends Object getHotSpot.l(x.l, y.l) getValue.s(key.s) getKey.s(i.l) getValue2.s(i.l) EndInterface Structure sImageMapHandler Extends sObject ImageMapHandler_ptr.ImageMapHandlerInternal EndStructure Method(ImageMapHandler,getHotSpot,.l)(*this.sImageMapHandler, x.l, y.l) ProcedureReturn CImageMapHandler_getHotSpot(*this\ImageMapHandler_ptr, x, y) EndMethod() Method(ImageMapHandler,getValue,.s)(*this.sImageMapHandler, key.s) Protected *p.Ascii = CImageMapHandler_getValue(*this\ImageMapHandler_ptr, key) If *p ProcedureReturn PeekS(*p,-1,#PB_Ascii) EndIf EndMethod() Method(ImageMapHandler,getKey,.s)(*this.sImageMapHandler, i.l) Protected *p.Ascii = CImageMapHandler_getKey(*this\ImageMapHandler_ptr, i) If *p ProcedureReturn PeekS(*p,-1,#PB_Ascii) EndIf EndMethod() Method(ImageMapHandler,getValue2,.s)(*this.sImageMapHandler, i.l) Protected *p.Ascii = CImageMapHandler_getValue2(*this\ImageMapHandler_ptr, i) If *p ProcedureReturn PeekS(*p,-1,#PB_Ascii) EndIf EndMethod() Destructor(ImageMapHandler,Object) If *this\ImageMapHandler_ptr CImageMapHandler_destroy(*this\ImageMapHandler_ptr) EndIf EndDestructor() Constructor(ImageMapHandler,Object) AddMethod(ImageMapHandler,getHotSpot) AddMethod(ImageMapHandler,getValue) AddMethod(ImageMapHandler,getKey) AddMethod(ImageMapHandler,getValue2) EndConstructor() Procedure.i New_ImageMapHandler(imageMap.s) InitInterface_NoReturn(ImageMapHandler,Object) *this\ImageMapHandler_ptr = CImageMapHandler_create(imageMap) ProcedureReturn *this EndProcedure ;} ;- Class ViewPortManager ;{ Class ViewPortManager Macro pViewPortManager : i : EndMacro Interface ViewPortManager Extends Object setChartMetrics(metrics.s) getPlotAreaLeft.l() getPlotAreaTop.l() getPlotAreaWidth.l() getPlotAreaHeight.l() inPlotArea.cd_bool(x.l, y.l) getViewPortLeft.d() setViewPortLeft(left.d) getViewPortTop.d() setViewPortTop(top.d) getViewPortWidth.d() setViewPortWidth(width.d) getViewPortHeight.d() setViewPortHeight(height.d) validateViewPort() getZoomInWidthLimit.d() setZoomInWidthLimit(viewPortWidth.d) getZoomOutWidthLimit.d() setZoomOutWidthLimit(viewPortWidth.d) getZoomInHeightLimit.d() setZoomInHeightLimit(viewPortHeight.d) getZoomOutHeightLimit.d() setZoomOutHeightLimit(viewPortHeight.d) canZoomIn.cd_bool(zoomDirection.l) canZoomOut.cd_bool(zoomDirection.l) zoomAt.cd_bool(zoomDirection.l, x.l, y.l, zoomRatio.d) zoomTo.cd_bool(zoomDirection.l, x1.l, y1.l, x2.l, y2.l) startDrag() dragTo.cd_bool(scrollDirection.l, deltaX.l, deltaY.l) setFullRange(id.s, minValue.d, maxValue.d) clearAllRanges() getValueAtViewPort.d(id.s, ratio.d, isLogScale.cd_bool = #False) getViewPortAtValue.d(id.s, ratio.d, isLogScale.cd_bool = #False) syncLinearAxisWithViewPort(id.s, axis.Axis) syncLogAxisWithViewPort(id.s, axis.Axis) syncDateAxisWithViewPort(id.s, axis.Axis) commitPendingSyncAxis(c.BaseChart) setPlotAreaMouseMargin(leftMargin.l, rightMargin.l, topMargin.l, bottomMargin.l) inExtendedPlotArea.cd_bool(x.l, y.l) EndInterface Structure sViewPortManager Extends sObject ViewPortManager_ptr.ViewPortManagerInternal EndStructure Method(ViewPortManager,setChartMetrics)(*this.sViewPortManager, metrics.s) CViewPortManager_setChartMetrics(*this\ViewPortManager_ptr, metrics) EndMethod() Method(ViewPortManager,getPlotAreaLeft,.l)(*this.sViewPortManager) ProcedureReturn CViewPortManager_getPlotAreaLeft(*this\ViewPortManager_ptr) EndMethod() Method(ViewPortManager,getPlotAreaTop,.l)(*this.sViewPortManager) ProcedureReturn CViewPortManager_getPlotAreaTop(*this\ViewPortManager_ptr) EndMethod() Method(ViewPortManager,getPlotAreaWidth,.l)(*this.sViewPortManager) ProcedureReturn CViewPortManager_getPlotAreaWidth(*this\ViewPortManager_ptr) EndMethod() Method(ViewPortManager,getPlotAreaHeight,.l)(*this.sViewPortManager) ProcedureReturn CViewPortManager_getPlotAreaHeight(*this\ViewPortManager_ptr) EndMethod() Method(ViewPortManager,inPlotArea,.cd_bool)(*this.sViewPortManager, x.l, y.l) ProcedureReturn CViewPortManager_inPlotArea(*this\ViewPortManager_ptr, x, y) EndMethod() Method(ViewPortManager,getViewPortLeft,.d)(*this.sViewPortManager) ProcedureReturn CViewPortManager_getViewPortLeft(*this\ViewPortManager_ptr) EndMethod() Method(ViewPortManager,setViewPortLeft)(*this.sViewPortManager, left.d) CViewPortManager_setViewPortLeft(*this\ViewPortManager_ptr, left) EndMethod() Method(ViewPortManager,getViewPortTop,.d)(*this.sViewPortManager) ProcedureReturn CViewPortManager_getViewPortTop(*this\ViewPortManager_ptr) EndMethod() Method(ViewPortManager,setViewPortTop)(*this.sViewPortManager, top.d) CViewPortManager_setViewPortTop(*this\ViewPortManager_ptr, top) EndMethod() Method(ViewPortManager,getViewPortWidth,.d)(*this.sViewPortManager) ProcedureReturn CViewPortManager_getViewPortWidth(*this\ViewPortManager_ptr) EndMethod() Method(ViewPortManager,setViewPortWidth)(*this.sViewPortManager, width.d) CViewPortManager_setViewPortWidth(*this\ViewPortManager_ptr, width) EndMethod() Method(ViewPortManager,getViewPortHeight,.d)(*this.sViewPortManager) ProcedureReturn CViewPortManager_getViewPortHeight(*this\ViewPortManager_ptr) EndMethod() Method(ViewPortManager,setViewPortHeight)(*this.sViewPortManager, height.d) CViewPortManager_setViewPortHeight(*this\ViewPortManager_ptr, height) EndMethod() Method(ViewPortManager,validateViewPort)(*this.sViewPortManager) CViewPortManager_validateViewPort(*this\ViewPortManager_ptr) EndMethod() Method(ViewPortManager,getZoomInWidthLimit,.d)(*this.sViewPortManager) ProcedureReturn CViewPortManager_getZoomInWidthLimit(*this\ViewPortManager_ptr) EndMethod() Method(ViewPortManager,setZoomInWidthLimit)(*this.sViewPortManager, viewPortWidth.d) CViewPortManager_setZoomInWidthLimit(*this\ViewPortManager_ptr, viewPortWidth) EndMethod() Method(ViewPortManager,getZoomOutWidthLimit,.d)(*this.sViewPortManager) ProcedureReturn CViewPortManager_getZoomOutWidthLimit(*this\ViewPortManager_ptr) EndMethod() Method(ViewPortManager,setZoomOutWidthLimit)(*this.sViewPortManager, viewPortWidth.d) CViewPortManager_setZoomOutWidthLimit(*this\ViewPortManager_ptr, viewPortWidth) EndMethod() Method(ViewPortManager,getZoomInHeightLimit,.d)(*this.sViewPortManager) ProcedureReturn CViewPortManager_getZoomInHeightLimit(*this\ViewPortManager_ptr) EndMethod() Method(ViewPortManager,setZoomInHeightLimit)(*this.sViewPortManager, viewPortHeight.d) CViewPortManager_setZoomInHeightLimit(*this\ViewPortManager_ptr, viewPortHeight) EndMethod() Method(ViewPortManager,getZoomOutHeightLimit,.d)(*this.sViewPortManager) ProcedureReturn CViewPortManager_getZoomOutHeightLimit(*this\ViewPortManager_ptr) EndMethod() Method(ViewPortManager,setZoomOutHeightLimit)(*this.sViewPortManager, viewPortHeight.d) CViewPortManager_setZoomOutHeightLimit(*this\ViewPortManager_ptr, viewPortHeight) EndMethod() Method(ViewPortManager,canZoomIn,.cd_bool)(*this.sViewPortManager, zoomDirection.l) ProcedureReturn CViewPortManager_canZoomIn(*this\ViewPortManager_ptr, zoomDirection) EndMethod() Method(ViewPortManager,canZoomOut,.cd_bool)(*this.sViewPortManager, zoomDirection.l) ProcedureReturn CViewPortManager_canZoomOut(*this\ViewPortManager_ptr, zoomDirection) EndMethod() Method(ViewPortManager,zoomAt,.cd_bool)(*this.sViewPortManager, zoomDirection.l, x.l, y.l, zoomRatio.d) ProcedureReturn CViewPortManager_zoomAt(*this\ViewPortManager_ptr, zoomDirection, x, y, zoomRatio) EndMethod() Method(ViewPortManager,zoomTo,.cd_bool)(*this.sViewPortManager, zoomDirection.l, x1.l, y1.l, x2.l, y2.l) ProcedureReturn CViewPortManager_zoomTo(*this\ViewPortManager_ptr, zoomDirection, x1, y1, x2, y2) EndMethod() Method(ViewPortManager,startDrag)(*this.sViewPortManager) CViewPortManager_startDrag(*this\ViewPortManager_ptr) EndMethod() Method(ViewPortManager,dragTo,.cd_bool)(*this.sViewPortManager, scrollDirection.l, deltaX.l, deltaY.l) ProcedureReturn CViewPortManager_dragTo(*this\ViewPortManager_ptr, scrollDirection, deltaX, deltaY) EndMethod() Method(ViewPortManager,setFullRange)(*this.sViewPortManager, id.s, minValue.d, maxValue.d) CViewPortManager_setFullRange(*this\ViewPortManager_ptr, id, minValue, maxValue) EndMethod() Method(ViewPortManager,clearAllRanges)(*this.sViewPortManager) CViewPortManager_clearAllRanges(*this\ViewPortManager_ptr) EndMethod() Method(ViewPortManager,getValueAtViewPort,.d)(*this.sViewPortManager, id.s, ratio.d, isLogScale.cd_bool) ProcedureReturn CViewPortManager_getValueAtViewPort(*this\ViewPortManager_ptr, id, ratio, isLogScale) EndMethod() Method(ViewPortManager,getViewPortAtValue,.d)(*this.sViewPortManager, id.s, ratio.d, isLogScale.cd_bool) ProcedureReturn CViewPortManager_getViewPortAtValue(*this\ViewPortManager_ptr, id, ratio, isLogScale) EndMethod() Method(ViewPortManager,syncLinearAxisWithViewPort)(*this.sViewPortManager, id.s, axis.Axis) If axis CViewPortManager_syncLinearAxisWithViewPort(*this\ViewPortManager_ptr, id, axis\getInternalPtr()) EndIf EndMethod() Method(ViewPortManager,syncLogAxisWithViewPort)(*this.sViewPortManager, id.s, axis.Axis) If axis CViewPortManager_syncLogAxisWithViewPort(*this\ViewPortManager_ptr, id, axis\getInternalPtr()) EndIf EndMethod() Method(ViewPortManager,syncDateAxisWithViewPort)(*this.sViewPortManager, id.s, axis.Axis) If axis CViewPortManager_syncDateAxisWithViewPort(*this\ViewPortManager_ptr, id, axis\getInternalPtr()) EndIf EndMethod() Method(ViewPortManager,commitPendingSyncAxis)(*this.sViewPortManager, c.BaseChart) If c CViewPortManager_commitPendingSyncAxis(*this\ViewPortManager_ptr, c\getInternalPtr()) EndIf EndMethod() Method(ViewPortManager,setPlotAreaMouseMargin)(*this.sViewPortManager, leftMargin.l, rightMargin.l, topMargin.l, bottomMargin.l) CViewPortManager_setPlotAreaMouseMargin(*this\ViewPortManager_ptr, leftMargin, rightMargin, topMargin, bottomMargin) EndMethod() Method(ViewPortManager,inExtendedPlotArea,.cd_bool)(*this.sViewPortManager, x.l, y.l) ProcedureReturn CViewPortManager_inExtendedPlotArea(*this\ViewPortManager_ptr, x, y) EndMethod() Destructor(ViewPortManager,Object) If *this\ViewPortManager_ptr CViewPortManager_destroy(*this\ViewPortManager_ptr) EndIf EndDestructor() Constructor(ViewPortManager,Object) AddMethod(ViewPortManager,setChartMetrics) AddMethod(ViewPortManager,getPlotAreaLeft) AddMethod(ViewPortManager,getPlotAreaTop) AddMethod(ViewPortManager,getPlotAreaWidth) AddMethod(ViewPortManager,getPlotAreaHeight) AddMethod(ViewPortManager,inPlotArea) AddMethod(ViewPortManager,getViewPortLeft) AddMethod(ViewPortManager,setViewPortLeft) AddMethod(ViewPortManager,getViewPortTop) AddMethod(ViewPortManager,setViewPortTop) AddMethod(ViewPortManager,getViewPortWidth) AddMethod(ViewPortManager,setViewPortWidth) AddMethod(ViewPortManager,getViewPortHeight) AddMethod(ViewPortManager,setViewPortHeight) AddMethod(ViewPortManager,validateViewPort) AddMethod(ViewPortManager,getZoomInWidthLimit) AddMethod(ViewPortManager,setZoomInWidthLimit) AddMethod(ViewPortManager,getZoomOutWidthLimit) AddMethod(ViewPortManager,setZoomOutWidthLimit) AddMethod(ViewPortManager,getZoomInHeightLimit) AddMethod(ViewPortManager,setZoomInHeightLimit) AddMethod(ViewPortManager,getZoomOutHeightLimit) AddMethod(ViewPortManager,setZoomOutHeightLimit) AddMethod(ViewPortManager,canZoomIn) AddMethod(ViewPortManager,canZoomOut) AddMethod(ViewPortManager,zoomAt) AddMethod(ViewPortManager,zoomTo) AddMethod(ViewPortManager,startDrag) AddMethod(ViewPortManager,dragTo) AddMethod(ViewPortManager,setFullRange) AddMethod(ViewPortManager,clearAllRanges) AddMethod(ViewPortManager,getValueAtViewPort) AddMethod(ViewPortManager,getViewPortAtValue) AddMethod(ViewPortManager,syncLinearAxisWithViewPort) AddMethod(ViewPortManager,syncLogAxisWithViewPort) AddMethod(ViewPortManager,syncDateAxisWithViewPort) AddMethod(ViewPortManager,commitPendingSyncAxis) AddMethod(ViewPortManager,setPlotAreaMouseMargin) AddMethod(ViewPortManager,inExtendedPlotArea) EndConstructor() Procedure.i New_ViewPortManager() InitInterface_NoReturn(ViewPortManager,Object) *this\ViewPortManager_ptr = CViewPortManager_create() ProcedureReturn *this EndProcedure ;} DisableExplicit ; IDE Options = PureBasic 5.42 LTS (Windows - x64) ; CursorPosition = 3587 ; FirstLine = 3556 ; Folding = ----------------------------------------------------------- ; EnableAsm ; EnableXP ; EnablePurifier