yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
yaze::editor::RightDrawerManager Class Reference

Manages right-side sliding drawers for agent chat, proposals, settings. More...

#include <right_drawer_manager.h>

Classes

struct  PanelSizeLimits
 
struct  ToolOutputActions
 

Public Types

enum class  DrawerType {
  kNone = 0 , kAgentChat , kProposals , kSettings ,
  kHelp , kNotifications , kProperties , kProject ,
  kToolOutput
}
 
using PanelType = DrawerType
 

Public Member Functions

 RightDrawerManager ()=default
 
 ~RightDrawerManager ()=default
 
 RightDrawerManager (const RightDrawerManager &)=delete
 
RightDrawerManageroperator= (const RightDrawerManager &)=delete
 
void SetAgentChat (AgentChat *chat)
 
void SetProposalDrawer (ProposalDrawer *drawer)
 
void SetSettingsPanel (SettingsPanel *panel)
 
void SetShortcutManager (ShortcutManager *manager)
 
void SetPropertiesPanel (SelectionPropertiesPanel *panel)
 
void SetProjectManagementPanel (ProjectManagementPanel *panel)
 
void SetToastManager (ToastManager *manager)
 
void SetRom (Rom *rom)
 
void SetToolOutput (std::string title, std::string query, std::string content, ToolOutputActions actions={})
 
const std::string & tool_output_title () const
 
const std::string & tool_output_query () const
 
const std::string & tool_output_content () const
 
void SetActiveEditor (EditorType type)
 Set the active editor for context-aware help content.
 
void ToggleDrawer (DrawerType type)
 Toggle a specific drawer on/off.
 
void TogglePanel (PanelType type)
 
void OpenDrawer (DrawerType type)
 Open a specific drawer.
 
void OpenPanel (PanelType type)
 
void CloseDrawer ()
 Close the currently active drawer.
 
void ClosePanel ()
 
void CycleDrawer (int direction)
 Cycle to the next/previous right drawer in header order.
 
void CycleToNextDrawer ()
 
void CycleToPreviousDrawer ()
 
void CyclePanel (int direction)
 
void CycleToNextPanel ()
 
void CycleToPreviousPanel ()
 
void OnHostVisibilityChanged (bool visible)
 Snap transient animations when host visibility changes.
 
bool IsDrawerExpanded () const
 Check if any drawer is currently expanded (or animating closed)
 
bool IsPanelExpanded () const
 
DrawerType GetActiveDrawer () const
 Get the currently active drawer type.
 
PanelType GetActivePanel () const
 
bool IsDrawerActive (DrawerType type) const
 Check if a specific drawer is active.
 
bool IsPanelActive (PanelType type) const
 
float GetDrawerWidth () const
 Get the width of the drawer when expanded.
 
float GetPanelWidth () const
 
void SetDrawerWidth (DrawerType type, float width)
 Set drawer width for a specific drawer type.
 
void SetPanelWidth (PanelType type, float width)
 
void ResetDrawerWidths ()
 Reset all drawer widths to their defaults.
 
void ResetPanelWidths ()
 
void SetPanelSizeLimits (PanelType type, const PanelSizeLimits &limits)
 Set sizing constraints for an individual right panel.
 
PanelSizeLimits GetPanelSizeLimits (PanelType type) const
 
void SetDrawerSizeLimits (DrawerType type, const PanelSizeLimits &limits)
 
PanelSizeLimits GetDrawerSizeLimits (DrawerType type) const
 
std::unordered_map< std::string, float > SerializeDrawerWidths () const
 Persist/restore per-drawer widths for user settings.
 
void RestoreDrawerWidths (const std::unordered_map< std::string, float > &widths)
 
std::unordered_map< std::string, float > SerializePanelWidths () const
 
void RestorePanelWidths (const std::unordered_map< std::string, float > &widths)
 
void SetDrawerWidthChangedCallback (std::function< void(DrawerType, float)> callback)
 
void SetPanelWidthChangedCallback (std::function< void(PanelType, float)> callback)
 
void Draw ()
 Draw the drawer and its contents.
 
bool DrawDrawerToggleButtons ()
 Draw the single Drawers overflow control for the status cluster.
 
bool DrawPanelToggleButtons ()
 
AgentChatagent_chat () const
 
ProposalDrawerproposal_drawer () const
 
SettingsPanelsettings_panel () const
 
SelectionPropertiesPanelproperties_panel () const
 
ProjectManagementPanelproject_panel () const
 

Static Public Member Functions

static constexpr float GetCollapsedWidth ()
 Get the width of the collapsed panel strip (toggle buttons)
 
static float GetDefaultDrawerWidth (DrawerType type, EditorType editor=EditorType::kUnknown)
 Get the default width for a specific drawer type.
 
static float GetDefaultPanelWidth (PanelType type, EditorType editor=EditorType::kUnknown)
 
static float GetDrawerToggleClusterWidth ()
 Menu-bar width reserved for the Drawers overflow control.
 

Private Member Functions

void DrawPanelHeader (PanelType type, const char *title, const char *icon)
 
void DrawDrawerNavStrip (PanelType current_panel)
 
void DrawHeaderActions (PanelType type)
 
void DrawHeaderContextBadge (PanelType type)
 
void DrawAgentChatPanel ()
 
void DrawProposalsPanel ()
 
void DrawSettingsPanel ()
 
void DrawHelpPanel ()
 
void DrawNotificationsPanel ()
 
