// @(#)root/gl:$Id$
// Author:  Matevz Tadel, Jun 2007

/*************************************************************************
 * Copyright (C) 1995-2004, 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_TGLClipSetEditor
#define ROOT_TGLClipSetEditor

#ifndef ROOT_TGedFrame
#include "TGedFrame.h"
#endif
#ifndef ROOT_TGLUtil
#include "TGLUtil.h"
#endif

#include "TGLClip.h"

class TGButton;
class TGCheckButton;
class TGNumberEntry;
class TGButtonGroup;


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

protected:
   TGLClipSet       *fM;

   TGLClip::EType    fCurrentClip;
   TGButtonGroup    *fTypeButtons;

   TGCompositeFrame *fPlanePropFrame;
   TGNumberEntry    *fPlaneProp[4];

   TGCompositeFrame *fBoxPropFrame;
   TGNumberEntry    *fBoxProp[6];
   TGCheckButton    *fClipInside;
   TGCheckButton    *fAutoUpdate;
   TGCheckButton    *fClipEdit;
   TGCheckButton    *fClipShow;
   TGButton         *fApplyButton;
   TGButton         *fResetButton;

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

   void SetModel(TGLClipSet* m);

   void Changed(); //*SIGNAL*

   //Clipping manipulation
   void ClipValueChanged();
   void ClipTypeChanged(Int_t);
   void UpdateViewerClip();
   void ResetViewerClip();

   ClassDef(TGLClipSetSubEditor, 0); // Sub-editor for TGLClipSet.
};


class TGLClipSetEditor : public TGedFrame {

private:
   TGLClipSetEditor(const TGLClipSetEditor&);            // Not implemented
   TGLClipSetEditor& operator=(const TGLClipSetEditor&); // Not implemented

protected:
   TGLClipSet           *fM;  // fModel dynamic-casted to TGLClipSet
   TGLClipSetSubEditor  *fSE;

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

   virtual void SetModel(TObject* obj);

   ClassDef(TGLClipSetEditor, 0); // GUI editor for TGLClipSet.
};

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