VTFLib
A C and C++ API that, with a few simple functions, can open and save .vtf and .vmt files.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
VMTNode.h
1 /*
2  * VTFLib
3  * Copyright (C) 2005-2010 Neil Jedrzejewski & Ryan Gregg
4 
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later
9  * version.
10  */
11 
12 #ifndef VTFLIB_VMTNODE_H
13 #define VTFLIB_VMTNODE_H
14 
15 #include "stdafx.h"
16 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 typedef enum tagVMTNodeType
22 {
23  NODE_TYPE_GROUP = 0,
24  NODE_TYPE_GROUP_END,
25  NODE_TYPE_STRING,
26  NODE_TYPE_INTEGER,
27  NODE_TYPE_SINGLE,
28  NODE_TYPE_COUNT
29 } VMTNodeType;
30 
31 #ifdef __cplusplus
32 }
33 #endif
34 
35 namespace VTFLib
36 {
37  namespace Nodes
38  {
39  class CVMTGroupNode;
40 
41  class VTFLIB_API CVMTNode
42  {
43  private:
44  friend class CVMTGroupNode; // For direct parent setting.
45 
46  private:
47  vlChar *cName;
48  CVMTGroupNode *Parent;
49 
50  public:
51  CVMTNode(const vlChar *cName);
52  virtual ~CVMTNode();
53 
54  const vlChar *GetName() const;
55  vlVoid SetName(const vlChar *cName);
56 
57  CVMTGroupNode *GetParent();
58 
59  virtual VMTNodeType GetType() const = 0;
60  virtual CVMTNode *Clone() const = 0;
61  };
62  }
63 }
64 
65 #endif
char vlChar
Single signed character.
Definition: stdafx.h:51
Application framework header plus VTFLib custom data types.
void vlVoid
Void value.
Definition: stdafx.h:61