WarpPI/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/BlockChar.java

91 lines
2.0 KiB
Java
Raw Normal View History

package it.cavallium.warppi.gui.expression.blocks;
import it.cavallium.warppi.gui.expression.Caret;
2018-10-04 23:39:19 +02:00
import it.cavallium.warppi.gui.expression.InputContext;
import it.cavallium.warppi.gui.graphicengine.GraphicEngine;
import it.cavallium.warppi.gui.graphicengine.Renderer;
import it.cavallium.warppi.math.MathContext;
import it.cavallium.warppi.math.parser.features.FeatureChar;
import it.cavallium.warppi.math.parser.features.interfaces.Feature;
2018-10-04 08:49:11 +02:00
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
public class BlockChar extends Block {
private final char ch;
2018-09-22 11:17:30 +02:00
public BlockChar(final char ch) {
this.ch = ch;
recomputeDimensions();
}
2018-10-04 23:39:19 +02:00
public BlockChar(final char ch, InputContext ic) {
this.ch = ch;
recomputeDimensions();
}
@Override
2018-09-22 11:17:30 +02:00
public void draw(final GraphicEngine ge, final Renderer r, final int x, final int y, final Caret caret) {
BlockContainer.getDefaultFont(small).use(ge);
r.glColor(BlockContainer.getDefaultColor());
r.glDrawCharLeft(x, y, ch);
}
@Override
2018-09-22 11:17:30 +02:00
public boolean putBlock(final Caret caret, final Block newBlock) {
return false;
}
@Override
2018-09-22 11:17:30 +02:00
public boolean delBlock(final Caret caret) {
return false;
}
@Override
2018-09-22 11:17:30 +02:00
public BlockReference<?> getBlock(final Caret caret) {
return null;
}
@Override
public void recomputeDimensions() {
width = BlockContainer.getDefaultCharWidth(small) - 1;
height = BlockContainer.getDefaultCharHeight(small);
line = height / 2;
}
@Override
2018-09-22 11:17:30 +02:00
public void setSmall(final boolean small) {
this.small = small;
recomputeDimensions();
}
public char getChar() {
return ch;
}
@Override
public int computeCaretMaxBound() {
return 0;
}
2017-04-09 22:01:03 +02:00
@Override
2018-09-22 11:17:30 +02:00
public Feature toFeature(final MathContext context) {
return new FeatureChar(getChar());
2017-04-09 22:01:03 +02:00
}
2018-10-04 08:49:11 +02:00
@Override
2018-10-04 09:52:14 +02:00
public ObjectArrayList<Block> getInnerBlocks() {
2018-10-04 08:49:11 +02:00
return null;
}
2018-10-04 09:52:14 +02:00
@Override
public int getInnerContainersCount() {
return 0;
}
2018-10-04 23:39:19 +02:00
@Override
public BlockChar clone(InputContext ic) {
return new BlockChar(ch, ic);
}
}