Ember
Loading...
Searching...
No Matches
ProjectManagerDialog.h
Go to the documentation of this file.
1#pragma once
2
4#include <memory>
5#include <vector>
6#include <wx/listctrl.h>
7#include <wx/splitter.h>
8#include <wx/wx.h>
9
10// Forward declarations
11namespace EmberCore {
13}
14
25 public:
26 explicit ProjectManagerDialog(wxWindow *parent);
28
32 wxString GetSelectedProjectPath() const { return m_selectedPath; }
33
37 bool HasSelectedProject() const { return !m_selectedPath.IsEmpty(); }
38
39 private:
40 // UI Creation methods
41 void CreateLayout();
42
43 // Event handlers
44 void OnProjectSelected(wxListEvent &event);
45 void OnProjectActivated(wxListEvent &event);
46 void OnOpen(wxCommandEvent &event);
47 void OnBrowse(wxCommandEvent &event);
48 void OnNewProject(wxCommandEvent &event);
49 void OnRemoveFromRecent(wxCommandEvent &event);
50 void OnClearRecent(wxCommandEvent &event);
51 void OnCancel(wxCommandEvent &event);
52
53 // Helper methods
54 void LoadRecentProjects();
55 void UpdateProjectDetails(const wxString &projectPath);
57 void UpdateButtonStates();
58
59 private:
60 // Recent projects list
61 wxListCtrl *m_projectList;
62
63 // Details panel
64 wxStaticText *m_projectNameLabel;
65 wxStaticText *m_projectDescLabel;
66 wxStaticText *m_projectPathLabel;
67 wxStaticText *m_fileCountLabel;
68 wxStaticText *m_lastModifiedLabel;
69
70 // Buttons
71 wxButton *m_openBtn;
72 wxButton *m_browseBtn;
73 wxButton *m_newProjectBtn;
74 wxButton *m_removeBtn;
75 wxButton *m_clearBtn;
76 wxButton *m_cancelBtn;
77
78 // Selected project path
80
82
83 // Control IDs
85};
Represents a BehaviorTree project containing multiple XML resources.
DPI-aware dialog base class for scalable layouts.
void OnClearRecent(wxCommandEvent &event)
wxStaticText * m_projectPathLabel
void OnProjectSelected(wxListEvent &event)
wxStaticText * m_projectDescLabel
wxStaticText * m_lastModifiedLabel
void OnOpen(wxCommandEvent &event)
void UpdateProjectDetails(const wxString &projectPath)
void OnProjectActivated(wxListEvent &event)
wxString GetSelectedProjectPath() const
Get the selected project path (after dialog is closed with OK)
wxStaticText * m_projectNameLabel
bool HasSelectedProject() const
Check if a project was selected.
void OnBrowse(wxCommandEvent &event)
wxStaticText * m_fileCountLabel
ProjectManagerDialog(wxWindow *parent)
void OnCancel(wxCommandEvent &event)
void OnRemoveFromRecent(wxCommandEvent &event)
void OnNewProject(wxCommandEvent &event)
Main types header for EmberCore.