hqchart 1.1.13280 → 1.1.13286

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6459,6 +6459,8 @@ var JSCHART_EVENT_ID=
6459
6459
  ON_CHANGE_INDEX:150, //切换指标
6460
6460
  ON_MENU_COMMAND:151, //菜单时间回调
6461
6461
  ON_CREATE_RIGHT_MENU:152, //创建右键菜单
6462
+
6463
+ ON_FORMAT_CALL_AUCTION_INDEX_TITLE:153, //集合竞价指标窗口标题内容
6462
6464
  }
6463
6465
 
6464
6466
  var JSCHART_OPERATOR_ID=
@@ -9654,14 +9656,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
9654
9656
  }
9655
9657
  item.DrawStatus=drawStatus;
9656
9658
 
9657
- if (item.ClassName=="DynamicMinuteTitlePainting")
9658
- {
9659
- if (option && IFrameSplitOperator.IsNumber(option.ClientPos) && option.Point)
9660
- item.PointInfo={ ClientPos:option.ClientPos, Point:{ X:option.Point.X, Y:option.Point.Y }};
9661
- else
9662
- item.PointInfo=null;
9663
- }
9664
-
9659
+ var pointInfo=null;
9660
+ if (option && IFrameSplitOperator.IsNumber(option.ClientPos) && option.Point) //当前鼠标所在位置的详细信息 包含盘前盘后
9661
+ pointInfo={ ClientPos:option.ClientPos, Point:{ X:option.Point.X, Y:option.Point.Y }};
9662
+ item.PointInfo=pointInfo;
9663
+
9665
9664
  item.Draw(moveonPoint, this.LastMouseStatus);
9666
9665
  }
9667
9666
 
@@ -10421,9 +10420,6 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10421
10420
  for(var i=0;i<border.DayBorder.length;++i)
10422
10421
  {
10423
10422
  var client=border.DayBorder[i];
10424
- this.Canvas.beginPath();
10425
- this.Canvas.rect(client.LeftEx,border.TopEx,client.RightEx-client.LeftEx,border.BottomEx-border.TopEx);
10426
- if (this.Canvas.isPointInPath(x,y)) return 1;
10427
10423
 
10428
10424
  //盘前
10429
10425
  this.Canvas.beginPath();
@@ -10431,6 +10427,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10431
10427
  if (this.Canvas.isPointInPath(x,y))
10432
10428
  return 200+parseInt(i);
10433
10429
 
10430
+ //盘中
10431
+ this.Canvas.beginPath();
10432
+ this.Canvas.rect(client.LeftEx,border.TopEx,client.RightEx-client.LeftEx,border.BottomEx-border.TopEx);
10433
+ if (this.Canvas.isPointInPath(x,y)) return 1;
10434
+
10434
10435
  //盘后
10435
10436
  this.Canvas.beginPath();
10436
10437
  this.Canvas.rect(client.RightEx,border.TopEx,client.Right-client.RightEx,border.BottomEx-border.TopEx);
@@ -13710,6 +13711,8 @@ function ChartBorder()
13710
13711
  var item={ Left:this.Left+dayWidth*i, Right:this.Left+dayWidth*(i+1) };
13711
13712
  item.LeftEx=item.Left+this.MultiDayMinute.Left;
13712
13713
  item.RightEx=item.Right-this.MultiDayMinute.Right;
13714
+ if (i>0) item.Left+=1; //第2天的盘前 移到一个像素,跟上一天分开
13715
+
13713
13716
  dayBorder.push(item);
13714
13717
  }
13715
13718
 
@@ -14379,6 +14382,26 @@ function IChartFramePainting()
14379
14382
  {
14380
14383
 
14381
14384
  }
14385
+
14386
+ //bIncludeOverlay =false不包含叠加框架 true=主框架+叠加框架 默认true
14387
+ this.IsMinuteFrame=function(bIncludeOverlay)
14388
+ {
14389
+ var aryName=["MinuteFrame", "MinuteHScreenFrame", "OverlayMinuteFrame", "OverlayMinuteHScreenFrame"];
14390
+ if (bIncludeOverlay===false) aryName=["MinuteFrame", "MinuteHScreenFrame"];
14391
+
14392
+ var isMinute=aryName.includes(this.ClassName);
14393
+ return isMinute;
14394
+ }
14395
+
14396
+ //bIncludeOverlay =false不包含叠加框架 true=主框架+叠加框架 默认true
14397
+ this.IsKLineFrame=function(bIncludeOverlay)
14398
+ {
14399
+ var aryName=["KLineFrame", "KLineHScreenFrame", "KLineHScreenFrame", "OverlayKLineHScreenFrame"];
14400
+ if (bIncludeOverlay===false) aryName=["KLineFrame", "KLineHScreenFrame"];
14401
+
14402
+ var isKline=aryName.includes(this.ClassName);
14403
+ return isKline;
14404
+ }
14382
14405
  }
14383
14406
 
14384
14407
  //空框架只画边框
@@ -56469,6 +56492,7 @@ function DynamicChartTitlePainting()
56469
56492
  this.SelectedColor=g_JSChartResource.IndexTitleSelectedColor;
56470
56493
 
56471
56494
  this.IsKLineFrame=false; //是否是K线框架标题
56495
+ this.IsMinuteFrame=false;
56472
56496
  this.Identify; //指标ID
56473
56497
  this.SelectedChart; //选中的图形
56474
56498
  this.ArgumentsText; //参数信息
@@ -56491,6 +56515,7 @@ function DynamicChartTitlePainting()
56491
56515
  this.OverlayDynamicTitle=new Map(); //key , value={ OutName, OutValue }
56492
56516
 
56493
56517
  this.IsShowMainIndexTitle=true; //是否显示主图指标标题
56518
+ this.MainTitlePaint=null; //主标题
56494
56519
 
56495
56520
  this.ReloadResource=function()
56496
56521
  {
@@ -56905,7 +56930,8 @@ function DynamicChartTitlePainting()
56905
56930
  this.Buttons=[];
56906
56931
  if (this.Frame.IsMinSize) return;
56907
56932
 
56908
- this.IsKLineFrame= this.Frame.ClassName=='KLineFrame' || this.Frame.ClassName=='KLineHScreenFrame';
56933
+ this.IsKLineFrame= this.Frame.IsKLineFrame(false);
56934
+ this.IsMinuteFrame=this.Frame.IsMinuteFrame(false);
56909
56935
  this.IsDrawTitleBG=this.Frame.IsDrawTitleBG;
56910
56936
  this.IsShowNameArrow=this.Frame.IsShowNameArrow;
56911
56937
  this.IsShowUpDownArrow=this.Frame.IsShowTitleArrow;
@@ -57004,108 +57030,19 @@ function DynamicChartTitlePainting()
57004
57030
  if (isShowLastData) return;
57005
57031
  }
57006
57032
 
