Add overlay x/y, split singular/plural overlay functions
This commit is contained in:
parent
206a1d12b3
commit
a6395eefbb
8 changed files with 221 additions and 38 deletions
|
@ -67,10 +67,26 @@ public:
|
||||||
Q_INVOKABLE void setDimensions(int width, int height);
|
Q_INVOKABLE void setDimensions(int width, int height);
|
||||||
Q_INVOKABLE void setWidth(int width);
|
Q_INVOKABLE void setWidth(int width);
|
||||||
Q_INVOKABLE void setHeight(int height);
|
Q_INVOKABLE void setHeight(int height);
|
||||||
Q_INVOKABLE void clearOverlay(int layer = INT_MAX);
|
Q_INVOKABLE void clearOverlay(int layer = 0);
|
||||||
Q_INVOKABLE void hideOverlay(int layer = INT_MAX);
|
Q_INVOKABLE void clearOverlays();
|
||||||
Q_INVOKABLE void showOverlay(int layer = INT_MAX);
|
Q_INVOKABLE void hideOverlay(int layer = 0);
|
||||||
Q_INVOKABLE void setOverlayVisibility(bool visible, int layer = INT_MAX);
|
Q_INVOKABLE void hideOverlays();
|
||||||
|
Q_INVOKABLE void showOverlay(int layer = 0);
|
||||||
|
Q_INVOKABLE void showOverlays();
|
||||||
|
Q_INVOKABLE bool getOverlayVisibility(int layer = 0);
|
||||||
|
Q_INVOKABLE void setOverlayVisibility(bool visible, int layer = 0);
|
||||||
|
Q_INVOKABLE void setOverlaysVisibility(bool visible);
|
||||||
|
Q_INVOKABLE int getOverlayX(int layer = 0);
|
||||||
|
Q_INVOKABLE int getOverlayY(int layer = 0);
|
||||||
|
Q_INVOKABLE void setOverlayX(int x, int layer = 0);
|
||||||
|
Q_INVOKABLE void setOverlayY(int y, int layer = 0);
|
||||||
|
Q_INVOKABLE void setOverlaysX(int x);
|
||||||
|
Q_INVOKABLE void setOverlaysY(int y);
|
||||||
|
Q_INVOKABLE QJSValue getOverlayPosition(int layer = 0);
|
||||||
|
Q_INVOKABLE void setOverlayPosition(int x, int y, int layer = 0);
|
||||||
|
Q_INVOKABLE void setOverlaysPosition(int x, int y);
|
||||||
|
Q_INVOKABLE void moveOverlay(int deltaX, int deltaY, int layer = 0);
|
||||||
|
Q_INVOKABLE void moveOverlays(int deltaX, int deltaY);
|
||||||
Q_INVOKABLE void addText(QString text, int x, int y, QString color = "#000000", int fontSize = 12, int layer = 0);
|
Q_INVOKABLE void addText(QString text, int x, int y, QString color = "#000000", int fontSize = 12, int layer = 0);
|
||||||
Q_INVOKABLE void addRect(int x, int y, int width, int height, QString color = "#000000", int layer = 0);
|
Q_INVOKABLE void addRect(int x, int y, int width, int height, QString color = "#000000", int layer = 0);
|
||||||
Q_INVOKABLE void addFilledRect(int x, int y, int width, int height, QString color = "#000000", int layer = 0);
|
Q_INVOKABLE void addFilledRect(int x, int y, int width, int height, QString color = "#000000", int layer = 0);
|
||||||
|
|
|
@ -25,6 +25,7 @@ public:
|
||||||
static QJSValue fromTile(Tile tile);
|
static QJSValue fromTile(Tile tile);
|
||||||
static Tile toTile(QJSValue obj);
|
static Tile toTile(QJSValue obj);
|
||||||
static QJSValue dimensions(int width, int height);
|
static QJSValue dimensions(int width, int height);
|
||||||
|
static QJSValue position(int x, int y);
|
||||||
static QJSEngine *getEngine();
|
static QJSEngine *getEngine();
|
||||||
static QImage getImage(QString filepath);
|
static QImage getImage(QString filepath);
|
||||||
static void init(MainWindow *mainWindow);
|
static void init(MainWindow *mainWindow);
|
||||||
|
|
|
@ -15,6 +15,10 @@ public:
|
||||||
Overlay * getOverlay(int layer);
|
Overlay * getOverlay(int layer);
|
||||||
void clearOverlays();
|
void clearOverlays();
|
||||||
void setOverlaysHidden(bool hidden);
|
void setOverlaysHidden(bool hidden);
|
||||||
|
void setOverlaysX(int x);
|
||||||
|
void setOverlaysY(int y);
|
||||||
|
void setOverlaysPosition(int x, int y);
|
||||||
|
void moveOverlays(int deltaX, int deltaY);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// GraphicsView_Object object;
|
// GraphicsView_Object object;
|
||||||
|
|
|
@ -10,7 +10,7 @@ class OverlayItem {
|
||||||
public:
|
public:
|
||||||
OverlayItem() {}
|
OverlayItem() {}
|
||||||
virtual ~OverlayItem() {};
|
virtual ~OverlayItem() {};
|
||||||
virtual void render(QPainter *) {};
|
virtual void render(QPainter *, int, int) {};
|
||||||
};
|
};
|
||||||
|
|
||||||
class OverlayText : public OverlayItem {
|
class OverlayText : public OverlayItem {
|
||||||
|
@ -23,7 +23,7 @@ public:
|
||||||
this->fontSize = fontSize;
|
this->fontSize = fontSize;
|
||||||
}
|
}
|
||||||
~OverlayText() {}
|
~OverlayText() {}
|
||||||
virtual void render(QPainter *painter);
|
virtual void render(QPainter *painter, int x, int y);
|
||||||
private:
|
private:
|
||||||
QString text;
|
QString text;
|
||||||
int x;
|
int x;
|
||||||
|
@ -43,7 +43,7 @@ public:
|
||||||
this->filled = filled;
|
this->filled = filled;
|
||||||
}
|
}
|
||||||
~OverlayRect() {}
|
~OverlayRect() {}
|
||||||
virtual void render(QPainter *painter);
|
virtual void render(QPainter *painter, int x, int y);
|
||||||
private:
|
private:
|
||||||
int x;
|
int x;
|
||||||
int y;
|
int y;
|
||||||
|
@ -61,7 +61,7 @@ public:
|
||||||
this->image = image;
|
this->image = image;
|
||||||
}
|
}
|
||||||
~OverlayImage() {}
|
~OverlayImage() {}
|
||||||
virtual void render(QPainter *painter);
|
virtual void render(QPainter *painter, int x, int y);
|
||||||
private:
|
private:
|
||||||
int x;
|
int x;
|
||||||
int y;
|
int y;
|
||||||
|
@ -71,11 +71,22 @@ private:
|
||||||
class Overlay
|
class Overlay
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Overlay() {}
|
Overlay() {
|
||||||
|
this->x = 0;
|
||||||
|
this->y = 0;
|
||||||
|
this->hidden = false;
|
||||||
|
}
|
||||||
~Overlay() {
|
~Overlay() {
|
||||||
this->clearItems();
|
this->clearItems();
|
||||||
}
|
}
|
||||||
|
bool getHidden();
|
||||||
void setHidden(bool hidden);
|
void setHidden(bool hidden);
|
||||||
|
int getX();
|
||||||
|
int getY();
|
||||||
|
void setX(int x);
|
||||||
|
void setY(int y);
|
||||||
|
void setPosition(int x, int y);
|
||||||
|
void move(int deltaX, int deltaY);
|
||||||
void renderItems(QPainter *painter);
|
void renderItems(QPainter *painter);
|
||||||
QList<OverlayItem*> getItems();
|
QList<OverlayItem*> getItems();
|
||||||
void clearItems();
|
void clearItems();
|
||||||
|
@ -85,6 +96,8 @@ public:
|
||||||
bool addImage(int x, int y, QImage image);
|
bool addImage(int x, int y, QImage image);
|
||||||
private:
|
private:
|
||||||
QList<OverlayItem*> items;
|
QList<OverlayItem*> items;
|
||||||
|
int x;
|
||||||
|
int y;
|
||||||
bool hidden;
|
bool hidden;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -231,11 +231,14 @@ void MainWindow::setHeight(int height) {
|
||||||
void MainWindow::clearOverlay(int layer) {
|
void MainWindow::clearOverlay(int layer) {
|
||||||
if (!this->ui || !this->ui->graphicsView_Map)
|
if (!this->ui || !this->ui->graphicsView_Map)
|
||||||
return;
|
return;
|
||||||
// INT_MAX is used as an indicator value to refer to all overlays
|
this->ui->graphicsView_Map->getOverlay(layer)->clearItems();
|
||||||
if (layer == INT_MAX)
|
this->ui->graphicsView_Map->scene()->update();
|
||||||
this->ui->graphicsView_Map->clearOverlays();
|
}
|
||||||
else
|
|
||||||
this->ui->graphicsView_Map->getOverlay(layer)->clearItems();
|
void MainWindow::clearOverlays() {
|
||||||
|
if (!this->ui || !this->ui->graphicsView_Map)
|
||||||
|
return;
|
||||||
|
this->ui->graphicsView_Map->clearOverlays();
|
||||||
this->ui->graphicsView_Map->scene()->update();
|
this->ui->graphicsView_Map->scene()->update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -243,51 +246,143 @@ void MainWindow::hideOverlay(int layer) {
|
||||||
this->setOverlayVisibility(false, layer);
|
this->setOverlayVisibility(false, layer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::hideOverlays() {
|
||||||
|
this->setOverlaysVisibility(false);
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindow::showOverlay(int layer) {
|
void MainWindow::showOverlay(int layer) {
|
||||||
this->setOverlayVisibility(true, layer);
|
this->setOverlayVisibility(true, layer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::showOverlays() {
|
||||||
|
this->setOverlaysVisibility(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool MainWindow::getOverlayVisibility(int layer) {
|
||||||
|
if (!this->ui || !this->ui->graphicsView_Map)
|
||||||
|
return false;
|
||||||
|
return !(this->ui->graphicsView_Map->getOverlay(layer)->getHidden());
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindow::setOverlayVisibility(bool visible, int layer) {
|
void MainWindow::setOverlayVisibility(bool visible, int layer) {
|
||||||
if (!this->ui || !this->ui->graphicsView_Map)
|
if (!this->ui || !this->ui->graphicsView_Map)
|
||||||
return;
|
return;
|
||||||
if (layer == INT_MAX)
|
this->ui->graphicsView_Map->getOverlay(layer)->setHidden(!visible);
|
||||||
this->ui->graphicsView_Map->setOverlaysHidden(!visible);
|
this->ui->graphicsView_Map->scene()->update();
|
||||||
else
|
}
|
||||||
this->ui->graphicsView_Map->getOverlay(layer)->setHidden(!visible);
|
|
||||||
|
void MainWindow::setOverlaysVisibility(bool visible) {
|
||||||
|
if (!this->ui || !this->ui->graphicsView_Map)
|
||||||
|
return;
|
||||||
|
this->ui->graphicsView_Map->setOverlaysHidden(!visible);
|
||||||
|
this->ui->graphicsView_Map->scene()->update();
|
||||||
|
}
|
||||||
|
|
||||||
|
int MainWindow::getOverlayX(int layer) {
|
||||||
|
if (!this->ui || !this->ui->graphicsView_Map)
|
||||||
|
return 0;
|
||||||
|
return this->ui->graphicsView_Map->getOverlay(layer)->getX();
|
||||||
|
}
|
||||||
|
|
||||||
|
int MainWindow::getOverlayY(int layer) {
|
||||||
|
if (!this->ui || !this->ui->graphicsView_Map)
|
||||||
|
return 0;
|
||||||
|
return this->ui->graphicsView_Map->getOverlay(layer)->getY();
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::setOverlayX(int x, int layer) {
|
||||||
|
if (!this->ui || !this->ui->graphicsView_Map)
|
||||||
|
return;
|
||||||
|
this->ui->graphicsView_Map->getOverlay(layer)->setX(x);
|
||||||
|
this->ui->graphicsView_Map->scene()->update();
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::setOverlayY(int y, int layer) {
|
||||||
|
if (!this->ui || !this->ui->graphicsView_Map)
|
||||||
|
return;
|
||||||
|
this->ui->graphicsView_Map->getOverlay(layer)->setY(y);
|
||||||
|
this->ui->graphicsView_Map->scene()->update();
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::setOverlaysX(int x) {
|
||||||
|
if (!this->ui || !this->ui->graphicsView_Map)
|
||||||
|
return;
|
||||||
|
this->ui->graphicsView_Map->setOverlaysX(x);
|
||||||
|
this->ui->graphicsView_Map->scene()->update();
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::setOverlaysY(int y) {
|
||||||
|
if (!this->ui || !this->ui->graphicsView_Map)
|
||||||
|
return;
|
||||||
|
this->ui->graphicsView_Map->setOverlaysY(y);
|
||||||
|
this->ui->graphicsView_Map->scene()->update();
|
||||||
|
}
|
||||||
|
|
||||||
|
QJSValue MainWindow::getOverlayPosition(int layer) {
|
||||||
|
if (!this->ui || !this->ui->graphicsView_Map)
|
||||||
|
return QJSValue();
|
||||||
|
Overlay * overlay = this->ui->graphicsView_Map->getOverlay(layer);
|
||||||
|
return Scripting::position(overlay->getX(), overlay->getY());
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::setOverlayPosition(int x, int y, int layer) {
|
||||||
|
if (!this->ui || !this->ui->graphicsView_Map)
|
||||||
|
return;
|
||||||
|
this->ui->graphicsView_Map->getOverlay(layer)->setPosition(x, y);
|
||||||
|
this->ui->graphicsView_Map->scene()->update();
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::setOverlaysPosition(int x, int y) {
|
||||||
|
if (!this->ui || !this->ui->graphicsView_Map)
|
||||||
|
return;
|
||||||
|
this->ui->graphicsView_Map->setOverlaysPosition(x, y);
|
||||||
|
this->ui->graphicsView_Map->scene()->update();
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::moveOverlay(int deltaX, int deltaY, int layer) {
|
||||||
|
if (!this->ui || !this->ui->graphicsView_Map)
|
||||||
|
return;
|
||||||
|
this->ui->graphicsView_Map->getOverlay(layer)->move(deltaX, deltaY);
|
||||||
|
this->ui->graphicsView_Map->scene()->update();
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::moveOverlays(int deltaX, int deltaY) {
|
||||||
|
if (!this->ui || !this->ui->graphicsView_Map)
|
||||||
|
return;
|
||||||
|
this->ui->graphicsView_Map->moveOverlays(deltaX, deltaY);
|
||||||
this->ui->graphicsView_Map->scene()->update();
|
this->ui->graphicsView_Map->scene()->update();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::addText(QString text, int x, int y, QString color, int fontSize, int layer) {
|
void MainWindow::addText(QString text, int x, int y, QString color, int fontSize, int layer) {
|
||||||
if (!this->ui || !this->ui->graphicsView_Map || layer == INT_MAX)
|
if (!this->ui || !this->ui->graphicsView_Map)
|
||||||
return;
|
return;
|
||||||
this->ui->graphicsView_Map->getOverlay(layer)->addText(text, x, y, color, fontSize);
|
this->ui->graphicsView_Map->getOverlay(layer)->addText(text, x, y, color, fontSize);
|
||||||
this->ui->graphicsView_Map->scene()->update();
|
this->ui->graphicsView_Map->scene()->update();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::addRect(int x, int y, int width, int height, QString color, int layer) {
|
void MainWindow::addRect(int x, int y, int width, int height, QString color, int layer) {
|
||||||
if (!this->ui || !this->ui->graphicsView_Map || layer == INT_MAX)
|
if (!this->ui || !this->ui->graphicsView_Map)
|
||||||
return;
|
return;
|
||||||
this->ui->graphicsView_Map->getOverlay(layer)->addRect(x, y, width, height, color, false);
|
this->ui->graphicsView_Map->getOverlay(layer)->addRect(x, y, width, height, color, false);
|
||||||
this->ui->graphicsView_Map->scene()->update();
|
this->ui->graphicsView_Map->scene()->update();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::addFilledRect(int x, int y, int width, int height, QString color, int layer) {
|
void MainWindow::addFilledRect(int x, int y, int width, int height, QString color, int layer) {
|
||||||
if (!this->ui || !this->ui->graphicsView_Map || layer == INT_MAX)
|
if (!this->ui || !this->ui->graphicsView_Map)
|
||||||
return;
|
return;
|
||||||
this->ui->graphicsView_Map->getOverlay(layer)->addRect(x, y, width, height, color, true);
|
this->ui->graphicsView_Map->getOverlay(layer)->addRect(x, y, width, height, color, true);
|
||||||
this->ui->graphicsView_Map->scene()->update();
|
this->ui->graphicsView_Map->scene()->update();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::addImage(int x, int y, QString filepath, int layer) {
|
void MainWindow::addImage(int x, int y, QString filepath, int layer) {
|
||||||
if (!this->ui || !this->ui->graphicsView_Map || layer == INT_MAX)
|
if (!this->ui || !this->ui->graphicsView_Map)
|
||||||
return;
|
return;
|
||||||
if (this->ui->graphicsView_Map->getOverlay(layer)->addImage(x, y, filepath))
|
if (this->ui->graphicsView_Map->getOverlay(layer)->addImage(x, y, filepath))
|
||||||
this->ui->graphicsView_Map->scene()->update();
|
this->ui->graphicsView_Map->scene()->update();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::createImage(int x, int y, QString filepath, int width, int height, unsigned offset, bool xflip, bool yflip, int paletteId, bool setTransparency, int layer) {
|
void MainWindow::createImage(int x, int y, QString filepath, int width, int height, unsigned offset, bool xflip, bool yflip, int paletteId, bool setTransparency, int layer) {
|
||||||
if (!this->ui || !this->ui->graphicsView_Map || layer == INT_MAX
|
if (!this->ui || !this->ui->graphicsView_Map || !this->editor || !this->editor->map || !this->editor->map->layout
|
||||||
|| !this->editor || !this->editor->map || !this->editor->map->layout
|
|
||||||
|| !this->editor->map->layout->tileset_primary || !this->editor->map->layout->tileset_secondary)
|
|| !this->editor->map->layout->tileset_primary || !this->editor->map->layout->tileset_secondary)
|
||||||
return;
|
return;
|
||||||
QList<QRgb> palette;
|
QList<QRgb> palette;
|
||||||
|
@ -298,8 +393,7 @@ void MainWindow::createImage(int x, int y, QString filepath, int width, int heig
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::addTileImage(int x, int y, int tileId, bool xflip, bool yflip, int paletteId, bool setTransparency, int layer) {
|
void MainWindow::addTileImage(int x, int y, int tileId, bool xflip, bool yflip, int paletteId, bool setTransparency, int layer) {
|
||||||
if (!this->ui || !this->ui->graphicsView_Map || layer == INT_MAX
|
if (!this->ui || !this->ui->graphicsView_Map || !this->editor || !this->editor->map || !this->editor->map->layout
|
||||||
|| !this->editor || !this->editor->map || !this->editor->map->layout
|
|
||||||
|| !this->editor->map->layout->tileset_primary || !this->editor->map->layout->tileset_secondary)
|
|| !this->editor->map->layout->tileset_primary || !this->editor->map->layout->tileset_secondary)
|
||||||
return;
|
return;
|
||||||
QImage image = getPalettedTileImage(tileId,
|
QImage image = getPalettedTileImage(tileId,
|
||||||
|
@ -314,8 +408,7 @@ void MainWindow::addTileImage(int x, int y, int tileId, bool xflip, bool yflip,
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::addTilesImage(int x, int y, QJSValue tilesObj, int layer) {
|
void MainWindow::addTilesImage(int x, int y, QJSValue tilesObj, int layer) {
|
||||||
if (!this->ui || !this->ui->graphicsView_Map || layer == INT_MAX
|
if (!this->ui || !this->ui->graphicsView_Map || !this->editor || !this->editor->map || !this->editor->map->layout
|
||||||
|| !this->editor || !this->editor->map || !this->editor->map->layout
|
|
||||||
|| !this->editor->map->layout->tileset_primary || !this->editor->map->layout->tileset_secondary)
|
|| !this->editor->map->layout->tileset_primary || !this->editor->map->layout->tileset_secondary)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -340,8 +433,7 @@ void MainWindow::addTilesImage(int x, int y, QJSValue tilesObj, int layer) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::addMetatileImage(int x, int y, int metatileId, int layer) {
|
void MainWindow::addMetatileImage(int x, int y, int metatileId, int layer) {
|
||||||
if (!this->ui || !this->ui->graphicsView_Map || layer == INT_MAX
|
if (!this->ui || !this->ui->graphicsView_Map || !this->editor || !this->editor->map || !this->editor->map->layout
|
||||||
|| !this->editor || !this->editor->map || !this->editor->map->layout
|
|
||||||
|| !this->editor->map->layout->tileset_primary || !this->editor->map->layout->tileset_secondary)
|
|| !this->editor->map->layout->tileset_primary || !this->editor->map->layout->tileset_secondary)
|
||||||
return;
|
return;
|
||||||
QImage image = getMetatileImage(static_cast<uint16_t>(metatileId),
|
QImage image = getMetatileImage(static_cast<uint16_t>(metatileId),
|
||||||
|
|
|
@ -179,6 +179,13 @@ QJSValue Scripting::dimensions(int width, int height) {
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QJSValue Scripting::position(int x, int y) {
|
||||||
|
QJSValue obj = instance->engine->newObject();
|
||||||
|
obj.setProperty("x", x);
|
||||||
|
obj.setProperty("y", y);
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
|
||||||
Tile Scripting::toTile(QJSValue obj) {
|
Tile Scripting::toTile(QJSValue obj) {
|
||||||
if (!obj.hasProperty("tileId")
|
if (!obj.hasProperty("tileId")
|
||||||
|| !obj.hasProperty("xflip")
|
|| !obj.hasProperty("xflip")
|
||||||
|
|
|
@ -34,6 +34,26 @@ void GraphicsView::setOverlaysHidden(bool hidden) {
|
||||||
overlay->setHidden(hidden);
|
overlay->setHidden(hidden);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GraphicsView::setOverlaysX(int x) {
|
||||||
|
foreach (Overlay * overlay, this->overlayMap)
|
||||||
|
overlay->setX(x);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GraphicsView::setOverlaysY(int y) {
|
||||||
|
foreach (Overlay * overlay, this->overlayMap)
|
||||||
|
overlay->setY(y);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GraphicsView::setOverlaysPosition(int x, int y) {
|
||||||
|
foreach (Overlay * overlay, this->overlayMap)
|
||||||
|
overlay->setPosition(x, y);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GraphicsView::moveOverlays(int deltaX, int deltaY) {
|
||||||
|
foreach (Overlay * overlay, this->overlayMap)
|
||||||
|
overlay->move(deltaX, deltaY);
|
||||||
|
}
|
||||||
|
|
||||||
Overlay * GraphicsView::getOverlay(int layer) {
|
Overlay * GraphicsView::getOverlay(int layer) {
|
||||||
Overlay * overlay = this->overlayMap.value(layer, nullptr);
|
Overlay * overlay = this->overlayMap.value(layer, nullptr);
|
||||||
if (!overlay) {
|
if (!overlay) {
|
||||||
|
|
|
@ -2,32 +2,32 @@
|
||||||
#include "scripting.h"
|
#include "scripting.h"
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
|
|
||||||
void OverlayText::render(QPainter *painter) {
|
void OverlayText::render(QPainter *painter, int x, int y) {
|
||||||
QFont font = painter->font();
|
QFont font = painter->font();
|
||||||
font.setPixelSize(this->fontSize);
|
font.setPixelSize(this->fontSize);
|
||||||
painter->setFont(font);
|
painter->setFont(font);
|
||||||
painter->setPen(this->color);
|
painter->setPen(this->color);
|
||||||
painter->drawText(this->x, this->y, this->text);
|
painter->drawText(this->x + x, this->y + y, this->text);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OverlayRect::render(QPainter *painter) {
|
void OverlayRect::render(QPainter *painter, int x, int y) {
|
||||||
if (this->filled) {
|
if (this->filled) {
|
||||||
painter->fillRect(this->x, this->y, this->width, this->height, this->color);
|
painter->fillRect(this->x + x, this->y + y, this->width, this->height, this->color);
|
||||||
} else {
|
} else {
|
||||||
painter->setPen(this->color);
|
painter->setPen(this->color);
|
||||||
painter->drawRect(this->x, this->y, this->width, this->height);
|
painter->drawRect(this->x + x, this->y + y, this->width, this->height);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void OverlayImage::render(QPainter *painter) {
|
void OverlayImage::render(QPainter *painter, int x, int y) {
|
||||||
painter->drawImage(this->x, this->y, this->image);
|
painter->drawImage(this->x + x, this->y + y, this->image);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Overlay::renderItems(QPainter *painter) {
|
void Overlay::renderItems(QPainter *painter) {
|
||||||
if (this->hidden) return;
|
if (this->hidden) return;
|
||||||
|
|
||||||
for (auto item : this->items)
|
for (auto item : this->items)
|
||||||
item->render(painter);
|
item->render(painter, this->x, this->y);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Overlay::clearItems() {
|
void Overlay::clearItems() {
|
||||||
|
@ -41,10 +41,40 @@ QList<OverlayItem*> Overlay::getItems() {
|
||||||
return this->items;
|
return this->items;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Overlay::getHidden() {
|
||||||
|
return this->hidden;
|
||||||
|
}
|
||||||
|
|
||||||
void Overlay::setHidden(bool hidden) {
|
void Overlay::setHidden(bool hidden) {
|
||||||
this->hidden = hidden;
|
this->hidden = hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int Overlay::getX() {
|
||||||
|
return this->x;
|
||||||
|
}
|
||||||
|
|
||||||
|
int Overlay::getY() {
|
||||||
|
return this->y;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Overlay::setX(int x) {
|
||||||
|
this->x = x;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Overlay::setY(int y) {
|
||||||
|
this->y = y;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Overlay::setPosition(int x, int y) {
|
||||||
|
this->x = x;
|
||||||
|
this->y = y;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Overlay::move(int deltaX, int deltaY) {
|
||||||
|
this->x += deltaX;
|
||||||
|
this->y += deltaY;
|
||||||
|
}
|
||||||
|
|
||||||
void Overlay::addText(QString text, int x, int y, QString color, int fontSize) {
|
void Overlay::addText(QString text, int x, int y, QString color, int fontSize) {
|
||||||
this->items.append(new OverlayText(text, x, y, QColor(color), fontSize));
|
this->items.append(new OverlayText(text, x, y, QColor(color), fontSize));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue