add support for rounded rectangles
Signed-off-by: Florian Thienel <florian@thienel.org>
diff --git a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/layout/FakeGraphics.java b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/layout/FakeGraphics.java
index 944fede..6eb0c4f 100644
--- a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/layout/FakeGraphics.java
+++ b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/layout/FakeGraphics.java
@@ -141,6 +141,10 @@
}
@Override
+ public void drawRoundRect(final int x, final int y, final int width, final int height, final int arcWidth, final int arcHeight) {
+ }
+
+ @Override
public void drawImage(final Image image, final int x, final int y, final int width, final int height) {
Assert.isTrue(image instanceof FakeImage);
lastDrawnImageUrl = ((FakeImage) image).url;
@@ -159,6 +163,10 @@
}
@Override
+ public void fillRoundRect(final int x, final int y, final int width, final int height, final int arcWidth, final int arcHeight) {
+ }
+
+ @Override
public Rectangle getClipBounds() {
return new Rectangle(0, 0, Integer.MAX_VALUE, Integer.MAX_VALUE);
}
diff --git a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/layout/endtoend/TracingGraphics.java b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/layout/endtoend/TracingGraphics.java
index 0f1109f..3c433a9 100644
--- a/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/layout/endtoend/TracingGraphics.java
+++ b/org.eclipse.vex.core.tests/src/org/eclipse/vex/core/internal/layout/endtoend/TracingGraphics.java
@@ -135,7 +135,11 @@
@Override
public void drawRect(final int x, final int y, final int width, final int height) {
- tracer.trace("Graphics.drawRect({0,number,#}, {1,number,#}, {2,number,#}, {3,number,#})", x, y, width, height);
+ }
+
+ @Override
+ public void drawRoundRect(final int x, final int y, final int width, final int height, final int arcWidth, final int arcHeight) {
+ tracer.trace("Graphics.drawRoundRect({0,number,#}, {1,number,#}, {2,number,#}, {3,number,#}, {4,number,#}, {5,number,#})", x, y, width, height, arcWidth, arcHeight);
}
@Override
@@ -154,6 +158,11 @@
}
@Override
+ public void fillRoundRect(final int x, final int y, final int width, final int height, final int arcWidth, final int arcHeight) {
+ tracer.trace("Graphics.fillRoundRect({0,number,#}, {1,number,#}, {2,number,#}, {3,number,#}, {4,number,#}, {5,number,#})", x, y, width, height, arcWidth, arcHeight);
+ }
+
+ @Override
public Rectangle getClipBounds() {
return new Rectangle(0, 0, Integer.MAX_VALUE, Integer.MAX_VALUE);
}
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/core/Graphics.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/core/Graphics.java
index f844893..35bdb48 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/core/Graphics.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/core/Graphics.java
@@ -48,12 +48,16 @@
public void drawRect(int x, int y, int width, int height);
+ public void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight);
+
public void drawImage(Image image, int x, int y, int width, int height);
public void fillOval(int x, int y, int width, int height);
public void fillRect(int x, int y, int width, int height);
+ public void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight);
+
public Rectangle getClipBounds();
public FontResource getCurrentFont();
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/widget/swt/SwtGraphics.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/widget/swt/SwtGraphics.java
index d3c0206..544a593 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/widget/swt/SwtGraphics.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/widget/swt/SwtGraphics.java
@@ -126,6 +126,11 @@
}
@Override
+ public void drawRoundRect(final int x, final int y, final int width, final int height, final int arcWidth, final int arcHeight) {
+ gc.drawRoundRectangle(x + offsetX, y + offsetY, width, height, arcWidth, arcHeight);
+ }
+
+ @Override
public void drawString(final String s, final int x, final int y) {
gc.drawString(s, x + offsetX, y + offsetY, true);
}
@@ -160,6 +165,11 @@
}
@Override
+ public void fillRoundRect(final int x, final int y, final int width, final int height, final int arcWidth, final int arcHeight) {
+ gc.fillRoundRectangle(x + offsetX, y + offsetY, width, height, arcWidth, arcHeight);
+ }
+
+ @Override
public Rectangle getClipBounds() {
final org.eclipse.swt.graphics.Rectangle r = gc.getClipping();
return new Rectangle(r.x - offsetX, r.y - offsetY, r.width, r.height);