57007
- for(var i=0; i<this.Data.length && this.IsShowMainIndexTitle; ++i)
57033
+ var rtText={ Left:left, Right:left };
57034
+ if (this.IsMinuteFrame && this.PointInfo && ( this.PointInfo.ClientPos==2 || this.PointInfo.ClientPos==3 || (this.PointInfo.ClientPos>=200&& this.PointInfo.ClientPos<=299) || (this.PointInfo.ClientPos>=300&& this.PointInfo.ClientPos<=399) ))
57008
57035
  {
57009
- var item=this.Data[i];
57010
- var outText=this.GetTitleItem(item, isShowLastData, i);
57011
- if (!outText) continue;
57012
-
57013
- var valueText=outText.Text;
57014
- var aryText=outText.ArrayText;
57015
-
57016
- if (aryText) //多变量输出
57017
- {
57018
- var text;
57019
- for(var k=0;k<aryText.length;++k)
57020
- {
57021
- var titleItem=aryText[k];
57022
- if (titleItem.Name) text=titleItem.Name+":"+titleItem.Text;
57023
- else text=titleItem.Text;
57024
-
57025
- var space=this.ParamSpace*GetDevicePixelRatio();
57026
- var indexTextWidth=this.Canvas.measureText(text).width; //标题+数值长度
57027
- var textWidth=indexTextWidth;
57028
-
57029
- if (IFrameSplitOperator.IsNonEmptyArray(titleItem.TextEx))
57030
- {
57031
- var xLeft=left;
57032
- for(var n=0; n<titleItem.TextEx.length; ++n)
57033
- {
57034
- var outItem=titleItem.TextEx[n];
57035
- var outTextWidth=this.Canvas.measureText(outItem.Text).width+2;
57036
- outItem.Width=outTextWidth;
57037
- outItem.Left=xLeft;
57038
-
57039
- textWidth+=outTextWidth;
57040
- xLeft+=outTextWidth;
57041
- }
57042
- }
57043
-
57044
- if ((left+textWidth+space)>right) break;
57045
-
57046
- if (titleItem.BG) //背景
57047
- {
57048
- var textHeight=this.Canvas.measureText("擎").width+2;
57049
- var rtBG={ Left:left, Top:bottom-textHeight/2, Width:textWidth, Height:textHeight };
57050
- this.Canvas.fillStyle=titleItem.BG;
57051
- this.Canvas.fillRect(rtBG.Left,rtBG.Top-1, rtBG.Width, rtBG.Height);
57052
-
57053
- this.Canvas.fillStyle=titleItem.Color;
57054
- this.Canvas.fillText(text,rtBG.Left+1,bottom,indexTextWidth);
57055
- left+=indexTextWidth;
57056
-
57057
- if (IFrameSplitOperator.IsNonEmptyArray(titleItem.TextEx))
57058
- {
57059
- for(var n=0; n<titleItem.TextEx.length; ++n)
57060
- {
57061
- var outItem=titleItem.TextEx[n];
57062
- this.Canvas.fillStyle=outItem.TextColor;
57063
- this.Canvas.fillText(outItem.Text,left,bottom,outItem.Width);
57064
- left+=outItem.Width;
57065
- }
57066
- }
57067
-
57068
- left+=space;
57069
- }
57070
- else
57071
- {
57072
- this.Canvas.fillStyle=titleItem.Color;
57073
- this.Canvas.fillText(text,left,bottom,indexTextWidth);
57074
- left+=indexTextWidth;
57075
-
57076
- if (IFrameSplitOperator.IsNonEmptyArray(titleItem.TextEx))
57077
- {
57078
- for(var n=0; n<titleItem.TextEx.length; ++n)
57079
- {
57080
- var outItem=titleItem.TextEx[n];
57081
- this.Canvas.fillStyle=outItem.TextColor;
57082
- this.Canvas.fillText(outItem.Text,left,bottom,outItem.Width);
57083
- left+=outItem.Width;
57084
- }
57085
- }
57086
-
57087
- left+=space;
57088
- }
57089
- }
57090
- }
57091
- else
57092
- {
57093
- this.Canvas.fillStyle=item.Color;
57094
- var text=valueText;
57095
- if (item.Name)
57096
- {
57097
- var dyTitle=this.GetDynamicOutName(item.Name);
57098
- if (dyTitle) text=dyTitle+":"+valueText;
57099
- else text=item.Name+":"+valueText;
57100
- }
57101
- var space=this.ParamSpace*GetDevicePixelRatio();
57102
- var textWidth=this.Canvas.measureText(text).width+space;
57103
- if ((left+textWidth)>right) break;
57104
-
57105
- this.Canvas.fillText(text,left,bottom,textWidth);
57106
- left+=textWidth;
57107
- }
57036
+ var result={ PreventDefault:false }
57037
+ this.DrawMainCallAuction({ Left:left, Right:right, Bottom:bottom }, rtText, result);
57038
+ if (result.PreventDefault===false) this.DrawMainIndexTitle({ Left:left, Right:right, Bottom:bottom }, isShowLastData, rtText);
57108
57039
  }
57040
+ else
57041
+ {
57042
+ this.DrawMainIndexTitle({ Left:left, Right:right, Bottom:bottom }, isShowLastData, rtText);
57043
+ }
57044
+
57045
+ left=rtText.Left;
57109
57046
 
57110
57047
  if (this.Explain) //说明信息
57111
57048
  {
@@ -57309,6 +57246,185 @@ function DynamicChartTitlePainting()
57309
57246
  return { Text:valueText, ArrayText:aryText };
57310
57247
  }
57311
57248
 
