diff --git a/direct/src/gui/Sign.py b/direct/src/gui/Sign.py index 1354bf0bc4..8b942a9274 100644 --- a/direct/src/gui/Sign.py +++ b/direct/src/gui/Sign.py @@ -2,15 +2,30 @@ from ShowBaseGlobal import * from DirectObject import * import GuiSign import GuiManager +import GuiLabel guiMgr = GuiManager.GuiManager.getPtr(base.win, base.mak.node(), base.renderGui.node()) +font = (loader.loadModelOnce("phase_3/models/fonts/ttf-comic")).node() + class Sign(DirectObject): - def __init__(self, name, label): + def __init__(self, name, label=None): self.name = name - self.label = label - self.sign = GuiSign.GuiSign(name, label) + # label in this case means GuiLabel + if not label: + self.label = GuiLabel.GuiLabel.makeSimpleTextLabel(self.name, font) + self.label.setForegroundColor(1., 0., 0., 1.) + self.label.setBackgroundColor(1., 1., 1., 0.) + self.label.thaw() + elif (type(label) == type('')): + self.label = GuiLabel.GuiLabel.makeSimpleTextLabel(label, font) + self.label.setForegroundColor(1., 0., 0., 1.) + self.label.setBackgroundColor(1., 1., 1., 0.) + self.label.thaw() + else: + self.label = label + self.sign = GuiSign.GuiSign(self.name, self.label) self.setScale(0.1) self.managed = 0 return None diff --git a/direct/src/showbase/ShowBaseGlobal.py b/direct/src/showbase/ShowBaseGlobal.py index 30a5df4df3..8642fd7419 100644 --- a/direct/src/showbase/ShowBaseGlobal.py +++ b/direct/src/showbase/ShowBaseGlobal.py @@ -17,4 +17,4 @@ __builtin__.tkroot = base.tkroot __builtin__.taskMgr = base.taskMgr __builtin__.eventMgr = base.eventMgr __builtin__.messenger = base.messenger - +__builtin__.config = base.config diff --git a/panda/src/gui/guiLabel.cxx b/panda/src/gui/guiLabel.cxx index 02f84a12fc..1b832a86d2 100644 --- a/panda/src/gui/guiLabel.cxx +++ b/panda/src/gui/guiLabel.cxx @@ -235,6 +235,10 @@ GuiLabel* GuiLabel::make_model_label(Node* geom, float w, float h) { ret->_internal = new RenderRelation(ret->_geom, geom); ret->_internal->set_transition( new ColorTransition(Colorf(ret->_foreground))); + gui_cat->debug() << "created model label 0x" << (void*)ret + << " from node 0x" << (void*)geom + << ", set _type(" << (int)(ret->_type) << ") to MODEL(" + << (int)MODEL << ")" << endl; return ret; } @@ -468,3 +472,42 @@ int GuiLabel::set_draw_order(int order) { this->thaw(); return ret; } + +void GuiLabel::write(ostream& os) const { + os << "GuiLabel: (0x" << (void*)this << ")" << endl; + os << " refcount = " << this->get_ref_count() << endl; + os << " _type = "; + switch (this->_type) { + case NONE: + os << "NONE"; + break; + case SIMPLE_TEXTURE: + os << "SIMPLE_TEXTURE"; + break; + case SIMPLE_TEXT: + os << "SIMPLE_TEXT"; + break; + case SIMPLE_CARD: + os << "SIMPLE_CARD"; + break; + case MODEL: + os << "MODEL"; + break; + default: + os << "bad"; + } + os << endl << " _geom = 0x" << (void*)(this->_geom.p()) << endl; + os << " _arc = 0x" << (void*)(this->_arc) << endl; + os << " _tex = 0x" << (void*)(this->_tex.p()) << endl; + os << " _internal = 0x" << (void*)(this->_internal) << endl; + os << " _gset = 0x" << (void*)(this->_gset) << endl; + os << " _scale = " << this->_scale << endl; + os << " _pos = " << this->_pos << endl; + os << " _foreground = " << this->_foreground << endl; + if (_have_background) + os << " _background = " << this->_background << endl; + if (_have_width) + os << " _width = " << this->_width << endl; + if (_have_height) + os << " _height = " << this->_height << endl; +} diff --git a/panda/src/gui/guiLabel.h b/panda/src/gui/guiLabel.h index 0b9ea1bbf7..4ed16c26ff 100644 --- a/panda/src/gui/guiLabel.h +++ b/panda/src/gui/guiLabel.h @@ -102,6 +102,8 @@ PUBLISHED: INLINE void set_priority(GuiLabel*, const PriorityType); int set_draw_order(int); + void write(ostream&) const; + public: // type interface static TypeHandle get_class_type(void) {