ROOT logo
// $Id: WGlDirectory.h 2088 2008-11-23 20:26:46Z matevz $

// Copyright (C) 1999-2008, Matevz Tadel. All rights reserved.
// This file is part of GLED, released under GNU General Public License version 2.
// For the licensing terms see $GLEDSYS/LICENSE or http://www.gnu.org/.

#ifndef GledCore_WGlDirectory_H
#define GledCore_WGlDirectory_H

#include <Glasses/ZNode.h>
#include <Stones/ZColor.h>
#include <Gled/GledNS.h>

class WGlDirectory : public ZNode
{
  MAC_RNR_FRIENDS(WGlDirectory);

 public:
  enum StepMode_e { SM_XYZ, SM_YXZ, SM_XZY };

 private:
  void _init();

 protected:
  ZLink<AList>      mContents;     //  X{GE} L{}
  ZLink<ZList>      mSelection;    //  X{GS} L{}
  ZLink<ZGlass>     mLastClicked;  //! X{GS} L{}

  StepMode_e        mStepMode;     // X{GS} 7 PhonyEnum()
  Float_t           mDx;           // X{GS} 7 Value(-range=>[-1000,1000,1,1000], -join=>1)
  Float_t           mDy;           // X{GS} 7 Value(-range=>[-1000,1000,1,1000], -join=>1)
  Float_t           mDz;           // X{GS} 7 Value(-range=>[-1000,1000,1,1000])

  Int_t             mNx;           // X{GS} 7 Value(-range=>[1,1000,1], -join=>1)
  Int_t             mNy;           // X{GS} 7 Value(-range=>[1,1000,1], -join=>1)
  Int_t             mNz;           // X{GS} 7 Value(-range=>[1,1000,1])

  Int_t             mNEntries;      //!
  TimeStamp_t       mNEntriesStamp; //!
  Int_t             count_entries();

  Int_t             mFirst;        // X{GE} 7 Value(-range=>[0,100,1])
  Bool_t            bDrawBox;      // X{GS} 7 Bool()
  Float_t           mBoxOx;        // X{GS} 7 Value(-range=>[-1000,1000,1,1000], -join=>1)
  Float_t           mBoxOy;        // X{GS} 7 Value(-range=>[-1000,1000,1,1000], -join=>1)
  Float_t           mBoxOz;        // X{GS} 7 Value(-range=>[-1000,1000,1,1000])
  Float_t           mBoxDx;        // X{GS} 7 Value(-range=>[0,1000,1,1000], -join=>1)
  Float_t           mBoxDy;        // X{GS} 7 Value(-range=>[0,1000,1,1000], -join=>1)
  Float_t           mBoxDz;        // X{GS} 7 Value(-range=>[0,1000,1,1000])

  Bool_t            bDrawText;     // X{GS} 7 Bool(-join=>1)
  Bool_t            bDrawTitle;    // X{GS} 7 Bool(-join=>1)
  Float_t           mNameFraction; // X{GS} 7 Value(-range=>[0,1,1,1000])
  Float_t           mTextOx;       // X{GS} 7 Value(-range=>[-1000,1000,1,1000], -join=>1)
  Float_t           mTextOy;       // X{GS} 7 Value(-range=>[-1000,1000,1,1000], -join=>1)
  Float_t           mTextOz;       // X{GS} 7 Value(-range=>[-1000,1000,1,1000])
  Float_t           mTextDx;       // X{GS} 7 Value(-range=>[0,1000,1,1000], -join=>1)
  Float_t           mTextDy;       // X{GS} 7 Value(-range=>[0,1000,1,1000])
  Float_t           mTextA1;       // X{GS} 7 Value(-range=>[-360,360,1,1000], -join=>1)
  Float_t           mTextA2;       // X{GS} 7 Value(-range=>[-360,360,1,1000], -join=>1)
  Float_t           mTextA3;       // X{GS} 7 Value(-range=>[-360,360,1,1000])

  ZColor            mBoxColor;     // X{GSP} 7 ColorButt(-join=>1)
  ZColor            mSelColor;     // X{GSP} 7 ColorButt()

  Bool_t            bDrawPageCtrl;  // X{GS} 7 Bool()
  ZColor            mPageColor;     // X{GSP} 7 ColorButt(-join=>1)
  ZColor            mSymColor;      // X{GSP} 7 ColorButt()
  Float_t           mPageCtrlWidth;           // X{GS} 7 Value(-range=>[0,1,1,1000],-join=>1)
  Float_t           mPageInfoWidth;           // X{GS} 7 Value(-range=>[0,1,1,1000])
  Float_t           mPageCtrlOff;         // X{GS} 7 Value(-range=>[0,1,1,1000],-join=>1)
  Float_t           mPageInfoOff;         // X{GS} 7 Value(-range=>[0,1,1,1000])

  ZLink<ZGlass>       mCbackAlpha;         //  X{GS} L{}
  TString             mCbackMethodName;    //  X{GS} Ray{CbackReset} 7 Textor()
  TString             mCbackBetaType;      //  X{GS} Ray{CbackReset} 7 Textor()
  GledNS::MethodInfo* mCbackMethodInfo;    //!
  GledNS::ClassInfo*  mCbackBetaClassInfo; //!

 public:
  WGlDirectory(const Text_t* n="WGlDirectory", const Text_t* t=0) :
    ZNode(n,t) { _init(); }

  GledNS::MethodInfo* GetCbackMethodInfo();
  GledNS::ClassInfo*  GetCbackBetaClassInfo();
  void EmitCbackResetRay()
  { mCbackMethodInfo = 0; mCbackBetaClassInfo = 0; mNEntriesStamp = 0; }

  void SetContents(AList* cont);

  void SetFirst(Int_t first) {
    Int_t first_full_page = count_entries() - mNx*mNy*mNz + 1;
    if(first > first_full_page) first = first_full_page;
    if(first < 1) first = 1;
    mFirst = first;
    Stamp(FID());
  }

  void Prev()     { SetFirst(mFirst - 1); }           // X{E}
  void PrevPage() { SetFirst(mFirst - mNx*mNy*mNz); } // X{E}
  void Next()     { SetFirst(mFirst + 1); }           // X{E}
  void NextPage() { SetFirst(mFirst + mNx*mNy*mNz); } // X{E}

  void StandardPersp();  //  X{E} 7 MButt(-join=>1)
  void StandardFixed();  //  X{E} 7 MButt(-join=>1)
  void StandardPixel();  //  X{E} 7 MButt()

#include "WGlDirectory.h7"
  ClassDef(WGlDirectory, 1);
}; // endclass WGlDirectory


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