Ember
Loading...
Searching...
No Matches
IPanel.h
Go to the documentation of this file.
1#pragma once
2
3#include <memory>
4#include <wx/wx.h>
5
7class IPanel {
8 public:
9 virtual ~IPanel() = default;
10
12 virtual wxPanel *GetPanel() = 0;
14 virtual wxString GetTitle() const = 0;
16 virtual wxString GetPanelType() const = 0;
17
19 virtual void Initialize() {}
21 virtual void Refresh() {}
23 virtual void OnActivated() {}
25 virtual void OnDeactivated() {}
27 virtual void Cleanup() {}
28
30 virtual bool IsValid() const { return true; }
31
33 virtual wxString SerializeState() const { return ""; }
35 virtual void DeserializeState(const wxString &state) {}
36
38 virtual bool HasUnsavedChanges() const { return false; }
40 virtual bool Save() { return true; }
41
43 virtual bool SupportsOperation(const wxString &operation) const { return false; }
45 virtual bool ExecuteOperation(const wxString &operation, const wxString &parameter = "") { return false; }
46};
47
48using IPanelPtr = std::unique_ptr<IPanel>;
std::unique_ptr< IPanel > IPanelPtr
Definition IPanel.h:48
Interface for panel-based UI components in the application.
Definition IPanel.h:7
virtual bool SupportsOperation(const wxString &operation) const
Returns true if the panel supports the given operation.
Definition IPanel.h:43
virtual wxPanel * GetPanel()=0
Returns the wxPanel used as the panel content.
virtual wxString GetPanelType() const =0
Returns the panel type identifier.
virtual void DeserializeState(const wxString &state)
Restores panel state from a serialized string.
Definition IPanel.h:35
virtual bool ExecuteOperation(const wxString &operation, const wxString &parameter="")
Executes an operation with optional parameter; returns true on success.
Definition IPanel.h:45
virtual bool IsValid() const
Returns true if the panel is in a valid state.
Definition IPanel.h:30
virtual bool HasUnsavedChanges() const
Returns true if the panel has unsaved changes.
Definition IPanel.h:38
virtual void Refresh()
Refreshes the panel content.
Definition IPanel.h:21
virtual void Initialize()
Called once when the panel is first created.
Definition IPanel.h:19
virtual bool Save()
Saves the panel content; returns true on success.
Definition IPanel.h:40
virtual wxString SerializeState() const
Serializes panel state to a string for persistence.
Definition IPanel.h:33
virtual void OnActivated()
Called when the panel becomes active.
Definition IPanel.h:23
virtual void OnDeactivated()
Called when the panel becomes inactive.
Definition IPanel.h:25
virtual void Cleanup()
Called to release resources when the panel is no longer needed.
Definition IPanel.h:27
virtual ~IPanel()=default
virtual wxString GetTitle() const =0
Returns the display title of the panel.