Beispiel #1
0
        /// ------------------------------------------------------------------------------------
        public CheckBoxColumnHeaderHandler(DataGridViewColumn col)
        {
            Debug.Assert(col != null);
            Debug.Assert(col is DataGridViewCheckBoxColumn);
            Debug.Assert(col.DataGridView != null);

            _col        = col;
            _owningGrid = col.DataGridView;
            _owningGrid.HandleDestroyed  += HandleHandleDestroyed;
            _owningGrid.CellPainting     += HandleHeaderCellPainting;
            _owningGrid.CellMouseMove    += HandleHeaderCellMouseMove;
            _owningGrid.CellMouseClick   += HandleHeaderCellMouseClick;
            _owningGrid.CellContentClick += HandleDataCellCellContentClick;
            _owningGrid.Scroll           += HandleGridScroll;
            _owningGrid.RowsAdded        += HandleGridRowsAdded;
            _owningGrid.RowsRemoved      += HandleGridRowsRemoved;

            if (!BetterGrid.CanPaintVisualStyle())
            {
                _szCheckBox = new Size(13, 13);
            }
            else
            {
                var element  = VisualStyleElement.Button.CheckBox.CheckedNormal;
                var renderer = new VisualStyleRenderer(element);
                using (var g = _owningGrid.CreateGraphics())
                    _szCheckBox = renderer.GetPartSize(g, ThemeSizeType.True);
            }
        }
Beispiel #2
0
        /// ------------------------------------------------------------------------------------
        private void DrawMinimalistButton(Graphics g, Rectangle rc)
        {
            var element = GetVisualStyleComboButton();

            rc = AdjustRectToDefaultComboButtonWidth(rc);

            if (element != VisualStyleElement.ComboBox.DropDownButton.Normal &&
                element != VisualStyleElement.ComboBox.DropDownButton.Disabled &&
                BetterGrid.CanPaintVisualStyle(element))
            {
                var renderer = new VisualStyleRenderer(element);
                renderer.DrawBackground(g, rc);
            }
            else
            {
                var pen = (element == VisualStyleElement.ComboBox.DropDownButton.Disabled ?
                           SystemPens.GrayText : SystemPens.WindowText);

                var x = rc.X + (int)Math.Round((rc.Width - 7) / 2f, MidpointRounding.AwayFromZero);
                var y = rc.Y + (int)Math.Round((rc.Height - 4) / 2f, MidpointRounding.AwayFromZero);
                g.DrawLine(pen, x, y, x + 6, y++);
                g.DrawLine(pen, x + 1, y, x + 5, y++);
                g.DrawLine(pen, x + 2, y, x + 4, y);
                g.DrawLine(pen, x + 3, y, x + 3, y + 1);
                return;
            }
        }
        private void InitializeControls()
        {
            _grid = new BetterGrid
            {
                Dock = DockStyle.Top,
                RowHeadersVisible       = false,
                AllowUserToOrderColumns = false,
                AllowUserToResizeRows   = true,
                AutoSizeColumnsMode     = DataGridViewAutoSizeColumnsMode.None,
                Name        = "PersonContributionGrid",
                BorderStyle = BorderStyle.None,
                ColumnHeadersBorderStyle    = DataGridViewHeaderBorderStyle.None,
                ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing
            };

            // look for saved settings
            var widths = Array.ConvertAll(Settings.Default.PersonContributionColumns.Split(new[] { ',' }), int.Parse).ToList();

            while (widths.Count < 4)
            {
                widths.Add(200);
            }

            // set the localizable column header text
            string[] headerText =
            {
                @"_L10N_:PeopleView.ContributionEditor.NameColumnTitle!Name",
                @"_L10N_:PeopleView.ContributionEditor.RoleColumnTitle!Role",
                @"_L10N_:PeopleView.ContributionEditor.DateColumnTitle!Date",
                @"_L10N_:PeopleView.ContributionEditor.CommentColumnTitle!Comments"
            };

            for (var i = 0; i < headerText.Length; i++)
            {
                _grid.Columns.Add(new DataGridViewTextBoxColumn {
                    Width = widths[i], SortMode = DataGridViewColumnSortMode.Automatic, ReadOnly = true, HeaderText = headerText[i]
                });
            }

            // set column header height to match the other grids
            _grid.AutoResizeColumnHeadersHeight();
            _grid.ColumnHeadersHeight += 8;

            // make it localizable
            L10NSharpExtender locExtender = new L10NSharpExtender();

            locExtender.LocalizationManagerId = "SayMore";
            locExtender.SetLocalizingId(_grid, "ContributionsEditorGrid");

            locExtender.EndInit();

            Controls.Add(_grid);

            _grid.ColumnWidthChanged += _grid_ColumnWidthChanged;

            Program.PersonDataChanged += Program_PersonDataChanged;
            Disposed += PersonContributionEditor_Disposed;
        }
