00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef RVIZ_TOOL_PROPERTIES_PANEL_H
00031 #define RVIZ_TOOL_PROPERTIES_PANEL_H
00032
00033 #include "generated/rviz_generated.h"
00034
00035 #include <boost/thread/mutex.hpp>
00036 #include <boost/signals/trackable.hpp>
00037 #include <boost/weak_ptr.hpp>
00038
00039 #include <vector>
00040 #include <map>
00041
00042 namespace Ogre
00043 {
00044 class Root;
00045 class SceneManager;
00046 class Camera;
00047 class RaySceneQuery;
00048 class ParticleSystem;
00049 }
00050
00051 class wxTimerEvent;
00052 class wxKeyEvent;
00053 class wxSizeEvent;
00054 class wxTimer;
00055 class wxPropertyGrid;
00056 class wxPropertyGridEvent;
00057 class wxConfigBase;
00058
00059 namespace rviz
00060 {
00061
00062 class VisualizationManager;
00063 class Tool;
00064
00069 class ToolPropertiesPanel : public wxPanel, public boost::signals::trackable
00070 {
00071 public:
00078 ToolPropertiesPanel( wxWindow* parent );
00079 virtual ~ToolPropertiesPanel();
00080
00081 void initialize(VisualizationManager* manager);
00082
00083 wxPropertyGrid* getPropertyGrid() { return property_grid_; }
00084 VisualizationManager* getManager() { return manager_; }
00085
00086 protected:
00087
00088 void onToolAdded(Tool* tool);
00089
00090
00092 void onPropertyChanging( wxPropertyGridEvent& event );
00094 void onPropertyChanged( wxPropertyGridEvent& event );
00096 void onPropertySelected( wxPropertyGridEvent& event );
00097
00098 void onDisplaysConfigLoaded(const boost::shared_ptr<wxConfigBase>& config);
00099 void onDisplaysConfigSaving(const boost::shared_ptr<wxConfigBase>& config);
00100
00101 wxPropertyGrid* property_grid_;
00102 VisualizationManager* manager_;
00103 };
00104
00105 }
00106
00107 #endif
00108