hqchart 1.1.15089 → 1.1.15104
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.
|
@@ -7036,6 +7036,8 @@ var JSCHART_EVENT_ID=
|
|
|
7036
7036
|
ON_FORMAT_TVLONGPOSITION_LABEL:176,
|
|
7037
7037
|
|
|
7038
7038
|
ON_FORMAT_COUNTDOWN_TEXT:177, //倒计时
|
|
7039
|
+
ON_CLICK_INDEX_LOCK:178, //点击指标锁
|
|
7040
|
+
ON_CORSSCURSOR_STATUS_CHANGE:179, //十字光标状态改变
|
|
7039
7041
|
}
|
|
7040
7042
|
|
|
7041
7043
|
var JSCHART_OPERATOR_ID=
|
|
@@ -7273,6 +7275,18 @@ var JSCHART_TRADE_STATUS_ID=
|
|
|
7273
7275
|
SUSP_ID:1, //停牌
|
|
7274
7276
|
}
|
|
7275
7277
|
|
|
7278
|
+
//十字光标状态
|
|
7279
|
+
var JSCHART_CORSSCURSOR_STATUS_ID=
|
|
7280
|
+
{
|
|
7281
|
+
NONE_ID:0,
|
|
7282
|
+
LINE_ID:1,
|
|
7283
|
+
LEFT_TEXT_ID:2,
|
|
7284
|
+
LEFT_INTER_TEXT_ID:4,
|
|
7285
|
+
RIGHT_TEXT_ID:8,
|
|
7286
|
+
RIGHT_INTER_TEXT_ID:16,
|
|
7287
|
+
BOTTOM_TEXT_ID:32,
|
|
7288
|
+
}
|
|
7289
|
+
|
|
7276
7290
|
|
|
7277
7291
|
function PhoneDBClick()
|
|
7278
7292
|
{
|
|
@@ -7489,6 +7503,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
7489
7503
|
//锁十字光标
|
|
7490
7504
|
LockCorssCursor:{ X:{ Enable:false } },
|
|
7491
7505
|
|
|
7506
|
+
CorssCursorStatus:{ Value:null }, //十字光标状态 只读
|
|
7507
|
+
|
|
7492
7508
|
//图形中的单元选中状态
|
|
7493
7509
|
MapIndexChartCache:new Map(), //key 指标GUID
|
|
7494
7510
|
|
|
@@ -7655,6 +7671,29 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
7655
7671
|
this.BuySellData.ArySell=null;
|
|
7656
7672
|
}
|
|
7657
7673
|
|
|
7674
|
+
this.UpdateCorssCursorStatus=function()
|
|
7675
|
+
{
|
|
7676
|
+
if (!this.ChartCorssCursor) return false;
|
|
7677
|
+
if (!this.GlobalOption || !this.GlobalOption.CorssCursorStatus) return false;
|
|
7678
|
+
|
|
7679
|
+
var status=this.ChartCorssCursor.Status;
|
|
7680
|
+
|
|
7681
|
+
//状态改变了
|
|
7682
|
+
if (this.GlobalOption.CorssCursorStatus.Value!=status)
|
|
7683
|
+
{
|
|
7684
|
+
this.GlobalOption.CorssCursorStatus.Value=status;
|
|
7685
|
+
|
|
7686
|
+
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CORSSCURSOR_STATUS_CHANGE);
|
|
7687
|
+
if (event && event.Callback)
|
|
7688
|
+
{
|
|
7689
|
+
var sendData={ Status:status, IsShowLine:(status&JSCHART_CORSSCURSOR_STATUS_ID.LINE_ID)>0 };
|
|
7690
|
+
event.Callback(event, sendData, this);
|
|
7691
|
+
}
|
|
7692
|
+
}
|
|
7693
|
+
|
|
7694
|
+
return true;
|
|
7695
|
+
}
|
|
7696
|
+
|
|
7658
7697
|
this.InitalPopMenu=function() //初始化弹出窗口
|
|
7659
7698
|
{
|
|
7660
7699
|
if (this.JSPopMenu) return;
|
|
@@ -10622,6 +10661,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
10622
10661
|
this.Frame.ClearCoordinateText();
|
|
10623
10662
|
this.Frame.Draw( { IsEnableSplash:this.ChartSplashPaint.IsEnableSplash} );
|
|
10624
10663
|
this.ChartSplashPaint.Draw();
|
|
10664
|
+
this.UpdateCorssCursorStatus();
|
|
10625
10665
|
return;
|
|
10626
10666
|
}
|
|
10627
10667
|
|
|
@@ -10914,6 +10954,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
10914
10954
|
}
|
|
10915
10955
|
|
|
10916
10956
|
++this.TouchDrawCount;
|
|
10957
|
+
|
|
10958
|
+
this.UpdateCorssCursorStatus();
|
|
10917
10959
|
}
|
|
10918
10960
|
|
|
10919
10961
|
this.DrawExtendChartPaint=function(level, option)
|
|
@@ -11393,39 +11435,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
11393
11435
|
exChartOption.Tooltip=option.Tooltip;
|
|
11394
11436
|
exChartOption.Point=option.Point;
|
|
11395
11437
|
}
|
|
11396
|
-
this.DrawExtendChartPaint(IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_25,exChartOption);
|
|
11397
|
-
/*
|
|
11398
|
-
for(var i=0;i<this.ExtendChartPaint.length;++i) //动态扩展图形 在动态标题以后画
|
|
11399
|
-
{
|
|
11400
|
-
var item=this.ExtendChartPaint[i];
|
|
11401
|
-
if (item.IsCallbackDraw) continue;
|
|
11402
|
-
if (item.DrawAfterPicture) continue;
|
|
11403
|
-
if (item.ClassName=='KLineTooltipPaint' && option)
|
|
11404
|
-
{
|
|
11405
|
-
if (option.Tooltip==false) continue;
|
|
11406
|
-
if (option.Point) item.LatestPoint=option.Point;
|
|
11407
|
-
}
|
|
11408
|
-
else if (item.ClassName=="MinuteTooltipPaint" && option)
|
|
11409
|
-
{
|
|
11410
|
-
if (option.Point) item.LatestPoint=option.Point;
|
|
11411
|
-
}
|
|
11412
|
-
|
|
11413
|
-
if (item.IsDynamic && item.DrawAfterTitle===true) item.Draw(moveonPoint, this.LastMouseStatus);
|
|
11414
|
-
}
|
|
11415
|
-
*/
|
|
11416
11438
|
|
|
11439
|
+
this.DrawExtendChartPaint(IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_25,exChartOption);
|
|
11440
|
+
|
|
11417
11441
|
if (this.EnableAnimation) this.DrawExtendChartPaint(IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_30);
|
|
11418
|
-
|
|
11419
|
-
if (this.EnableAnimation)
|
|
11420
|
-
{
|
|
11421
|
-
for(var i=0;i<this.ExtendChartPaint.length;++i) //动画
|
|
11422
|
-
{
|
|
11423
|
-
var item=this.ExtendChartPaint[i];
|
|
11424
|
-
if (item.IsAnimation===true) item.Draw();
|
|
11425
|
-
}
|
|
11426
|
-
}
|
|
11427
|
-
*/
|
|
11428
|
-
|
|
11442
|
+
|
|
11429
11443
|
for(var i=0;i<this.ChartDrawPicture.length;++i)
|
|
11430
11444
|
{
|
|
11431
11445
|
var item=this.ChartDrawPicture[i];
|
|
@@ -11451,15 +11465,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
11451
11465
|
}
|
|
11452
11466
|
|
|
11453
11467
|
this.DrawExtendChartPaint(IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_50);
|
|
11454
|
-
|
|
11455
|
-
for(var i=0;i<this.ExtendChartPaint.length;++i) //动态扩展图形
|
|
11456
|
-
{
|
|
11457
|
-
var item=this.ExtendChartPaint[i];
|
|
11458
|
-
if (item.DrawAfterPicture)
|
|
11459
|
-
item.Draw();
|
|
11460
|
-
}
|
|
11461
|
-
*/
|
|
11462
|
-
|
|
11468
|
+
|
|
11463
11469
|
if (this.LastMouseStatus.MouseOnToolbar) //工具栏按钮提示信息
|
|
11464
11470
|
{
|
|
11465
11471
|
var frame=this.LastMouseStatus.MouseOnToolbar.Frame;
|
|
@@ -11471,6 +11477,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
11471
11477
|
if (bDrawDialogTooltip) this.DrawTooltipDialog();
|
|
11472
11478
|
|
|
11473
11479
|
++this.TouchDrawCount;
|
|
11480
|
+
|
|
11481
|
+
this.UpdateCorssCursorStatus();
|
|
11474
11482
|
}
|
|
11475
11483
|
|
|
11476
11484
|
this.DrawAnimation=function() //绘制动画 如弹幕
|
|
@@ -51926,7 +51934,6 @@ function ChartLock()
|
|
|
51926
51934
|
delete this.newMethod;
|
|
51927
51935
|
|
|
51928
51936
|
this.ClassName="ChartLock";
|
|
51929
|
-
this.WidthDiv = 0.2; // 框子宽度占比
|
|
51930
51937
|
this.LockCount = 20; // 锁最新的几个数据
|
|
51931
51938
|
this.BGColor = g_JSChartResource.IndexLock.BGColor;
|
|
51932
51939
|
this.TextColor = g_JSChartResource.IndexLock.TextColor;
|
|
@@ -51937,7 +51944,6 @@ function ChartLock()
|
|
|
51937
51944
|
this.Callback; //回调
|
|
51938
51945
|
this.IndexName; //指标名字
|
|
51939
51946
|
this.IndexID; //指标ID
|
|
51940
|
-
this.MinWidth=null; //最小宽度
|
|
51941
51947
|
|
|
51942
51948
|
|
|
51943
51949
|
this.CalculateTextSize=function(aryText, defaultFont, out)
|
|
@@ -51953,9 +51959,25 @@ function ChartLock()
|
|
|
51953
51959
|
var item=aryText[i];
|
|
51954
51960
|
if (!item || !item.Text) continue;
|
|
51955
51961
|
var textWidth=this.Canvas.measureText(item.Text).width;
|
|
51956
|
-
|
|
51957
|
-
|
|
51958
|
-
|
|
51962
|
+
|
|
51963
|
+
var lineItem={ Text:item.Text, Width:textWidth, Height:lineHeight, Color:item.Color, TextMargin:{ Top:0, Bottom:0, Left:0, Right:0 }, YOffset:0 };
|
|
51964
|
+
if (IFrameSplitOperator.IsNumber(item.YOffset)) lineItem.YOffset=item.YOffset;
|
|
51965
|
+
if (item.TextMargin)
|
|
51966
|
+
{
|
|
51967
|
+
var margin=item.TextMargin;
|
|
51968
|
+
if (IFrameSplitOperator.IsNumber(margin.Top)) lineItem.TextMargin.Top=margin.Top;
|
|
51969
|
+
if (IFrameSplitOperator.IsNumber(margin.Bottom)) lineItem.TextMargin.Bottom=margin.Bottom;
|
|
51970
|
+
if (IFrameSplitOperator.IsNumber(margin.Left)) lineItem.TextMargin.Left=margin.Left;
|
|
51971
|
+
if (IFrameSplitOperator.IsNumber(margin.Right)) lineItem.TextMargin.Right=margin.Right;
|
|
51972
|
+
}
|
|
51973
|
+
|
|
51974
|
+
lineItem.Height+=lineItem.TextMargin.Top+lineItem.TextMargin.Bottom;
|
|
51975
|
+
lineItem.Width+=lineItem.TextMargin.Left+lineItem.TextMargin.Right;
|
|
51976
|
+
|
|
51977
|
+
if (width<lineItem.Width) width=lineItem.Width;
|
|
51978
|
+
|
|
51979
|
+
out.AryText.push(lineItem);
|
|
51980
|
+
height+=lineItem.Height;
|
|
51959
51981
|
}
|
|
51960
51982
|
|
|
51961
51983
|
out.Width=width;
|
|
@@ -51964,70 +51986,78 @@ function ChartLock()
|
|
|
51964
51986
|
return true;
|
|
51965
51987
|
}
|
|
51966
51988
|
|
|
51967
|
-
this.Draw=function(
|
|
51989
|
+
this.Draw=function(bDraw)
|
|
51968
51990
|
{
|
|
51969
51991
|
this.LockRect=null;
|
|
51992
|
+
if (!bDraw) return;
|
|
51970
51993
|
if (this.NotSupportMessage)
|
|
51971
51994
|
{
|
|
51972
51995
|
this.DrawNotSupportmessage();
|
|
51973
51996
|
return;
|
|
51974
51997
|
}
|
|
51975
51998
|
|
|
51976
|
-
|
|
51999
|
+
var bHScreen=this.ChartFrame.IsHScreen;
|
|
52000
|
+
var bMinute=this.IsMinuteFrame();
|
|
52001
|
+
var dataWidth=this.ChartFrame.DataWidth;
|
|
52002
|
+
var distanceWidth=this.ChartFrame.DistanceWidth;
|
|
52003
|
+
var xPointCount=this.ChartFrame.XPointCount;
|
|
52004
|
+
var border=this.ChartFrame.GetBorder();
|
|
52005
|
+
if (bHScreen)
|
|
51977
52006
|
{
|
|
51978
|
-
|
|
51979
|
-
|
|
52007
|
+
var chartright=border.BottomEx;
|
|
52008
|
+
var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
52009
|
+
}
|
|
52010
|
+
else
|
|
52011
|
+
{
|
|
52012
|
+
var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
52013
|
+
var chartright=border.RightEx;
|
|
51980
52014
|
}
|
|
51981
52015
|
|
|
51982
|
-
var
|
|
51983
|
-
var
|
|
51984
|
-
|
|
51985
|
-
if (this.ChartFrame.Data != null)
|
|
52016
|
+
var kData=this.ChartFrame.Data;
|
|
52017
|
+
var left=xOffset;
|
|
52018
|
+
if (kData && IFrameSplitOperator.IsNonEmptyArray(kData.Data))
|
|
51986
52019
|
{
|
|
51987
|
-
var
|
|
51988
|
-
var distanceWidth=this.ChartFrame.DistanceWidth;
|
|
51989
|
-
xOffset=this.ChartBorder.GetLeft()+distanceWidth/2.0+2.0;
|
|
51990
|
-
var chartright=this.ChartBorder.GetRight();
|
|
51991
|
-
var xPointCount=this.ChartFrame.XPointCount;
|
|
51992
|
-
for(var i=this.ChartFrame.Data.DataOffset,j=0;i<this.ChartFrame.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
|
|
52020
|
+
for(var i=kData.DataOffset,j=0;i<kData.Data.length-this.LockCount && j<xPointCount-this.LockCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
|
|
51993
52021
|
{
|
|
51994
|
-
var
|
|
51995
|
-
if (
|
|
52022
|
+
var kItem=kData.Data[i];
|
|
52023
|
+
if (kItem.Open==null || kItem.High==null || kItem.Low==null || kItem.Close==null) continue;
|
|
51996
52024
|
|
|
51997
|
-
|
|
51998
|
-
|
|
51999
|
-
|
|
52025
|
+
if (bMinute)
|
|
52026
|
+
{
|
|
52027
|
+
left=this.ChartFrame.GetXFromIndex(j);
|
|
52028
|
+
}
|
|
52029
|
+
else
|
|
52030
|
+
{
|
|
52031
|
+
left=xOffset;
|
|
52032
|
+
var right=xOffset+dataWidth;
|
|
52033
|
+
if (right>chartright) break;
|
|
52034
|
+
}
|
|
52000
52035
|
}
|
|
52001
|
-
lOffsetWidth = (dataWidth + distanceWidth) * this.LockCount;
|
|
52002
52036
|
}
|
|
52003
|
-
|
|
52037
|
+
|
|
52038
|
+
if (bHScreen)
|
|
52004
52039
|
{
|
|
52005
|
-
|
|
52006
|
-
|
|
52007
|
-
|
|
52008
|
-
if (lLeft < this.ChartBorder.GetLeft())
|
|
52009
|
-
lLeft = this.ChartBorder.GetLeft();
|
|
52010
|
-
var lWidth = this.ChartBorder.GetRight() - lLeft;
|
|
52040
|
+
var rtBG={ Left:border.Left, Right:border.RightEx, Top:left, Bottom:border.Bottom };
|
|
52041
|
+
rtBG.Width=rtBG.Right-rtBG.Left;
|
|
52042
|
+
rtBG.Height=rtBG.Bottom-rtBG.Top;
|
|
52011
52043
|
|
|
52012
|
-
|
|
52044
|
+
var bgColor=this.SetFillStyle(this.BGColor, rtBG.Left, rtBG.Top, rtBG.Right, rtBG.Top);
|
|
52045
|
+
this.Canvas.fillStyle =bgColor;
|
|
52046
|
+
this.Canvas.fillRect(rtBG.Left, rtBG.Top, rtBG.Width, rtBG.Height);
|
|
52047
|
+
this.LockRect=rtBG; //保存上锁区域
|
|
52048
|
+
}
|
|
52049
|
+
else
|
|
52013
52050
|
{
|
|
52014
|
-
|
|
52015
|
-
|
|
52016
|
-
|
|
52051
|
+
var rtBG={ Left:left, Right:border.RightEx, Top:border.TopTitle, Bottom:border.Bottom };
|
|
52052
|
+
rtBG.Width=rtBG.Right-rtBG.Left;
|
|
52053
|
+
rtBG.Height=rtBG.Bottom-rtBG.Top;
|
|
52054
|
+
//上下渐变
|
|
52055
|
+
var bgColor=this.SetFillStyle(this.BGColor, rtBG.Left, rtBG.Top, rtBG.Left, rtBG.Bottom);
|
|
52056
|
+
this.Canvas.fillStyle =bgColor;
|
|
52057
|
+
this.Canvas.fillRect(rtBG.Left, rtBG.Top, rtBG.Width, rtBG.Height);
|
|
52058
|
+
this.LockRect=rtBG; //保存上锁区域
|
|
52017
52059
|
}
|
|
52018
52060
|
|
|
52019
|
-
var rtBG={ Left:lLeft, Top:border.TopTitle, Bottom:border.Bottom, Width:lWidth };
|
|
52020
|
-
rtBG.Right=rtBG.Width+rtBG.Left;
|
|
52021
|
-
rtBG.Height=rtBG.Bottom-rtBG.Top;
|
|
52022
|
-
this.LockRect=rtBG; //保存上锁区域
|
|
52023
|
-
|
|
52024
|
-
if (!isDraw) return;
|
|
52025
|
-
|
|
52026
|
-
//上下渐变
|
|
52027
|
-
var bgColor=this.SetFillStyle(this.BGColor, rtBG.Left, rtBG.Top, rtBG.Left, rtBG.Bottom);
|
|
52028
|
-
this.Canvas.fillStyle =bgColor;
|
|
52029
|
-
this.Canvas.fillRect(rtBG.Left, rtBG.Top, rtBG.Width, rtBG.Height);
|
|
52030
|
-
|
|
52031
52061
|
var aryText=null;
|
|
52032
52062
|
if (Array.isArray(this.Title)) aryText=this.Title;
|
|
52033
52063
|
else aryText=[{Text:this.Title}];
|
|
@@ -52035,85 +52065,57 @@ function ChartLock()
|
|
|
52035
52065
|
var outSize={ };
|
|
52036
52066
|
if (!this.CalculateTextSize(aryText, this.Font, outSize)) return;
|
|
52037
52067
|
|
|
52038
|
-
var left=rtBG.Left+(rtBG.Width-outSize.Width)/2;
|
|
52039
|
-
if (outSize.Width>rtBG.Width) left=rtBG.Right-outSize.Width;
|
|
52040
|
-
var top=rtBG.Top+(rtBG.Height-outSize.Height)/2;
|
|
52041
|
-
|
|
52042
52068
|
this.Canvas.textAlign='left';
|
|
52043
52069
|
this.Canvas.textBaseline='bottom';
|
|
52044
52070
|
this.Canvas.font = this.Font;
|
|
52045
|
-
|
|
52046
|
-
|
|
52071
|
+
|
|
52072
|
+
if (bHScreen)
|
|
52047
52073
|
{
|
|
52048
|
-
var
|
|
52049
|
-
if (
|
|
52050
|
-
|
|
52074
|
+
var top=rtBG.Top+(rtBG.Height-outSize.Width)/2;
|
|
52075
|
+
if (outSize.Width>rtBG.Height) top=rtBG.Bottom-outSize.Width;
|
|
52076
|
+
var left=rtBG.Left+(rtBG.Width-outSize.Height)/2;
|
|
52051
52077
|
|
|
52052
|
-
|
|
52053
|
-
this.Canvas.
|
|
52054
|
-
|
|
52055
|
-
|
|
52078
|
+
this.Canvas.save();
|
|
52079
|
+
this.Canvas.translate(left, top);
|
|
52080
|
+
this.Canvas.rotate(90 * Math.PI / 180);
|
|
52081
|
+
var yText=0,xText=0;
|
|
52082
|
+
for(var i=0;i<outSize.AryText.length;++i)
|
|
52083
|
+
{
|
|
52084
|
+
var item=outSize.AryText[i];
|
|
52085
|
+
if (item.Color) this.Canvas.fillStyle=item.Color;
|
|
52086
|
+
else this.Canvas.fillStyle=this.TextColor;
|
|
52056
52087
|
|
|
52057
|
-
|
|
52058
|
-
|
|
52059
|
-
|
|
52088
|
+
yText+=item.Height;
|
|
52089
|
+
this.Canvas.fillText(item.Text, xText, yText+item.YOffset);
|
|
52090
|
+
}
|
|
52060
52091
|
|
|
52061
|
-
|
|
52062
|
-
|
|
52092
|
+
this.Canvas.restore();
|
|
52093
|
+
}
|
|
52094
|
+
else
|
|
52063
52095
|
{
|
|
52064
|
-
var
|
|
52065
|
-
|
|
52066
|
-
|
|
52067
|
-
|
|
52068
|
-
var
|
|
52069
|
-
|
|
52070
|
-
for(var i=this.ChartFrame.Data.DataOffset,j=0;i<this.ChartFrame.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
|
|
52096
|
+
var left=rtBG.Left+(rtBG.Width-outSize.Width)/2;
|
|
52097
|
+
if (outSize.Width>rtBG.Width) left=rtBG.Right-outSize.Width;
|
|
52098
|
+
var top=rtBG.Top+(rtBG.Height-outSize.Height)/2;
|
|
52099
|
+
|
|
52100
|
+
var yText=top, xText=left;
|
|
52101
|
+
for(var i=0;i<outSize.AryText.length;++i)
|
|
52071
52102
|
{
|
|
52072
|
-
var
|
|
52073
|
-
if (
|
|
52103
|
+
var item=outSize.AryText[i];
|
|
52104
|
+
if (item.Color) this.Canvas.fillStyle=item.Color;
|
|
52105
|
+
else this.Canvas.fillStyle=this.TextColor;
|
|
52074
52106
|
|
|
52075
|
-
|
|
52076
|
-
|
|
52077
|
-
|
|
52078
|
-
}
|
|
52079
|
-
lOffsetWidth = (dataWidth + distanceWidth) * this.LockCount;
|
|
52080
|
-
}
|
|
52081
|
-
if (lOffsetWidth == 0)
|
|
52082
|
-
{
|
|
52083
|
-
lOffsetWidth = (xOffset - this.ChartBorder.GetTop()) * this.WidthDiv;
|
|
52107
|
+
yText+=item.Height;
|
|
52108
|
+
this.Canvas.fillText(item.Text, xText, yText+item.YOffset);
|
|
52109
|
+
}
|
|
52084
52110
|
}
|
|
52085
|
-
|
|
52086
|
-
var lLeft = xOffset - lOffsetWidth;
|
|
52087
|
-
if (lLeft < this.ChartBorder.GetTop()) lLeft = this.ChartBorder.GetTop();
|
|
52088
|
-
var lHeight = this.ChartBorder.GetRight()-this.ChartBorder.GetLeft();
|
|
52089
|
-
var lWidth = this.ChartBorder.GetBottom() - lLeft;
|
|
52090
|
-
|
|
52091
|
-
this.Canvas.fillStyle = this.BGColor;
|
|
52092
|
-
this.Canvas.fillRect(this.ChartBorder.GetLeft(), lLeft,lHeight,lWidth);
|
|
52093
|
-
|
|
52094
|
-
var xCenter = this.ChartBorder.GetLeft() + lHeight / 2;
|
|
52095
|
-
var yCenter = lLeft + lWidth / 2;
|
|
52096
|
-
this.Canvas.save();
|
|
52097
|
-
this.Canvas.translate(xCenter, yCenter);
|
|
52098
|
-
this.Canvas.rotate(90 * Math.PI / 180);
|
|
52099
|
-
this.Canvas.textAlign = 'center';
|
|
52100
|
-
this.Canvas.textBaseline = 'middle';
|
|
52101
|
-
this.Canvas.fillStyle = this.TextColor;
|
|
52102
|
-
this.Canvas.font = this.Font;
|
|
52103
|
-
this.Canvas.fillText(this.Title, 0, 0);
|
|
52104
|
-
this.Canvas.restore();
|
|
52105
|
-
|
|
52106
|
-
this.LockRect={Left:this.ChartBorder.GetLeft(),Top:lLeft,Width:lHeight,Heigh:lWidth}; //保存上锁区域
|
|
52107
52111
|
}
|
|
52108
52112
|
|
|
52109
52113
|
//x,y是否在上锁区域
|
|
52110
52114
|
this.GetTooltipData=function(x,y,tooltip)
|
|
52111
52115
|
{
|
|
52112
|
-
if (this.LockRect
|
|
52116
|
+
if (!this.LockRect) return false;
|
|
52113
52117
|
|
|
52114
|
-
this.
|
|
52115
|
-
this.Canvas.rect(this.LockRect.Left,this.LockRect.Top,this.LockRect.Width,this.LockRect.Height);
|
|
52116
|
-
if (this.Canvas.isPointInPath(x,y))
|
|
52118
|
+
if (Path2DHelper.PtInRect(x,y,this.LockRect))
|
|
52117
52119
|
{
|
|
52118
52120
|
tooltip.Data={ ID:this.LockID, Callback:this.Callback, IndexName:this.IndexName, IndexID:this.IndexID };
|
|
52119
52121
|
tooltip.ChartPaint=this;
|
|
@@ -62368,7 +62370,7 @@ function ChartCorssCursor()
|
|
|
62368
62370
|
|
|
62369
62371
|
this.Draw=function()
|
|
62370
62372
|
{
|
|
62371
|
-
this.Status=
|
|
62373
|
+
this.Status=JSCHART_CORSSCURSOR_STATUS_ID.NONE_ID;
|
|
62372
62374
|
this.RightButton.Rect=null;
|
|
62373
62375
|
this.BottomButton.Rect=null;
|
|
62374
62376
|
this.LastValue=null;
|
|
@@ -62515,6 +62517,7 @@ function ChartCorssCursor()
|
|
|
62515
62517
|
}
|
|
62516
62518
|
}
|
|
62517
62519
|
|
|
62520
|
+
this.Status|=JSCHART_CORSSCURSOR_STATUS_ID.LINE_ID;
|
|
62518
62521
|
this.Canvas.stroke();
|
|
62519
62522
|
this.Canvas.restore();
|
|
62520
62523
|
|
|
@@ -62571,6 +62574,7 @@ function ChartCorssCursor()
|
|
|
62571
62574
|
rtBG.Right=rtBG.Left+rtBG.Width;
|
|
62572
62575
|
}
|
|
62573
62576
|
|
|
62577
|
+
this.Status|=JSCHART_CORSSCURSOR_STATUS_ID.LEFT_TEXT_ID;
|
|
62574
62578
|
}
|
|
62575
62579
|
else if (this.ShowTextMode.Left==2) //在框架内显示
|
|
62576
62580
|
{
|
|
@@ -62578,6 +62582,8 @@ function ChartCorssCursor()
|
|
|
62578
62582
|
rtBG.Right=rtBG.Left+rtBG.Width;
|
|
62579
62583
|
rtBG.Top=rtBG.YCenter-rtBG.Height/2;
|
|
62580
62584
|
rtBG.Bottom=rtBG.Top+rtBG.Height;
|
|
62585
|
+
|
|
62586
|
+
this.Status|=JSCHART_CORSSCURSOR_STATUS_ID.LEFT_INTER_TEXT_ID;
|
|
62581
62587
|
}
|
|
62582
62588
|
|
|
62583
62589
|
if (rtBG)
|
|
@@ -62587,6 +62593,7 @@ function ChartCorssCursor()
|
|
|
62587
62593
|
this.Canvas.textBaseline="bottom";
|
|
62588
62594
|
this.Canvas.fillStyle=this.TextColor;
|
|
62589
62595
|
this.Canvas.fillText(text,rtBG.Left+textOffset.X, rtBG.Bottom+textOffset.Y);
|
|
62596
|
+
|
|
62590
62597
|
}
|
|
62591
62598
|
|
|
62592
62599
|
var complexText=
|
|
@@ -62708,6 +62715,8 @@ function ChartCorssCursor()
|
|
|
62708
62715
|
this.DrawComplexRightText(rtBG,complexText,textSize);
|
|
62709
62716
|
|
|
62710
62717
|
if (this.RightButton.Enable) this.DrawRightButtonV2(rtBG, complexText, textSize, buttonData);
|
|
62718
|
+
|
|
62719
|
+
this.Status|=JSCHART_CORSSCURSOR_STATUS_ID.RIGHT_TEXT_ID;
|
|
62711
62720
|
}
|
|
62712
62721
|
}
|
|
62713
62722
|
else if (this.ShowTextMode.Right==2) //框架内侧显示
|
|
@@ -62721,6 +62730,8 @@ function ChartCorssCursor()
|
|
|
62721
62730
|
this.DrawComplexRightText(rtBG,complexText,textSize);
|
|
62722
62731
|
|
|
62723
62732
|
if (this.RightButton.Enable) this.DrawRightButtonV2(rtBG, complexText, textSize, buttonData);
|
|
62733
|
+
|
|
62734
|
+
this.Status|=JSCHART_CORSSCURSOR_STATUS_ID.RIGHT_INTER_TEXT_ID;
|
|
62724
62735
|
}
|
|
62725
62736
|
}
|
|
62726
62737
|
|
|
@@ -62786,6 +62797,8 @@ function ChartCorssCursor()
|
|
|
62786
62797
|
if (this.StringFormatX.KItem) buttonData.KItem=this.StringFormatX.KItem;
|
|
62787
62798
|
this.BottomButton.Rect=rtBG;
|
|
62788
62799
|
this.BottomButton.Data=buttonData;
|
|
62800
|
+
|
|
62801
|
+
this.Status|=JSCHART_CORSSCURSOR_STATUS_ID.BOTTOM_TEXT_ID;
|
|
62789
62802
|
}
|
|
62790
62803
|
}
|
|
62791
62804
|
|
|
@@ -62834,8 +62847,6 @@ function ChartCorssCursor()
|
|
|
62834
62847
|
this.Canvas.fillText(text,rtBG.Left+textOffset.X, rtBG.Bottom+textOffset.Y);
|
|
62835
62848
|
}
|
|
62836
62849
|
}
|
|
62837
|
-
|
|
62838
|
-
this.Status=1;
|
|
62839
62850
|
}
|
|
62840
62851
|
|
|
62841
62852
|
this.DrawComplexRightText=function(rtBG, complexText, size)
|
|
@@ -63123,6 +63134,7 @@ function ChartCorssCursor()
|
|
|
63123
63134
|
|
|
63124
63135
|
this.HScreenDraw=function()
|
|
63125
63136
|
{
|
|
63137
|
+
this.Status=JSCHART_CORSSCURSOR_STATUS_ID.NONE_ID;
|
|
63126
63138
|
var x=this.LastPoint.X;
|
|
63127
63139
|
var y=this.LastPoint.Y;
|
|
63128
63140
|
|
|
@@ -63216,6 +63228,8 @@ function ChartCorssCursor()
|
|
|
63216
63228
|
}
|
|
63217
63229
|
}
|
|
63218
63230
|
|
|
63231
|
+
this.Status|=JSCHART_CORSSCURSOR_STATUS_ID.LINE_ID;
|
|
63232
|
+
|
|
63219
63233
|
this.Canvas.stroke();
|
|
63220
63234
|
this.Canvas.restore();
|
|
63221
63235
|
|
|
@@ -63276,6 +63290,8 @@ function ChartCorssCursor()
|
|
|
63276
63290
|
}
|
|
63277
63291
|
|
|
63278
63292
|
this.Canvas.restore();
|
|
63293
|
+
|
|
63294
|
+
this.Status|=JSCHART_CORSSCURSOR_STATUS_ID.LEFT_TEXT_ID;
|
|
63279
63295
|
}
|
|
63280
63296
|
else if (this.ShowTextMode.Left==2)
|
|
63281
63297
|
{
|
|
@@ -63293,6 +63309,8 @@ function ChartCorssCursor()
|
|
|
63293
63309
|
this.Canvas.fillText(text,2,0,textWidth);
|
|
63294
63310
|
|
|
63295
63311
|
this.Canvas.restore();
|
|
63312
|
+
|
|
63313
|
+
this.Status|=JSCHART_CORSSCURSOR_STATUS_ID.LEFT_INTER_TEXT_ID;
|
|
63296
63314
|
}
|
|
63297
63315
|
|
|
63298
63316
|
if (this.StringFormatY.RText)
|
|
@@ -63363,6 +63381,8 @@ function ChartCorssCursor()
|
|
|
63363
63381
|
}
|
|
63364
63382
|
|
|
63365
63383
|
this.Canvas.restore();
|
|
63384
|
+
|
|
63385
|
+
this.Status|=JSCHART_CORSSCURSOR_STATUS_ID.RIGHT_TEXT_ID;
|
|
63366
63386
|
}
|
|
63367
63387
|
else if (this.ShowTextMode.Right==2)
|
|
63368
63388
|
{
|
|
@@ -63380,6 +63400,8 @@ function ChartCorssCursor()
|
|
|
63380
63400
|
this.Canvas.fillText(text,-2,0,textWidth);
|
|
63381
63401
|
|
|
63382
63402
|
this.Canvas.restore();
|
|
63403
|
+
|
|
63404
|
+
this.Status|=JSCHART_CORSSCURSOR_STATUS_ID.RIGHT_INTER_TEXT_ID;
|
|
63383
63405
|
}
|
|
63384
63406
|
}
|
|
63385
63407
|
|
|
@@ -63453,10 +63475,10 @@ function ChartCorssCursor()
|
|
|
63453
63475
|
|
|
63454
63476
|
this.Canvas.restore();
|
|
63455
63477
|
}
|
|
63478
|
+
|
|
63479
|
+
this.Status|=JSCHART_CORSSCURSOR_STATUS_ID.BOTTOM_TEXT_ID;
|
|
63456
63480
|
}
|
|
63457
63481
|
}
|
|
63458
|
-
|
|
63459
|
-
this.Status=1;
|
|
63460
63482
|
}
|
|
63461
63483
|
|
|
63462
63484
|
//data={ e:e, PreventDefault:false, KeyID, Draw:是否需要重绘 }
|
|
@@ -63528,6 +63550,7 @@ function ChartCorssCursor()
|
|
|
63528
63550
|
}
|
|
63529
63551
|
|
|
63530
63552
|
|
|
63553
|
+
|
|
63531
63554
|
////////////////////////////////////////////////////////////////////////////////
|
|
63532
63555
|
//深度图十字光标
|
|
63533
63556
|
function DepthChartCorssCursor()
|
|
@@ -90713,6 +90736,13 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
90713
90736
|
if (!item.Frame.LockPaint.GetTooltipData(x,y,tooltip)) continue;
|
|
90714
90737
|
|
|
90715
90738
|
tooltip.HQChart=this;
|
|
90739
|
+
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_INDEX_LOCK);
|
|
90740
|
+
if (event && event.Callback)
|
|
90741
|
+
{
|
|
90742
|
+
var sendData={ FrameID:item.Frame.Identify, Data:tooltip };
|
|
90743
|
+
event.Callback(event,sendData,this);
|
|
90744
|
+
}
|
|
90745
|
+
|
|
90716
90746
|
if (tooltip.Data.Callback) tooltip.Data.Callback(tooltip);
|
|
90717
90747
|
return true;
|
|
90718
90748
|
}
|
|
@@ -165752,7 +165782,7 @@ function HQChartScriptWorker()
|
|
|
165752
165782
|
|
|
165753
165783
|
|
|
165754
165784
|
|
|
165755
|
-
var HQCHART_VERSION="1.1.
|
|
165785
|
+
var HQCHART_VERSION="1.1.15103";
|
|
165756
165786
|
|
|
165757
165787
|
function PrintHQChartVersion()
|
|
165758
165788
|
{
|
|
@@ -165918,6 +165948,7 @@ export default {
|
|
|
165918
165948
|
JSCHART_WORKER_MESSAGE_ID:JSCHART_WORKER_MESSAGE_ID,
|
|
165919
165949
|
JSCHART_MENU_ID:JSCHART_MENU_ID,
|
|
165920
165950
|
JSCHART_TRADE_STATUS_ID:JSCHART_TRADE_STATUS_ID, //交易状态
|
|
165951
|
+
JSCHART_CORSSCURSOR_STATUS_ID:JSCHART_CORSSCURSOR_STATUS_ID, //十字光标状态
|
|
165921
165952
|
},
|
|
165922
165953
|
|
|
165923
165954
|
|