diff --git a/CMakeLists.txt b/CMakeLists.txt index 9d72fc23..4ed2da22 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -73,7 +73,8 @@ set(VIEW_FILES src/view/src/rocprofvis_trace_view.cpp src/view/src/rocprofvis_line_track_item.cpp src/view/src/rocprofvis_timeline_view.cpp - src/view/src/rocprofvis_sidebar.cpp + src/view/src/rocprofvis_sidebar.cpp + src/view/src/rocprofvis_new_sidebar.cpp src/view/src/rocprofvis_view_module.cpp src/view/src/rocprofvis_data_provider.cpp src/view/src/rocprofvis_root_view.cpp diff --git a/src/view/src/rocprofvis_new_sidebar.cpp b/src/view/src/rocprofvis_new_sidebar.cpp new file mode 100644 index 00000000..b0f3a95f --- /dev/null +++ b/src/view/src/rocprofvis_new_sidebar.cpp @@ -0,0 +1,42 @@ +// Copyright Advanced Micro Devices, Inc. +// SPDX-License-Identifier: MIT + +#pragma once +#include "rocprofvis_new_sidebar.h" +#include "rocprofvis_track_topology.h" +#include "widgets/rocprofvis_widget.h" +#include "rocprofvis_settings_manager.h" + + +#include +#include + +namespace RocProfVis +{ +namespace View +{ + +NewSideBar::NewSideBar(std::shared_ptr topology, + std::shared_ptr timeline_selection, + std::shared_ptr> graphs, + DataProvider& dp) +: m_settings(SettingsManager::GetInstance()) +, m_track_topology(topology) +, m_timeline_selection(timeline_selection) +, m_graphs(graphs) +, m_data_provider(dp) +{} + +NewSideBar::~NewSideBar() {} + +void +NewSideBar::Render() +{} + +void +NewSideBar::Update() +{} + + +} // namespace View +} // namespace RocProfVis \ No newline at end of file diff --git a/src/view/src/rocprofvis_new_sidebar.h b/src/view/src/rocprofvis_new_sidebar.h new file mode 100644 index 00000000..82cfc4cf --- /dev/null +++ b/src/view/src/rocprofvis_new_sidebar.h @@ -0,0 +1,96 @@ +// Copyright Advanced Micro Devices, Inc. +// SPDX-License-Identifier: MIT + +#pragma once +#include "rocprofvis_track_topology.h" +#include "widgets/rocprofvis_widget.h" +#include "icons/rocprovfis_icon_defines.h" + +#include +#include + +namespace RocProfVis +{ +namespace View +{ + +class SettingsManager; +class TrackTopology; +class TimelineSelection; +class DataProvider; + +class SideBarButton +{ +public: + SideBarButton(const char* pressed_icon, const char* unpressed_icon) + : m_pressed_icon(pressed_icon) + , m_unpressed_icon(unpressed_icon) + {}; + ~SideBarButton() = default; + void Draw() ; +private: + const char* m_pressed_icon; + const char* m_unpressed_icon; + bool m_is_button_pressed; +}; + +class SidebarNode +{ +public: + SidebarNode() + : m_eye_button(ICON_EYE_SLASH, ICON_EYE) + {}; + virtual ~SidebarNode() = default; + virtual void Draw() = 0; + +private: + virtual void DrawButton() = 0; + virtual void DrawHeader() = 0; + SideBarButton m_eye_button; +}; + +class CommonNode : public SidebarNode +{ +public: + CommonNode() = default; + virtual ~CommonNode() = default; + + void Draw() override; + +private: + SideBarButton m_collapce_button; +}; + +class LeafNode : public SidebarNode +{ +public: + LeafNode() = default; + virtual ~LeafNode() = default; + + void Draw() override; + +private: +}; + + +class NewSideBar : public RocWidget +{ +public: + NewSideBar(std::shared_ptr topology, + std::shared_ptr timeline_selection, + std::shared_ptr> graphs, DataProvider& dp); + ~NewSideBar(); + virtual void Render() override; + virtual void Update() override; + +private: + + SettingsManager& m_settings; + std::shared_ptr m_track_topology; + std::shared_ptr m_timeline_selection; + std::shared_ptr> m_graphs; + DataProvider& m_data_provider; +}; + +} // namespace View +} // namespace RocProfVis \ No newline at end of file diff --git a/src/view/src/rocprofvis_track_topology.cpp b/src/view/src/rocprofvis_track_topology.cpp index d0cac609..cb0f6f62 100644 --- a/src/view/src/rocprofvis_track_topology.cpp +++ b/src/view/src/rocprofvis_track_topology.cpp @@ -71,7 +71,7 @@ TrackTopology::GetTopology() const } void -TrackTopology::UpdateTopology() +TrackTopology::UpdateTopology() //TODO: Fill my new provider class here { if(m_topology_dirty && m_data_provider.GetState() == ProviderState::kReady) {