/LibUISharp

C# bindings for https://github.com/andlabs/libui targeting .NET Standard, and soon, .NET Framework and Mono.

Primary LanguageC#OtherNOASSERTION

LibUISharp

License

CodeFactor

LibUISharp is a library containing bindings for libui, written in C# for .NET Core (and in the future, .NET Framework and Mono).

Looking for Contributors!

Currently, I don't have the free time to make LibUISharp a complete working library on my own. Because of this, I am looking for help from the community. Whether an issue, or a new feature, nothing is to small.
While this means I will not be pushing quite as often, I will still be responing to issues and pull requests in a decently-timely manner.

Features

LibUISharp allows you to create a native GUI application running .NET Core. Please note that LibUI is in alpha development, so the native library, thus this C# library, is not stable. This library (LibUISharp) has not really been tested, yet, and may have some bugs. Check out the demos in the demos\ folder for examples.

Controls and Drawing Features:

  • AttributedText (TODO)
  • Button
  • CheckBox
  • ColorPicker
  • ComboBox
    • EditableComboBox
  • DateTimePicker
    • DatePicker
    • TimePicker
  • FileDialog
    • OpenFileDialog
    • SaveFileDialog
  • FontFeatures
  • FontPicker
  • Form
  • Grid
  • GroupBox
  • Label
  • MenuStrip
  • MenuStripItem
    • MenuStripAboutItem
    • MenuStripCheckItem
    • MenuStripPreferencesItem
    • MenuStripQuitItem
  • MessageBox
  • Panel
    • HPanel
    • VPanel
  • ProgressBar
  • RadioButtonGroup
  • Separator
    • HSeparator
    • VSeparator
  • Slider
  • SpinBox
  • Surface
    • ScrollableSurface
  • TextAttribute
    • FontFamilyAttribute
    • FontFeaturesAttribute
    • FontSizeAttribute
    • FontWeightAttribute
    • FontStretchAttribute
    • ForegroundColorAttribute
    • BackgroundColorAttribute
    • UnderlineStyleAttribute
    • UnderlineColorAttribute
  • TextBox
    • MultilineTextBox
    • PasswordBox
    • SearchBox
  • TabControl
  • TabPage
  • Window

Supported Platforms

This list is basically copied and reformatted from here.

Operating System Version Architecture Prerequiusites
Windows Client
Windows Server
7 SP1, 8.1, 10 Build 1607+
2008 R2 SP1+
x64
x64
Mac OS X 10.12+ x64
Red Hat Enterprise Linux
CentOS
Oracle Linux
7 x64 GTK+ 3.10+
Fedora 25, 26 x64 GTK+ 3.10+
Debian
Ubuntu
Linux Mint
8.7+, 9
14.04, 16.04, 17.04, 17.10
17, 18
x64 GTK+ 3.10+
openSUSE
SUSE Enterprise Linux (SLES)
42.2+
12 SP2+
x64 GTK+ 3.10+

Obtaining the Library

LibUISharp is almost up-to-par with libui and is now available on NuGet!

Just add this line to you project file:

<PackageReference Include="LibUISharp" Version="0.4.0-alpha-2/>

Building From Source

LibUISharp is built with .NET Core, so you can build LibUISharp with either Visual Studio, Visual Studio Code, or just by running a couple simple commands. Use the steps below to get started!

Any output is placed in the build\ directory.

Prerequisites

Operating System Prerequisites
Windows 7/8.1/10 .NET Core 2.0 SDK

Optional:
Visual Studio 2017 (v15.6.x)
Visual Studio Code (With the C# extension)
Mac OS X .NET Core 2.0 SDK

Optional:
Visual Studio Code (With the C# extension)
Linux .NET Core 2.0 SDK

Optional:
Visual Studio Code (With the C# extension)

Build Using Visual Studio (Windows)

Ensure you have the latest version of Visual Studio 2017 installed with the .NET Core workload.

  1. Open the LibUISharp.sln file.
  2. Then, navigate to the Build>Build Solution menu item.

Build Using Visual Studio Code (Windows/MacOS/Linux)

This section is to-be-written.

Build Using a CLI

Run the following command in a command-line interface in the root directory of this repository:

  1. `dotnet build LibUISharp.sln'

Contributing

Contributing is as easy as filing an issue, fixing a bug, or suggesting a new feature.

Please see the CONTRIBUTING.md file for more information.