VR-Forces 4.0.4 Class Documentation
include/vrfGuiCore/DtVrfTaskSetManager.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2011 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 
00008 
00010 
00012 
00013 #pragma once
00014 
00015 #include <vrfGuiCore/vrfGuiCore.h>
00016 
00017 #include <vrvUtil/DtVirtualBaseClass.h>
00018 #include <vrvCore/DtUniqueID.h>
00019 #include <vrvCore/DtSelectionManager.h>
00020 
00022 #include <vrfutil/diGuyCharacterData.h>
00023 
00024 #include <boost/signal.hpp>
00025 
00026 namespace makVrv
00027 {
00028    class DtDe;
00029    class DtSimEntry;
00030    class DtSimObjectEntry;
00031 }
00032 
00033 class DtSimMessage;
00034 class DtIfCapableTaskAndSetResponse;
00035 class DtIfDIGuyAppearAndAnimationsResponse;
00036 
00037 namespace makVrf
00038 {
00039    class DT_DLL_VRFGUICORE DtTasksAndSets
00040    {
00041    public:
00042       DtTasksAndSets()
00043       {
00044       };
00045 
00046       DtTasksAndSets(const DtTasksAndSets& orig) :
00047          mySupportedTasks(orig.mySupportedTasks), mySupportedSets(orig.mySupportedSets)
00048       {
00049       };
00050 
00051       std::vector<int>  mySupportedTasks;
00052       std::vector<int>  mySupportedSets;
00053    };
00054 
00055    class DT_DLL_VRFGUICORE DtDIGuyAppearancesAndAnimations
00056    {
00057    public:
00058       std::vector<DtString>   mySupportedAppearances;
00059       AlternateNamesList      mySupportedTaskableAnimations;
00060    };
00061 
00063    class DT_DLL_VRFGUICORE DtVrfTaskSetManager : public makVrv::DtVirtualBaseClass
00064    {
00065    public:
00066       typedef std::map<int, std::vector<int> > DtTaskSetMap;
00067       typedef std::vector<makVrv::DtSimEntry*> SimEntries;
00068 
00069    public:
00070       DtVrfTaskSetManager(makVrv::DtDe&);
00071       virtual ~DtVrfTaskSetManager();
00072 
00074       static DtVrfTaskSetManager& instance(makVrv::DtDe& de);
00075 
00076    public:
00078       virtual void requestInformationFor(const std::string& name, makVrv::DtUniqueID id);
00079       virtual void requestInformationFor(const std::vector<std::pair<DtString, makVrv::DtUniqueID> >& names);
00080 
00082       virtual void updateAvailableTaskSetInformation(const makVrv::DtSimEntry* type);
00083       virtual void updateAvailableTaskSetInformation(const SimEntries&);
00084       virtual void updateAvailableTaskSetInformation(const std::string& name);
00085       virtual void updateAvailableTaskSetInformation(makVrv::DtElementID id);
00086 
00088       virtual bool hasTaskSetInformationFor(const makVrv::DtUniqueID&) const;
00089 
00092       virtual bool hasTaskSetInformationFor(const std::string&) const;
00093 
00094       virtual void setSupportedTasks(const makVrv::DtUniqueID&, const std::vector<int>&, bool signal = true);
00095       virtual void setSupportedSets(const makVrv::DtUniqueID&, const std::vector<int>&, bool signal = true);
00096 
00097       virtual void availableTasks(const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available);
00098       virtual void availableSets(const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available);
00099       virtual void available(const makVrv::DtSelectionManager::IdSet&, std::vector<int>& available);
00100       virtual std::vector<int> supportedMenuTasks() const;
00101       virtual std::vector<int> supportedMenuSets() const;
00102 
00103       boost::signal<void (makVrv::DtUniqueID)> signal_supportedTaskInformationChanged;
00104       boost::signal<void (makVrv::DtUniqueID)> signal_supportedSetInformationChanged;
00105       boost::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyAnimationsInformationChanged;
00106       boost::signal<void (makVrv::DtUniqueID)> signal_supportedDiGuyAppearanceInformationChanged;
00107 
00109       virtual bool isAvailableTaskMenuItem(int) const;
00110       virtual bool isAvailableVrfTaskItem(int) const;
00111 
00113       virtual bool isAvailableSetMenuItem(int) const;
00114       virtual bool isAvailableVrfSetItem(int) const;
00115 
00116       virtual bool hasDIGuyInformationFor(const makVrv::DtUniqueID&) const;
00117       virtual DtDIGuyAppearancesAndAnimations* diGuyInformationFor(const makVrv::DtUniqueID&);
00118 
00119       virtual void setDIGuyAppearances(const makVrv::DtUniqueID&, const std::vector<DtString>&, bool signal = true);
00120       virtual void setDIGuyAnimations(const makVrv::DtUniqueID&, const AlternateNamesList&, bool signal = true);
00121       virtual void setDIGuyAppearancesAndAnimations(const makVrv::DtUniqueID&,
00122          const std::vector<DtString>&, const AlternateNamesList&, bool signal = true);
00123 
00125       virtual void clearAllInformation();
00126 
00127       virtual DtTasksAndSets* informationFor(const makVrv::DtUniqueID&);
00128 
00130       virtual void addAvailableSet(int menuItem, int setType);
00131       virtual void addAvailableTask(int menuItem, int taskType);
00132       virtual void requestDIGuyAppearancesAndAnimations(const std::string& name);
00133       virtual void requestDIGuyAppearancesAndAnimations(const std::vector<DtString>& name);
00134 
00135    protected:
00137       virtual void requestTaskSetInformationFor(const std::string&);
00138       virtual void requestTaskSetInformationFor(const std::vector<DtString>&);
00139       virtual void processTaskAndSetResponse(DtSimMessage*);
00140 
00142       virtual void processDIGuyResponse(DtSimMessage*);
00143 
00145       virtual void initMenuMappings();
00146 
00147       virtual bool isAvailableMenuItem(int menu, const DtTaskSetMap&) const;
00148       virtual bool isAvailableVrfItem(int item, const DtTaskSetMap&) const;
00149 
00151       virtual void mergeMenuItems(const std::vector<int>& entityItems, const DtTaskSetMap& menuMap,
00152          std::vector<int>& results);
00153 
00154    protected:
00155       virtual void slot_postInitialize(makVrv::DtDe& de);
00156       virtual void slot_objectRemoved(makVrv::DtSimObjectEntry&);
00157 
00158    protected:
00159       std::map<makVrv::DtUniqueID, DtTasksAndSets>  myTaskSetInformation;
00160       std::map<makVrv::DtUniqueID, DtDIGuyAppearancesAndAnimations*> myDIGuyTaskSetCharacterInfo;
00161       std::map<std::string, makVrv::DtUniqueID>     myPendingRequests;
00162       std::map<std::string, makVrv::DtUniqueID>     myPendingDIGuyRequests;
00163 
00165 
00166       DtTaskSetMap   mySetMenuMap;
00167       DtTaskSetMap   myTaskMenuMap;
00168       makVrv::DtDe&       myDe;
00169    };
00170 }

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)