void DrawPropertiesPanel ()
 
void DrawProjectPanel ()
 
void DrawToolOutputPanel ()
 
bool DrawAgentQuickActions ()
 
void DrawEditorContextHeader ()
 
void DrawGlobalShortcuts ()
 
void DrawEditorSpecificShortcuts ()
 
void DrawEditorSpecificHelp ()
 
void DrawQuickActionButtons ()
 
void DrawAboutSection ()
 
bool BeginPanelSection (const char *label, const char *icon=nullptr, bool default_open=true)
 
void EndPanelSection ()
 
void DrawPanelDivider ()
 
void DrawPanelLabel (const char *label)
 
void DrawPanelValue (const char *label, const char *value)
 
void DrawPanelDescription (const char *text)
 
std::string GetShortcutLabel (const std::string &action, const std::string &fallback) const
 
void DrawShortcutRow (const std::string &action, const char *description, const std::string &fallback)
 
float GetConfiguredPanelWidth (PanelType type) const
 
float GetClampedPanelWidth (PanelType type, float viewport_width) const
 
void NotifyPanelWidthChanged (PanelType type, float width)
 

Static Private Member Functions

static std::string PanelTypeKey (PanelType type)
 

Private Attributes

PanelType active_panel_ = PanelType::kNone
 
EditorType active_editor_type_ = EditorType::kUnknown
 
float agent_chat_width_ = gui::UIConfig::kPanelWidthAgentChat
 
float proposals_width_ = gui::UIConfig::kPanelWidthProposals
 
float settings_width_ = gui::UIConfig::kPanelWidthSettings
 
float help_width_ = gui::UIConfig::kPanelWidthHelp
 
float notifications_width_ = gui::UIConfig::kPanelWidthNotifications
 
float properties_width_ = gui::UIConfig::kPanelWidthProperties
 
float project_width_ = gui::UIConfig::kPanelWidthProject
 
float tool_output_width_ = 460.0f
 
AgentChatagent_chat_ = nullptr
 
ProposalDrawerproposal_drawer_ = nullptr
 
SettingsPanelsettings_panel_ = nullptr
 
ShortcutManagershortcut_manager_ = nullptr
 
SelectionPropertiesPanelproperties_panel_ = nullptr
 
ProjectManagementPanelproject_panel_ = nullptr
 
ToastManagertoast_manager_ = nullptr
 
Romrom_ = nullptr
 
std::string tool_output_title_
 
std::string tool_output_query_
 
std::string tool_output_content_
 
ToolOutputActions tool_output_actions_
 
bool properties_locked_ = false
 
float panel_animation_ = 0.0f
 
float animation_target_ = 0.0f
 
bool animating_ = false
 
bool closing_ = false
 
PanelType closing_panel_ = PanelType::kNone
 
std::unordered_map< std::string, PanelSizeLimitspanel_size_limits_
 
std::function< void(PanelType, float)> on_panel_width_changed_
 

Friends

class RightDrawerManagerTestPeer
 

Detailed Description

Manages right-side sliding drawers for agent chat, proposals, settings.

Provides a unified drawer system on the right side of the application that:

  • Slides in/out from the right edge
  • Shifts the main docking space when expanded
  • Supports multiple drawer types (agent chat, proposals, settings)
  • Only one drawer can be active at a time

Usage:

RightDrawerManager drawer_manager;
drawer_manager.SetAgentChat(&agent_chat);
drawer_manager.Draw();
Manages right-side sliding drawers for agent chat, proposals, settings.
void Draw()
Draw the drawer and its contents.
void ToggleDrawer(DrawerType type)
Toggle a specific drawer on/off.
ProposalDrawer * proposal_drawer() const
void SetProposalDrawer(ProposalDrawer *drawer)

Definition at line 56 of file right_drawer_manager.h.

Member Typedef Documentation

◆ PanelType

Member Enumeration Documentation

◆ DrawerType

Enumerator
kNone 
kAgentChat 
kProposals 
kSettings 
kHelp 
kNotifications 
kProperties 
kProject 
kToolOutput 

Definition at line 64 of file right_drawer_manager.h.

Constructor & Destructor Documentation

◆ RightDrawerManager() [1/2]

yaze::editor::RightDrawerManager::RightDrawerManager ( )
default

◆ ~RightDrawerManager()

yaze::editor::RightDrawerManager::~RightDrawerManager ( )
default

◆ RightDrawerManager() [2/2]

yaze::editor::RightDrawerManager::RightDrawerManager ( const RightDrawerManager & )
delete

Member Function Documentation

◆ operator=()

RightDrawerManager & yaze::editor::RightDrawerManager::operator= ( const RightDrawerManager & )
delete

◆ SetAgentChat()

void yaze::editor::RightDrawerManager::SetAgentChat ( AgentChat * chat)
inline

Definition at line 88 of file right_drawer_manager.h.

References agent_chat_.

◆ SetProposalDrawer()

void yaze::editor::RightDrawerManager::SetProposalDrawer ( ProposalDrawer * drawer)
inline

Definition at line 89 of file right_drawer_manager.h.

References proposal_drawer_.

◆ SetSettingsPanel()

void yaze::editor::RightDrawerManager::SetSettingsPanel ( SettingsPanel * panel)
inline

Definition at line 90 of file right_drawer_manager.h.

References settings_panel_.

◆ SetShortcutManager()

void yaze::editor::RightDrawerManager::SetShortcutManager ( ShortcutManager * manager)
inline

