Exteor/include/xtr/dialog/GenerateStructure.h

76 lines
1.6 KiB
C
Raw Normal View History

2024-06-07 20:30:06 +03:00
#pragma once
#include "xtr/ui/BuffRichEdit.h"
#include "xtr/ui/RSEdit.h"
#include "xtr/ui/RSListCtrl.h"
#include "xtr/doc/RSFacade.h"
namespace xtr::dialog {
//! Dialog: Create RSTerms from Typification
class Structure2Terms final : public CDialog {
struct ArgsHeader;
struct GlobalsHeader;
public:
VectorOfEntities addedCst{};
private:
doc::RSFacade& editor;
EntityUID activeUID{};
CString activeName;
CString inputExpr;
CString m_Interp;
ui::RSEdit inputCtrl{};
ui::BuffRichEdit textCtrl{};
ui::RSListCtrl globalsCtrl{};
ui::RSListCtrl argsCtrl{};
CComboBox nameCtrl{};
public:
Structure2Terms(doc::RSFacade& editor, EntityUID startID, CWnd* pParent = nullptr);
private:
void DoDataExchange(CDataExchange* pDX) override;
BOOL OnInitDialog() override;
void InitControls();
void InitHeaders();
void InitCstNameList();
void OnOK() override;
BOOL PreTranslateMessage(MSG* pMsg) override;
DECLARE_MESSAGE_MAP()
afx_msg void OnSelchangeTermCb();
afx_msg void OnBnClickedRight();
afx_msg void OnBnClickedLeft();
afx_msg void OnBnClickedApply();
afx_msg void OnDblClickList(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnItemActivateArgList(NMHDR *pNMHDR, LRESULT *pResult);
private:
void UpdateUI();
void InputArguments();
void Clear();
int AddTerms();
};
//! Dialog: Edit text definition
class GetInterpDialog final : public CDialog {
public:
CString textDef;
private:
ui::BuffRichEdit input;
public:
explicit GetInterpDialog(CString text, CWnd* pParent = nullptr);
private:
BOOL OnInitDialog() override;
void DoDataExchange(CDataExchange* pDX) override;
};
} // namespace xtr::dialog