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; return Pango.Alignment.Left;
} }
if (alignment == Perspex.Media.TextAlignment.Center) if (alignment == Perspex.Media.TextAlignment.Centered)
{ {
return Pango.Alignment.Center; 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()); this.context.CurveTo(cto.Point.ToCairo(), cto.Point2.ToCairo(), cto.Point3.ToCairo());
} }
} }
System.Diagnostics.Debug.WriteLine("Render");
if (useFill) if (useFill)
{ {
this.context.FillPreserve(); this.context.FillPreserve();
@ -205,7 +204,6 @@ namespace Perspex.Cairo.Media
/// <param name="rect">The rectangle bounds.</param> /// <param name="rect">The rectangle bounds.</param>
public void FillRectange(Perspex.Media.Brush brush, Rect rect) public void FillRectange(Perspex.Media.Brush brush, Rect rect)
{ {
this.SetBrush(brush); this.SetBrush(brush);
this.context.Rectangle(rect.ToCairo()); this.context.Rectangle(rect.ToCairo());
this.context.Fill(); this.context.Fill();
@ -268,7 +266,6 @@ namespace Perspex.Cairo.Media
{ {
this.SetBrush(pen.Brush); this.SetBrush(pen.Brush);
this.context.LineWidth = pen.Thickness; 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(IPlatformHandle handle, double width, double height)
{ {
} }
public Renderer(ImageSurface surface) public Renderer(ImageSurface surface)
{ {
this.surface = surface; this.surface = surface;

2
Perspex.Controls/Shapes/Shape.cs

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

4
Perspex.SceneGraph/Platform/IRenderTargetBitmapImpl.cs

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

29
TestApplication/Program.cs

@ -17,6 +17,9 @@ using Perspex.Gtk;
#endif #endif
using ReactiveUI; using ReactiveUI;
using Splat; using Splat;
using Serilog;
using Serilog.Filters;
using Serilog.Events;
namespace TestApplication namespace TestApplication
{ {
@ -262,6 +265,8 @@ namespace TestApplication
private static TabItem ButtonsTab() private static TabItem ButtonsTab()
{ {
Button defaultButton; Button defaultButton;
var showDialog = ReactiveCommand.Create();
Button showDialogButton; Button showDialogButton;
var result = new TabItem var result = new TabItem
@ -279,6 +284,7 @@ namespace TestApplication
(showDialogButton = new Button (showDialogButton = new Button
{ {
Content = "Button", Content = "Button",
Command = showDialog,
[ToolTip.TipProperty] = "Hello World!", [ToolTip.TipProperty] = "Hello World!",
}), }),
new Button new Button
@ -334,6 +340,29 @@ namespace TestApplication
defaultButton.Content = ((string)defaultButton.Content == "Default") ? "Clicked" : "Default"; 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; return result;
} }

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

@ -37,7 +37,6 @@ namespace Perspex.Direct2D1.Media
public void BeginFigure(Point startPoint, bool isFilled) 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); this.sink.BeginFigure(startPoint.ToSharpDX(), isFilled ? FigureBegin.Filled : FigureBegin.Hollow);
} }

Loading…
Cancel
Save