Elaztek Developer Hub
Blamite Game Engine - blam!  00398.09.22.23.2015.blamite
The core library for the Blamite Game Engine.
devtools_bar.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "../debug_ui.h"
4 
5 #include <Strings/components/utils/io/io.h>
6 
9 
11 {
19  {
20  private:
21  bool devtools_bar = true;
22  bool main_menu = true;
23 
24  bool window_wrap = false;
25 
26  public:
27  DevToolsBar(bool show_in_window)
28  {
29  window_wrap = show_in_window;
30 
31  if (window_wrap)
32  {
33  main_menu = false;
34  }
35  }
36 
41  {
42  main_menu = false;
43  }
44 
48  void Draw()
49  {
50  devtools_bar = show;
51 
52  // Main Menu (titlebar)
53  if (devtools_bar)
54  {
55  if (main_menu)
56  {
58  }
59  else
60  {
61  if (window_wrap)
62  {
64  }
65 
67  }
68 
69 
70  using namespace Blam::DebugUI::Windows;
71 
72  if (ImGui::BeginMenu("File"))
73  {
74  ImGui::MenuItem("Open .map file", NULL);
75  ImGui::MenuItem("Return to mainmenu", NULL);
76  if (ImGui::MenuItem("Open game dir", NULL)) BlamStrings::Utils::IO::OpenGameDirectory();
78  ImGui::MenuItem("Exit", NULL, duigvs("exit_via_menu"));
80  }
81  if (ImGui::BeginMenu("Tools"))
82  {
83  ImGui::MenuItem("Memory Editor", NULL);
84  ImGui::MenuItem("Object Info", NULL);
85  ImGui::MenuItem("Cheats", NULL);
86  ImGui::MenuItem("Logger", NULL, duigvs("logger"));
88  ImGui::MenuItem("Render Stack Editor", NULL, duigvs("render_stack_editor"));
90  if (ImGui::MenuItem("Take Screenshot", "F2")) Blam::TakeScreenshot();
92  }
93  if (ImGui::BeginMenu("Network Tools"))
94  {
95  ImGui::MenuItem("Chat", NULL, duigvs("chat_window"));
96  ImGui::MenuItem("Network Poker", NULL);
97  ImGui::MenuItem("Test Master Server Connection", NULL, duigvs("ip_test"));
98  ImGui::MenuItem("Advanced", NULL);
100  }
101  if (ImGui::BeginMenu("Config"))
102  {
103  ImGui::MenuItem("Engine Configuration (Raw)", NULL, duigvs("config_editor"));
104  ImGui::MenuItem("Engine Configuration", NULL, duigvs("config_editor_new"));
105  ImGui::MenuItem("Theme Selector", NULL, duigvs("theme_selector"));
106  ImGui::EndMenu();
107  }
108  if (ImGui::BeginMenu("Test"))
109  {
110  ImGui::MenuItem("Crash Test", NULL, duigvs("crash_test_ui"));
111  ImGui::MenuItem("Access Key Dialog", NULL, duigvs("license_startup_prompt"));
112  ImGui::MenuItem("Win32 Dialog", NULL);
113  ImGui::MenuItem("Forceload .map", NULL);
115  ImGui::MenuItem("ImGui Test Window", NULL, ((Windows::DirectX11Window*)GetDrawListItem("dx11_window"))->ShowTestWindow());
116  ImGui::MenuItem("DX11 Example Window", NULL, duigvs("dx11_window"));
118  ImGui::MenuItem("Discord Rich Presence", NULL, duigvs("discord_rpc_ui"));
120  ImGui::MenuItem("Direct2D Test Window", NULL, duigvs("d2d_test"));
121  ImGui::EndMenu();
122  }
123  if (ImGui::BeginMenu("Debug"))
124  {
125  ImGui::MenuItem("Show Coordinates", NULL);
126  ImGui::MenuItem("Show Runtime Counter", NULL);
127  ImGui::MenuItem("Show FPS", NULL, ((Windows::Stats*)GetDrawListItem("stats"))->ShowFPS());
128  ImGui::MenuItem("Show Network Info", NULL, duigvs("network_stats"));
129  ImGui::MenuItem("Show Usage Info", NULL);
130  ImGui::MenuItem("Show Stats", NULL, duigvs("stats"));
131  ImGui::MenuItem("Toggle Render Target Clearing", "F3 + R", BlamRendering::DirectX::RenderTargetClearing());
132  //ImGui::MenuItem("Console (v2 demo)", NULL, &show_testing_newconsole);
133  ImGui::EndMenu();
134  }
135  if (ImGui::BeginMenu("Help"))
136  {
137  ImGui::MenuItem("ImGui User Guide", NULL, duigvs("imgui_user_guide"));
139  ImGui::MenuItem("About ImGui", NULL, duigvs("imgui_info"));
140  ImGui::MenuItem("About Blamite", NULL, duigvs("engine_info"));
141  ImGui::EndMenu();
142  }
143 
144 
145  if (main_menu)
146  {
148  }
149  else
150  {
152 
153  if (window_wrap)
154  {
155  ImGui::Text("can't imagine why you'd need it, but here it is");
156 
157  ImGui::End();
158  }
159  }
160  }
161  }
162  };
163 }
InternalUI::Colors::mc_color_e
UI_API ImVec4 mc_color_e()
Definition: debug_ui_colors.cpp:51
InternalUI::Colors::mc_color_f
UI_API ImVec4 mc_color_f()
Definition: debug_ui_colors.cpp:52
InternalUI::Colors::crash_col
UI_API ImVec4 crash_col()
Definition: debug_ui_colors.cpp:21
InternalUI::Colors::mc_color_2
UI_API ImVec4 mc_color_2()
Definition: debug_ui_colors.cpp:39
InternalUI::Colors::d_dark
UI_API ImVec4 d_dark()
Definition: debug_ui_colors.cpp:74
InternalUI::Colors::mc_color_5_s
UI_API ImVec4 mc_color_5_s()
Definition: debug_ui_colors.cpp:59
InternalUI::Colors::mc_color_3
UI_API ImVec4 mc_color_3()
Definition: debug_ui_colors.cpp:40
Blam::Logger::LogEvent
BLAM void LogEvent(std::string message)
Logs a message to the log and/or console.
Definition: aliases.cpp:142
InternalUI::Colors::mc_color_7
UI_API ImVec4 mc_color_7()
Definition: debug_ui_colors.cpp:44
ImGui::EndMenu
IMGUI_API void EndMenu()
Definition: imgui_widgets.cpp:6224
ImGui::EndMainMenuBar
IMGUI_API void EndMainMenuBar()
Definition: imgui_widgets.cpp:5995
color
BlamColor color
Typedef for a color field, used in tag definitions.
Definition: tags.h:359
logger.h
Blam::DebugUI::Windows::DirectX11Window
Class for the default ImGUI DX11 sample window.
Definition: dx11_window.hpp:13
InternalUI::Colors::mc_color_c
UI_API ImVec4 mc_color_c()
Definition: debug_ui_colors.cpp:49
InternalUI::Colors::mc_color_6_s
UI_API ImVec4 mc_color_6_s()
Definition: debug_ui_colors.cpp:60
InternalUI::Colors::clear_col
UI_API ImVec4 clear_col()
The color to use for render target clearing.
Definition: debug_ui_colors.cpp:25
ImVec4
Definition: imgui.h:192
debug_colors.h
InternalUI::Colors::mc_color_2_s
UI_API ImVec4 mc_color_2_s()
Definition: debug_ui_colors.cpp:56
ImGui::End
IMGUI_API void End()
Definition: imgui.cpp:6016
stats.hpp
InternalUI::Colors::mc_color_a
UI_API ImVec4 mc_color_a()
Definition: debug_ui_colors.cpp:47
InternalUI::Colors::console_blue
UI_API ImVec4 console_blue()
Definition: debug_ui_colors.cpp:32
ImGui::BeginMainMenuBar
IMGUI_API bool BeginMainMenuBar()
Definition: imgui_widgets.cpp:5975
Blam::DebugUI::Widgets::DevToolsBar
Class for the original menu bar shown with ImGUI.
Definition: devtools_bar.hpp:18
InternalUI::Colors::mc_color_9_s
UI_API ImVec4 mc_color_9_s()
Definition: debug_ui_colors.cpp:63
Blam::DebugUI::GetVisibility
BLAM bool * GetVisibility(std::string key)
Retrieves the visibility of the specified draw list item.
Definition: drawing_list.cpp:42
Blam::DebugUI::AddToDrawList
BLAM void AddToDrawList(std::string key, ImGUIDrawingGroup *group)
Adds a new item to the ImGUI draw list.
Definition: drawing_list.cpp:13
InternalUI::Colors::d_text_light
UI_API ImVec4 d_text_light()
Definition: debug_ui_colors.cpp:78
dx11_window.hpp
InternalUI::Colors::d_greyple
UI_API ImVec4 d_greyple()
Definition: debug_ui_colors.cpp:73
ImGui::MenuItem
IMGUI_API bool MenuItem(const char *label, const char *shortcut=NULL, bool selected=false, bool enabled=true)
Definition: imgui_widgets.cpp:6240
InternalUI::Colors::console_msg_color
UI_API ImVec4 console_msg_color()
Definition: debug_ui_colors.cpp:28
NULL
Add a fourth parameter to bake specific font ranges NULL
Definition: README.txt:57
Blam::Globals::GetGlobalAsColor
BLAM BlamColor * GetGlobalAsColor(std::string name)
Retrieves a global's value as a BlamColor.
Definition: globals.cpp:419
Blam::DebugUI::GetDrawList
BLAM std::map< std::string, Blam::DebugUI::ImGUIDrawingGroup * > * GetDrawList()
Retrieves the current ImGUI drawing list.
Definition: drawing_list.cpp:25
InternalUI::Colors::MessageColorToImColor
BLAM ImVec4 MessageColorToImColor(std::string color_id)
Retrieves a color by its ID, as an ImGUI-compatiable color.
Definition: debug_ui_colors.cpp:6
InternalUI::Colors::console_error
UI_API ImVec4 console_error()
Definition: debug_ui_colors.cpp:30
InternalUI::Colors::console_color
UI_API ImVec4 console_color()
Definition: debug_ui_colors.cpp:27
InternalUI::Colors::mc_color_7_s
UI_API ImVec4 mc_color_7_s()
Definition: debug_ui_colors.cpp:61
ImGui::Begin
IMGUI_API bool Begin(const char *name, bool *p_open=NULL, ImGuiWindowFlags flags=0)
Definition: imgui.cpp:5397
InternalUI::Colors::mc_color_f_s
UI_API ImVec4 mc_color_f_s()
Definition: debug_ui_colors.cpp:69
ImGui::BeginMenuBar
IMGUI_API bool BeginMenuBar()
Definition: imgui_widgets.cpp:6012
Blam::TakeScreenshot
BLAM void TakeScreenshot()
Captures the current frame and saves it to a file.
Definition: screenshot.cpp:101
ImGui::Text
IMGUI_API void Text(const char *fmt,...) IM_FMTARGS(1)
Definition: imgui_widgets.cpp:238
InternalUI::Colors::d_white
UI_API ImVec4 d_white()
Definition: debug_ui_colors.cpp:72
InternalUI::Colors::console_internal_gold
UI_API ImVec4 console_internal_gold()
Definition: debug_ui_colors.cpp:33
InternalUI::Colors::console_print
UI_API ImVec4 console_print()
Definition: debug_ui_colors.cpp:31
main_menu
BlamDebugMenu * main_menu
The debug menu data.
Definition: debug_menu.cpp:15
Blam::DebugUI::ImGUIDrawingGroup::show
bool show
Controls whether or not the group should be shown. May not be used in all groups.
Definition: debug_ui.h:362
InternalUI::Colors::console_shadow
UI_API ImVec4 console_shadow()
Definition: debug_ui_colors.cpp:29
ImGui::BeginMenu
IMGUI_API bool BeginMenu(const char *label, bool enabled=true)
Definition: imgui_widgets.cpp:6081
InternalUI::Colors::mc_color_8
UI_API ImVec4 mc_color_8()
Definition: debug_ui_colors.cpp:45
Blam::DebugUI::ImGUIDrawingGroup::Show
bool * Show()
Retrieves whether or not this item should be shown.
Definition: debug_ui.h:379
Blam::DebugUI::ImGUIDrawingGroup
Class representing an ImGUI drawing group/draw list item.
Definition: debug_ui.h:359
InternalUI::Colors::mc_color_9
UI_API ImVec4 mc_color_9()
Definition: debug_ui_colors.cpp:46
InternalUI::Colors::mc_color_4
UI_API ImVec4 mc_color_4()
Definition: debug_ui_colors.cpp:41
InternalUI::Colors::mc_color_a_s
UI_API ImVec4 mc_color_a_s()
Definition: debug_ui_colors.cpp:64
InternalUI::Colors::d_text_dark
UI_API ImVec4 d_text_dark()
Definition: debug_ui_colors.cpp:77
InternalUI::Colors::crash_text_shadow_col
UI_API ImVec4 crash_text_shadow_col()
Definition: debug_ui_colors.cpp:23
InternalUI::Colors::mc_color_5
UI_API ImVec4 mc_color_5()
Definition: debug_ui_colors.cpp:42
ImGui::EndMenuBar
IMGUI_API void EndMenuBar()
Definition: imgui_widgets.cpp:6040
InternalUI::Colors::mc_color_6
UI_API ImVec4 mc_color_6()
Definition: debug_ui_colors.cpp:43
InternalUI::Colors::mc_color_0_s
UI_API ImVec4 mc_color_0_s()
Definition: debug_ui_colors.cpp:54
InternalUI::Colors::mc_color_e_s
UI_API ImVec4 mc_color_e_s()
Definition: debug_ui_colors.cpp:68
drawlist
std::map< std::string, Blam::DebugUI::ImGUIDrawingGroup * > drawlist
The current ImGUI drawing list.
Definition: drawing_list.cpp:11
InternalUI::Colors::console_yellow
UI_API ImVec4 console_yellow()
Definition: debug_ui_colors.cpp:34
Blam::DebugUI::Widgets::DevToolsBar::DevToolsBar
DevToolsBar(bool show_in_window)
Definition: devtools_bar.hpp:27
ImGuiWindowFlags_AlwaysAutoResize
@ ImGuiWindowFlags_AlwaysAutoResize
Definition: imgui.h:720
InternalUI::Colors::mc_color_8_s
UI_API ImVec4 mc_color_8_s()
Definition: debug_ui_colors.cpp:62
InternalUI::Colors::mc_color_b
UI_API ImVec4 mc_color_b()
Definition: debug_ui_colors.cpp:48
Blam::DebugUI::Windows::Stats
This is the ImGUI-based implementation of the stats widget.
Definition: stats.hpp:23
Blam::DebugUI::GetDrawListItem
BLAM ImGUIDrawingGroup * GetDrawListItem(std::string key)
Retrieves a drawing group with the specified ID.
Definition: drawing_list.cpp:30
debug_ui.h
ImGuiWindowFlags_MenuBar
@ ImGuiWindowFlags_MenuBar
Definition: imgui.h:724
InternalUI::Colors::mc_color_4_s
UI_API ImVec4 mc_color_4_s()
Definition: debug_ui_colors.cpp:58
InternalUI::Colors::mc_color_d_s
UI_API ImVec4 mc_color_d_s()
Definition: debug_ui_colors.cpp:67
ImGui::Separator
IMGUI_API void Separator()
Definition: imgui_widgets.cpp:1284
Blam::DebugUI::Widgets::DevToolsBar::Draw
void Draw()
Draws the menu bar contents.
Definition: devtools_bar.hpp:48
ImGuiWindowFlags_NoResize
@ ImGuiWindowFlags_NoResize
Definition: imgui.h:715
InternalUI::Colors::mc_color_3_s
UI_API ImVec4 mc_color_3_s()
Definition: debug_ui_colors.cpp:57
Blam::DebugUI::Windows
Legacy namespace to contain data for the legacy ImGUI console.
Definition: ui.h:26
InternalUI::Colors::mc_color_b_s
UI_API ImVec4 mc_color_b_s()
Definition: debug_ui_colors.cpp:65
InternalUI::Colors::d_blurple
UI_API ImVec4 d_blurple()
Definition: debug_ui_colors.cpp:71
InternalUI::Colors::d_nqblack
UI_API ImVec4 d_nqblack()
Definition: debug_ui_colors.cpp:75
Blam::DebugUI::Widgets
Namespace containing general-purpose widgets used in multiple ImGUI drawing groups/windows.
Definition: devtools_bar.hpp:10
ImColor
Definition: imgui.h:1749
InternalUI::Colors::mc_color_d
UI_API ImVec4 mc_color_d()
Definition: debug_ui_colors.cpp:50
BlamRendering::DirectX::RenderTargetClearing
BLAM bool * RenderTargetClearing()
Retrieves whether or not to enable render target clearing.
Definition: render_manage.cpp:608
InternalUI::Colors::mc_color_1
UI_API ImVec4 mc_color_1()
Definition: debug_ui_colors.cpp:38
InternalUI::Colors::mc_color_c_s
UI_API ImVec4 mc_color_c_s()
Definition: debug_ui_colors.cpp:66
InternalUI::Colors::mc_color_0
UI_API ImVec4 mc_color_0()
Definition: debug_ui_colors.cpp:37
duigvs
#define duigvs(x)
Macro for Blam::DebugUI::GetVisibility().
Definition: debug_ui.h:19
InternalUI::Colors::crash_text_col
UI_API ImVec4 crash_text_col()
Definition: debug_ui_colors.cpp:22
InternalUI::Colors::transparent
UI_API ImVec4 transparent()
Definition: debug_ui_colors.cpp:35
InternalUI::Colors::mc_color_1_s
UI_API ImVec4 mc_color_1_s()
Definition: debug_ui_colors.cpp:55
Blam::DebugUI::Widgets::DevToolsBar::SetDrawModeNotMainMenu
void SetDrawModeNotMainMenu()
Instructs the menu to draw as a menu bar within a window, rather than as part of the main menu bar.
Definition: devtools_bar.hpp:40