view dwt/internal/cocoa/NSGradient.d @ 13:f565d3a95c0a

Ported dwt.internal
author Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
date Fri, 22 Aug 2008 16:46:34 +0200
parents 8b48be5454ce
children d8635bb48c7c
line wrap: on
line source

/*******************************************************************************
 * Copyright (c) 2007 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *     
 * Port to the D programming language:
 *     Jacob Carlborg <jacob.carlborg@gmail.com>
 *******************************************************************************/
module dwt.internal.cocoa.NSGradient;

import dwt.internal.cocoa.CGFloat;
import dwt.internal.cocoa.NSArray;
import dwt.internal.cocoa.NSBezierPath;
import dwt.internal.cocoa.NSColor;
import dwt.internal.cocoa.NSColorSpace;
import dwt.internal.cocoa.NSInteger;
import dwt.internal.cocoa.NSObject;
import dwt.internal.cocoa.NSPoint;
import dwt.internal.cocoa.NSRect;
import dwt.internal.cocoa.OS;
import objc = dwt.internal.objc.runtime;

alias NSUInteger NSGradientDrawingOptions;

public class NSGradient : NSObject
{

    public this ()
    {
        super();
    }

    public this (objc.id id)
    {
        super(id);
    }

    public NSColorSpace colorSpace ()
    {
        objc.id result = OS.objc_msgSend(this.id_, OS.sel_colorSpace);
        return result !is null ? new NSColorSpace(result) : null;
    }

    public void drawFromCenter (NSPoint startCenter, CGFloat startRadius, NSPoint endCenter, CGFloat endRadius, NSGradientDrawingOptions options)
    {
        OS.objc_msgSend(this.id_, OS.sel_drawFromCenter_1radius_1toCenter_1radius_1options_1, startCenter, startRadius, endCenter, endRadius, options);
    }

    public void drawFromPoint (NSPoint startingPoint, NSPoint endingPoint, NSGradientDrawingOptions options)
    {
        OS.objc_msgSend(this.id_, OS.sel_drawFromPoint_1toPoint_1options_1, startingPoint, endingPoint, options);
    }

    public void drawInBezierPath_angle_ (NSBezierPath path, CGFloat angle)
    {
        OS.objc_msgSend(this.id_, OS.sel_drawInBezierPath_1angle_1, path !is null ? path.id_ : null, angle);
    }

    public void drawInBezierPath_relativeCenterPosition_ (NSBezierPath path, NSPoint relativeCenterPosition)
    {
        OS.objc_msgSend(this.id_, OS.sel_drawInBezierPath_1relativeCenterPosition_1, path !is null ? path.id_ : null, relativeCenterPosition);
    }

    public void drawInRect_angle_ (NSRect rect, CGFloat angle)
    {
        OS.objc_msgSend(this.id_, OS.sel_drawInRect_1angle_1, rect, angle);
    }

    public void drawInRect_relativeCenterPosition_ (NSRect rect, NSPoint relativeCenterPosition)
    {
        OS.objc_msgSend(this.id_, OS.sel_drawInRect_1relativeCenterPosition_1, rect, relativeCenterPosition);
    }

    public void getColor (objc.id** color, CGFloat* location, NSInteger index)
    {
        OS.objc_msgSend(this.id_, OS.sel_getColor_1location_1atIndex_1, color, location, index);
    }

    public NSGradient initWithColors_ (NSArray colorArray)
    {
        objc.id result = OS.objc_msgSend(this.id_, OS.sel_initWithColors_1, colorArray !is null ? colorArray.id_ : null);
        return result !is null ? this : null;
    }

    public NSGradient initWithColors_atLocations_colorSpace_ (NSArray colorArray, /*const*/CGFloat* locations, NSColorSpace colorSpace)
    {
        objc.id result = OS.objc_msgSend(this.id_, OS.sel_initWithColors_1atLocations_1colorSpace_1, colorArray !is null ? colorArray.id_ : null,
                locations, colorSpace !is null ? colorSpace.id_ : null);
        return result !is null ? this : null;
    }

    public NSGradient initWithColorsAndLocations (NSColor initWithColorsAndLocations)
    {
        objc.id result = OS.objc_msgSend(this.id_, OS.sel_initWithColorsAndLocations_1,
                initWithColorsAndLocations !is null ? initWithColorsAndLocations.id_ : null);
        return result !is null ? this : null;
    }

    public NSGradient initWithStartingColor (NSColor startingColor, NSColor endingColor)
    {
        objc.id result = OS.objc_msgSend(this.id_, OS.sel_initWithStartingColor_1endingColor_1, startingColor !is null ? startingColor.id_ : null,
                endingColor !is null ? endingColor.id_ : null);
        return result !is null ? this : null;
    }

    public NSColor interpolatedColorAtLocation (CGFloat location)
    {
        objc.id result = OS.objc_msgSend(this.id_, OS.sel_interpolatedColorAtLocation_1, location);
        return result !is null ? new NSColor(result) : null;
    }

    public NSInteger numberOfColorStops ()
    {
        return cast(NSInteger) OS.objc_msgSend(this.id_, OS.sel_numberOfColorStops);
    }

}