CPF/CPF.ReoGrid/GenericExtends.cs

142 lines
3.2 KiB
C#
Raw Permalink Normal View History

2024-06-24 10:15:59 +08:00
using System;
using System.Collections.Generic;
using CPF.Drawing;
using CPF.ReoGrid.Views;
namespace CPF.ReoGrid
{
internal static class GenericExtends
{
public static bool Has(this PlainStyleFlag flag, PlainStyleFlag target)
{
return (flag & target) == target;
}
public static bool HasAny(this PlainStyleFlag flag, PlainStyleFlag target)
{
return (flag & target) > PlainStyleFlag.None;
}
public static void Set(this PlainStyleFlag flag, PlainStyleFlag target)
{
flag |= target;
}
public static void Unset(this PlainStyleFlag flag, PlainStyleFlag target)
{
flag &= ~target;
}
public static bool Has(this BorderPositions pos, BorderPositions target)
{
return (pos & target) == target;
}
public static bool HasAny(this BorderPositions pos, BorderPositions target)
{
return (pos & target) > BorderPositions.None;
}
internal static bool Has(this ViewTypes pos, ViewTypes target)
{
return (pos & target) == target;
}
internal static bool HasAny(this ViewTypes pos, ViewTypes target)
{
return (pos & target) > ViewTypes.None;
}
public static bool Has(this WorksheetSettings settings, WorksheetSettings target)
{
return (settings & target) == target;
}
public static bool HasAny(this WorksheetSettings settings, WorksheetSettings target)
{
return (settings & target) > WorksheetSettings.None;
}
public static WorksheetSettings Add(this WorksheetSettings settings, WorksheetSettings target)
{
return settings |= target;
}
public static WorksheetSettings Remove(this WorksheetSettings settings, WorksheetSettings target)
{
return settings &= ~target;
}
public static bool Has(this WorkbookSettings settings, WorkbookSettings target)
{
return (settings & target) == target;
}
public static bool HasAny(this WorkbookSettings settings, WorkbookSettings target)
{
return (settings & target) > WorkbookSettings.None;
}
public static WorkbookSettings Add(this WorkbookSettings settings, WorkbookSettings target)
{
return settings |= target;
}
public static WorkbookSettings Remove(this WorkbookSettings settings, WorkbookSettings target)
{
return settings &= ~target;
}
public static bool DictionaryEquals<TKey, TValue>(this IDictionary<TKey, TValue> first, IDictionary<TKey, TValue> second)
{
bool flag = first == second;
bool result;
if (flag)
{
result = true;
}
else
{
bool flag2 = first == null || second == null;
if (flag2)
{
result = false;
}
else
{
bool flag3 = first.Count != second.Count;
if (flag3)
{
result = false;
}
else
{
EqualityComparer<TValue> @default = EqualityComparer<TValue>.Default;
foreach (KeyValuePair<TKey, TValue> keyValuePair in first)
{
TValue y;
bool flag4 = !second.TryGetValue(keyValuePair.Key, out y);
if (flag4)
{
return false;
}
bool flag5 = !@default.Equals(keyValuePair.Value, y);
if (flag5)
{
return false;
}
}
result = true;
}
}
}
return result;
}
internal static bool Empty(this Point p)
{
return p.X == 0f && p.Y == 0f;
}
}
}