private void draw_grid(dom_model _dom_model, Graphics _gr) { _gr.DrawRectangles(m_ramka, _dom_model.AllRects); for (var _level = 1; _level <= c_levels; ++_level) { var _lev_rc = _dom_model.Level(_level); _gr.DrawLine(Pens.Black, _lev_rc.Location, PointF.Add(_lev_rc.Location, new SizeF(_lev_rc.Width, 0))); } }
private void draw_dom(DOMPrice[] asks, DOMPrice[] bids, Graphics graphics, Point _offset) { var _dom_model = new dom_model(graphics, m_my_font); var _bmp = new Bitmap((int)_dom_model.FullRect.Width + 6, (int)_dom_model.FullRect.Height, graphics); using (var _gr = Graphics.FromImage(_bmp)) { draw_bg(_dom_model, _gr); var _max_total_vol = max_volume; draw_bids(bids, _dom_model, _gr, _max_total_vol); draw_asks(asks, _dom_model, _gr, _max_total_vol); draw_grid(_dom_model, _gr); graphics.DrawImage(_bmp, _offset); } }
private void draw_bids(DOMPrice[] bids, dom_model _dom_model, Graphics _gr, double maxTotalVol) { const int _middle = c_levels / 2; var _max_size = bids.Max(_1 => _1.Size); for (var i = _middle; i < Math.Min(bids.Length + _middle, c_levels); ++i) { var _rc = _dom_model.Bid(i); var _size = bids[i - _middle].Size; draw_bg_gradientr2l(m_bid_clr, _gr, _rc, _max_size, _size); _gr.DrawString(Volume2String(_size), m_my_font, i == _middle ? Brushes.White : Brushes.Black, _rc, m_str_format); var _rc_p = _dom_model.Price(i); var _price = bids[i - _middle].Price; draw_bg_gradientl2r(m_tot_vol_clr, _gr, _rc_p, maxTotalVol, get_volume_for_price(_price)); _gr.DrawString(Price2String(_price, m_price_format), m_my_font, Brushes.Black, _rc_p, m_str_format); } }
private void draw_asks(DOMPrice[] asks, dom_model _dom_model, Graphics _gr, double maxTotalVol) { const int _middle = c_levels / 2 - 1; var _max_size = asks.Max(_1 => _1.Size); for (var i = _middle; i > Math.Max(_middle - asks.Length, 0); --i) { var _rc = _dom_model.Ask(i); var _size = asks[_middle - i].Size; draw_bg_gradientl2r(m_ask_clr, _gr, _rc, _max_size, _size); _gr.DrawString(Volume2String(_size), m_my_font, i == _middle ? Brushes.White : Brushes.Black, _rc, m_str_format); var _price = asks[_middle - i].Price; var _rc_p = _dom_model.Price(i); draw_bg_gradientl2r(m_tot_vol_clr, _gr, _rc_p, maxTotalVol, get_volume_for_price(_price)); _gr.DrawString(Price2String(_price, m_price_format), m_my_font, Brushes.Black, _rc_p, m_str_format); } }
private void draw_bg(dom_model _dom_model, Graphics _gr) { _gr.FillRectangle(m_bid_bg, _dom_model.BidRect); _gr.FillRectangle(m_price_bg, _dom_model.PriceRect); _gr.FillRectangle(m_ask_bg, _dom_model.AskRect); }