PowBasics.WinForms 0.0.9

There is a newer version of this package available.
See the version list below for details.
dotnet add package PowBasics.WinForms --version 0.0.9                
NuGet\Install-Package PowBasics.WinForms -Version 0.0.9                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="PowBasics.WinForms" Version="0.0.9" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add PowBasics.WinForms --version 0.0.9                
#r "nuget: PowBasics.WinForms, 0.0.9"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install PowBasics.WinForms as a Cake Addin
#addin nuget:?package=PowBasics.WinForms&version=0.0.9

// Install PowBasics.WinForms as a Cake Tool
#tool nuget:?package=PowBasics.WinForms&version=0.0.9                

PowBasics Library Collection

Table of content

Introduction

This is a collection of utility functions I found I often need in my projects. They are split over 3 packages:

  • PowBasics General utility functions (no dependencies)
  • PowBasics.Geom Structs & utils for Rectangles, points, margins... (no dependencies)
  • PowBasics.WinForms Utilities for WinForms depends on WinForms
  • PowBasics.Rx Utilities for reactive extensions depends on System.Reactive

PowBasics

Math

public static class MathUtils
{
    // Cap a number between 2 bounds (inclusive)
    int Cap(int val, int min, int max);

    /*
      Compute the minimum number of multiples of b we need to be at least a
      Note: this is not the same as integer division.
      Integer division: 7 / 3 = 2 (but 2*3=6 doesn't cover/fill 7 completely)
      FillingDiv(7, 3) = 3
    */
    int FillingDiv(int a, int b);
}

PowBasics.Geom

It contains :

  • records for points, size, rectangles (both with int & double coordinates)
  • records for margins and padding

It has all the operations you'd expect either as member methods or extension methods. Including:

  • + & - operators between rectangles (R) and margins & paddings (Marg && Pad)
  • Mirror operations for margins & paddings. (Swaps x and y coordinates)
record Pt(int X, int Y);
record R(int X, int Y, int Width, int Height);
record Sz(int Width, int Height);

record VecPt(double X, double Y);
record VecR(VecPt Min, VecPt Max);

enum Dir { Horiz, Vert }

interface IMarg {
    int Top { get; }
    int Right { get; }
    int Bottom { get; }
    int Left { get; }
}

record Marg(int Top, int Right, int Bottom, int Left) : IMarg;
record Pad(int Top, int Right, int Bottom, int Left, int InBetween) : IMarg;

PowBasics.WinForms

PowBasics.Rx

License

MIT

Product Compatible and additional computed target framework versions.
.NET net7.0-windows7.0 is compatible.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on PowBasics.WinForms:

Package Downloads
PowRxVar.WinForms

Composable reactive variables

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.0.10 170 5/28/2023
0.0.9 136 5/28/2023
0.0.6 318 11/26/2022
0.0.5 339 11/26/2022
0.0.4 340 11/15/2022