#pragma once #include #include #include "components/base/button.hpp" class BluetoothWidget : public Gtk::Box { public: BluetoothWidget(); void setPowerState(bool state); void setIsDiscovering(bool state); sigc::signal onPowerStateButtonClickedSignal; sigc::signal onIsDiscoveringButtonClickedSignal; void update(); private: bool isPowered = false; bool isDiscovering = false; Gtk::Box statusArea; Gtk::Box *deviceList = nullptr; Button *scanButton = nullptr; Button *powerButton = nullptr; void onPowerButtonClicked(); void onScanButtonClicked(); void toggleButton(Button *button, bool state); };