blob: 0daad1f85e3d4543b3e4449908136414a48a10fa [file] [log] [blame]
/*******************************************************************************
* 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
*******************************************************************************/
package org.eclipse.swt.custom;
/**
* Use StyledTextPrintOptions to specify printing options for the
* StyledText.print(Printer, StyledTextPrintOptions) API.
* <p>
* The following example prints a right aligned page number in the footer,
* sets the job name to "Example" and prints line background colors but no other
* formatting:
* </p>
* <pre>
* StyledTextPrintOptions options = new StyledTextPrintOptions();
* options.footer = "\t\t&lt;page&gt;";
* options.jobName = "Example";
* options.printLineBackground = true;
*
* Runnable runnable = styledText.print(new Printer(), options);
* runnable.run();
* </pre>
*
* @see <a href="http://www.eclipse.org/swt/">Sample code and further information</a>
*
* @since 2.1
*/
public class StyledTextPrintOptions {
/**
* Page number placeholder constant for use in <code>header</code>
* and <code>footer</code>. Value is <code>&lt;page&gt;</code>
*/
public static final String PAGE_TAG = "<page>";
/**
* Separator constant for use in <code>header</code> and
* <code>footer</code>. Value is <code>\t</code>
*/
public static final String SEPARATOR = "\t";
/**
* Formatted text to print in the header of each page.
* <p>"left '\t' center '\t' right"</p>
* <p>left, center, right = &lt;page&gt; | #CDATA</p>
* <p>Header and footer are defined as three separate regions for arbitrary
* text or the page number placeholder &lt;page&gt;
* (<code>StyledTextPrintOptions.PAGE_TAG</code>). The three regions are
* left aligned, centered and right aligned. They are separated by a tab
* character (<code>StyledTextPrintOptions.SEPARATOR</code>).
*/
public String header = null;
/**
* Formatted text to print in the footer of each page.
* <p>"left '\t' center '\t' right"</p>
* <p>left, center, right = &lt;page&gt; | #CDATA</p>
* <p>Header and footer are defined as three separate regions for arbitrary
* text or the page number placeholder &lt;page&gt;
* (<code>StyledTextPrintOptions.PAGE_TAG</code>). The three regions are
* left aligned, centered and right aligned. They are separated by a tab
* character (<code>StyledTextPrintOptions.SEPARATOR</code>).
*/
public String footer = null;
/**
* Name of the print job.
*/
public String jobName = null;
/**
* Print the text foreground color. Default value is <code>false</code>.
*/
public boolean printTextForeground = false;
/**
* Print the text background color. Default value is <code>false</code>.
*/
public boolean printTextBackground = false;
/**
* Print the font styles. Default value is <code>false</code>.
*/
public boolean printTextFontStyle = false;
/**
* Print the line background color. Default value is <code>false</code>.
*/
public boolean printLineBackground = false;
/**
* Print line numbers. Default value is <code>false</code>.
*
* @since 3.3
*/
public boolean printLineNumbers = false;
/**
* Labels used for printing line numbers.
*
* @since 3.4
*/
public String[] lineLabels = null;
}