OSDN Git Service

Merge commit '2458eff3aea04f67893bc824b5cf896fbb767332'
[jindolf/Jindolf.git] / src / main / java / jp / sourceforge / jindolf / TextRow.java
diff --git a/src/main/java/jp/sourceforge/jindolf/TextRow.java b/src/main/java/jp/sourceforge/jindolf/TextRow.java
new file mode 100644 (file)
index 0000000..4e88f97
--- /dev/null
@@ -0,0 +1,81 @@
+/*\r
+ * 矩形領域テキスト描画基本インタフェース\r
+ *\r
+ * Copyright(c) 2008 olyutorskii\r
+ * $Id: TextRow.java 959 2009-12-14 14:11:01Z olyutorskii $\r
+ */\r
+\r
+package jp.sourceforge.jindolf;\r
+\r
+import java.awt.Graphics2D;\r
+import java.awt.Rectangle;\r
+\r
+/**\r
+ * 矩形に複数行のテキストを配置・描画する「なにものか」を表すインタフェース。\r
+ * この場合、「行」とは左から右へ水平方向にグリフを並べたもの。\r
+ */\r
+public interface TextRow extends Selectable{\r
+\r
+    /**\r
+     * 新しい幅を指定し、寸法の再計算、内部の再レイアウトを促す。\r
+     * @param newWidth 新しいピクセル幅\r
+     * @return 新しい寸法\r
+     */\r
+    Rectangle setWidth(int newWidth);\r
+\r
+    /**\r
+     * 現在の設定で寸法の再計算、内部の再レイアウトを促す。\r
+     * @return 新しい寸法\r
+     */\r
+    Rectangle recalcBounds();\r
+\r
+    /**\r
+     * 描画領域の寸法を返す。\r
+     * @return 描画領域の寸法\r
+     */\r
+    Rectangle getBounds();\r
+\r
+    /**\r
+     * 描画開始位置の指定。\r
+     * @param xPos 描画開始位置のx座標\r
+     * @param yPos 描画開始位置のy座標\r
+     */\r
+    void setPos(int xPos, int yPos);\r
+\r
+    /**\r
+     * 描画領域の寸法幅を返す。\r
+     * @return 描画領域の寸法幅\r
+     */\r
+    int getWidth();\r
+\r
+    /**\r
+     * 描画領域の寸法高を返す。\r
+     * @return 描画領域の寸法高\r
+     */\r
+    int getHeight();\r
+\r
+    /**\r
+     * フォント設定を変更する。\r
+     * @param fontInfo フォント設定\r
+     */\r
+    void setFontInfo(FontInfo fontInfo);\r
+\r
+    /**\r
+     * 描画対象か否か判定する。\r
+     * @return 描画対象ならtrue\r
+     */\r
+    boolean isVisible();\r
+\r
+    /**\r
+     * 描画対象か否か設定する。\r
+     * @param visible 描画対象ならtrue\r
+     */\r
+    void setVisible(boolean visible);\r
+\r
+    /**\r
+     * 描画を行う。\r
+     * @param g グラフィックコンテキスト\r
+     */\r
+    void paint(Graphics2D g);\r
+\r
+}\r