All Projects → ramon-mendes → SciterSharp

ramon-mendes / SciterSharp

Licence: GPL-3.0 license
C# bindings for Sciter - create HTML/CSS/TIScript based native apps

Programming Languages

C#
18002 projects
HTML
75241 projects

Labels

Projects that are alternatives of or similar to SciterSharp

Red Moon
Android screen filter app for night time phone use.
Stars: ✭ 476 (+480.49%)
Mutual labels:  gpl
Tofita
🍬 All-new kernel for @GreenteaOS
Stars: ✭ 112 (+36.59%)
Mutual labels:  gpl
Geist
A free text/code editor made with C++ and Qt
Stars: ✭ 27 (-67.07%)
Mutual labels:  gpl
Awesome Free Software
Curated list of free as in freedom software
Stars: ✭ 605 (+637.8%)
Mutual labels:  gpl
Reactos
A free Windows-compatible Operating System
Stars: ✭ 10,216 (+12358.54%)
Mutual labels:  gpl
Visual Composer Starter
Visual Composer Starter theme for WordPress designed to be a perfect companion for a simple and good looking website or blog.
Stars: ✭ 125 (+52.44%)
Mutual labels:  gpl
Doomretro
The classic, refined DOOM source port. For Windows PC.
Stars: ✭ 349 (+325.61%)
Mutual labels:  gpl
sciter4d
sciter4d (sciter for delphi) : 一个sciter的delphi封装库
Stars: ✭ 40 (-51.22%)
Mutual labels:  sciter
Fast
FAST App Search Tool
Stars: ✭ 96 (+17.07%)
Mutual labels:  gpl
GPLv3.md
GPLv3 in Markdown.
Stars: ✭ 27 (-67.07%)
Mutual labels:  gpl
Silex
Silex is a static website builder in the cloud.
Stars: ✭ 958 (+1068.29%)
Mutual labels:  gpl
Kaidan
[Replaced by https://invent.kde.org/network/kaidan] Kaidan, a simple and user-friendly Jabber/XMPP client for every device and platform.
Stars: ✭ 67 (-18.29%)
Mutual labels:  gpl
Frosted
Frosted: Free POSIX OS for tiny embedded devices
Stars: ✭ 194 (+136.59%)
Mutual labels:  gpl
Exim
Exim Mail Transport Agent - source, testsuite and documentation
Stars: ✭ 545 (+564.63%)
Mutual labels:  gpl
IconDrop
A free cross-platform desktop app for searching and using free SVG icons
Stars: ✭ 23 (-71.95%)
Mutual labels:  sciter
Servuo
An Ultima Online server emulator written in C# .NET
Stars: ✭ 378 (+360.98%)
Mutual labels:  gpl
Vifm
Vifm is a file manager with curses interface, which provides Vim-like environment for managing objects within file systems, extended with some useful ideas from mutt.
Stars: ✭ 1,822 (+2121.95%)
Mutual labels:  gpl
QPrompt
Personal teleprompter software for all video creators. Built with ease of use, productivity, control accuracy, and smooth performance in mind.
Stars: ✭ 168 (+104.88%)
Mutual labels:  gpl
temps-lite
A smart, good-looking little app which tries to speak your language the way you are used to.
Stars: ✭ 40 (-51.22%)
Mutual labels:  sciter
runuo-nerun-distro
Nerun's Distro is a script for RunUO centered on the settlement of the game, using the Premium Spawner engine. Easy to use, this distro includes spawns for a 100% spawned world, and tutorials in english and portuguese.
Stars: ✭ 19 (-76.83%)
Mutual labels:  gpl

Windows NuGet: NuGet

Linux/MONO/GTK NuGet: NuGet

OSX/Xamarin.Mac NuGet: NuGet

Cross-platform Sciter bindings for .NET

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, <video>, ... Sciter is free for commercial use. If you want to use SciterSharp in a commercial product you should acquire a commercial license.

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

Documentation

Introductory walk-through for writing apps with SciterSharp

Wednesday CODE

Desktop cross-platform demo app + source-code

Native C# API with SciterEventHandler and reflection

Get help

SciterSharp C# Forum


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

Sciter Bootstrap

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).

NuGet

Windows package:
PM> Install-Package SciterSharpWindows

Linux/GTK+3/Mono package:
PM> Install-Package SciterSharpGTK

OSX/Mono package:
PM> Install-Package SciterSharpOSX

From Source

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.

Requirements

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'

Linux/Mono/GTK+3

  • 64bit distro
  • Mono installation
  • Install Sciter lib through the install-libsciter.sh script inside the download package

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:

  • GTK+3: sudo apt-get install libgtk-3-0
  • libcurl: probably already installed in your distro

OSX/Mono

WinForms and WPF

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:

Know Issues

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));

Classes API

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:

  • class SciterWindow: API for creating a native window by PInvoke/SciterCreateWindow(), loading of HTML page via PInvoke/SciterLoadPage(), and message processing via callback for PInvoke/SciterCreateWindow()
  • abstract class SciterHost: handling of host notifications generated by Sciter via PInvoke/SciterSetCallback(); attaching of event-handlers; registration of behaviors handlers (behavior factory); call function/eval script; and much more host related things
  • class SciterArchive: open an archive from a binary array via PInvoke/SciterOpenArchive() and reading of file via PInvoke/SciterGetArchiveItem()
  • class SciterValue: Sciter VALUE API for manipulating/interfacing with TIScript (JSON data)
  • class SciterElement: Sciter DOM manipulation API (HELEMENT)
  • class SciterNode: Sciter DOM manipulation API (HNODE)
  • abstract class SciterEventHandler: Sciter event-handler native callback; extend this class for handling Sciter events
  • abstract class SciterDebugOutputHandler: API for handling Sciter debug messages; note that by default Sciter output messages to stdout only if SW_ENABLE_DEBUG is set when SciterCreateWindow() is called, so this class usage might be required if you need custom handling/suppress of the output
  • class SciterGraphics: Graphics native API - status: INCOMPLETE
  • class SciterImage
  • class SciterPath
  • class SciterText
  • class SciterRequest: Request native API

Todo's (help appreciated)

  • add as C# documentation all the helpful API comments found in the official Sciter SDK C headers
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].