diff --git a/Quik/QuikCommand.cs b/Quik/QuikCommand.cs
index cbd2a40..7d3b7a3 100644
--- a/Quik/QuikCommand.cs
+++ b/Quik/QuikCommand.cs
@@ -155,6 +155,11 @@ namespace Quik
/// The line to draw.
///
public QuikLine Line { get; }
+
+ ///
+ /// Stroke style of the line.
+ ///
+ public QuikStrokeStyle Style { get; set; }
///
/// Create a draw line command.
@@ -178,6 +183,11 @@ namespace Quik
/// The array of lines to draw.
///
public QuikLine[] Lines { get; }
+
+ ///
+ /// Stroke style of the lines.
+ ///
+ public QuikStrokeStyle Style { get; set; }
///
/// Create a draw lines command.
@@ -201,6 +211,11 @@ namespace Quik
/// The Bezier curve segments to draw.
///
public QuikBezier[] Segments;
+
+ ///
+ /// Stroke style of the curve.
+ ///
+ public QuikStrokeStyle Style { get; set; }
///
/// Create a draw Bezier curve command.
@@ -224,6 +239,21 @@ namespace Quik
/// The rectangle to draw.
///
public QuikRectangle Rectangle { get; }
+
+ ///
+ /// Stroke style of the border.
+ ///
+ public QuikStrokeStyle StrokeStyle { get; set; }
+
+ ///
+ /// Fill style of the contents.
+ ///
+ public QuikFillStyle FillStyle { get; set; }
+
+ ///
+ /// Radius for round corners.
+ ///
+ public float CornerRadius { get; set; }
///
/// Create a draw rectangle command.
@@ -247,6 +277,21 @@ namespace Quik
/// The rectangles to draw.
///
public QuikRectangle[] Rectangles { get; }
+
+ ///
+ /// Stroke style of the border.
+ ///
+ public QuikStrokeStyle StrokeStyle { get; set; }
+
+ ///
+ /// Fill style of the contents.
+ ///
+ public QuikFillStyle FillStyle { get; set; }
+
+ ///
+ /// Radius for round corners.
+ ///
+ public float CornerRadius { get; set; }
///
/// Create a draw rectangles commands.
@@ -270,6 +315,16 @@ namespace Quik
/// The ellipse to draw.
///
public QuikEllipse Ellipse { get; }
+
+ ///
+ /// Stroke style of the border.
+ ///
+ public QuikStrokeStyle StrokeStyle { get; set; }
+
+ ///
+ /// Fill style of the contents.
+ ///
+ public QuikFillStyle FillStyle { get; set; }
///
/// Create a draw ellipse command.
@@ -293,6 +348,16 @@ namespace Quik
/// The ellipses to draw.
///
public QuikEllipse[] Ellipses { get; }
+
+ ///
+ /// Stroke style of the border.
+ ///
+ public QuikStrokeStyle StrokeStyle { get; set; }
+
+ ///
+ /// Fill style of the contents.
+ ///
+ public QuikFillStyle FillStyle { get; set; }
///
/// Create a draw ellipses command.
@@ -316,6 +381,16 @@ namespace Quik
/// The triangle to draw.
///
public QuikTriangle Triangle { get; }
+
+ ///
+ /// Stroke style of the border.
+ ///
+ public QuikStrokeStyle StrokeStyle { get; set; }
+
+ ///
+ /// Fill style of the contents.
+ ///
+ public QuikFillStyle FillStyle { get; set; }
///
/// Create a draw triangle command.
@@ -339,6 +414,16 @@ namespace Quik
/// The triangles to draw.
///
public QuikTriangle[] Triangles { get; }
+
+ ///
+ /// Stroke style of the border.
+ ///
+ public QuikStrokeStyle StrokeStyle { get; set; }
+
+ ///
+ /// Fill style of the contents.
+ ///
+ public QuikFillStyle FillStyle { get; set; }
///
/// Create a draw triangles command.
@@ -363,6 +448,16 @@ namespace Quik
/// The vertices that make up the polygon.
///
public QuikVec2[] Polygon { get; }
+
+ ///
+ /// Stroke style of the border.
+ ///
+ public QuikStrokeStyle StrokeStyle { get; set; }
+
+ ///
+ /// Fill style of the contents.
+ ///
+ public QuikFillStyle FillStyle { get; set; }
///
/// Create a draw polygon command.
diff --git a/Quik/QuikStyle.cs b/Quik/QuikStyle.cs
new file mode 100644
index 0000000..bad9663
--- /dev/null
+++ b/Quik/QuikStyle.cs
@@ -0,0 +1,70 @@
+namespace Quik
+{
+ ///
+ /// A line stipple pattern.
+ ///
+ public struct QuikStipplePattern
+ {
+ ///
+ /// The stipple pitch value.
+ ///
+ public float Pitch;
+
+ ///
+ /// The stipple duty cycle.
+ ///
+ public float DutyCycle;
+
+ public QuikStipplePattern(float pitch, float dutyCycle)
+ {
+ Pitch = pitch;
+ DutyCycle = dutyCycle;
+ }
+
+ public static QuikStipplePattern None => new QuikStipplePattern(0.0f, 1.0f);
+ }
+
+ ///
+ /// Stroke style for lines and borders.
+ ///
+ public class QuikStrokeStyle
+ {
+ ///
+ /// Stroke color.
+ ///
+ public QuikColor Color { get; set; }
+
+ ///
+ /// Stroke width.
+ ///
+ public float Width { get; set; }
+
+ ///
+ /// Stroke stipple pattern.
+ ///
+ public QuikStipplePattern StipplePattern { get; set; }
+
+ public QuikStrokeStyle()
+ {
+ }
+
+ public QuikStrokeStyle(QuikColor color, float width, QuikStipplePattern pattern)
+ {
+ Color = color;
+ Width = width;
+ StipplePattern = pattern;
+ }
+
+ public QuikStrokeStyle(QuikColor color, float width) : this(color, width, QuikStipplePattern.None)
+ {
+ }
+ }
+
+ ///
+ /// Fill style for rectangles and the like.
+ ///
+ public class QuikFillStyle
+ {
+ public QuikColor Color { get; set; }
+ }
+}
\ No newline at end of file