Skip to content

Code Quality: Update visual states for InfoPane in XAML instead #17416

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
284 changes: 139 additions & 145 deletions src/Files.App.Controls/GridSplitter/GridSplitter.Data.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,153 +4,147 @@
namespace Files.App.Controls
{
/// <summary>
/// Represents the control that redistributes space between columns or rows of a Grid control.
/// Enum to indicate whether GridSplitter resizes Columns or Rows
/// </summary>
public partial class GridSplitter
public enum GridResizeDirection
{
/// <summary>
/// Enum to indicate whether GridSplitter resizes Columns or Rows
/// </summary>
public enum GridResizeDirection
{
/// <summary>
/// Determines whether to resize rows or columns based on its Alignment and
/// width compared to height
/// </summary>
Auto,

/// <summary>
/// Resize columns when dragging Splitter.
/// </summary>
Columns,

/// <summary>
/// Resize rows when dragging Splitter.
/// </summary>
Rows
}

/// <summary>
/// Enum to indicate what Columns or Rows the GridSplitter resizes
/// </summary>
public enum GridResizeBehavior
{
/// <summary>
/// Determine which columns or rows to resize based on its Alignment.
/// </summary>
BasedOnAlignment,

/// <summary>
/// Resize the current and next Columns or Rows.
/// </summary>
CurrentAndNext,

/// <summary>
/// Resize the previous and current Columns or Rows.
/// </summary>
PreviousAndCurrent,

/// <summary>
/// Resize the previous and next Columns or Rows.
/// </summary>
PreviousAndNext
}

/// <summary>
/// Enum to indicate the supported gripper cursor types.
/// </summary>
public enum GripperCursorType
{
/// <summary>
/// Change the cursor based on the splitter direction
/// </summary>
Default = -1,

/// <summary>
/// Standard Arrow cursor
/// </summary>
Arrow,

/// <summary>
/// Standard Cross cursor
/// </summary>
Cross,

/// <summary>
/// Standard Custom cursor
/// </summary>
Custom,

/// <summary>
/// Standard Hand cursor
/// </summary>
Hand,

/// <summary>
/// Standard Help cursor
/// </summary>
Help,

/// <summary>
/// Standard IBeam cursor
/// </summary>
IBeam,

/// <summary>
/// Standard SizeAll cursor
/// </summary>
SizeAll,

/// <summary>
/// Standard SizeNortheastSouthwest cursor
/// </summary>
SizeNortheastSouthwest,

/// <summary>
/// Standard SizeNorthSouth cursor
/// </summary>
SizeNorthSouth,

/// <summary>
/// Standard SizeNorthwestSoutheast cursor
/// </summary>
SizeNorthwestSoutheast,

/// <summary>
/// Standard SizeWestEast cursor
/// </summary>
SizeWestEast,

/// <summary>
/// Standard UniversalNo cursor
/// </summary>
UniversalNo,

/// <summary>
/// Standard UpArrow cursor
/// </summary>
UpArrow,

/// <summary>
/// Standard Wait cursor
/// </summary>
Wait
}

/// <summary>
/// Enum to indicate the behavior of window cursor on grid splitter hover
/// </summary>
public enum SplitterCursorBehavior
{
/// <summary>
/// Update window cursor on Grid Splitter hover
/// </summary>
ChangeOnSplitterHover,

/// <summary>
/// Update window cursor on Grid Splitter Gripper hover
/// </summary>
ChangeOnGripperHover
}
/// Determines whether to resize rows or columns based on its Alignment and
/// width compared to height
/// </summary>
Auto,

/// <summary>
/// Resize columns when dragging Splitter.
/// </summary>
Columns,

/// <summary>
/// Resize rows when dragging Splitter.
/// </summary>
Rows
}

/// <summary>
/// Enum to indicate what Columns or Rows the GridSplitter resizes
/// </summary>
public enum GridResizeBehavior
{
/// <summary>
/// Determine which columns or rows to resize based on its Alignment.
/// </summary>
BasedOnAlignment,

/// <summary>
/// Resize the current and next Columns or Rows.
/// </summary>
CurrentAndNext,

/// <summary>
/// Resize the previous and current Columns or Rows.
/// </summary>
PreviousAndCurrent,

/// <summary>
/// Resize the previous and next Columns or Rows.
/// </summary>
PreviousAndNext
}

/// <summary>
/// Enum to indicate the supported gripper cursor types.
/// </summary>
public enum GripperCursorType
{
/// <summary>
/// Change the cursor based on the splitter direction
/// </summary>
Default = -1,

/// <summary>
/// Standard Arrow cursor
/// </summary>
Arrow,

/// <summary>
/// Standard Cross cursor
/// </summary>
Cross,

/// <summary>
/// Standard Custom cursor
/// </summary>
Custom,

/// <summary>
/// Standard Hand cursor
/// </summary>
Hand,

/// <summary>
/// Standard Help cursor
/// </summary>
Help,

/// <summary>
/// Standard IBeam cursor
/// </summary>
IBeam,

/// <summary>
/// Standard SizeAll cursor
/// </summary>
SizeAll,

/// <summary>
/// Standard SizeNortheastSouthwest cursor
/// </summary>
SizeNortheastSouthwest,

/// <summary>
/// Standard SizeNorthSouth cursor
/// </summary>
SizeNorthSouth,

/// <summary>
/// Standard SizeNorthwestSoutheast cursor
/// </summary>
SizeNorthwestSoutheast,

/// <summary>
/// Standard SizeWestEast cursor
/// </summary>
SizeWestEast,

/// <summary>
/// Standard UniversalNo cursor
/// </summary>
UniversalNo,

/// <summary>
/// Standard UpArrow cursor
/// </summary>
UpArrow,

/// <summary>
/// Standard Wait cursor
/// </summary>
Wait
}

/// <summary>
/// Enum to indicate the behavior of window cursor on grid splitter hover
/// </summary>
public enum SplitterCursorBehavior
{
/// <summary>
/// Update window cursor on Grid Splitter hover
/// </summary>
ChangeOnSplitterHover,

/// <summary>
/// Update window cursor on Grid Splitter Gripper hover
/// </summary>
ChangeOnGripperHover
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ public static readonly DependencyProperty ParentLevelProperty
public static readonly DependencyProperty GripperCursorProperty =
DependencyProperty.RegisterAttached(
nameof(GripperCursor),
typeof(InputSystemCursorShape?),
typeof(GripperCursorType),
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This caused a type mismatch bug leading to an exception. Now fixed.

typeof(GridSplitter),
new PropertyMetadata(GripperCursorType.Default, OnGripperCursorPropertyChanged));

Expand Down
16 changes: 8 additions & 8 deletions src/Files.App.Controls/GridSplitter/GripperHoverWrapper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,16 @@ namespace Files.App.Controls
{
internal class GripperHoverWrapper
{
private readonly GridSplitter.GridResizeDirection _gridSplitterDirection;
private readonly GridResizeDirection _gridSplitterDirection;

private InputCursor _splitterPreviousPointer;
private InputCursor _previousCursor;
private GridSplitter.GripperCursorType _gripperCursor;
private GripperCursorType _gripperCursor;
private int _gripperCustomCursorResource;
private bool _isDragging;
private UIElement _element;

internal GridSplitter.GripperCursorType GripperCursor
internal GripperCursorType GripperCursor
{
get
{
Expand Down Expand Up @@ -50,7 +50,7 @@ internal int GripperCustomCursorResource
/// <param name="gridSplitterDirection">GridSplitter resize direction</param>
/// <param name="gripperCursor">GridSplitter gripper on hover cursor type</param>
/// <param name="gripperCustomCursorResource">GridSplitter gripper custom cursor resource number</param>
internal GripperHoverWrapper(UIElement element, GridSplitter.GridResizeDirection gridSplitterDirection, GridSplitter.GripperCursorType gripperCursor, int gripperCustomCursorResource)
internal GripperHoverWrapper(UIElement element, GridResizeDirection gridSplitterDirection, GripperCursorType gripperCursor, int gripperCustomCursorResource)
{
_gridSplitterDirection = gridSplitterDirection;
_gripperCursor = gripperCursor;
Expand Down Expand Up @@ -113,21 +113,21 @@ private void UpdateDisplayCursor()
return;
}

if (_gripperCursor == GridSplitter.GripperCursorType.Default)
if (_gripperCursor == GripperCursorType.Default)
{
if (_gridSplitterDirection == GridSplitter.GridResizeDirection.Columns)
if (_gridSplitterDirection == GridResizeDirection.Columns)
{
// Window.Current.CoreWindow.PointerCursor = GridSplitter.ColumnsSplitterCursor;
}
else if (_gridSplitterDirection == GridSplitter.GridResizeDirection.Rows)
else if (_gridSplitterDirection == GridResizeDirection.Rows)
{
// Window.Current.CoreWindow.PointerCursor = GridSplitter.RowSplitterCursor;
}
}
else
{
var inputSystemCursorShape = (InputSystemCursorShape)((int)_gripperCursor);
if (_gripperCursor == GridSplitter.GripperCursorType.Custom)
if (_gripperCursor == GripperCursorType.Custom)
{
if (_gripperCustomCursorResource > GridSplitter.GripperCustomCursorDefaultResource)
{
Expand Down
Loading
Loading