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);
|
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()
|
void ScrollBarNode::update()
|
||||||
{
|
{
|
||||||
GUINode::update();
|
GUINode::update();
|
||||||
|
bool needTransformUpdate = false;
|
||||||
if(m_bar_resized)
|
if(m_bar_resized)
|
||||||
{
|
{
|
||||||
if(m_total_size > m_bar_size){
|
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_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;
|
m_bar_resized = false;
|
||||||
|
needTransformUpdate = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(m_bar_moved)
|
if(m_bar_moved)
|
||||||
{
|
{
|
||||||
m_bar_position = glm::vec2(0,(m_dimension.y /m_total_size) * m_index_position);
|
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;
|
m_bar_moved = false;
|
||||||
|
needTransformUpdate = true;
|
||||||
}
|
}
|
||||||
if(m_bar_color_updated)
|
if(m_bar_color_updated)
|
||||||
{
|
{
|
||||||
@ -57,6 +60,8 @@ void ScrollBarNode::update()
|
|||||||
mat->diffuse = m_bar_color;
|
mat->diffuse = m_bar_color;
|
||||||
m_bar_color_updated = false;
|
m_bar_color_updated = false;
|
||||||
}
|
}
|
||||||
|
if(needTransformUpdate)
|
||||||
|
computeTransform();
|
||||||
}
|
}
|
||||||
|
|
||||||
glm::vec2 ScrollBarNode::getDimension()
|
glm::vec2 ScrollBarNode::getDimension()
|
||||||
|
@ -20,6 +20,9 @@ protected:
|
|||||||
MeshNode* m_bar;
|
MeshNode* m_bar;
|
||||||
bool m_bar_resized;
|
bool m_bar_resized;
|
||||||
bool m_bar_moved;
|
bool m_bar_moved;
|
||||||
|
|
||||||
|
void computeTransform();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
ScrollBarNode(glm::vec2 dimension,glm::vec3 bar_color);
|
ScrollBarNode(glm::vec2 dimension,glm::vec3 bar_color);
|
||||||
void update();
|
void update();
|
||||||
|
@ -83,7 +83,6 @@ void SparrowShell::out(std::string str,glm::vec3 color)
|
|||||||
tnode->setDepth(SHELL_DEPTH+1);
|
tnode->setDepth(SHELL_DEPTH+1);
|
||||||
m_buffer->push(tnode);
|
m_buffer->push(tnode);
|
||||||
scrollDown();
|
scrollDown();
|
||||||
std::cout << "size: " << m_buffer->size() << std::endl;
|
|
||||||
if (m_buffer->size() > SparrowShell::BUFFER_DISPLAYED_LINES)
|
if (m_buffer->size() > SparrowShell::BUFFER_DISPLAYED_LINES)
|
||||||
m_resizeBuffer = true;
|
m_resizeBuffer = true;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user