Ember
Loading...
Searching...
No Matches
LeftSidePanel.h
Go to the documentation of this file.
1#pragma once
2
4#include "Interfaces/ITab.h"
5#include <memory>
6#include <vector>
7#include <wx/aui/auibook.h>
8#include <wx/wx.h>
9
10class MainFrame; // Forward declaration
11
12// Forward declarations for EmberForge namespace
13namespace EmberForge {
14enum class TabType;
15}
16
25class LeftSidePanel : public SidePanel {
26 public:
27 LeftSidePanel(wxWindow *parent, MainFrame *mainFrame = nullptr);
28 virtual ~LeftSidePanel();
29
30 // Override pure virtual methods from SidePanel
31 wxString GetTitle() const override { return "Left Panel"; }
32 wxString GetPanelType() const override { return "LeftSide"; }
33
34 public:
35 // Override preferences and state management to use LeftPanel-specific settings
36 void ApplyPreferences() override;
37 void SaveState() override;
38 void RestoreState() override;
39
40 protected:
41 // Override settings accessor methods for common tab restoration logic
42 bool GetRememberLastTab() const override;
43 const std::vector<std::string> &GetLastOpenTabs() const override;
44 std::string GetLastActiveTab() const override;
45 std::string GetDefaultActiveTab() const override;
46
47 protected:
48 // Override hook methods to customize left panel behavior
49 void OnPanelSpecificSetup() override;
50 void OnAddTabButtonClicked(wxCommandEvent &event) override;
51 std::vector<EmberForge::TabType> GetSupportedTabTypes() const override;
52
53 private:
54 // Left panel specific event handlers
55 void OnAddPropertiesTab(wxCommandEvent &event);
56
57 // Left panel specific event IDs (offset from base)
59
61};
std::string GetLastActiveTab() const override
void OnAddTabButtonClicked(wxCommandEvent &event) override
const std::vector< std::string > & GetLastOpenTabs() const override
wxString GetTitle() const override
Returns the panel title.
void RestoreState() override
bool GetRememberLastTab() const override
virtual ~LeftSidePanel()
void OnPanelSpecificSetup() override
void ApplyPreferences() override
std::vector< EmberForge::TabType > GetSupportedTabTypes() const override
std::string GetDefaultActiveTab() const override
void SaveState() override
LeftSidePanel(wxWindow *parent, MainFrame *mainFrame=nullptr)
void OnAddPropertiesTab(wxCommandEvent &event)
wxString GetPanelType() const override
Returns the panel type identifier.
Main application window for EmberForge.
Definition MainFrame.h:67
SidePanel(wxWindow *parent, MainFrame *mainFrame=nullptr, const wxString &panelName="Side Panel", EmberForge::PanelType panelType=EmberForge::PanelType::LeftPanel, EmberForge::PanelDescriptor *parentDescriptor=nullptr)
TabType
Enumeration of available tab types.
Definition TabFactory.h:17