apple: fix polygon/pixmap coordinates, add line function
All checks were successful
pyrite-dev/milsko/pipeline/head This commit looks good
All checks were successful
pyrite-dev/milsko/pipeline/head This commit looks good
This commit is contained in:
parent
bcb108ae5f
commit
0bbbc51bb9
1 changed files with 40 additions and 4 deletions
|
|
@ -34,6 +34,9 @@ static NSRect localRectFlip(NSRect originFrame, NSView* view) {
|
||||||
originFrame.size.width, originFrame.size.height);
|
originFrame.size.width, originFrame.size.height);
|
||||||
return destinationFrame;
|
return destinationFrame;
|
||||||
}
|
}
|
||||||
|
static NSPoint localPointFlip(NSPoint point, NSView* view) {
|
||||||
|
return localRectFlip(NSMakeRect(point.x, point.y, 0, 0), view).origin;
|
||||||
|
}
|
||||||
|
|
||||||
/* Recursively dispatch a key event to a widget and its children */
|
/* Recursively dispatch a key event to a widget and its children */
|
||||||
static void recursive_dispatch_key(MwLL handle, int* k) {
|
static void recursive_dispatch_key(MwLL handle, int* k) {
|
||||||
|
|
@ -244,7 +247,7 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) {
|
||||||
|
|
||||||
[nscolor setFill];
|
[nscolor setFill];
|
||||||
for(i = 0; i < points_count; i++) {
|
for(i = 0; i < points_count; i++) {
|
||||||
NSPoint p = NSMakePoint(points[i].x, [self->view frame].size.height - points[i].y);
|
NSPoint p = localPointFlip(NSMakePoint(points[i].x, points[i].y), self->view);
|
||||||
if(i == 0) {
|
if(i == 0) {
|
||||||
[path moveToPoint:p];
|
[path moveToPoint:p];
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -262,8 +265,41 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) {
|
||||||
[pool release];
|
[pool release];
|
||||||
};
|
};
|
||||||
- (void)lineWithPoints:(MwPoint*)points color:(MwLLColor)color {
|
- (void)lineWithPoints:(MwPoint*)points color:(MwLLColor)color {
|
||||||
(void)points;
|
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
|
||||||
(void)color;
|
NSGraphicsContext* ctx = [self->view context];
|
||||||
|
if(ctx) {
|
||||||
|
int i;
|
||||||
|
NSBezierPath* path = [NSBezierPath bezierPath];
|
||||||
|
/* whatever rect we use for coordinate flipping */
|
||||||
|
NSRect _rect = parent ? [self->view bounds] : [self->window frame];
|
||||||
|
|
||||||
|
NSColor* nscolor =
|
||||||
|
[NSColor colorWithCalibratedRed:color->common.red / 255.
|
||||||
|
green:color->common.green / 255.
|
||||||
|
blue:color->common.blue / 255.
|
||||||
|
alpha:1.0];
|
||||||
|
|
||||||
|
[NSGraphicsContext saveGraphicsState];
|
||||||
|
[NSGraphicsContext setCurrentContext:ctx];
|
||||||
|
|
||||||
|
[nscolor setFill];
|
||||||
|
for(i = 0; i < 2; i++) {
|
||||||
|
NSPoint p = localPointFlip(NSMakePoint(points[i].x, points[i].y), self->view);
|
||||||
|
if(i == 0) {
|
||||||
|
[path moveToPoint:p];
|
||||||
|
} else {
|
||||||
|
[path lineToPoint:p];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[path closePath];
|
||||||
|
[path stroke];
|
||||||
|
|
||||||
|
[NSGraphicsContext restoreGraphicsState];
|
||||||
|
|
||||||
|
[self->view setNeedsDisplay:YES];
|
||||||
|
}
|
||||||
|
[pool release];
|
||||||
};
|
};
|
||||||
- (void)getX:(int*)x Y:(int*)y W:(unsigned int*)w H:(unsigned int*)h {
|
- (void)getX:(int*)x Y:(int*)y W:(unsigned int*)w H:(unsigned int*)h {
|
||||||
NSRect frame;
|
NSRect frame;
|
||||||
|
|
@ -394,7 +430,7 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) {
|
||||||
[NSGraphicsContext setCurrentContext:ctx];
|
[NSGraphicsContext setCurrentContext:ctx];
|
||||||
|
|
||||||
[[p image]
|
[[p image]
|
||||||
drawInRect:NSMakeRect(_rect->x, _rect->y, _rect->width, _rect->height)
|
drawInRect:localRectFlip(NSMakeRect(_rect->x, _rect->y, _rect->width, _rect->height), self->view)
|
||||||
fromRect:NSZeroRect
|
fromRect:NSZeroRect
|
||||||
operation:NSCompositeSourceOver
|
operation:NSCompositeSourceOver
|
||||||
fraction:1.0];
|
fraction:1.0];
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue