00001 /**************************************************************** 00002 * 00003 * Copyright (c) 2010 00004 * 00005 * Fraunhofer Institute for Manufacturing Engineering 00006 * and Automation (IPA) 00007 * 00008 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00009 * 00010 * Project name: care-o-bot 00011 * ROS stack name: cob_3d_environment_perception_intern 00012 * ROS package name: cob_3d_mapping_demonstrator 00013 * Description: Feature Map for storing and handling geometric features 00014 * 00015 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00016 * 00017 * Author: Georg Arbeiter, email:georg.arbeiter@ipa.fhg.de 00018 * Supervised by: Georg Arbeiter, email:georg.arbeiter@ipa.fhg.de 00019 * 00020 * Date of creation: 04/2012 00021 * ToDo: 00022 * 00023 * 00024 * 00025 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00026 * 00027 * Redistribution and use in source and binary forms, with or without 00028 * modification, are permitted provided that the following conditions are met: 00029 * 00030 * * Redistributions of source code must retain the above copyright 00031 * notice, this list of conditions and the following disclaimer. 00032 * * Redistributions in binary form must reproduce the above copyright 00033 * notice, this list of conditions and the following disclaimer in the 00034 * documentation and/or other materials provided with the distribution. 00035 * * Neither the name of the Fraunhofer Institute for Manufacturing 00036 * Engineering and Automation (IPA) nor the names of its 00037 * contributors may be used to endorse or promote products derived from 00038 * this software without specific prior written permission. 00039 * 00040 * This program is free software: you can redistribute it and/or modify 00041 * it under the terms of the GNU Lesser General Public License LGPL as 00042 * published by the Free Software Foundation, either version 3 of the 00043 * License, or (at your option) any later version. 00044 * 00045 * This program is distributed in the hope that it will be useful, 00046 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00047 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00048 * GNU Lesser General Public License LGPL for more details. 00049 * 00050 * You should have received a copy of the GNU Lesser General Public 00051 * License LGPL along with this program. 00052 * If not, see <http://www.gnu.org/licenses/>. 00053 * 00054 ****************************************************************/ 00055 00056 #include "cob_3d_mapping_demonstrator/wx_rviz_title.h" 00057 #include "rviz/visualization_manager.h" 00058 #include "rviz/window_manager_interface.h" 00059 00060 using namespace std; 00061 00062 00063 namespace rviz 00064 { 00065 00066 RvizTitle::~RvizTitle() { 00067 00068 } 00069 00073 RvizTitle::RvizTitle(const std::string& name, VisualizationManager* manager/*wxWindow *parent, const wxString& title, rviz::WindowManagerInterface * wmi */) 00074 : Display( "title", manager ), 00075 frame_(0) 00076 //: wxPanel( parent, wxID_ANY, wxDefaultPosition, wxSize(280, 180), wxTAB_TRAVERSAL, title) 00077 //, m_wmi( wmi ) 00078 { 00079 // Create controls 00080 //m_button = new wxButton(this, ID_RESET_BUTTON, wxT("Reset map")); 00081 wxWindow* parent = 0; 00082 00083 WindowManagerInterface* wm = vis_manager_->getWindowManager(); 00084 if (wm) 00085 { 00086 parent = wm->getParentWindow(); 00087 } 00088 else 00089 { 00090 frame_ = new wxFrame(0, wxID_ANY, wxString::FromAscii(""), wxDefaultPosition, wxDefaultSize, wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxRESIZE_BORDER | wxCAPTION | wxCLIP_CHILDREN); 00091 parent = frame_; 00092 } 00093 00094 panel_ = new wxPanel(parent, wxID_ANY, wxDefaultPosition, wxSize(280, 180), wxTAB_TRAVERSAL, wxString::FromAscii("")); 00095 title_ = new wxStaticText(panel_, wxID_ANY, wxString::FromAscii("3-D Umgebungserfassung"), wxDefaultPosition, wxDefaultSize); 00096 title_->SetFont(wxFont(48, wxSWISS, wxNORMAL, wxBOLD)); 00097 wxSizer *vsizer = new wxBoxSizer(wxVERTICAL); 00098 vsizer->Add(title_, 1, wxALIGN_CENTER); 00099 00100 vsizer->SetSizeHints(panel_); 00101 panel_->SetSizerAndFit(vsizer); 00102 00103 if (wm) 00104 { 00105 wm->addPane(name, panel_); 00106 } 00107 } 00108 00109 void RvizTitle::onEnable() 00110 { 00111 if (frame_) 00112 { 00113 frame_->Show(true); 00114 } 00115 else 00116 { 00117 WindowManagerInterface* wm = vis_manager_->getWindowManager(); 00118 wm->showPane(panel_); 00119 } 00120 } 00121 00122 void RvizTitle::onDisable() 00123 { 00124 if (frame_) 00125 { 00126 frame_->Show(false); 00127 } 00128 else 00129 { 00130 WindowManagerInterface* wm = vis_manager_->getWindowManager(); 00131 wm->closePane(panel_); 00132 } 00133 } 00134 00135 } 00137