Esempio n. 1
0
        private void OnCustomDrawColumnHeader(object sender, CustomDrawColumnHeaderEventArgs e)
        {
            if (e.Column == null)
            {
                return;
            }

            ColumnInfo info = (ColumnInfo)e.ObjectArgs;

            for (int i = 0; i < info.InnerElements.Count; i++)
            {
                if (info.InnerElements[i].ElementInfo is GridFilterButtonInfoArgs)
                {
                    return;
                }
            }

            GridSmartSkinFilterButtonPainter painter          = new GridSmartSkinFilterButtonPainter(UserLookAndFeel.Default);
            GridFilterButtonInfoArgs         filterButtonInfo = new GridFilterButtonInfoArgs();

            filterButtonInfo.Cache    = e.Cache;
            filterButtonInfo.Graphics = e.Graphics;

            DrawElementInfo elementInfo = info.InnerElements.Add(painter, filterButtonInfo);

            elementInfo.RequireTotalBounds = true;
            info.InnerElements.CalcBounds(e.ObjectArgs, e.Cache, e.Painter.GetObjectClientRectangle(e.ObjectArgs), e.Bounds);

            Rectangle captionRect = e.CaptionRect;

            captionRect.Width -= elementInfo.ElementInfo.Bounds.Width;
            info.CaptionRect   = captionRect;
        }
Esempio n. 2
0
        private void OnMouseMove(object sender, MouseEventArgs e)
        {
            if (e.Button != MouseButtons.None)
            {
                return;
            }

            TreeListHitInfo hitInfo = ((TreeList)sender).CalcHitInfo(e.Location);

            if (hitInfo.HitInfoType == HitInfoType.Column)
            {
                ColumnInfo colInfo = ((TreeList)sender).ViewInfo.ColumnsInfo[hitInfo.Column];
                GridFilterButtonInfoArgs filterButtonInfo = GetFilterButtonInfoArgs(colInfo);
                if (filterButtonInfo != null)
                {
                    if (filterButtonInfo.Bounds.Contains(e.Location))
                    {
                        filterButtonInfo.State = ObjectState.Hot;
                    }
                    else if (hitInfo.Column == columnFilterEngine.FilterShowingColumn)
                    {
                        filterButtonInfo.State = ObjectState.Pressed;
                    }
                    else
                    {
                        filterButtonInfo.State = ObjectState.Normal;
                    }

                    ((TreeList)sender).InvalidateColumnHeader(hitInfo.Column);
                }
            }
            else
            {
                foreach (TreeListColumn col in ((TreeList)sender).Columns)
                {
                    ColumnInfo colInfo = ((TreeList)sender).ViewInfo.ColumnsInfo[col];
                    GridFilterButtonInfoArgs filterButtonInfo = GetFilterButtonInfoArgs(colInfo);
                    if (col != columnFilterEngine.FilterShowingColumn && filterButtonInfo != null)
                    {
                        if (columnFilterConditions.ContainsColumn(col))
                        {
                            filterButtonInfo.State = ObjectState.Selected;
                        }
                        else
                        {
                            filterButtonInfo.State = ObjectState.Normal;
                        }

                        ((TreeList)sender).InvalidateColumnHeader(col);
                    }
                }
            }
        }
        private void gridView1_CustomDrawColumnHeader(object sender, DevExpress.XtraGrid.Views.Grid.ColumnHeaderCustomDrawEventArgs e)
        {
            GridFilterButtonInfoArgs args = null;

            foreach (DrawElementInfo deInfo in e.Info.InnerElements)
            {
                if (deInfo.ElementInfo.GetType() == typeof(GridFilterButtonInfoArgs))
                {
                    args = (GridFilterButtonInfoArgs)deInfo.ElementInfo;
                    break;
                }
            }
            if (null == args)
            {
                return;
            }
            int x = e.Bounds.X + 5;
            int y = e.Bounds.Y + e.Bounds.Height / 2 - args.Bounds.Height / 2;

            args.Bounds = new Rectangle(new Point(x, y), args.Bounds.Size);
        }
Esempio n. 4
0
        private void OnMouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button != MouseButtons.Left)
            {
                return;
            }

            TreeListHitInfo hitInfo = ((TreeList)sender).CalcHitInfo(e.Location);

            if (hitInfo.HitInfoType == HitInfoType.Column)
            {
                ColumnInfo colInfo = ((TreeList)sender).ViewInfo.ColumnsInfo[hitInfo.Column];
                GridFilterButtonInfoArgs filterButtonInfo = GetFilterButtonInfoArgs(colInfo);
                if (filterButtonInfo != null && filterButtonInfo.Bounds.Contains(e.Location))
                {
                    filterButtonInfo.State = ObjectState.Pressed;
                    ((TreeList)sender).InvalidateColumnHeader(hitInfo.Column);

                    throw new HideException();
                }
            }
        }