network-simulator/gui/include/DeviceRenderer.hpp

25 lines
503 B
C++
Raw Permalink Normal View History

2023-06-30 18:19:26 +00:00
#pragma once
#include <memory>
#include <SDL.h>
#include "Device.hpp"
struct SDL_Renderer;
class DeviceRenderer {
public:
DeviceRenderer(std::shared_ptr<Device> device, uint16_t x, uint16_t y);
void Render(SDL_Renderer* renderer) const;
2023-06-30 18:47:50 +00:00
void RenderImGui() const;
2023-06-30 18:19:26 +00:00
2023-06-30 18:47:50 +00:00
void Deselect();
inline bool Selected() const { return selected; }
2023-06-30 18:36:21 +00:00
bool PropagateEvent(SDL_Event* event);
2023-06-30 18:19:26 +00:00
private:
SDL_FRect bbox;
bool selected;
2023-06-30 18:36:21 +00:00
bool grabbed;
2023-06-30 18:19:26 +00:00
std::shared_ptr<Device> device;
};