Beispiel #4
0
    void OnMouseUpAsButton()
    {
        if (mine)
        {
            BetterGrid.UncoverMines();
            print("u lsoe lol");
        }
        else
        {
            int x = (int)transform.position.x;
            int y = (int)transform.position.y;
            loadTexture(BetterGrid.adjacentMines(x, y));

            BetterGrid.floodfill(x, y, new bool[BetterGrid.w, BetterGrid.h]);
        }
    }
Beispiel #5
0
        /// ------------------------------------------------------------------------------------
        private bool DrawVisualStyledButton(PushButtonColumn.ButtonType buttonStyle,
                                            IDeviceContext g, Rectangle rcbtn)
        {
            VisualStyleElement element = (buttonStyle == PushButtonColumn.ButtonType.VisualStyleCombo ?
                                          GetVisualStyleComboButton() : GetVisualStylePushButton());

            if (!BetterGrid.CanPaintVisualStyle(element))
            {
                return(false);
            }

            VisualStyleRenderer renderer = new VisualStyleRenderer(element);

            rcbtn = AdjustRectToDefaultComboButtonWidth(rcbtn);
            renderer.DrawBackground(g, rcbtn);
            return(true);
        }
Beispiel #6
0
        /// ------------------------------------------------------------------------------------
        private void Initialize()
        {
            _grid.Font = SystemFonts.MenuFont;

            // TODO: Localize column headings

            DataGridViewColumn col = BetterGrid.CreateTextBoxColumn("name", "Name");

            col.Width = 150;
            _grid.Columns.Add(col);

            col = BetterGrid.CreateDropDownListComboBoxColumn("role",
                                                              _model.OlacRoles.Select(r => r.ToString()));
            col.HeaderText = @"Role";
            col.Width      = 120;
            _grid.Columns.Add(col);

            _grid.Columns.Add(BetterGrid.CreateCalendarControlColumn("date", "Date", null, CalendarCell.UserAction.CellMouseClick));

            col       = BetterGrid.CreateTextBoxColumn("comments", "Comments");
            col.Width = 200;
            _grid.Columns.Add(col);

            _grid.AddRemoveRowColumn(null, null,
                                     null /* TODO: Enhance BetterGrid to be able to show tool tips in non-virtual mode */,
                                     rowIndex => DeleteRow(rowIndex));

            _grid.AllowUserToAddRows    = true;
            _grid.AllowUserToDeleteRows = true;

            _grid.EditingControlShowing += HandleEditingControlShowing;
            _grid.RowValidating         += HandleGridRowValidating;
            _grid.MouseClick            += HandleGridMouseClick;
            _grid.Leave                  += HandleGridLeave;
            _grid.Enter                  += delegate { _grid.SelectionMode = DataGridViewSelectionMode.CellSelect; };
            _grid.RowValidated           += HandleGridRowValidated;
            _grid.RowsRemoved            += HandleGridRowsRemoved;
            _grid.ColumnHeaderMouseClick += _grid_ColumnHeaderMouseClick;

            if (_model.ContributorsGridSettings != null)
            {
                _model.ContributorsGridSettings.InitializeGrid(_grid);
            }
        }
Beispiel #7
0
        /// ------------------------------------------------------------------------------------
        private void HandleHeaderCellPainting(object sender, DataGridViewCellPaintingEventArgs e)
        {
            if (e.RowIndex >= 0 && e.ColumnIndex != _col.Index)
            {
                return;
            }

            var rcCell = _owningGrid.GetCellDisplayRectangle(_col.Index, -1, false);

            if (rcCell.IsEmpty)
            {
                return;
            }

            // At this point, we know at least part of the header cell is visible, therefore,
            // force the rectangle's width to that of the column's.
            rcCell.X = rcCell.Right - _col.Width;

            // Subtract one so as not to include the left border in the width.
            rcCell.Width = _col.Width - 1;

            int dx = (int)Math.Floor((rcCell.Width - _szCheckBox.Width) / 2f);
            int dy = (int)Math.Floor((rcCell.Height - _szCheckBox.Height) / 2f);
            var rc = new Rectangle(rcCell.X + dx, rcCell.Y + dy, _szCheckBox.Width, _szCheckBox.Height);

            if (BetterGrid.CanPaintVisualStyle())
            {
                DrawVisualStyleCheckBox(e.Graphics, rc);
            }
            else
            {
                var state = ButtonState.Checked;
                if (HeadersCheckState == CheckState.Unchecked)
                {
                    state = ButtonState.Normal;
                }
                else if (HeadersCheckState == CheckState.Indeterminate)
                {
                    state |= ButtonState.Inactive;
                }

                ControlPaint.DrawCheckBox(e.Graphics, rc, state | ButtonState.Flat);
            }
        }