Esempio n. 1
0
        private void gtv_OnDrawHeaderCol(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.DrawHeaderColEventArgs e)
        {
            Rectangle rCol = e.ColumnRect;

            e.Graphics.FillRectangle(Brushes.WhiteSmoke, rCol);
            rCol        = e.ColumnRect;
            rCol.Height = 6;
            SortDirection sortCol = gtv.Header.GetSorting(e.Column);

            if (sortCol != SortDirection.None)
            {
                using (GeniusLinearGradientBrush gbrush = new GeniusLinearGradientBrush(FSelectedBrush.EndColor, FSelectedBrush.BeginColor, 90))
                {
                    using (Brush br = gbrush.GetBrush(rCol))
                    {
                        e.Graphics.FillRectangle(br, rCol);
                    }
                }
                DrawSortingIcone(e.Graphics, rCol, sortCol);
            }
            rCol         = e.ColumnRect;
            rCol.Height -= 7;
            rCol.Y      += 7;
            StringFormat sf = new StringFormat(StringFormatFlags.NoWrap);

            sf.LineAlignment = e.Column.VAlignment;
            sf.Alignment     = e.Column.Alignment;
            using (Brush br = new SolidBrush(e.Column.ForeColor))
            {
                e.Graphics.DrawString(e.Column.Text, e.Column.Font, br, rCol, sf);
            }
            e.Graphics.DrawLine(gtv.Colors.GridLinesColor, rCol.Left, e.ColumnRect.Top, rCol.Left, rCol.Bottom);
            e.Graphics.DrawLine(gtv.Colors.GridLinesColor, rCol.Right, e.ColumnRect.Top, rCol.Right, rCol.Bottom);
            e.DefaultDrawing = false;
        }
Esempio n. 2
0
        void gtv_OnBeforePainting(GeniusTreeView Sender, PaintNodeEventArgs e)
        {
            //painture du dégradé dans le fond du control
            GeniusLinearGradientBrush br = new GeniusLinearGradientBrush(Color.FromArgb(243, 241, 230), Color.FromArgb(227, 225, 208));

            e.Info.graphics.FillRectangle(br.GetBrush(this.ClientRectangle), this.ClientRectangle);
        }
Esempio n. 3
0
 private void geniusTreeView1_OnBeforeNodePainting(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.PaintNodeEventArgs e)
 {
     if (e.Node.Data is Group)
     {
         Graphics g = e.Info.graphics;
         using (Font f = new Font(this.Font.Name, this.Font.Size, FontStyle.Bold))
         {
             StringFormat sf = new StringFormat(StringFormatFlags.NoWrap);
             sf.LineAlignment = StringAlignment.Center;
             g.DrawString(e.Node.Text, f, Brushes.Black, e.Info.NodeRect, sf);
         }
         Rectangle r = e.Info.NodeRect;
         r.Width /= 2;
         GeniusLinearGradientBrush glb = new GeniusLinearGradientBrush(Color.LightBlue, Color.White);
         using (Brush br = glb.GetBrush(r))
         {
             using (Pen p = new Pen(br, 1))
             {
                 g.DrawLine(p, r.X, r.Bottom - 1, r.Right - 1, r.Bottom - 1);
             }
         }
         e.Info.Font           = null;
         e.Info.DefaultDrawing = false;
     }
     else
     {
         if (e.Node.Data is GroupTotal)
         {
             e.Info.DrawingOptions &= ~DrawingOption.ShowGridLines;
             e.Info.Font            = new Font(this.geniusTreeView1.Font.Name, this.geniusTreeView1.Font.Size, FontStyle.Bold);
         }
         e.Info.DefaultDrawing = true;
     }
 }
Esempio n. 4
0
 private void DrawRoundRect(GeniusLinearGradientBrush geniusBr, Pen pen, Rectangle r, Graphics g)
 {
     using (Brush br = geniusBr.GetBrush(r))
     {
         DrawingHelper.FillRoundRect(g, br, r, 5, 5);
     }
     DrawingHelper.DrawRoundRect(g, pen, r, 5, 5);
 }
