YCLIMP
Yandex Command Line Interface Music Player
Loading...
Searching...
No Matches
NewElementsDialogBundle.hpp
1#pragma once
2
3#include "DialogBundle.hpp"
4#include "SubWindow.hpp"
5
6#include <memory>
7#include <vector>
8
9class DialogElement;
10
20class NewElementsDialogBundle : public DialogBundle
21{
22public:
23 enum class Steps
24 {
25 Confirm_Selected_Elements = -1,
26 Select_Playlist_Or_Create_New = 0,
27 Set_Playlist_Name_Or_Use_Selected = 1,
28 Conform_Playlist_name_Or_Skip = 2,
29 Choose_Source_Directories_If_Any = 3,
30 Add_Data_To_Database = 4,
31 };
32
33public:
34 NewElementsDialogBundle(
35 std::vector<File_Ptr> elements, Context context, const Recti& bounds);
36
37 virtual bool EventLoopIterationStart() override;
38 virtual void Draw() const override;
39 virtual void HandleResizeEvent(const Recti& newRect) override;
40 virtual void HandleRawInput(int rawInputChar) override;
41
42 virtual void InputUp() override;
43 virtual void InputDown() override;
44 virtual void InputLeft() override;
45 virtual void InputRight() override;
46 virtual void InputEnter() override;
47 virtual void InputTab() override;
48
49private:
50 bool mIsActive;
51 std::vector<File_Ptr> mElements;
52 std::unique_ptr<DialogElement> mActiveDialogElement;
53 Steps mNextDialogStep;
54 std::string mTargetPlaylistName;
55};
The DialogElement class - Abstract class. Visual element designed to process some user input in a dia...
Definition DialogElement.hpp:50
Definition Context.hpp:14