FreeRDP
Loading...
Searching...
No Matches
sdl_select_list.hpp
1#pragma once
2
3#include <string>
4#include <vector>
5
6#include <SDL3/SDL.h>
7
8#include "sdl_widget_list.hpp"
9#include "sdl_select.hpp"
10#include "sdl_button.hpp"
11#include "sdl_buttons.hpp"
12
13class SdlSelectList : public SdlWidgetList
14{
15 public:
16 SdlSelectList(const std::string& title, const std::vector<std::string>& labels);
17 SdlSelectList(const SdlSelectList& other) = delete;
18 SdlSelectList(SdlSelectList&& other) = delete;
19 virtual ~SdlSelectList() override;
20
21 SdlSelectList& operator=(const SdlSelectList& other) = delete;
22 SdlSelectList& operator=(SdlSelectList&& other) = delete;
23
24 int run();
25
26 protected:
27 bool updateInternal() override;
28
29 private:
30 enum
31 {
32 INPUT_BUTTON_ACCEPT = 0,
33 INPUT_BUTTON_CANCEL = -2
34 };
35
36 ssize_t get_index(const SDL_MouseButtonEvent& button);
37 void reset_mouseover();
38 void reset_highlight();
39
40 std::vector<SdlSelectWidget> _list;
41};