void GUILABELLIST::UpdateElements(SCENENODE & scene) { unsigned num_new = m_values.size(); unsigned num_old = m_elements.size(); for (unsigned i = num_new; i < num_old; ++i) { static_cast<GUILABEL*>(m_elements[i])->Remove(scene); delete m_elements[i]; } m_elements.resize(num_new); for (unsigned i = num_old; i < num_new; ++i) { float x, y; GetElemPos(i, x, y); GUILABEL * element = new GUILABEL(); element->SetupDrawable( scene, *m_font, m_align, m_scalex, m_scaley, x, y, m_elemw, m_elemh, m_z); m_elements[i] = element; } for (unsigned i = 0; i < num_new; ++i) { static_cast<GUILABEL*>(m_elements[i])->SetText(m_values[i]); } }
bool GUI::SetLabelText(const std::string & pagename, const std::string & labelname, const std::string & text) { if (pages.find(pagename) == pages.end()) return false; GUILABEL * label = GetPage(pagename).GetLabel(labelname); if (!label) return false; label->SetText(text); return true; }
bool GUI::GetLabelText(const std::string & pagename, const std::string & labelname, std::string & text_output) { PAGEMAP::iterator p = pages.find(pagename); if (p == pages.end()) return false; GUILABEL * label = p->second.GetLabel(labelname); if (!label) return false; text_output = label->GetText(); return true; }
void GUILABELLIST::SetupDrawable( SCENENODE & scene, const FONT & font, int align, float scalex, float scaley, float z) { m_elements.resize(m_rows * m_cols); for (size_t i = 0; i < m_rows * m_cols; ++i) { float x, y; GetElemPos(i, x, y); GUILABEL * element = new GUILABEL(); element->SetupDrawable( scene, font, align, scalex, scaley, x + m_elemw * 0.5f, y + m_elemh * 0.5f, m_elemw, m_elemh, z); m_elements[i] = element; } }