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);
        }
Exemplo n.º 3
0
        /// <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);
        }