e280ae86d6
* split _WIN32 and _MSC_VER, lowercase includes
76 lines
1.5 KiB
C++
76 lines
1.5 KiB
C++
#pragma once
|
|
|
|
#ifndef T_DATA_INCLUDED
|
|
#define T_DATA_INCLUDED
|
|
|
|
#include "tsmartpointer.h"
|
|
#include "tfilepath.h"
|
|
|
|
#undef DVAPI
|
|
#undef DVVAR
|
|
#ifdef TNZCORE_EXPORTS
|
|
#define DVAPI DV_EXPORT_API
|
|
#define DVVAR DV_EXPORT_VAR
|
|
#else
|
|
#define DVAPI DV_IMPORT_API
|
|
#define DVVAR DV_IMPORT_VAR
|
|
#endif
|
|
|
|
//-------------------------------------------------------------------
|
|
|
|
class TData;
|
|
#ifdef _WIN32
|
|
template class DVAPI TSmartPointerT<TData>;
|
|
#endif
|
|
|
|
typedef TSmartPointerT<TData> TDataP;
|
|
|
|
//-------------------------------------------------------------------
|
|
class DVAPI TData : public TSmartObject {
|
|
DECLARE_CLASS_CODE
|
|
|
|
protected:
|
|
TData() : TSmartObject(m_classCode) {}
|
|
|
|
public:
|
|
virtual TDataP clone() const = 0;
|
|
};
|
|
|
|
//-------------------------------------------------------------------
|
|
|
|
class DVAPI TTextData final : public TData {
|
|
TString m_text;
|
|
|
|
public:
|
|
TTextData(TString text) : m_text(text) {}
|
|
TTextData(std::string text);
|
|
|
|
TDataP clone() const override;
|
|
|
|
TString getText() const { return m_text; }
|
|
};
|
|
|
|
//-------------------------------------------------------------------
|
|
|
|
#ifdef _MSC_VER
|
|
#pragma warning(push)
|
|
#pragma warning(disable : 4251)
|
|
#endif
|
|
|
|
class DVAPI TFilePathListData final : public TData {
|
|
std::vector<TFilePath> m_filePaths;
|
|
|
|
public:
|
|
TFilePathListData(const std::vector<TFilePath> &filePaths)
|
|
: m_filePaths(filePaths) {}
|
|
TDataP clone() const override;
|
|
|
|
int getFilePathCount() const { return m_filePaths.size(); }
|
|
TFilePath getFilePath(int i) const;
|
|
};
|
|
|
|
#ifdef _MSC_VER
|
|
#pragma warning(pop)
|
|
#endif
|
|
|
|
#endif
|