INTRODUCTION Overview Download and Install Quick Start Documentation Publications NONFRAMEWORK CODE Driver Interfaces Drivers Libraries Utilities FRAMEWORK CODE Interfaces Components Libraries Utilities Full Software Listings DEVELOPER Tutorials Examples Dev Guide Dashboard PEOPLE Contributors Users Project Download Mailing lists
|
simplepathdesigntablewidget.h00001 /* 00002 * Orca-Robotics Project: Components for robotics 00003 * http://orca-robotics.sf.net/ 00004 * Copyright (c) 2004-2009 Alex Brooks, Alexei Makarenko, Tobias Kaupp 00005 * 00006 * This copy of Orca is licensed to you under the terms described in 00007 * the LICENSE file included in this distribution. 00008 * 00009 */ 00010 00011 #ifndef SIMPLEPATHDESIGN_TABLE_H 00012 #define SIMPLEPATHDESIGN_TABLE_H 00013 00014 #include <vector> 00015 #include <QWidget> 00016 #include <QTableWidget> 00017 00018 #include <hydroqguipath/pathutils.h> 00019 00020 class QSpinBox; 00021 00022 namespace hydroqguielementutil { 00023 class IHumanManager; 00024 } 00025 00026 namespace hydroqguipath { 00027 00028 class SimplePathDesignTable; 00029 class IPathInput; 00030 class PathDesignScreen; 00031 00037 class SimplePathDesignTableWidget : public QWidget 00038 { 00039 Q_OBJECT 00040 00041 public: 00042 SimplePathDesignTableWidget ( IPathInput *pathInput, 00043 GuiPath &guiPath, 00044 PathDesignScreen &designScreen, 00045 double maxApproachSpeedSetting, 00046 double distToleranceSetting, 00047 hydroqguielementutil::IHumanManager &humanManager ); 00048 virtual ~SimplePathDesignTableWidget(); 00049 00050 private: 00051 IPathInput *pathInput_; 00052 SimplePathDesignTable *wpTable_; 00053 hydroqguipath::PathDesignScreen &designScreen_; 00054 void readSettings(); 00055 void writeSettings(); 00056 00057 public slots: 00058 void refreshTable(); 00059 00060 private slots: 00061 void savePath(); 00062 void loadPath(); 00063 void loadPreviousPath(); 00064 // void sendPath(); 00065 // void cancelPath(); 00066 void updateMaxApproachSpeedSetting(double); 00067 void updateDistToleranceSetting(double); 00068 00069 }; 00070 00071 class SimplePathDesignTable : public QTableWidget 00072 { 00073 Q_OBJECT 00074 00075 public: 00076 SimplePathDesignTable( QWidget *parent, 00077 IPathInput *pathInput, 00078 GuiPath &guiPath, 00079 hydroqguielementutil::IHumanManager &humanManager ); 00080 void refreshTable(); 00081 00082 private: 00083 00084 IPathInput *pathInput_; 00085 GuiPath &guiPath_; 00086 hydroqguielementutil::IHumanManager &humanManager_; 00087 00088 // not part of the path representation 00089 std::vector<float> velocities_; 00090 00091 // lock up the cellUpdate signal: it should only be emitted if the user changes cell entries 00092 // not if we programmatically change them (as in refreshTable) 00093 bool isLocked_; 00094 00095 private slots: 00096 00097 // called after user interaction 00098 void updateDataStorage(int row, int column); 00099 void setWaypointFocus(int row, int column); 00100 void setWaypointFocus(int currentRow, int currentColumn, int previousRow, int previousColumn); 00101 00102 }; 00103 00104 } 00105 00106 #endif |
Webmaster: Tobias Kaupp (tobasco at users.sourceforge.net)