00001 #ifndef EMPTY_SERCICE_CALL_INTERFACE_H 00002 #define EMPTY_SERCICE_CALL_INTERFACE_H 00003 00004 #ifndef Q_MOC_RUN 00005 #include <ros/ros.h> 00006 #include <rviz/panel.h> 00007 #include <std_srvs/Empty.h> 00008 #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) 00009 # include <QtWidgets> 00010 #else 00011 # include <QtGui> 00012 #endif 00013 #endif 00014 00015 namespace jsk_rviz_plugins 00016 { 00017 struct ServiceCallButtonInfo 00018 { 00019 std::string icon_file_path; 00020 std::string service_name; 00021 std::string text; 00022 }; 00023 00024 class EmptyServiceCallInterfaceAction: public rviz::Panel 00025 { 00026 Q_OBJECT 00027 public: 00028 EmptyServiceCallInterfaceAction( QWidget* parent = 0 ); 00029 00030 virtual void load( const rviz::Config& config ); 00031 virtual void save( rviz::Config config ) const; 00032 00033 protected Q_SLOTS: 00034 void callRequestEmptyCommand(int button_id); 00035 void parseROSParameters(); 00036 protected: 00037 ros::NodeHandle nh_; 00038 std::vector<ServiceCallButtonInfo> service_call_button_infos_; 00039 QVBoxLayout* layout; 00040 QHBoxLayout* h_layout; 00041 QSignalMapper* signal_mapper; 00042 }; 00043 } 00044 00045 #endif