Raven Engine v0.1
Loading...
Searching...
No Matches
UI.h File Reference
#include "Raven/Memory/Ref.h"
#include "Renderer/backend/Vulkan/VulkanImage.h"
#include "Renderer/backend/Vulkan/imgui_impl_vulkan.h"
#include "Renderer/Image.h"
#include "Framework/Framework.h"
#include "imgui.h"
#include "imgui_internal.h"
#include <utility>

Classes

class  Raven::UI::ScopedStyle
 RAII helper to push and pop a single ImGui style variable. Pushes the style var on construction, pops on destruction. More...
class  Raven::UI::ScopedColor
 RAII helper to push and pop a single ImGui style color. More...
class  Raven::UI::ScopedFont
 RAII helper to push and pop an ImGui font. More...
class  Raven::UI::ScopedID
 RAII helper to push and pop an ImGui ID. Supports any type convertible to ImGuiID. More...
class  Raven::UI::ScopedColorStack
 RAII helper to push and pop multiple ImGui style colors in one go. Expects a list of pairs: (ImGuiCol colorID, ColorValue). More...
class  Raven::UI::ScopedStyleStack
 RAII helper to push and pop multiple ImGui style variables in one go. Expects a list of pairs: (ImGuiStyleVar, Value). More...
class  Raven::UI::ScopedItemFlags
 RAII helper to push and pop ImGui item flags. More...
struct  Raven::UI::Toast
 Simple structure to represent a toast notification. More...

Namespaces

namespace  Raven
namespace  Raven::UI

Functions

void Raven::UI::Image (Ref< Image2D > &image, float width, float height)
 Render an Image2D at the specified size.
bool Raven::UI::CreateCombo (const char *label, std::string &currentItem, std::vector< std::string > &items, ImGuiComboFlags_ flags)
 Create a combo box widget with a list of string items.
void Raven::UI::BeginSection (const char *icon, const char *title)
void Raven::UI::BeginStyledChild (const char *id, float height)
void Raven::UI::EndStyledChild ()
void Raven::UI::SuspendLayout ()
 Suspend layout updates for batching UI changes.
void Raven::UI::ResumeLayout ()
 Resume layout updates after suspension.
void Raven::UI::ShiftCursorX (float distance)
 Shift the ImGui cursor horizontally.
void Raven::UI::ShiftCursorY (float distance)
 Shift the ImGui cursor vertically.
void Raven::UI::ShiftCursor (float x, float y)
 Shift the ImGui cursor position by a 2D offset.
ImRect Raven::UI::GetItemRect ()
 Retrieve the rectangle of the last rendered ImGui item.
ImRect Raven::UI::RectExpanded (const ImRect &rect, float x, float y)
 Expand an ImRect by a fixed pixel amount on each axis.
ImRect Raven::UI::RectOffset (const ImRect &rect, float x, float y)
 Offset an ImRect by fixed pixel amounts.
ImRect Raven::UI::RectOffset (const ImRect &rect, ImVec2 xy)
 Offset an ImRect by a 2D vector.
void Raven::UI::DrawVec2Control (const std::string &label, Crux::vec2 &values, float resetValue=0.0f, float columnLabelWidth=50.0f)
 Draw a labeled UI control for editing a 2D vector.
void Raven::UI::DrawVec3Control (const std::string &label, Crux::vec3 &values, float resetValue=0.0f, float columnLabelWidth=50.0f)
 Draw a labeled UI control for editing a 3D vector.
void Raven::UI::DrawButtonImage (const Ref< Texture2D > &imageNormal, const Ref< Texture2D > &imageHovered, const Ref< Texture2D > &imagePressed, ImU32 tintNormal, ImU32 tintHovered, ImU32 tintPressed, ImVec2 rectMin, ImVec2 rectMax)
 Draw a textured button with different states and tinting.
void Raven::UI::DrawButtonImage (const Ref< Texture2D > &imageNormal, const Ref< Texture2D > &imageHovered, const Ref< Texture2D > &imagePressed, ImU32 tintNormal, ImU32 tintHovered, ImU32 tintPressed, ImRect rectangle)
 Draw a textured button using an ImRect.
void Raven::UI::DrawButtonImage (const Ref< Texture2D > &image, ImU32 tintNormal, ImU32 tintHovered, ImU32 tintPressed, ImVec2 rectMin, ImVec2 rectMax)
 Draw a textured button with a single image.
void Raven::UI::DrawButtonImage (const Ref< Texture2D > &image, ImU32 tintNormal, ImU32 tintHovered, ImU32 tintPressed, ImRect rectangle)
 Draw a textured button with a single image using a rectangle.
void Raven::UI::DrawButtonImage (const Ref< Texture2D > &imageNormal, const Ref< Texture2D > &imageHovered, const Ref< Texture2D > &imagePressed, ImU32 tintNormal, ImU32 tintHovered, ImU32 tintPressed)
 Draw a textured button with multiple states and implicit rect.
void Raven::UI::DrawButtonImage (const Ref< Texture2D > &image, ImU32 tintNormal, ImU32 tintHovered, ImU32 tintPressed)
 Draw a textured button with single image and implicit rect.
void Raven::UI::RenderWindowOuterBorders (ImGuiWindow *window)
 Render borders around the outer edge of a window.
bool Raven::UI::UpdateWindowManualResize (ImGuiWindow *window, ImVec2 &newSize, ImVec2 &newPosition)
 Handle manual window resize operation.
void Raven::UI::BeginHorizontal (const char *str_id=nullptr, const ImVec2 &size=ImVec2(0, 0))
 Begin a horizontal UI layout group.
void Raven::UI::EndHorizontal ()
 End the current horizontal layout group.
void Raven::UI::BeginVertical (const char *str_id=nullptr, const ImVec2 &size=ImVec2(0, 0))
 Begin a vertical UI layout group.
void Raven::UI::EndVertical ()
 End the current vertical layout group.
bool Raven::UI::SelectableW (const wchar_t *label, bool selected, ImGuiSelectableFlags flags=0)
 Render a selectable item using a wide-character label.
void Raven::UI::Spring (float weightX=1.0f, float weightY=1.0f)
 Insert flexible spacing using weights.
bool Raven::UI::BeginMenubar (const ImRect &barRectangle)
 Begin a custom menubar inside a defined rectangle.
void Raven::UI::EndMenubar ()
 End the current menubar.
bool Raven::UI::ButtonCentered (const char *label, const ImVec2 &size=ImVec2(0, 0))
 Draw a centered button.
void Raven::UI::DrawBorder (ImRect rect, float thickness=1.0f, float rounding=0.0f, float offsetX=0.0f, float offsetY=0.0f)
 Draws a border around a given ImRect area.
void Raven::UI::ShowToast (const std::string &message, float duration, ImVec4 color=ImVec4(1.0f, 1.0f, 1.0f, 1.0f))
 Display a toast notification.
void Raven::UI::RenderToasts (const ImVec2 &viewportPos, const ImVec2 &viewportSize)
 Render all active toasts within the given viewport area.