cn.liutils.cgui.gui.component.Tint.java Source code

Java tutorial

Introduction

Here is the source code for cn.liutils.cgui.gui.component.Tint.java

Source

/**
 * Copyright (c) Lambda Innovation, 2013-2015
 * ??Lambda Innovation
 * http://www.li-dev.cn/
 *
 * This project is open-source, and it is distributed under  
 * the terms of GNU General Public License. You can modify
 * and distribute freely as long as you follow the license.
 * ??GNU???
 * ????
 * http://www.gnu.org/licenses/gpl.html
 */
package cn.liutils.cgui.gui.component;

import org.lwjgl.opengl.GL11;

import cn.liutils.cgui.gui.Widget;
import cn.liutils.cgui.gui.event.FrameEvent;
import cn.liutils.cgui.gui.event.FrameEvent.FrameEventHandler;
import cn.liutils.util.client.HudUtils;
import cn.liutils.util.helper.Color;

/**
 * @author WeAthFolD
 */
public class Tint extends Component {

    public Color idleColor = new Color(1, 1, 1, 0), hoverColor = new Color(1, 1, 1, 0.4);

    public boolean affectTexture = false;

    public static Tint get(Widget w) {
        return w.getComponent("Tint");
    }

    public Tint() {
        super("Tint");

        addEventHandler(new FrameEventHandler() {
            @Override
            public void handleEvent(Widget w, FrameEvent event) {
                if (affectTexture) {
                    DrawTexture dt = DrawTexture.get(w);
                    if (dt != null) {
                        dt.color = event.hovering ? hoverColor : idleColor;
                    }
                } else {
                    if (event.hovering)
                        hoverColor.bind();
                    else
                        idleColor.bind();

                    GL11.glDisable(GL11.GL_ALPHA_TEST);
                    HudUtils.colorRect(0, 0, w.transform.width, w.transform.height);
                    //GL11.glEnable(GL11.GL_ALPHA_TEST);
                }
            }
        });
    }
}