Esempio n. 5
0
        private void gtv_OnBeforeNodePainting(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.PaintNodeEventArgs e)
        {
            if (e.Node.Data is VistaGroup)
            {
                Rectangle  r;
                VistaGroup group = e.Node.Data as VistaGroup;
                e.Info.DefaultDrawing = false;
                //painture du noeud sous la souris ou du noeud selectionné
                if (e.Node == FUnderMouse || IsSelected(e.Node))
                {
                    r = e.Info.NodeRect;
                    r.Inflate(-2, 0);
                    r.Height -= 1;

                    //RoundRect
                    GeniusLinearGradientBrush geniusBr = e.Node == FUnderMouse ? FOverBrush : FSelectedBrush;
                    DrawRoundRect(geniusBr, FSelLinePen, r, e.Info.graphics);
                }
                SizeF size = e.Info.graphics.MeasureString(group.Name, gtv.Font);
                e.Info.graphics.DrawString(group.Name, gtv.Font, Brushes.Black, e.Info.NodeRect.X + 5, e.Info.NodeRect.Y + e.Info.NodeRect.Height / 2 - size.Height / 2);
                int y = (e.Info.ContentRect.Bottom + e.Info.ContentRect.Top) / 2;
                int x = (int)size.Width + e.Info.ContentRect.X + 10;
                e.Info.graphics.DrawLine(Pens.LightGray, x, y, e.Info.ContentRect.Right - 25, y);
                //dessin des ligne des colonne
                //à faire
                x = e.Info.NodeRect.Left;
                foreach (GeniusTreeViewColonne aCol in gtv.Header.Displays)
                {
                    e.Info.graphics.DrawLine(gtv.Colors.GridLinesColor, x, e.Info.NodeRect.Top, x, e.Info.NodeRect.Bottom);
                    x += aCol.Width;
                }
                //e.Info.graphics.DrawLine(gtv.Colors.GridLinesColor, e.Info.NodeRect.Left, e.Info.NodeRect.Top, e.Info.NodeRect.Left, e.Info.NodeRect.Bottom);
                //dessin de l'expand à droite
                Pen p = new Pen(Brushes.Gray);
                p.Width  = 3;
                p.EndCap = LineCap.ArrowAnchor;
                r        = new Rectangle(e.Info.ContentRect.Right - 15, y, 0, 0);
                r.Inflate(7, 7);
                Debug.WriteLine(string.Format("m : {0}, r:{1}", e.Info.MousePosition, r));
                if (r.Contains(e.Info.MousePosition))
                {
                    using (Brush br = FSelectedBrush.GetBrush(r))
                    {
                        e.Info.graphics.FillEllipse(br, r);
                        e.Info.graphics.DrawEllipse(Pens.LightGray, r);
                    }
                }
                if (e.Node.IsExpanded)
                {
                    e.Info.graphics.DrawLine(p, e.Info.ContentRect.Right - 15, y + 2, e.Info.ContentRect.Right - 15, y - 3);
                }
                else
                {
                    e.Info.graphics.DrawLine(p, e.Info.ContentRect.Right - 15, y - 2, e.Info.ContentRect.Right - 15, y + 3);
                }
            }
        }
Esempio n. 6
0
        private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
        {
            using (TextureBrush br = new TextureBrush(bmp, WrapMode.Tile))
            {
                br.RotateTransform(25);
                GeniusLinearGradientBrush gbr = new GeniusLinearGradientBrush(br);

                e.Graphics.FillRectangle(gbr.GetBrush(this.DisplayRectangle), this.DisplayRectangle);
            }
        }