Definition at line 91 of file right_drawer_manager.h.

References shortcut_manager_.

◆ SetPropertiesPanel()

void yaze::editor::RightDrawerManager::SetPropertiesPanel ( SelectionPropertiesPanel * panel)
inline

Definition at line 94 of file right_drawer_manager.h.

References properties_panel_.

◆ SetProjectManagementPanel()

void yaze::editor::RightDrawerManager::SetProjectManagementPanel ( ProjectManagementPanel * panel)
inline

Definition at line 97 of file right_drawer_manager.h.

References project_panel_.

◆ SetToastManager()

void yaze::editor::RightDrawerManager::SetToastManager ( ToastManager * manager)
inline

Definition at line 100 of file right_drawer_manager.h.

References toast_manager_.

◆ SetRom()

void yaze::editor::RightDrawerManager::SetRom ( Rom * rom)
inline

Definition at line 101 of file right_drawer_manager.h.

References rom_.

◆ SetToolOutput()

void yaze::editor::RightDrawerManager::SetToolOutput ( std::string title,
std::string query,
std::string content,
ToolOutputActions actions = {} )

◆ tool_output_title()

const std::string & yaze::editor::RightDrawerManager::tool_output_title ( ) const
inline

Definition at line 104 of file right_drawer_manager.h.

References tool_output_title_.

◆ tool_output_query()

const std::string & yaze::editor::RightDrawerManager::tool_output_query ( ) const
inline

Definition at line 105 of file right_drawer_manager.h.

References tool_output_query_.

◆ tool_output_content()

const std::string & yaze::editor::RightDrawerManager::tool_output_content ( ) const
inline

Definition at line 106 of file right_drawer_manager.h.

References tool_output_content_.

◆ SetActiveEditor()

void yaze::editor::RightDrawerManager::SetActiveEditor ( EditorType type)
inline

Set the active editor for context-aware help content.

Parameters
typeThe currently active editor type

Definition at line 114 of file right_drawer_manager.h.

References active_editor_type_.

◆ ToggleDrawer()

void yaze::editor::RightDrawerManager::ToggleDrawer ( DrawerType type)

Toggle a specific drawer on/off.

Parameters
typeDrawer type to toggle

If the drawer is already active, it will be closed. If another drawer is active, it will be closed and this one opened.

Definition at line 521 of file right_drawer_manager.cc.

References active_panel_, CloseDrawer(), and OpenDrawer().

Referenced by DrawDrawerToggleButtons(), and TogglePanel().

Here is the call graph for this function:

◆ TogglePanel()

void yaze::editor::RightDrawerManager::TogglePanel ( PanelType type)
inline

Definition at line 129 of file right_drawer_manager.h.

References ToggleDrawer().

Here is the call graph for this function:

◆ OpenDrawer()

void yaze::editor::RightDrawerManager::OpenDrawer ( DrawerType type)

Open a specific drawer.

Parameters
typeDrawer type to open

Definition at line 543 of file right_drawer_manager.cc.

References active_panel_, animating_, animation_target_, closing_, closing_panel_, yaze::gui::GetAnimator(), kNone, and panel_animation_.

Referenced by CycleDrawer(), DrawDrawerNavStrip(), DrawPanelHeader(), yaze::editor::EditorActivator::HandleNonEditorClassSwitch(), OpenPanel(), and ToggleDrawer().

Here is the call graph for this function:

◆ OpenPanel()

void yaze::editor::RightDrawerManager::OpenPanel ( PanelType type)
inline

Definition at line 139 of file right_drawer_manager.h.

References OpenDrawer().

Here is the call graph for this function:

◆ CloseDrawer()

void yaze::editor::RightDrawerManager::CloseDrawer ( )

◆ ClosePanel()

void yaze::editor::RightDrawerManager::ClosePanel ( )
inline

Definition at line 148 of file right_drawer_manager.h.

References CloseDrawer().

Here is the call graph for this function:

◆ CycleDrawer()

void yaze::editor::RightDrawerManager::CycleDrawer ( int direction)

Cycle to the next/previous right drawer in header order.

Parameters
directionPositive for next, negative for previous.

Definition at line 579 of file right_drawer_manager.cc.

References active_panel_, closing_panel_, kNone, and OpenDrawer().

Referenced by CyclePanel(), CycleToNextDrawer(), and CycleToPreviousDrawer().

Here is the call graph for this function:

◆ CycleToNextDrawer()

void yaze::editor::RightDrawerManager::CycleToNextDrawer ( )
inline

Definition at line 157 of file right_drawer_manager.h.

References CycleDrawer().

Referenced by CycleToNextPanel().

Here is the call graph for this function:

◆ CycleToPreviousDrawer()

void yaze::editor::RightDrawerManager::CycleToPreviousDrawer ( )
inline

Definition at line 158 of file right_drawer_manager.h.

References CycleDrawer().

Referenced by CycleToPreviousPanel().

Here is the call graph for this function:

◆ CyclePanel()

void yaze::editor::RightDrawerManager::CyclePanel ( int direction)
inline

Definition at line 160 of file right_drawer_manager.h.

References CycleDrawer().

Here is the call graph for this function:

◆ CycleToNextPanel()

void yaze::editor::RightDrawerManager::CycleToNextPanel ( )
inline

Definition at line 164 of file right_drawer_manager.h.

References CycleToNextDrawer().

Here is the call graph for this function:

◆ CycleToPreviousPanel()

