00001 #ifndef IUserInterfaceSvc_h 00002 #define IUserInterfaceSvc_h 00003 00004 // Inheritance : 00005 #include <GaudiKernel/IService.h> 00006 00007 static const InterfaceID IID_IUserInterfaceSvc(345, 1, 0); 00008 00009 class DataObject; 00010 class ContainedObject; 00011 class IAppMgrUI; 00012 00013 class SoPage; 00014 class SoRegion; 00015 00016 #include <vector> 00017 00018 namespace Slash {namespace Core {class IWriter;}} 00019 namespace Slash {namespace Core {class ISession;}} 00020 namespace Slash {namespace Data {class IAccessor;}} 00021 namespace Slash {namespace Data {class IProcessor;}} 00022 00023 #include <OnX/Interfaces/IWidget.h> 00024 00025 namespace AIDA {class IHistogram;} 00026 00027 // LHCB : 00028 #include <GaudiKernel/Point3DTypes.h> //Because ROOT::Math::XYZPoint is a typedef ! 00029 00030 class IUserInterfaceSvc : virtual public IService { 00031 public: 00032 virtual ~IUserInterfaceSvc(){} 00033 00034 static const InterfaceID& interfaceID() { return IID_IUserInterfaceSvc; } 00035 00036 virtual StatusCode visualize(const std::string&) = 0; 00037 virtual StatusCode visualize(const DataObject&) = 0; 00038 virtual StatusCode visualize(const AIDA::IHistogram&) = 0; 00039 virtual StatusCode visualize(const Gaudi::XYZPoint&) = 0; 00040 enum RepType { 00041 LINES = 0, 00042 POINTS = 1, 00043 SEGMENTS = 2, 00044 POLYGON = 3 00045 }; 00046 virtual StatusCode visualize(const std::vector<Gaudi::XYZPoint>&,RepType = LINES) = 0; 00047 virtual std::vector<std::string> dataChildren(const std::string&) = 0; 00048 virtual void ls(const std::string& path,int depth = -1) = 0; 00049 virtual bool writeToString(const std::string&,std::string&) = 0; 00050 virtual void nextEvent() = 0; 00051 virtual IService* getService(const std::string&) = 0; 00052 virtual void clearDetectorStore() = 0; 00053 virtual StatusCode changeGeometry(const std::string&) = 0; 00054 virtual StatusCode changeColors(const std::string&) = 0; 00055 virtual void openEventFile(const std::string&) = 0; 00056 virtual SoPage* currentSoPage() = 0; 00057 virtual SoRegion* currentSoRegion() = 0; 00058 virtual const std::string& cuts() const = 0; 00059 virtual IWidget* currentWidget() = 0; 00060 virtual void setSession(Slash::Core::ISession*) = 0; 00061 virtual Slash::Core::ISession* session() = 0; 00062 virtual Slash::Core::IWriter& printer() = 0; 00063 virtual void addType(Slash::Data::IAccessor*) = 0; 00064 virtual Slash::Data::IProcessor* typeManager() = 0; 00065 virtual Slash::Data::IAccessor* metaType() = 0; 00066 // For Python : 00067 virtual std::string torgb(const std::string&) = 0; 00068 virtual IAppMgrUI* appMgr() const = 0; 00069 virtual void* topointer(const std::string&) const = 0; 00070 virtual std::vector<std::string> getHighlightedSoShapeNames() = 0; 00071 virtual std::vector<ContainedObject*> getHighlightedContainedObject() = 0; 00072 }; 00073 00074 #endif