57249
+ //绘制主图指标 rtText 返回画完以后的区域
57250
+ this.DrawMainIndexTitle=function(positionInfo, isShowLastData, rtText)
57251
+ {
57252
+ if (!this.IsShowMainIndexTitle) return;
57253
+
57254
+ var left=positionInfo.Left;
57255
+ var right=positionInfo.Right;
57256
+ var bottom=positionInfo.Bottom;
57257
+
57258
+ for(var i=0; i<this.Data.length; ++i)
57259
+ {
57260
+ var item=this.Data[i];
57261
+ var outText=this.GetTitleItem(item, isShowLastData, i);
57262
+ if (!outText) continue;
57263
+
57264
+ var valueText=outText.Text;
57265
+ var aryText=outText.ArrayText;
57266
+
57267
+ if (aryText) //多变量输出
57268
+ {
57269
+ var text;
57270
+ for(var k=0;k<aryText.length;++k)
57271
+ {
57272
+ var titleItem=aryText[k];
57273
+ if (titleItem.Name) text=titleItem.Name+":"+titleItem.Text;
57274
+ else text=titleItem.Text;
57275
+
57276
+ var space=this.ParamSpace*GetDevicePixelRatio();
57277
+ var indexTextWidth=this.Canvas.measureText(text).width; //标题+数值长度
57278
+ var textWidth=indexTextWidth;
57279
+
57280
+ if (IFrameSplitOperator.IsNonEmptyArray(titleItem.TextEx))
57281
+ {
57282
+ var xLeft=left;
57283
+ for(var n=0; n<titleItem.TextEx.length; ++n)
57284
+ {
57285
+ var outItem=titleItem.TextEx[n];
57286
+ var outTextWidth=this.Canvas.measureText(outItem.Text).width+2;
57287
+ outItem.Width=outTextWidth;
57288
+ outItem.Left=xLeft;
57289
+
57290
+ textWidth+=outTextWidth;
57291
+ xLeft+=outTextWidth;
57292
+ }
57293
+ }
57294
+
57295
+ if ((left+textWidth+space)>right) break;
57296
+
57297
+ if (titleItem.BG) //背景
57298
+ {
57299
+ var textHeight=this.Canvas.measureText("擎").width+2;
57300
+ var rtBG={ Left:left, Top:bottom-textHeight/2, Width:textWidth, Height:textHeight };
57301
+ this.Canvas.fillStyle=titleItem.BG;
57302
+ this.Canvas.fillRect(rtBG.Left,rtBG.Top-1, rtBG.Width, rtBG.Height);
57303
+
57304
+ this.Canvas.fillStyle=titleItem.Color;
57305
+ this.Canvas.fillText(text,rtBG.Left+1,bottom,indexTextWidth);
57306
+ left+=indexTextWidth;
57307
+
57308
+ if (IFrameSplitOperator.IsNonEmptyArray(titleItem.TextEx))
57309
+ {
57310
+ for(var n=0; n<titleItem.TextEx.length; ++n)
57311
+ {
57312
+ var outItem=titleItem.TextEx[n];
57313
+ this.Canvas.fillStyle=outItem.TextColor;
57314
+ this.Canvas.fillText(outItem.Text,left,bottom,outItem.Width);
57315
+ left+=outItem.Width;
57316
+ }
57317
+ }
57318
+
57319
+ left+=space;
57320
+ }
57321
+ else
57322
+ {
57323
+ this.Canvas.fillStyle=titleItem.Color;
57324
+ this.Canvas.fillText(text,left,bottom,indexTextWidth);
57325
+ left+=indexTextWidth;
57326
+
57327
+ if (IFrameSplitOperator.IsNonEmptyArray(titleItem.TextEx))
57328
+ {
57329
+ for(var n=0; n<titleItem.TextEx.length; ++n)
57330
+ {
57331
+ var outItem=titleItem.TextEx[n];
57332
+ this.Canvas.fillStyle=outItem.TextColor;
57333
+ this.Canvas.fillText(outItem.Text,left,bottom,outItem.Width);
57334
+ left+=outItem.Width;
57335
+ }
57336
+ }
57337
+
57338
+ left+=space;
57339
+ }
57340
+ }
57341
+ }
57342
+ else
57343
+ {
57344
+ this.Canvas.fillStyle=item.Color;
57345
+ var text=valueText;
57346
+ if (item.Name)
57347
+ {
57348
+ var dyTitle=this.GetDynamicOutName(item.Name);
57349
+ if (dyTitle) text=dyTitle+":"+valueText;
57350
+ else text=item.Name+":"+valueText;
57351
+ }
57352
+ var space=this.ParamSpace*GetDevicePixelRatio();
57353
+ var textWidth=this.Canvas.measureText(text).width+space;
57354
+ if ((left+textWidth)>right) break;
57355
+
57356
+ this.Canvas.fillText(text,left,bottom,textWidth);
57357
+ left+=textWidth;
57358
+ }
57359
+ }
57360
+
57361
+ rtText.Left=left;
57362
+ }
57363
+
57364
+ //集合竞价
57365
+ this.DrawMainCallAuction=function(positionInfo, rtText, result)
57366
+ {
57367
+ if (!this.IsShowMainIndexTitle) return;
57368
+ if (!this.MainTitlePaint) return;
57369
+ var auctionData=this.MainTitlePaint.GetCurrentAuctionData(); //集合竞价分时数据
57370
+ if (!auctionData || !auctionData.Data) return;
57371
+ if (!this.GetEventCallback) return;
57372
+
57373
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_FORMAT_CALL_AUCTION_INDEX_TITLE);
57374
+ if (!event) return;
57375
+
57376
+ var data={ AuctionData:auctionData, Data:this.Data, FrameID:this.Frame.Identify, Out:null, PreventDefault:false };
57377
+ event.Callback(event,data,this);
57378
+ result.PreventDefault=data.PreventDefault;
57379
+
57380
+ if (!IFrameSplitOperator.IsNonEmptyArray(data.Out)) return;
57381
+
57382
+ var left=positionInfo.Left;
57383
+ var right=positionInfo.Right;
57384
+ var bottom=positionInfo.Bottom;
57385
+ var pixelRatio=GetDevicePixelRatio();
57386
+
57387
+ var aryText=data.Out; //[{Text:, Color, Space:间距 }]
57388
+ for(var i=0; i<aryText.length; ++i)
57389
+ {
57390
+ var item=aryText[i];
57391
+ if (!item.Text) continue;
57392
+ var textWidth=this.Canvas.measureText(item.Text).width+2;
57393
+ if (left+textWidth>right) break;
57394
+
57395
+ if (item.BGColor) //背景
57396
+ {
57397
+ var textHeight=this.Canvas.measureText("擎").width+2;
57398
+ var rtBG={ Left:left, Top:bottom-textHeight/2, Width:textWidth, Height:textHeight };
57399
+ this.Canvas.fillStyle=item.BGColor;
57400
+ this.Canvas.fillRect(rtBG.Left,rtBG.Top-1, rtBG.Width, rtBG.Height);
57401
+ left+=1;
57402
+ }
57403
+
57404
+ this.Canvas.fillStyle=item.Color;
57405
+ this.Canvas.fillText(item.Text,left,bottom,textWidth);
57406
+ left+=textWidth;
57407
+
57408
+ if (IFrameSplitOperator.IsPlusNumber(item.Space)) left+=item.Space*pixelRatio;
57409
+ }
57410
+
57411
+ rtText.Left=left;
57412
+ }
57413
+
57414
+ this.GetCallAuctionTitleItem=function(item, titleIndex, auctionData)
57415
+ {
57416
+ if (item.IsShow===false) return null;
57417
+ if (item.IsVisible===false) return null;
57418
+ if (!item || !item.Data || !item.Data.Data) return null;
57419
+
57420
+ if (g_ScriptIndexChartFactory.Has(item.DataType)) //外部挂接
57421
+ {
57422
+ var find=g_ScriptIndexChartFactory.Get(item.DataType);
57423
+ if (find && find.FormatTitleCallback)
57424
+ return find.FormatTitleCallback(value, item, dataIndex);
57425
+ }
57426
+ }
57427
+
57312
57428
  //获取上一个有效数据
