static public void DoGrid(this WidgetMidiList widget, FloatRect grid, Graphics g)
        {
            var gs = g.Save();

            using (g.Clip = new Region(grid))
            {
                using (var p0 = new Pen(Color.Black)) foreach (var i in widget.GetHLines(4))
                    {
                        g.DrawLines(p0, new Point[] { new FloatPoint(i.XO, grid.Top), new FloatPoint(i.XO, grid.Bottom) });
                    }

                using (var p1 = new Pen(Gray130)) foreach (var i in widget.GetHLines(Convert.ToInt32(Math.Pow(4, 2))))
                    {
                        g.DrawLines(p1, new Point[] { new FloatPoint(i.XO, grid.Top), new FloatPoint(i.XO, grid.Bottom) });
                    }

                using (var p2 = new Pen(White)) foreach (var i in widget.GetHLines(Convert.ToInt32(Math.Pow(4, 3))))
                    {
                        g.DrawLines(p2, new Point[] { new FloatPoint(i.XO, grid.Top), new FloatPoint(i.XO, grid.Bottom) });
                    }

                g.ResetClip();
            }
            g.Restore(gs);
        }
        static public 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);
        }