Browse Source

Began implementing Geometry support for Cairo/Gtk

pull/59/head
Nelson Carrillo 11 years ago
parent
commit
95d5ce56a4
  1. 2
      Cairo/Perspex.Cairo/CairoExtensions.cs
  2. 5
      Cairo/Perspex.Cairo/Media/DrawingContext.cs
  3. 2
      Cairo/Perspex.Cairo/Renderer.cs
  4. 2
      Perspex.Controls/Shapes/Shape.cs
  5. 4
      Perspex.SceneGraph/Platform/IRenderTargetBitmapImpl.cs
  6. 29
      TestApplication/Program.cs
  7. 1
      Windows/Perspex.Direct2D1/Media/StreamGeometryContextImpl.cs

2
Cairo/Perspex.Cairo/CairoExtensions.cs

@ -76,7 +76,7 @@ namespace Perspex.Cairo
return Pango.Alignment.Left;
}
if (alignment == Perspex.Media.TextAlignment.Center)
if (alignment == Perspex.Media.TextAlignment.Centered)
{
return Pango.Alignment.Center;
}

5
Cairo/Perspex.Cairo/Media/DrawingContext.cs

@ -158,8 +158,7 @@ namespace Perspex.Cairo.Media
this.context.CurveTo(cto.Point.ToCairo(), cto.Point2.ToCairo(), cto.Point3.ToCairo());
}
}
System.Diagnostics.Debug.WriteLine("Render");
if (useFill)
{
this.context.FillPreserve();
@ -205,7 +204,6 @@ namespace Perspex.Cairo.Media
/// <param name="rect">The rectangle bounds.</param>
public void FillRectange(Perspex.Media.Brush brush, Rect rect)
{
this.SetBrush(brush);
this.context.Rectangle(rect.ToCairo());
this.context.Fill();
@ -268,7 +266,6 @@ namespace Perspex.Cairo.Media
{
this.SetBrush(pen.Brush);
this.context.LineWidth = pen.Thickness;
}
}
}

2
Cairo/Perspex.Cairo/Renderer.cs

@ -31,7 +31,7 @@ namespace Perspex.Cairo
public Renderer(IPlatformHandle handle, double width, double height)
{
}
public Renderer(ImageSurface surface)
{
this.surface = surface;

2
Perspex.Controls/Shapes/Shape.cs

@ -39,8 +39,6 @@ namespace Perspex.Controls.Shapes
Control.AffectsRender(StrokeProperty);
Control.AffectsRender(StrokeDashArrayProperty);
Control.AffectsMeasure(StrokeThicknessProperty);
}
public abstract Geometry DefiningGeometry

4
Perspex.SceneGraph/Platform/IRenderTargetBitmapImpl.cs

@ -4,10 +4,10 @@
// </copyright>
// -----------------------------------------------------------------------
using System;
namespace Perspex.Platform
{
using System;
public interface IRenderTargetBitmapImpl : IBitmapImpl, IDisposable
{
void Render(IVisual visual);

29
TestApplication/Program.cs

@ -17,6 +17,9 @@ using Perspex.Gtk;
#endif
using ReactiveUI;
using Splat;
using Serilog;
using Serilog.Filters;
using Serilog.Events;
namespace TestApplication
{
@ -262,6 +265,8 @@ namespace TestApplication
private static TabItem ButtonsTab()
{
Button defaultButton;
var showDialog = ReactiveCommand.Create();
Button showDialogButton;
var result = new TabItem
@ -279,6 +284,7 @@ namespace TestApplication
(showDialogButton = new Button
{
Content = "Button",
Command = showDialog,
[ToolTip.TipProperty] = "Hello World!",
}),
new Button
@ -334,6 +340,29 @@ namespace TestApplication
defaultButton.Content = ((string)defaultButton.Content == "Default") ? "Clicked" : "Default";
};
showDialog.Subscribe(async _ =>
{
var close = ReactiveCommand.Create();
var dialog = new Window
{
Content = new StackPanel
{
Width = 200,
Height = 200,
Children = new Controls
{
new Button { Content = "Yes", Command = close, CommandParameter = "Yes" },
new Button { Content = "No", Command = close, CommandParameter = "No" },
}
}
};
close.Subscribe(x => dialog.Close(x));
showDialogButton.Content = await dialog.ShowDialog<string>();
});
return result;
}

1
Windows/Perspex.Direct2D1/Media/StreamGeometryContextImpl.cs

@ -37,7 +37,6 @@ namespace Perspex.Direct2D1.Media
public void BeginFigure(Point startPoint, bool isFilled)
{
System.Diagnostics.Debug.WriteLine("IS FILLED {0}", isFilled);
this.sink.BeginFigure(startPoint.ToSharpDX(), isFilled ? FigureBegin.Filled : FigureBegin.Hollow);
}

Loading…
Cancel
Save