57313
57429
  this.GetPreVaildItem=function(data, start)
57314
57430
  {
@@ -72627,8 +72743,10 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
72627
72743
  }
72628
72744
 
72629
72745
  //绑定主图K线数据
72630
- this.BindMainData=function(hisData,showCount)
72746
+ this.BindMainData=function(hisData, showCount, chartOperator)
72631
72747
  {
72748
+ var isShowAll=false; //全部显示
72749
+ if (chartOperator && chartOperator.IsShowAll===true) isShowAll=true;
72632
72750
  this.ChartPaint[0].Data=hisData;
72633
72751
  this.ChartPaint[0].Symbol=this.Symbol;
72634
72752
 
@@ -72649,9 +72767,10 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
72649
72767
  for(var i=0;i<this.Frame.SubFrame.length;++i)
72650
72768
  {
72651
72769
  var item =this.Frame.SubFrame[i].Frame;
72652
- item.XPointCount=showCount+this.RightSpaceCount;
72653
- item.Data=this.ChartPaint[0].Data;
72770
+ if (isShowAll) item.XPointCount=hisData.Data.length+this.RightSpaceCount;
72771
+ else item.XPointCount=showCount+this.RightSpaceCount;
72654
72772
 
72773
+ item.Data=this.ChartPaint[0].Data;
72655
72774
  item.XSplitOperator.Symbol=this.Symbol;
72656
72775
  item.XSplitOperator.Period=this.Period;
72657
72776
  }
@@ -72670,17 +72789,25 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
72670
72789
  item.MainData=this.ChartPaint[0].Data;
72671
72790
  }
