shithub: puzzles

Download patch

ref: eda5a867872e718b62ea52373ec9f44aa0c3bda2
parent: 6f5386c4b9fea279da29cf9d86b6ae041e95ab6b
author: Bo Lindbergh <blgl@stacken.kth.se>
date: Wed Sep 2 17:58:55 EDT 2015

Implement osx_draw_thick_line

--- a/osx.m
+++ b/osx.m
@@ -1352,6 +1352,26 @@
     NSRectFill(NSMakeRect(x1, fe->h-y1-1, 1, 1));
     NSRectFill(NSMakeRect(x2, fe->h-y2-1, 1, 1));
 }
+
+static void osx_draw_thick_line(
+    void *handle, float thickness,
+    float x1, float y1,
+    float x2, float y2,
+    int colour)
+{
+    frontend *fe = (frontend *)handle;
+    NSBezierPath *path = [NSBezierPath bezierPath];
+
+    assert(colour >= 0 && colour < fe->ncolours);
+    [fe->colours[colour] set];
+    [[NSGraphicsContext currentContext] setShouldAntialias: YES];
+    [path setLineWidth: thickness];
+    [path setLineCapStyle: NSButtLineCapStyle];
+    [path moveToPoint: NSMakePoint(x1, fe->h-y1)];
+    [path lineToPoint: NSMakePoint(x2, fe->h-y2)];
+    [path stroke];
+}
+
 static void osx_draw_rect(void *handle, int x, int y, int w, int h, int colour)
 {
     frontend *fe = (frontend *)handle;
@@ -1541,6 +1561,7 @@
     NULL, NULL, NULL, NULL, NULL, NULL, /* {begin,end}_{doc,page,puzzle} */
     NULL, NULL,			       /* line_width, line_dotted */
     osx_text_fallback,
+    osx_draw_thick_line,
 };
 
 void deactivate_timer(frontend *fe)