CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
FWColorManager.h
Go to the documentation of this file.
1 #ifndef Fireworks_Core_FWColorManager_h
2 #define Fireworks_Core_FWColorManager_h
3 // -*- C++ -*-
4 //
5 // Package: Core
6 // Class : FWColorManager
7 //
16 //
17 // Original Author: Chris Jones
18 // Created: Tue Mar 24 10:07:58 CET 2009
19 // $Id: FWColorManager.h,v 1.25 2010/09/21 11:39:03 amraktad Exp $
20 //
21 
22 // system include files
23 #include <vector>
24 #include "sigc++/signal.h"
25 #include "Rtypes.h"
26 
27 // user include files
28 
29 // forward declarations
31 class TGLViewer;
32 
34 {
42 };
43 
44 
46 {
47 public:
49  virtual ~FWColorManager();
50 
51  void initialize();
52 
53  // ---------- const member functions ---------------------
54  Color_t background() const {return m_background;}
55  Color_t foreground() const {return m_foreground;}
56  Bool_t isColorSetDark() const {return m_background == kBlackIndex;}
57  Bool_t isColorSetLight() const {return m_background == kWhiteIndex;}
58 
62 
63  void fillLimitedColors(std::vector<Color_t>& cv) const;
64 
65  //help with backward compatibility with old config files
66  Color_t oldColorToIndex(Color_t, int version) const;
67 
68  bool colorHasIndex(Color_t) const;
69 
70  Color_t geomColor(FWGeomColorIndex) const;
71 
72  enum BackgroundColorIndex { kWhiteIndex = kWhite, kBlackIndex = kBlack };
73 
75 
76  // ---------- static member functions --------------------
77 
78  static Bool_t setColorSetViewer(TGLViewer*, Color_t);
79 
80  static Color_t getDefaultStartColorIndex();
81 
82  // ---------- member functions ---------------------------
83 
84  void defaultBrightness();
85  void setBrightness(int);
86  int brightness ();
89  void switchBackground();
90 
91  void setGeomColor(FWGeomColorIndex, Color_t);
92  void setGeomTransparency(Color_t idx, bool projectedType);
93  Color_t geomTransparency(bool projected) const { return projected ? m_geomTransparency2D : m_geomTransparency3D; }
94 
95  mutable sigc::signal<void> colorsHaveChanged_;
96  mutable sigc::signal<void> geomColorsHaveChanged_;
97  mutable sigc::signal<void, bool> geomTransparencyHaveChanged_;
98 
99  //called after all the slots attached to colorsHaveChanged_ are done
100  mutable sigc::signal<void> colorsHaveChangedFinished_;
101 
102 private:
103  FWColorManager(const FWColorManager&); // stop default
104 
105  const FWColorManager& operator=(const FWColorManager&); // stop default
106  void updateColors();
107 
108  // ---------- member data --------------------------------
109 
110  Float_t m_gammaOff;
111 
112  Color_t m_background;
113  Color_t m_foreground;
115 
118 
122 
123  static const Color_t s_defaultStartColorIndex;
124 };
125 
126 
127 #endif
Bool_t isColorSetLight() const
sigc::signal< void > geomColorsHaveChanged_
Color_t background() const
int offsetOfLimitedColors() const
Color_t geomTransparency(bool projected) const
FWGeomColorIndex
static Color_t getDefaultStartColorIndex()
void fillLimitedColors(std::vector< Color_t > &cv) const
Color_t oldColorToIndex(Color_t, int version) const
int borderOfLimitedColors() const
sigc::signal< void, bool > geomTransparencyHaveChanged_
Bool_t isColorSetDark() const
bool colorHasIndex(Color_t) const
void setGeomColor(FWGeomColorIndex, Color_t)
void setBackgroundColorIndex(BackgroundColorIndex)
virtual ~FWColorManager()
void setGeomTransparency(Color_t idx, bool projectedType)
Char_t m_geomTransparency2D
FWModelChangeManager * m_changeManager
sigc::signal< void > colorsHaveChangedFinished_
const FWColorManager & operator=(const FWColorManager &)
Char_t m_geomTransparency3D
void defaultBrightness()
Color_t m_numColorIndices
Color_t m_foreground
BackgroundColorIndex backgroundColorIndex() const
Color_t m_geomColor[kFWGeomColorSize]
void setBrightness(int)
static const Color_t s_defaultStartColorIndex
void setBackgroundAndBrightness(BackgroundColorIndex, int)
Color_t foreground() const
static Bool_t setColorSetViewer(TGLViewer *, Color_t)
FWColorManager(FWModelChangeManager *)
Color_t m_startColorIndex
sigc::signal< void > colorsHaveChanged_
Color_t m_background
Color_t geomColor(FWGeomColorIndex) const
int numberOfLimitedColors() const