72672
72791
 
72673
- var dataOffset=hisData.Data.length-showCount;
72674
- if (dataOffset<0) dataOffset=0;
72675
- this.ChartPaint[0].Data.DataOffset=dataOffset;
72676
- this.ChartPaint[0].Period=this.Period;
72792
+ if (isShowAll)
72793
+ {
72794
+ var dataOffset=0;
72795
+ this.CursorIndex=0;
72796
+ }
72797
+ else
72798
+ {
72799
+ var dataOffset=hisData.Data.length-showCount;
72800
+ if (dataOffset<0) dataOffset=0;
72801
+ this.ChartPaint[0].Data.DataOffset=dataOffset;
72802
+
72803
+ this.CursorIndex=showCount;
72804
+ if (this.CursorIndex+dataOffset>=hisData.Data.length) this.CursorIndex=hisData.Data.length-1-dataOffset;
72805
+ if (this.CursorIndex<0) this.CursorIndex=0; //不一定对啊
72806
+ }
72677
72807
 
72808
+ this.ChartPaint[0].Period=this.Period;
72678
72809
  this.ChartCorssCursor.StringFormatY.Symbol=this.Symbol;
72679
72810
 
72680
- this.CursorIndex=showCount;
72681
- if (this.CursorIndex+dataOffset>=hisData.Data.length) this.CursorIndex=hisData.Data.length-1-dataOffset;
72682
- if (this.CursorIndex<0) this.CursorIndex=0; //不一定对啊
72683
-
72684
72811
  if (this.CustomShow) //定制显示 1次有效
72685
72812
  {
72686
72813
  this.SetCustomShow(this.CustomShow,hisData);
@@ -73549,8 +73676,16 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
73549
73676
  //绑定数据
73550
73677
  this.Symbol=data.symbol;
73551
73678
  this.Name=data.name;
73679
+
73680
+ var chartOperator=null; //额外的图形控制
73681
+ if (data && data.ChartOperator)
73682
+ {
73683
+ var item=data.ChartOperator;
73684
+ chartOperator={ };
73685
+ if (item.IsShowAll===true) chartOperator.IsShowAll=true; //全部显示
73686
+ }
73552
73687
 
73553
- this.BindMainData(bindData,this.PageSize);
73688
+ this.BindMainData(bindData,this.PageSize,chartOperator);
73554
73689
  if (this.AfterBindMainData) this.AfterBindMainData("RecvMinuteHistoryData");
73555
73690
  this.Frame.SetSizeChage(true);
73556
73691
 
@@ -80809,6 +80944,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
80809
80944
  titlePaint.LanguageID=this.LanguageID;
80810
80945
  titlePaint.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
80811
80946
  titlePaint.SelectedChart=this.SelectedChart;
80947
+ titlePaint.MainTitlePaint=this.TitlePaint[0];
80812
80948
  this.TitlePaint.push(titlePaint);
80813
80949
  }
80814
80950
 
@@ -81020,7 +81156,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
81020
81156
  titlePaint.Frame=this.Frame.SubFrame[index].Frame;
81021
81157
  titlePaint.Canvas=this.Canvas;
81022
81158
  titlePaint.LanguageID=this.LanguageID;
