mirror of
https://github.com/processing/processing4.git
synced 2026-02-11 17:40:48 +01:00
131 lines
3.3 KiB
Java
Executable File
131 lines
3.3 KiB
Java
Executable File
package processing.mode.experimental;
|
|
|
|
/*
|
|
Part of the XQMode project - https://github.com/Manindra29/XQMode
|
|
|
|
Under Google Summer of Code 2012 -
|
|
http://www.google-melange.com/gsoc/homepage/google/gsoc2012
|
|
|
|
Copyright (C) 2012 Manindra Moharana
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License version 2
|
|
as published by the Free Software Foundation.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software Foundation,
|
|
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*/
|
|
|
|
import java.awt.Color;
|
|
import java.awt.Dimension;
|
|
import java.awt.Graphics;
|
|
import java.awt.Graphics2D;
|
|
import java.awt.RenderingHints;
|
|
import java.awt.event.MouseEvent;
|
|
import java.awt.event.MouseListener;
|
|
|
|
import javax.swing.JPanel;
|
|
|
|
/**
|
|
* Toggle Button displayed in the editor line status panel for toggling bewtween
|
|
* console and problems list. Glorified JPanel.
|
|
*
|
|
* @author Manindra Moharana <me@mkmoharana.com>
|
|
*
|
|
*/
|
|
|
|
public class XQConsoleToggle extends JPanel implements MouseListener {
|
|
public static final String[] text = { "Console", "Errors" };
|
|
|
|
private boolean toggleText = true;
|
|
private boolean toggleBG = true;
|
|
|
|
/**
|
|
* Height of the component
|
|
*/
|
|
protected int height;
|
|
protected DebugEditor editor;
|
|
protected String buttonName;
|
|
|
|
public XQConsoleToggle(DebugEditor editor, String buttonName, int height) {
|
|
this.editor = editor;
|
|
this.height = height;
|
|
this.buttonName = buttonName;
|
|
}
|
|
|
|
public Dimension getPreferredSize() {
|
|
return new Dimension(70, height);
|
|
}
|
|
|
|
public Dimension getMinimumSize() {
|
|
return getPreferredSize();
|
|
}
|
|
|
|
public Dimension getMaximumSize() {
|
|
return getPreferredSize();
|
|
}
|
|
|
|
public void paintComponent(Graphics g) {
|
|
Graphics2D g2d = (Graphics2D) g;
|
|
g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
|
|
RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
|
|
|
|
// On mouse hover, text and background color are changed.
|
|
if (toggleBG) {
|
|
g.setColor(new Color(0xff9DA7B0));
|
|
g.fillRect(0, 0, this.getWidth(), this.getHeight());
|
|
g.setColor(new Color(0xff29333D));
|
|
g.fillRect(0, 0, 4, this.getHeight());
|
|
g.setColor(Color.BLACK);
|
|
} else {
|
|
g.setColor(Color.DARK_GRAY);
|
|
g.fillRect(0, 0, this.getWidth(), this.getHeight());
|
|
g.setColor(new Color(0xff29333D));
|
|
g.fillRect(0, 0, 4, this.getHeight());
|
|
g.setColor(Color.WHITE);
|
|
}
|
|
|
|
g.drawString(buttonName, getWidth() / 2 + 2 // + 2 is a offset
|
|
- getFontMetrics(getFont()).stringWidth(buttonName) / 2,
|
|
this.getHeight() - 6);
|
|
}
|
|
|
|
@Override
|
|
public void mouseClicked(MouseEvent arg0) {
|
|
|
|
this.repaint();
|
|
try {
|
|
editor.toggleView(buttonName);
|
|
} catch (Exception e) {
|
|
System.out.println(e);
|
|
// e.printStackTrace();
|
|
}
|
|
toggleText = !toggleText;
|
|
}
|
|
|
|
@Override
|
|
public void mouseEntered(MouseEvent arg0) {
|
|
toggleBG = !toggleBG;
|
|
this.repaint();
|
|
}
|
|
|
|
@Override
|
|
public void mouseExited(MouseEvent arg0) {
|
|
toggleBG = !toggleBG;
|
|
this.repaint();
|
|
}
|
|
|
|
@Override
|
|
public void mousePressed(MouseEvent arg0) {
|
|
}
|
|
|
|
@Override
|
|
public void mouseReleased(MouseEvent arg0) {
|
|
}
|
|
} |