Files
SingularityViewer/indra/newview/llfloaterexport.h
2010-07-05 12:50:38 -05:00

115 lines
2.4 KiB
C++

// <edit>
#ifndef LL_LLFLOATEREXPORT_H
#define LL_LLFLOATEREXPORT_H
#include "llfloater.h"
#include "llselectmgr.h"
#include "llvoavatar.h"
#include "llvoavatardefines.h"
//class LLExportObject
//{
//public:
// LLExportObject(LLViewerObject* object);
// //LLExportObject(LLViewerObject* object, std::string name);
//
// LLSD asLLSD();
//
// LLViewerObject* mObject;
//};
//
//class LLExportWearable
//{
//public:
// LLExportWearable(LLVOAvatar* avatar, EWearableType type);
//
// LLSD asLLSD();
// std::string getIcon();
//
// LLVOAvatar* mAvatar;
// EWearableType mType;
// std::string mName;
//};
//
//
//class LLExportBakedWearable // not used
//{
//public:
// LLExportBakedWearable(LLVOAvatar* avatar, EWearableType type);
//
// LLSD asLLSD();
// std::string getIcon();
//
// LLVOAvatar* mAvatar;
// EWearableType mType;
// std::string mName;
//};
class LLExportable
{
enum EXPORTABLE_TYPE
{
EXPORTABLE_OBJECT,
EXPORTABLE_WEARABLE
};
public:
LLExportable(LLViewerObject* object, std::string name, std::map<U32,std::string>& primNameMap);
LLExportable(LLVOAvatar* avatar, EWearableType type, std::map<U32,std::string>& primNameMap);
LLSD asLLSD();
EXPORTABLE_TYPE mType;
EWearableType mWearableType;
LLViewerObject* mObject;
LLVOAvatar* mAvatar;
std::map<U32,std::string>* mPrimNameMap;
};
class LLFloaterExport
: public LLFloater
{
public:
LLFloaterExport();
BOOL postBuild(void);
void addAvatarStuff(LLVOAvatar* avatarp);
void updateNamesProgress();
void receivePrimName(LLViewerObject* object, std::string name);
LLSD getLLSD();
std::vector<U32> mPrimList;
std::map<U32, std::string> mPrimNameMap;
static std::vector<LLFloaterExport*> instances; // for callback-type use
static void receiveObjectProperties(LLUUID fullid, std::string name, std::string desc);
static void onClickSelectAll(void* user_data);
static void onClickSelectObjects(void* user_data);
static void onClickSelectWearables(void* user_data);
static void onClickSaveAs(void* user_data);
static void onClickMakeCopy(void* user_data);
private:
virtual ~LLFloaterExport();
void addToPrimList(LLViewerObject* object);
enum LIST_COLUMN_ORDER
{
LIST_CHECKED,
LIST_TYPE,
LIST_NAME,
LIST_AVATARID
};
LLObjectSelectionHandle mSelection;
std::map<LLUUID, LLSD> mExportables;
};
#endif
// </edit>