hqchart 1.1.13206 → 1.1.13213
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.
- package/lib/umychart.vue.js +27 -24
- package/package.json +1 -1
- package/src/jscommon/umychart.complier.js +2 -0
- package/src/jscommon/umychart.js +160 -71
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +163 -72
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +163 -72
package/lib/umychart.vue.js
CHANGED
|
@@ -1482,7 +1482,11 @@ CMD_HIDE_STOCKCHIP_ID:21,CMD_ENABLE_SELECT_RECT_ID:22,//启动区间选择
|
|
|
1482
1482
|
CMD_CHANGE_DAY_COUNT_ID:23,//切换天数
|
|
1483
1483
|
CMD_SHOW_BEFORE_DATA_ID:24,//显示|隐藏集合竞价
|
|
1484
1484
|
CMD_SELECTED_ZOOM_ID:25,//选中放大
|
|
1485
|
-
CMD_SELECTED_SUMMARY_ID:26
|
|
1485
|
+
CMD_SELECTED_SUMMARY_ID:26,//区间统计
|
|
1486
|
+
CMD_SHOW_INDEX_ID:27,//显示隐藏指标
|
|
1487
|
+
CMD_SHOW_OVERLAY_INDEX_ID:28,//显示隐藏叠加指标
|
|
1488
|
+
CMD_DELETE_OVERLAY_INDEX_ID:29,//删除叠加指标
|
|
1489
|
+
CMD_SHOW_OVERLAY_Y_AXIS_ID:30//显示隐藏Y轴叠加指标
|
|
1486
1490
|
};function PhoneDBClick(){this.Start=[];this.Clear=function(){this.Start=[];};this.AddTouchStart=function(x,y,time){if(this.Start.length>0){var item=this.Start[this.Start.length-1];var spanTime=time-item.Time;if(spanTime>0&&spanTime<300){this.Start.push({X:x,Y:y,Time:time});}else{this.Start=[];}}else{this.Start.push({X:x,Y:y,Time:time});}};this.IsVaildDBClick=function(){if(this.Start.length==2)return true;return false;};this.AddTouchEnd=function(time){if(this.Start.length<=0)return;var item=this.Start[this.Start.length-1];var spanTime=time-item.Time;if(spanTime>=0&&spanTime<150){}else{this.Start=[];}};}/*
|
|
1487
1491
|
图形控件
|
|
1488
1492
|
*/function JSChartContainer(uielement,OffscreenElement,cacheElement){var _this5=this;this.ClassName='JSChartContainer';var _self=this;this.Frame;//框架画法
|
|
@@ -1889,7 +1893,8 @@ drawPicture.PointToValue();if(this.ChartDrawStorage)this.ChartDrawStorage.SaveDr
|
|
|
1889
1893
|
{var dargInfo=this.SelectChartDrawPicture.DragInfo;if(dargInfo.Click&&dargInfo.Move){if(dargInfo.Click.X!=dargInfo.Move.X||dargInfo.Click.Y!=dargInfo.Move.Y){//通知上层画好了
|
|
1890
1894
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_FINISH_MOVE_DRAWPICTURE);//完成画图工具事件
|
|
1891
1895
|
if(event&&event.Callback){var sendData={DrawPicture:drawPicture};event.Callback(event,sendData,this);}if(drawPicture.OnMoveFinish)drawPicture.OnMoveFinish();}}}return true;};//清空所有的画线工具 option={ Draw:false/true }
|
|
1892
|
-
this.ClearChartDrawPicture=function(drawPicture,option){var bDraw=true;if(!drawPicture){this.ChartDrawPicture=[];if(this.ChartDrawStorage)this.ChartDrawStorage.Clear();if(option&&option.Draw==false)bDraw=false;if(bDraw)this.Draw();}else{for(var i
|
|
1896
|
+
this.ClearChartDrawPicture=function(drawPicture,option){var bDraw=true;if(!drawPicture){this.ChartDrawPicture=[];if(this.ChartDrawStorage)this.ChartDrawStorage.Clear();this.SelectChartDrawPicture=null;if(option&&option.Draw==false)bDraw=false;if(bDraw)this.Draw();}else{for(var i=0;i<this.ChartDrawPicture.length;++i){var item=this.ChartDrawPicture[i];if(item.Guid==drawPicture.Guid||item==drawPicture){if(this.ChartDrawStorage)this.ChartDrawStorage.DeleteDrawData(drawPicture);this.ChartDrawPicture.splice(i,1);if(this.SelectChartDrawPicture)//去掉选中
|
|
1897
|
+
{if(this.SelectChartDrawPicture.Guid==drawPicture.Guid||this.SelectChartDrawPicture==drawPicture)this.SelectChartDrawPicture=null;}if(option&&option.Draw==false)bDraw=false;if(bDraw)this.Draw();}}}};//获取画图工具当前选中图形的Guid
|
|
1893
1898
|
this.GetActiveDrawPicture=function(){var result={Move:{Guid:null},Select:{Guid:null},MoveOn:{Guid:null}};if(this.CurrentChartDrawPicture)result.Move={Guid:this.CurrentChartDrawPicture.Guid};if(this.SelectChartDrawPicture)result.Select={Guid:this.SelectChartDrawPicture.Guid,Chart:this.SelectChartDrawPicture};if(this.MoveOnChartDrawPicture)result.MoveOn={Guid:this.MoveOnChartDrawPicture.Guid};return result;};this.SetChartDrawOption=function(option){if(IFrameSplitOperator.IsBool(option.IsLockScreen))this.ChartDrawOption.IsLockScreen=option.IsLockScreen;if(IFrameSplitOperator.IsNumber(option.Zoom)&&option.Zoom>=0)this.ChartDrawOption.Zoom=option.Zoom;if(option.Magnet){var item=option.Magnet;if(!this.ChartDrawOption.Magnet)this.ChartDrawOption.Magnet={Type:0,Distance:20*GetDevicePixelRatio(),Enable:false};if(IFrameSplitOperator.IsBool(item.Enable))this.ChartDrawOption.Magnet.Enable=item.Enable;if(IFrameSplitOperator.IsNumber(item.Type))this.ChartDrawOption.Magnet.Type=item.Type;if(IFrameSplitOperator.IsNumber(item.Distance))this.ChartDrawOption.Magnet.Distance=opitemion.Distance;}};//是否显示十字光标的十字线
|
|
1894
1899
|
this.EnableShowCorssCursorLine=function(bShow){if(!this.ChartCorssCursor)return;this.ChartCorssCursor.IsShowCorss=bShow;};//获取扩展画法
|
|
1895
1900
|
this.GetExtendChartByClassName=function(name){for(var i=0;i<this.ExtendChartPaint.length;++i){var item=this.ExtendChartPaint[i];if(item.ClassName==name)return{Index:i,Chart:item};}return null;};//获取多个扩展画法
|
|
@@ -1900,7 +1905,8 @@ this.DeleteExtendChartByID=function(id){for(var i=0;i<this.ExtendChartPaint.leng
|
|
|
1900
1905
|
this.EnableSplashScreen=function(enable,option){if(!this.ChartSplashPaint)return;this.ChartSplashPaint.EnableSplash(enable);if(option&&option.Draw===false)return;if(enable)this.DrawSplashScreen(option);else this.Draw();};//设置指标窗口属性 windowItem=SetOption.Windows[i], frameItem=SetOption.Frames[i];
|
|
1901
1906
|
this.SetSubFrameAttribute=function(subFrame,windowItem,frameItem){if(!subFrame||!subFrame.Frame)return;var frame=subFrame.Frame;if(windowItem){if(IFrameSplitOperator.IsBool(windowItem.Modify))frame.ModifyIndex=windowItem.Modify;if(IFrameSplitOperator.IsBool(windowItem.Change))frame.ChangeIndex=windowItem.Change;if(IFrameSplitOperator.IsBool(windowItem.Close))frame.CloseIndex=windowItem.Close;if(IFrameSplitOperator.IsBool(windowItem.Overlay))frame.OverlayIndex=windowItem.Overlay;if(IFrameSplitOperator.IsBool(windowItem.IsDrawTitleBG))frame.IsDrawTitleBG=windowItem.IsDrawTitleBG;if(IFrameSplitOperator.IsNumber(windowItem.TitleHeight))frame.ChartBorder.TitleHeight=windowItem.TitleHeight;else windowItem.TitleHeight=frame.ChartBorder.TitleHeight;if(IFrameSplitOperator.IsBool(windowItem.IsShowTitleArrow))frame.IsShowTitleArrow=windowItem.IsShowTitleArrow;if(IFrameSplitOperator.IsBool(windowItem.IsShowIndexName))frame.IsShowIndexName=windowItem.IsShowIndexName;if(IFrameSplitOperator.IsNumber(windowItem.IndexParamSpace))frame.IndexParamSpace=windowItem.IndexParamSpace;if(IFrameSplitOperator.IsNumber(windowItem.IndexTitleSpace))frame.IndexTitleSpace=windowItem.IndexTitleSpace;}if(frameItem){if(frameItem.SplitCount)frame.YSplitOperator.SplitCount=frameItem.SplitCount;if(IFrameSplitOperator.IsBool(frameItem.IsShowXLine))frame.IsShowXLine=frameItem.IsShowXLine;if(IFrameSplitOperator.IsBool(frameItem.IsShowYLine))frame.IsShowYLine=frameItem.IsShowYLine;if(IFrameSplitOperator.IsBool(frameItem.IsShowLeftText)){frame.IsShowYText[0]=frameItem.IsShowLeftText;frame.YSplitOperator.IsShowLeftText=frameItem.IsShowLeftText;//显示左边刻度
|
|
1902
1907
|
}if(IFrameSplitOperator.IsBool(frameItem.IsShowRightText)){frame.IsShowYText[1]=frameItem.IsShowRightText;frame.YSplitOperator.IsShowRightText=frameItem.IsShowRightText;//显示右边刻度
|
|
1903
|
-
}if(IFrameSplitOperator.IsNumber(frameItem.Height)&&frameItem.Height>=0)subFrame.Height=frameItem.Height;}};this.SetSubFrameOption=function(subFrame,option){if(!option)return;var frame=subFrame.Frame;if(option.Window){var item=option.Window;if(IFrameSplitOperator.IsBool(item.Modify))frame.ModifyIndex=item.Modify;if(IFrameSplitOperator.IsBool(item.Change))frame.ChangeIndex=item.Change;if(IFrameSplitOperator.IsBool(item.Close))frame.CloseIndex=item.Close;if(IFrameSplitOperator.IsBool(item.Overlay))frame.OverlayIndex=item.Overlay;if(IFrameSplitOperator.IsBool(item.Export))frame.ExportData=item.Export;if(IFrameSplitOperator.IsBool(item.MaxMin))frame.MaxMinWindow=item.MaxMin;if(IFrameSplitOperator.IsBool(item.TitleWindow))frame.TitleWindow=item.TitleWindow;if(IFrameSplitOperator.IsBool(item.IsDrawTitleBG))frame.IsDrawTitleBG=item.IsDrawTitleBG;if(IFrameSplitOperator.IsBool(item.IsShowNameArrow))frame.IsShowNameArrow=item.IsShowNameArrow;if(item.OverlayIndexType){if(IFrameSplitOperator.IsNumber(item.OverlayIndexType.Position))frame.OverlayIndexType.Position=item.OverlayIndexType.Position;if(IFrameSplitOperator.IsNumber(item.OverlayIndexType.LineSpace))frame.OverlayIndexType.LineSpace=item.OverlayIndexType.LineSpace;}
|
|
1908
|
+
}if(IFrameSplitOperator.IsNumber(frameItem.Height)&&frameItem.Height>=0)subFrame.Height=frameItem.Height;}};this.SetSubFrameOption=function(subFrame,option){if(!option)return;var frame=subFrame.Frame;if(option.Window){var item=option.Window;if(IFrameSplitOperator.IsBool(item.Modify))frame.ModifyIndex=item.Modify;if(IFrameSplitOperator.IsBool(item.Change))frame.ChangeIndex=item.Change;if(IFrameSplitOperator.IsBool(item.Close))frame.CloseIndex=item.Close;if(IFrameSplitOperator.IsBool(item.Overlay))frame.OverlayIndex=item.Overlay;if(IFrameSplitOperator.IsBool(item.Export))frame.ExportData=item.Export;if(IFrameSplitOperator.IsBool(item.MaxMin))frame.MaxMinWindow=item.MaxMin;if(IFrameSplitOperator.IsBool(item.TitleWindow))frame.TitleWindow=item.TitleWindow;if(IFrameSplitOperator.IsBool(item.IsDrawTitleBG))frame.IsDrawTitleBG=item.IsDrawTitleBG;if(IFrameSplitOperator.IsBool(item.IsShowNameArrow))frame.IsShowNameArrow=item.IsShowNameArrow;if(item.OverlayIndexType){if(IFrameSplitOperator.IsNumber(item.OverlayIndexType.Position))frame.OverlayIndexType.Position=item.OverlayIndexType.Position;if(IFrameSplitOperator.IsNumber(item.OverlayIndexType.LineSpace))frame.OverlayIndexType.LineSpace=item.OverlayIndexType.LineSpace;}if(IFrameSplitOperator.IsNonEmptyArray(item.CustomToolbar))//自定义工具按钮
|
|
1909
|
+
{frame.CustomToolbar=item.CustomToolbar.slice();}}if(IFrameSplitOperator.IsNumber(option.SplitCount))subFrame.Frame.YSplitOperator.SplitCount=option.SplitCount;if(IFrameSplitOperator.IsNumber(option.TitleHeight))subFrame.Frame.ChartBorder.TitleHeight=option.TitleHeight;if(IFrameSplitOperator.IsBool(option.IsShowTitleArrow))subFrame.Frame.IsShowTitleArrow=option.IsShowTitleArrow;if(IFrameSplitOperator.IsBool(option.IsShowIndexName))subFrame.Frame.IsShowIndexName=option.IsShowIndexName;if(IFrameSplitOperator.IsBool(option.IsShowOverlayIndexName))subFrame.Frame.IsShowOverlayIndexName=option.IsShowOverlayIndexName;if(IFrameSplitOperator.IsNumber(option.IndexParamSpace))subFrame.Frame.IndexParamSpace=option.IndexParamSpace;if(IFrameSplitOperator.IsBool(option.IsShowXLine))subFrame.Frame.IsShowXLine=option.IsShowXLine;if(IFrameSplitOperator.IsBool(option.IsShowYLine))subFrame.Frame.IsShowYLine=option.IsShowYLine;if(IFrameSplitOperator.IsBool(option.IsShowIndexTitle))subFrame.Frame.IsShowIndexTitle=option.IsShowIndexTitle;if(IFrameSplitOperator.IsBool(option.IsShowLeftText)){subFrame.Frame.IsShowYText[0]=option.IsShowLeftText;subFrame.Frame.YSplitOperator.IsShowLeftText=option.IsShowLeftText;//显示左边刻度
|
|
1904
1910
|
}if(IFrameSplitOperator.IsBool(option.IsShowRightText)){subFrame.Frame.IsShowYText[1]=option.IsShowRightText;subFrame.Frame.YSplitOperator.IsShowRightText=option.IsShowRightText;//显示右边刻度
|
|
1905
1911
|
}};this.AddNewSubFrame=function(option){var _this12=this;var index=this.Frame.SubFrame.length;var subFrame=this.CreateSubFrameItem(index);var pixelRatio=GetDevicePixelRatio();subFrame.Frame.ChartBorder.TitleHeight*=pixelRatio;this.Frame.SubFrame[index]=subFrame;var titlePaint=new DynamicChartTitlePainting();titlePaint.Frame=this.Frame.SubFrame[index].Frame;titlePaint.Canvas=this.Canvas;titlePaint.LanguageID=this.LanguageID;titlePaint.GetEventCallback=function(id){return _this12.GetEventCallback(id);};this.TitlePaint[index+1]=titlePaint;this.SetSubFrameOption(subFrame,option);//最后一个显示X轴坐标
|
|
1906
1912
|
for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i].Frame;if(i==this.Frame.SubFrame.length-1)item.XSplitOperator.ShowText=true;else item.XSplitOperator.ShowText=false;}this.UpdataDataoffset();//更新数据偏移
|
|
@@ -1979,7 +1985,11 @@ if(this.ChangePriceGap&&IFrameSplitOperator.IsBool(aryArgs[0])){if(aryArgs[0]==f
|
|
|
1979
1985
|
this.SetSizeChange(true);this.Draw();break;case JSCHART_MENU_ID.CMD_HIDE_DRAWTOOL_ID:var drawTools=this.GetExtendChartByClassName('DrawToolsButton');if(drawTools){var toolsWidth=drawTools.Chart.Width;var toolsIndex=parseInt(drawTools.Index);for(var i=toolsIndex+1;i<this.ExtendChartPaint.length;++i)//在画图工具后面创建的需要减去工具的宽度
|
|
1980
1986
|
{var item=this.ExtendChartPaint[i];if(item.ClassName=='StockChip'){item.Left-=toolsWidth;}}this.DeleteExtendChart(drawTools);this.Frame.ChartBorder.Right-=toolsWidth;this.SetSizeChange(true);this.Draw();}break;case JSCHART_MENU_ID.CMD_SHOW_STOCKCHIP_ID:var option={Name:'筹码分布',ShowType:1,Width:230};var extendChart=this.CreateExtendChart(option.Name,option);//创建扩展图形
|
|
1981
1987
|
this.SetSizeChange(true);this.Draw();break;case JSCHART_MENU_ID.CMD_HIDE_STOCKCHIP_ID:var StockChip=chart.GetExtendChartByClassName('StockChip');if(StockChip){var chipWidth=StockChip.Chart.Width;var chipIndex=parseInt(StockChip.Index);for(var i=chipIndex+1;i<this.ExtendChartPaint.length;++i)//在筹码后面创建的需要筹码的宽度
|
|
1982
|
-
{var item=this.ExtendChartPaint[i];if(item.ClassName=='DrawToolsButton'){item.Left-=chipWidth;}}this.DeleteExtendChart(StockChip);this.Frame.ChartBorder.Right-=chipWidth;this.SetSizeChange(true);this.Draw();}break;case JSCHART_MENU_ID.CMD_ENABLE_SELECT_RECT_ID:if(IFrameSplitOperator.IsBool(srcParam))this.EnableSelectRect=srcParam;break;case JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID:if(this.ChangeDayCount&¶m!=null)this.ChangeDayCount(param);break;case JSCHART_MENU_ID.CMD_SHOW_BEFORE_DATA_ID:if(this.ShowCallAuctionData&&IFrameSplitOperator.IsBool(srcParam))this.ShowCallAuctionData({Left:srcParam,MultiDay:{Left:srcParam}});break;case JSCHART_MENU_ID.CMD_SELECTED_ZOOM_ID:if(this.ShowSelectData&&srcParam)this.ShowSelectData(srcParam);break;case JSCHART_MENU_ID.CMD_SELECTED_SUMMARY_ID:var dlg=new KLineSelectRectDialog(this.DivElement);dlg.DoModal(srcParam);break;
|
|
1988
|
+
{var item=this.ExtendChartPaint[i];if(item.ClassName=='DrawToolsButton'){item.Left-=chipWidth;}}this.DeleteExtendChart(StockChip);this.Frame.ChartBorder.Right-=chipWidth;this.SetSizeChange(true);this.Draw();}break;case JSCHART_MENU_ID.CMD_ENABLE_SELECT_RECT_ID:if(IFrameSplitOperator.IsBool(srcParam))this.EnableSelectRect=srcParam;break;case JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID:if(this.ChangeDayCount&¶m!=null)this.ChangeDayCount(param);break;case JSCHART_MENU_ID.CMD_SHOW_BEFORE_DATA_ID:if(this.ShowCallAuctionData&&IFrameSplitOperator.IsBool(srcParam))this.ShowCallAuctionData({Left:srcParam,MultiDay:{Left:srcParam}});break;case JSCHART_MENU_ID.CMD_SELECTED_ZOOM_ID:if(this.ShowSelectData&&srcParam)this.ShowSelectData(srcParam);break;case JSCHART_MENU_ID.CMD_SELECTED_SUMMARY_ID:var dlg=new KLineSelectRectDialog(this.DivElement);dlg.DoModal(srcParam);break;case JSCHART_MENU_ID.CMD_SHOW_INDEX_ID://显示隐藏指标 [0]=windowIndex [1]=0=自动 1=隐藏 2=显示
|
|
1989
|
+
if(param==null||!IFrameSplitOperator.IsNumber(aryArgs[1]))return false;var windowIndex=param,showType=aryArgs[1];var script=this.WindowIndex[windowIndex];if(!script)return false;if(showType==1)script.IsShow=false;else if(showType==2)script.IsShow=true;else script.IsShow=!script.IsShow;this.UpdateWindowIndex(windowIndex);break;case JSCHART_MENU_ID.CMD_SHOW_OVERLAY_INDEX_ID://显示隐藏叠加指标 [0]=indexGuid [1]=0=自动 1=隐藏 2=显示
|
|
1990
|
+
if(!srcParam||!IFrameSplitOperator.IsNumber(aryArgs[1]))return false;var indexGuid=srcParam,showType=aryArgs[1];var overlay=this.GetOverlayIndexByIdentify(indexGuid);if(!overlay||!overlay.OverlayItem||!overlay.OverlayItem.Script)return false;var script=overlay.OverlayItem.Script;if(showType==1)script.IsShow=false;else if(showType==2)script.IsShow==true;else script.IsShow=!script.IsShow;this.UpdateOverlayIndex(indexGuid);break;case JSCHART_MENU_ID.CMD_DELETE_OVERLAY_INDEX_ID:if(srcParam&&this.DeleteOverlayWindowsIndex)this.DeleteOverlayWindowsIndex(srcParam);break;case JSCHART_MENU_ID.CMD_SHOW_OVERLAY_Y_AXIS_ID:if(!srcParam||!IFrameSplitOperator.IsNumber(aryArgs[1]))return false;if(!this.GetOverlayIndexByIdentify)return false;var indexGuid=srcParam,showType=aryArgs[1];var finder=this.GetOverlayIndexByIdentify(indexGuid);if(!finder||!finder.OverlayItem)return false;var frame=finder.OverlayItem.Frame;if(showType==1)frame.IsShow=false;else if(showType==2)frame.IsShow==true;else frame.IsShow=!frame.IsShow;this.UpdataDataoffset();//更新数据偏移
|
|
1991
|
+
this.UpdateFrameMaxMin();//调整坐标最大 最小值
|
|
1992
|
+
this.Draw();break;}};this.GetShowIndexMenuData=function(windowIndex,showType){var script=this.WindowIndex[windowIndex];if(!script)return null;var data={Name:script.IsShow?"隐藏指标":"显示指标",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_INDEX_ID,Args:[windowIndex,0]}};return data;};this.GetShowOverlayIndexMenuData=function(indexGuid,showType){var overlay=this.GetOverlayIndexByIdentify(indexGuid);if(!overlay||!overlay.OverlayItem||!overlay.OverlayItem.Script)return null;var script=overlay.OverlayItem.Script;var data={Name:script.IsShow?"隐藏指标":"显示指标",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_OVERLAY_INDEX_ID,Args:[indexGuid,0]}};return data;};this.GetShowOverlayIndexYAxisMenuData=function(indexGuid,showType){var overlay=this.GetOverlayIndexByIdentify(indexGuid);if(!overlay||!overlay.OverlayItem||!overlay.OverlayItem.Script)return null;var frame=overlay.OverlayItem.Frame;var data={Name:frame.IsShow?"隐藏Y轴":"显示Y轴",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_OVERLAY_Y_AXIS_ID,Args:[indexGuid,0]}};return data;};//点击右键菜单
|
|
1983
1993
|
this.OnClickRightMenu=function(data){JSConsole.Chart.Log('[JSChartContainer::OnClickRightMenu] ',data);if(!data||!data.Data)return;var cmdID=data.Data.ID;//命令ID
|
|
1984
1994
|
var aryArgs=data.Data.Args;//参数
|
|
1985
1995
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MENU_COMMAND);//回调通知外部
|
|
@@ -5805,7 +5815,7 @@ if(left+textWidth>right)break;this.Canvas.fillText(text,left,bottom,textWidth);l
|
|
|
5805
5815
|
}};this.OnDrawEventCallback=function(drawData){if(!this.OnDrawEvent||!this.OnDrawEvent.Callback)return;var data={Draw:drawData,Name:'DynamicChartTitlePainting'};this.OnDrawEvent.Callback(this.OnDrawEvent,data,this);};this.GetFontHeight=function(font){return GetFontHeight(this.Canvas,font,"擎");};//指标名字按钮
|
|
5806
5816
|
this.DrawNameButton=function(rtButton,moveonPoint,mouseStatus){var pixelRatio=GetDevicePixelRatio();var title=this.Title;if(this.IsShowNameArrow)title+='▼';var textWidth=this.Canvas.measureText(title).width;var bgHeight=this.Canvas.measureText("擎").width+4*pixelRatio;var roundRadius=this.BorderRoundRadius*pixelRatio;var bgWidth=textWidth+4*pixelRatio+roundRadius*2;rtButton.Top=rtButton.YCenter-bgHeight/2-1,rtButton.Width=bgWidth;rtButton.Height=bgHeight;rtButton.Right=rtButton.Left+rtButton.Width;rtButton.Bottom=rtButton.Top+rtButton.Height;var borderColor=this.BGBorderColor;if(moveonPoint&&moveonPoint.X>=rtButton.Left&&moveonPoint.X<rtButton.Right&&moveonPoint.Y>=rtButton.Top&&moveonPoint.Y<=rtButton.Bottom){if(this.BGBorderMoveOnColor)borderColor=this.BGBorderMoveOnColor;if(mouseStatus){var btnItem={ID:JSCHART_BUTTON_ID.INDEX_NAME_BUTTON};mouseStatus.MouseOnToolbar={ID:"IndexNameButton",Rect:rtButton,Item:btnItem,Frame:this.Frame,Point:{X:moveonPoint.X,Y:moveonPoint.Y}};}}if(this.NameButtonStyle==1){this.Canvas.beginPath();this.Canvas.roundRect(ToFixedPoint(rtButton.Left),ToFixedPoint(rtButton.Top),ToFixedRect(rtButton.Width),ToFixedRect(rtButton.Height),[roundRadius]);this.Canvas.closePath();this.Canvas.fillStyle=this.BGColor;this.Canvas.fill();if(borderColor){this.Canvas.strokeStyle=borderColor;this.Canvas.stroke();}}else{this.Canvas.fillStyle=this.BGColor;this.Canvas.fillRect(rtButton.Left,rtButton.Top,rtButton.Width,rtButton.Height);if(borderColor){this.Canvas.strokeStyle=borderColor;this.Canvas.strokeRect(ToFixedPoint(rtButton.Left),ToFixedPoint(rtButton.Top),ToFixedRect(rtButton.Width),ToFixedRect(rtButton.Height),[roundRadius]);}}this.Canvas.fillStyle=this.TitleColor;this.Canvas.fillText(title,rtButton.Left+roundRadius+2*pixelRatio,rtButton.YCenter,textWidth);};//绘制按钮
|
|
5807
5817
|
this.DrawButton=function(item,rtButton,moveonPoint,mouseStatus){var size=item.Style.Size;if(IFrameSplitOperator.IsNumber(item.Style.YMoveOffset))rtButton.YCenter+=item.Style.YMoveOffset;var font=size+'px '+item.Style.Family;rtButton.Top=rtButton.YCenter-size/2;rtButton.Width=size+item.Style.MerginLeft;rtButton.Height=size;rtButton.Bottom=rtButton.Top+rtButton.Height;rtButton.Right=rtButton.Left+rtButton.Width;var color=item.Style.Color;if(moveonPoint&&moveonPoint.X>=rtButton.Left&&moveonPoint.X<rtButton.Right&&moveonPoint.Y>=rtButton.Top&&moveonPoint.Y<=rtButton.Bottom){color=item.Style.MoveOnColor;if(mouseStatus)mouseStatus.MouseOnToolbar={ID:"TitleButton",Rect:rtButton,Item:item,Frame:this.Frame,Point:{X:moveonPoint.X,Y:moveonPoint.Y}};}this.Canvas.fillStyle=color;this.Canvas.font=font;this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";this.Canvas.fillText(item.Style.Text,rtButton.Left,rtButton.YCenter);return true;};this.DrawToolbar=function(toolbarInfo,moveonPoint,mouseStatus){toolbarInfo.Width=0;if(!this.Frame||!this.Frame.GetLeftToolbar)return;var aryButton=this.Frame.GetLeftToolbar();if(!IFrameSplitOperator.IsNonEmptyArray(aryButton))return;if(this.Frame.IsHScreen===true){}else{var border=this.Frame.GetBorder();var right=border.Right-3;var left=border.Left+3;var yCenter=toolbarInfo.YCenter;for(var i=0;i<aryButton.length;++i){var item=aryButton[i];var rtButton={Left:left,YCenter:yCenter};this.DrawButton(item,rtButton,moveonPoint,mouseStatus);this.Buttons.push({ID:item.ID,Rect:rtButton,FrameID:this.Frame.Identify,Type:0,Data:item.Data});//Type 0=主图按钮 1=附图按钮 2=主图指标名字按钮
|
|
5808
|
-
left=rtButton.Right;toolbarInfo.Width+=rtButton.Width;}if(toolbarInfo.Width>0)toolbarInfo.Width+=3;}};this.DrawOverlayToolbar=function(overlayItem,toolbarInfo,moveonPoint,mouseStatus){toolbarInfo.Width=0;if(!overlayItem||!overlayItem.Frame||!overlayItem.Frame.GetLeftToolbar)return;var frame=overlayItem.Frame;var aryButton=frame.GetLeftToolbar({Overlay:overlayItem,OverlayID:toolbarInfo.ID});if(!IFrameSplitOperator.IsNonEmptyArray(aryButton))return;if(this.Frame.IsHScreen===true){}else{var border=frame.GetBorder();var right=border.Right-3;var left=border.Left+3;var yCenter=toolbarInfo.YCenter;for(var i=0;i<aryButton.length;++i){var item=aryButton[i];var rtButton={Left:left,YCenter:yCenter};this.DrawButton(item,rtButton,moveonPoint,mouseStatus);this.Buttons.push({ID:item.ID,Rect:rtButton,FrameID:this.Frame.Identify,Type:1,OverlayID:toolbarInfo.ID,Title:overlayItem.Title});left=rtButton.Right;toolbarInfo.Width+=rtButton.Width;}if(toolbarInfo.Width>0)toolbarInfo.Width+=3;}};this.PtInButtons=function(x,y){for(var i=0;i<this.Buttons.length;++i){var item=this.Buttons[i];if(!item.Rect)continue;var rect=item.Rect;if(x>rect.Left&&x<rect.Right&&y>rect.Top&&y<rect.Bottom){var result={ID:item.ID,Rect:rect,FrameID:item.FrameID,Type:item.Type,Data:item.Data};if(item.Type==1){result.Title=item.Title;result.OverlayID=item.OverlayID;}return result;}}return null;};}//画图工具
|
|
5818
|
+
left=rtButton.Right;toolbarInfo.Width+=rtButton.Width;}if(toolbarInfo.Width>0)toolbarInfo.Width+=3;}};this.DrawOverlayToolbar=function(overlayItem,toolbarInfo,moveonPoint,mouseStatus){toolbarInfo.Width=0;if(!overlayItem||!overlayItem.Frame||!overlayItem.Frame.GetLeftToolbar)return;var frame=overlayItem.Frame;var aryButton=frame.GetLeftToolbar({Overlay:overlayItem,OverlayID:toolbarInfo.ID});if(!IFrameSplitOperator.IsNonEmptyArray(aryButton))return;if(this.Frame.IsHScreen===true){}else{var border=frame.GetBorder();var right=border.Right-3;var left=border.Left+3;var yCenter=toolbarInfo.YCenter;for(var i=0;i<aryButton.length;++i){var item=aryButton[i];var rtButton={Left:left,YCenter:yCenter};this.DrawButton(item,rtButton,moveonPoint,mouseStatus);this.Buttons.push({ID:item.ID,Rect:rtButton,FrameID:this.Frame.Identify,Type:1,OverlayID:toolbarInfo.ID,Title:overlayItem.Title,Data:item.Data});left=rtButton.Right;toolbarInfo.Width+=rtButton.Width;}if(toolbarInfo.Width>0)toolbarInfo.Width+=3;}};this.PtInButtons=function(x,y){for(var i=0;i<this.Buttons.length;++i){var item=this.Buttons[i];if(!item.Rect)continue;var rect=item.Rect;if(x>rect.Left&&x<rect.Right&&y>rect.Top&&y<rect.Bottom){var result={ID:item.ID,Rect:rect,FrameID:item.FrameID,Type:item.Type,Data:item.Data};if(item.Type==1){result.Title=item.Title;result.OverlayID=item.OverlayID;}return result;}}return null;};}//画图工具
|
|
5809
5819
|
function IChartDrawPicture(){this.Frame;this.Canvas;this.Point=new Array();//画图的点
|
|
5810
5820
|
this.Value=new Array();//XValue,YValue
|
|
5811
5821
|
this.LinePoint=[];this.PointCount=2;//画点的个数
|
|
@@ -6010,8 +6020,10 @@ this.LineWidth=1;this.Precision=2;//小数位数
|
|
|
6010
6020
|
this.ValueTextColor='rgb(250,250,250)';this.IsShowCorssCursor=true;//画的时候是否显示十字光标
|
|
6011
6021
|
this.GetLabelCallback;//绘制标题回调函数
|
|
6012
6022
|
this.PointCount=1;this.ClassName='ChartDrawHLine';this.Font=14*GetDevicePixelRatio()+"px 微软雅黑";this.TextFont=12*GetDevicePixelRatio()+"px 微软雅黑";this.RightSpaceWidth=50;this.ButtonPosition=0;//按钮位置, 0=价格后面, 1=价格上面
|
|
6013
|
-
this.ButtonBGColor='rgb(190,190,190)';this.ButtonSpace=3;this.TextMargin={Left:0,Right:0};this.Button={CloseIcon:{Text:'\uE62B',Color:'rgb(255,255,255)',Family:"iconfont",Size:16,ID:JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE,TooltipText:null},SettingIcon:{Text:'\uE623',Color:'rgb(255,255,255)',Family:"iconfont",Size:16,ID:JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING,TooltipText:null//修改ID, Text , TooltipText 可以外部定制按钮
|
|
6014
|
-
}};this.
|
|
6023
|
+
this.ButtonBGColor='rgb(190,190,190)';this.ButtonSpace=3;this.TextMargin={Left:0,Right:0};this.Button={CloseIcon:{Text:'\uE62B',Color:'rgb(255,255,255)',Family:"iconfont",Size:16,ID:JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE,TooltipText:null,Margin:{Left:2,Right:2}},SettingIcon:{Text:'\uE623',Color:'rgb(255,255,255)',Family:"iconfont",Size:16,ID:JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING,TooltipText:null,Margin:{Left:2,Right:2}//修改ID, Text , TooltipText 可以外部定制按钮
|
|
6024
|
+
}};this.CustomButton=[];//自定义的按钮 { Text:'\ue62b', Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_BUTTON_1, TooltipText:null }
|
|
6025
|
+
this.AryShowButton=[];//需要显示的按钮 { Data:, Width }
|
|
6026
|
+
this.AryButton=[];this.ExtendData;//扩展数据
|
|
6015
6027
|
this.ShowPriceTextConfig={IsShow:[false,false,true],//[0]=left内 [1]=right内 [2]=right外
|
|
6016
6028
|
Font:[12*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1',12*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1']};//内部变量
|
|
6017
6029
|
this.ColseButtonSize=0;this.SettingButtonSize=0;this.ButtonBGWidth=0;this.SetOption=function(option){if(this.Super_SetOption)this.Super_SetOption(option);if(option){if(option.GetLabelCallback){this.GetLabelCallback=option.GetLabelCallback;}if(IFrameSplitOperator.IsNumber(option.Precision))this.Precision=option.Precision;if(IFrameSplitOperator.IsNumber(option.Precision))this.Precision=option.Precision;if(option.Font)this.Font=option.Font;if(option.ValueTextColor)this.ValueTextColor=option.ValueTextColor;if(IFrameSplitOperator.IsNumber(option.ButtonPosition))this.ButtonPosition=option.ButtonPosition;if(IFrameSplitOperator.IsNumber(option.RightSpaceWidth))this.RightSpaceWidth=option.RightSpaceWidth;if(option.Button){var item=option.Button;if(item.CloseIcon)this.Button.CloseIcon=CloneData(item.CloseIcon);else if(item.CloseIcon===null)this.Button.CloseIcon=null;if(item.SettingIcon)this.Button.SettingIcon=CloneData(item.SettingIcon);else if(item.SettingIcon===null)this.Button.SettingIcon=null;}if(option.ExtendData)this.ExtendData=option.ExtendData;if(IFrameSplitOperator.IsNonEmptyArray(option.IsShowPriceText)){for(var i=0;i<option.IsShowPriceText.length&&i<3;++i){var value=option.IsShowPriceText[i];if(IFrameSplitOperator.IsBool(value))this.ShowPriceTextConfig.IsShow[i]=value;}}if(option.TextMargin){var item=option.TextMargin;if(IFrameSplitOperator.IsNumber(item.Left))this.TextMargin.Left=item.Left;if(IFrameSplitOperator.IsNumber(item.Right))this.TextMargin.Right=item.Right;}}};this.ExportStorageData=function(){var storageData;if(this.Super_ExportStorageData){storageData=this.Super_ExportStorageData();if(this.Label)storageData.Label=this.Label;}return storageData;};this.IsPointIn=this.IsPointIn_XYValue_Line;/*
|
|
@@ -6023,9 +6035,11 @@ this.ColseButtonSize=0;this.SettingButtonSize=0;this.ButtonBGWidth=0;this.SetOpt
|
|
|
6023
6035
|
return this.PointRange(drawPoint);
|
|
6024
6036
|
}
|
|
6025
6037
|
*/this.IsDrawMain=function()//选中绘制在动态绘图上, 没有选中绘制在背景上
|
|
6026
|
-
{if(!this.GetActiveDrawPicture)return true;var active=this.GetActiveDrawPicture();if(active.Select.Guid==this.Guid)return false;return true;};this.MainDraw=function(){this.Draw();}
|
|
6038
|
+
{if(!this.GetActiveDrawPicture)return true;var active=this.GetActiveDrawPicture();if(active.Select.Guid==this.Guid)return false;return true;};this.MainDraw=function(){this.Draw();};//获取需要显示的按钮 系统按钮+自定义按钮
|
|
6039
|
+
this.GetShowButton=function(){var aryButton=[];var item=this.Button.SettingIcon;if(item&&item.Text)aryButton.push({Data:item,Width:null});item=this.Button.CloseIcon;if(item&&item.Text)aryButton.push({Data:item,Width:null});if(IFrameSplitOperator.IsNonEmptyArray(this.CustomButton)){for(var i=0;i<this.CustomButton.length;++i){item=this.CustomButton[i];if(item&&item.Text)aryButton.push({Data:item,Width:null});}}return aryButton;};this.Draw=function(moveonPoint,mouseStatus){this.AryShowButton=[];this.LinePoint=[];this.AryButton=[];this.ColseButtonSize=0;this.SettingButtonSize=0;this.ButtonBGWidth=0;if(this.IsFrameMinSize())return;if(!this.IsShow)return;var drawPoint=this.CalculateDrawPoint();if(!drawPoint||drawPoint.length!=1)return;if(!this.Frame)return;if(this.Value.length!=1)return;if(!this.IsYValueInFrame(this.Value[0].YValue))return null;var isHScreen=this.Frame.IsHScreen;var left=this.Frame.ChartBorder.GetLeft();var right=this.Frame.ChartBorder.GetRight();if(isHScreen){left=this.Frame.ChartBorder.GetTop();right=this.Frame.ChartBorder.GetBottom();}this.ClipFrame();//画线段
|
|
6027
6040
|
this.Canvas.strokeStyle=this.LineColor;this.SetLineWidth();this.Canvas.beginPath();if(isHScreen){this.Canvas.moveTo(drawPoint[0].X,left);this.Canvas.lineTo(drawPoint[0].X,right);}else{this.Canvas.moveTo(left,ToFixedPoint(drawPoint[0].Y));this.Canvas.lineTo(right,ToFixedPoint(drawPoint[0].Y));}this.Canvas.stroke();this.RestoreLineWidth();//画水平线段
|
|
6028
|
-
var line={Start:new Point(),End:new Point()};if(isHScreen){line.Start.X=drawPoint[0].X;line.Start.Y=left;line.End.X=drawPoint[0].X;line.End.Y=right;}else{line.Start.X=left;line.Start.Y=drawPoint[0].Y;line.End.X=right;line.End.Y=drawPoint[0].Y;}this.LinePoint.push(line);var yValue=this.Frame.GetYData(drawPoint[0].Y);var strPrice=yValue.toFixed(this.Precision);if(this.ShowPriceTextConfig.IsShow[0]){this.DrawPriceText(strPrice,line.Start,line.End,0);}if(this.ShowPriceTextConfig.IsShow[1]){this.DrawPriceText(strPrice,line.Start,line.End,1);}var labInfo;if(this.GetLabelCallback)labInfo=this.GetLabelCallback(this)
|
|
6041
|
+
var line={Start:new Point(),End:new Point()};if(isHScreen){line.Start.X=drawPoint[0].X;line.Start.Y=left;line.End.X=drawPoint[0].X;line.End.Y=right;}else{line.Start.X=left;line.Start.Y=drawPoint[0].Y;line.End.X=right;line.End.Y=drawPoint[0].Y;}this.LinePoint.push(line);var yValue=this.Frame.GetYData(drawPoint[0].Y);var strPrice=yValue.toFixed(this.Precision);if(this.ShowPriceTextConfig.IsShow[0]){this.DrawPriceText(strPrice,line.Start,line.End,0);}if(this.ShowPriceTextConfig.IsShow[1]){this.DrawPriceText(strPrice,line.Start,line.End,1);}var labInfo;if(this.GetLabelCallback)labInfo=this.GetLabelCallback(this);this.AryShowButton=this.GetShowButton();//获取按钮
|
|
6042
|
+
//描述信息
|
|
6029
6043
|
if(labInfo)this.DrawLab(labInfo,drawPoint[0].Y);//画中心点
|
|
6030
6044
|
var xCenter=left+(right-left)/2;var point={X:xCenter,Y:drawPoint[0].Y};this.DrawPoint([point]);this.Canvas.restore();//外部右侧显示价格
|
|
6031
6045
|
if(this.ShowPriceTextConfig.IsShow[2]){var rtDraw={};this.CalculateButtonSize();this.DrawValueText(drawPoint[0].Y,rtDraw,labInfo);if(labInfo)this.DrawRightLab(labInfo,rtDraw);if(labInfo)this.DrawCustomHLine(labInfo,drawPoint[0].Y);}//鼠标是否在按钮上
|
|
@@ -6034,18 +6048,7 @@ if(labInfo.BGColor){this.Canvas.fillStyle=labInfo.BGColor;var rtTop=y-labSize.He
|
|
|
6034
6048
|
if(labInfo.BGColor){this.Canvas.fillStyle=labInfo.BGColor;var rtTop=drawTop;this.Canvas.fillRect(ToFixedRect(drawLeft),ToFixedRect(rtTop),ToFixedRect(labSize.Width),ToFixedRect(labSize.Height));}var yText=drawTop+1+lineSpace;this.Canvas.textBaseline="top";for(var i=0;i<labInfo.AryText.length;++i){var item=labInfo.AryText[i];if(item.Name){this.Canvas.textAlign="left";this.Canvas.fillStyle=item.NameColor;this.Canvas.fillText(item.Name,drawLeft+1,yText+1);}if(item.Text){this.Canvas.textAlign="right";this.Canvas.fillStyle=item.TextColor;this.Canvas.fillText(item.Text,drawRight-1,yText+1);}yText+=labSize.LineHeight+lineSpace;}};this.DrawCustomHLine=function(labInfo,yLine){if(!labInfo)return;if(!IFrameSplitOperator.IsNonEmptyArray(labInfo.AryLine))return;var left=this.Frame.ChartBorder.GetLeft();var right=this.Frame.ChartBorder.GetRight();var pixelRatio=GetDevicePixelRatio();var yMax=yLine,yMin=yLine;for(var i=0;i<labInfo.AryLine.length;++i){var item=labInfo.AryLine[i];if(!IFrameSplitOperator.IsNumber(item.Value))continue;if(item.Width<0)continue;var y=this.Frame.GetYFromData(item.Value);var yFixed=ToFixedPoint(y);var xRight=right;if(IFrameSplitOperator.IsPlusNumber(item.Width)){if(item.Width<1)xRight=left+item.Width*(right-left);//0.3 百分比
|
|
6035
6049
|
else xRight=left+item.Width*pixelRatio;//>1 实际数值就是长度
|
|
6036
6050
|
}if(item.Color)this.Canvas.strokeStyle=item.Color;else this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(left,yFixed);this.Canvas.lineTo(xRight,yFixed);this.Canvas.stroke();if(yMax<yFixed)yMax=yFixed;if(yMin>yFixed)yMin=yFixed;}if(yMax!=yMin&&labInfo.VLine){var item=labInfo.VLine;var x=left+20*pixelRatio;if(IFrameSplitOperator.IsNumber(item.XOffset))x=left+item.XOffset*pixelRatio;x=ToFixedPoint(x);if(item.Color)this.Canvas.strokeStyle=item.Color;else this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(x,yMax);this.Canvas.lineTo(x,yMin);this.Canvas.stroke();}};this.DrawValueText=function(y,rtDraw,labInfo){var left=this.Frame.ChartBorder.GetLeft();var right=this.Frame.ChartBorder.GetRight();if(this.RightSpaceWidth>0){this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(right,ToFixedPoint(y));this.Canvas.lineTo(right+this.RightSpaceWidth,ToFixedPoint(y));this.Canvas.stroke();}var yValue=this.Frame.GetYData(y);var strValue=yValue.toFixed(this.Precision);if(labInfo&&labInfo.PriceSuffixText)strValue+=labInfo.PriceSuffixText;this.Canvas.fillStyle=this.LineColor;this.Canvas.font=this.Font;var textWidth=this.Canvas.measureText(strValue).width;var lineHeight=this.GetFontHeight();var rtBG={Left:right+this.RightSpaceWidth,Top:y-lineHeight/2,Width:textWidth+4,Height:lineHeight};//rtBG.Right=rtBG.Left+rtBG.Width;
|
|
6037
|
-
rtBG.Bottom=rtBG.Top+rtBG.Height;rtBG.Width+=this.TextMargin.Left+this.TextMargin.Right;rtBG.Right=rtBG.Left+rtBG.Width;var xText=rtBG.Left+this.TextMargin.Left+2;if(this.ButtonPosition==1){this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width+this.ButtonBGWidth),ToFixedRect(rtBG.Height));}else{this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));}this.Canvas.fillStyle=this.ValueTextColor;this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";this.Canvas.fillText(strValue,xText,y);rtDraw.Left=rtBG.Left;rtDraw.Top=rtBG.Top;rtDraw.Bottom=rtBG.Bottom;rtDraw.Right=rtBG.Right;this.DrawButton(rtBG.Top,rtBG.Right,lineHeight,rtDraw);};this.DrawPriceText=function(text,ptStart,ptEnd,position){if(position!=1&&position!=0)return;var font=this.ShowPriceTextConfig.Font[position];this.Canvas.fillStyle=this.LineColor;this.Canvas.font=font;var textWidth=this.Canvas.measureText(text).width;var lineHeight=this.GetFontHeight();var rtBG=null;if(position==1){var rtBG={Left:ptStart.X,Top:ptStart.Y-lineHeight/2,Width:textWidth+4,Height:lineHeight};rtBG.Right=rtBG.Left+rtBG.Width;rtBG.Bottom=rtBG.Top+rtBG.Height;}else if(position==0){var rtBG={Right:ptEnd.X,Top:ptEnd.Y-lineHeight/2,Width:textWidth+4,Height:lineHeight};rtBG.Left=rtBG.Right-rtBG.Width;rtBG.Bottom=rtBG.Top+rtBG.Height;}this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width+this.ButtonBGWidth),ToFixedRect(rtBG.Height));this.Canvas.fillStyle=this.ValueTextColor;this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";this.Canvas.fillText(text,rtBG.Left+2,ptStart.Y);};this.CalculateButtonSize=function(){var pixelRatio=GetDevicePixelRatio();if(this.
|
|
6038
|
-
if (this.ColseButtonSize>0)
|
|
6039
|
-
{
|
|
6040
|
-
var xLine=rtButton.Right+this.ButtonSpace/2;
|
|
6041
|
-
xLine=ToFixedPoint(xLine);
|
|
6042
|
-
this.Canvas.strokeStyle=this.ButtonSplitLineColor;
|
|
6043
|
-
this.Canvas.beginPath();
|
|
6044
|
-
this.Canvas.moveTo(xLine,rtButton.Top);
|
|
6045
|
-
this.Canvas.lineTo(xLine,rtButton.Bottom);
|
|
6046
|
-
this.Canvas.stroke();
|
|
6047
|
-
}
|
|
6048
|
-
*/left=rtButton.Right+this.ButtonSpace;}if(this.Button.CloseIcon&&this.Button.CloseIcon.Text){var rtButton={Left:left,Top:drawTop,Width:this.ColseButtonSize,Height:drawHeight};rtButton.Right=rtButton.Left+rtButton.Width;rtButton.Bottom=rtButton.Top+rtButton.Height;var yCenter=rtButton.Top+rtButton.Height/2;var xCenter=rtButton.Left+rtButton.Width/2;var icon=this.Button.CloseIcon;this.Canvas.font=icon.Size*pixelRatio+'px '+icon.Family;this.Canvas.textAlign="center";this.Canvas.textBaseline="middle";this.Canvas.fillStyle=icon.Color;this.Canvas.fillText(this.Button.CloseIcon.Text,xCenter,yCenter);this.AryButton.push({Rect:rtButton,ID:icon.ID,TooltipText:icon.TooltipText});left=rtButton.Right;}rtDraw.Right=rtBG.Right;};this.PtInButtons=function(x,y){for(var i=0;i<this.AryButton.length;++i){var item=this.AryButton[i];if(!item.Rect)continue;var rect=item.Rect;this.Canvas.beginPath();this.Canvas.rect(rect.Left,rect.Top,rect.Width,rect.Height);if(this.Canvas.isPointInPath(x,y)){return{ID:item.ID,Rect:rect};}}return null;};}//趋势线
|
|
6051
|
+
rtBG.Bottom=rtBG.Top+rtBG.Height;rtBG.Width+=this.TextMargin.Left+this.TextMargin.Right;rtBG.Right=rtBG.Left+rtBG.Width;var xText=rtBG.Left+this.TextMargin.Left+2;if(this.ButtonPosition==1){this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width+this.ButtonBGWidth),ToFixedRect(rtBG.Height));}else{this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));}this.Canvas.fillStyle=this.ValueTextColor;this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";this.Canvas.fillText(strValue,xText,y);rtDraw.Left=rtBG.Left;rtDraw.Top=rtBG.Top;rtDraw.Bottom=rtBG.Bottom;rtDraw.Right=rtBG.Right;this.DrawButton(rtBG.Top,rtBG.Right,lineHeight,rtDraw);};this.DrawPriceText=function(text,ptStart,ptEnd,position){if(position!=1&&position!=0)return;var font=this.ShowPriceTextConfig.Font[position];this.Canvas.fillStyle=this.LineColor;this.Canvas.font=font;var textWidth=this.Canvas.measureText(text).width;var lineHeight=this.GetFontHeight();var rtBG=null;if(position==1){var rtBG={Left:ptStart.X,Top:ptStart.Y-lineHeight/2,Width:textWidth+4,Height:lineHeight};rtBG.Right=rtBG.Left+rtBG.Width;rtBG.Bottom=rtBG.Top+rtBG.Height;}else if(position==0){var rtBG={Right:ptEnd.X,Top:ptEnd.Y-lineHeight/2,Width:textWidth+4,Height:lineHeight};rtBG.Left=rtBG.Right-rtBG.Width;rtBG.Bottom=rtBG.Top+rtBG.Height;}this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width+this.ButtonBGWidth),ToFixedRect(rtBG.Height));this.Canvas.fillStyle=this.ValueTextColor;this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";this.Canvas.fillText(text,rtBG.Left+2,ptStart.Y);};this.CalculateButtonSize=function(){var pixelRatio=GetDevicePixelRatio();if(!IFrameSplitOperator.IsNonEmptyArray(this.AryShowButton))return;var totalWidth=0;for(var i=0;i<this.AryShowButton.length;++i){var item=this.AryShowButton[i];var icon=item.Data;var font=icon.Size*pixelRatio+'px '+icon.Family;this.Canvas.font=font;item.Width=this.Canvas.measureText(icon.Text).width+2;if(icon.Margin){var margin=icon.Margin;if(IFrameSplitOperator.IsNumber(margin.Left))item.Width+=margin.Left;if(IFrameSplitOperator.IsNumber(margin.Right))item.Width+=margin.Right;}totalWidth+=item.Width;}this.ButtonBGWidth=totalWidth;};this.DrawButton=function(drawTop,drawLeft,drawHeight,rtDraw){if(!IFrameSplitOperator.IsNonEmptyArray(this.AryShowButton))return;if(this.ButtonPosition==1)drawTop-=drawHeight;this.Canvas.fillStyle=this.LineColor;var left=drawLeft;var rtBG={Left:drawLeft,Top:drawTop,Width:this.ButtonBGWidth,Height:drawHeight};rtBG.Right=rtBG.Left+rtBG.Width;rtBG.Bottom=rtBG.Top+rtBG.Height;this.Canvas.fillStyle=this.ButtonBGColor;this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));var pixelRatio=GetDevicePixelRatio();for(var i=0;i<this.AryShowButton.length;++i){var item=this.AryShowButton[i];var icon=item.Data;var rtButton={Left:left,Top:drawTop,Width:item.Width,Height:drawHeight};rtButton.Right=rtButton.Left+rtButton.Width;rtButton.Bottom=rtButton.Top+rtButton.Height;var yCenter=rtButton.Top+rtButton.Height/2;var xCenter=rtButton.Left+rtButton.Width/2;var font=icon.Size*pixelRatio+'px '+icon.Family;this.Canvas.font=font;this.Canvas.textAlign="center";this.Canvas.textBaseline="middle";this.Canvas.fillStyle=icon.Color;this.Canvas.fillText(icon.Text,xCenter,yCenter);this.AryButton.push({Rect:rtButton,ID:icon.ID,TooltipText:icon.TooltipText});left=rtButton.Right;}};this.PtInButtons=function(x,y){for(var i=0;i<this.AryButton.length;++i){var item=this.AryButton[i];if(!item.Rect)continue;var rect=item.Rect;this.Canvas.beginPath();this.Canvas.rect(rect.Left,rect.Top,rect.Width,rect.Height);if(this.Canvas.isPointInPath(x,y)){return{ID:item.ID,Rect:rect};}}return null;};}//趋势线
|
|
6049
6052
|
function ChartDrawPictureTrendLine(){this.newMethod=IChartDrawPicture;//派生
|
|
6050
6053
|
this.newMethod();delete this.newMethod;this.ClassName='ChartDrawPictureTrendLine';this.IsPointIn=this.IsPointIn_XYValue_Line;this.GetXYCoordinate=this.GetXYCoordinate_default;this.OnlyMoveXIndex=true;this.IsSupportMagnet=true;this.Draw=function(){this.LinePoint=[];if(this.IsFrameMinSize())return;if(!this.IsShow)return;var drawPoint=this.CalculateDrawPoint({IsCheckX:false,IsCheckY:false});if(!drawPoint||drawPoint.length!=2)return;var ptStart=drawPoint[0];var ptEnd=drawPoint[1];var extendLine=this.CalculateExtendLinePoint(ptStart,ptEnd);this.ClipFrame();this.Canvas.strokeStyle=this.LineColor;this.SetLineWidth();this.Canvas.beginPath();this.Canvas.moveTo(extendLine.Start.X,extendLine.Start.Y);this.Canvas.lineTo(extendLine.End.X,extendLine.End.Y);this.Canvas.stroke();this.RestoreLineWidth();var line={Start:ptStart,End:ptEnd};this.LinePoint.push(line);this.DrawPoint(drawPoint);//画点
|
|
6051
6054
|
this.Canvas.restore();};}//画图工具-矩形
|
|
@@ -11602,7 +11605,7 @@ frame.ChartPaint.push(chartText);};//创建文本
|
|
|
11602
11605
|
this.CreateText=function(hqChart,windowIndex,varItem,id,drawName){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartSingleText();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.ReloadResource();if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);var titleIndex=windowIndex+1;if(varItem.Draw.Position)chart.Position=varItem.Draw.Position;//赋值坐标
|
|
11603
11606
|
if(varItem.Draw.DrawData)chart.Data.Data=varItem.Draw.DrawData;chart.Text=varItem.Draw.Text;if(varItem.Draw.Direction>0)chart.Direction=varItem.Draw.Direction;if(varItem.Draw.YOffset>0)chart.YOffset=varItem.Draw.YOffset;if(varItem.Draw.TextAlign)chart.TextAlign=varItem.Draw.TextAlign;//hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(bar.Data,varItem.Name,bar.Color);
|
|
11604
11607
|
frame.ChartPaint.push(chart);};//COLORSTICK
|
|
11605
|
-
this.CreateMACD=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMACD();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;var titleIndex=windowIndex+1;chart.Data.Data=varItem.Data;var titlePaint=hqChart.TitlePaint[titleIndex];var clrTitle=this.GetDefaultColor(id);if(varItem.Color)clrTitle=this.GetColor(varItem.Color);if(varItem.UpColor)chart.UpColor=varItem.UpColor;if(varItem.DownColor)chart.DownColor=varItem.DownColor;this.ReloadChartResource(hqChart,windowIndex,chart);titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=new DynamicTitleData(chart.Data,varItem.Name,clrTitle);frame.ChartPaint.push(chart);};this.CreatePointDot=function(hqChart,windowIndex,varItem,id,hisData){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartPointDot();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.Radius)chart.Radius=varItem.Radius;if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.Radius=width;}if(IFrameSplitOperator.IsBool(varItem.UpDownDot)){chart.EnableUpDownColor=varItem.UpDownDot;chart.HistoryData=hisData;}var titleIndex=windowIndex+1;chart.Data.Data=varItem.Data;var titlePaint=hqChart.TitlePaint[titleIndex];titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateStick=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartStick();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}var titleIndex=windowIndex+1;chart.Data.Data=varItem.Data;this.ReloadChartResource(hqChart,windowIndex,chart);var titlePaint=hqChart.TitlePaint[titleIndex];titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);frame.ChartPaint.push(chart);};this.CreateLineStick=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartLineStick();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}var titleIndex=windowIndex+1;chart.Data.Data=varItem.Data;var titlePaint=hqChart.TitlePaint[titleIndex];titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);frame.ChartPaint.push(chart);};this.CreateStraightLine=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartLine();chart.DrawType=1;chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}var titleIndex=windowIndex+1;chart.Data.Data=varItem.Draw.DrawData;//hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(line.Data,varItem.Name,line.Color);
|
|
11608
|
+
this.CreateMACD=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMACD();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;var titleIndex=windowIndex+1;chart.Data.Data=varItem.Data;var titlePaint=hqChart.TitlePaint[titleIndex];var clrTitle=this.GetDefaultColor(id);if(varItem.Color)clrTitle=this.GetColor(varItem.Color);if(varItem.UpColor)chart.UpColor=varItem.UpColor;if(varItem.DownColor)chart.DownColor=varItem.DownColor;this.ReloadChartResource(hqChart,windowIndex,chart);titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=new DynamicTitleData(chart.Data,varItem.Name,clrTitle);this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreatePointDot=function(hqChart,windowIndex,varItem,id,hisData){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartPointDot();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.Radius)chart.Radius=varItem.Radius;if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.Radius=width;}if(IFrameSplitOperator.IsBool(varItem.UpDownDot)){chart.EnableUpDownColor=varItem.UpDownDot;chart.HistoryData=hisData;}var titleIndex=windowIndex+1;chart.Data.Data=varItem.Data;var titlePaint=hqChart.TitlePaint[titleIndex];titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateStick=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartStick();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}var titleIndex=windowIndex+1;chart.Data.Data=varItem.Data;this.ReloadChartResource(hqChart,windowIndex,chart);var titlePaint=hqChart.TitlePaint[titleIndex];titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);frame.ChartPaint.push(chart);};this.CreateLineStick=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartLineStick();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}var titleIndex=windowIndex+1;chart.Data.Data=varItem.Data;var titlePaint=hqChart.TitlePaint[titleIndex];titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);frame.ChartPaint.push(chart);};this.CreateStraightLine=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartLine();chart.DrawType=1;chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}var titleIndex=windowIndex+1;chart.Data.Data=varItem.Draw.DrawData;//hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(line.Data,varItem.Name,line.Color);
|
|
11606
11609
|
frame.ChartPaint.push(chart);};this.CreateVolStick=function(hqChart,windowIndex,varItem,id,hisData){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartVolStick();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.KLineDrawType=hqChart.KLineDrawType;//设置K线显示类型
|
|
11607
11610
|
if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.UpColor)chart.UpColor=varItem.UpColor;if(varItem.DownColor)chart.DownColor=varItem.DownColor;if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(IFrameSplitOperator.IsPlusNumber(width))chart.BarWidth=width;}var titleIndex=windowIndex+1;chart.Data.Data=varItem.Data;chart.HistoryData=hisData;this.ReloadChartResource(hqChart,windowIndex,chart);var titlePaint=hqChart.TitlePaint[titleIndex];var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;this.SetTitleData(titleData,chart);this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateBand=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartBand();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.FirstColor=varItem.Draw.Color[0];chart.SecondColor=varItem.Draw.Color[1];chart.Data.Data=varItem.Draw.DrawData;if(IFrameSplitOperator.IsBool(varItem.IsFirstDraw))chart.IsDrawFirst=varItem.IsFirstDraw;frame.ChartPaint.push(chart);};//创建K线图
|
|
11608
11611
|
this.CreateKLine=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartKLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data.Data=varItem.Draw.DrawData;chart.IsShowMaxMinPrice=false;chart.IsShowKTooltip=false;if(varItem.Color)//如果设置了颜色,使用外面设置的颜色
|
|
@@ -11612,7 +11615,7 @@ var titleIndex=windowIndex+1;chart.Data.Data=varItem.Draw.DrawData.Value;chart.T
|
|
|
11612
11615
|
this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateTextLine=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartTextLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;if(varItem.Draw&&varItem.Draw.DrawData){var drawData=varItem.Draw.DrawData;chart.Text=drawData.Text;chart.Line=drawData.Line;chart.Price=drawData.Price;}frame.ChartPaint.push(chart);};this.CreateStackedBar=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartStackedBar();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.BarColor))chart.BarColor=varItem.Draw.BarColor;if(IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.BarName))chart.BarName=varItem.Draw.BarName;if(IFrameSplitOperator.IsNumber(varItem.Draw.LineWidth))chart.LineWidth=varItem.Draw.LineWidth;if(IFrameSplitOperator.IsNumber(varItem.Draw.BarType))chart.BarType=varItem.Draw.BarType;chart.Data.Data=varItem.Draw.DrawData;var titleIndex=windowIndex+1;var titlePaint=hqChart.TitlePaint[titleIndex];var titleData=new DynamicTitleData(chart.Data,chart.BarName,chart.BarColor);titleData.DataType="ChartStackedBar";titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;frame.ChartPaint.push(chart);};//创建图标
|
|
11613
11616
|
this.CreateIcon=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartSingleText();chart.Canvas=hqChart.Canvas;chart.TextAlign='center';chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.DrawVAlign>=0){if(varItem.DrawVAlign==0)chart.Direction=1;else if(varItem.DrawVAlign==1)chart.Direction=0;else if(varItem.DrawVAlign==2)chart.Direction=2;}if(varItem.DrawAlign>=0){if(varItem.DrawAlign==0)chart.TextAlign="left";else if(varItem.DrawAlign==1)chart.TextAlign="center";else if(varItem.DrawAlign==2)chart.TextAlign='right';}if(IFrameSplitOperator.IsNumber(varItem.XOffset))chart.ShowOffset.X=varItem.XOffset;if(IFrameSplitOperator.IsNumber(varItem.YOffset))chart.ShowOffset.Y=varItem.YOffset;chart.Data.Data=varItem.Draw.DrawData;var icon=varItem.Draw.Icon;if(icon.IconFont==true){chart.IconFont={Family:icon.Family,Text:icon.Symbol,Color:icon.Color};}else{chart.Text=icon.Symbol;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else if(icon.Color)chart.Color=icon.Color;else chart.Color='rgb(0,0,0)';}//var titleIndex=windowIndex+1;
|
|
11614
11617
|
//hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(bar.Data,varItem.Name,bar.Color);
|
|
11615
|
-
frame.ChartPaint.push(chart);};this.CreateTipIcon=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartDrawSVG();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(hqChart.ChartPaint[0].IsMinuteFrame())chart.Data=hqChart.SourceData;else chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11618
|
+
this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateTipIcon=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartDrawSVG();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(hqChart.ChartPaint[0].IsMinuteFrame())chart.Data=hqChart.SourceData;else chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11616
11619
|
chart.Family=varItem.Draw.Icon.Family;chart.TextFont=g_JSChartResource.TIPICON.TextFont;var svgSize=g_JSChartResource.TIPICON.Size;var svgColor=g_JSChartResource.TIPICON.Color;var svgYOffset=0;var svgVAlign=2;//上下对齐方式
|
|
11617
11620
|
if(IFrameSplitOperator.IsNumber(varItem.YOffset))svgYOffset=varItem.YOffset;if(varItem.Color)svgColor=this.GetColor(varItem.Color);if(varItem.DrawFontSize>0)svgSize=varItem.DrawFontSize;if(varItem.DrawVAlign>=0)svgVAlign=varItem.DrawVAlign;if(varItem.Draw&&IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.DrawData)&&varItem.Draw.Icon){var drawData=varItem.Draw.DrawData;var aryData=[];var isArrayTip=Array.isArray(varItem.Draw.Text);var singleTip=null;if(!isArrayTip&&varItem.Draw.Text)singleTip={Text:varItem.Draw.Text};for(var j=0;j<drawData.length;++j){var item=drawData[j];if(!IFrameSplitOperator.IsNumber(item))continue;var svgItem={Index:j,Value:item,SVG:{Symbol:varItem.Draw.Icon.Symbol,Size:svgSize,Color:svgColor,YOffset:svgYOffset,VAlign:svgVAlign}};if(isArrayTip){var text=varItem.Draw.Text[j];if(text)svgItem.Tooltip={Text:text};}else{svgItem.Tooltip=singleTip;}aryData.push(svgItem);}chart.Texts=aryData;}frame.ChartPaint.push(chart);};//创建通道
|
|
11618
11621
|
this.CreateChannel=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartChannel();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Draw.AreaColor)chart.AreaColor=varItem.Draw.AreaColor;else if(varItem.Color)chart.AreaColor=this.GetColor(varItem.Color);else chart.AreaColor=this.GetDefaultColor(id);if(varItem.Draw.Border.Color)chart.LineColor=varItem.Draw.Border.Color;else chart.LineColor=null;if(varItem.Draw.Border.Dotted)chart.LineDotted=varItem.Draw.Border.Dotted;if(varItem.Draw.Border.Width>0)chart.LineWidth=varItem.Draw.Border.Width;//let titleIndex=windowIndex+1;
|
|
@@ -13181,7 +13184,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
|
|
|
13181
13184
|
this.ExecuteScript(item,data);}this.Status=0;}};this.OnExecuteFinish=function(data,indexInfo,jsExectute,jobInfo){var message={Data:data,IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.FINISH_EXECUTE_SCRIPT,JobInfo:jobInfo};postMessage(message);};this.OnExecuteError=function(error,indexInfo,jobData){var message={IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.ERROR_EXECUTE_SCRIPT,Error:error};postMessage(message);};}/********************************************************************************
|
|
13182
13185
|
* 版本信息输出
|
|
13183
13186
|
*
|
|
13184
|
-
*/var HQCHART_VERSION="1.1.
|
|
13187
|
+
*/var HQCHART_VERSION="1.1.13209";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
|
|
13185
13188
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
13186
13189
|
// BaseIndex:BaseIndex,
|
|
13187
13190
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
|
@@ -22360,6 +22360,7 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
22360
22360
|
|
|
22361
22361
|
titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=new DynamicTitleData(chart.Data,varItem.Name,clrTitle);
|
|
22362
22362
|
|
|
22363
|
+
this.SetChartIndexName(chart);
|
|
22363
22364
|
frame.ChartPaint.push(chart);
|
|
22364
22365
|
}
|
|
22365
22366
|
|
|
@@ -22714,6 +22715,7 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
22714
22715
|
|
|
22715
22716
|
//var titleIndex=windowIndex+1;
|
|
22716
22717
|
//hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(bar.Data,varItem.Name,bar.Color);
|
|
22718
|
+
this.SetChartIndexName(chart);
|
|
22717
22719
|
frame.ChartPaint.push(chart);
|
|
22718
22720
|
}
|
|
22719
22721
|
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -2661,7 +2661,12 @@ var JSCHART_MENU_ID=
|
|
|
2661
2661
|
CMD_SHOW_BEFORE_DATA_ID:24, //显示|隐藏集合竞价
|
|
2662
2662
|
|
|
2663
2663
|
CMD_SELECTED_ZOOM_ID:25, //选中放大
|
|
2664
|
-
CMD_SELECTED_SUMMARY_ID:26,
|
|
2664
|
+
CMD_SELECTED_SUMMARY_ID:26, //区间统计
|
|
2665
|
+
|
|
2666
|
+
CMD_SHOW_INDEX_ID:27, //显示隐藏指标
|
|
2667
|
+
CMD_SHOW_OVERLAY_INDEX_ID:28, //显示隐藏叠加指标
|
|
2668
|
+
CMD_DELETE_OVERLAY_INDEX_ID:29, //删除叠加指标
|
|
2669
|
+
CMD_SHOW_OVERLAY_Y_AXIS_ID:30, //显示隐藏Y轴叠加指标
|
|
2665
2670
|
}
|
|
2666
2671
|
|
|
2667
2672
|
|
|
@@ -8006,19 +8011,27 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
8006
8011
|
{
|
|
8007
8012
|
this.ChartDrawPicture=[];
|
|
8008
8013
|
if (this.ChartDrawStorage) this.ChartDrawStorage.Clear();
|
|
8009
|
-
|
|
8014
|
+
this.SelectChartDrawPicture=null;
|
|
8015
|
+
|
|
8010
8016
|
if (option && option.Draw==false) bDraw=false;
|
|
8011
8017
|
if (bDraw) this.Draw();
|
|
8012
8018
|
}
|
|
8013
8019
|
else
|
|
8014
8020
|
{
|
|
8015
|
-
for(var i
|
|
8021
|
+
for(var i=0; i<this.ChartDrawPicture.length; ++i)
|
|
8016
8022
|
{
|
|
8017
|
-
|
|
8023
|
+
var item=this.ChartDrawPicture[i];
|
|
8024
|
+
if (item.Guid==drawPicture.Guid || item==drawPicture)
|
|
8018
8025
|
{
|
|
8019
8026
|
if (this.ChartDrawStorage) this.ChartDrawStorage.DeleteDrawData(drawPicture);
|
|
8020
8027
|
this.ChartDrawPicture.splice(i,1);
|
|
8021
8028
|
|
|
8029
|
+
if (this.SelectChartDrawPicture) //去掉选中
|
|
8030
|
+
{
|
|
8031
|
+
if (this.SelectChartDrawPicture.Guid==drawPicture.Guid || this.SelectChartDrawPicture==drawPicture)
|
|
8032
|
+
this.SelectChartDrawPicture=null;
|
|
8033
|
+
}
|
|
8034
|
+
|
|
8022
8035
|
if (option && option.Draw==false) bDraw=false;
|
|
8023
8036
|
if (bDraw) this.Draw();
|
|
8024
8037
|
}
|
|
@@ -8220,6 +8233,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
8220
8233
|
if (IFrameSplitOperator.IsNumber(item.OverlayIndexType.Position)) frame.OverlayIndexType.Position=item.OverlayIndexType.Position;
|
|
8221
8234
|
if (IFrameSplitOperator.IsNumber(item.OverlayIndexType.LineSpace)) frame.OverlayIndexType.LineSpace=item.OverlayIndexType.LineSpace;
|
|
8222
8235
|
}
|
|
8236
|
+
|
|
8237
|
+
if (IFrameSplitOperator.IsNonEmptyArray(item.CustomToolbar)) //自定义工具按钮
|
|
8238
|
+
{
|
|
8239
|
+
frame.CustomToolbar=item.CustomToolbar.slice();
|
|
8240
|
+
}
|
|
8223
8241
|
}
|
|
8224
8242
|
|
|
8225
8243
|
if (IFrameSplitOperator.IsNumber(option.SplitCount)) subFrame.Frame.YSplitOperator.SplitCount=option.SplitCount;
|
|
@@ -9256,9 +9274,92 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9256
9274
|
var dlg=new KLineSelectRectDialog(this.DivElement);
|
|
9257
9275
|
dlg.DoModal(srcParam);
|
|
9258
9276
|
break;
|
|
9277
|
+
|
|
9278
|
+
case JSCHART_MENU_ID.CMD_SHOW_INDEX_ID: //显示隐藏指标 [0]=windowIndex [1]=0=自动 1=隐藏 2=显示
|
|
9279
|
+
if (param==null || !IFrameSplitOperator.IsNumber(aryArgs[1])) return false;
|
|
9280
|
+
var windowIndex=param, showType=aryArgs[1];
|
|
9281
|
+
var script=this.WindowIndex[windowIndex];
|
|
9282
|
+
if (!script) return false;
|
|
9283
|
+
|
|
9284
|
+
if (showType==1) script.IsShow=false;
|
|
9285
|
+
else if (showType==2) script.IsShow=true;
|
|
9286
|
+
else script.IsShow=!script.IsShow;
|
|
9287
|
+
|
|
9288
|
+
this.UpdateWindowIndex(windowIndex);
|
|
9289
|
+
break;
|
|
9290
|
+
|
|
9291
|
+
case JSCHART_MENU_ID.CMD_SHOW_OVERLAY_INDEX_ID: //显示隐藏叠加指标 [0]=indexGuid [1]=0=自动 1=隐藏 2=显示
|
|
9292
|
+
if (!srcParam || !IFrameSplitOperator.IsNumber(aryArgs[1])) return false;
|
|
9293
|
+
var indexGuid=srcParam,showType=aryArgs[1];
|
|
9294
|
+
|
|
9295
|
+
var overlay=this.GetOverlayIndexByIdentify(indexGuid);
|
|
9296
|
+
if (!overlay || !overlay.OverlayItem || !overlay.OverlayItem.Script) return false;
|
|
9297
|
+
|
|
9298
|
+
var script=overlay.OverlayItem.Script;
|
|
9299
|
+
|
|
9300
|
+
if (showType==1) script.IsShow=false;
|
|
9301
|
+
else if (showType==2) script.IsShow==true;
|
|
9302
|
+
else script.IsShow=!script.IsShow;
|
|
9303
|
+
|
|
9304
|
+
this.UpdateOverlayIndex(indexGuid);
|
|
9305
|
+
break;
|
|
9306
|
+
case JSCHART_MENU_ID.CMD_DELETE_OVERLAY_INDEX_ID:
|
|
9307
|
+
if (srcParam && this.DeleteOverlayWindowsIndex)
|
|
9308
|
+
this.DeleteOverlayWindowsIndex(srcParam);
|
|
9309
|
+
break;
|
|
9310
|
+
case JSCHART_MENU_ID.CMD_SHOW_OVERLAY_Y_AXIS_ID:
|
|
9311
|
+
if (!srcParam || !IFrameSplitOperator.IsNumber(aryArgs[1])) return false;
|
|
9312
|
+
if (!this.GetOverlayIndexByIdentify) return false;
|
|
9313
|
+
|
|
9314
|
+
var indexGuid=srcParam,showType=aryArgs[1];
|
|
9315
|
+
var finder=this.GetOverlayIndexByIdentify(indexGuid);
|
|
9316
|
+
if (!finder || !finder.OverlayItem) return false;
|
|
9317
|
+
|
|
9318
|
+
var frame=finder.OverlayItem.Frame;
|
|
9319
|
+
if (showType==1) frame.IsShow=false;
|
|
9320
|
+
else if (showType==2) frame.IsShow==true;
|
|
9321
|
+
else frame.IsShow=!frame.IsShow;
|
|
9322
|
+
|
|
9323
|
+
this.UpdataDataoffset(); //更新数据偏移
|
|
9324
|
+
this.UpdateFrameMaxMin(); //调整坐标最大 最小值
|
|
9325
|
+
this.Draw();
|
|
9326
|
+
|
|
9327
|
+
break;
|
|
9259
9328
|
}
|
|
9260
9329
|
}
|
|
9261
9330
|
|
|
9331
|
+
this.GetShowIndexMenuData=function(windowIndex, showType)
|
|
9332
|
+
{
|
|
9333
|
+
var script=this.WindowIndex[windowIndex];
|
|
9334
|
+
if (!script) return null;
|
|
9335
|
+
|
|
9336
|
+
var data= { Name:script.IsShow?"隐藏指标":"显示指标", Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_INDEX_ID, Args:[windowIndex, 0] } };
|
|
9337
|
+
|
|
9338
|
+
return data;
|
|
9339
|
+
}
|
|
9340
|
+
|
|
9341
|
+
this.GetShowOverlayIndexMenuData=function(indexGuid, showType)
|
|
9342
|
+
{
|
|
9343
|
+
var overlay=this.GetOverlayIndexByIdentify(indexGuid);
|
|
9344
|
+
if (!overlay || !overlay.OverlayItem || !overlay.OverlayItem.Script) return null;
|
|
9345
|
+
|
|
9346
|
+
var script=overlay.OverlayItem.Script;
|
|
9347
|
+
var data= { Name:script.IsShow?"隐藏指标":"显示指标", Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_OVERLAY_INDEX_ID, Args:[indexGuid, 0] } };
|
|
9348
|
+
|
|
9349
|
+
return data;
|
|
9350
|
+
}
|
|
9351
|
+
|
|
9352
|
+
this.GetShowOverlayIndexYAxisMenuData=function(indexGuid, showType)
|
|
9353
|
+
{
|
|
9354
|
+
var overlay=this.GetOverlayIndexByIdentify(indexGuid);
|
|
9355
|
+
if (!overlay || !overlay.OverlayItem || !overlay.OverlayItem.Script) return null;
|
|
9356
|
+
|
|
9357
|
+
var frame=overlay.OverlayItem.Frame;
|
|
9358
|
+
var data= { Name:frame.IsShow?"隐藏Y轴":"显示Y轴", Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_OVERLAY_Y_AXIS_ID, Args:[indexGuid, 0] } };
|
|
9359
|
+
|
|
9360
|
+
return data;
|
|
9361
|
+
}
|
|
9362
|
+
|
|
9262
9363
|
//点击右键菜单
|
|
9263
9364
|
this.OnClickRightMenu=function(data)
|
|
9264
9365
|
{
|
|
@@ -53763,7 +53864,7 @@ function DynamicChartTitlePainting()
|
|
|
53763
53864
|
var rtButton={ Left:left, YCenter:yCenter };
|
|
53764
53865
|
this.DrawButton(item, rtButton, moveonPoint, mouseStatus);
|
|
53765
53866
|
|
|
53766
|
-
this.Buttons.push({ ID:item.ID, Rect:rtButton, FrameID:this.Frame.Identify, Type:1, OverlayID:toolbarInfo.ID, Title:overlayItem.Title });
|
|
53867
|
+
this.Buttons.push({ ID:item.ID, Rect:rtButton, FrameID:this.Frame.Identify, Type:1, OverlayID:toolbarInfo.ID, Title:overlayItem.Title, Data:item.Data });
|
|
53767
53868
|
|
|
53768
53869
|
left=rtButton.Right;
|
|
53769
53870
|
|
|
@@ -55993,11 +56094,14 @@ function ChartDrawHLine()
|
|
|
55993
56094
|
|
|
55994
56095
|
this.Button=
|
|
55995
56096
|
{
|
|
55996
|
-
CloseIcon: { Text:'\ue62b', Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE, TooltipText:null },
|
|
55997
|
-
SettingIcon: { Text:'\ue623',Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING, TooltipText:null }
|
|
56097
|
+
CloseIcon: { Text:'\ue62b', Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE, TooltipText:null, Margin:{ Left:2, Right:2 } },
|
|
56098
|
+
SettingIcon: { Text:'\ue623',Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING, TooltipText:null, Margin:{ Left:2, Right:2 } }
|
|
55998
56099
|
//修改ID, Text , TooltipText 可以外部定制按钮
|
|
55999
56100
|
}
|
|
56000
56101
|
|
|
56102
|
+
this.CustomButton=[]; //自定义的按钮 { Text:'\ue62b', Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_BUTTON_1, TooltipText:null }
|
|
56103
|
+
|
|
56104
|
+
this.AryShowButton=[]; //需要显示的按钮 { Data:, Width }
|
|
56001
56105
|
this.AryButton=[];
|
|
56002
56106
|
this.ExtendData; //扩展数据
|
|
56003
56107
|
this.ShowPriceTextConfig=
|
|
@@ -56103,8 +56207,32 @@ function ChartDrawHLine()
|
|
|
56103
56207
|
this.Draw();
|
|
56104
56208
|
}
|
|
56105
56209
|
|
|
56210
|
+
//获取需要显示的按钮 系统按钮+自定义按钮
|
|
56211
|
+
this.GetShowButton=function()
|
|
56212
|
+
{
|
|
56213
|
+
var aryButton=[];
|
|
56214
|
+
|
|
56215
|
+
var item=this.Button.SettingIcon;
|
|
56216
|
+
if (item && item.Text) aryButton.push({ Data:item, Width:null });
|
|
56217
|
+
|
|
56218
|
+
item=this.Button.CloseIcon;
|
|
56219
|
+
if (item && item.Text) aryButton.push({ Data:item, Width:null });
|
|
56220
|
+
|
|
56221
|
+
if (IFrameSplitOperator.IsNonEmptyArray(this.CustomButton))
|
|
56222
|
+
{
|
|
56223
|
+
for(var i=0;i<this.CustomButton.length;++i)
|
|
56224
|
+
{
|
|
56225
|
+
item=this.CustomButton[i];
|
|
56226
|
+
if (item && item.Text) aryButton.push({ Data:item, Width:null });
|
|
56227
|
+
}
|
|
56228
|
+
}
|
|
56229
|
+
|
|
56230
|
+
return aryButton;
|
|
56231
|
+
}
|
|
56232
|
+
|
|
56106
56233
|
this.Draw=function(moveonPoint, mouseStatus)
|
|
56107
56234
|
{
|
|
56235
|
+
this.AryShowButton=[];
|
|
56108
56236
|
this.LinePoint=[];
|
|
56109
56237
|
this.AryButton=[];
|
|
56110
56238
|
this.ColseButtonSize=0;
|
|
@@ -56180,6 +56308,8 @@ function ChartDrawHLine()
|
|
|
56180
56308
|
var labInfo;
|
|
56181
56309
|
if (this.GetLabelCallback) labInfo=this.GetLabelCallback(this);
|
|
56182
56310
|
|
|
56311
|
+
this.AryShowButton=this.GetShowButton(); //获取按钮
|
|
56312
|
+
|
|
56183
56313
|
//描述信息
|
|
56184
56314
|
if (labInfo)
|
|
56185
56315
|
this.DrawLab(labInfo, drawPoint[0].Y);
|
|
@@ -56483,42 +56613,33 @@ function ChartDrawHLine()
|
|
|
56483
56613
|
{
|
|
56484
56614
|
var pixelRatio=GetDevicePixelRatio();
|
|
56485
56615
|
|
|
56486
|
-
if (this.
|
|
56487
|
-
{
|
|
56488
|
-
var icon=this.Button.SettingIcon;
|
|
56489
|
-
var font=`${icon.Size*pixelRatio}px ${icon.Family}`;
|
|
56490
|
-
this.Canvas.font=font;
|
|
56491
|
-
var width=this.Canvas.measureText(icon.Text).width;
|
|
56492
|
-
this.SettingButtonSize=width;
|
|
56493
|
-
}
|
|
56616
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.AryShowButton)) return;
|
|
56494
56617
|
|
|
56495
|
-
|
|
56618
|
+
var totalWidth=0;
|
|
56619
|
+
for(var i=0;i<this.AryShowButton.length;++i)
|
|
56496
56620
|
{
|
|
56497
|
-
var
|
|
56621
|
+
var item=this.AryShowButton[i];
|
|
56622
|
+
var icon=item.Data;
|
|
56498
56623
|
var font=`${icon.Size*pixelRatio}px ${icon.Family}`;
|
|
56499
56624
|
this.Canvas.font=font;
|
|
56500
|
-
|
|
56501
|
-
this.ColseButtonSize=width;
|
|
56502
|
-
}
|
|
56625
|
+
item.Width=this.Canvas.measureText(icon.Text).width+2;
|
|
56503
56626
|
|
|
56504
|
-
|
|
56627
|
+
if (icon.Margin)
|
|
56628
|
+
{
|
|
56629
|
+
var margin=icon.Margin;
|
|
56630
|
+
if (IFrameSplitOperator.IsNumber(margin.Left)) item.Width+=margin.Left;
|
|
56631
|
+
if (IFrameSplitOperator.IsNumber(margin.Right)) item.Width+=margin.Right;
|
|
56632
|
+
}
|
|
56505
56633
|
|
|
56506
|
-
|
|
56507
|
-
if (this.SettingButtonSize>0) buttonWidth+=this.SettingButtonSize;
|
|
56508
|
-
if (this.ColseButtonSize>0)
|
|
56509
|
-
{
|
|
56510
|
-
if (buttonWidth>0) buttonWidth+=this.ButtonSpace;
|
|
56511
|
-
buttonWidth+=this.ColseButtonSize;
|
|
56634
|
+
totalWidth+=item.Width;
|
|
56512
56635
|
}
|
|
56513
56636
|
|
|
56514
|
-
|
|
56515
|
-
|
|
56516
|
-
this.ButtonBGWidth=buttonWidth;
|
|
56637
|
+
this.ButtonBGWidth=totalWidth;
|
|
56517
56638
|
}
|
|
56518
56639
|
|
|
56519
56640
|
this.DrawButton=function(drawTop, drawLeft, drawHeight, rtDraw)
|
|
56520
56641
|
{
|
|
56521
|
-
if (
|
|
56642
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.AryShowButton)) return;
|
|
56522
56643
|
|
|
56523
56644
|
if (this.ButtonPosition==1) drawTop-=drawHeight;
|
|
56524
56645
|
|
|
@@ -56530,61 +56651,29 @@ function ChartDrawHLine()
|
|
|
56530
56651
|
this.Canvas.fillStyle=this.ButtonBGColor;
|
|
56531
56652
|
this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top), ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));
|
|
56532
56653
|
|
|
56533
|
-
left+=1;
|
|
56534
56654
|
var pixelRatio=GetDevicePixelRatio();
|
|
56535
|
-
|
|
56655
|
+
for(var i=0;i<this.AryShowButton.length;++i)
|
|
56536
56656
|
{
|
|
56537
|
-
var
|
|
56538
|
-
|
|
56539
|
-
rtButton.Bottom=rtButton.Top+rtButton.Height;
|
|
56540
|
-
var yCenter=rtButton.Top+rtButton.Height/2;
|
|
56541
|
-
var xCenter=rtButton.Left+rtButton.Width/2;
|
|
56542
|
-
|
|
56543
|
-
var icon=this.Button.SettingIcon;
|
|
56544
|
-
this.Canvas.font=`${icon.Size*pixelRatio}px ${icon.Family}`;
|
|
56545
|
-
this.Canvas.textAlign="center";
|
|
56546
|
-
this.Canvas.textBaseline="middle";
|
|
56547
|
-
this.Canvas.fillStyle=icon.Color;
|
|
56548
|
-
this.Canvas.fillText(this.Button.SettingIcon.Text,xCenter,yCenter);
|
|
56549
|
-
|
|
56550
|
-
this.AryButton.push({Rect:rtButton, ID:icon.ID, TooltipText:icon.TooltipText});
|
|
56551
|
-
|
|
56552
|
-
/*
|
|
56553
|
-
if (this.ColseButtonSize>0)
|
|
56554
|
-
{
|
|
56555
|
-
var xLine=rtButton.Right+this.ButtonSpace/2;
|
|
56556
|
-
xLine=ToFixedPoint(xLine);
|
|
56557
|
-
this.Canvas.strokeStyle=this.ButtonSplitLineColor;
|
|
56558
|
-
this.Canvas.beginPath();
|
|
56559
|
-
this.Canvas.moveTo(xLine,rtButton.Top);
|
|
56560
|
-
this.Canvas.lineTo(xLine,rtButton.Bottom);
|
|
56561
|
-
this.Canvas.stroke();
|
|
56562
|
-
}
|
|
56563
|
-
*/
|
|
56657
|
+
var item=this.AryShowButton[i];
|
|
56658
|
+
var icon=item.Data;
|
|
56564
56659
|
|
|
56565
|
-
left
|
|
56566
|
-
}
|
|
56567
|
-
|
|
56568
|
-
if (this.Button.CloseIcon && this.Button.CloseIcon.Text)
|
|
56569
|
-
{
|
|
56570
|
-
var rtButton={Left:left, Top:drawTop, Width:this.ColseButtonSize, Height:drawHeight };
|
|
56660
|
+
var rtButton={Left:left, Top:drawTop, Width:item.Width, Height:drawHeight };
|
|
56571
56661
|
rtButton.Right=rtButton.Left+rtButton.Width;
|
|
56572
56662
|
rtButton.Bottom=rtButton.Top+rtButton.Height;
|
|
56573
56663
|
var yCenter=rtButton.Top+rtButton.Height/2;
|
|
56574
56664
|
var xCenter=rtButton.Left+rtButton.Width/2;
|
|
56575
|
-
|
|
56576
|
-
|
|
56665
|
+
|
|
56666
|
+
var font=`${icon.Size*pixelRatio}px ${icon.Family}`;
|
|
56667
|
+
this.Canvas.font=font;
|
|
56577
56668
|
this.Canvas.textAlign="center";
|
|
56578
56669
|
this.Canvas.textBaseline="middle";
|
|
56579
56670
|
this.Canvas.fillStyle=icon.Color;
|
|
56580
|
-
this.Canvas.fillText(
|
|
56671
|
+
this.Canvas.fillText(icon.Text,xCenter,yCenter);
|
|
56581
56672
|
|
|
56582
56673
|
this.AryButton.push({Rect:rtButton,ID:icon.ID, TooltipText:icon.TooltipText });
|
|
56583
56674
|
|
|
56584
56675
|
left=rtButton.Right;
|
|
56585
56676
|
}
|
|
56586
|
-
|
|
56587
|
-
rtDraw.Right=rtBG.Right;
|
|
56588
56677
|
}
|
|
56589
56678
|
|
|
56590
56679
|
this.PtInButtons=function(x,y)
|