// %flair:license{ // This file is part of the Flair framework distributed under the // CECILL-C License, Version 1.0. // %flair:license} // created: 2016/09/02 // filename: GuiInterface.h // // authors: Thomas Fuhrmann // Copyright Heudiasyc UMR UTC/CNRS 7253 // // version: $Id: $ // // purpose: Create the GUI and give an abstract interface to it // // /*********************************************************************/ #ifndef MAVPLANNER_GUI_INTERFACE_H #define MAVPLANNER_GUI_INTERFACE_H #include #include namespace flair { namespace core { class FrameworkManager; class Socket; } namespace gui { class Tab; class TabWidget; class DoubleSpinBox; class PushButton; class ComboBox; class GroupBox; class ListWidget; } } class GuiInterface : public flair::core::Thread { public: GuiInterface(const flair::core::FrameworkManager *parent, std::string name); ~GuiInterface(); protected: // reimplement the run of the Thread class void Run(); std::string GetWptLatLon(); // First tab callbacks virtual void MissionInitialize() = 0; virtual void MissionStart() = 0; virtual void MissionStop() = 0; virtual void MissionKill() = 0; virtual void WptSend() = 0; virtual void WptClear() = 0; virtual void WptLoopSend() = 0; // Main GUI flair::gui::TabWidget* tabWidget; flair::gui::Tab* mainTab; flair::gui::Tab* settingsTab; // Controls groupbox flair::gui::GroupBox* controlsGroupBox; flair::gui::PushButton* btnInitialize; flair::gui::PushButton* btnStartMission; flair::gui::PushButton* btnStopMission; flair::gui::PushButton* btnKill; // Add wpt groupbox flair::gui::GroupBox* addWptGroupBox; flair::gui::DoubleSpinBox* latField; flair::gui::DoubleSpinBox* lonField; flair::gui::PushButton* btnAddMissionWpt; flair::gui::PushButton* btnAddEntranceWpt; flair::gui::PushButton* btnAddExitWpt; // Show wpt groupbox flair::gui::GroupBox* showWptGroupBox; flair::gui::ListWidget* listMissionWpt; flair::gui::ListWidget* listEntranceWpt; flair::gui::ListWidget* listExitWpt; flair::gui::PushButton* btnRemoveMissionWpt; flair::gui::PushButton* btnRemoveEntranceWpt; flair::gui::PushButton* btnRemoveExitWpt; // Action wpt groupbox flair::gui::GroupBox* actionWptGroupBox; flair::gui::PushButton* btnSendWpt; flair::gui::PushButton* btnClearWpt; flair::gui::PushButton* btnLoop; // Socket to send commands flair::core::Socket* sendSocket; //TODO : think if useful to have private members }; #endif // MAVPLANNER_GUI_INTERFACE_H