Rose
SatelliteDataDisplay.h
Go to the documentation of this file.
1 
8 #pragma once
9 
10 #include "Button.h"
11 #include "Container.h"
12 #include "MapProjection.h"
13 
14 namespace rose {
15 
21  protected:
22  RoseImageId mImageId{RoseImageInvalid};
23  std::string mName{};
24  std::optional<SatelliteMetaData> mMetaData{};
25 
26  public:
27  ~SatelliteDataDisplay() override = default;
28 
29  SatelliteDataDisplay() = delete;
30 
32 
34 
35  SatelliteDataDisplay &operator=(SatelliteDataDisplay &&) = delete;
36 
37  SatelliteDataDisplay &operator=(const SatelliteDataDisplay &) = delete;
38 
39  explicit SatelliteDataDisplay(int padding) : ButtonFrame(padding) {}
40 
47  SatelliteDataDisplay(ImageId imageId, const std::string &name, const SatelliteMetaData &dataStub);
48 
50  void initializeComposite() override;
51 
53  Rectangle widgetLayout(sdl::Renderer &renderer, Rectangle available, uint layoutStage) override;
54 
56  void draw(sdl::Renderer &renderer, Rectangle parentRect) override;
57 
64  void setData(const TrackedSatellite &satellite);
65 
66  void timeUpdate(time_t timer);
67 
68  const std::string& getName() const { return mName; }
69  };
70 
75  class SatelliteDataSet : public Frame {
76  protected:
78  std::shared_ptr<Slot<std::string>> mSettingsUpdateRx{};
79 
80  public:
81  ~SatelliteDataSet() override = default;
82 
84 
85  SatelliteDataSet(const SatelliteDataSet &) = delete;
86 
87  SatelliteDataSet &operator=(SatelliteDataSet &&) = delete;
88 
89  SatelliteDataSet &operator=(const SatelliteDataSet &) = delete;
90 
96  mClassName = "SatelliteDataSet";
97  }
98 
100  void initializeComposite() override;
101 
103  std::shared_ptr<Slot<MapProjection::SignalType>> trackedSatelliteRx{};
104 
106  std::shared_ptr<Slot<int>> secondRx{};
107 
109  RadioBehavior radioBehavior{true};
110  };
111 }
112 
void initializeComposite() override
See Widget::initializeComposite()
Definition: SatelliteDataDisplay.cpp:14
Invalid image ID.
Definition: Constants.h:172
void setData(const TrackedSatellite &satellite)
Set the display data.
Definition: SatelliteDataDisplay.cpp:36
RoseImageId
Identifiers for Textures created by the Rose object and available from the Rose ImageRepository.
Definition: Constants.h:171
Definition: MapProjection.h:52
Definition: Button.h:285
A frame that supports ButtonSemantics.
Definition: Button.h:23
Display satellite orbital data.
Definition: SatelliteDataDisplay.h:20
Rectangle widgetLayout(sdl::Renderer &renderer, Rectangle available, uint layoutStage) override
See Widget::widgetLayout()
Definition: SatelliteDataDisplay.cpp:28
void draw(sdl::Renderer &renderer, Rectangle parentRect) override
See Widget::draw()
Definition: SatelliteDataDisplay.cpp:32
Definition: Frame.h:214
Definition: MapProjection.h:99
SatelliteDataSet()
Constructor see: Widget constructor.
Definition: SatelliteDataDisplay.h:95
std::shared_ptr< Slot< std::string > > mSettingsUpdateRx
Slot to receive settings updates on.
Definition: Button.h:57
A class to manage a number of SatelliteDataDisplay objects.
Definition: SatelliteDataDisplay.h:75
A composite of a Position and a Size.
Definition: Types.h:307
Written as a workaround for an issue in the SDL2 Library.
Definition: Renderer.h:64
ToDo: There is an issue that the initial scroll interaction is lost if the click/press lands on a Wid...
Definition: CelestialOverlay.cpp:13