2017-04-12 13:04:35 +02:00
|
|
|
package org.warp.picalculator.gui.expression.blocks;
|
2017-03-03 23:06:43 +01:00
|
|
|
|
2017-04-12 13:04:35 +02:00
|
|
|
import org.warp.picalculator.gui.expression.Caret;
|
2017-03-03 23:06:43 +01:00
|
|
|
import org.warp.picalculator.gui.graphicengine.GraphicEngine;
|
|
|
|
import org.warp.picalculator.gui.graphicengine.Renderer;
|
2017-05-26 22:37:18 +02:00
|
|
|
import org.warp.picalculator.math.MathContext;
|
|
|
|
import org.warp.picalculator.math.parser.features.FeatureChar;
|
|
|
|
import org.warp.picalculator.math.parser.features.interfaces.Feature;
|
2017-03-03 23:06:43 +01:00
|
|
|
|
|
|
|
public class BlockChar extends Block {
|
2017-04-10 22:50:43 +02:00
|
|
|
|
2017-03-03 23:06:43 +01:00
|
|
|
private final char ch;
|
2017-04-10 22:50:43 +02:00
|
|
|
|
2017-03-03 23:06:43 +01:00
|
|
|
public BlockChar(char ch) {
|
|
|
|
this.ch = ch;
|
|
|
|
recomputeDimensions();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void draw(GraphicEngine ge, Renderer r, int x, int y, Caret caret) {
|
|
|
|
BlockContainer.getDefaultFont(small).use(ge);
|
|
|
|
r.glColor(BlockContainer.getDefaultColor());
|
|
|
|
r.glDrawCharLeft(x, y, ch);
|
|
|
|
}
|
|
|
|
|
2017-03-26 22:44:09 +02:00
|
|
|
@Override
|
|
|
|
public boolean putBlock(Caret caret, Block newBlock) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean delBlock(Caret caret) {
|
|
|
|
return false;
|
|
|
|
}
|
2017-04-10 22:50:43 +02:00
|
|
|
|
2017-05-05 22:27:11 +02:00
|
|
|
@Override
|
|
|
|
public Block getBlock(Caret caret) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
2017-03-03 23:06:43 +01:00
|
|
|
@Override
|
|
|
|
public void recomputeDimensions() {
|
2017-09-24 13:09:30 +02:00
|
|
|
width = BlockContainer.getDefaultCharWidth(small)-1;
|
2017-03-03 23:06:43 +01:00
|
|
|
height = BlockContainer.getDefaultCharHeight(small);
|
2017-04-10 22:50:43 +02:00
|
|
|
line = height / 2;
|
2017-03-03 23:06:43 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void setSmall(boolean small) {
|
|
|
|
this.small = small;
|
|
|
|
recomputeDimensions();
|
|
|
|
}
|
2017-04-10 22:50:43 +02:00
|
|
|
|
2017-03-03 23:06:43 +01:00
|
|
|
public char getChar() {
|
|
|
|
return ch;
|
|
|
|
}
|
|
|
|
|
2017-03-26 22:44:09 +02:00
|
|
|
@Override
|
2017-05-26 22:37:18 +02:00
|
|
|
public int computeCaretMaxBound() {
|
|
|
|
return 0;
|
2017-03-26 22:44:09 +02:00
|
|
|
}
|
|
|
|
|
2017-04-09 22:01:03 +02:00
|
|
|
@Override
|
2017-05-26 22:37:18 +02:00
|
|
|
public Feature toFeature(MathContext context) {
|
|
|
|
return new FeatureChar(getChar());
|
2017-04-09 22:01:03 +02:00
|
|
|
}
|
|
|
|
|
2017-03-03 23:06:43 +01:00
|
|
|
}
|