void yaze::editor::RightDrawerManager::CycleToPreviousPanel ( )
inline

Definition at line 168 of file right_drawer_manager.h.

References CycleToPreviousDrawer().

Here is the call graph for this function:

◆ OnHostVisibilityChanged()

void yaze::editor::RightDrawerManager::OnHostVisibilityChanged ( bool visible)

Snap transient animations when host visibility changes.

This is used for OS space switches / focus loss so partially animated panel bitmaps do not linger when returning to the app.

Definition at line 594 of file right_drawer_manager.cc.

References active_panel_, animating_, animation_target_, closing_, closing_panel_, kNone, and panel_animation_.

◆ IsDrawerExpanded()

bool yaze::editor::RightDrawerManager::IsDrawerExpanded ( ) const

Check if any drawer is currently expanded (or animating closed)

Definition at line 539 of file right_drawer_manager.cc.

References active_panel_, closing_, and kNone.

Referenced by yaze::editor::UICoordinator::DrawMenuBarExtras(), and IsPanelExpanded().

◆ IsPanelExpanded()

bool yaze::editor::RightDrawerManager::IsPanelExpanded ( ) const
inline

Definition at line 185 of file right_drawer_manager.h.

References IsDrawerExpanded().

Here is the call graph for this function:

◆ GetActiveDrawer()

DrawerType yaze::editor::RightDrawerManager::GetActiveDrawer ( ) const
inline

Get the currently active drawer type.

Definition at line 192 of file right_drawer_manager.h.

References active_panel_.

Referenced by GetActivePanel(), and yaze::editor::EditorActivator::HandleNonEditorClassSwitch().

◆ GetActivePanel()

PanelType yaze::editor::RightDrawerManager::GetActivePanel ( ) const
inline

Definition at line 194 of file right_drawer_manager.h.

References GetActiveDrawer().

Here is the call graph for this function:

◆ IsDrawerActive()

bool yaze::editor::RightDrawerManager::IsDrawerActive ( DrawerType type) const
inline

Check if a specific drawer is active.

Definition at line 201 of file right_drawer_manager.h.

References active_panel_.

Referenced by DrawDrawerToggleButtons(), yaze::editor::UICoordinator::DrawNotificationBell(), and IsPanelActive().

◆ IsPanelActive()

bool yaze::editor::RightDrawerManager::IsPanelActive ( PanelType type) const
inline

Definition at line 203 of file right_drawer_manager.h.

References IsDrawerActive().

Here is the call graph for this function:

◆ GetDrawerWidth()

float yaze::editor::RightDrawerManager::GetDrawerWidth ( ) const

Get the width of the drawer when expanded.

Definition at line 606 of file right_drawer_manager.cc.

References active_panel_, closing_, closing_panel_, GetClampedPanelWidth(), GetConfiguredPanelWidth(), kNone, and panel_animation_.

Referenced by yaze::editor::UICoordinator::DrawMenuBarExtras(), GetPanelWidth(), and yaze::editor::LayoutCoordinator::GetRightLayoutOffset().

Here is the call graph for this function:

◆ GetPanelWidth()

float yaze::editor::RightDrawerManager::GetPanelWidth ( ) const
inline

Definition at line 216 of file right_drawer_manager.h.

References GetDrawerWidth().

Here is the call graph for this function:

◆ GetCollapsedWidth()

static constexpr float yaze::editor::RightDrawerManager::GetCollapsedWidth ( )
inlinestaticconstexpr

Get the width of the collapsed panel strip (toggle buttons)

Definition at line 223 of file right_drawer_manager.h.

◆ SetDrawerWidth()

void yaze::editor::RightDrawerManager::SetDrawerWidth ( DrawerType type,
float width )

◆ SetPanelWidth()

void yaze::editor::RightDrawerManager::SetPanelWidth ( PanelType type,
float width )
inline

Definition at line 230 of file right_drawer_manager.h.

References SetDrawerWidth().

Here is the call graph for this function:

◆ ResetDrawerWidths()

void yaze::editor::RightDrawerManager::ResetDrawerWidths ( )

Reset all drawer widths to their defaults.

Definition at line 698 of file right_drawer_manager.cc.

References active_editor_type_, GetDefaultDrawerWidth(), kAgentChat, kHelp, kNotifications, kProject, kProperties, kProposals, kSettings, kToolOutput, and SetDrawerWidth().

Referenced by ResetPanelWidths().

Here is the call graph for this function:

◆ ResetPanelWidths()

void yaze::editor::RightDrawerManager::ResetPanelWidths ( )
inline

Definition at line 239 of file right_drawer_manager.h.

References ResetDrawerWidths().

Here is the call graph for this function:

◆ GetDefaultDrawerWidth()

◆ GetDefaultPanelWidth()

static float yaze::editor::RightDrawerManager::GetDefaultPanelWidth ( PanelType type,
EditorType editor = EditorType::kUnknown )
inlinestatic

Definition at line 252 of file right_drawer_manager.h.

References GetDefaultDrawerWidth().

Here is the call graph for this function:

◆ SetPanelSizeLimits()

void yaze::editor::RightDrawerManager::SetPanelSizeLimits ( PanelType type,
const PanelSizeLimits & limits )

Set sizing constraints for an individual right panel.

Definition at line 752 of file right_drawer_manager.cc.

