Merge branch 'V2MultiWear' of git://github.com/Shyotl/SingularityViewer into V2MultiWear
This commit is contained in:
@@ -502,6 +502,16 @@ LLUICtrl* LLUICtrl::getParentUICtrl() const
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// *TODO: Deprecate; for backwards compatability only:
|
||||||
|
boost::signals2::connection LLUICtrl::setCommitCallback( boost::function<void (LLUICtrl*,void*)> cb, void* data)
|
||||||
|
{
|
||||||
|
return setCommitCallback( boost::bind(cb, _1, data));
|
||||||
|
}
|
||||||
|
boost::signals2::connection LLUICtrl::setValidateBeforeCommit( boost::function<bool (const LLSD& data)> cb )
|
||||||
|
{
|
||||||
|
if (!mValidateSignal) mValidateSignal = new enable_signal_t();
|
||||||
|
return mValidateSignal->connect(boost::bind(cb, _2));
|
||||||
|
}
|
||||||
// virtual
|
// virtual
|
||||||
void LLUICtrl::setTentative(BOOL b)
|
void LLUICtrl::setTentative(BOOL b)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -133,6 +133,9 @@ public:
|
|||||||
|
|
||||||
void setCommitCallback( void (*cb)(LLUICtrl*, void*) ) { mCommitCallback = cb; }
|
void setCommitCallback( void (*cb)(LLUICtrl*, void*) ) { mCommitCallback = cb; }
|
||||||
void setValidateBeforeCommit( BOOL(*cb)(LLUICtrl*, void*) ) { mValidateCallback = cb; }
|
void setValidateBeforeCommit( BOOL(*cb)(LLUICtrl*, void*) ) { mValidateCallback = cb; }
|
||||||
|
// *TODO: Deprecate; for backwards compatability only:
|
||||||
|
boost::signals2::connection setCommitCallback( boost::function<void (LLUICtrl*,void*)> cb, void* data);
|
||||||
|
boost::signals2::connection setValidateBeforeCommit( boost::function<bool (const LLSD& data)> cb );
|
||||||
|
|
||||||
static LLView* fromXML(LLXMLNodePtr node, LLView* parent, class LLUICtrlFactory* factory);
|
static LLView* fromXML(LLXMLNodePtr node, LLView* parent, class LLUICtrlFactory* factory);
|
||||||
|
|
||||||
|
|||||||
@@ -47,6 +47,7 @@
|
|||||||
#include "llvoavatarself.h"
|
#include "llvoavatarself.h"
|
||||||
#include "llviewerregion.h"
|
#include "llviewerregion.h"
|
||||||
#include "llwearablelist.h"
|
#include "llwearablelist.h"
|
||||||
|
#include "llinventorypanel.h"
|
||||||
// [RLVa:KB] - Checked: 2011-05-22 (RLVa-1.3.1a)
|
// [RLVa:KB] - Checked: 2011-05-22 (RLVa-1.3.1a)
|
||||||
#include "rlvhandler.h"
|
#include "rlvhandler.h"
|
||||||
#include "rlvhelper.h"
|
#include "rlvhelper.h"
|
||||||
@@ -1228,13 +1229,17 @@ void LLAppearanceMgr::shallowCopyCategory(const LLUUID& src_id, const LLUUID& ds
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Copy contents of src_id to dst_id.
|
// Copy contents of src_id to dst_id.
|
||||||
void LLAppearanceMgr::shallowCopyCategoryContents(const LLUUID& src_id, const LLUUID& dst_id,
|
void LLAppearanceMgr::shallowCopyCategoryContents(const LLUUID& src_id, const LLUUID& dst_id, LLPointer<LLInventoryCallback> cb)
|
||||||
LLPointer<LLInventoryCallback> cb)
|
|
||||||
{
|
{
|
||||||
LLInventoryModel::cat_array_t* cats;
|
LLInventoryModel::cat_array_t* cats;
|
||||||
LLInventoryModel::item_array_t* items;
|
LLInventoryModel::item_array_t* items;
|
||||||
gInventory.getDirectDescendentsOf(src_id, cats, items);
|
gInventory.getDirectDescendentsOf(src_id, cats, items);
|
||||||
llinfos << "copying " << items->count() << " items" << llendl;
|
llinfos << "copying " << items->count() << " items" << llendl;
|
||||||
|
copyItems(dst_id, items, cb);
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLAppearanceMgr::copyItems(const LLUUID& dst_id, LLInventoryModel::item_array_t* items, LLPointer<LLInventoryCallback> cb)
|
||||||
|
{
|
||||||
for (LLInventoryModel::item_array_t::const_iterator iter = items->begin();
|
for (LLInventoryModel::item_array_t::const_iterator iter = items->begin();
|
||||||
iter != items->end();
|
iter != items->end();
|
||||||
++iter)
|
++iter)
|
||||||
@@ -1274,13 +1279,25 @@ void LLAppearanceMgr::shallowCopyCategoryContents(const LLUUID& src_id, const LL
|
|||||||
case LLAssetType::AT_BODYPART:
|
case LLAssetType::AT_BODYPART:
|
||||||
case LLAssetType::AT_GESTURE:
|
case LLAssetType::AT_GESTURE:
|
||||||
{
|
{
|
||||||
llinfos << "copying inventory item " << item->getName() << llendl;
|
if(!item->getPermissions().allowCopyBy(gAgent.getID()))
|
||||||
copy_inventory_item(gAgent.getID(),
|
{
|
||||||
item->getPermissions().getOwner(),
|
link_inventory_item(gAgent.getID(),
|
||||||
item->getUUID(),
|
item->getUUID(),
|
||||||
dst_id,
|
dst_id,
|
||||||
item->getName(),
|
item->getName(),
|
||||||
cb);
|
item->getDescription(),
|
||||||
|
LLAssetType::AT_LINK, cb);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
llinfos << "copying inventory item " << item->getName() << llendl;
|
||||||
|
copy_inventory_item(gAgent.getID(),
|
||||||
|
item->getPermissions().getOwner(),
|
||||||
|
item->getUUID(),
|
||||||
|
dst_id,
|
||||||
|
item->getName(),
|
||||||
|
cb);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
@@ -2892,11 +2909,39 @@ void LLAppearanceMgr::updateClothingOrderingInfo(LLUUID cat_id, bool update_base
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class LLScrollOnFirstItem : public LLInventoryCallback
|
||||||
class LLShowCreatedOutfit: public LLInventoryCallback
|
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
LLShowCreatedOutfit(LLUUID& folder_id, bool show_panel = true): mFolderID(folder_id), mShowPanel(show_panel)
|
LLScrollOnFirstItem(const LLUUID&folder_id, bool do_scroll) : mFirstItemCreated(!do_scroll), mFolderID(folder_id)
|
||||||
|
{}
|
||||||
|
|
||||||
|
virtual void fire(const LLUUID& item_id)
|
||||||
|
{
|
||||||
|
if(mFirstItemCreated)
|
||||||
|
return;
|
||||||
|
mFirstItemCreated = true;
|
||||||
|
if (LLInventoryPanel::getActiveInventoryPanel())
|
||||||
|
{
|
||||||
|
if( LLFolderView* root = LLInventoryPanel::getActiveInventoryPanel()->getRootFolder())
|
||||||
|
{
|
||||||
|
LLFolderViewItem* folder = dynamic_cast<LLFolderViewFolder*>(root->getItemByID(mFolderID));
|
||||||
|
if(folder)
|
||||||
|
{
|
||||||
|
folder->openItem();
|
||||||
|
root->setSelection(folder,true,false);
|
||||||
|
root->scrollToShowSelection();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
bool mFirstItemCreated;
|
||||||
|
LLUUID mFolderID;
|
||||||
|
};
|
||||||
|
|
||||||
|
class LLShowCreatedOutfit: public LLScrollOnFirstItem
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
LLShowCreatedOutfit(const LLUUID& folder_id, bool show_panel = true): LLScrollOnFirstItem(folder_id, show_panel), mFolderID(folder_id), mShowPanel(show_panel)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
virtual ~LLShowCreatedOutfit()
|
virtual ~LLShowCreatedOutfit()
|
||||||
@@ -2929,10 +2974,7 @@ public:
|
|||||||
LLAppearanceMgr::getInstance()->updatePanelOutfitName("");
|
LLAppearanceMgr::getInstance()->updatePanelOutfitName("");
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void fire(const LLUUID&)
|
protected:
|
||||||
{}
|
|
||||||
|
|
||||||
private:
|
|
||||||
LLUUID mFolderID;
|
LLUUID mFolderID;
|
||||||
bool mShowPanel;
|
bool mShowPanel;
|
||||||
};
|
};
|
||||||
@@ -2961,6 +3003,299 @@ LLUUID LLAppearanceMgr::makeNewOutfitLinks(const std::string& new_folder_name, b
|
|||||||
return folder_id;
|
return folder_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Given an array of items from COF. v3 outfit behavior.
|
||||||
|
LLUUID LLAppearanceMgr::makeNewOutfitLinks(const std::string& new_folder_name, LLInventoryModel::item_array_t& items, bool show_panel )
|
||||||
|
{
|
||||||
|
if (!isAgentAvatarValid()) return LLUUID::null;
|
||||||
|
else if (items.empty()) return LLUUID::null;
|
||||||
|
|
||||||
|
gAgentWearables.notifyLoadingStarted();
|
||||||
|
|
||||||
|
// First, make a folder in the My Outfits directory.
|
||||||
|
const LLUUID parent_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_MY_OUTFITS);
|
||||||
|
LLUUID folder_id = gInventory.createNewCategory(
|
||||||
|
parent_id,
|
||||||
|
LLFolderType::FT_OUTFIT,
|
||||||
|
new_folder_name);
|
||||||
|
|
||||||
|
updateClothingOrderingInfo();
|
||||||
|
|
||||||
|
LLPointer<LLInventoryCallback> cb = new LLShowCreatedOutfit(folder_id,show_panel);
|
||||||
|
copyItems(folder_id, &items, cb);
|
||||||
|
createBaseOutfitLink(folder_id, cb);
|
||||||
|
|
||||||
|
dumpCat(folder_id,"COF, new outfit");
|
||||||
|
|
||||||
|
return folder_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Creates item copies before links and ties all requests to a sole handler
|
||||||
|
//Requests are batched into subbatches, as too many requests at once causes the sim to
|
||||||
|
//stall with the inventory requests.
|
||||||
|
//This handler will also ensure all 'copy' requests are finished before 'link' requests are
|
||||||
|
//sent out. This behavior isn't really needed for nomod/nocopy items, but it is for multi-worn
|
||||||
|
//clothing.
|
||||||
|
//Note that the 'wear' process is pretty convoluted, but its a cludge to get rlva support in without
|
||||||
|
//tinkering with LLAppearanceMgr further.
|
||||||
|
//To use this:
|
||||||
|
// 1) assign an LLPointer the newly created LLCreateLegacyOutfit object.
|
||||||
|
// 2) Stuff with requests via makeLink and makeCopy
|
||||||
|
// 3) Call dispatch()
|
||||||
|
// 4) Let the LLPointer go out of scope.
|
||||||
|
class LLCreateLegacyOutfit : public LLShowCreatedOutfit
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
LLCreateLegacyOutfit(const LLUUID& folder_id, bool show_panel) :
|
||||||
|
LLShowCreatedOutfit(folder_id, show_panel), mFolderID(folder_id), mFailed(false)
|
||||||
|
{}
|
||||||
|
virtual ~LLCreateLegacyOutfit()
|
||||||
|
{
|
||||||
|
if (!LLApp::isRunning() || mFailed)
|
||||||
|
return;
|
||||||
|
|
||||||
|
LLInventoryModel::item_array_t body_items, wear_items, obj_items, gest_items;
|
||||||
|
for(std::set<LLUUID>::const_iterator it = mWearItems.begin(); it != mWearItems.end(); ++it)
|
||||||
|
{
|
||||||
|
LLViewerInventoryItem* item = gInventory.getItem(*it);
|
||||||
|
if(item)
|
||||||
|
{
|
||||||
|
switch(item->getType())
|
||||||
|
{
|
||||||
|
case LLAssetType::AT_BODYPART:
|
||||||
|
body_items.push_back(item);
|
||||||
|
break;
|
||||||
|
case LLAssetType::AT_CLOTHING:
|
||||||
|
wear_items.push_back(item);
|
||||||
|
break;
|
||||||
|
case LLAssetType::AT_OBJECT:
|
||||||
|
obj_items.push_back(item);
|
||||||
|
break;
|
||||||
|
case LLAssetType::AT_GESTURE:
|
||||||
|
gest_items.push_back(item);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!body_items.empty() || !wear_items.empty() || !obj_items.empty() || !gest_items.empty())
|
||||||
|
LLAppearanceMgr::instance().updateCOF(body_items, wear_items, obj_items, gest_items, false);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
class LLCreateBase : public LLInventoryCallback
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
LLCreateBase(LLViewerInventoryItem* item, const LLUUID& folder_id, LLPointer<LLCreateLegacyOutfit> cb) :
|
||||||
|
mCallback(cb), mItem(item), mFolderID(folder_id)
|
||||||
|
{}
|
||||||
|
virtual ~LLCreateBase()
|
||||||
|
{
|
||||||
|
if(mCallback)
|
||||||
|
mCallback->finished(this, LLUUID::null);
|
||||||
|
}
|
||||||
|
virtual void dispatch() = 0;
|
||||||
|
virtual void fire(const LLUUID& item_id)
|
||||||
|
{
|
||||||
|
mCallback->finished(this, item_id);
|
||||||
|
mCallback = NULL;
|
||||||
|
}
|
||||||
|
const LLViewerInventoryItem* getItem() const {return mItem;}
|
||||||
|
protected:
|
||||||
|
LLPointer<LLViewerInventoryItem> mItem;
|
||||||
|
LLPointer<LLCreateLegacyOutfit> mCallback;
|
||||||
|
const LLUUID mFolderID;
|
||||||
|
};
|
||||||
|
class LLCreateCopy : public LLCreateBase
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
LLCreateCopy(LLViewerInventoryItem* item, bool create_copy, const LLUUID& folder_id, LLPointer<LLCreateLegacyOutfit> cb) :
|
||||||
|
LLCreateBase(item,folder_id,cb), mCreateLink(create_copy),
|
||||||
|
mLinkDesc((mCreateLink && item->getIsLinkType()) ? item->LLInventoryItem::getDescription() : "" )
|
||||||
|
{}
|
||||||
|
virtual void dispatch()
|
||||||
|
{
|
||||||
|
const LLViewerInventoryItem* base_item = mItem->getLinkedItem() ? mItem->getLinkedItem() : mItem.get();
|
||||||
|
copy_inventory_item(gAgent.getID(),
|
||||||
|
base_item->getPermissions().getOwner(),
|
||||||
|
base_item->getUUID(),
|
||||||
|
mFolderID,
|
||||||
|
base_item->getName(),
|
||||||
|
this);
|
||||||
|
}
|
||||||
|
virtual void fire(const LLUUID& item_id)
|
||||||
|
{
|
||||||
|
if(mCreateLink)
|
||||||
|
mCallback->makeLink(gInventory.getItem(item_id), mLinkDesc);
|
||||||
|
LLCreateBase::fire(item_id);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
bool mCreateLink;
|
||||||
|
std::string mLinkDesc;
|
||||||
|
};
|
||||||
|
class LLCreateLink : public LLCreateBase
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
LLCreateLink(LLViewerInventoryItem* item, const std::string& desc, const LLUUID& folder_id, LLPointer<LLCreateLegacyOutfit> cb) :
|
||||||
|
LLCreateBase(item,folder_id,cb), mDesc(desc)
|
||||||
|
{}
|
||||||
|
virtual void dispatch()
|
||||||
|
{
|
||||||
|
link_inventory_item(gAgent.getID(),
|
||||||
|
mItem->getLinkedUUID(),
|
||||||
|
mFolderID,
|
||||||
|
mItem->getName(),
|
||||||
|
mDesc,
|
||||||
|
LLAssetType::AT_LINK,
|
||||||
|
this);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
const std::string mDesc;
|
||||||
|
};
|
||||||
|
public:
|
||||||
|
void makeLink(LLViewerInventoryItem* item, const std::string desc)
|
||||||
|
{
|
||||||
|
if(!item)
|
||||||
|
return;
|
||||||
|
mPendingLinks.push_back(new LLCreateLink(item, desc, mFolderID, this));
|
||||||
|
}
|
||||||
|
void makeCopy(LLViewerInventoryItem* item, bool create_link)
|
||||||
|
{
|
||||||
|
if(!item)
|
||||||
|
return;
|
||||||
|
mPendingCopies.push_back(new LLCreateCopy(item, create_link, mFolderID, this));
|
||||||
|
}
|
||||||
|
void finished(const LLCreateBase* cb, const LLUUID item_id)
|
||||||
|
{
|
||||||
|
if(!LLApp::isRunning())
|
||||||
|
{
|
||||||
|
mPendingCopies.clear();
|
||||||
|
mPendingLinks.clear();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(item_id.notNull())
|
||||||
|
LLShowCreatedOutfit::fire(item_id);
|
||||||
|
|
||||||
|
std::vector<const LLCreateBase*>::iterator it = std::find(mActiveRequests.begin(), mActiveRequests.end(),cb);
|
||||||
|
if(it != mActiveRequests.end())
|
||||||
|
{
|
||||||
|
const LLViewerInventoryItem* old_item = (*it)->getItem();
|
||||||
|
if(item_id.notNull())
|
||||||
|
{
|
||||||
|
const LLViewerInventoryItem* item = gInventory.getItem(item_id);
|
||||||
|
|
||||||
|
if ((rlv_handler_t::isEnabled()) &&
|
||||||
|
//If the old item can be removed, but a new one can't take its place, then just use the original item again.
|
||||||
|
(((rlvPredCanRemoveItem(old_item) && !rlvPredCanWearItem(item,RLV_WEAR_REPLACE))) ||
|
||||||
|
//If the old item cannot be removed then just use the original item again.
|
||||||
|
!rlvPredCanRemoveItem(old_item)))
|
||||||
|
{
|
||||||
|
item = old_item;
|
||||||
|
}
|
||||||
|
if(item->getIsLinkType())
|
||||||
|
mWearItems.erase(item->getLinkedUUID());
|
||||||
|
mWearItems.insert(item->getUUID());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
mWearItems.insert(old_item->getUUID());
|
||||||
|
|
||||||
|
mActiveRequests.erase(it);
|
||||||
|
|
||||||
|
if(!item_id.notNull())
|
||||||
|
mFailed = true;
|
||||||
|
|
||||||
|
if(mActiveRequests.empty())
|
||||||
|
dispatch(); //Fire off any pending requests.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void dispatch()
|
||||||
|
{
|
||||||
|
const S32 max_batch = 5;
|
||||||
|
S32 count=0;
|
||||||
|
|
||||||
|
if(!sendRequests(mPendingCopies,count,max_batch))
|
||||||
|
sendRequests(mPendingLinks,count,max_batch); //IFF there are NO copy requests pending.
|
||||||
|
|
||||||
|
gInventory.notifyObservers();
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
bool sendRequests(std::vector<LLPointer<LLCreateBase> >& list, S32& count, const S32& max_batch)
|
||||||
|
{
|
||||||
|
bool handled = false;
|
||||||
|
for(std::vector<LLPointer<LLCreateBase> >::iterator it = list.begin();it!=list.end();)
|
||||||
|
{
|
||||||
|
if(count >= max_batch)
|
||||||
|
break;
|
||||||
|
LLPointer<LLCreateBase> cb = (*it);
|
||||||
|
it=list.erase(it);
|
||||||
|
if(cb)
|
||||||
|
{
|
||||||
|
cb->dispatch();
|
||||||
|
mActiveRequests.push_back(cb.get());
|
||||||
|
++count;
|
||||||
|
handled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return handled;
|
||||||
|
}
|
||||||
|
|
||||||
|
LLUUID mFolderID;
|
||||||
|
bool mFailed;
|
||||||
|
std::vector<LLPointer<LLCreateBase> > mPendingCopies;
|
||||||
|
std::vector<LLPointer<LLCreateBase> > mPendingLinks;
|
||||||
|
std::set<LLUUID> mWearItems;
|
||||||
|
std::vector<const LLCreateBase*> mActiveRequests;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//Given an array of items from COF. Will only use links for no-copy, no-mod, or multi-worn clothing.
|
||||||
|
LLUUID LLAppearanceMgr::makeNewOutfitLegacy(const std::string& new_folder_name, LLInventoryModel::item_array_t& items, bool use_links, bool show_panel )
|
||||||
|
{
|
||||||
|
if (!isAgentAvatarValid()) return LLUUID::null;
|
||||||
|
else if (items.empty()) return LLUUID::null;
|
||||||
|
|
||||||
|
gAgentWearables.notifyLoadingStarted();
|
||||||
|
|
||||||
|
// First, make a folder in the My Outfits directory.
|
||||||
|
const LLUUID parent_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_CLOTHING);
|
||||||
|
LLUUID folder_id = gInventory.createNewCategory(
|
||||||
|
parent_id,
|
||||||
|
LLFolderType::FT_NONE,
|
||||||
|
new_folder_name);
|
||||||
|
|
||||||
|
updateClothingOrderingInfo();
|
||||||
|
|
||||||
|
LLInventoryModel::item_array_t base_items;
|
||||||
|
LLInventoryModel::item_array_t remove_items;
|
||||||
|
|
||||||
|
LLPointer<LLCreateLegacyOutfit> cb = new LLCreateLegacyOutfit(folder_id,show_panel);
|
||||||
|
|
||||||
|
for (LLInventoryModel::item_array_t::const_iterator iter = items.begin();
|
||||||
|
iter != items.end();
|
||||||
|
++iter)
|
||||||
|
{
|
||||||
|
LLViewerInventoryItem* item = (*iter);
|
||||||
|
LLViewerInventoryItem* base_item = item->getLinkedItem() ? item->getLinkedItem() : item;
|
||||||
|
bool is_copy = base_item->getPermissions().allowCopyBy(gAgent.getID());
|
||||||
|
//Just treat 'object' type as modifiable... permission slam screws them up pretty well.
|
||||||
|
bool is_mod = base_item->getInventoryType() == LLInventoryType::IT_OBJECT || base_item->getPermissions().allowModifyBy(gAgent.getID());
|
||||||
|
//If it's multi-worn we want to create a copy of the item if possible AND create a new link to that new copy with the same desc as the old link.
|
||||||
|
bool is_multi = base_item->isWearableType() && gAgentWearables.getWearableCount(base_item->getWearableType()) > 1 ;
|
||||||
|
|
||||||
|
if( use_links && (!is_copy || !is_mod) )
|
||||||
|
{
|
||||||
|
cb->makeLink(item,item->LLInventoryItem::getDescription());
|
||||||
|
}
|
||||||
|
else if( is_copy )
|
||||||
|
{
|
||||||
|
cb->makeCopy(item,is_multi && use_links);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cb->dispatch();
|
||||||
|
|
||||||
|
return folder_id;
|
||||||
|
}
|
||||||
|
|
||||||
void LLAppearanceMgr::wearBaseOutfit()
|
void LLAppearanceMgr::wearBaseOutfit()
|
||||||
{
|
{
|
||||||
const LLUUID& base_outfit_id = getBaseOutfitUUID();
|
const LLUUID& base_outfit_id = getBaseOutfitUUID();
|
||||||
|
|||||||
@@ -80,6 +80,8 @@ public:
|
|||||||
void shallowCopyCategory(const LLUUID& src_id, const LLUUID& dst_id,
|
void shallowCopyCategory(const LLUUID& src_id, const LLUUID& dst_id,
|
||||||
LLPointer<LLInventoryCallback> cb);
|
LLPointer<LLInventoryCallback> cb);
|
||||||
|
|
||||||
|
void copyItems(const LLUUID& dst_id, LLInventoryModel::item_array_t* items, LLPointer<LLInventoryCallback> cb);
|
||||||
|
|
||||||
// Return whether this folder contains minimal contents suitable for making a full outfit.
|
// Return whether this folder contains minimal contents suitable for making a full outfit.
|
||||||
BOOL getCanMakeFolderIntoOutfit(const LLUUID& folder_id);
|
BOOL getCanMakeFolderIntoOutfit(const LLUUID& folder_id);
|
||||||
|
|
||||||
@@ -174,6 +176,8 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
LLUUID makeNewOutfitLinks(const std::string& new_folder_name,bool show_panel = true);
|
LLUUID makeNewOutfitLinks(const std::string& new_folder_name,bool show_panel = true);
|
||||||
|
LLUUID makeNewOutfitLinks(const std::string& new_folder_name, LLInventoryModel::item_array_t& item_list, bool show_panel = true);
|
||||||
|
LLUUID makeNewOutfitLegacy(const std::string& new_folder_name, LLInventoryModel::item_array_t& items, bool use_links, bool show_panel = true);
|
||||||
|
|
||||||
bool moveWearable(LLViewerInventoryItem* item, bool closer_to_body);
|
bool moveWearable(LLViewerInventoryItem* item, bool closer_to_body);
|
||||||
|
|
||||||
|
|||||||
@@ -241,11 +241,18 @@ public:
|
|||||||
pOutfitFoldersCtrl->setCallbackUserData(this);
|
pOutfitFoldersCtrl->setCallbackUserData(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL getRenameClothing()
|
bool getUseOutfits()
|
||||||
|
{
|
||||||
|
return childGetValue("checkbox_use_outfits").asBoolean();
|
||||||
|
}
|
||||||
|
bool getUseLinks()
|
||||||
|
{
|
||||||
|
return childGetValue("checkbox_use_links").asBoolean();
|
||||||
|
}
|
||||||
|
/*bool getRenameClothing()
|
||||||
{
|
{
|
||||||
return childGetValue("rename").asBoolean();
|
return childGetValue("rename").asBoolean();
|
||||||
|
}*/
|
||||||
}
|
|
||||||
virtual void draw()
|
virtual void draw()
|
||||||
{
|
{
|
||||||
BOOL one_or_more_items_selected = FALSE;
|
BOOL one_or_more_items_selected = FALSE;
|
||||||
@@ -269,7 +276,7 @@ public:
|
|||||||
{
|
{
|
||||||
LLWearableType::EType wtType = (LLWearableType::EType)wearable;
|
LLWearableType::EType wtType = (LLWearableType::EType)wearable;
|
||||||
if ( ( (0 <= wtType) && (wtType < LLWearableType::WT_COUNT) ) &&
|
if ( ( (0 <= wtType) && (wtType < LLWearableType::WT_COUNT) ) &&
|
||||||
( (LLAssetType::AT_BODYPART != LLWearableType::getAssetType(wtType)) || (!gSavedSettings.getBOOL("UseOutfitFolders")) ) )
|
( (LLAssetType::AT_BODYPART != LLWearableType::getAssetType(wtType)) || (!getUseOutfits()) ) )
|
||||||
{
|
{
|
||||||
std::string name = std::string("checkbox_") + LLWearableType::getTypeLabel(wtType);
|
std::string name = std::string("checkbox_") + LLWearableType::getTypeLabel(wtType);
|
||||||
childSetEnabled(name, enabled);
|
childSetEnabled(name, enabled);
|
||||||
@@ -277,25 +284,32 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void getIncludedItems( LLDynamicArray<S32> &wearables_to_include, LLDynamicArray<S32> &attachments_to_include )
|
void getIncludedItems( LLInventoryModel::item_array_t& item_list )
|
||||||
{
|
{
|
||||||
for( S32 i = 0; i < (S32)mCheckBoxList.size(); i++)
|
LLInventoryModel::cat_array_t *cats;
|
||||||
|
LLInventoryModel::item_array_t *items;
|
||||||
|
gInventory.getDirectDescendentsOf(LLAppearanceMgr::instance().getCOF(), cats, items);
|
||||||
|
for (LLInventoryModel::item_array_t::const_iterator iter = items->begin();
|
||||||
|
iter != items->end();
|
||||||
|
++iter)
|
||||||
{
|
{
|
||||||
std::string name = mCheckBoxList[i].first;
|
LLViewerInventoryItem* item = (*iter);
|
||||||
BOOL checked = childGetValue(name).asBoolean();
|
if(!item)
|
||||||
if (i < LLWearableType::WT_COUNT )
|
continue;
|
||||||
|
if(item->isWearableType())
|
||||||
{
|
{
|
||||||
if( checked )
|
LLWearableType::EType type = item->getWearableType();
|
||||||
|
if (type < LLWearableType::WT_COUNT && childGetValue(mCheckBoxList[type].first).asBoolean())
|
||||||
{
|
{
|
||||||
wearables_to_include.put(i);
|
item_list.push_back(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if( checked )
|
LLViewerJointAttachment* attachment = gAgentAvatarp->getWornAttachmentPoint(item->getLinkedUUID());
|
||||||
|
if(attachment && childGetValue(std::string("checkbox_")+attachment->getName()).asBoolean())
|
||||||
{
|
{
|
||||||
S32 attachment_pt = mCheckBoxList[i].second;
|
item_list.push_back(item);
|
||||||
attachments_to_include.put( attachment_pt );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -350,7 +364,7 @@ public:
|
|||||||
|
|
||||||
void refresh()
|
void refresh()
|
||||||
{
|
{
|
||||||
BOOL fUseOutfits = gSavedSettings.getBOOL("UseOutfitFolders");
|
BOOL fUseOutfits = getUseOutfits();
|
||||||
|
|
||||||
for (S32 idxType = 0; idxType < LLWearableType::WT_COUNT; idxType++ )
|
for (S32 idxType = 0; idxType < LLWearableType::WT_COUNT; idxType++ )
|
||||||
{
|
{
|
||||||
@@ -1982,7 +1996,7 @@ void LLFloaterCustomize::onBtnMakeOutfit( void* userdata )
|
|||||||
|
|
||||||
for( S32 i = 0; i < LLWearableType::WT_COUNT; i++ )
|
for( S32 i = 0; i < LLWearableType::WT_COUNT; i++ )
|
||||||
{
|
{
|
||||||
BOOL enabled = (gAgentWearables.getWearable( (LLWearableType::EType) i, 0 ) != NULL); // TODO: MULTI-WEARABLE
|
BOOL enabled = (gAgentWearables.getWearableCount( (LLWearableType::EType) i )); // TODO: MULTI-WEARABLE
|
||||||
BOOL selected = (enabled && (LLWearableType::WT_SHIRT <= i) && (i < LLWearableType::WT_COUNT)); // only select clothing by default
|
BOOL selected = (enabled && (LLWearableType::WT_SHIRT <= i) && (i < LLWearableType::WT_COUNT)); // only select clothing by default
|
||||||
if (gAgent.isTeen()
|
if (gAgent.isTeen()
|
||||||
&& !edit_wearable_for_teens((LLWearableType::EType)i))
|
&& !edit_wearable_for_teens((LLWearableType::EType)i))
|
||||||
@@ -2007,10 +2021,14 @@ void LLFloaterCustomize::onMakeOutfitCommit( LLMakeOutfitDialog* dialog, void* u
|
|||||||
LLDynamicArray<S32> wearables_to_include;
|
LLDynamicArray<S32> wearables_to_include;
|
||||||
LLDynamicArray<S32> attachments_to_include; // attachment points
|
LLDynamicArray<S32> attachments_to_include; // attachment points
|
||||||
|
|
||||||
dialog->getIncludedItems( wearables_to_include, attachments_to_include );
|
LLInventoryModel::item_array_t item_list;
|
||||||
|
dialog->getIncludedItems(item_list);
|
||||||
|
|
||||||
// MULTI-WEARABLES TODO
|
// MULTI-WEARABLES TODO
|
||||||
//LLAppearanceMgr::getInstance()->makeNewOutfit( dialog->getFolderName(), wearables_to_include, attachments_to_include, dialog->getRenameClothing() );
|
if(dialog->getUseOutfits())
|
||||||
|
LLAppearanceMgr::instance().makeNewOutfitLinks( dialog->getFolderName(), item_list);
|
||||||
|
else
|
||||||
|
LLAppearanceMgr::instance().makeNewOutfitLegacy( dialog->getFolderName(), item_list, dialog->getUseLinks());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1599,7 +1599,7 @@ LLPanelAvatar::~LLPanelAvatar()
|
|||||||
|
|
||||||
BOOL LLPanelAvatar::canClose()
|
BOOL LLPanelAvatar::canClose()
|
||||||
{
|
{
|
||||||
return mPanelClassified && mPanelClassified->canClose();
|
return !mPanelClassified || mPanelClassified->canClose();
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLPanelAvatar::setAvatar(LLViewerObject *avatarp)
|
void LLPanelAvatar::setAvatar(LLViewerObject *avatarp)
|
||||||
@@ -1645,6 +1645,7 @@ void LLPanelAvatar::setOnlineStatus(EOnlineStatus online_status)
|
|||||||
online_status = ONLINE_STATUS_YES;
|
online_status = ONLINE_STATUS_YES;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(mPanelSecondLife)
|
||||||
mPanelSecondLife->childSetVisible("online_yes", online_status == ONLINE_STATUS_YES);
|
mPanelSecondLife->childSetVisible("online_yes", online_status == ONLINE_STATUS_YES);
|
||||||
|
|
||||||
// Since setOnlineStatus gets called after setAvatarID
|
// Since setOnlineStatus gets called after setAvatarID
|
||||||
@@ -1711,9 +1712,9 @@ void LLPanelAvatar::setAvatarID(const LLUUID &avatar_id, const std::string &name
|
|||||||
(*it)->setAvatarID(avatar_id);
|
(*it)->setAvatarID(avatar_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
mPanelSecondLife->enableControls(own_avatar && mAllowEdit);
|
if (mPanelSecondLife) mPanelSecondLife->enableControls(own_avatar && mAllowEdit);
|
||||||
mPanelWeb->enableControls(own_avatar && mAllowEdit);
|
if (mPanelWeb) mPanelWeb->enableControls(own_avatar && mAllowEdit);
|
||||||
mPanelAdvanced->enableControls(own_avatar && mAllowEdit);
|
if (mPanelAdvanced) mPanelAdvanced->enableControls(own_avatar && mAllowEdit);
|
||||||
// Teens don't have this.
|
// Teens don't have this.
|
||||||
if (mPanelFirstLife) mPanelFirstLife->enableControls(own_avatar && mAllowEdit);
|
if (mPanelFirstLife) mPanelFirstLife->enableControls(own_avatar && mAllowEdit);
|
||||||
|
|
||||||
@@ -1772,16 +1773,16 @@ void LLPanelAvatar::setAvatarID(const LLUUID &avatar_id, const std::string &name
|
|||||||
{
|
{
|
||||||
// While we're waiting for data off the network, clear out the
|
// While we're waiting for data off the network, clear out the
|
||||||
// old data.
|
// old data.
|
||||||
mPanelSecondLife->clearControls();
|
if(mPanelSecondLife) mPanelSecondLife->clearControls();
|
||||||
|
|
||||||
mPanelPicks->deletePickPanels();
|
if(mPanelPicks) mPanelPicks->deletePickPanels();
|
||||||
mPanelPicks->setDataRequested(false);
|
if(mPanelPicks) mPanelPicks->setDataRequested(false);
|
||||||
|
|
||||||
mPanelClassified->deleteClassifiedPanels();
|
if(mPanelClassified) mPanelClassified->deleteClassifiedPanels();
|
||||||
mPanelClassified->setDataRequested(false);
|
if(mPanelClassified) mPanelClassified->setDataRequested(false);
|
||||||
|
|
||||||
mPanelNotes->clearControls();
|
if(mPanelNotes) mPanelNotes->clearControls();
|
||||||
mPanelNotes->setDataRequested(false);
|
if(mPanelNotes) mPanelNotes->setDataRequested(false);
|
||||||
mHaveNotes = false;
|
mHaveNotes = false;
|
||||||
mLastNotes.clear();
|
mLastNotes.clear();
|
||||||
|
|
||||||
|
|||||||
@@ -146,7 +146,10 @@ LLViewerObject *LLViewerObject::createObject(const LLUUID &id, const LLPCode pco
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gAgentAvatarp->updateRegion(regionp);
|
if (isAgentAvatarValid())
|
||||||
|
{
|
||||||
|
gAgentAvatarp->updateRegion(regionp);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
res = gAgentAvatarp;
|
res = gAgentAvatarp;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,280 +3,288 @@
|
|||||||
can_minimize="false" can_resize="false" can_tear_off="true" enabled="true"
|
can_minimize="false" can_resize="false" can_tear_off="true" enabled="true"
|
||||||
height="530" left="278" min_height="100" min_width="100"
|
height="530" left="278" min_height="100" min_width="100"
|
||||||
mouse_opaque="true" name="modal container" title="" width="515">
|
mouse_opaque="true" name="modal container" title="" width="515">
|
||||||
<button bottom="5" enabled="true" font="SansSerif" halign="center" height="20"
|
<button bottom="5" enabled="true" font="SansSerif" halign="center" height="20"
|
||||||
label="Save" label_selected="Save" left="171" mouse_opaque="true"
|
label="Save" label_selected="Save" left="171" mouse_opaque="true"
|
||||||
name="Save" scale_image="true" width="82" />
|
name="Save" scale_image="true" width="82" />
|
||||||
<button bottom="5" enabled="true" font="SansSerif" halign="center" height="20"
|
<button bottom="5" enabled="true" font="SansSerif" halign="center" height="20"
|
||||||
label="Cancel" label_selected="Cancel" left="261" mouse_opaque="true"
|
label="Cancel" label_selected="Cancel" left="261" mouse_opaque="true"
|
||||||
name="Cancel" scale_image="true" width="82" />
|
name="Cancel" scale_image="true" width="82" />
|
||||||
<check_box bottom="-216" enabled="true" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-216" enabled="true" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Shape" left="13"
|
height="16" initial_value="false" label="Shape" left="13"
|
||||||
mouse_opaque="true" name="checkbox_Shape" radio_style="false" width="100" />
|
mouse_opaque="true" name="checkbox_shape" radio_style="false" width="100" />
|
||||||
<check_box bottom="-236" enabled="true" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-236" enabled="true" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Skin" left="13"
|
height="16" initial_value="false" label="Skin" left="13"
|
||||||
mouse_opaque="true" name="checkbox_Skin" radio_style="false" width="100" />
|
mouse_opaque="true" name="checkbox_skin" radio_style="false" width="100" />
|
||||||
<check_box bottom="-256" enabled="true" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-256" enabled="true" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Hair" left="13"
|
height="16" initial_value="false" label="Hair" left="13"
|
||||||
mouse_opaque="true" name="checkbox_Hair" radio_style="false" width="100" />
|
mouse_opaque="true" name="checkbox_hair" radio_style="false" width="100" />
|
||||||
<check_box bottom="-276" enabled="true" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-276" enabled="true" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Eyes" left="13"
|
height="16" initial_value="false" label="Eyes" left="13"
|
||||||
mouse_opaque="true" name="checkbox_Eyes" radio_style="false" width="100" />
|
mouse_opaque="true" name="checkbox_eyes" radio_style="false" width="100" />
|
||||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||||
bottom="90" drop_shadow_visible="true" enabled="true" follows="left|top"
|
bottom="75" drop_shadow_visible="true" enabled="true" follows="left|top"
|
||||||
font="SansSerifSmall" h_pad="0" halign="left" height="14" left="13"
|
font="SansSerifSmall" h_pad="0" halign="left" height="14" left="13"
|
||||||
mouse_opaque="true" name="Options:" v_pad="0" width="100">
|
mouse_opaque="true" name="Options:" v_pad="0" width="100">
|
||||||
Options:
|
Options:
|
||||||
</text>
|
</text>
|
||||||
<check_box bottom_delta="-20" enabled="true" follows="left|top" font="SansSerifSmall"
|
<!--<check_box bottom_delta="-20" enabled="true" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Rename Clothing To Folder Name"
|
height="16" initial_value="false" label="Rename Clothing To Folder Name"
|
||||||
left="13" mouse_opaque="true" name="rename" radio_style="false" width="210" />
|
left="13" mouse_opaque="true" name="rename" radio_style="false" width="210" />-->
|
||||||
|
<check_box name="checkbox_use_outfits" control_name="UseOutfitFolders" initial_value="false"
|
||||||
|
enabled="true" label="Use Viewer 2 outfit folders" font="SansSerifSmall"
|
||||||
|
bottom_delta="-20" left_delta="0" follows="left|top" height="16" width="300"
|
||||||
|
mouse_opaque="true" radio_style="false" />
|
||||||
<check_box name="checkbox_use_links" control_name="UseInventoryLinks" initial_value="false"
|
<check_box name="checkbox_use_links" control_name="UseInventoryLinks" initial_value="false"
|
||||||
enabled="true" label="Use links for no-copy items" font="SansSerifSmall"
|
enabled="true" label="Use links for non-copy, no-mod, or multi-worn items" font="SansSerifSmall"
|
||||||
bottom_delta="-20" left_delta="0" follows="left|top" height="16" width="300"
|
bottom_delta="-20" left_delta="0" follows="left|top" height="16" width="300"
|
||||||
mouse_opaque="true" radio_style="false" />
|
mouse_opaque="true" radio_style="false" />
|
||||||
<check_box name="checkbox_use_outfits" control_name="UseOutfitFolders" initial_value="false"
|
<check_box bottom="-216" enabled="true" follows="left|top" font="SansSerifSmall"
|
||||||
enabled="true" label="Use Viewer 2 outfit folders" font="SansSerifSmall"
|
|
||||||
bottom_delta="-20" left_delta="0" follows="left|top" height="16" width="300"
|
|
||||||
mouse_opaque="true" radio_style="false" />
|
|
||||||
<check_box bottom="-216" enabled="true" follows="left|top" font="SansSerifSmall"
|
|
||||||
height="16" initial_value="false" label="Shirt" left="113"
|
height="16" initial_value="false" label="Shirt" left="113"
|
||||||
mouse_opaque="true" name="checkbox_shirt" radio_style="false" width="100" />
|
mouse_opaque="true" name="checkbox_shirt" radio_style="false" width="100" />
|
||||||
<check_box bottom="-236" enabled="true" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-236" enabled="true" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Pants" left="113"
|
height="16" initial_value="false" label="Pants" left="113"
|
||||||
mouse_opaque="true" name="checkbox_pants" radio_style="false" width="100" />
|
mouse_opaque="true" name="checkbox_pants" radio_style="false" width="100" />
|
||||||
<check_box bottom="-256" enabled="true" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-256" enabled="true" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Shoes" left="113"
|
height="16" initial_value="false" label="Shoes" left="113"
|
||||||
mouse_opaque="true" name="checkbox_shoes" radio_style="false" width="100" />
|
mouse_opaque="true" name="checkbox_shoes" radio_style="false" width="100" />
|
||||||
<check_box bottom="-276" enabled="true" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-276" enabled="true" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Socks" left="113"
|
height="16" initial_value="false" label="Socks" left="113"
|
||||||
mouse_opaque="true" name="checkbox_socks" radio_style="false" width="100" />
|
mouse_opaque="true" name="checkbox_socks" radio_style="false" width="100" />
|
||||||
<check_box bottom="-296" enabled="true" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-296" enabled="true" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Jacket" left="113"
|
height="16" initial_value="false" label="Jacket" left="113"
|
||||||
mouse_opaque="true" name="checkbox_jacket" radio_style="false" width="100" />
|
mouse_opaque="true" name="checkbox_jacket" radio_style="false" width="100" />
|
||||||
<check_box bottom="-316" enabled="true" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-316" enabled="true" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Gloves" left="113"
|
height="16" initial_value="false" label="Gloves" left="113"
|
||||||
mouse_opaque="true" name="checkbox_gloves" radio_style="false" width="100" />
|
mouse_opaque="true" name="checkbox_gloves" radio_style="false" width="100" />
|
||||||
<check_box bottom="-336" enabled="true" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-336" enabled="true" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Undershirt" left="113"
|
height="16" initial_value="false" label="Undershirt" left="113"
|
||||||
mouse_opaque="true" name="checkbox_undershirt" radio_style="false"
|
mouse_opaque="true" name="checkbox_undershirt" radio_style="false"
|
||||||
width="100" />
|
width="100" />
|
||||||
<check_box bottom="-356" enabled="true" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-356" enabled="true" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Underpants" left="113"
|
height="16" initial_value="false" label="Underpants" left="113"
|
||||||
mouse_opaque="true" name="checkbox_underpants" radio_style="false"
|
mouse_opaque="true" name="checkbox_underpants" radio_style="false"
|
||||||
width="100" />
|
width="100" />
|
||||||
<check_box bottom="-376" enabled="true" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-376" enabled="true" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Skirt" left="113"
|
height="16" initial_value="false" label="Skirt" left="113"
|
||||||
mouse_opaque="true" name="checkbox_skirt" radio_style="false" width="100" />
|
mouse_opaque="true" name="checkbox_skirt" radio_style="false" width="100" />
|
||||||
<check_box bottom="-396" enabled="true" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-396" enabled="true" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Tattoo" left="113"
|
height="16" initial_value="false" label="Tattoo" left="113"
|
||||||
mouse_opaque="true" name="checkbox_tattoo" radio_style="false" width="100" />
|
mouse_opaque="true" name="checkbox_tattoo" radio_style="false" width="100" />
|
||||||
<check_box bottom="-416" enabled="true" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-416" enabled="true" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Alpha" left="113"
|
height="16" initial_value="false" label="Alpha" left="113"
|
||||||
mouse_opaque="true" name="checkbox_alpha" radio_style="false" width="100" />
|
mouse_opaque="true" name="checkbox_alpha" radio_style="false" width="100" />
|
||||||
<check_box bottom="-436" enabled="true" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-436" enabled="true" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Physics" left="113"
|
height="16" initial_value="false" label="Physics" left="113"
|
||||||
mouse_opaque="true" name="checkbox_physics" radio_style="false" width="100" />
|
mouse_opaque="true" name="checkbox_physics" radio_style="false" width="100" />
|
||||||
<check_box bottom="-216" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-216" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Chest" left="213"
|
height="16" initial_value="false" label="Chest" left="213"
|
||||||
mouse_opaque="true" name="checkbox_Chest" radio_style="false" width="100" />
|
mouse_opaque="true" name="checkbox_Chest" radio_style="false" width="100" />
|
||||||
<check_box bottom="-236" enabled="true" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-236" enabled="true" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="true" label="Skull" left="213"
|
height="16" initial_value="true" label="Skull" left="213"
|
||||||
mouse_opaque="true" name="checkbox_Skull" radio_style="false" width="100" />
|
mouse_opaque="true" name="checkbox_Skull" radio_style="false" width="100" />
|
||||||
<check_box bottom="-256" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-256" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Left Shoulder" left="213"
|
height="16" initial_value="false" label="Left Shoulder" left="213"
|
||||||
mouse_opaque="true" name="checkbox_Left Shoulder" radio_style="false"
|
mouse_opaque="true" name="checkbox_Left Shoulder" radio_style="false"
|
||||||
width="100" />
|
width="100" />
|
||||||
<check_box bottom="-276" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-276" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Right Shoulder" left="213"
|
height="16" initial_value="false" label="Right Shoulder" left="213"
|
||||||
mouse_opaque="true" name="checkbox_Right Shoulder" radio_style="false"
|
mouse_opaque="true" name="checkbox_Right Shoulder" radio_style="false"
|
||||||
width="106" />
|
width="106" />
|
||||||
<check_box bottom="-296" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-296" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Left Hand" left="213"
|
height="16" initial_value="false" label="Left Hand" left="213"
|
||||||
mouse_opaque="true" name="checkbox_Left Hand" radio_style="false"
|
mouse_opaque="true" name="checkbox_Left Hand" radio_style="false"
|
||||||
width="100" />
|
width="100" />
|
||||||
<check_box bottom="-316" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-316" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Right Hand" left="213"
|
height="16" initial_value="false" label="Right Hand" left="213"
|
||||||
mouse_opaque="true" name="checkbox_Right Hand" radio_style="false"
|
mouse_opaque="true" name="checkbox_Right Hand" radio_style="false"
|
||||||
width="100" />
|
width="100" />
|
||||||
<check_box bottom="-336" enabled="true" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-336" enabled="true" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="true" label="Left Foot" left="213"
|
height="16" initial_value="true" label="Left Foot" left="213"
|
||||||
mouse_opaque="true" name="checkbox_Left Foot" radio_style="false"
|
mouse_opaque="true" name="checkbox_Left Foot" radio_style="false"
|
||||||
width="100" />
|
width="100" />
|
||||||
<check_box bottom="-356" enabled="true" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-356" enabled="true" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="true" label="Right Foot" left="213"
|
height="16" initial_value="true" label="Right Foot" left="213"
|
||||||
mouse_opaque="true" name="checkbox_Right Foot" radio_style="false"
|
mouse_opaque="true" name="checkbox_Right Foot" radio_style="false"
|
||||||
width="100" />
|
width="100" />
|
||||||
<check_box bottom="-376" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-376" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Spine" left="213"
|
height="16" initial_value="false" label="Spine" left="213"
|
||||||
mouse_opaque="true" name="checkbox_Spine" radio_style="false" width="100" />
|
mouse_opaque="true" name="checkbox_Spine" radio_style="false" width="100" />
|
||||||
<check_box bottom="-396" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-396" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Pelvis" left="213"
|
height="16" initial_value="false" label="Pelvis" left="213"
|
||||||
mouse_opaque="true" name="checkbox_Pelvis" radio_style="false" width="100" />
|
mouse_opaque="true" name="checkbox_Pelvis" radio_style="false" width="100" />
|
||||||
<check_box bottom="-416" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-416" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Mouth" left="213"
|
height="16" initial_value="false" label="Mouth" left="213"
|
||||||
mouse_opaque="true" name="checkbox_Mouth" radio_style="false" width="100" />
|
mouse_opaque="true" name="checkbox_Mouth" radio_style="false" width="100" />
|
||||||
<check_box bottom="-436" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-436" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Chin" left="213"
|
height="16" initial_value="false" label="Chin" left="213"
|
||||||
mouse_opaque="true" name="checkbox_Chin" radio_style="false" width="100" />
|
mouse_opaque="true" name="checkbox_Chin" radio_style="false" width="100" />
|
||||||
<check_box bottom="-456" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-456" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Left Ear" left="213"
|
height="16" initial_value="false" label="Left Ear" left="213"
|
||||||
mouse_opaque="true" name="checkbox_Left Ear" radio_style="false"
|
mouse_opaque="true" name="checkbox_Left Ear" radio_style="false"
|
||||||
width="100" />
|
width="100" />
|
||||||
<check_box bottom="-216" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-216" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Right Ear" left="313"
|
height="16" initial_value="false" label="Right Ear" left="313"
|
||||||
mouse_opaque="true" name="checkbox_Right Ear" radio_style="false"
|
mouse_opaque="true" name="checkbox_Right Ear" radio_style="false"
|
||||||
width="100" />
|
width="100" />
|
||||||
<check_box bottom="-236" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-236" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Left Eyeball" left="313"
|
height="16" initial_value="false" label="Left Eyeball" left="313"
|
||||||
mouse_opaque="true" name="checkbox_Left Eyeball" radio_style="false"
|
mouse_opaque="true" name="checkbox_Left Eyeball" radio_style="false"
|
||||||
width="100" />
|
width="100" />
|
||||||
<check_box bottom="-256" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-256" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Right Eyeball" left="313"
|
height="16" initial_value="false" label="Right Eyeball" left="313"
|
||||||
mouse_opaque="true" name="checkbox_Right Eyeball" radio_style="false"
|
mouse_opaque="true" name="checkbox_Right Eyeball" radio_style="false"
|
||||||
width="100" />
|
width="100" />
|
||||||
<check_box bottom="-276" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-276" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Nose" left="313"
|
height="16" initial_value="false" label="Nose" left="313"
|
||||||
mouse_opaque="true" name="checkbox_Nose" radio_style="false" width="100" />
|
mouse_opaque="true" name="checkbox_Nose" radio_style="false" width="100" />
|
||||||
<check_box bottom="-296" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-296" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="R Upper Arm" left="313"
|
height="16" initial_value="false" label="R Upper Arm" left="313"
|
||||||
mouse_opaque="true" name="checkbox_R Upper Arm" radio_style="false"
|
mouse_opaque="true" name="checkbox_R Upper Arm" radio_style="false"
|
||||||
width="100" />
|
width="100" />
|
||||||
<check_box bottom="-316" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-316" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="R Forearm" left="313"
|
height="16" initial_value="false" label="R Forearm" left="313"
|
||||||
mouse_opaque="true" name="checkbox_R Forearm" radio_style="false"
|
mouse_opaque="true" name="checkbox_R Forearm" radio_style="false"
|
||||||
width="100" />
|
width="100" />
|
||||||
<check_box bottom="-336" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-336" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="L Upper Arm" left="313"
|
height="16" initial_value="false" label="L Upper Arm" left="313"
|
||||||
mouse_opaque="true" name="checkbox_L Upper Arm" radio_style="false"
|
mouse_opaque="true" name="checkbox_L Upper Arm" radio_style="false"
|
||||||
width="100" />
|
width="100" />
|
||||||
<check_box bottom="-356" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-356" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="L Forearm" left="313"
|
height="16" initial_value="false" label="L Forearm" left="313"
|
||||||
mouse_opaque="true" name="checkbox_L Forearm" radio_style="false"
|
mouse_opaque="true" name="checkbox_L Forearm" radio_style="false"
|
||||||
width="100" />
|
width="100" />
|
||||||
<check_box bottom="-376" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-376" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Right Hip" left="313"
|
height="16" initial_value="false" label="Right Hip" left="313"
|
||||||
mouse_opaque="true" name="checkbox_Right Hip" radio_style="false"
|
mouse_opaque="true" name="checkbox_Right Hip" radio_style="false"
|
||||||
width="100" />
|
width="100" />
|
||||||
<check_box bottom="-396" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-396" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="R Upper Leg" left="313"
|
height="16" initial_value="false" label="R Upper Leg" left="313"
|
||||||
mouse_opaque="true" name="checkbox_R Upper Leg" radio_style="false"
|
mouse_opaque="true" name="checkbox_R Upper Leg" radio_style="false"
|
||||||
width="100" />
|
width="100" />
|
||||||
<check_box bottom="-416" enabled="true" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-416" enabled="true" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="true" label="R Lower Leg" left="313"
|
height="16" initial_value="true" label="R Lower Leg" left="313"
|
||||||
mouse_opaque="true" name="checkbox_R Lower Leg" radio_style="false"
|
mouse_opaque="true" name="checkbox_R Lower Leg" radio_style="false"
|
||||||
width="100" />
|
width="100" />
|
||||||
<check_box bottom="-436" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-436" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Left Hip" left="313"
|
height="16" initial_value="false" label="Left Hip" left="313"
|
||||||
mouse_opaque="true" name="checkbox_Left Hip" radio_style="false"
|
mouse_opaque="true" name="checkbox_Left Hip" radio_style="false"
|
||||||
width="100" />
|
width="100" />
|
||||||
<check_box bottom="-456" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-456" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="L Upper Leg" left="313"
|
height="16" initial_value="false" label="L Upper Leg" left="313"
|
||||||
mouse_opaque="true" name="checkbox_L Upper Leg" radio_style="false"
|
mouse_opaque="true" name="checkbox_L Upper Leg" radio_style="false"
|
||||||
width="100" />
|
width="100" />
|
||||||
<check_box bottom="-216" enabled="true" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-216" enabled="true" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="true" label="L Lower Leg" left="413"
|
height="16" initial_value="true" label="L Lower Leg" left="413"
|
||||||
mouse_opaque="true" name="checkbox_L Lower Leg" radio_style="false"
|
mouse_opaque="true" name="checkbox_L Lower Leg" radio_style="false"
|
||||||
width="100" />
|
width="100" />
|
||||||
<check_box bottom="-236" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-236" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Stomach" left="413"
|
height="16" initial_value="false" label="Stomach" left="413"
|
||||||
mouse_opaque="true" name="checkbox_Stomach" radio_style="false" width="100" />
|
mouse_opaque="true" name="checkbox_Stomach" radio_style="false" width="100" />
|
||||||
<check_box bottom="-256" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-256" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Left Pec" left="413"
|
height="16" initial_value="false" label="Left Pec" left="413"
|
||||||
mouse_opaque="true" name="checkbox_Left Pec" radio_style="false"
|
mouse_opaque="true" name="checkbox_Left Pec" radio_style="false"
|
||||||
width="100" />
|
width="100" />
|
||||||
<check_box bottom="-276" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-276" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Right Pec" left="413"
|
height="16" initial_value="false" label="Right Pec" left="413"
|
||||||
mouse_opaque="true" name="checkbox_Right Pec" radio_style="false"
|
mouse_opaque="true" name="checkbox_Right Pec" radio_style="false"
|
||||||
width="100" />
|
width="100" />
|
||||||
<check_box bottom="-296" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-296" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
|
height="16" initial_value="false" label="Neck" left="413"
|
||||||
|
mouse_opaque="true" name="checkbox_Neck" radio_style="false"
|
||||||
|
width="100" />
|
||||||
|
<check_box bottom="-316" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
|
height="16" initial_value="false" label="Root" left="413"
|
||||||
|
mouse_opaque="true" name="checkbox_Root" radio_style="false"
|
||||||
|
width="100" />
|
||||||
|
<check_box bottom="-336" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Center 2" left="413"
|
height="16" initial_value="false" label="Center 2" left="413"
|
||||||
mouse_opaque="true" name="checkbox_Center 2" radio_style="false"
|
mouse_opaque="true" name="checkbox_Center 2" radio_style="false"
|
||||||
width="100" />
|
width="100" />
|
||||||
<check_box bottom="-316" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-356" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Top Right" left="413"
|
height="16" initial_value="false" label="Top Right" left="413"
|
||||||
mouse_opaque="true" name="checkbox_Top Right" radio_style="false"
|
mouse_opaque="true" name="checkbox_Top Right" radio_style="false"
|
||||||
width="100" />
|
width="100" />
|
||||||
<check_box bottom="-336" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-376" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Top" left="413"
|
height="16" initial_value="false" label="Top" left="413"
|
||||||
mouse_opaque="true" name="checkbox_Top" radio_style="false" width="100" />
|
mouse_opaque="true" name="checkbox_Top" radio_style="false" width="100" />
|
||||||
<check_box bottom="-356" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-396" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Top Left" left="413"
|
height="16" initial_value="false" label="Top Left" left="413"
|
||||||
mouse_opaque="true" name="checkbox_Top Left" radio_style="false"
|
mouse_opaque="true" name="checkbox_Top Left" radio_style="false"
|
||||||
width="100" />
|
width="100" />
|
||||||
<check_box bottom="-376" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-416" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Center" left="413"
|
height="16" initial_value="false" label="Center" left="413"
|
||||||
mouse_opaque="true" name="checkbox_Center" radio_style="false" width="100" />
|
mouse_opaque="true" name="checkbox_Center" radio_style="false" width="100" />
|
||||||
<check_box bottom="-396" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-436" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Bottom Left" left="413"
|
height="16" initial_value="false" label="Bottom Left" left="413"
|
||||||
mouse_opaque="true" name="checkbox_Bottom Left" radio_style="false"
|
mouse_opaque="true" name="checkbox_Bottom Left" radio_style="false"
|
||||||
width="100" />
|
width="100" />
|
||||||
<check_box bottom="-416" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-456" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Bottom" left="413"
|
height="16" initial_value="false" label="Bottom" left="413"
|
||||||
mouse_opaque="true" name="checkbox_Bottom" radio_style="false" width="100" />
|
mouse_opaque="true" name="checkbox_Bottom" radio_style="false" width="100" />
|
||||||
<check_box bottom="-436" enabled="false" follows="left|top" font="SansSerifSmall"
|
<check_box bottom="-476" enabled="false" follows="left|top" font="SansSerifSmall"
|
||||||
height="16" initial_value="false" label="Bottom Right" left="413"
|
height="16" initial_value="false" label="Bottom Right" left="413"
|
||||||
mouse_opaque="true" name="checkbox_Bottom Right" radio_style="false"
|
mouse_opaque="true" name="checkbox_Bottom Right" radio_style="false"
|
||||||
width="100" />
|
width="100" />
|
||||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||||
bottom="-24" drop_shadow_visible="true" enabled="true" follows="left|top"
|
bottom="-24" drop_shadow_visible="true" enabled="true" follows="left|top"
|
||||||
font="SansSerif" h_pad="0" halign="left" height="16" left="13"
|
font="SansSerif" h_pad="0" halign="left" height="16" left="13"
|
||||||
mouse_opaque="true" name="Make New Outfit" v_pad="0" width="489">
|
mouse_opaque="true" name="Make New Outfit" v_pad="0" width="489">
|
||||||
Make New Outfit
|
Make New Outfit
|
||||||
</text>
|
</text>
|
||||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||||
bottom="-102" drop_shadow_visible="true" enabled="true" follows="left|top"
|
bottom="-102" drop_shadow_visible="true" enabled="true" follows="left|top"
|
||||||
font="SansSerifSmall" h_pad="0" halign="left" height="70" left="13"
|
font="SansSerifSmall" h_pad="0" halign="left" height="70" left="13"
|
||||||
mouse_opaque="true"
|
mouse_opaque="true"
|
||||||
name="Outfits are folders that contain clothing and body parts. Drag an outfit folder onto your avatar to put it on. "Make New Outfit" makes a new folder and saves copies of the items you are now wearing into it."
|
name="Outfits are folders that contain clothing and body parts. Drag an outfit folder onto your avatar to put it on. "Make New Outfit" makes a new folder and saves copies of the items you are now wearing into it."
|
||||||
v_pad="0" width="489">
|
v_pad="0" width="489">
|
||||||
Outfits are folders that contain clothing and body parts.
|
Outfits are folders that contain clothing and body parts.
|
||||||
Drag an outfit folder onto your avatar to put it on.
|
Drag an outfit folder onto your avatar to put it on.
|
||||||
|
|
||||||
"Make New Outfit" makes a new folder and saves copies of the items you are
|
"Make New Outfit" makes a new folder and saves copies of the items you are
|
||||||
now wearing into it.
|
now wearing into it.
|
||||||
</text>
|
</text>
|
||||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||||
bottom="-126" drop_shadow_visible="true" enabled="true" follows="left|top"
|
bottom="-126" drop_shadow_visible="true" enabled="true" follows="left|top"
|
||||||
font="SansSerif" h_pad="0" halign="left" height="16" left="13"
|
font="SansSerif" h_pad="0" halign="left" height="16" left="13"
|
||||||
mouse_opaque="true" name="Folder name:" v_pad="0" width="489">
|
mouse_opaque="true" name="Folder name:" v_pad="0" width="489">
|
||||||
Folder name:
|
Folder name:
|
||||||
</text>
|
</text>
|
||||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||||
bottom="-174" drop_shadow_visible="true" enabled="true" follows="left|top"
|
bottom="-174" drop_shadow_visible="true" enabled="true" follows="left|top"
|
||||||
font="SansSerif" h_pad="0" halign="left" height="16" left="13"
|
font="SansSerif" h_pad="0" halign="left" height="16" left="13"
|
||||||
mouse_opaque="true" name="Items to include in outfit:" v_pad="0"
|
mouse_opaque="true" name="Items to include in outfit:" v_pad="0"
|
||||||
width="489">
|
width="489">
|
||||||
Items to include in outfit:
|
Items to include in outfit:
|
||||||
</text>
|
</text>
|
||||||
<button bottom_delta="0" enabled="true" font="SansSerif" halign="center" height="20"
|
<button bottom_delta="0" enabled="true" font="SansSerif" halign="center" height="20"
|
||||||
label="Check All" left_delta="200" mouse_opaque="true"
|
label="Check All" left_delta="200" mouse_opaque="true"
|
||||||
name="Check All" scale_image="true" width="82" />
|
name="Check All" scale_image="true" width="82" />
|
||||||
<button bottom_delta="0" enabled="true" font="SansSerif" halign="center" height="20"
|
<button bottom_delta="0" enabled="true" font="SansSerif" halign="center" height="20"
|
||||||
label="Uncheck All" left_delta="100" mouse_opaque="true"
|
label="Uncheck All" left_delta="100" mouse_opaque="true"
|
||||||
name="Uncheck All" scale_image="true" width="82" />
|
name="Uncheck All" scale_image="true" width="82" />
|
||||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||||
bottom="-196" drop_shadow_visible="true" enabled="true" follows="left|top"
|
bottom="-196" drop_shadow_visible="true" enabled="true" follows="left|top"
|
||||||
font="SansSerifSmall" h_pad="0" halign="left" height="14" left="13"
|
font="SansSerifSmall" h_pad="0" halign="left" height="14" left="13"
|
||||||
mouse_opaque="true" name="Body Parts:" v_pad="0" width="100">
|
mouse_opaque="true" name="Body Parts:" v_pad="0" width="100">
|
||||||
Body Parts:
|
Body Parts:
|
||||||
</text>
|
</text>
|
||||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||||
bottom="-196" drop_shadow_visible="true" enabled="true" follows="left|top"
|
bottom="-196" drop_shadow_visible="true" enabled="true" follows="left|top"
|
||||||
font="SansSerifSmall" h_pad="0" halign="left" height="14" left="113"
|
font="SansSerifSmall" h_pad="0" halign="left" height="14" left="113"
|
||||||
mouse_opaque="true" name="Clothes:" v_pad="0" width="100">
|
mouse_opaque="true" name="Clothes:" v_pad="0" width="100">
|
||||||
Clothes:
|
Clothes:
|
||||||
</text>
|
</text>
|
||||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||||
bottom="-196" drop_shadow_visible="true" enabled="true" follows="left|top"
|
bottom="-196" drop_shadow_visible="true" enabled="true" follows="left|top"
|
||||||
font="SansSerifSmall" h_pad="0" halign="left" height="14" left="213"
|
font="SansSerifSmall" h_pad="0" halign="left" height="14" left="213"
|
||||||
mouse_opaque="true" name="Attachments:" v_pad="0" width="100">
|
mouse_opaque="true" name="Attachments:" v_pad="0" width="100">
|
||||||
Attachments:
|
Attachments:
|
||||||
</text>
|
</text>
|
||||||
<line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-150"
|
<line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-150"
|
||||||
enabled="true" follows="left|top" font="SansSerif"
|
enabled="true" follows="left|top" font="SansSerif"
|
||||||
handle_edit_keys_directly="true" height="20" left="13" max_length="63"
|
handle_edit_keys_directly="true" height="20" left="13" max_length="63"
|
||||||
mouse_opaque="true" name="name ed" select_all_on_focus_received="false"
|
mouse_opaque="true" name="name ed" select_all_on_focus_received="false"
|
||||||
select_on_focus="false" width="489" spell_check="true">
|
select_on_focus="false" width="489" spell_check="true">
|
||||||
New Outfit
|
New Outfit
|
||||||
</line_editor>
|
</line_editor>
|
||||||
</floater>
|
</floater>
|
||||||
|
|||||||
Reference in New Issue
Block a user