summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarolyn MacLeod <carolyn>2001-11-19 23:22:38 +0000
committerCarolyn MacLeod <carolyn>2001-11-19 23:22:38 +0000
commite812b9dfe4c79fb83c6958c31b84248b22b4e3e4 (patch)
tree0c07014b3a3a9ebd3035e285239e603727b9e85a
parent3f60fcacd616ca7d380ba17c3ae127fa333fd5c0 (diff)
downloadeclipse.platform.swt-e812b9dfe4c79fb83c6958c31b84248b22b4e3e4.tar.gz
eclipse.platform.swt-e812b9dfe4c79fb83c6958c31b84248b22b4e3e4.tar.xz
eclipse.platform.swt-e812b9dfe4c79fb83c6958c31b84248b22b4e3e4.zip
print page range
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextPrinter.java22
1 files changed, 19 insertions, 3 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextPrinter.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextPrinter.java
index e70fad3e2e..b333851d67 100755
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextPrinter.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledTextPrinter.java
@@ -28,6 +28,7 @@ class StyledTextPrinter implements Runnable {
GC gc;
String rtf;
StringBuffer wordBuffer;
+ int startPage, endPage, currentPage;
int index, end;
String tabs = "";
int tabWidth = 0;
@@ -61,6 +62,13 @@ class StyledTextPrinter implements Runnable {
StyledTextPrinter(StyledText styledText, Printer printer) {
this.printer = printer;
+ PrinterData data = printer.getPrinterData();
+ startPage = 1;
+ endPage = Integer.MAX_VALUE;
+ if (data.scope == PrinterData.PAGE_RANGE) {
+ startPage = data.startPage;
+ endPage = data.endPage;
+ }
/* Create a buffer for computing tab width. */
int tabSize = styledText.getTabs();
@@ -86,7 +94,10 @@ class StyledTextPrinter implements Runnable {
gc = new GC(printer);
x = leftMargin;
y = topMargin;
- printer.startPage();
+ currentPage = 1;
+ if (startPage == 1) {
+ printer.startPage();
+ }
end = rtf.length();
index = 0;
wordBuffer = new StringBuffer();
@@ -211,7 +222,9 @@ class StyledTextPrinter implements Runnable {
/* word doesn't fit on current line, so wrap */
newline();
}
- gc.drawString(word, x, y, true);
+ if (currentPage >= startPage && currentPage <= endPage) {
+ gc.drawString(word, x, y, true);
+ }
x += wordWidth;
wordBuffer = new StringBuffer();
}
@@ -325,7 +338,10 @@ class StyledTextPrinter implements Runnable {
printer.endPage();
if (index + 1 < end) {
y = topMargin;
- printer.startPage();
+ currentPage++;
+ if (currentPage >= startPage && currentPage <= endPage) {
+ printer.startPage();
+ }
}
}
}