view dwt/layout/RowData.d @ 156:969e7de37c3d default tip

Fixes to get dwt to work with dmd and ldc
author Jacob Carlborg <doob@me.com>
date Wed, 08 Jul 2009 21:56:44 +0200
parents d8635bb48c7c
children
line wrap: on
line source

/*******************************************************************************
 * Copyright (c) 2000, 2008 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.util.Convert;
import dwt.dwthelper.utils;

/**
 * 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
 * @see <a href="http://www.eclipse.org/swt/">Sample code and further information</a>
 */
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);
}

String getName () {
    String string = this.classinfo.name;
    int index = string.lastIndexOf('.');
    if (index is -1 ) 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
 */
override public String toString () {
    String string = getName ()~" {";
    if (width !is DWT.DEFAULT) string ~= "width="~to!(String)(width)~" ";
    if (height !is DWT.DEFAULT) string ~= "height="~to!(String)(height)~" ";
    if (exclude) string ~= "exclude="~to!(String)(exclude)~" ";
    string = string.trim();
    string ~= "}";
    return string;
}
}