81023
- titlePaint.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
81159
+ titlePaint.GetEventCallback=(id)=> { return this.GetEventCallback(id); };
81160
+ titlePaint.MainTitlePaint=this.TitlePaint[0];
81024
81161
  this.TitlePaint[index+1]=titlePaint;
81025
81162
 
81026
81163
  this.SetSubFrameOption(subFrame,option);
@@ -81257,6 +81394,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
81257
81394
  titlePaint.LanguageID=this.LanguageID;
81258
81395
  titlePaint.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
81259
81396
  titlePaint.SelectedChart=this.SelectedChart;
81397
+ titlePaint.MainTitlePaint=this.TitlePaint[0];
81260
81398
  this.TitlePaint[i+1]=titlePaint;
81261
81399
  }
81262
81400
 
@@ -81343,6 +81481,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
81343
81481
  titlePaint.LanguageID=this.LanguageID;
81344
81482
  titlePaint.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
81345
81483
  titlePaint.SelectedChart=this.SelectedChart;
81484
+ titlePaint.MainTitlePaint=this.TitlePaint[0];
81346
81485
  this.TitlePaint[i+1]=titlePaint;
81347
81486
  }
81348
81487
  }
@@ -113768,15 +113907,9 @@ function JSExplainer(ast,option)
113768
113907
 
113769
113908
  if (g_JSComplierResource.IsCustomFunction(funcName))
113770
113909
  {
113771
- var data=this.Algorithm.CallCustomFunction(funcName, args, this.SymbolData, node);
113772
- node.Out=[];
113773
- node.Draw=null;
113774
-
113775
- if (data)
113776
- {
113777
- if (data.Out) node.Out=data.Out;
113778
- if (data.Draw) node.Draw=data.Draw;
113779
- }
113910
+ var functionInfo=g_JSComplierResource.CustomFunction.Data.get(funcName);
113911
+ if (!functionInfo.Description) node.Out=`自定义函数${funcName}`;
113912
+ else node.Out=functionInfo.Description;
113780
113913
 
113781
113914
  return node.Out;
113782
113915
  }
@@ -114395,7 +114528,12 @@ function JSExplainer(ast,option)
114395
114528
  return data;
114396
114529
  }
114397
114530
 
114398
- if (g_JSComplierResource.IsCustomVariant(name)) return this.ReadCustomVariant(name,node); //读取自定义变量
114531
+ if (g_JSComplierResource.IsCustomVariant(name))
114532
+ {
114533
+ var variantInfo=g_JSComplierResource.CustomVariant.Data.get(name); //读取自定义变量
114534
+ if (variantInfo.Description) return variantInfo.Description;
114535
+ else return name;
114536
+ }
114399
114537
 
114400
114538
  if (this.VarTable.has(name)) return this.VarTable.get(name);
114401
114539
 
@@ -135135,6 +135273,9 @@ function JSDialogDrawTool()
135135
135273
  Title:"文字",
135136
135274
  AryChart:
135137
135275
  [
135276
+ { Title:"文字", ClassName: 'hqchart_drawtool icon-draw_text', Type:0, Data:{ ID:"文本" } },
135277
+ { Title:"锚点文字", ClassName: 'hqchart_drawtool icon-maodianwenzi', Type:0, Data:{ ID:"AnchoredText" } },
135278
+ { Title:"注释", ClassName: 'hqchart_drawtool icon-maodian ', Type:0, Data:{ ID:"Note"} },
135138
135279
  { Title: '价格标签', ClassName: 'hqchart_drawtool icon-Tooltip', Type:0, Data:{ ID:"PriceLabel" } },
135139
135280
  { Title: '价格注释', ClassName: 'hqchart_drawtool icon-tooltiptext', Type:0, Data:{ ID:"PriceNote" } },
135140
135281
  { Title: '向上箭头', ClassName: 'iconfont icon-arrow_up', Type:0, Data:{ ID:"icon-arrow_up" } },
@@ -135647,7 +135788,7 @@ function HQChartScriptWorker()
135647
135788
 
135648
135789
 
135649
135790
 
135650
- var HQCHART_VERSION="1.1.13279";
135791
+ var HQCHART_VERSION="1.1.13285";
135651
135792
 
135652
135793
  function PrintHQChartVersion()
135653
135794
  {