Ember
Loading...
Searching...
No Matches
ITab.h
Go to the documentation of this file.
1#pragma once
2
3#include <memory>
4#include <wx/wx.h>
5
7class ITab {
8 public:
9 virtual ~ITab() = default;
10
12 virtual wxWindow *GetWidget() = 0;
14 virtual wxString GetTitle() const = 0;
16 virtual wxString GetTabType() const = 0;
18 virtual wxBitmap GetIcon() const { return wxNullBitmap; }
19
21 virtual void Initialize() {}
23 virtual void Refresh() {}
25 virtual void OnActivated() {}
27 virtual void OnDeactivated() {}
29 virtual void OnClosed() {}
30
32 virtual bool IsValid() const { return true; }
34 virtual bool CanClose() const { return true; }
36 virtual bool CanMove() const { return true; }
37
39 virtual wxString SerializeState() const { return ""; }
41 virtual void DeserializeState(const wxString &state) {}
42
44 virtual bool HasUnsavedChanges() const { return false; }
46 virtual bool Save() { return true; }
47
49 virtual bool SupportsOperation(const wxString &operation) const { return false; }
51 virtual bool ExecuteOperation(const wxString &operation, const wxString &parameter = "") { return false; }
52};
53
54using ITabPtr = std::unique_ptr<ITab>;
std::unique_ptr< ITab > ITabPtr
Definition ITab.h:54
Interface for tab-based UI components in the application.
Definition ITab.h:7
virtual void OnDeactivated()
Called when the tab becomes inactive.
Definition ITab.h:27
virtual bool CanMove() const
Returns true if the tab can be moved/reordered.
Definition ITab.h:36
virtual bool CanClose() const
Returns true if the tab can be closed.
Definition ITab.h:34
virtual bool SupportsOperation(const wxString &operation) const
Returns true if the tab supports the given operation.
Definition ITab.h:49
virtual bool ExecuteOperation(const wxString &operation, const wxString &parameter="")
Executes an operation with optional parameter; returns true on success.
Definition ITab.h:51
virtual wxBitmap GetIcon() const
Returns the tab icon bitmap; defaults to null.
Definition ITab.h:18
virtual void DeserializeState(const wxString &state)
Restores tab state from a serialized string.
Definition ITab.h:41
virtual wxString GetTitle() const =0
Returns the display title of the tab.
virtual wxString SerializeState() const
Serializes tab state to a string for persistence.
Definition ITab.h:39
virtual bool Save()
Saves the tab content; returns true on success.
Definition ITab.h:46
virtual ~ITab()=default
virtual wxWindow * GetWidget()=0
Returns the wxWidgets window used as the tab content.
virtual void OnActivated()
Called when the tab becomes active.
Definition ITab.h:25
virtual void OnClosed()
Called when the tab is closed.
Definition ITab.h:29
virtual bool HasUnsavedChanges() const
Returns true if the tab has unsaved changes.
Definition ITab.h:44
virtual wxString GetTabType() const =0
Returns the tab type identifier.
virtual void Refresh()
Refreshes the tab content.
Definition ITab.h:23
virtual bool IsValid() const
Returns true if the tab is in a valid state.
Definition ITab.h:32
virtual void Initialize()
Called once when the tab is first created.
Definition ITab.h:21