83 lines
2.1 KiB
Java
Executable File
83 lines
2.1 KiB
Java
Executable File
package org.warp.picalculator.gui.expression.blocks;
|
|
|
|
import org.warp.picalculator.gui.expression.Caret;
|
|
import org.warp.picalculator.gui.expression.blocks.Block;
|
|
import org.warp.picalculator.gui.expression.blocks.BlockContainer;
|
|
import org.warp.picalculator.gui.graphicengine.GraphicEngine;
|
|
import org.warp.picalculator.gui.graphicengine.Renderer;
|
|
|
|
public class BlockPower extends Block {
|
|
|
|
public static final int CLASS_ID = 0x00000005;
|
|
|
|
private final BlockContainer containerExponent;
|
|
|
|
public BlockPower() {
|
|
containerExponent = new BlockContainer(true);
|
|
recomputeDimensions();
|
|
}
|
|
|
|
@Override
|
|
public void draw(GraphicEngine ge, Renderer r, int x, int y, Caret caret) {
|
|
BlockContainer.getDefaultFont(true).use(ge);
|
|
r.glColor(BlockContainer.getDefaultColor());
|
|
containerExponent.draw(ge, r, x, y, caret);
|
|
}
|
|
|
|
@Override
|
|
public boolean putBlock(Caret caret, Block newBlock) {
|
|
boolean added = false;
|
|
added = added | containerExponent.putBlock(caret, newBlock);
|
|
if (added) {
|
|
recomputeDimensions();
|
|
}
|
|
return added;
|
|
}
|
|
|
|
@Override
|
|
public boolean delBlock(Caret caret) {
|
|
boolean removed = false;
|
|
removed = removed | containerExponent.delBlock(caret);
|
|
if (removed) {
|
|
recomputeDimensions();
|
|
}
|
|
return removed;
|
|
}
|
|
|
|
@Override
|
|
public Block getBlock(Caret caret) {
|
|
return containerExponent.getBlock(caret);
|
|
}
|
|
|
|
@Override
|
|
public void recomputeDimensions() {
|
|
final int w2 = containerExponent.getWidth();
|
|
final int h2 = containerExponent.getHeight();
|
|
final int l2 = containerExponent.getLine();
|
|
width = w2+1;
|
|
height = h2+BlockContainer.getDefaultCharHeight(small)-3;
|
|
line = h2+BlockContainer.getDefaultCharHeight(small)/2-3;
|
|
}
|
|
|
|
@Override
|
|
public void setSmall(boolean small) {
|
|
this.small = small;
|
|
containerExponent.setSmall(true);
|
|
recomputeDimensions();
|
|
}
|
|
|
|
public BlockContainer getExponentContainer() {
|
|
return containerExponent;
|
|
}
|
|
|
|
@Override
|
|
public int getClassID() {
|
|
return CLASS_ID;
|
|
}
|
|
|
|
@Override
|
|
public int computeCaretMaxBound() {
|
|
return containerExponent.computeCaretMaxBound();
|
|
}
|
|
}
|