/// ------------------------------------------------------------------------------------ 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); } }
/// ------------------------------------------------------------------------------------ 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; }
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]); } }
/// ------------------------------------------------------------------------------------ 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); }
/// ------------------------------------------------------------------------------------ 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); } }
/// ------------------------------------------------------------------------------------ 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); } }