using System.Runtime.InteropServices;
using System.Text;
-namespace Crow.Drawing {
+namespace Crow.Drawing {
[Obsolete ("Renamed Cairo.Context per suggestion from cairo binding guidelines.")]
public class Graphics : Context {
public class GLSurface : Surface
{
-
public GLSurface (IntPtr ptr, bool own) : base (ptr, own)
{}
{
/// <summary>
/// base class for new containers that will use templates.
- ///
+ ///
/// TemplatedControl's **must** provide a widget of the [`Container`](Container) class named **_'Content'_** inside their template tree
/// </summary>
public class TemplatedContainer : TemplatedControl
namespace Crow
{
/// <summary>
- /// Base class for all templated widget
+ /// Base class for all templated widget.
/// </summary>
public abstract class TemplatedControl : PrivateContainer
{
/// Template path or IML fragment.
/// </summary>
/// <remark>
- /// The 'null' default value with the 'NOT_SET' field init value force a loading
- /// of the default template by passing the first equality check.
+ /// If both Template property and inline template are present, the second has priority.
/// </remark>
[DefaultValue(null)]
public string Template {
get => _template;
set {
+ //The 'null' default value with the 'NOT_SET' field init value force a loading
+ // of the default template by passing the first equality check.
if (_template == value)
return;
_template = value;
#endregion
/// <summary>
- /// Loads the template. Each TemplatedControl MUST provide a default template
- /// or have an inlined template in iml.
+ /// Loads the template. Each TemplatedControl should provide a default template
+ /// otherwise it must have an inlined template in iml.
/// It must be an embedded ressource with ID = fullTypeName.template
- /// Entry assembly is search first, then the one where the type is defined
/// </summary>
/// <Remark>
- /// Setting the default template path in style will provide an interned string for itor search.
/// </Remark>
/// <param name="template">Optional template instance</param>
protected virtual void loadTemplate(Widget template = null)
{
+ // Setting the default template path in style will provide an interned string for itor search.
if (this.child != null)//template change, bindings has to be reset
this.ClearTemplateBinding();
</p>
</h1>
-**Open source widget toolkit** and rendering engine for building portable graphical interfaces in `C#`, featuring a `declarative language` for ui called [IML](https://github.com/jpbruyere/Crow/wiki/using-iml) with [Styling](https://github.com/jpbruyere/Crow/wiki/Styling), [Templates](https://github.com/jpbruyere/Crow/wiki/Templates) and a [binding system](https://github.com/jpbruyere/Crow/wiki/first-binding) to connect your `c#` code to your `ui` components easily.
+**C.R.O.W.** is an open source widget toolkit and rendering engine for building portable graphical interfaces in `C#`.
<p align="center">
- <a href="https://github.com/jpbruyere/Crow/blob/master/Images/crowEdit.png">
+ <a href="https://github.com/jpbruyere/CrowEdit">
<kbd><img src="https://github.com/jpbruyere/Crow/blob/master/Images/crowEdit.png" height="200"></kbd>
</a>
- <a href="https://github.com/jpbruyere/Crow/blob/master/Images/chess.png">
+ <a href="https://github.com/jpbruyere/vkChess.net">
<kbd><img src="https://github.com/jpbruyere/Crow/blob/master/Images/chess.png" height="200"></kbd>
</a>
</p>
Check the [Tutorials](https://github.com/jpbruyere/Crow/wiki/Tutorials) for a quick introduction.
-The `ShowCase` sample will allow you to quickly test IML with live result.
+The `ShowCase` sample will allow you to quickly test **IML** with live result.
<p align="center">
<a href="https://github.com/jpbruyere/Crow/blob/master/Images/showCase2.png">
</a>
</p>
-Visit the [wiki](https://github.com/jpbruyere/Crow/wiki) and the samples for documentation. Due to the early state of this project and the frequent changes, some part of the docs may be outdated. C.R.O.W. is in **beta** development state, api could change, but most of it is quiet stabilized.
+Visit the [wiki](https://github.com/jpbruyere/Crow/wiki) and the [samples](https://github.com/jpbruyere/Crow/wiki/Tutorials) for documentation.
+
+_Due to the early state of this project and the frequent changes, some part of the docs may be outdated. It is in **beta** development state, api could change, but most of it is quiet stabilized._
Please report bugs and issues on [GitHub](https://github.com/jpbruyere/Crow/issues)
</HorizontalStack>
</Template>/>
<TabView MinimumSize="{../MinimumPopupSize}" Width="200" Height="200" >
- <ColorPicker Name="HSV" CurrentColor="{²../../../CurrentColor}" Background="Onyx" />
+ <ColorPicker Name="HSV" CurrentColor="{²../../../CurrentColor}" Background="Onyx" BubbleEvents="None" />
<ColorPicker IsVisible="false" Name="Names" CurrentColor="{²../../../CurrentColor}" Height="Stretched" Background="Onyx">
<Template>
<ListBox Width="Stretched" Data="{./AvailableColors}" SelectedItemChanged="./onSelectedItemChanged">
--- /dev/null
+<VerticalStack>
+ <Label Text="{../cp.CurrentColor}"/>
+ <ColorPicker IsVisible="false" Name="Names" CurrentColor="{²../../../CurrentColor}" Height="Stretched" Background="Onyx">
+ <Template>
+ <ListBox Width="Stretched" Data="{./AvailableColors}" SelectedItemChanged="./onSelectedItemChanged">
+ <Template>
+ <Scroller Name="scroller1" Margin="5" ClipToClientRect="true" Background="Onyx">
+ <Wrapper Name="ItemsContainer" Height="Fit" VerticalAlignment="Top"/>
+ </Scroller>
+ </Template>
+ <ItemTemplate>
+ <Border Width="16" Height="16" Background="{}" Foreground="Transparent" Tooltip="{}"
+ MouseEnter="{Foreground=Black}"
+ MouseLeave="{Foreground=Transparent}"/>
+ </ItemTemplate>
+ </ListBox>
+ </Template>
+ </ColorPicker>
+</VerticalStack>
\ No newline at end of file