core/vgui/vgui_wrapper_tableau.cxx
Go to the documentation of this file.
00001 // This is core/vgui/vgui_wrapper_tableau.cxx
00002 #include "vgui_wrapper_tableau.h"
00003 //:
00004 // \file
00005 // \author fsm
00006 // \brief  See vgui_wrapper_tableau.h for a description of this file.
00007 
00008 #include <vcl_iostream.h>
00009 #include <vgui/vgui_event.h>
00010 
00011 //--------------------------------------------------------------------------------
00012 
00013 vgui_wrapper_tableau::vgui_wrapper_tableau()
00014   : child(this)
00015 {
00016 }
00017 
00018 vgui_wrapper_tableau::vgui_wrapper_tableau(vgui_tableau_sptr const&n)
00019   : child(this, n)
00020 {
00021 }
00022 
00023 vgui_wrapper_tableau::~vgui_wrapper_tableau()
00024 {
00025 }
00026 
00027 vcl_string vgui_wrapper_tableau::type_name() const
00028 {
00029   return "vgui_wrapper_tableau";
00030 }
00031 
00032 vcl_string vgui_wrapper_tableau::pretty_name() const
00033 {
00034   return child ? vcl_string(type_name() + "[" + child->pretty_name() + "]") : vcl_string("(null)");
00035 }
00036 
00037 vcl_string vgui_wrapper_tableau::file_name() const
00038 {
00039   return child ? child->file_name() : vcl_string("(null)");
00040 }
00041 
00042 bool vgui_wrapper_tableau::add_child(vgui_tableau_sptr const& c)
00043 {
00044   if (child) {
00045     vcl_cerr << __FILE__ " cannot add child " << c << "; only one child allowed\n";
00046     return false;
00047   }
00048   else {
00049     child.assign(c);
00050     return true;
00051   }
00052 }
00053 
00054 bool vgui_wrapper_tableau::remove_child(vgui_tableau_sptr const& c)
00055 {
00056   if (child.child() != c) {
00057     vcl_cerr << __FILE__ " no such child : " << c << vcl_endl;
00058     return false;
00059   }
00060   else {
00061     child.assign(0);
00062     return true;
00063   }
00064 }
00065 
00066 bool vgui_wrapper_tableau::handle(vgui_event const& e)
00067 {
00068   return child && child->handle(e);
00069 }
00070 
00071 bool vgui_wrapper_tableau::get_bounding_box(float low[3], float high[3]) const
00072 {
00073   return child && child->get_bounding_box(low, high);
00074 }
00075 
00076 //--------------------------------------------------------------------------------