/*******************************************************************************
 * 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();
}
