summaryrefslogtreecommitdiffstats
path: root/kpovmodeler/pmdetailobject.h
blob: 846ef8c08b44f5ebff34b1ca4cadc9940fa9b198 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
//-*-C++-*-
/*
**************************************************************************
                                 description
                             --------------------
    copyright            : (C) 2004 by Leon Pennington
    email                : leon@leonscape.co.uk
**************************************************************************

**************************************************************************
*                                                                        *
*  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 2 of the License, or     *
*  (at your option) any later version.                                   *
*                                                                        *
**************************************************************************/

#ifndef PMDETAILOBJECT_H
#define PMDETAILOBJECT_H

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include "pmnamedobject.h"

class PMDetailObject : public PMNamedObject
{
   typedef PMNamedObject Base;
public:
   /**
    * Creates an empty PMDetailObject
    */
   PMDetailObject( PMPart* part );
   /**
    * Copy constrctor
    */
   PMDetailObject( const PMDetailObject& o );
   /**
    * Deletes the object
    */
   virtual ~PMDetailObject();

   /** */
   virtual PMMetaObject* metaObject( ) const;
   /** */
   virtual void cleanUp( ) const;

   /** */
   virtual void serialize( TQDomElement& e, TQDomDocument& doc ) const;
   /** */
   virtual void readAttributes( const PMXMLHelper& h );

   /**
    * Returns true if the object has detail settings
    */
   virtual bool hasDisplayDetail( ) const { return false; }

   /**
    * Returns the current display detail
    */
   int displayDetail( ) const;

   /**
    * Sets the global detail flag
    */
   void setGlobalDetail( bool yes );
   /**
    * Returns the global detail flag
    */
   bool globalDetail( ) const { return m_globalDetail; }

   /**
    * Sets the local detail level
    */
   void setLocalDetailLevel( int level );
   /**
    * Returns the local detail level
    */
   int localDetailLevel( ) const { return m_localDetailLevel; }

   /**
    * Sets the global detail level
    */
   static void setGlobalDetailLevel( int level );
   /**
    * Returns the global detail level
    */
   static int globalDetailLevel( ) { return s_globalDetailLevel; }

   /** */
   virtual void restoreMemento( PMMemento* s );

protected:
   /**
    * Global parameter key
    */
   static int globalDetailKey( ) { return s_globalDetailKey; }

private:
   /**
    * IDs for @ref PMMementoData
    */
   enum PMNamedObjectMementoID { PMGlobalDetailID, PMLocalDetailLevelID };

   bool m_globalDetail;
   int m_localDetailLevel;

   static int s_globalDetailKey;
   static int s_globalDetailLevel;
   static PMMetaObject* s_pMetaObject;
};

#endif