Mercurial > projects > dwt-win
diff dwt/layout/RowData.d @ 0:5406a8f6526d
Add initial files
author | John Reimer <terminal.node@gmail.com |
---|---|
date | Sun, 20 Jan 2008 21:50:55 -0800 |
parents | |
children | 9a64a7781bab |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dwt/layout/RowData.d Sun Jan 20 21:50:55 2008 -0800 @@ -0,0 +1,130 @@ +/******************************************************************************* + * Copyright (c) 2000, 2006 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: + * Frank Benoit <benoit@tionex.de> + *******************************************************************************/ +module dwt.layout.RowData; + +import dwt.DWT; +import dwt.graphics.Point; +import dwt.widgets.Control; + +import tango.text.Util; +import tango.util.Convert; + +/** + * Each control controlled by a <code>RowLayout</code> can have its initial + * width and height specified by setting a <code>RowData</code> object + * into the control. + * <p> + * The following code uses a <code>RowData</code> object to change the initial + * size of a <code>Button</code> in a <code>Shell</code>: + * <pre> + * Display display = new Display(); + * Shell shell = new Shell(display); + * shell.setLayout(new RowLayout()); + * Button button1 = new Button(shell, DWT.PUSH); + * button1.setText("Button 1"); + * button1.setLayoutData(new RowData(50, 40)); + * </pre> + * </p> + * + * @see RowLayout + */ +public final class RowData { + /** + * width specifies the desired width in pixels. This value + * is the wHint passed into Control.computeSize(int, int, bool) + * to determine the preferred size of the control. + * + * The default value is DWT.DEFAULT. + * + * @see dwt.widgets.Control#computeSize(int, int, bool) + */ + public int width = DWT.DEFAULT; + /** + * height specifies the preferred height in pixels. This value + * is the hHint passed into Control.computeSize(int, int, bool) + * to determine the preferred size of the control. + * + * The default value is DWT.DEFAULT. + * + * @see dwt.widgets.Control#computeSize(int, int, bool) + */ + public int height = DWT.DEFAULT; + + /** + * exclude informs the layout to ignore this control when sizing + * and positioning controls. If this value is <code>true</code>, + * the size and position of the control will not be managed by the + * layout. If this value is <code>false</code>, the size and + * position of the control will be computed and assigned. + * + * The default value is <code>false</code>. + * + * @since 3.1 + */ + public bool exclude = false; + +/** + * Constructs a new instance of RowData using + * default values. + */ +public this () { +} + +/** + * Constructs a new instance of RowData according to the parameters. + * A value of DWT.DEFAULT indicates that no minimum width or + * no minimum height is specified. + * + * @param width a minimum width for the control + * @param height a minimum height for the control + */ +public this (int width, int height) { + this.width = width; + this.height = height; +} + +/** + * Constructs a new instance of RowData according to the parameter. + * A value of DWT.DEFAULT indicates that no minimum width or + * no minimum height is specified. + * + * @param point a point whose x coordinate specifies a minimum width for the control + * and y coordinate specifies a minimum height for the control + */ +public this (Point point) { + this (point.x, point.y); +} + +char[] getName () { + char[] string = this.classinfo.name; + int index = locatePrior( string, '.'); + if (index is string.length ) return string; + return string[ index + 1 .. string.length ]; +} + +/** + * Returns a string containing a concise, human-readable + * description of the receiver. + * + * @return a string representation of the RowData object + */ +public char[] toString () { + char[] string = getName ()~" {"; + if (width !is DWT.DEFAULT) string ~= "width="~to!(char[])(width)~" "; + if (height !is DWT.DEFAULT) string ~= "height="~to!(char[])(height)~" "; + if (exclude) string ~= "exclude="~to!(char[])(exclude)~" "; + string = trim( string ); + string ~= "}"; + return string; +} +}