package org.ntlab.radishforandroidstudio.framework.RWT;

import android.content.Context;
import android.graphics.Point;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.View;

/**
 * ゲームに使用するViewの基底クラス
 *
 * @author s.iwatani
 */
public abstract class RWTView extends View {
    private float dp = 1;
    private Point size = null;
    private Point pos = null;

    public RWTView(Context context) {
        super(context);
        init();
    }

    public RWTView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public RWTView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();
    }

    public void init() {
        dp = getResources().getDisplayMetrics().density;
    }

    /**
     * 画面上に表示されるサイズを取得
     * @return Point
     */
    public Point getSize() {
        if (size == null) {
            size = new Point(getWidth(), getHeight());
        }
        return size;
    }

    /**
     * 画面上に表示される左上の座標を取得
     * @return Point
     */
    public Point getPosition() {
        if (pos == null) {
            pos = new Point(getLeft(), getTop());
        }
        return pos;
    }

    /**
     * DPを乗算する
     * @param a
     * @return int
     */
    public int applyDp(int a) {
        return (int)(a * dp);
    }
}
