ROOT logo
// @(#)root/meta:$Id: TToggleGroup.cxx 26606 2008-12-02 20:36:09Z pcanal $
// Author: Piotr Golonka   31/07/97

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

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TToggleGroup                                                         //
//                                                                      //
// This class defines check-box facility for TToggle objects            //
// It is used in context menu "selectors" for picking up a value.       //
//                                                                      //
//////////////////////////////////////////////////////////////////////////


#include "TMethod.h"
#include "TToggleGroup.h"

ClassImp(TToggleGroup)

//______________________________________________________________________________
TToggleGroup::TToggleGroup()
{
   // Constructor.

   fToggles  = new TOrdCollection();
}

//______________________________________________________________________________
TToggleGroup::TToggleGroup(const TToggleGroup& rhs) : TNamed(rhs),fToggles(0)
{
   // Copy constructor
   fToggles = (TOrdCollection*)rhs.fToggles->Clone();
}

//______________________________________________________________________________
TToggleGroup &TToggleGroup::operator=(const TToggleGroup &rhs)
{
   // Assignment operastor.
   
   delete fToggles;
   fToggles = (TOrdCollection*)rhs.fToggles->Clone();
   return *this;
}


//______________________________________________________________________________
TToggleGroup::~TToggleGroup()
{
   // Deletes togglegroup but does not disposes toggled objects!

   delete fToggles;
}

//______________________________________________________________________________
Int_t TToggleGroup::Add(TToggle *t, Bool_t select)
{
   // Add a new toggle.

   if (t) {
      fToggles->AddLast(t);
      if (select)
         Select(t);
      return IndexOf(t);
   } else
      return (-1);
}

//______________________________________________________________________________
Int_t TToggleGroup::InsertAt(TToggle *t, Int_t pos,Bool_t select)
{
   // Add a new toggle at a specific position.

   if (t) {
      fToggles->AddAt(t,pos);
      if (select)
         Select(t);
      return IndexOf(t);
   } else
      return (-1);
}

//______________________________________________________________________________
void TToggleGroup::Select(Int_t idx)
{
   // Select a toggle.

   TToggle *sel = At(idx);
   if (sel)
      Select(sel);
}

//______________________________________________________________________________
void TToggleGroup::Select(TToggle *t)
{
   // Selector a toggle.

   TIter next(fToggles);
   TToggle *i = 0;

   // Untoggle toggled , and toggle this one if it's present on a list!

   while ((i = (TToggle*)next()))
      if ( i->GetState() || (i==t) )
         i->Toggle();
}

//______________________________________________________________________________
void TToggleGroup::DeleteAll()
{
   // Disposes of all objects and clears array

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