blob: e485e9ddd5d013c6ff9686b51d1c71e6c499ebea [file] [log] [blame]
/******************************************************************************
* Copyright (c) 2002, 2003 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.gmf.runtime.common.ui.printing;
import java.util.List;
import org.eclipse.swt.printing.PrinterData;
/**
* The IPrintHelper is an interface for the platform specfic print fragments.
* The print fragments may have these methods declared in the interface as
* native methods, then implement this interface as wrappers around the
* native methods.
*
* @author wdiu, Wayne Diu
*/
public interface IPrintHelper {
/**
* The location where I expect the print helper to be implemented.
* This should be in a fragment, e.g. org.eclipse.gmf.runtime.common.ui.printing.operatingsystem
*/
public static final String PRINT_HELPER_CLASS_NAME = "org.eclipse.gmf.runtime.common.ui.printing.PrintHelper"; //$NON-NLS-1$
/**
* Opens the print dialog with the diagram list which could be null
*
* @param diagramList the List of Diagram objects. diagramList can
* be null.
* @return <code>PrinterData</code>
*/
PrinterData openPrintDlg(List diagramList);
/**
* If not > 0 then user has clicked percent scaling
*
* @return scale to m int
*/
int getDlgScaleFitToM();
/**
* If not > 0 then user has clicked percent scaling
*
* @return scale to n int
*/
int getDlgScaleFitToN();
/**
* If not > 0 then user has clicked fit to m x n scaling
*
* @return scale percent int
*/
int getDlgScalePercent();
/**
* Returns true if the diagram at the index was selected
*
* @param index the index of the diagrams you passed in
* @return true if selected, false if not selected
*/
boolean isDlgDiagramSelected(int index);
//one of the three is unnecssary, but it makes more sense
/**
* Returns if diagram print range all was selected
*
* @return true if selected, false if not selected
*/
boolean getDlgDiagramPrintRangeAll();
/**
* Returns if diagram print range current was selected
*
* @return true if selected, false if not selected
*/
boolean getDlgDiagramPrintRangeCurrent();
/**
* Returns if diagram print range selection was selected
*
* @return true if selected, false if not selected
*/
boolean getDlgDiagramPrintRangeSelection();
/**
* Returns if print range all was selected
*
* @return true if selected, false if not selected
*/
boolean getDlgPrintRangeAll();
/**
* Returns if print range pages was selected
*
* @return true if selected, false if not selected
*/
boolean getDlgPrintRangePages();
/**
* Returns if collate was selected
*
* @return true if selected, false if not selected
*/
boolean getDlgCollate();
/**
* Returns the pages from int value, check if (getDlgPrintRangesPages())
* first.
*
* @return int of the pages from box
*/
int getDlgPagesFrom();
/**
* Returns the pages from int value, check if (getDlgPrintRangesPages())
* first.
*
* @return int of the pages to box
*/
int getDlgPagesTo();
/**
* Returns the number of copies the user wants to print.
* This is nCopies from PRINTDLG
*
* @return int with the number of copies
*/
int getDlgNumberOfCopies();
/**
* Allows to set the orientation (portrait/landscape) in the print dialog.
* @param isLandscape true if orientation should be landscape, false otherwise.
*/
void setDlgOrientation(boolean bLandscape);
/**
* Allows to set the paper size in the print dialog.
* @param index index of type of paper size, @see org.eclipse.gmf.runtime.diagram.ui.internal.pagesetup.PageSetupPageType
* for the type of paper sizes available and their indices.
* @param width specifies the custom width of the paper. Leave as 0 if
* paper size index is user-defined.
* @param height specifies the custom width of the paper. Leave as 0 if
* paper size index is user-defined.
*/
void setDlgPaperSize(int index, double width, double length);
/**
* Preserve the scale factor that the user enters in the preview or print
* dialogs.
*
* @param scaleFactor a zoom factor integer value greater than 0.
*/
void setScaleFactor(int scaleFactor);
/**
* Preserve the width and height scale factors
*
* @param width scale to number of pages wide
* @param height scale to number of pages high
*/
void setScaleToWidthHeight(int width, int height);
}