86 ImGui::PushStyleColor(ImGuiCol_TitleBg, ImGui::GetStyle().Colors[ImGuiCol_TitleBgActive]);
91 ImVec2 display_size = ImGui::GetIO().DisplaySize;
92 if ((display_size.x > 2200.f) && (display_size.y < 1100.f))
94 ImGui::SetNextWindowPosCenter();
98 const float btn_height = ImGui::GetTextLineHeight() + (
BUTTON_PADDING.y * 2);
99 const float window_height = (
m_num_buttons*btn_height) + (
m_num_buttons*ImGui::GetStyle().ItemSpacing.y) + (2*ImGui::GetStyle().WindowPadding.y);
100 const float margin = display_size.y / 15.f;
101 const float top = display_size.y - window_height - margin;
102 ImGui::SetNextWindowPos(ImVec2(margin, top));
105 int flags = ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_AlwaysAutoResize;
106 if (ImGui::Begin(
_LC(
"MainMenu",
title),
nullptr,
static_cast<ImGuiWindowFlags_
>(flags)))
110 int button_index = 0;
215 ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Escape)))
228 ImGui::PopStyleVar();
229 ImGui::PopStyleColor(3);
235 const float margin = ImGui::GetIO().DisplaySize.y / 30.f;
237 std::string rornet_ver = fmt::format(
"{}: {}",
_LC(
"MainMenu",
"Net. protocol"),
RORNET_VERSION);
238 float text_w = std::max(
239 ImGui::CalcTextSize(game_ver.c_str()).x, ImGui::CalcTextSize(rornet_ver.c_str()).x);
241 (2 * ImGui::GetStyle().WindowPadding.y) + text_w,
242 (2 * ImGui::GetStyle().WindowPadding.y) + (2 * ImGui::GetTextLineHeight()));
243 ImGui::SetNextWindowPos(ImGui::GetIO().DisplaySize - (box_size + ImVec2(margin, margin)));
246 ImGuiWindowFlags flags =
247 ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_AlwaysAutoResize |
248 ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoTitleBar |
249 ImGuiWindowFlags_NoInputs;
250 if (ImGui::Begin(
_LC(
"MainMenu",
"Version box"),
nullptr, flags))
252 ImGui::Text(
"%s", game_ver.c_str());
253 ImGui::Text(
"%s", rornet_ver.c_str());
256 ImGui::PopStyleColor(1);
261 Ogre::TexturePtr tex =
FetchIcon(
"accept.png");
263 const float margin = ImGui::GetIO().DisplaySize.y / 30.f;
265 std::string rornet_ver = fmt::format(
"{}: {}",
_LC(
"MainMenu",
"Net. protocol"),
RORNET_VERSION);
266 std::string cache_ntc = fmt::format(
"{}",
_LC(
"MainMenu",
"Cache updated"));
267 float text_w = std::max(
268 ImGui::CalcTextSize(game_ver.c_str()).x, ImGui::CalcTextSize(rornet_ver.c_str()).x);
270 (2 * ImGui::GetStyle().WindowPadding.y) + text_w,
271 (2 * ImGui::GetStyle().WindowPadding.y) + (4.5 * ImGui::GetTextLineHeight()));
272 ImGui::SetNextWindowPos(ImGui::GetIO().DisplaySize - (box_size + ImVec2(margin, margin)));
275 ImGuiWindowFlags flags =
276 ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_AlwaysAutoResize |
277 ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoTitleBar |
278 ImGuiWindowFlags_NoInputs;
279 if (ImGui::Begin(
_LC(
"MainMenu",
"Notice box"),
nullptr, flags))
281 ImGui::Image(
reinterpret_cast<ImTextureID
>(tex->getHandle()), ImVec2(16, 16));
283 ImGui::Text(
"%s", cache_ntc.c_str());
286 ImGui::PopStyleColor(1);
Game state manager and message-queue provider.
const ImVec2 BUTTON_PADDING
const ImVec4 WINDOW_BG_COLOR
void CacheUpdatedNotice()
const ImVec4 BUTTON_BG_COLOR
bool HighlightButton(const std::string &text, ImVec2 btn_size, int index) const
void PushMessage(Message m)
Doesn't guarantee order! Use ChainMessage() if order matters.