public override ChartIcon MakeCopy() { var cpy = new ChartIconDropDown { Owner = Owner, listControl = new DropDownList(listControl), key = key, Position = Position, Size = Size }; return cpy; }
public override ChartIcon MakeCopy() { var cpy = new ChartIconDropDown { Owner = Owner, listControl = new DropDownList(listControl), key = key, Position = Position, Size = Size }; return(cpy); }
private void SetupFavIndicatorsList(ChartIconDropDown btn) { var descriptions = new List<object>(); var favIndis = getFavoriteIndicators(); foreach (var t in PluginManager.Instance.typeIndicators) { if (!favIndis.Contains(t.Name)) continue; var attrName = (DisplayNameAttribute)Attribute.GetCustomAttribute(t, typeof(DisplayNameAttribute)); if (attrName == null) continue; descriptions.Add(new IndicatorDescription(attrName.DisplayName, "", false) { indicatorType = t }); } btn.listControl.Values = descriptions; }
private void SetupFastTradeButton(ChartIconDropDown buySell) { var side = buySell.key == ChartIcon.ChartIcon.chartButtonFastBuy; buySell.Owner = chart; buySell.listControl.Formatter = val => { return val is string ? (string) val : ((int) val).ToStringUniformMoneyFormat(); }; SetFastBuySellOptions(buySell, side); buySell.listControl.cellClicked += (obj, text) => { var strVolume = (string) obj; var parts = strVolume.Split(new [] { " - "}, StringSplitOptions.RemoveEmptyEntries); if (parts.Length != 3) {// показать диалог настройки объемов var volumesString = string.Join(", ", getDefaultFastDealVolumes()); DialogResult rst; var str = Dialogs.ShowInputDialog("Укажите объемы входа", "объемы", true, volumesString, out rst); if (rst != DialogResult.OK) return; var volumes = str.ToIntArrayUniform(); if (volumes.Length == 0) return; // сохранить объемы updateFastVolumes(volumes); // обновить список foreach (var btn in chart.StockPane.customButtons.Where( b => b.key == ChartIcon.ChartIcon.chartButtonFastBuy || b.key == ChartIcon.ChartIcon.chartButtonFastSell)) { SetFastBuySellOptions((ChartIconDropDown) btn, btn.key == ChartIcon.ChartIcon.chartButtonFastBuy); } return; } // торгануть var volm = parts[1].Replace(" ", "").ToIntSafe() ?? 0; var sign = side ? DealType.Buy : DealType.Sell; if (makeTrade != null) makeTrade(sign, Symbol, volm); }; }
private void SetFastBuySellOptions(ChartIconDropDown buySell, bool sideBuy) { const string strMoreOptions = "другое значение..."; var lstValues = new List<object> {strMoreOptions}; lstValues.AddRange(getDefaultFastDealVolumes().Select(vlm => string.Format("{0} - {1} - {2}", sideBuy ? "BUY" : "SELL", vlm.ToStringUniformMoneyFormat(), Symbol))); buySell.listControl.Values = lstValues; buySell.listControl.Formatter = val => { return val is string ? (string) val : ((int) val).ToStringUniformMoneyFormat(); }; }
private static void SetupChartIcons() { // забубенить кнопкам картинки var imageKeyByName = new Dictionary<string, string[]> { { ChartIcon.ChartIcon.chartButtonStatByTicker, new [] { "ico_calculator.png" } }, { ChartIcon.ChartIcon.chartButtonDealByTicker, new [] { "ico_black_orders.png" } }, { ChartIcon.ChartIcon.chartButtonFastBuy, new [] { "ico_black_up.png" } }, { ChartIcon.ChartIcon.chartButtonFastSell, new [] { "ico_black_down.png" } }, { ChartIcon.ChartIcon.chartButtonFavIndicators, new [] { "ico_black_favourite.png" } }, { ChartIcon.ChartIcon.chartButtonIndexAutoScroll, new [] { "ico_black_forward.png", "ico_black_pause.png" } }, { ChartIcon.ChartIcon.chartButtonIndicators, new [] { "ico_black_indicator.png" } }, { ChartIcon.ChartIcon.chartButtonNewOrder, new [] { "ico_black_dollar.png" } }, { ChartIcon.ChartIcon.chartButtonPatchQuotes, new [] { "ico_black_synch.png" } }, { ChartIcon.ChartIcon.chartButtonQuoteArchive, new [] { "ico_black_archive.png" } }, { ChartIcon.ChartIcon.chartVisualSettings, new [] { "ico_makeup.png" } }, { ChartIcon.ChartIcon.chartProfitByTicker, new [] { "ico_profit_ticker.png" } }, { ChartIcon.ChartIcon.chartRobot, new [] { "ico_robot.png" } }, }; foreach (var img in imageKeyByName) { var imgCollection = new ChartIcon.ChartIcon.ButtonImageCollection { images = new Bitmap[2,img.Value.Length] }; for (var i = 0; i < img.Value.Length; i++) { // загрузить картинку и создать ее инверсную копию var fullName = "Candlechart.images." + img.Value[i]; Bitmap imgNormal, imgInverse; LoadImageFromResxAndMakeInverseCopy(fullName, out imgNormal, out imgInverse); imgCollection.images[0, i] = imgNormal; imgCollection.images[1, i] = imgInverse; } ChartIcon.ChartIcon.AddButtonImages(img.Key, imgCollection); } var iconStatByTicker = new ChartIconDropDownDialog { key = ChartIcon.ChartIcon.chartButtonStatByTicker }; var iconAscroll = new ChartIconCheckBox(null) { key = ChartIcon.ChartIcon.chartButtonIndexAutoScroll }; var iconIndi = new ChartIcon.ChartIcon((obj, e) => { }) { key = ChartIcon.ChartIcon.chartButtonIndicators }; var iconOrder = new ChartIcon.ChartIcon((obj, e) => { }) { key = ChartIcon.ChartIcon.chartButtonNewOrder }; var iconArchive = new ChartIcon.ChartIcon((obj, e) => { }) { key = ChartIcon.ChartIcon.chartButtonQuoteArchive }; var iconPatchQuotes = new ChartIcon.ChartIcon((obj, e) => { }) { key = ChartIcon.ChartIcon.chartButtonPatchQuotes }; var iconFavIndi = new ChartIconDropDown { key = ChartIcon.ChartIcon.chartButtonFavIndicators }; var iconFastSell = new ChartIconDropDown { key = ChartIcon.ChartIcon.chartButtonFastSell }; var iconFastBuy = new ChartIconDropDown { key = ChartIcon.ChartIcon.chartButtonFastBuy }; var iconFastOrders = new ChartIconDropDown { key = ChartIcon.ChartIcon.chartButtonDealByTicker }; var iconVisual = new ChartIcon.ChartIcon((obj, e) => { }) { key = ChartIcon.ChartIcon.chartVisualSettings }; var iconProfitByTicker = new ChartIcon.ChartIcon((obj, e) => { }) { key = ChartIcon.ChartIcon.chartProfitByTicker }; var iconRobots = new ChartIconDropDown { key = ChartIcon.ChartIcon.chartRobot }; iconFastOrders.listControl.columns = new List<FastColumn> { new FastColumn("") {ColumnWidth = 38}, new FastColumn("") {ColumnWidth = 72}, new FastColumn("") {ColumnWidth = 48}, new FastColumn("") {ColumnWidth = 73}, new FastColumn("") {ColumnWidth = 73} }; iconFastOrders.listControl.MinWidth = iconFastOrders.listControl.columns.Sum(c => c.ColumnWidth); iconFastOrders.listControl.MaxWidth = iconFastOrders.listControl.MinWidth; iconFastOrders.listControl.Width = iconFastOrders.listControl.MinWidth; iconFastOrders.listControl.CalcWidthAuto = false; // добавить все в массив allChartIcons.Add(iconStatByTicker); allChartIcons.Add(iconFastOrders); allChartIcons.Add(iconAscroll); allChartIcons.Add(iconIndi); allChartIcons.Add(iconOrder); allChartIcons.Add(iconArchive); allChartIcons.Add(iconFavIndi); allChartIcons.Add(iconFastSell); allChartIcons.Add(iconFastBuy); allChartIcons.Add(iconPatchQuotes); allChartIcons.Add(iconVisual); allChartIcons.Add(iconProfitByTicker); allChartIcons.Add(iconRobots); allChartIcons.ForEach(i => { i.Size = new Size(22, 22); }); }