2017-04-12 13:04:35 +02:00
|
|
|
package org.warp.picalculator.gui.expression.blocks;
|
2017-03-03 23:06:43 +01:00
|
|
|
|
2017-05-26 22:37:18 +02:00
|
|
|
import org.warp.picalculator.Error;
|
2017-04-09 22:01:03 +02:00
|
|
|
import org.warp.picalculator.gui.GraphicalElement;
|
2017-04-12 13:04:35 +02:00
|
|
|
import org.warp.picalculator.gui.expression.Caret;
|
2017-05-05 22:27:11 +02:00
|
|
|
import org.warp.picalculator.gui.expression.ExtraMenu;
|
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.interfaces.Feature;
|
2017-03-03 23:06:43 +01:00
|
|
|
|
|
|
|
public abstract class Block implements GraphicalElement {
|
2017-04-10 22:50:43 +02:00
|
|
|
|
2017-03-03 23:06:43 +01:00
|
|
|
protected boolean small;
|
|
|
|
protected int width;
|
|
|
|
protected int height;
|
|
|
|
protected int line;
|
2017-04-10 22:50:43 +02:00
|
|
|
|
2017-03-03 23:06:43 +01:00
|
|
|
/**
|
|
|
|
*
|
2017-04-10 22:50:43 +02:00
|
|
|
* @param r
|
|
|
|
* Graphic Renderer class.
|
|
|
|
* @param x
|
|
|
|
* Position relative to the window.
|
|
|
|
* @param y
|
|
|
|
* Position relative to the window.
|
|
|
|
* @param small
|
2017-03-03 23:06:43 +01:00
|
|
|
*/
|
|
|
|
public abstract void draw(GraphicEngine ge, Renderer r, int x, int y, Caret caret);
|
|
|
|
|
2017-03-26 22:44:09 +02:00
|
|
|
public abstract boolean putBlock(Caret caret, Block newBlock);
|
|
|
|
|
|
|
|
public abstract boolean delBlock(Caret caret);
|
|
|
|
|
2017-05-05 22:27:11 +02:00
|
|
|
public abstract Block getBlock(Caret caret);
|
|
|
|
|
2017-03-03 23:06:43 +01:00
|
|
|
@Override
|
|
|
|
public abstract void recomputeDimensions();
|
2017-04-09 22:01:03 +02:00
|
|
|
|
|
|
|
public abstract int computeCaretMaxBound();
|
2017-04-10 22:50:43 +02:00
|
|
|
|
2017-03-03 23:06:43 +01:00
|
|
|
@Override
|
|
|
|
public int getWidth() {
|
|
|
|
return width;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public int getHeight() {
|
|
|
|
return height;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public int getLine() {
|
|
|
|
return line;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isSmall() {
|
|
|
|
return small;
|
|
|
|
}
|
2017-09-24 18:47:30 +02:00
|
|
|
|
2017-03-03 23:06:43 +01:00
|
|
|
public abstract void setSmall(boolean small);
|
2017-09-24 18:47:30 +02:00
|
|
|
|
2017-05-16 22:02:44 +02:00
|
|
|
public ExtraMenu<?> getExtraMenu() {
|
2017-05-05 22:27:11 +02:00
|
|
|
return null;
|
|
|
|
}
|
2017-05-26 22:37:18 +02:00
|
|
|
|
|
|
|
public abstract Feature toFeature(MathContext context) throws Error;
|
2017-03-03 23:06:43 +01:00
|
|
|
}
|