!B (Sandbox) (CE-21795) Importing models with multisubmaterials via fbx switches...
[CRYENGINE.git] / Code / Sandbox / Plugins / EditorSchematyc2 / Editor / AddAbstractInterfaceImplementationDlg.h
blob5887e192299b7ab5d7389f59374751a43b70dc16
1 // Copyright 2001-2016 Crytek GmbH / Crytek Group. All rights reserved.
3 #pragma once
5 #include <CrySchematyc2/IAbstractInterface.h>
6 #include <CrySchematyc2/Script/IScriptFile.h>
8 namespace Schematyc2
10 typedef std::vector<SGUID> GUIDVector;
12 class CAddAbstractInterfaceImplementationDlg : public CDialog
14 DECLARE_MESSAGE_MAP()
16 public:
18 CAddAbstractInterfaceImplementationDlg(CWnd* pParent, CPoint pos, TScriptFile& scriptFile, const SGUID& objectGUID);
20 SGUID GetAbstractInterfaceImplementationGUID() const;
22 protected:
24 virtual BOOL OnInitDialog();
25 virtual void DoDataExchange(CDataExchange* pDX);
26 virtual void OnAbstractInterfacesCtrlSelChange();
27 virtual void OnOK();
29 private:
31 struct AbstractInterface
33 AbstractInterface();
34 AbstractInterface(const char* _name, EDomain _domain, const SGUID& _guid);
36 string name;
37 EDomain domain;
38 SGUID guid;
41 typedef std::vector<AbstractInterface> AbstractInterfaceVector;
43 EVisitStatus VisitScriptAbstractInterfaceImplementation(const IScriptAbstractInterfaceImplementation& abstractInterfaceImplementation);
44 EVisitStatus VisitEnvAbstractInterface(const IAbstractInterfaceConstPtr& pAbstractInterface);
45 void VisitScriptAbstractInterface(const TScriptFile& abstractInterfaceFile, const IScriptAbstractInterface& abstractInterface);
46 AbstractInterface GetAbstractInterface() const;
48 CPoint m_pos;
49 TScriptFile& m_scriptFile;
50 SGUID m_objectGUID;
51 GUIDVector m_exclusions;
52 AbstractInterfaceVector m_abstractInterfaces;
53 CListBox m_abstractInterfacesCtrl;
54 CStatic m_descriptionCtrl;
55 SGUID m_abstractInterfaceImplementationGUID;