#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;
ZLink<SubShellInfo> mDefSubShell;
ZLink<ZGlass> mBeta;
ZLink<ZGlass> mGamma;
ZLink<ZMirEmittingEntity> mMessageRecipient;
Int_t mDefW;
Int_t mDefSShellH;
Bool_t bDefSourceVis;
Bool_t bDefSinkVis;
UChar_t mMsgOutH;
Bool_t bFancyClassView;
Bool_t bCollZGlass;
Bool_t bCollAList;
Bool_t bShowLinksInClassView;
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);
virtual void RemoveSubShell(SubShellInfo* sub_shell);
void SetDefSubShell(SubShellInfo* ss);
void SetSubShells(ZHashList* ss);
void SpawnClassView(ZGlass* source);
void SpawnMetaGui(ZGlass* source, MetaViewInfo* gui_template);
void EmitResizeRay();
#include "ShellInfo.h7"
ClassDef(ShellInfo, 1);
};
#endif