Fix Settings menu and associated components.

This commit is contained in:
Aloshi 2013-07-16 23:18:30 -05:00
parent 8bd87e162c
commit 28f7a9c6e1
4 changed files with 25 additions and 15 deletions

View file

@ -58,6 +58,8 @@ public:
unsigned char getOpacity() const; unsigned char getOpacity() const;
void setOpacity(unsigned char opacity); void setOpacity(unsigned char opacity);
const Eigen::Affine3f getTransform();
protected: protected:
void renderChildren(const Eigen::Affine3f& transform) const; void renderChildren(const Eigen::Affine3f& transform) const;
@ -70,8 +72,6 @@ protected:
Eigen::Vector3f mPosition; Eigen::Vector3f mPosition;
Eigen::Vector2f mSize; Eigen::Vector2f mSize;
const Eigen::Affine3f getTransform();
private: private:
Eigen::Affine3f mTransform; //Don't access this directly! Use getTransform()! Eigen::Affine3f mTransform; //Don't access this directly! Use getTransform()!
}; };

View file

@ -101,9 +101,11 @@ Eigen::Vector3f ComponentListComponent::getCellOffset(Eigen::Vector2i pos)
for(int x = 0; x < pos.x(); x++) for(int x = 0; x < pos.x(); x++)
offset[0] += getColumnWidth(x); offset[0] += getColumnWidth(x);
//LOG(LogInfo) << "total offsets up to " << pos.x() << ", " << pos.y() << ": " << offset.x() << ", " << offset.y();
ComponentEntry* entry = getCell(pos.x(), pos.y()); ComponentEntry* entry = getCell(pos.x(), pos.y());
Eigen::Vector2i gridSize; Eigen::Vector2i gridSize(0, 0);
for(int x = pos.x(); x < pos.x() + entry->dim[0]; x++) for(int x = pos.x(); x < pos.x() + entry->dim[0]; x++)
gridSize[0] += getColumnWidth(x); gridSize[0] += getColumnWidth(x);
for(int y = pos.y(); y < pos.y() + entry->dim[1]; y++) for(int y = pos.y(); y < pos.y() + entry->dim[1]; y++)
@ -273,6 +275,7 @@ void ComponentListComponent::update(int deltaTime)
void ComponentListComponent::render(const Eigen::Affine3f& parentTrans) void ComponentListComponent::render(const Eigen::Affine3f& parentTrans)
{ {
Eigen::Affine3f trans = parentTrans * getTransform(); Eigen::Affine3f trans = parentTrans * getTransform();
Renderer::setMatrix(trans);
Renderer::drawRect(0, 0, (int)getSize().x(), (int)getSize().y(), 0xFFFFFFAA); Renderer::drawRect(0, 0, (int)getSize().x(), (int)getSize().y(), 0xFFFFFFAA);
@ -281,30 +284,35 @@ void ComponentListComponent::render(const Eigen::Affine3f& parentTrans)
iter->component->render(trans); iter->component->render(trans);
} }
//draw cell outlines //draw cell outlines
/*Vector2i pos; /*Renderer::setMatrix(trans);
for(unsigned int x = 0; x < mGridSize.x; x++) Eigen::Vector2i pos(0, 0);
for(int x = 0; x < mGridSize.x(); x++)
{ {
for(unsigned int y = 0; y < mGridSize.y; y++) for(int y = 0; y < mGridSize.y(); y++)
{ {
Renderer::drawRect(pos.x, pos.y, getColumnWidth(x), 2, 0x000000AA); Renderer::drawRect(pos.x(), pos.y(), getColumnWidth(x), 2, 0x000000AA);
Renderer::drawRect(pos.x, pos.y, 2, getRowHeight(y), 0x000000AA); Renderer::drawRect(pos.x(), pos.y(), 2, getRowHeight(y), 0x000000AA);
Renderer::drawRect(pos.x + getColumnWidth(x), pos.y, 2, getRowHeight(y), 0x000000AA); Renderer::drawRect(pos.x() + getColumnWidth(x), pos.y(), 2, getRowHeight(y), 0x000000AA);
Renderer::drawRect(pos.x, pos.y + getRowHeight(y) - 2, getColumnWidth(x), 2, 0x000000AA); Renderer::drawRect(pos.x(), pos.y() + getRowHeight(y) - 2, getColumnWidth(x), 2, 0x000000AA);
pos.y += getRowHeight(y); pos[1] += getRowHeight(y);
} }
pos.y = 0; pos[1] = 0;
pos.x += getColumnWidth(x); pos[0] += getColumnWidth(x);
}*/ }*/
//draw cursor //draw cursor
if(cursorValid()) if(cursorValid())
{ {
ComponentEntry* entry = getCell(mCursor.x(), mCursor.y()); ComponentEntry* entry = getCell(mCursor.x(), mCursor.y());
Renderer::drawRect((int)entry->component->getPosition().x(), (int)entry->component->getPosition().y(), 4, 4, 0xFF0000FF); Eigen::Affine3f entryTrans = trans * entry->component->getTransform();
Renderer::drawRect((int)entry->component->getPosition().x(), (int)entry->component->getPosition().y(), (int)entry->component->getSize().x(), (int)entry->component->getSize().y(), 0x0000AA88); Renderer::setMatrix(entryTrans);
Renderer::drawRect(0, 0, 4, 4, 0xFF0000FF);
Renderer::drawRect(0, 0, (int)entry->component->getSize().x(), (int)entry->component->getSize().y(), 0x0000AA88);
} }
} }

View file

@ -95,6 +95,7 @@ void GuiMenu::update(int deltaTime)
void GuiMenu::render(const Eigen::Affine3f& parentTrans) void GuiMenu::render(const Eigen::Affine3f& parentTrans)
{ {
Eigen::Affine3f trans = parentTrans; Eigen::Affine3f trans = parentTrans;
Renderer::setMatrix(trans);
Renderer::drawRect(Renderer::getScreenWidth() / 4, 0, Renderer::getScreenWidth() / 2, Renderer::getScreenHeight(), 0x999999); Renderer::drawRect(Renderer::getScreenWidth() / 4, 0, Renderer::getScreenWidth() / 2, Renderer::getScreenHeight(), 0x999999);
mList->render(trans); mList->render(trans);

View file

@ -68,6 +68,7 @@ void SliderComponent::update(int deltaTime)
void SliderComponent::render(const Eigen::Affine3f& parentTrans) void SliderComponent::render(const Eigen::Affine3f& parentTrans)
{ {
Eigen::Affine3f trans = parentTrans * getTransform(); Eigen::Affine3f trans = parentTrans * getTransform();
Renderer::setMatrix(trans);
//render line //render line
const int lineWidth = 2; const int lineWidth = 2;