void set_parent(window * win, window * parent) { BOOST_ASSERT(win && parent); wx_window * wxwin = static_cast<wx_window *>(win), * wxpar = static_cast<wx_window *>(parent); wxwin->unlink(); if (wxpar) { wxwin->parent = wxpar; wxpar->children.push_back(*wxwin); wxwin->is_toplevel = false; detail::set_buffer(wxwin); } else { wxwin->parent = wxpar; wxwin->is_toplevel = true; detail::set_buffer(wxwin); } // TODO: Error checking wxwin->win->Reparent(wxpar->win); if ((!parent || is_shown(wxpar)) && !is_shown(wxwin)) show_window(wxwin); }
void HealthWindow::draw() { if (is_shown()) { glPushMatrix(); glBindTexture(GL_TEXTURE_2D, font_->get_texture()->get_index()); glListBase(font_->get_displaylist()); glLoadIdentity(); glTranslatef(position_->x, position_->y, position_->z); glCallLists(health_string_.size(), GL_BYTE, health_string_.c_str()); glPopMatrix(); } }
void GlConsoleWindow::draw() { if (is_shown()) { glPushMatrix(); glBindTexture(GL_TEXTURE_2D, font_->get_texture()->get_index()); glListBase(font_->get_displaylist()); int lineno = (top_ == 0) ? kLINE_COUNT - 1 : top_ - 1; for (int i = 0; i < kLINE_COUNT; ++i) { glLoadIdentity(); glTranslatef(0, i*kFONT_HEIGHT, 0); //std::cout << "draw " << console_[i].size() << " "; glCallLists(console_[lineno].size(), GL_BYTE, console_[lineno].c_str()); lineno = (lineno == 0) ? kLINE_COUNT - 1 : lineno - 1; } glPopMatrix(); } }