/*******************************************************************************
 * Copyright (c) 2000, 2006 IBM Corporation and others. All rights reserved.
 * The contents of this file are made available under the terms
 * of the GNU Lesser General Public License (LGPL) Version 2.1 that
 * accompanies this distribution (lgpl-v21.txt).  The LGPL is also
 * available at http://www.gnu.org/licenses/lgpl.html.  If the version
 * of the LGPL at http://www.gnu.org is different to the version of
 * the LGPL accompanying this distribution and there is any conflict
 * between the two license versions, the terms of the LGPL accompanying
 * this distribution shall govern.
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.swt.internal.gtk;


public class PangoLogAttr {
	public boolean is_line_break;
	public boolean is_mandatory_break;
	public boolean is_char_break;
	public boolean is_white;
	public boolean is_cursor_position;
	public boolean is_word_start;
	public boolean is_word_end;
	public boolean is_sentence_boundary;
	public boolean is_sentence_start;
	public boolean is_sentence_end;
	public static final int sizeof = OS.PangoLogAttr_sizeof();
}
