// @(#)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.             *
 *************************************************************************/

#include "TEveLineEditor.h"
#include "TEveLine.h"

#include "TVirtualPad.h"
#include "TColor.h"

#include "TGLabel.h"
#include "TGButton.h"
#include "TGNumberEntry.h"
#include "TGColorSelect.h"
#include "TGDoubleSlider.h"

//==============================================================================
//==============================================================================
// TEveLineEditor
//==============================================================================

//______________________________________________________________________________
//
// Editor for TEveLine class.

ClassImp(TEveLineEditor);

//______________________________________________________________________________
TEveLineEditor::TEveLineEditor(const TGWindow *p, Int_t width, Int_t height,
                               UInt_t options, Pixel_t back) :
   TGedFrame  (p, width, height, options | kVerticalFrame, back),
   fM         (0),
   fRnrLine   (0),
   fRnrPoints (0),
   fSmooth    (0)
{
   // Constructor.

   fPriority = 20;
   {
      TGHorizontalFrame* f = new TGHorizontalFrame(this);

      fRnrPoints = new TGCheckButton(f, "Draw Marker");
      f->AddFrame(fRnrPoints, new TGLayoutHints(kLHintsLeft, 2,1,0,0));
      fRnrPoints->Connect("Toggled(Bool_t)"," TEveLineEditor", this, "DoRnrPoints()");

      fRnrLine  = new TGCheckButton(f, "Draw Line");
      f->AddFrame(fRnrLine, new TGLayoutHints(kLHintsLeft, 1,2,0,0));
      fRnrLine->Connect("Toggled(Bool_t)", "TEveLineEditor", this, "DoRnrLine()");

      AddFrame(f, new TGLayoutHints(kLHintsTop, 0,0,2,1));
   }
   fSmooth  = new TGCheckButton(this, "Smooth line");
   AddFrame(fSmooth, new TGLayoutHints(kLHintsNormal, 2,1,2,1));
   fSmooth->Connect("Toggled(Bool_t)", "TEveLineEditor", this, "DoSmooth()");
}

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

//______________________________________________________________________________
void TEveLineEditor::SetModel(TObject* obj)
{
   // Set model object.

   fM = dynamic_cast<TEveLine*>(obj);

   fRnrLine  ->SetState(fM->fRnrLine  ? kButtonDown : kButtonUp);
   fRnrPoints->SetState(fM->fRnrPoints ? kButtonDown : kButtonUp);
   fSmooth->SetState(fM->fSmooth ? kButtonDown : kButtonUp);
}

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

//______________________________________________________________________________
void TEveLineEditor::DoRnrLine()
{
   // Slot for RnrLine.

   fM->SetRnrLine(fRnrLine->IsOn());
   Update();
}

//______________________________________________________________________________
void TEveLineEditor::DoRnrPoints()
{
   // Slot for RnrPoints.

   fM->SetRnrPoints(fRnrPoints->IsOn());
   Update();
}

//______________________________________________________________________________
void TEveLineEditor::DoSmooth()
{
   // Slot for anti-alias.

   fM->SetSmooth(fSmooth->IsOn());
   Update();
}
 TEveLineEditor.cxx:1
 TEveLineEditor.cxx:2
 TEveLineEditor.cxx:3
 TEveLineEditor.cxx:4
 TEveLineEditor.cxx:5
 TEveLineEditor.cxx:6
 TEveLineEditor.cxx:7
 TEveLineEditor.cxx:8
 TEveLineEditor.cxx:9
 TEveLineEditor.cxx:10
 TEveLineEditor.cxx:11
 TEveLineEditor.cxx:12
 TEveLineEditor.cxx:13
 TEveLineEditor.cxx:14
 TEveLineEditor.cxx:15
 TEveLineEditor.cxx:16
 TEveLineEditor.cxx:17
 TEveLineEditor.cxx:18
 TEveLineEditor.cxx:19
 TEveLineEditor.cxx:20
 TEveLineEditor.cxx:21
 TEveLineEditor.cxx:22
 TEveLineEditor.cxx:23
 TEveLineEditor.cxx:24
 TEveLineEditor.cxx:25
 TEveLineEditor.cxx:26
 TEveLineEditor.cxx:27
 TEveLineEditor.cxx:28
 TEveLineEditor.cxx:29
 TEveLineEditor.cxx:30
 TEveLineEditor.cxx:31
 TEveLineEditor.cxx:32
 TEveLineEditor.cxx:33
 TEveLineEditor.cxx:34
 TEveLineEditor.cxx:35
 TEveLineEditor.cxx:36
 TEveLineEditor.cxx:37
 TEveLineEditor.cxx:38
 TEveLineEditor.cxx:39
 TEveLineEditor.cxx:40
 TEveLineEditor.cxx:41
 TEveLineEditor.cxx:42
 TEveLineEditor.cxx:43
 TEveLineEditor.cxx:44
 TEveLineEditor.cxx:45
 TEveLineEditor.cxx:46
 TEveLineEditor.cxx:47
 TEveLineEditor.cxx:48
 TEveLineEditor.cxx:49
 TEveLineEditor.cxx:50
 TEveLineEditor.cxx:51
 TEveLineEditor.cxx:52
 TEveLineEditor.cxx:53
 TEveLineEditor.cxx:54
 TEveLineEditor.cxx:55
 TEveLineEditor.cxx:56
 TEveLineEditor.cxx:57
 TEveLineEditor.cxx:58
 TEveLineEditor.cxx:59
 TEveLineEditor.cxx:60
 TEveLineEditor.cxx:61
 TEveLineEditor.cxx:62
 TEveLineEditor.cxx:63
 TEveLineEditor.cxx:64
 TEveLineEditor.cxx:65
 TEveLineEditor.cxx:66
 TEveLineEditor.cxx:67
 TEveLineEditor.cxx:68
 TEveLineEditor.cxx:69
 TEveLineEditor.cxx:70
 TEveLineEditor.cxx:71
 TEveLineEditor.cxx:72
 TEveLineEditor.cxx:73
 TEveLineEditor.cxx:74
 TEveLineEditor.cxx:75
 TEveLineEditor.cxx:76
 TEveLineEditor.cxx:77
 TEveLineEditor.cxx:78
 TEveLineEditor.cxx:79
 TEveLineEditor.cxx:80
 TEveLineEditor.cxx:81
 TEveLineEditor.cxx:82
 TEveLineEditor.cxx:83
 TEveLineEditor.cxx:84
 TEveLineEditor.cxx:85
 TEveLineEditor.cxx:86
 TEveLineEditor.cxx:87
 TEveLineEditor.cxx:88
 TEveLineEditor.cxx:89
 TEveLineEditor.cxx:90
 TEveLineEditor.cxx:91
 TEveLineEditor.cxx:92
 TEveLineEditor.cxx:93
 TEveLineEditor.cxx:94
 TEveLineEditor.cxx:95
 TEveLineEditor.cxx:96
 TEveLineEditor.cxx:97
 TEveLineEditor.cxx:98
 TEveLineEditor.cxx:99
 TEveLineEditor.cxx:100
 TEveLineEditor.cxx:101
 TEveLineEditor.cxx:102
 TEveLineEditor.cxx:103
 TEveLineEditor.cxx:104
 TEveLineEditor.cxx:105
 TEveLineEditor.cxx:106