ardour
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
libs
pbd
pbd
property_list.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2010 Paul Davis
3
4
This program is free software; you can redistribute it and/or modify
5
it under the terms of the GNU General Public License as published by
6
the Free Software Foundation; either version 2 of the License, or
7
(at your option) any later version.
8
9
This program is distributed in the hope that it will be useful,
10
but WITHOUT ANY WARRANTY; without even the implied warranty of
11
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
GNU General Public License for more details.
13
14
You should have received a copy of the GNU General Public License
15
along with this program; if not, write to the Free Software
16
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17
18
*/
19
20
#ifndef __pbd_property_list_h__
21
#define __pbd_property_list_h__
22
23
#include <map>
24
25
#include "
pbd/libpbd_visibility.h
"
26
#include "
pbd/property_basics.h
"
27
28
class
XMLNode
;
29
30
namespace
PBD
{
31
33
class
LIBPBD_API
PropertyList
:
public
std::map<PropertyID, PropertyBase*>
34
{
35
public
:
36
PropertyList
();
37
PropertyList
(
PropertyList
const
&);
38
39
virtual
~
PropertyList
();
40
41
void
get_changes_as_xml (
XMLNode
*);
42
void
invert ();
43
47
bool
add (
PropertyBase
* prop);
48
49
/* Code that is constructing a property list for use
50
* in setting the state of an object uses this.
51
*
52
* Defined below, once we have Property<T>
53
*/
54
template
<
typename
T,
typename
V>
bool
add (
PropertyDescriptor<T>
pid,
const
V& v);
55
56
protected
:
57
bool
_property_owner
;
58
};
59
65
class
LIBPBD_API
OwnedPropertyList
:
public
PropertyList
66
{
67
public
:
68
OwnedPropertyList
();
69
70
/* Classes that own property lists use this to add their
71
* property members to their plists. Note that it takes
72
* a reference argument rather than a pointer like
73
* one of the add() methods in PropertyList.
74
*/
75
bool
add (
PropertyBase
& p);
76
};
77
78
}
79
80
#endif
/* __pbd_property_list_h__ */
PBD::OwnedPropertyList
Definition:
property_list.h:65
LIBPBD_API
#define LIBPBD_API
Definition:
libpbd_visibility.h:52
PBD::PropertyDescriptor
Definition:
property_basics.h:41
property_basics.h
PBD::PropertyList::_property_owner
bool _property_owner
Definition:
property_list.h:57
PBD::PropertyBase
Definition:
property_basics.h:88
PBD::PropertyList
class LIBPBD_API PropertyList
Definition:
property_basics.h:34
XMLNode
Definition:
xml++.h:95
PBD
Definition:
debug.h:30
libpbd_visibility.h
PBD::PropertyList
Definition:
property_list.h:33
Generated on Sun May 24 2015 12:15:08 for ardour by
1.8.8