diff options
author | Enne Walker <ennewalker@users.sourceforge.net> | 2010-04-19 20:00:06 -0400 |
---|---|---|
committer | Enne Walker <ennewalker@users.sourceforge.net> | 2010-04-25 19:33:13 -0400 |
commit | 8305dc11a61b732984b4bf2a2f8c8f48af84630e (patch) | |
tree | 9f605e327b60ab79111ae7c25bec938ed2261a0b /crawl-ref/source/tilereg-crt.cc | |
parent | edacdc0db313c0f5385631dfcf560f1fdf8e7c8a (diff) | |
download | crawl-ref-8305dc11a61b732984b4bf2a2f8c8f48af84630e.tar.gz crawl-ref-8305dc11a61b732984b4bf2a2f8c8f48af84630e.zip |
Split tilereg.h/cc into multiple files.
No functional changes, just rearranging and exposing functions where
needed.
Diffstat (limited to 'crawl-ref/source/tilereg-crt.cc')
-rw-r--r-- | crawl-ref/source/tilereg-crt.cc | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/crawl-ref/source/tilereg-crt.cc b/crawl-ref/source/tilereg-crt.cc new file mode 100644 index 0000000000..1a3d087548 --- /dev/null +++ b/crawl-ref/source/tilereg-crt.cc @@ -0,0 +1,90 @@ +/* + * File: tilereg-crt.cc + * + * Created by: ennewalker on Sat Jan 5 01:33:53 2008 UTC + */ + +#include "AppHdr.h" + +#ifdef USE_TILE + +#include "cio.h" +#include "menu.h" +#include "options.h" +#include "tilefont.h" +#include "tilereg-crt.h" +#include "viewgeom.h" + +CRTRegion::CRTRegion(FontWrapper *font) : TextRegion(font), m_attached_menu(NULL) +{ + +} + +CRTRegion::~CRTRegion() +{ + clear(); +} + +int CRTRegion::handle_mouse(MouseEvent &event) +{ + int ret_val = 0; + if (m_attached_menu == NULL) + { + if (event.event == MouseEvent::PRESS + && event.button == MouseEvent::LEFT) + { + ret_val = CK_MOUSE_CLICK; + } + } + else + { + ret_val = m_attached_menu->handle_mouse(event); + } + return ret_val; +} + +void CRTRegion::on_resize() +{ + TextRegion::on_resize(); + crawl_view.termsz.x = mx; + crawl_view.termsz.y = my; + + // Todo: resize attached menu +} + +void CRTRegion::clear() +{ + // clear all the texts + TextRegion::clear(); + detach_menu(); +} + +void CRTRegion::render() +{ + set_transform(); + + // render all the inherited texts + TextRegion::render(); + + // render the attached menu if it exists + if (m_attached_menu != NULL) + { + m_attached_menu->draw_menu(); + } +} + +void CRTRegion::attach_menu(PrecisionMenu* menu) +{ + detach_menu(); + + m_attached_menu = menu; +} + +void CRTRegion::detach_menu() +{ + // Tiles has no rights over the menu, thus the user must delete it + // Via other means + m_attached_menu = NULL; +} + +#endif |