blob: 8018981e99b5d26e6374c13a886d5ee2b9619075 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
<h1 align="center">
<br>
<a href="http://www.amitmerchant.com/electron-markdownify">
<img src="https://github.com/jpbruyere/Crow/blob/master/Images/Icons/crow.png" alt="C.R.O.W." width="140">
</a>
<br>
<br>
C# Rapid Open Widgets
<br>
<p align="center">
<a href="https://gitter.im/CSharpRapidOpenWidgets?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge">
<img src="https://badges.gitter.im/CSharpRapidOpenWidgets.svg">
</a>
<a href="https://www.paypal.me/GrandTetraSoftware">
<img src="https://img.shields.io/badge/Donate-PayPal-green.svg">
</a>
<a href="https://www.nuget.org/packages/Crow.OpenTK">
<img src="https://buildstats.info/nuget/Crow.OpenTK">
</a>
<a href="https://travis-ci.org/jpbruyere/Crow">
<img src="https://travis-ci.org/jpbruyere/Crow.svg?branch=master">
</a>
<a href="https://ci.appveyor.com/project/jpbruyere/Crow">
<img src="https://ci.appveyor.com/api/projects/status/j387lo59vnov8jbc?svg=true">
</a>
</p>
</h1>
## Presentation
**C.R.O.W.** is a [widget toolkit](https://en.wikipedia.org/wiki/Widget_toolkit) and rendering engine entirely developed in **C#**, offering a nice trade-off between complexity of language and performances. Crow provides a declarative interface language with styling and templates called [IML](interface-markup-language) for **Interface Markup Language** similar to [XAML](https://en.wikipedia.org/wiki/Extensible_Application_Markup_Language) and a binding system for easy c# code linking.
<p align="center">
<a href="https://github.com/jpbruyere/Crow/blob/master/Images/screenshot.png">
<img src="https://github.com/jpbruyere/Crow/blob/master/Images/screenshot.png" width="400">
</a>
</p>
#### Features
- [Declarative interface definition](https://github.com/jpbruyere/Crow/wiki/interface-markup-language).
- [Templates](https://github.com/jpbruyere/Crow/wiki/Templates)
- [Styling](https://github.com/jpbruyere/Crow/wiki/Styling)
- [Dynamic binding system](https://github.com/jpbruyere/Crow/wiki/The-binding-system)
- SVG rendering (with [rsvg library](https://developer.gnome.org/rsvg/))
#### Documentation
* [Introduction](https://github.com/jpbruyere/Crow/wiki)
* [Classes documentation autogenerated from doxygen](https://github.com/jpbruyere/Crow/wiki/index)
* [Tutorials](https://github.com/jpbruyere/Crow/wiki/Tutorials)
Please report bugs and issues on [GitHub](https://github.com/jpbruyere/Crow/issues)
-------------------
## Getting Start
### Requirements
- [mono >= 5.0](http://www.mono-project.com/download/)
- [Cairo Graphic Library](https://cairographics.org/) >= 1.20
- [rsvg library](https://developer.gnome.org/rsvg/) for svg rendering
- [nuget](https://www.nuget.org/).
### Building from source
_[Git](https://git-scm.com) has to be installed._
```bash
git clone https://github.com/jpbruyere/Crow.git # Download source code from github
cd Crow # Enter the source directory
nuget restore Crow.sln # Restore nuget packages
xbuild /p:Configuration=Release Crow.sln # Build with Mono
```
### Using nuget
* add [Crow.OpenTK NuGet package](https://www.nuget.org/packages/Crow.OpenTK/) to your project.
* Derive **CrowWindow** class.
* Load some widget in the **OnLoad** override with `CrowWindow.Load` .
* Build your project with **mono**. (**xbuild**)
- copy **Crow.dll.config** to output directory if you have trouble finding native libs.
|