Mercurial > projects > dwt-mac
view dwt/internal/cocoa/NSTextContainer.d @ 1:8b48be5454ce
The internal cocoa classes compile now
author | Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com> |
---|---|
date | Tue, 19 Aug 2008 17:35:17 +0200 |
parents | 380af2bdd8e5 |
children | f565d3a95c0a |
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.NSTextContainer; import dwt.internal.cocoa.CGFloat; import dwt.internal.cocoa.id; import dwt.internal.cocoa.NSLayoutManager; import dwt.internal.cocoa.NSObject; import dwt.internal.cocoa.NSPoint; import dwt.internal.cocoa.NSRect; import dwt.internal.cocoa.NSSize; import dwt.internal.cocoa.NSTextView; import dwt.internal.cocoa.OS; import objc = dwt.internal.objc.runtime; enum NSLineSweepDirection { NSLineSweepLeft = 0, NSLineSweepRight = 1, NSLineSweepDown = 2, NSLineSweepUp = 3 } alias NSLineSweepDirection.NSLineSweepLeft NSLineSweepLeft; alias NSLineSweepDirection.NSLineSweepRight NSLineSweepRight; alias NSLineSweepDirection.NSLineSweepDown NSLineSweepDown; alias NSLineSweepDirection.NSLineSweepUp NSLineSweepUp; enum NSLineMovementDirection { NSLineDoesntMove = 0, NSLineMovesLeft = 1, NSLineMovesRight = 2, NSLineMovesDown = 3, NSLineMovesUp = 4 } alias NSLineMovementDirection.NSLineDoesntMove NSLineDoesntMove; alias NSLineMovementDirection.NSLineMovesLeft NSLineMovesLeft; alias NSLineMovementDirection.NSLineMovesRight NSLineMovesRight; alias NSLineMovementDirection.NSLineMovesDown NSLineMovesDown; alias NSLineMovementDirection.NSLineMovesUp NSLineMovesUp; public class NSTextContainer : NSObject { public this () { super(); } public this (objc.id id) { super(id); } public NSSize containerSize () { NSSize result; OS.objc_msgSend_struct(&result, this.id_, OS.sel_containerSize); return result; } public bool containsPoint (NSPoint point) { return OS.objc_msgSend(this.id_, OS.sel_containsPoint_1, point) !is null; } public bool heightTracksTextView () { return OS.objc_msgSend(this.id_, OS.sel_heightTracksTextView) !is null; } public id initWithContainerSize (NSSize size) { objc.id result = OS.objc_msgSend(this.id_, OS.sel_initWithContainerSize_1, size); return result !is null ? new id(result) : null; } public bool isSimpleRectangularTextContainer () { return OS.objc_msgSend(this.id_, OS.sel_isSimpleRectangularTextContainer) !is null; } public NSLayoutManager layoutManager () { objc.id result = OS.objc_msgSend(this.id_, OS.sel_layoutManager); return result !is null ? new NSLayoutManager(result) : null; } public CGFloat lineFragmentPadding () { return cast(CGFloat) OS.objc_msgSend_fpret(this.id_, OS.sel_lineFragmentPadding); } public NSRect lineFragmentRectForProposedRect (NSRect proposedRect, NSLineSweepDirection sweepDirection, NSLineMovementDirection movementDirection, NSRectPointer remainingRect) { NSRect result; OS.objc_msgSend_stret(&result, this.id_, OS.sel_lineFragmentRectForProposedRect_1sweepDirection_1movementDirection_1remainingRect_1, proposedRect, sweepDirection, movementDirection, remainingRect); return result; } public void replaceLayoutManager (NSLayoutManager newLayoutManager) { OS.objc_msgSend(this.id_, OS.sel_replaceLayoutManager_1, newLayoutManager !is null ? newLayoutManager.id_ : null); } public void setContainerSize (NSSize size) { OS.objc_msgSend(this.id_, OS.sel_setContainerSize_1, size); } public void setHeightTracksTextView (bool flag) { OS.objc_msgSend(this.id_, OS.sel_setHeightTracksTextView_1, flag); } public void setLayoutManager (NSLayoutManager layoutManager) { OS.objc_msgSend(this.id_, OS.sel_setLayoutManager_1, layoutManager !is null ? layoutManager.id_ : null); } public void setLineFragmentPadding (CGFloat pad) { OS.objc_msgSend(this.id_, OS.sel_setLineFragmentPadding_1, pad); } public void setTextView (NSTextView textView) { OS.objc_msgSend(this.id_, OS.sel_setTextView_1, textView !is null ? textView.id_ : null); } public void setWidthTracksTextView (bool flag) { OS.objc_msgSend(this.id_, OS.sel_setWidthTracksTextView_1, flag); } public NSTextView textView () { objc.id result = OS.objc_msgSend(this.id_, OS.sel_textView); return result !is null ? new NSTextView(result) : null; } public bool widthTracksTextView () { return OS.objc_msgSend(this.id_, OS.sel_widthTracksTextView) !is null; } }