CNC_TS_and_RA2_Mission_Editor/MissionEditor/ViewObjects.h
2024-04-10 21:39:22 -04:00

118 lines
3.3 KiB
C++

/*
FinalSun/FinalAlert 2 Mission Editor
Copyright (C) 1999-2024 Electronic Arts, Inc.
Authored by Matthias Wagner
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#if !defined(AFX_VIEWOBJECTS_H__360F4320_9B82_11D3_B63B_EC44EDA1D441__INCLUDED_)
#define AFX_VIEWOBJECTS_H__360F4320_9B82_11D3_B63B_EC44EDA1D441__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// ViewObjects.h : Header-Datei
//
#include <afxcview.h>
#define MAKE_MASK(refVal) 1 << static_cast<int>(refVal)
enum class TreeViewTechnoType {
Set_None = -1,
Building = 0,
Infantry,
Vehicle,
Aircraft,
_Last,
_First = 0,
Count = _Last,
};
enum class TechnoTypeMask
{
ForBuilding = MAKE_MASK(TreeViewTechnoType::Building),
ForInfantry = MAKE_MASK(TreeViewTechnoType::Infantry),
ForVehicle = MAKE_MASK(TreeViewTechnoType::Vehicle),
ForAircraft = MAKE_MASK(TreeViewTechnoType::Aircraft),
};
inline bool operator&(TechnoTypeMask lhs, TechnoTypeMask rhs)
{
return static_cast<int>(lhs) & static_cast<int>(rhs);
}
inline bool operator&(TechnoTypeMask lhs, TreeViewTechnoType rhs)
{
return lhs & static_cast<TechnoTypeMask>(MAKE_MASK(rhs));
}
inline bool operator&(TreeViewTechnoType lhs, TechnoTypeMask rhs)
{
return rhs & static_cast<TechnoTypeMask>(MAKE_MASK(lhs));
}
/////////////////////////////////////////////////////////////////////////////
// Ansicht CViewObjects
class CViewObjects : public CTreeView
{
protected:
CViewObjects(); // Dynamische Erstellung verwendet geschützten Konstruktor
DECLARE_DYNCREATE(CViewObjects)
// Attribute
public:
// Operationen
public:
CTreeCtrl* tree;
BOOL m_ready;
void UpdateDialog();
// Überschreibungen
// Vom Klassen-Assistenten generierte virtuelle Funktionsüberschreibungen
//{{AFX_VIRTUAL(CViewObjects)
public:
virtual void OnInitialUpdate();
protected:
virtual void OnDraw(CDC* pDC); // Überschrieben zum Zeichnen dieser Ansicht
//}}AFX_VIRTUAL
// Implementierung
protected:
virtual ~CViewObjects();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
// Generierte Nachrichtenzuordnungsfunktionen
protected:
//{{AFX_MSG(CViewObjects)
afx_msg void OnSelchanged(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnKeydown(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
private:
void HandleBrushSize(int iTile);
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ fügt unmittelbar vor der vorhergehenden Zeile zusätzliche Deklarationen ein.
#endif // AFX_VIEWOBJECTS_H__360F4320_9B82_11D3_B63B_EC44EDA1D441__INCLUDED_