view dstep/appkit/NSBox.d @ 16:19885b43130e

Huge update, the bridge actually works now
author Jacob Carlborg <doob@me.com>
date Sun, 03 Jan 2010 22:06:11 +0100
parents
children b9de51448c6b
line wrap: on
line source

/**
 * Copyright: Copyright (c) 2009 Jacob Carlborg.
 * Authors: Jacob Carlborg
 * Version: Initial created: Sep 24, 2009 
 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
 */
module dstep.appkit.NSBox;

import dstep.appkit.NSColor;
import dstep.appkit.NSFont;
import dstep.appkit.NSView;
import dstep.applicationservices.coregraphics.CGBase;
import dstep.foundation.NSGeometry;
import dstep.foundation.NSObjCRuntime;
import dstep.foundation.NSString;
import dstep.objc.bridge.Bridge;
import dstep.objc.objc;

alias NSUInteger NSTitlePosition;
alias NSUInteger NSBoxType;

enum
{
	NSNoTitle = 0,
	NSAboveTop = 1,
	NSAtTop = 2,
	NSBelowTop = 3,
	NSAboveBottom = 4,
	NSAtBottom = 5,
	NSBelowBottom = 6
}

enum
{
	NSBoxPrimary = 0,
	NSBoxSecondary = 1,
	NSBoxSeparator = 2,
	NSBoxOldStyle = 3,
	NSBoxCustom = 4
}

const TNSCustomBoxTypeProperties = `

	CGFloat borderWidth ()
	{
		return invokeObjcSelf!(CGFloat, "borderWidth");
	}

	void setBorderWidth (CGFloat borderWidth)
	{
		return invokeObjcSelf!(void, "setBorderWidth:", CGFloat)(borderWidth);
	}

	CGFloat cornerRadius ()
	{
		return invokeObjcSelf!(CGFloat, "cornerRadius");
	}

	void setCornerRadius (CGFloat cornerRadius)
	{
		return invokeObjcSelf!(void, "setCornerRadius:", CGFloat)(cornerRadius);
	}

	NSColor borderColor ()
	{
		return invokeObjcSelf!(NSColor, "borderColor");
	}

	void setBorderColor (NSColor borderColor)
	{
		return invokeObjcSelf!(void, "setBorderColor:", NSColor)(borderColor);
	}

	NSColor fillColor ()
	{
		return invokeObjcSelf!(NSColor, "fillColor");
	}

	void setFillColor (NSColor fillColor)
	{
		return invokeObjcSelf!(void, "setFillColor:", NSColor)(fillColor);
	}

	//mixin ObjcBindMethod!(borderWidth, "borderWidth");
	//mixin ObjcBindMethod!(setBorderWidth, "setBorderWidth:");
	//mixin ObjcBindMethod!(cornerRadius, "cornerRadius");
	//mixin ObjcBindMethod!(setCornerRadius, "setCornerRadius:");
	//mixin ObjcBindMethod!(borderColor, "borderColor");
	//mixin ObjcBindMethod!(setBorderColor, "setBorderColor:");
	//mixin ObjcBindMethod!(fillColor, "fillColor");
	//mixin ObjcBindMethod!(setFillColor, "setFillColor:");

`;

class NSBox : NSView
{
	mixin (ObjcWrap);

	uint borderType ()
	{
		return invokeObjcSelf!(uint, "borderType");
	}

	uint titlePosition ()
	{
		return invokeObjcSelf!(uint, "titlePosition");
	}

	void setBorderType (uint aType)
	{
		return invokeObjcSelf!(void, "setBorderType:", uint)(aType);
	}

	void setBoxType (uint boxType)
	{
		return invokeObjcSelf!(void, "setBoxType:", uint)(boxType);
	}

	uint boxType ()
	{
		return invokeObjcSelf!(uint, "boxType");
	}

	void setTitlePosition (uint aPosition)
	{
		return invokeObjcSelf!(void, "setTitlePosition:", uint)(aPosition);
	}

	NSString title ()
	{
		return invokeObjcSelf!(NSString, "title");
	}

	void setTitle (NSString aString)
	{
		return invokeObjcSelf!(void, "setTitle:", NSString)(aString);
	}

	NSFont titleFont ()
	{
		return invokeObjcSelf!(NSFont, "titleFont");
	}

	void setTitleFont (NSFont fontObj)
	{
		return invokeObjcSelf!(void, "setTitleFont:", NSFont)(fontObj);
	}

	NSRect borderRect ()
	{
		return invokeObjcSelf!(NSRect, "borderRect");
	}

	NSRect titleRect ()
	{
		return invokeObjcSelf!(NSRect, "titleRect");
	}

	Object titleCell ()
	{
		return invokeObjcSelf!(Object, "titleCell");
	}

	void sizeToFit ()
	{
		return invokeObjcSelf!(void, "sizeToFit");
	}

	NSSize contentViewMargins ()
	{
		return invokeObjcSelf!(NSSize, "contentViewMargins");
	}

	void setContentViewMargins (NSSize offsetSize)
	{
		return invokeObjcSelf!(void, "setContentViewMargins:", NSSize)(offsetSize);
	}

	void setFrameFromContentFrame (NSRect contentFrame)
	{
		return invokeObjcSelf!(void, "setFrameFromContentFrame:", NSRect)(contentFrame);
	}

	Object contentView ()
	{
		return invokeObjcSelf!(Object, "contentView");
	}

	void setContentView (NSView aView)
	{
		return invokeObjcSelf!(void, "setContentView:", NSView)(aView);
	}

	bool isTransparent ()
	{
		return invokeObjcSelf!(bool, "isTransparent");
	}

	void setTransparent (bool flag)
	{
		return invokeObjcSelf!(void, "setTransparent:", bool)(flag);
	}
	
	// NSCustomBoxTypeProperties
	CGFloat borderWidth ()
	{
		return invokeObjcSelf!(CGFloat, "borderWidth");
	}

	void setBorderWidth (CGFloat borderWidth)
	{
		return invokeObjcSelf!(void, "setBorderWidth:", CGFloat)(borderWidth);
	}

	CGFloat cornerRadius ()
	{
		return invokeObjcSelf!(CGFloat, "cornerRadius");
	}

	void setCornerRadius (CGFloat cornerRadius)
	{
		return invokeObjcSelf!(void, "setCornerRadius:", CGFloat)(cornerRadius);
	}

	NSColor borderColor ()
	{
		return invokeObjcSelf!(NSColor, "borderColor");
	}

	void setBorderColor (NSColor borderColor)
	{
		return invokeObjcSelf!(void, "setBorderColor:", NSColor)(borderColor);
	}

	NSColor fillColor ()
	{
		return invokeObjcSelf!(NSColor, "fillColor");
	}

	void setFillColor (NSColor fillColor)
	{
		return invokeObjcSelf!(void, "setFillColor:", NSColor)(fillColor);
	}
}