References kNone, yaze::gui::UIConfig::kPanelMinWidthAbsolute, yaze::editor::RightDrawerManager::PanelSizeLimits::max_width_ratio, yaze::editor::RightDrawerManager::PanelSizeLimits::min_width, panel_size_limits_, and PanelTypeKey().

Referenced by SetDrawerSizeLimits().

Here is the call graph for this function:

◆ GetPanelSizeLimits()

◆ SetDrawerSizeLimits()

void yaze::editor::RightDrawerManager::SetDrawerSizeLimits ( DrawerType type,
const PanelSizeLimits & limits )
inline

Definition at line 267 of file right_drawer_manager.h.

References SetPanelSizeLimits().

Here is the call graph for this function:

◆ GetDrawerSizeLimits()

PanelSizeLimits yaze::editor::RightDrawerManager::GetDrawerSizeLimits ( DrawerType type) const
inline

Definition at line 270 of file right_drawer_manager.h.

References GetPanelSizeLimits().

Here is the call graph for this function:

◆ SerializeDrawerWidths()

std::unordered_map< std::string, float > yaze::editor::RightDrawerManager::SerializeDrawerWidths ( ) const

Persist/restore per-drawer widths for user settings.

Definition at line 858 of file right_drawer_manager.cc.

References agent_chat_width_, help_width_, kAgentChat, kHelp, kNotifications, kProject, kProperties, kProposals, kSettings, kToolOutput, notifications_width_, PanelTypeKey(), project_width_, properties_width_, proposals_width_, settings_width_, and tool_output_width_.

Referenced by SerializePanelWidths().

Here is the call graph for this function:

◆ RestoreDrawerWidths()

void yaze::editor::RightDrawerManager::RestoreDrawerWidths ( const std::unordered_map< std::string, float > & widths)

Definition at line 871 of file right_drawer_manager.cc.

References kAgentChat, kHelp, kNotifications, kProject, kProperties, kProposals, kSettings, kToolOutput, LOG_INFO, PanelTypeKey(), and SetDrawerWidth().

Referenced by RestorePanelWidths().

Here is the call graph for this function:

◆ SerializePanelWidths()

std::unordered_map< std::string, float > yaze::editor::RightDrawerManager::SerializePanelWidths ( ) const
inline

Definition at line 281 of file right_drawer_manager.h.

References SerializeDrawerWidths().

Here is the call graph for this function:

◆ RestorePanelWidths()

void yaze::editor::RightDrawerManager::RestorePanelWidths ( const std::unordered_map< std::string, float > & widths)
inline

Definition at line 285 of file right_drawer_manager.h.

References RestoreDrawerWidths().

Here is the call graph for this function:

◆ SetDrawerWidthChangedCallback()

void yaze::editor::RightDrawerManager::SetDrawerWidthChangedCallback ( std::function< void(DrawerType, float)> callback)
inline

Definition at line 290 of file right_drawer_manager.h.

References on_panel_width_changed_.

◆ SetPanelWidthChangedCallback()

void yaze::editor::RightDrawerManager::SetPanelWidthChangedCallback ( std::function< void(PanelType, float)> callback)
inline

Definition at line 295 of file right_drawer_manager.h.

References on_panel_width_changed_.

◆ Draw()

void yaze::editor::RightDrawerManager::Draw ( )

Draw the drawer and its contents.

Should be called after the main docking space is drawn. The drawer will position itself on the right edge.

Definition at line 893 of file right_drawer_manager.cc.

References active_editor_type_, active_panel_, animating_, animation_target_, yaze::gui::LayoutHelpers::BeginContentChild(), yaze::gui::LayoutHelpers::SafeAreaInsets::bottom, CloseDrawer(), closing_, closing_panel_, DrawAgentChatPanel(), DrawDrawerNavStrip(), DrawHelpPanel(), DrawNotificationsPanel(), DrawPanelHeader(), DrawProjectPanel(), DrawPropertiesPanel(), DrawProposalsPanel(), DrawSettingsPanel(), DrawToolOutputPanel(), yaze::gui::LayoutHelpers::EndContentChild(), yaze::gui::GetAnimator(), GetClampedPanelWidth(), GetConfiguredPanelWidth(), GetDefaultDrawerWidth(), yaze::gui::GetOutlineVec4(), yaze::editor::GetPanelTypeIcon(), yaze::editor::GetPanelTypeName(), yaze::gui::LayoutHelpers::GetSafeAreaInsets(), yaze::gui::GetSurfaceContainerVec4(), yaze::gui::LayoutHelpers::GetTopInset(), yaze::gui::Animator::IsEnabled(), kAgentChat, yaze::gui::UIConfig::kAnimationSnapThreshold, yaze::gui::UIConfig::kAnimationSpeed, yaze::gui::UIConfig::kContentMinHeightList, kHelp, kNone, kNotifications, yaze::gui::UIConfig::kPanelPaddingLarge, yaze::gui::UIConfig::kPanelPaddingMedium, kProject, kProperties, kProposals, yaze::gui::kRelaxed, kSettings, yaze::gui::kSnappy, yaze::gui::UIConfig::kSplitterWidth, yaze::gui::kStandard, kToolOutput, panel_animation_, SetDrawerWidth(), and tool_output_title_.

◆ DrawDrawerToggleButtons()

bool yaze::editor::RightDrawerManager::DrawDrawerToggleButtons ( )

Draw the single Drawers overflow control for the status cluster.

One icon opens a popup listing every switchable drawer (checked when active). Returns true if the overflow button was clicked or a drawer was toggled from the popup.

