From d2e0d89785386bbdc21fbd0fbbd590dfd6ddc41f Mon Sep 17 00:00:00 2001 From: Cary Sandvig Date: Mon, 6 Nov 2000 19:24:16 +0000 Subject: [PATCH] provide non-active label functionality --- panda/src/gui/Sources.pp | 9 ++++--- panda/src/gui/guiSign.I | 3 +++ panda/src/gui/guiSign.cxx | 50 +++++++++++++++++++++++++++++++++++++++ panda/src/gui/guiSign.h | 30 +++++++++++++++++++++++ 4 files changed, 89 insertions(+), 3 deletions(-) diff --git a/panda/src/gui/Sources.pp b/panda/src/gui/Sources.pp index 69414e43b8..ea718d8395 100644 --- a/panda/src/gui/Sources.pp +++ b/panda/src/gui/Sources.pp @@ -14,7 +14,8 @@ guiItem.h guiItem.I guiItem.cxx \ guiRollover.h guiRollover.I guiRollover.cxx \ guiButton.h guiButton.I guiButton.cxx \ - guiFrame.h guiFrame.I guiFrame.cxx + guiFrame.h guiFrame.I guiFrame.cxx \ + guiSign.h guiSign.I guiSign.cxx #define INSTALL_HEADERS \ guiManager.h guiManager.I \ @@ -23,7 +24,8 @@ guiItem.h guiItem.I \ guiRollover.h guiRollover.I \ guiButton.h guiButton.I \ - guiFrame.h guiFrame.I + guiFrame.h guiFrame.I \ + guiSign.h guiSign.I #define IGATESCAN \ guiManager.h guiManager.I \ @@ -32,6 +34,7 @@ guiItem.h guiItem.I \ guiRollover.h guiRollover.I \ guiButton.h guiButton.I \ - guiFrame.h guiFrame.I + guiFrame.h guiFrame.I \ + guiSign.h guiSign.I #end lib_target diff --git a/panda/src/gui/guiSign.I b/panda/src/gui/guiSign.I index da4fe744b9..b67b65fbe8 100644 --- a/panda/src/gui/guiSign.I +++ b/panda/src/gui/guiSign.I @@ -2,3 +2,6 @@ // Created by: cary (06Nov00) // //////////////////////////////////////////////////////////////////// + +INLINE GuiSign::GuiSign(void) { +} diff --git a/panda/src/gui/guiSign.cxx b/panda/src/gui/guiSign.cxx index 9cee91b46c..3a0beb0b7b 100644 --- a/panda/src/gui/guiSign.cxx +++ b/panda/src/gui/guiSign.cxx @@ -2,3 +2,53 @@ // Created by: cary (06Nov00) // //////////////////////////////////////////////////////////////////// + +#include "guiSign.h" +#include "config_gui.h" + +void GuiSign::recompute_frame(void) { + GuiItem::recompute_frame(); + _sign->get_extents(_left, _right, _bottom, _top); +} + +GuiSign::GuiSign(const string& name, GuiLabel* sign) : GuiItem(name), + _sign(sign) { + _sign->get_extents(_left, _right, _bottom, _top); +} + +GuiSign::~GuiSign(void) { +} + +void GuiSign::manage(GuiManager* mgr, EventHandler& eh) { + if (!_added_hooks) + _added_hooks = true; + if (_mgr == (GuiManager*)0L) { + mgr->add_label(_sign); + GuiItem::manage(mgr, eh); + } else + gui_cat->warning() << "tried to manager sign (0x" << (void*)this + << ") that is already managed" << endl; +} + +void GuiSign::unmanage(void) { + _mgr->remove_label(_sign); + GuiSign::unmanage(); +} + +void GuiSign::set_scale(float f) { + _sign->set_scale(f); + GuiItem::set_scale(f); + recompute_frame(); +} + +void GuiSign::set_pos(const LVector3f& p) { + _sign->set_pos(p); + GuiItem::set_pos(p); + recompute_frame(); +} + +void GuiSign::output(ostream& os) const { + GuiItem::output(os); + os << " Sign data:" << endl; + os << " sign - 0x" << (void*)_sign << endl; +} diff --git a/panda/src/gui/guiSign.h b/panda/src/gui/guiSign.h index e185a67fc5..e36201494d 100644 --- a/panda/src/gui/guiSign.h +++ b/panda/src/gui/guiSign.h @@ -2,3 +2,33 @@ // Created by: cary (06Nov00) // //////////////////////////////////////////////////////////////////// + +#ifndef __GUISIGN_H__ +#define __GUISIGN_H__ + +#include "guiItem.h" +#include "guiLabel.h" +#include "guiManager.h" + +class EXPCL_PANDA GuiSign : public GuiItem { +private: + GuiLabel* _sign; + + INLINE GuiSign(void); + virtual void recompute_frame(void); +public: + GuiSign(const string&, GuiLabel*); + ~GuiSign(void); + + virtual void manage(GuiManager*, EventHandler&); + virtual void unmanage(void); + + virtual void set_scale(float); + virtual void set_pos(const LVector3f&); + + virtual void output(ostream&) const; +}; + +#include "guiSign.I" + +#endif /* __GUISIGN_H__ */