C# bindings for Sciter - create HTML/CSS/TIScript based native apps
Windows NuGet:
Linux/MONO/GTK NuGet:
OSX/Xamarin.Mac NuGet:
This library provides bindings of Sciter C/C++ headers to the C# language. Sciter is a multi-platform HTML engine. With this library you can create C#/.NET desktop applications using not just HTML, but all the features of Sciter: CSS3, SVG, scripting, AJAX,
The source is made portable to work in Windows, Linux/GTK+3/Mono and OSX/Mono.
License: GNU GENERAL PUBLIC LICENSE Version 3
Comercial License: for inquiries, contact me
Introductory walk-through for writing apps with SciterSharp
Desktop cross-platform demo app + source-code
Native C# API with SciterEventHandler and reflection
Tools:
The Library - free app with a collection of Sciter related helpful content (like Sciter's SDK documentation), tooling, and HTML samples
Omni - desktop app with F12 tools (DOM inspecting and script debugging) for assisting the development of the HTML/CSS for Sciter pages
OmniCode - Visual Studio extension that brings a full-featured TIScript and CSS editor for writing your HTML based code for Sciter technology
OmniView - Visual Studio extension to preview Sciter HTML content
OmniLite - handy signed macOS desktop tool for previewing Sciter HTML
Quick start your desktop app with our Sciter Bootstrap on-line tool.
All projects come with this library already configured and the necessary boilterplate code to create a Sciter window and load its initial HTML file.
The cross-platform template contains a solution with 3 projects, allowing you to build for Windows (Visual Studio), for OSX (Visual Studio MAC), and for Linux (MonoDevelop).
Windows package:
PM> Install-Package SciterSharpWindows
Linux/GTK+3/Mono package:
PM> Install-Package SciterSharpGTK
OSX/Mono package:
PM> Install-Package SciterSharpOSX
Clone the repository and compile the project for your platform. In your project, add the resulting SciterSharpWindows.dll, SciterSharpGTK.dll or SciterSharpOSX.dll as a reference.
Windows
= .NET 4.5
For running your desktop app, you need to make sure that your program can find sciter.dll, and make sure to use the correct version for your application, depending if it is 32bits or 64bits. So go and grab a copy from Sciter SDK, I don't redistribute it in any form. The best way is to put a copy of the DLL in the bin/Debug/ and bin/Release/ folders or simply add it to Windows PATH, as your prefer.
In Visual Studio, make sure to enable native debugging so you will see Sciter error messages in the Output window: Project Properties / Debug / Check 'Enable native code debugging'
You need to add libsciter-gtk-64.so shared library to your path. The easiest way is to use the download the script from here and run it in a terminal with: sudo bash install-libsciter.sh
The Sciter native library requires the following packages:
sudo apt-get install libgtk-3-0
You can easily create a Sciter child window for you WinForms or WPF application. For samples, you can look at the two samples project included in this repo: Tests/TestWinForms and Tests/TestWPF.
Tutorials:
Sciter have problems with video cards of old computers because the engine by default, is GPU accelerated. For me, in an old notebook I have, the execution hangs when I create the Sciter window. The solution is to switch the graphic engine to non-GPU mode, that is, CPU only. It's possible through the following Sciter API call:
SciterX.API.SciterSetOption(wnd._hwnd, SciterXDef.SCITER_RT_OPTIONS.SCITER_SET_GFX_LAYER,
new IntPtr(SciterXDef.GFX_LAYER.GFX_LAYER_WARP));
--or--
new IntPtr(SciterXDef.GFX_LAYER.GFX_LAYER_GDI));
The API is a complete OO wrap over Sciter C API making things more intuitive and organized. There are 2 namespaces:
SciterSharp
- Public main instatiable classes.
SciterSharp.Interop
- Internal static classes, PInvoke definitions, Sciter ABI.
Here is a summary of the classes from SciterSharp namespace and their mapping over the official SDK C/C++ headers: