Conquer Space
0.0.0
A space themed grand strategy game set in the near future, with realistic orbital mechanics, and an emphasis on economics and politics.
src
client
scenes
universe
interface
searchmenu.h
Go to the documentation of this file.
1
/* Conquer Space
2
* Copyright (C) 2021-2025 Conquer Space
3
*
4
* This program is free software: you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License as published by
6
* the Free Software Foundation, either version 3 of the License, or
7
* (at your option) any later version.
8
*
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License
15
* along with this program. If not, see <https://www.gnu.org/licenses/>.
16
*/
17
#pragma once
18
19
#include <RmlUi/Core/DataModelHandle.h>
20
21
#include <string>
22
#include <vector>
23
24
#include "
client/systems/sysgui.h
"
25
26
namespace
cqsp::client::systems::rmlui
{
27
class
SearchMenu
:
public
SysRmlUiInterface
{
28
public
:
29
explicit
SearchMenu
(
engine::Application
& _app) :
SysRmlUiInterface
(_app) {}
30
~SearchMenu
();
31
void
Update
(
double
delta_time)
override
;
32
void
OpenDocument
()
override
;
33
void
ReloadWindow
()
override
;
34
void
SetupDocument
();
35
36
private
:
37
std::string
file_name
=
"../data/core/gui/mainscene/searchmenu.rml"
;
38
39
struct
SearchResult
{
40
std::string
name
;
41
std::string
entity_id
;
42
};
43
44
void
AddResult
(
const
std::string& query, entt::entity entity,
const
std::string& name);
45
46
std::vector<SearchResult>
results
;
47
Rml::DataModelHandle
handle
;
48
int
selected_index
= -1;
49
50
void
UpdateSelection
();
51
52
class
SearchEventListener
:
public
Rml::EventListener
{
53
public
:
54
explicit
SearchEventListener
(
SearchMenu
&
menu
) :
menu
(
menu
) {}
55
void
ProcessEvent
(Rml::Event& event)
override
;
56
SearchMenu
&
menu
;
57
} search_listener {*
this
};
58
59
class
ClickEventListener
:
public
Rml::EventListener
{
60
public
:
61
explicit
ClickEventListener
(
SearchMenu
&
menu
) :
menu
(
menu
) {}
62
void
ProcessEvent
(Rml::Event& event)
override
;
63
SearchMenu
&
menu
;
64
} click_listener {*
this
};
65
66
class
KeyboardEventListener
:
public
Rml::EventListener
{
67
public
:
68
explicit
KeyboardEventListener
(
SearchMenu
&
menu
) :
menu
(
menu
) {}
69
void
ProcessEvent
(Rml::Event& event)
override
;
70
SearchMenu
&
menu
;
71
} arrow_key_listener {*
this
};
72
};
73
}
// namespace cqsp::client::systems::rmlui
cqsp::client::systems::SysRmlUiInterface
Definition:
sysgui.h:44
cqsp::client::systems::rmlui::SearchMenu::ClickEventListener
Definition:
searchmenu.h:59
cqsp::client::systems::rmlui::SearchMenu::ClickEventListener::ClickEventListener
ClickEventListener(SearchMenu &menu)
Definition:
searchmenu.h:61
cqsp::client::systems::rmlui::SearchMenu::ClickEventListener::ProcessEvent
void ProcessEvent(Rml::Event &event) override
Definition:
searchmenu.cpp:156
cqsp::client::systems::rmlui::SearchMenu::ClickEventListener::menu
SearchMenu & menu
Definition:
searchmenu.h:63
cqsp::client::systems::rmlui::SearchMenu::KeyboardEventListener
Definition:
searchmenu.h:66
cqsp::client::systems::rmlui::SearchMenu::KeyboardEventListener::menu
SearchMenu & menu
Definition:
searchmenu.h:70
cqsp::client::systems::rmlui::SearchMenu::KeyboardEventListener::ProcessEvent
void ProcessEvent(Rml::Event &event) override
Definition:
searchmenu.cpp:180
cqsp::client::systems::rmlui::SearchMenu::KeyboardEventListener::KeyboardEventListener
KeyboardEventListener(SearchMenu &menu)
Definition:
searchmenu.h:68
cqsp::client::systems::rmlui::SearchMenu::SearchEventListener
Definition:
searchmenu.h:52
cqsp::client::systems::rmlui::SearchMenu::SearchEventListener::menu
SearchMenu & menu
Definition:
searchmenu.h:56
cqsp::client::systems::rmlui::SearchMenu::SearchEventListener::ProcessEvent
void ProcessEvent(Rml::Event &event) override
Definition:
searchmenu.cpp:128
cqsp::client::systems::rmlui::SearchMenu::SearchEventListener::SearchEventListener
SearchEventListener(SearchMenu &menu)
Definition:
searchmenu.h:54
cqsp::client::systems::rmlui::SearchMenu
Definition:
searchmenu.h:27
cqsp::client::systems::rmlui::SearchMenu::SetupDocument
void SetupDocument()
Definition:
searchmenu.cpp:103
cqsp::client::systems::rmlui::SearchMenu::~SearchMenu
~SearchMenu()
Definition:
searchmenu.cpp:35
cqsp::client::systems::rmlui::SearchMenu::AddResult
void AddResult(const std::string &query, entt::entity entity, const std::string &name)
Definition:
searchmenu.cpp:119
cqsp::client::systems::rmlui::SearchMenu::OpenDocument
void OpenDocument() override
Definition:
searchmenu.cpp:82
cqsp::client::systems::rmlui::SearchMenu::selected_index
int selected_index
Definition:
searchmenu.h:48
cqsp::client::systems::rmlui::SearchMenu::SearchMenu
SearchMenu(engine::Application &_app)
Definition:
searchmenu.h:29
cqsp::client::systems::rmlui::SearchMenu::UpdateSelection
void UpdateSelection()
Definition:
searchmenu.cpp:220
cqsp::client::systems::rmlui::SearchMenu::handle
Rml::DataModelHandle handle
Definition:
searchmenu.h:47
cqsp::client::systems::rmlui::SearchMenu::file_name
std::string file_name
Definition:
searchmenu.h:37
cqsp::client::systems::rmlui::SearchMenu::Update
void Update(double delta_time) override
Definition:
searchmenu.cpp:49
cqsp::client::systems::rmlui::SearchMenu::ReloadWindow
void ReloadWindow() override
Definition:
searchmenu.cpp:97
cqsp::client::systems::rmlui::SearchMenu::results
std::vector< SearchResult > results
Definition:
searchmenu.h:46
cqsp::engine::Application
Definition:
application.h:61
EventListener
EventListener(core::Universe &universe)
Definition:
explorationwindow.h:1
cqsp::client::systems::rmlui
Definition:
countryselectionmenu.cpp:19
cqsp::client::systems::rmlui::SearchMenu::SearchResult
Definition:
searchmenu.h:39
cqsp::client::systems::rmlui::SearchMenu::SearchResult::entity_id
std::string entity_id
Definition:
searchmenu.h:41
cqsp::client::systems::rmlui::SearchMenu::SearchResult::name
std::string name
Definition:
searchmenu.h:40
sysgui.h
Generated on Thu Jul 9 2026 07:40:54 for Conquer Space by
1.9.2