// @(#)root/eve:$Id$
// Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007

/*************************************************************************
 * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifndef ROOT_TEveRGBAPaletteEditor
#define ROOT_TEveRGBAPaletteEditor

#include "TGedFrame.h"

class TGCheckButton;
class TGColorSelect;
class TGComboBox;

class TEveRGBAPalette;
class TEveGValuator;
class TEveGDoubleValuator;

class TEveRGBAPaletteSubEditor : public TGVerticalFrame
{
private:
   TEveRGBAPaletteSubEditor(const TEveRGBAPaletteSubEditor&);            // Not implemented
   TEveRGBAPaletteSubEditor& operator=(const TEveRGBAPaletteSubEditor&); // Not implemented

protected:
   TEveRGBAPalette      *fM;

   TGComboBox           *fUnderflowAction;
   TGColorSelect        *fUnderColor;
   TGComboBox           *fOverflowAction;
   TGColorSelect        *fOverColor;

   TEveGDoubleValuator  *fMinMax;
   Double_t              fOldMin;
   Double_t              fOldMax;

   TGCheckButton        *fInterpolate;
   TGCheckButton        *fShowDefValue;
   TGColorSelect        *fDefaultColor;
   TGCheckButton        *fFixColorRange;

public:
   TEveRGBAPaletteSubEditor(const TGWindow* p);
   virtual ~TEveRGBAPaletteSubEditor() {}

   void SetModel(TEveRGBAPalette* p);

   void Changed(); //*SIGNAL*

   void DoMinMax();

   void DoInterpolate();
   void DoShowDefValue();
   void DoDefaultColor(Pixel_t color);
   void DoFixColorRange();
   void DoUnderColor(Pixel_t color);
   void DoOverColor(Pixel_t color);
   void DoUnderflowAction(Int_t mode);
   void DoOverflowAction(Int_t mode);

   ClassDef(TEveRGBAPaletteSubEditor, 1); // Sub-editor for TEveRGBAPalette class.
};


/******************************************************************************/
/******************************************************************************/

class TEveRGBAPaletteEditor : public TGedFrame
{
private:
   TEveRGBAPaletteEditor(const TEveRGBAPaletteEditor&);            // Not implemented
   TEveRGBAPaletteEditor& operator=(const TEveRGBAPaletteEditor&); // Not implemented

protected:
   TEveRGBAPalette           *fM;
   TEveRGBAPaletteSubEditor  *fSE;

public:
   TEveRGBAPaletteEditor(const TGWindow* p=0, Int_t width=170, Int_t height=30, UInt_t options = kChildFrame, Pixel_t back=GetDefaultFrameBackground());
   virtual ~TEveRGBAPaletteEditor() {}

   virtual void SetModel(TObject* obj);

   ClassDef(TEveRGBAPaletteEditor, 1); // Editor for TEveRGBAPalette class.
};

#endif
 TEveRGBAPaletteEditor.h:1
 TEveRGBAPaletteEditor.h:2
 TEveRGBAPaletteEditor.h:3
 TEveRGBAPaletteEditor.h:4
 TEveRGBAPaletteEditor.h:5
 TEveRGBAPaletteEditor.h:6
 TEveRGBAPaletteEditor.h:7
 TEveRGBAPaletteEditor.h:8
 TEveRGBAPaletteEditor.h:9
 TEveRGBAPaletteEditor.h:10
 TEveRGBAPaletteEditor.h:11
 TEveRGBAPaletteEditor.h:12
 TEveRGBAPaletteEditor.h:13
 TEveRGBAPaletteEditor.h:14
 TEveRGBAPaletteEditor.h:15
 TEveRGBAPaletteEditor.h:16
 TEveRGBAPaletteEditor.h:17
 TEveRGBAPaletteEditor.h:18
 TEveRGBAPaletteEditor.h:19
 TEveRGBAPaletteEditor.h:20
 TEveRGBAPaletteEditor.h:21
 TEveRGBAPaletteEditor.h:22
 TEveRGBAPaletteEditor.h:23
 TEveRGBAPaletteEditor.h:24
 TEveRGBAPaletteEditor.h:25
 TEveRGBAPaletteEditor.h:26
 TEveRGBAPaletteEditor.h:27
 TEveRGBAPaletteEditor.h:28
 TEveRGBAPaletteEditor.h:29
 TEveRGBAPaletteEditor.h:30
 TEveRGBAPaletteEditor.h:31
 TEveRGBAPaletteEditor.h:32
 TEveRGBAPaletteEditor.h:33
 TEveRGBAPaletteEditor.h:34
 TEveRGBAPaletteEditor.h:35
 TEveRGBAPaletteEditor.h:36
 TEveRGBAPaletteEditor.h:37
 TEveRGBAPaletteEditor.h:38
 TEveRGBAPaletteEditor.h:39
 TEveRGBAPaletteEditor.h:40
 TEveRGBAPaletteEditor.h:41
 TEveRGBAPaletteEditor.h:42
 TEveRGBAPaletteEditor.h:43
 TEveRGBAPaletteEditor.h:44
 TEveRGBAPaletteEditor.h:45
 TEveRGBAPaletteEditor.h:46
 TEveRGBAPaletteEditor.h:47
 TEveRGBAPaletteEditor.h:48
 TEveRGBAPaletteEditor.h:49
 TEveRGBAPaletteEditor.h:50
 TEveRGBAPaletteEditor.h:51
 TEveRGBAPaletteEditor.h:52
 TEveRGBAPaletteEditor.h:53
 TEveRGBAPaletteEditor.h:54
 TEveRGBAPaletteEditor.h:55
 TEveRGBAPaletteEditor.h:56
 TEveRGBAPaletteEditor.h:57
 TEveRGBAPaletteEditor.h:58
 TEveRGBAPaletteEditor.h:59
 TEveRGBAPaletteEditor.h:60
 TEveRGBAPaletteEditor.h:61
 TEveRGBAPaletteEditor.h:62
 TEveRGBAPaletteEditor.h:63
 TEveRGBAPaletteEditor.h:64
 TEveRGBAPaletteEditor.h:65
 TEveRGBAPaletteEditor.h:66
 TEveRGBAPaletteEditor.h:67
 TEveRGBAPaletteEditor.h:68
 TEveRGBAPaletteEditor.h:69
 TEveRGBAPaletteEditor.h:70
 TEveRGBAPaletteEditor.h:71
 TEveRGBAPaletteEditor.h:72
 TEveRGBAPaletteEditor.h:73
 TEveRGBAPaletteEditor.h:74
 TEveRGBAPaletteEditor.h:75
 TEveRGBAPaletteEditor.h:76
 TEveRGBAPaletteEditor.h:77
 TEveRGBAPaletteEditor.h:78
 TEveRGBAPaletteEditor.h:79
 TEveRGBAPaletteEditor.h:80
 TEveRGBAPaletteEditor.h:81
 TEveRGBAPaletteEditor.h:82
 TEveRGBAPaletteEditor.h:83
 TEveRGBAPaletteEditor.h:84
 TEveRGBAPaletteEditor.h:85
 TEveRGBAPaletteEditor.h:86
 TEveRGBAPaletteEditor.h:87
 TEveRGBAPaletteEditor.h:88
 TEveRGBAPaletteEditor.h:89
 TEveRGBAPaletteEditor.h:90
 TEveRGBAPaletteEditor.h:91
 TEveRGBAPaletteEditor.h:92
 TEveRGBAPaletteEditor.h:93