Definition at line 2402 of file right_drawer_manager.cc.

References active_panel_, yaze::editor::GetDrawerCatalog(), yaze::gui::GetPrimaryVec4(), GetShortcutLabel(), yaze::gui::GetSurfaceContainerHighestVec4(), yaze::gui::GetSurfaceContainerHighVec4(), yaze::gui::GetTextSecondaryVec4(), ICON_MD_VERTICAL_SPLIT, IsDrawerActive(), kNone, and ToggleDrawer().

Referenced by yaze::editor::UICoordinator::DrawMenuBarExtras(), and DrawPanelToggleButtons().

◆ DrawPanelToggleButtons()

bool yaze::editor::RightDrawerManager::DrawPanelToggleButtons ( )
inline

Definition at line 321 of file right_drawer_manager.h.

References DrawDrawerToggleButtons().

Here is the call graph for this function:

◆ GetDrawerToggleClusterWidth()

float yaze::editor::RightDrawerManager::GetDrawerToggleClusterWidth ( )
static

Menu-bar width reserved for the Drawers overflow control.

Keep in sync with DrawDrawerToggleButtons() SmallButton metrics so UICoordinator::DrawMenuBarExtras does not hardcode icon counts.

Definition at line 2446 of file right_drawer_manager.cc.

References ICON_MD_VERTICAL_SPLIT.

Referenced by yaze::editor::UICoordinator::DrawMenuBarExtras().

◆ agent_chat()

AgentChat * yaze::editor::RightDrawerManager::agent_chat ( ) const
inline

Definition at line 337 of file right_drawer_manager.h.

References agent_chat_.

◆ proposal_drawer()

ProposalDrawer * yaze::editor::RightDrawerManager::proposal_drawer ( ) const
inline

Definition at line 338 of file right_drawer_manager.h.

References proposal_drawer_.

◆ settings_panel()

SettingsPanel * yaze::editor::RightDrawerManager::settings_panel ( ) const
inline

Definition at line 339 of file right_drawer_manager.h.

References settings_panel_.

◆ properties_panel()

SelectionPropertiesPanel * yaze::editor::RightDrawerManager::properties_panel ( ) const
inline

Definition at line 340 of file right_drawer_manager.h.

References properties_panel_.

◆ project_panel()

ProjectManagementPanel * yaze::editor::RightDrawerManager::project_panel ( ) const
inline

Definition at line 343 of file right_drawer_manager.h.

References project_panel_.

◆ DrawPanelHeader()

◆ DrawDrawerNavStrip()

◆ DrawHeaderActions()

void yaze::editor::RightDrawerManager::DrawHeaderActions ( PanelType type)
private

Definition at line 1174 of file right_drawer_manager.cc.

◆ DrawHeaderContextBadge()

◆ DrawAgentChatPanel()

void yaze::editor::RightDrawerManager::DrawAgentChatPanel ( )
private

◆ DrawProposalsPanel()

◆ DrawSettingsPanel()

void yaze::editor::RightDrawerManager::DrawSettingsPanel ( )
private

◆ DrawHelpPanel()

◆ DrawNotificationsPanel()

void yaze::editor::RightDrawerManager::DrawNotificationsPanel ( )
private

Definition at line 2114 of file right_drawer_manager.cc.

References yaze::gui::LayoutHelpers::BeginContentChild(), yaze::editor::ContentRegistry::Context::build_workflow_status(), yaze::editor::ContentRegistry::Context::cancel_build_workflow_callback(), yaze::editor::ToastManager::ClearHistory(), yaze::gui::ColoredText(), yaze::gui::ColoredTextF(), yaze::gui::ConvertColorToImVec4(), DrawPanelDescription(), DrawPanelDivider(), DrawPanelLabel(), yaze::gui::LayoutHelpers::EndContentChild(), yaze::gui::ThemeManager::Get(), yaze::gui::ThemeManager::GetCurrentTheme(), yaze::editor::ToastManager::GetHistory(), yaze::gui::GetPrimaryVec4(), yaze::gui::GetSurfaceContainerHighestVec4(), yaze::gui::GetSurfaceContainerHighVec4(), yaze::gui::GetTextDisabledVec4(), yaze::gui::GetTextSecondaryVec4(), yaze::editor::ToastManager::GetUnreadCount(), ICON_MD_BUILD, ICON_MD_CHECK_CIRCLE, ICON_MD_DELETE_SWEEP, ICON_MD_DONE_ALL, ICON_MD_ERROR, ICON_MD_FIBER_MANUAL_RECORD, ICON_MD_INBOX, ICON_MD_INFO, ICON_MD_NOTIFICATIONS_OFF, ICON_MD_OPEN_IN_NEW, ICON_MD_PLAY_ARROW, ICON_MD_WARNING, yaze::gui::UIConfig::kContentMinHeightList, yaze::editor::kError, yaze::editor::kSuccess, yaze::editor::kWarning, yaze::editor::ToastManager::MarkAllRead(), yaze::editor::workflow::WorkflowActionCallbacks::run_project, yaze::editor::ContentRegistry::Context::run_project_workflow_callback(), yaze::editor::ContentRegistry::Context::run_workflow_status(), yaze::editor::workflow::SelectWorkflowPreviewEntries(), yaze::editor::workflow::WorkflowActionCallbacks::show_output, yaze::editor::ContentRegistry::Context::show_workflow_output_callback(), yaze::editor::workflow::WorkflowActionCallbacks::start_build, yaze::editor::ContentRegistry::Context::start_build_workflow_callback(), toast_manager_, and yaze::editor::ContentRegistry::Context::workflow_history().

