25#ifndef PROJECT_TEMPLATE_SELECTOR_H
26#define PROJECT_TEMPLATE_SELECTOR_H
35#include <wx/filename.h>
36#include <wx/fswatcher.h>
37#include <wx/notebook.h>
39#include <wx/webview.h>
52 const wxString& aPath,
const wxString& aTitle,
const wxBitmap& aIcon );
57 void OnClick( wxMouseEvent& event );
59 void OnEnter( wxMouseEvent& event );
60 void OnLeave( wxMouseEvent& event );
97 void OnMouse( wxMouseEvent& event );
99 void OnSize( wxSizeEvent& event );
123 const wxString& aUserTemplatesPath,
124 const wxString& aSystemTemplatesPath,
125 const std::vector<wxString>& aRecentTemplates );
DIALOG_TEMPLATE_SELECTOR_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxString &title=_("Project Template Selector"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(900, 600), long style=wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
bool m_loadingExternalHtml
wxString ExtractDescription(const wxFileName &aHtmlFile)
void SetState(DialogState aState)
wxString m_systemTemplatesPath
void SelectTemplateByPath(const wxString &aPath)
void OnBackClicked(wxCommandEvent &event) override
PROJECT_TEMPLATE * m_selectedTemplate
TEMPLATE_WIDGET * m_selectedWidget
void LoadTemplatePreview(PROJECT_TEMPLATE *aTemplate)
DIALOG_TEMPLATE_SELECTOR(wxWindow *aParent, const wxPoint &aPos, const wxSize &aSize, const wxString &aUserTemplatesPath, const wxString &aSystemTemplatesPath, const std::vector< wxString > &aRecentTemplates)
void OnSearchCtrl(wxCommandEvent &event) override
void OnFileSystemEvent(wxFileSystemWatcherEvent &event)
void OnSearchCtrlCancel(wxCommandEvent &event) override
void OnWebViewLoaded(wxWebViewEvent &event)
wxString m_userTemplatesPath
WEBVIEW_PANEL * m_webviewPanel
void OnFilterChanged(wxCommandEvent &event) override
PROJECT_TEMPLATE * GetSelectedTemplate()
void EnsureWebViewCreated()
void RefreshTemplateList()
~DIALOG_TEMPLATE_SELECTOR()
std::vector< TEMPLATE_WIDGET * > m_templateWidgets
void OnRefreshTimer(wxTimerEvent &event)
void OnScrolledTemplatesSize(wxSizeEvent &event)
void SetProjectToEdit(const wxString &aPath)
void SetWidget(TEMPLATE_WIDGET *aWidget)
std::vector< TEMPLATE_MRU_WIDGET * > m_mruWidgets
void OnSysColourChanged(wxSysColourChangedEvent &event)
void OnSearchTimer(wxTimerEvent &event)
wxString GetUserTemplatesPath() const
wxFileSystemWatcher * m_watcher
std::vector< std::unique_ptr< PROJECT_TEMPLATE > > m_templates
wxString GetProjectToEdit() const
std::vector< wxString > m_recentTemplates
A class which provides project template functionality.
#define wxFileSystemWatcher