view dwt/internal/cocoa/NSScroller.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.NSScroller;

import dwt.internal.cocoa.CGFloat;
import dwt.internal.cocoa.NSCell : NSControlSize, NSControlTint;
import dwt.internal.cocoa.NSControl;
import dwt.internal.cocoa.NSEvent;
import dwt.internal.cocoa.NSPoint;
import dwt.internal.cocoa.NSRect;
import dwt.internal.cocoa.OS;
import objc = dwt.internal.objc.runtime;



enum NSScrollArrowPosition
{
    NSScrollerArrowsMaxEnd = 0,
    NSScrollerArrowsMinEnd = 1,
    NSScrollerArrowsDefaultSetting = 0,
    NSScrollerArrowsNone = 2
}

alias NSScrollArrowPosition.NSScrollerArrowsMaxEnd NSScrollerArrowsMaxEnd;
alias NSScrollArrowPosition.NSScrollerArrowsMinEnd NSScrollerArrowsMinEnd;
alias NSScrollArrowPosition.NSScrollerArrowsDefaultSetting NSScrollerArrowsDefaultSetting;
alias NSScrollArrowPosition.NSScrollerArrowsNone NSScrollerArrowsNone;



enum NSScrollerArrow
{
    NSScrollerIncrementArrow = 0,
    NSScrollerDecrementArrow = 1
}

alias NSScrollerArrow.NSScrollerIncrementArrow NSScrollerIncrementArrow;
alias NSScrollerArrow.NSScrollerDecrementArrow NSScrollerDecrementArrow;



enum NSScrollerPart
{
    NSScrollerNoPart = 0,
    NSScrollerDecrementPage = 1,
    NSScrollerKnob = 2,
    NSScrollerIncrementPage = 3,
    NSScrollerDecrementLine = 4,
    NSScrollerIncrementLine = 5,
    NSScrollerKnobSlot = 6
}

alias NSScrollerPart.NSScrollerNoPart NSScrollerNoPart;
alias NSScrollerPart.NSScrollerDecrementPage NSScrollerDecrementPage;
alias NSScrollerPart.NSScrollerKnob NSScrollerKnob;
alias NSScrollerPart.NSScrollerIncrementPage NSScrollerIncrementPage;
alias NSScrollerPart.NSScrollerDecrementLine NSScrollerDecrementLine;
alias NSScrollerPart.NSScrollerIncrementLine NSScrollerIncrementLine;
alias NSScrollerPart.NSScrollerKnobSlot NSScrollerKnobSlot;



enum NSUsableScrollerParts
{
    NSNoScrollerParts = 0,
    NSOnlyScrollerArrows = 1,
    NSAllScrollerParts = 2
}

alias NSUsableScrollerParts.NSNoScrollerParts NSNoScrollerParts;
alias NSUsableScrollerParts.NSOnlyScrollerArrows NSOnlyScrollerArrows;
alias NSUsableScrollerParts.NSAllScrollerParts NSAllScrollerParts;

public class NSScroller : NSControl
{

    public this ()
    {
        super();
    }

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

    public NSScrollArrowPosition arrowsPosition ()
    {
        return cast(NSScrollArrowPosition) OS.objc_msgSend(this.id_, OS.sel_arrowsPosition);
    }

    public void checkSpaceForParts ()
    {
        OS.objc_msgSend(this.id_, OS.sel_checkSpaceForParts);
    }

    public NSControlSize controlSize ()
    {
        return cast(NSControlSize) OS.objc_msgSend(this.id_, OS.sel_controlSize);
    }

    public NSControlTint controlTint ()
    {
        return cast(NSControlTint) OS.objc_msgSend(this.id_, OS.sel_controlTint);
    }

    public void drawArrow (NSScrollerArrow whichArrow, bool flag)
    {
        OS.objc_msgSend(this.id_, OS.sel_drawArrow_1highlight_1, whichArrow, flag);
    }

    public void drawKnob ()
    {
        OS.objc_msgSend(this.id_, OS.sel_drawKnob);
    }

    public void drawKnobSlotInRect (NSRect slotRect, bool flag)
    {
        OS.objc_msgSend(this.id_, OS.sel_drawKnobSlotInRect_1highlight_1, slotRect, flag);
    }

    public void drawParts ()
    {
        OS.objc_msgSend(this.id_, OS.sel_drawParts);
    }

    public void highlight (bool flag)
    {
        OS.objc_msgSend(this.id_, OS.sel_highlight_1, flag);
    }

    public NSScrollerPart hitPart ()
    {
        return cast(NSScrollerPart) OS.objc_msgSend(this.id_, OS.sel_hitPart);
    }

    public CGFloat knobProportion ()
    {
        return cast(CGFloat) OS.objc_msgSend_fpret(this.id_, OS.sel_knobProportion);
    }

    public NSRect rectForPart (NSScrollerPart partCode)
    {
        NSRect result;
        OS.objc_msgSend_stret(&result, this.id_, OS.sel_rectForPart_1, partCode);
        return result;
    }

    public static CGFloat scrollerWidth ()
    {
        return cast(CGFloat) OS.objc_msgSend_fpret(OS.class_NSScroller, OS.sel_scrollerWidth);
    }

    public static CGFloat scrollerWidthForControlSize (NSControlSize controlSize)
    {
        return cast(CGFloat) OS.objc_msgSend_fpret(OS.class_NSScroller, OS.sel_scrollerWidthForControlSize_1, controlSize);
    }

    public void setArrowsPosition (NSScrollArrowPosition where)
    {
        OS.objc_msgSend(this.id_, OS.sel_setArrowsPosition_1, where);
    }

    public void setControlSize (NSControlSize controlSize)
    {
        OS.objc_msgSend(this.id_, OS.sel_setControlSize_1, controlSize);
    }

    public void setControlTint (NSControlTint controlTint)
    {
        OS.objc_msgSend(this.id_, OS.sel_setControlTint_1, controlTint);
    }

    public void setFloatValue (float aFloat, CGFloat proportion)
    {
        OS.objc_msgSend(this.id_, OS.sel_setFloatValue_1knobProportion_1, aFloat, proportion);
    }

    public void setKnobProportion (CGFloat proportion)
    {
        OS.objc_msgSend(this.id_, OS.sel_setKnobProportion_1, proportion);
    }

    public NSScrollerPart testPart (NSPoint thePoint)
    {
        return cast(NSScrollerPart) OS.objc_msgSend(this.id_, OS.sel_testPart_1, thePoint);
    }

    public void trackKnob (NSEvent theEvent)
    {
        OS.objc_msgSend(this.id_, OS.sel_trackKnob_1, theEvent !is null ? theEvent.id_ : null);
    }

    public void trackScrollButtons (NSEvent theEvent)
    {
        OS.objc_msgSend(this.id_, OS.sel_trackScrollButtons_1, theEvent !is null ? theEvent.id_ : null);
    }

    public NSUsableScrollerParts usableParts ()
    {
        return cast(NSUsableScrollerParts) OS.objc_msgSend(this.id_, OS.sel_usableParts);
    }

}