From cc06f3c9618086667308067c247ea3791bbd6b65 Mon Sep 17 00:00:00 2001 From: sillysagiri Date: Wed, 16 Oct 2024 00:06:10 +0700 Subject: [PATCH] add DrawEx() method --- src/sillysagiri/BMF.java | 54 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/src/sillysagiri/BMF.java b/src/sillysagiri/BMF.java index f0ee47a..f4cf3bf 100644 --- a/src/sillysagiri/BMF.java +++ b/src/sillysagiri/BMF.java @@ -206,4 +206,58 @@ public class BMF { } } + public void DrawEx(Graphics g, String str, int x, int y, int anchor) + { + short[] rect = Measure(str); + switch (anchor) { + case (Graphics.TOP | Graphics.LEFT): + Draw(g, str, x, y); + break; + + case (Graphics.TOP | Graphics.RIGHT): + Draw(g, str, x-rect[0], y); + break; + + case (Graphics.BOTTOM | Graphics.LEFT): + Draw(g, str, x, y-rect[1]); + break; + + case (Graphics.BOTTOM | Graphics.RIGHT): + Draw(g, str, x-rect[0], y-rect[1]); + break; + + case (Graphics.VCENTER | Graphics.LEFT): + Draw(g, str, x, y-(rect[1]/2)); + break; + + case (Graphics.VCENTER | Graphics.RIGHT): + Draw(g, str, x-rect[0], y-(rect[1]/2)); + break; + + case (Graphics.TOP | Graphics.HCENTER): + Draw(g, str, x-(rect[0]/2), y); + break; + + case (Graphics.BOTTOM | Graphics.HCENTER): + Draw(g, str, x-(rect[0]/2), y-rect[1]); + break; + + case (Graphics.VCENTER | Graphics.HCENTER): + Draw(g, str, x-(rect[0]/2), y-(rect[1]/2)); + break; + + case (Graphics.BASELINE | Graphics.LEFT): + Draw(g, str, x, y+(lineHeight-base)); + break; + + case (Graphics.BASELINE | Graphics.RIGHT): + Draw(g, str, x-rect[0], y+(lineHeight-base)); + break; + + default: + Draw(g, str, x, y); + break; + } + } + }