aboutsummaryrefslogtreecommitdiffstatsci
path: root/src/GraphicObjects
diff options
context:
space:
mode:
Diffstat (limited to 'src/GraphicObjects')
-rw-r--r--src/GraphicObjects/Border.cs7
-rw-r--r--src/GraphicObjects/GraphicObject.cs12
-rw-r--r--src/GraphicObjects/HueSelector.cs8
-rw-r--r--src/GraphicObjects/NumericControl.cs2
-rw-r--r--src/GraphicObjects/SaturationValueSelector.cs2
-rw-r--r--src/GraphicObjects/TabItem.cs3
-rw-r--r--src/GraphicObjects/TemplatedControl.cs3
-rw-r--r--src/GraphicObjects/TestCairoPatch.cs148
-rw-r--r--src/GraphicObjects/Trend.cs3
9 files changed, 171 insertions, 17 deletions
diff --git a/src/GraphicObjects/Border.cs b/src/GraphicObjects/Border.cs
index a7c039c3..569315cc 100644
--- a/src/GraphicObjects/Border.cs
+++ b/src/GraphicObjects/Border.cs
@@ -28,6 +28,7 @@ using System;
using System.Xml.Serialization;
using System.ComponentModel;
using System.Diagnostics;
+using Cairo;
namespace Crow
{
@@ -126,7 +127,7 @@ namespace Crow
int tmp = base.measureRawSize (lt);
return tmp < 0 ? tmp : tmp + 2 * BorderWidth;
}
- protected override void onDraw (Cairo.Context gr)
+ protected override void onDraw (Context gr)
{
drawborder2 (gr);
@@ -141,7 +142,7 @@ namespace Crow
child.Paint (ref gr);
gr.Restore ();
}
- void drawborder2(Cairo.Context gr){
+ void drawborder2(Context gr){
Rectangle rBack = new Rectangle (Slot.Size);
//rBack.Inflate (-Margin);
@@ -228,7 +229,7 @@ namespace Crow
}
}
}
- void drawborder1(Cairo.Context gr){
+ void drawborder1(Context gr){
Rectangle rBack = new Rectangle (Slot.Size);
//rBack.Inflate (-Margin);
diff --git a/src/GraphicObjects/GraphicObject.cs b/src/GraphicObjects/GraphicObject.cs
index 2523810e..b7ca11f6 100644
--- a/src/GraphicObjects/GraphicObject.cs
+++ b/src/GraphicObjects/GraphicObject.cs
@@ -38,7 +38,7 @@ using Crow.IML;
namespace Crow
{
/// <summary>
- /// This is the base class for all the graphic trees elements
+ /// The base class for all the graphic tree elements.
/// </summary>
public class GraphicObject : ILayoutable, IValueChange, IDisposable
{
@@ -1375,7 +1375,7 @@ namespace Crow
#region Rendering
/// <summary> This is the common overridable drawing routine to create new widget </summary>
- protected virtual void onDraw(Cairo.Context gr)
+ protected virtual void onDraw(Context gr)
{
#if DEBUG_UPDATE
Debug.WriteLine (string.Format("OnDraw -> {0}", this.ToString ()));
@@ -1400,13 +1400,13 @@ namespace Crow
if (bmp != null)
bmp.Dispose ();
bmp = new ImageSurface (Format.Argb32, Slot.Width, Slot.Height);
- using (Cairo.Context gr = new Cairo.Context (bmp)) {
+ using (Context gr = new Context (bmp)) {
gr.Antialias = Interface.Antialias;
onDraw (gr);
}
bmp.Flush ();
}
- protected virtual void UpdateCache(Cairo.Context ctx){
+ protected virtual void UpdateCache(Context ctx){
#if DEBUG_UPDATE
Debug.WriteLine (string.Format("UpdateCache -> {0}", this.ToString ()));
#endif
@@ -1425,7 +1425,7 @@ namespace Crow
}
/// <summary> Chained painting routine on the parent context of the actual cached version
/// of the widget </summary>
- public virtual void Paint (ref Cairo.Context ctx)
+ public virtual void Paint (ref Context ctx)
{
#if DEBUG_UPDATE
Debug.WriteLine (string.Format("Paint -> {0}", this.ToString ()));
@@ -1461,7 +1461,7 @@ namespace Crow
LastPaintedSlot = Slot;
}
}
- void paintDisabled(Cairo.Context gr, Rectangle rb){
+ void paintDisabled(Context gr, Rectangle rb){
gr.Operator = Operator.Xor;
gr.SetSourceRGBA (0.6, 0.6, 0.6, 0.3);
gr.Rectangle (rb);
diff --git a/src/GraphicObjects/HueSelector.cs b/src/GraphicObjects/HueSelector.cs
index a94053fd..08c84deb 100644
--- a/src/GraphicObjects/HueSelector.cs
+++ b/src/GraphicObjects/HueSelector.cs
@@ -67,11 +67,13 @@ namespace Crow
RegisterForRedraw ();
}
}
- protected override void onDraw (Cairo.Context gr)
+ protected override void onDraw (Context gr)
{
base.onDraw (gr);
Rectangle r = ClientRectangle;
+ r.Height -= 4;
+ r.Y += 2;
Gradient.Type gt = Gradient.Type.Horizontal;
if (Orientation == Orientation.Vertical)
@@ -111,9 +113,9 @@ namespace Crow
r.Y = mousePos.Y - 2;
}
- CairoHelpers.CairoRectangle (ctx, r, 2);
+ CairoHelpers.CairoRectangle (ctx, r, 1);
ctx.SetSourceColor (Color.White);
- ctx.LineWidth = 2.0;
+ ctx.LineWidth = 1.0;
ctx.Stroke();
ctx.Restore ();
}
diff --git a/src/GraphicObjects/NumericControl.cs b/src/GraphicObjects/NumericControl.cs
index d8fdead4..21cb1961 100644
--- a/src/GraphicObjects/NumericControl.cs
+++ b/src/GraphicObjects/NumericControl.cs
@@ -113,7 +113,7 @@ namespace Crow
RegisterForRedraw ();
}
}
- [XmlAttributeAttribute][DefaultValue(0.0)]
+ [DefaultValue(0.0)]
public double Value
{
get { return _actualValue; }
diff --git a/src/GraphicObjects/SaturationValueSelector.cs b/src/GraphicObjects/SaturationValueSelector.cs
index 8d726685..b0bf270e 100644
--- a/src/GraphicObjects/SaturationValueSelector.cs
+++ b/src/GraphicObjects/SaturationValueSelector.cs
@@ -65,7 +65,7 @@ namespace Crow
RegisterForRedraw ();
}
}
- protected override void onDraw (Cairo.Context gr)
+ protected override void onDraw (Context gr)
{
base.onDraw (gr);
diff --git a/src/GraphicObjects/TabItem.cs b/src/GraphicObjects/TabItem.cs
index 2fdc3802..9dfff864 100644
--- a/src/GraphicObjects/TabItem.cs
+++ b/src/GraphicObjects/TabItem.cs
@@ -28,6 +28,7 @@ using System;
using System.Xml.Serialization;
using System.ComponentModel;
using System.Diagnostics;
+using Cairo;
namespace Crow
{
@@ -105,7 +106,7 @@ namespace Crow
NotifyValueChanged ("IsSelected", isSelected);
}
}
- protected override void onDraw (Cairo.Context gr)
+ protected override void onDraw (Context gr)
{
gr.Save ();
diff --git a/src/GraphicObjects/TemplatedControl.cs b/src/GraphicObjects/TemplatedControl.cs
index 01ba22c2..6e236c8d 100644
--- a/src/GraphicObjects/TemplatedControl.cs
+++ b/src/GraphicObjects/TemplatedControl.cs
@@ -34,6 +34,7 @@ using System.Linq;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
+using Cairo;
namespace Crow
{
@@ -105,7 +106,7 @@ namespace Crow
///this allow applying root background to random template's component
/// </summary>
/// <param name="gr">Backend context</param>
- protected override void onDraw (Cairo.Context gr)
+ protected override void onDraw (Context gr)
{
gr.Save ();
diff --git a/src/GraphicObjects/TestCairoPatch.cs b/src/GraphicObjects/TestCairoPatch.cs
new file mode 100644
index 00000000..f155d3c0
--- /dev/null
+++ b/src/GraphicObjects/TestCairoPatch.cs
@@ -0,0 +1,148 @@
+//
+// TestCairoPatch.cs
+//
+// Author:
+// jp <>
+//
+// Copyright (c) 2013-2017 Jean-Philippe Bruyère
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using Cairo;
+
+namespace Crow
+{
+ public class TestCairoPatch : GraphicObject
+ {
+ void computeControlPoints (
+ double xc, double yc,
+ double x1, double y1,
+ out double x2, out double y2,
+ out double x3, out double y3,
+ double x4, double y4){
+ double ax = x1 - xc;
+ double ay = y1 - yc;
+ double bx = x4 - xc;
+ double byy = y4 - yc;
+ double q1 = ax * ax + ay * ay;
+ double q2 = q1 + ax * bx + ay * byy;
+ double k2 = 4.0/3.0 * (Math.Sqrt(2.0 * q1 * q2) - q2) / (ax * byy - ay * bx);
+
+
+ x2 = xc + ax - k2 * ay;
+ y2 = yc + ay + k2 * ax;
+ x3 = xc + bx + k2 * byy;
+ y3 = yc + byy - k2 * bx;
+ }
+ protected override void onDraw (Context gr)
+ {
+ base.onDraw (gr);
+
+ double radius = 100;
+
+ double pi3 = Math.PI / 3.0;
+
+ MeshPattern mp = new MeshPattern ();
+
+ double x1 = radius,y1 = 0,
+ x2 = 0, y2 = 0, x3 = 0, y3 = 0, x4 = 0, y4 = 0,
+ xc = radius,yc = radius;
+
+ double dx = Math.Sin (pi3) * radius;
+ double dy = Math.Cos (pi3) * radius;
+
+ mp.BeginPatch ();
+ mp.MoveTo (xc, yc);
+ mp.LineTo (x1, y1);
+ x4 = xc + dx;
+ y4 = yc - dy;
+ computeControlPoints (xc, yc, x1, y1, out x2, out y2, out x3, out y3, x4, y4);
+ mp.CurveTo (x2, y2, x3, y3, x4, y4);
+
+ mp.SetCornerColorRGB (0, 1, 1, 1);
+ mp.SetCornerColorRGB (1, 1, 0, 0);
+ mp.SetCornerColorRGB (2, 1, 1, 0);
+
+ x1 = x4;
+ y1 = y4;
+ y4 = yc + dy;
+
+ computeControlPoints (xc, yc, x1, y1, out x2, out y2, out x3, out y3, x4, y4);
+ mp.CurveTo (x2, y2, x3, y3, x4, y4);
+
+ mp.SetCornerColorRGB (3, 0, 1, 0);
+ mp.EndPatch ();
+
+ x1 = x4;
+ y1 = y4;
+ x4 = xc;
+ y4 = yc * 2.0;
+
+ mp.BeginPatch ();
+ mp.MoveTo (xc, yc);
+ mp.LineTo (x1, y1);
+ computeControlPoints (xc, yc, x1, y1, out x2, out y2, out x3, out y3, x4, y4);
+ mp.CurveTo (x2, y2, x3, y3, x4, y4);
+
+ mp.SetCornerColorRGB (0, 1, 1, 1);
+ mp.SetCornerColorRGB (1, 0, 1, 0);
+ mp.SetCornerColorRGB (2, 0, 1, 1);
+
+ x1 = x4;
+ y1 = y4;
+ x4 = xc-dx;
+ y4 = yc+dy;
+
+ computeControlPoints (xc, yc, x1, y1, out x2, out y2, out x3, out y3, x4, y4);
+ mp.CurveTo (x2, y2, x3, y3, x4, y4);
+
+ mp.SetCornerColorRGB (3, 0, 0, 1);
+ mp.EndPatch ();
+
+ x1 = x4;
+ y1 = y4;
+ y4 = yc - dy;
+
+ mp.BeginPatch ();
+ mp.MoveTo (xc, yc);
+ mp.LineTo (x1, y1);
+ computeControlPoints (xc, yc, x1, y1, out x2, out y2, out x3, out y3, x4, y4);
+ mp.CurveTo (x2, y2, x3, y3, x4, y4);
+
+ mp.SetCornerColorRGB (0, 1, 1, 1);
+ mp.SetCornerColorRGB (1, 0, 0, 1);
+ mp.SetCornerColorRGB (2, 1, 0, 1);
+
+ x1 = x4;
+ y1 = y4;
+ x4 = radius;
+ y4 = 0;
+
+ computeControlPoints (xc, yc, x1, y1, out x2, out y2, out x3, out y3, x4, y4);
+ mp.CurveTo (x2, y2, x3, y3, x4, y4);
+
+ mp.SetCornerColorRGB (3, 1, 0, 0);
+ mp.EndPatch ();
+
+ gr.SetSource (mp);
+ gr.Paint ();
+ }
+ }
+}
+
diff --git a/src/GraphicObjects/Trend.cs b/src/GraphicObjects/Trend.cs
index 50a1e56f..055c870d 100644
--- a/src/GraphicObjects/Trend.cs
+++ b/src/GraphicObjects/Trend.cs
@@ -28,6 +28,7 @@ using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.ComponentModel;
+using Cairo;
namespace Crow
{
@@ -139,7 +140,7 @@ namespace Crow
RegisterForRedraw ();
}
}
- protected override void onDraw (Cairo.Context gr)
+ protected override void onDraw (Context gr)
{
base.onDraw (gr);