yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
yaze::gui::canvas::CanvasUsageTracker Class Reference

Canvas usage tracking and analysis system. More...

#include <canvas_usage_tracker.h>

Collaboration diagram for yaze::gui::canvas::CanvasUsageTracker:

Public Member Functions

 CanvasUsageTracker ()=default
 
void Initialize (const std::string &canvas_id)
 Initialize the usage tracker.
 
void SetUsageMode (CanvasUsage usage)
 Set the current usage mode.
 
void RecordInteraction (CanvasInteraction interaction, const std::string &details="")
 Record an interaction.
 
void RecordOperation (const std::string &operation_name, double time_ms)
 Record operation timing.
 
void UpdateCanvasState (const ImVec2 &canvas_size, const ImVec2 &content_size, float global_scale, float grid_step, bool enable_grid, bool enable_hex_labels, bool enable_custom_labels)
 Update canvas state.
 
const CanvasUsageStatsGetCurrentStats () const
 Get current usage statistics.
 
const std::vector< CanvasUsageStats > & GetUsageHistory () const
 Get usage history.
 
std::string GetUsageModeName (CanvasUsage usage) const
 Get usage mode name.
 
ImVec4 GetUsageModeColor (CanvasUsage usage) const
 Get usage mode color for UI.
 
std::vector< std::string > GetUsageRecommendations () const
 Get usage recommendations.
 
std::string ExportUsageReport () const
 Export usage report.
 
void ClearHistory ()
 Clear usage history.
 
void StartSession ()
 Start session.
 
void EndSession ()
 End session.
 

Private Member Functions

void UpdateActiveTime ()
 
void UpdateIdleTime ()
 
void SaveCurrentStats ()
 
double CalculateAverageOperationTime (const std::string &operation_name) const
 
std::string FormatDuration (const std::chrono::milliseconds &duration) const
 

Private Attributes

std::string canvas_id_
 
CanvasUsageStats current_stats_
 
std::vector< CanvasUsageStatsusage_history_
 
std::chrono::steady_clock::time_point last_activity_
 
std::chrono::steady_clock::time_point session_start_
 
std::vector< std::pair< CanvasInteraction, std::string > > interaction_history_
 
std::unordered_map< std::string, std::vector< double > > operation_times_
 

Detailed Description

Canvas usage tracking and analysis system.

Definition at line 98 of file canvas_usage_tracker.h.

Constructor & Destructor Documentation

◆ CanvasUsageTracker()

yaze::gui::canvas::CanvasUsageTracker::CanvasUsageTracker ( )
default

Member Function Documentation

◆ Initialize()

void yaze::gui::canvas::CanvasUsageTracker::Initialize ( const std::string &  canvas_id)

Initialize the usage tracker.

Definition at line 14 of file canvas_usage_tracker.cc.

References canvas_id_, current_stats_, last_activity_, yaze::gui::canvas::CanvasUsageStats::Reset(), yaze::gui::canvas::CanvasUsageStats::session_start, and session_start_.

Here is the call graph for this function:

◆ SetUsageMode()

void yaze::gui::canvas::CanvasUsageTracker::SetUsageMode ( CanvasUsage  usage)

◆ RecordInteraction()

◆ RecordOperation()

void yaze::gui::canvas::CanvasUsageTracker::RecordOperation ( const std::string &  operation_name,
double  time_ms 
)

◆ UpdateCanvasState()

void yaze::gui::canvas::CanvasUsageTracker::UpdateCanvasState ( const ImVec2 &  canvas_size,
const ImVec2 &  content_size,
float  global_scale,
float  grid_step,
bool  enable_grid,
bool  enable_hex_labels,
bool  enable_custom_labels 
)

◆ GetCurrentStats()

const CanvasUsageStats & yaze::gui::canvas::CanvasUsageTracker::GetCurrentStats ( ) const
inline

Get current usage statistics.

Definition at line 138 of file canvas_usage_tracker.h.

References current_stats_.

◆ GetUsageHistory()

const std::vector< CanvasUsageStats > & yaze::gui::canvas::CanvasUsageTracker::GetUsageHistory ( ) const
inline

Get usage history.

Definition at line 143 of file canvas_usage_tracker.h.

References usage_history_.

◆ GetUsageModeName()

◆ GetUsageModeColor()

◆ GetUsageRecommendations()

◆ ExportUsageReport()

◆ ClearHistory()

void yaze::gui::canvas::CanvasUsageTracker::ClearHistory ( )

◆ StartSession()

void yaze::gui::canvas::CanvasUsageTracker::StartSession ( )

◆ EndSession()

void yaze::gui::canvas::CanvasUsageTracker::EndSession ( )

◆ UpdateActiveTime()

void yaze::gui::canvas::CanvasUsageTracker::UpdateActiveTime ( )
private

◆ UpdateIdleTime()

void yaze::gui::canvas::CanvasUsageTracker::UpdateIdleTime ( )
private

◆ SaveCurrentStats()

◆ CalculateAverageOperationTime()

double yaze::gui::canvas::CanvasUsageTracker::CalculateAverageOperationTime ( const std::string &  operation_name) const
private

Definition at line 313 of file canvas_usage_tracker.cc.

References operation_times_.

Referenced by ExportUsageReport().

◆ FormatDuration()

std::string yaze::gui::canvas::CanvasUsageTracker::FormatDuration ( const std::chrono::milliseconds &  duration) const
private

Definition at line 327 of file canvas_usage_tracker.cc.

Referenced by EndSession(), and ExportUsageReport().

Member Data Documentation

◆ canvas_id_

std::string yaze::gui::canvas::CanvasUsageTracker::canvas_id_
private

Definition at line 181 of file canvas_usage_tracker.h.

Referenced by EndSession(), ExportUsageReport(), Initialize(), and SetUsageMode().

◆ current_stats_

◆ usage_history_

std::vector<CanvasUsageStats> yaze::gui::canvas::CanvasUsageTracker::usage_history_
private

Definition at line 183 of file canvas_usage_tracker.h.

Referenced by ClearHistory(), GetUsageHistory(), and SaveCurrentStats().

◆ last_activity_

std::chrono::steady_clock::time_point yaze::gui::canvas::CanvasUsageTracker::last_activity_
private

◆ session_start_

std::chrono::steady_clock::time_point yaze::gui::canvas::CanvasUsageTracker::session_start_
private

◆ interaction_history_

std::vector<std::pair<CanvasInteraction, std::string> > yaze::gui::canvas::CanvasUsageTracker::interaction_history_
private

Definition at line 188 of file canvas_usage_tracker.h.

Referenced by ClearHistory(), and RecordInteraction().

◆ operation_times_

std::unordered_map<std::string, std::vector<double> > yaze::gui::canvas::CanvasUsageTracker::operation_times_
private

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