fixed scrollbar scale issue
This commit is contained in:
parent
4dfed2e701
commit
d155a4f603
@ -29,27 +29,30 @@ ScrollBarNode::ScrollBarNode(glm::vec2 dimension, glm::vec3 bar_color):
|
||||
addChild(m_bar);
|
||||
}
|
||||
|
||||
void ScrollBarNode::computeTransform()
|
||||
{
|
||||
m_bar->resetTransform();
|
||||
m_bar->moveTo2D(m_bar_position);
|
||||
m_bar->resize2D(m_dimension, m_bar_dimension);
|
||||
}
|
||||
|
||||
void ScrollBarNode::update()
|
||||
{
|
||||
GUINode::update();
|
||||
bool needTransformUpdate = false;
|
||||
if(m_bar_resized)
|
||||
{
|
||||
if(m_total_size > m_bar_size){
|
||||
m_bar->resetTransform();
|
||||
m_bar_dimension.y = m_dimension.y * ((float)m_bar_size / (float)m_total_size);
|
||||
m_bar->resize2D(m_dimension,m_bar_dimension);
|
||||
m_bar_resized = false;
|
||||
needTransformUpdate = true;
|
||||
}
|
||||
}
|
||||
if(m_bar_moved)
|
||||
{
|
||||
m_bar_position = glm::vec2(0,(m_dimension.y /m_total_size) * m_index_position);
|
||||
std::cout<< "Pos vec: " << m_bar_position.x << " " << m_bar_position.y << std::endl;
|
||||
m_bar->moveTo2D(m_bar_position);
|
||||
glm::mat4 m = m_bar->getTransform();
|
||||
glm::vec2 v = glm::vec2(m[3].x,m[3].y);
|
||||
std::cout << "Pos tr : " << v.x << " " << v.y << std::endl;
|
||||
m_bar_moved = false;
|
||||
needTransformUpdate = true;
|
||||
}
|
||||
if(m_bar_color_updated)
|
||||
{
|
||||
@ -57,6 +60,8 @@ void ScrollBarNode::update()
|
||||
mat->diffuse = m_bar_color;
|
||||
m_bar_color_updated = false;
|
||||
}
|
||||
if(needTransformUpdate)
|
||||
computeTransform();
|
||||
}
|
||||
|
||||
glm::vec2 ScrollBarNode::getDimension()
|
||||
|
@ -20,6 +20,9 @@ protected:
|
||||
MeshNode* m_bar;
|
||||
bool m_bar_resized;
|
||||
bool m_bar_moved;
|
||||
|
||||
void computeTransform();
|
||||
|
||||
public:
|
||||
ScrollBarNode(glm::vec2 dimension,glm::vec3 bar_color);
|
||||
void update();
|
||||
|
@ -83,7 +83,6 @@ void SparrowShell::out(std::string str,glm::vec3 color)
|
||||
tnode->setDepth(SHELL_DEPTH+1);
|
||||
m_buffer->push(tnode);
|
||||
scrollDown();
|
||||
std::cout << "size: " << m_buffer->size() << std::endl;
|
||||
if (m_buffer->size() > SparrowShell::BUFFER_DISPLAYED_LINES)
|
||||
m_resizeBuffer = true;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user