FreeRDP
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Modules Pages
SDL3/dialogs/sdl_selectlist.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();
20
21 SdlSelectList& operator=(const SdlSelectList& other) = delete;
22 SdlSelectList& operator=(SdlSelectList&& other) = delete;
23
24 int run();
25
26 private:
27 enum
28 {
29 INPUT_BUTTON_ACCEPT = 0,
30 INPUT_BUTTON_CANCEL = -2
31 };
32
33 ssize_t get_index(const SDL_MouseButtonEvent& button);
34 bool update_text();
35 void reset_mouseover();
36 void reset_highlight();
37
38 std::vector<SdlSelectWidget> _list;
39};