Referenced by Draw().

◆ DrawPropertiesPanel()

void yaze::editor::RightDrawerManager::DrawPropertiesPanel ( )
private

Definition at line 2313 of file right_drawer_manager.cc.

References yaze::editor::SelectionPropertiesPanel::Draw(), yaze::gui::DrawEmptyState(), yaze::gui::EmptyNoSelection(), and properties_panel_.

Referenced by Draw().

Here is the call graph for this function:

◆ DrawProjectPanel()

void yaze::editor::RightDrawerManager::DrawProjectPanel ( )
private

Definition at line 2321 of file right_drawer_manager.cc.

References yaze::editor::ProjectManagementPanel::Draw(), yaze::gui::DrawEmptyState(), yaze::gui::EmptyNoProject(), and project_panel_.

Referenced by Draw().

Here is the call graph for this function:

◆ DrawToolOutputPanel()

◆ DrawAgentQuickActions()

◆ DrawEditorContextHeader()

◆ DrawGlobalShortcuts()

void yaze::editor::RightDrawerManager::DrawGlobalShortcuts ( )
private

Definition at line 1853 of file right_drawer_manager.cc.

References DrawPanelLabel(), DrawPanelValue(), DrawShortcutRow(), and yaze::gui::GetCtrlDisplayName().

Referenced by DrawHelpPanel().

Here is the call graph for this function:

◆ DrawEditorSpecificShortcuts()

◆ DrawEditorSpecificHelp()

void yaze::editor::RightDrawerManager::DrawEditorSpecificHelp ( )
private

◆ DrawQuickActionButtons()

void yaze::editor::RightDrawerManager::DrawQuickActionButtons ( )
private

◆ DrawAboutSection()

void yaze::editor::RightDrawerManager::DrawAboutSection ( )
private

◆ BeginPanelSection()

bool yaze::editor::RightDrawerManager::BeginPanelSection ( const char * label,
const char * icon = nullptr,
bool default_open = true )
private

Definition at line 1486 of file right_drawer_manager.cc.

References yaze::gui::GetSurfaceContainerHighestVec4(), and yaze::gui::GetSurfaceContainerHighVec4().

Referenced by DrawHelpPanel(), and DrawToolOutputPanel().

Here is the call graph for this function:

◆ EndPanelSection()

void yaze::editor::RightDrawerManager::EndPanelSection ( )
private

Definition at line 1523 of file right_drawer_manager.cc.

Referenced by DrawHelpPanel(), and DrawToolOutputPanel().

◆ DrawPanelDivider()

void yaze::editor::RightDrawerManager::DrawPanelDivider ( )
private

Definition at line 1529 of file right_drawer_manager.cc.

References yaze::gui::GetOutlineVec4().

Referenced by DrawAboutSection(), DrawEditorContextHeader(), DrawNotificationsPanel(), and DrawToolOutputPanel().

Here is the call graph for this function:

◆ DrawPanelLabel()

void yaze::editor::RightDrawerManager::DrawPanelLabel ( const char * label)
private

Definition at line 1538 of file right_drawer_manager.cc.

References yaze::gui::ColoredText(), and yaze::gui::GetTextSecondaryVec4().

Referenced by DrawAboutSection(), DrawEditorSpecificShortcuts(), DrawGlobalShortcuts(), and DrawNotificationsPanel().

Here is the call graph for this function:

◆ DrawPanelValue()

void yaze::editor::RightDrawerManager::DrawPanelValue ( const char * label,
const char * value )
private

Definition at line 1542 of file right_drawer_manager.cc.

References yaze::gui::ColoredTextF(), and yaze::gui::GetTextSecondaryVec4().

Referenced by DrawEditorSpecificShortcuts(), DrawGlobalShortcuts(), and DrawShortcutRow().

Here is the call graph for this function:

◆ DrawPanelDescription()

void yaze::editor::RightDrawerManager::DrawPanelDescription ( const char * text)
private

Definition at line 1548 of file right_drawer_manager.cc.

References yaze::gui::GetTextDisabledVec4().

Referenced by DrawAboutSection(), DrawAgentChatPanel(), DrawNotificationsPanel(), DrawProposalsPanel(), and DrawSettingsPanel().

Here is the call graph for this function:

◆ GetShortcutLabel()

std::string yaze::editor::RightDrawerManager::GetShortcutLabel ( const std::string & action,
const std::string & fallback ) const
private

◆ DrawShortcutRow()

void yaze::editor::RightDrawerManager::DrawShortcutRow ( const std::string & action,
const char * description,
const std::string & fallback )
private

Definition at line 1572 of file right_drawer_manager.cc.

References DrawPanelValue(), and GetShortcutLabel().

Referenced by DrawEditorSpecificShortcuts(), and DrawGlobalShortcuts().

Here is the call graph for this function:

◆ GetConfiguredPanelWidth()

◆ GetClampedPanelWidth()

float yaze::editor::RightDrawerManager::GetClampedPanelWidth ( PanelType type,
float viewport_width ) const
private

Definition at line 837 of file right_drawer_manager.cc.

References GetConfiguredPanelWidth(), and GetPanelSizeLimits().

Referenced by Draw(), and GetDrawerWidth().

Here is the call graph for this function:

◆ NotifyPanelWidthChanged()

