public static void DoNoteIds(this WidgetMidiList widget, FloatRect grid, Graphics g) { var gs = g.Save(); using (g.Clip = new Region(grid)) { foreach (var i in widget.GetHLines(Convert.ToInt32(Math.Pow(4, 2)))) { var r2=new FloatRect(i.XO-16,grid.Top,32,24); g.FillEllipse(Brushes.Black,r2); g.DrawText((i.Index / 4).ToString(),Color.White,widget.Font,r2); } foreach (var i in widget.GetHLines(Convert.ToInt32(Math.Pow(4, 3)))) { var r2=new FloatRect(i.XO-16,grid.Top+32,32,24); g.FillEllipse(Brushes.Black,r2); g.DrawText((i.Index / 64).ToString(),Color.White,widget.Font,r2); } g.ResetClip(); } g.Restore(gs); }
public static void DoVKeys(this WidgetMidiList widget, FloatRect grid, Graphics g) { var gs = g.Save(); // Vertical using (var linePen = new Pen(Color.Blue, 1)) foreach (var row in widget.GetVLines(widget.LineOffset)) { var r = new FloatRect(widget.Container.X + 12, row.Top, widget.WidthGutter, widget.LineHeight); if (row.CanDo) { // Note-Number + Piano-KeyName var str = string.Format("{0:00#} {1,-3}", row.RowIndex, MKeys[row.RowIndex]); // create rect, then move x/y and shrinks w/h by one pixel. var rc = new FloatRect(grid.Left, row.Top, grid.Width, widget.LineHeight).Shrink(1); using (var sb = new SolidBrush(Color.FromArgb(24, row.IsIvory ? Color.White : Color.Black))) if (row.IsIvory) g.FillRectangle(sb, rc); var r2 = r.Clone(); r2.Location = r2.Location.NegX(10); g.DrawText(str,Color.White,widget.Font,r2,StringAlignment.Near); } } g.Restore(gs); }
/// <summary> /// /// </summary> /// <param name="g"></param> /// <param name="selected"></param> internal virtual void Draw(Graphics g, bool selected) { if (selected) { if (selectedImage != null) { g.DrawImage(selectedImage, rectangle, rectangle, GraphicsUnit.Pixel); } else { if (selectedBackColor == selectedBackColor2) { using (var brush = new SolidBrush(selectedBackColor)) { g.FillRectangle(brush, rectangle); } } else { g.GradientFill(rectangle, selectedBackColor, selectedBackColor2, FillDirection.TopToBottom); } using (var pen = new Pen(selectedBorderColor)) { g.DrawRectangle(pen, rectangle.Left, rectangle.Top, rectangle.Width - 1, rectangle.Height - 1); } } } else { if (image != null) { g.DrawImage(selectedImage, rectangle, rectangle, GraphicsUnit.Pixel); } else { if (backColor == backColor2) { using (var brush = new SolidBrush(backColor)) { g.FillRectangle(brush, rectangle); } } else { g.GradientFill(rectangle, backColor, backColor2, FillDirection.TopToBottom); } using (var pen = new Pen(borderColor)) { g.DrawRectangle(pen, rectangle.Left, rectangle.Top, rectangle.Width - 1, rectangle.Height - 1); } } } g.DrawText(text, font ?? Parent.Font, selected ? selectedForeColor : foreColor, rectangle, ContentAlignmentEx.MiddleCenter); }