ROOT logo
// $Id: ShellInfo.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_ShellInfo_H
#define GledCore_ShellInfo_H

#include <Glasses/ZNameMap.h>
#include <Glasses/ZHashList.h>
#include <Glasses/SubShellInfo.h>
#include <Glasses/ZMirEmittingEntity.h>

#include <Eye/Ray.h>

class MetaViewInfo;

class ShellInfo : public ZNameMap
{
  MAC_RNR_FRIENDS(ShellInfo);

public:
  enum PrivRayQN_e  { PRQN_offset = RayNS::RQN_user_0,
		      PRQN_set_def_subshell,
		      PRQN_add_subshell,
		      PRQN_remove_subshell,
		      PRQN_spawn_classview,
		      PRQN_spawn_metagui,
		      PRQN_resize_window
  };

private:
  void _init();

protected:
  ZLink<ZHashList>    mSubShells;   // X{gE} L{}
  ZLink<SubShellInfo> mDefSubShell; // X{gE} L{}

  ZLink<ZGlass>	mBeta;		// X{gS} L{}
  ZLink<ZGlass>	mGamma;		// X{gS} L{}

  ZLink<ZMirEmittingEntity> mMessageRecipient; // // X{gS} L{}

  Int_t		mDefW;		// X{GS} 7 Value(-range=>[32, 256, 1])
  Int_t		mDefSShellH;	// X{GS} 7 Value(-range=>[10, 128, 1])
  Bool_t	bDefSourceVis;	// X{GS} 7 Bool(-join=>1)
  Bool_t	bDefSinkVis;	// X{GS} 7 Bool()

  UChar_t	mMsgOutH;	// X{GS} Ray{Resize} 7 Value(-range=>[0,32,1])

  Bool_t	bFancyClassView;       // X{GS} 7 Bool()
  Bool_t	bCollZGlass;           // X{GS} 7 Bool(-join=>1)
  Bool_t	bCollAList;            // X{GS} 7 Bool()
  Bool_t	bShowLinksInClassView; // X{GS} 7 Bool()

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

  virtual void AdEnlightenment();

  virtual SubShellInfo* MakeDefSubShell();

  virtual void AddSubShell(SubShellInfo* sub_shell);    // X{E} C{1} 7 MCWButt(-join=>1)
  virtual void RemoveSubShell(SubShellInfo* sub_shell); // X{E} C{1} 7 MCWButt()

  void SetDefSubShell(SubShellInfo* ss);
  void SetSubShells(ZHashList* ss);

  void SpawnClassView(ZGlass* source); // X{E} C{1} 7 MCWButt()
  void SpawnMetaGui(ZGlass* source, MetaViewInfo* gui_template); // X{E} C{2} 7 MCWButt()

  void EmitResizeRay();

#include "ShellInfo.h7"
  ClassDef(ShellInfo, 1); // Glass representation of GUI shell 'FTW_Shell'.
}; // endclass ShellInfo


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