void yaze::editor::RightDrawerManager::NotifyPanelWidthChanged ( PanelType type,
float width )
private

Definition at line 851 of file right_drawer_manager.cc.

References on_panel_width_changed_.

Referenced by SetDrawerWidth().

◆ PanelTypeKey()

std::string yaze::editor::RightDrawerManager::PanelTypeKey ( PanelType type)
staticprivate

Friends And Related Symbol Documentation

◆ RightDrawerManagerTestPeer

friend class RightDrawerManagerTestPeer
friend

Definition at line 346 of file right_drawer_manager.h.

Member Data Documentation

◆ active_panel_

◆ active_editor_type_

◆ agent_chat_width_

float yaze::editor::RightDrawerManager::agent_chat_width_ = gui::UIConfig::kPanelWidthAgentChat
private

◆ proposals_width_

float yaze::editor::RightDrawerManager::proposals_width_ = gui::UIConfig::kPanelWidthProposals
private

◆ settings_width_

float yaze::editor::RightDrawerManager::settings_width_ = gui::UIConfig::kPanelWidthSettings
private

◆ help_width_

float yaze::editor::RightDrawerManager::help_width_ = gui::UIConfig::kPanelWidthHelp
private

◆ notifications_width_

float yaze::editor::RightDrawerManager::notifications_width_ = gui::UIConfig::kPanelWidthNotifications
private

◆ properties_width_

float yaze::editor::RightDrawerManager::properties_width_ = gui::UIConfig::kPanelWidthProperties
private

◆ project_width_

float yaze::editor::RightDrawerManager::project_width_ = gui::UIConfig::kPanelWidthProject
private

◆ tool_output_width_

float yaze::editor::RightDrawerManager::tool_output_width_ = 460.0f
private

◆ agent_chat_

AgentChat* yaze::editor::RightDrawerManager::agent_chat_ = nullptr
private

◆ proposal_drawer_

ProposalDrawer* yaze::editor::RightDrawerManager::proposal_drawer_ = nullptr
private

◆ settings_panel_

SettingsPanel* yaze::editor::RightDrawerManager::settings_panel_ = nullptr
private

Definition at line 406 of file right_drawer_manager.h.

Referenced by DrawSettingsPanel(), SetSettingsPanel(), and settings_panel().

◆ shortcut_manager_

ShortcutManager* yaze::editor::RightDrawerManager::shortcut_manager_ = nullptr
private

Definition at line 407 of file right_drawer_manager.h.

Referenced by GetShortcutLabel(), and SetShortcutManager().

◆ properties_panel_

SelectionPropertiesPanel* yaze::editor::RightDrawerManager::properties_panel_ = nullptr
private

◆ project_panel_

ProjectManagementPanel* yaze::editor::RightDrawerManager::project_panel_ = nullptr
private

◆ toast_manager_

ToastManager* yaze::editor::RightDrawerManager::toast_manager_ = nullptr
private

◆ rom_

Rom* yaze::editor::RightDrawerManager::rom_ = nullptr
private

Definition at line 411 of file right_drawer_manager.h.

Referenced by DrawProposalsPanel(), and SetRom().

◆ tool_output_title_

std::string yaze::editor::RightDrawerManager::tool_output_title_
private

Definition at line 412 of file right_drawer_manager.h.

Referenced by Draw(), SetToolOutput(), and tool_output_title().

◆ tool_output_query_

std::string yaze::editor::RightDrawerManager::tool_output_query_
private

Definition at line 413 of file right_drawer_manager.h.

Referenced by DrawToolOutputPanel(), SetToolOutput(), and tool_output_query().

◆ tool_output_content_

std::string yaze::editor::RightDrawerManager::tool_output_content_
private

◆ tool_output_actions_

ToolOutputActions yaze::editor::RightDrawerManager::tool_output_actions_
private

Definition at line 415 of file right_drawer_manager.h.

Referenced by DrawToolOutputPanel(), and SetToolOutput().

◆ properties_locked_

bool yaze::editor::RightDrawerManager::properties_locked_ = false
private

Definition at line 418 of file right_drawer_manager.h.

Referenced by DrawHeaderContextBadge(), and DrawPanelHeader().

◆ panel_animation_

float yaze::editor::RightDrawerManager::panel_animation_ = 0.0f
private

◆ animation_target_

float yaze::editor::RightDrawerManager::animation_target_ = 0.0f
private

Definition at line 422 of file right_drawer_manager.h.

Referenced by CloseDrawer(), Draw(), OnHostVisibilityChanged(), and OpenDrawer().

◆ animating_

bool yaze::editor::RightDrawerManager::animating_ = false
private

Definition at line 423 of file right_drawer_manager.h.

Referenced by CloseDrawer(), Draw(), OnHostVisibilityChanged(), and OpenDrawer().

◆ closing_

bool yaze::editor::RightDrawerManager::closing_ = false
private

◆ closing_panel_

PanelType yaze::editor::RightDrawerManager::closing_panel_ = PanelType::kNone
private

◆ panel_size_limits_

std::unordered_map<std::string, PanelSizeLimits> yaze::editor::RightDrawerManager::panel_size_limits_
private

Definition at line 426 of file right_drawer_manager.h.

Referenced by GetPanelSizeLimits(), and SetPanelSizeLimits().

◆ on_panel_width_changed_

std::function<void(PanelType, float)> yaze::editor::RightDrawerManager::on_panel_width_changed_
private

The documentation for this class was generated from the following files: