blob: d5ff0b43431652845766df9a31bfc2082a6a16da (
plain)
| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 | #pragma once
#include "Component.h"
#include "Menu.h"
#include "cru/ui/controls/Button.h"
#include "cru/ui/controls/TextBlock.h"
namespace cru::ui::components {
class CRU_UI_API Select : public Component {
 public:
  Select();
  ~Select() override;
 public:
  ui::controls::Control* GetRootControl() override { return &button_; }
  std::vector<String> GetItems() const { return items_; }
  void SetItems(std::vector<String> items);
  Index GetSelectedIndex() const { return selected_index_; }
  void SetSelectedIndex(Index index);
  IEvent<Index>* ItemSelectedEvent() { return &item_selected_event_; }
 private:
  Index selected_index_;
  std::vector<String> items_;
  ui::controls::Button button_;
  ui::controls::TextBlock button_text_;
  PopupMenu popup_menu_;
  Event<Index> item_selected_event_;
};
}  // namespace cru::ui::components
 |