Skip to content

Commit

Permalink
add setting for max size and fixed filter button image size, updated …
Browse files Browse the repository at this point in the history
…version
  • Loading branch information
davidegironi committed Apr 2, 2024
1 parent 54ae03b commit 98f71b5
Show file tree
Hide file tree
Showing 5 changed files with 59 additions and 8 deletions.
44 changes: 41 additions & 3 deletions AdvancedDataGridView/AdvancedDataGridView.cs
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,6 @@ public enum TranslationKey

#endregion


#region class properties and fields

private List<string> _sortOrderList = new List<string>();
Expand All @@ -196,6 +195,10 @@ public enum TranslationKey

private FilterBuilerMode _filterBuilerMode = FilterBuilerMode.And;

internal int _maxFilterButtonImageHeight = ColumnHeaderCell.FilterButtonImageDefaultSize;

internal int _maxAllCellHeight = ColumnHeaderCell.FilterButtonImageDefaultSize;

#endregion


Expand Down Expand Up @@ -428,7 +431,7 @@ public void EnableFilterAndSort(DataGridViewColumn column)
else
{
column.SortMode = DataGridViewColumnSortMode.Programmatic;
cell = new ColumnHeaderCell(column.HeaderCell, true);
cell = new ColumnHeaderCell(this, column.HeaderCell, true);
cell.SortChanged += new ColumnHeaderCellEventHandler(Cell_SortChanged);
cell.FilterChanged += new ColumnHeaderCellEventHandler(Cell_FilterChanged);
cell.FilterPopup += new ColumnHeaderCellEventHandler(Cell_FilterPopup);
Expand Down Expand Up @@ -1253,6 +1256,41 @@ public void ShowMenuStrip(DataGridViewColumn column)
}
}

/// <summary>
/// Get or Set the max filter button image height
/// </summary>
public int MaxFilterButtonImageHeight
{
get
{
return _maxFilterButtonImageHeight;
}
set
{
_maxFilterButtonImageHeight = value > ColumnHeaderCell.FilterButtonImageDefaultSize ? value : ColumnHeaderCell.FilterButtonImageDefaultSize;
}
}

#endregion


#region internal Cell methods

/// <summary>
/// Get or Set the max filter button image height of all cells
/// </summary>
internal int MaxAllCellHeight
{
get
{
return _maxAllCellHeight;
}
set
{
_maxAllCellHeight = value > ColumnHeaderCell.FilterButtonImageDefaultSize ? value : ColumnHeaderCell.FilterButtonImageDefaultSize;
}
}

#endregion


Expand Down Expand Up @@ -1283,7 +1321,7 @@ private IEnumerable<ColumnHeaderCell> FilterableCells
protected override void OnColumnAdded(DataGridViewColumnEventArgs e)
{
e.Column.SortMode = DataGridViewColumnSortMode.Programmatic;
ColumnHeaderCell cell = new ColumnHeaderCell(e.Column.HeaderCell, FilterAndSortEnabled);
ColumnHeaderCell cell = new ColumnHeaderCell(this, e.Column.HeaderCell, FilterAndSortEnabled);
cell.SortChanged += new ColumnHeaderCellEventHandler(Cell_SortChanged);
cell.FilterChanged += new ColumnHeaderCellEventHandler(Cell_FilterChanged);
cell.FilterPopup += new ColumnHeaderCellEventHandler(Cell_FilterPopup);
Expand Down
Binary file modified AdvancedDataGridView/AdvancedDataGridView.csproj
Binary file not shown.
21 changes: 17 additions & 4 deletions AdvancedDataGridView/ColumnHeaderCell.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,20 @@ internal class ColumnHeaderCell : DataGridViewColumnHeaderCell
/// </summary>
private const bool FilterDateAndTimeDefaultEnabled = false;

/// <summary>
/// Default filter button image width and height
/// </summary>
public const int FilterButtonImageDefaultSize = 23;

#endregion


#region class properties and fields

private readonly AdvancedDataGridView dataGridView;

private Image _filterImage = Properties.Resources.ColumnHeader_UnFiltered;
private Size _filterButtonImageSize = new Size(16, 16);
private Size _filterButtonImageSize = new Size(FilterButtonImageDefaultSize, FilterButtonImageDefaultSize);
private bool _filterButtonPressed = false;
private bool _filterButtonOver = false;
private Rectangle _filterButtonOffsetBounds = Rectangle.Empty;
Expand All @@ -61,11 +68,14 @@ internal class ColumnHeaderCell : DataGridViewColumnHeaderCell
/// <summary>
/// ColumnHeaderCell constructor
/// </summary>
/// <param name="dataGridView"></param>
/// <param name="oldCell"></param>
/// <param name="filterEnabled"></param>
public ColumnHeaderCell(DataGridViewColumnHeaderCell oldCell, bool filterEnabled)
public ColumnHeaderCell(AdvancedDataGridView dataGridView, DataGridViewColumnHeaderCell oldCell, bool filterEnabled)
: base()
{
this.dataGridView = dataGridView;

Tag = oldCell.Tag;
ErrorText = oldCell.ErrorText;
ToolTipText = oldCell.ToolTipText;
Expand All @@ -75,7 +85,10 @@ public ColumnHeaderCell(DataGridViewColumnHeaderCell oldCell, bool filterEnabled
Style = oldCell.Style;
_filterEnabled = filterEnabled;

_filterButtonImageSize = new Size((int)Math.Round(oldCell.Size.Height * 0.8), (int)Math.Round(oldCell.Size.Height * 0.8));
if (oldCell.Size.Height > dataGridView.MaxAllCellHeight)
dataGridView.MaxAllCellHeight = oldCell.Size.Height;
int filterButtonImageHeight = dataGridView.MaxFilterButtonImageHeight < dataGridView.MaxAllCellHeight ? dataGridView.MaxFilterButtonImageHeight : dataGridView.MaxAllCellHeight;
_filterButtonImageSize = new Size((int)Math.Round(filterButtonImageHeight * 0.8), (int)Math.Round(filterButtonImageHeight * 0.8));

ColumnHeaderCell oldCellt = oldCell as ColumnHeaderCell;
if (oldCellt != null && oldCellt.MenuStrip != null)
Expand Down Expand Up @@ -217,7 +230,7 @@ public void SortDESC()
/// <returns></returns>
public override object Clone()
{
return new ColumnHeaderCell(this, FilterAndSortEnabled);
return new ColumnHeaderCell(dataGridView, this, FilterAndSortEnabled);
}

/// <summary>
Expand Down
Binary file modified AdvancedDataGridViewSample/AdvancedDataGridViewSample.csproj
Binary file not shown.
2 changes: 1 addition & 1 deletion _DevTools/AutoBuilder.config.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ $solutionName = "AdvancedDataGridView"
$versionMajor = "1"
$versionMinor = "2"
$versionBuild = GetVersionBuild
$versionRevision = "12"
$versionRevision = "13"
#build version number
$version = GetVersion $versionMajor $versionMinor $versionBuild $versionRevision

Expand Down

0 comments on commit 98f71b5

Please sign in to comment.