00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef ROOT_TAttImage
00013 #define ROOT_TAttImage
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056 #ifndef ROOT_TObject
00057 #include "TObject.h"
00058 #endif
00059
00060 #ifndef ROOT_Riosfwd
00061 #include "Riosfwd.h"
00062 #endif
00063
00064 class TAttImage;
00065
00066
00067 class TPaletteEditor {
00068
00069 protected:
00070 TAttImage *fAttImage;
00071
00072 public:
00073 TPaletteEditor(TAttImage *attImage, UInt_t w, UInt_t h);
00074 virtual ~TPaletteEditor() { }
00075
00076 virtual void CloseWindow();
00077
00078 ClassDef(TPaletteEditor, 0)
00079 };
00080
00081
00082
00083 class TImagePalette : public TObject {
00084
00085 public:
00086 UInt_t fNumPoints;
00087 Double_t *fPoints;
00088 UShort_t *fColorRed;
00089 UShort_t *fColorGreen;
00090 UShort_t *fColorBlue;
00091 UShort_t *fColorAlpha;
00092
00093 TImagePalette();
00094 TImagePalette(const TImagePalette &palette);
00095 TImagePalette(UInt_t numPoints);
00096 TImagePalette(Int_t ncolors, Int_t *colors);
00097 virtual ~TImagePalette();
00098 virtual Int_t FindColor(UShort_t r, UShort_t g, UShort_t b);
00099 virtual Int_t *GetRootColors();
00100
00101 TImagePalette &operator=(const TImagePalette &palette);
00102
00103 ClassDef(TImagePalette,1)
00104 };
00105
00106
00107
00108 class TAttImage {
00109
00110 public:
00111
00112 enum EImageQuality {
00113 kImgDefault = -1,
00114 kImgPoor = 0,
00115 kImgFast = 1,
00116 kImgGood = 2,
00117 kImgBest = 3
00118 };
00119
00120 protected:
00121 EImageQuality fImageQuality;
00122 UInt_t fImageCompression;
00123 Bool_t fConstRatio;
00124 TImagePalette fPalette;
00125 TPaletteEditor *fPaletteEditor;
00126 Bool_t fPaletteEnabled;
00127
00128 public:
00129 TAttImage();
00130 TAttImage(EImageQuality lquality, UInt_t lcompression, Bool_t constRatio);
00131 virtual ~TAttImage();
00132
00133 void Copy(TAttImage &attline) const;
00134 Bool_t GetConstRatio() const { return fConstRatio; }
00135 UInt_t GetImageCompression() const { return fImageCompression; }
00136 EImageQuality GetImageQuality() const { return fImageQuality; }
00137 virtual const TImagePalette &GetPalette() const { return fPalette; }
00138
00139 virtual void ResetAttImage(Option_t *option="");
00140 virtual void SaveImageAttributes(ostream &out, const char *name,
00141 EImageQuality qualdef = kImgDefault,
00142 UInt_t comprdef = 0,
00143 Bool_t constRatiodef = kTRUE);
00144 virtual void SetConstRatio(Bool_t constRatio = kTRUE);
00145 virtual void SetPaletteEnabled(Bool_t on = kTRUE) { fPaletteEnabled = on; }
00146 virtual void SetImageCompression(UInt_t lcompression)
00147 { fImageCompression = (lcompression > 100) ? 100 : lcompression; }
00148 virtual void SetImageQuality(EImageQuality lquality)
00149 { fImageQuality = lquality;}
00150 virtual void SetPalette(const TImagePalette *palette);
00151 virtual void StartPaletteEditor();
00152 virtual void EditorClosed() { fPaletteEditor = 0; }
00153 Bool_t IsPaletteEnabled() const { return fPaletteEnabled; }
00154
00155 ClassDef(TAttImage,1)
00156 };
00157
00158
00159 R__EXTERN TImagePalette *gHistImagePalette;
00160 R__EXTERN TImagePalette *gWebImagePalette;
00161
00162
00163
00164 #endif