Esempio n. 7
0
        void gtv_OnPaintNodeBackGround(GeniusTreeView Sender, PaintNodeEventArgs e)
        {
            //paint du noeud racine
            if (e.Node.Level == 1)
            {
                using (GeniusLinearGradientBrush br = new GeniusLinearGradientBrush(Color.FromArgb(220, 221, 203), Color.FromArgb(196, 193, 176), 90))
                {
                    Rectangle r = e.Info.NodeRect;
                    r.Inflate(0, -1);
                    r.Height -= 1;
                    using (Brush b = br.GetBrush(r))
                    {
                        e.Info.graphics.FillRectangle(b, r);
                        using (Pen p = new Pen(Color.FromArgb(220, 221, 203)))
                        {
                            e.Info.graphics.DrawLine(p, r.Left, r.Top, r.Right, r.Top);
                        }
                        using (Pen p = new Pen(b))
                        {
                            e.Info.graphics.DrawLine(p, r.Left, r.Bottom + 1, r.Right, r.Bottom + 1);
                        }
                    }
                }
            }
            else if (e.Node.Level == 2)
            {
                //painture du noeud sous la souris ou du noeud selectionné
                if (e.Node == FUnderMouse || e.Node == FSelected)
                {
                    Rectangle r = e.Info.NodeRect;
                    r.Inflate(-4, 0);
                    r.Height -= 1;

                    e.Info.graphics.FillRectangle(e.Node == FUnderMouse ? FOverBrush : FSelectedBrush, r);
                    e.Info.graphics.DrawRectangle(FSelLinePen, r);
                }
            }
        }
Esempio n. 8
0
        private void geniusTreeView1_OnDrawCellNode(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.PaintNodeEventArgs e)
        {
            int colindex;

            colindex = Sender.Header.DisplayIndexToIndex(e.Info.DisplayColumn);
            DataNodeImage data = e.Node.Data as DataNodeImage;

            if (data != null)
            {
                if (colindex == 1)
                {
                    e.Info.DefaultDrawing = false;
                    LoadBitmap(data);
                    //e.graphics.DrawImage(data.Bmp, e.CellRect);

                    Rectangle destRect = new Rectangle(e.Info.NodeRect.Location, data.Bmp.Size);
                    int       offsetx  = (e.Info.NodeRect.Width - data.Bmp.Size.Width) / 2;
                    destRect.Offset(offsetx, 0);
                    e.Info.graphics.DrawImage(data.Bmp, destRect, 0, 0, data.Bmp.Size.Width, data.Bmp.Size.Height, GraphicsUnit.Pixel);
                }
            }
            else if (colindex == 1)
            {
                bool selected = false;
                e.Info.DefaultDrawing = false;
                System.Random rnd = new Random();
                Rectangle     r   = e.Info.NodeRect;
                if ((e.Node.State & NodeState.Selected) == NodeState.Selected && geniusTreeView1.SelectedColumn == 1)
                {
                    selected = true;
                    geniusTreeView1.DrawSelectedRectangle(e.Info.graphics, e.Info.NodeRect, true, e.Info);
                }
                r.Y      += 1;
                r.Height -= 1;
                r.Inflate(-2, -5);
                r.Width = rnd.Next(r.Width) + 1;                 //car je ne veux pas de zéro
                int pourcent = (int)(((double)r.Width / (double)(e.Info.NodeRect.Width - 4)) * 100);
                using (GeniusLinearGradientBrush br = new GeniusLinearGradientBrush(Color.Blue, Color.LightBlue, 90))
                {
                    using (Brush b = br.GetBrush(r))
                    {
                        /*
                         * Pen p = new Pen(b, r.Height);
                         * p.DashCap = DashCap.Flat;
                         * p.DashStyle = DashStyle.Custom;
                         * p.DashPattern = new float[]{0,10,11,20};
                         * e.graphics.DrawLine(p, r.Left+1, r.Top + r.Height / 2, r.Right, r.Top + r.Height / 2);
                         */

                        e.Info.graphics.FillRectangle(b, r);
                        r.Width = e.Info.NodeRect.Width - 4;
                        if (r.Width == 0)
                        {
                            r.Width = 1;
                        }
                        e.Info.graphics.DrawRectangle(selected ? Pens.White : Pens.Black, r);
                        StringFormat sf = new StringFormat(StringFormatFlags.NoWrap);
                        sf.LineAlignment = StringAlignment.Center;
                        sf.Alignment     = StringAlignment.Center;
                        sf.Trimming      = StringTrimming.EllipsisCharacter;
                        e.Info.graphics.DrawString(String.Format("{0} %", pourcent), this.Font,
                                                   pourcent >= 55 || selected ? Brushes.White : Brushes.Black,
                                                   e.Info.NodeRect, sf);
                    }
                }
            }
        }