本文整理汇总了C++中LLParcelSelectionHandle::getParcel方法的典型用法代码示例。如果您正苦于以下问题:C++ LLParcelSelectionHandle::getParcel方法的具体用法?C++ LLParcelSelectionHandle::getParcel怎么用?C++ LLParcelSelectionHandle::getParcel使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LLParcelSelectionHandle
的用法示例。
在下文中一共展示了LLParcelSelectionHandle::getParcel方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: updateNames
void LLFloaterBuyLandUI::updateNames()
{
LLParcel* parcelp = mParcel->getParcel();
if (!parcelp)
{
mParcelSellerName = LLStringUtil::null;
return;
}
if (mIsClaim)
{
mParcelSellerName = "Linden Lab";
}
else if (parcelp->getIsGroupOwned())
{
gCacheName->getGroup(parcelp->getGroupID(),
boost::bind(&LLFloaterBuyLandUI::updateGroupName, this,
_1, _2, _3));
}
else
{
mParcelSellerName = LLSLURL("agent", parcelp->getOwnerID(), "completename").getSLURLString();
}
}
示例2: updateNames
void LLFloaterBuyLandUI::updateNames()
{
LLParcel* parcelp = mParcel->getParcel();
if (!parcelp)
{
mParcelSellerName = LLStringUtil::null;
return;
}
if (mIsClaim)
{
mParcelSellerName = "Linden Lab";
}
else if (parcelp->getIsGroupOwned())
{
mParcelSellerName = "(Loading...)";
gCacheName->getGroup(parcelp->getGroupID(),
boost::bind(&LLFloaterBuyLandUI::updateName, this,
_1, _2, _3));
}
else
{
mParcelSellerName = "(Loading...)";
gCacheName->get(parcelp->getOwnerID(), false,
boost::bind(&LLFloaterBuyLandUI::updateName, this,
_1, _2, _3));
}
}
示例3: updateNames
void LLFloaterBuyLandUI::updateNames()
{
LLParcel* parcelp = mParcel->getParcel();
if (!parcelp)
{
mParcelSellerName = LLStringUtil::null;
return;
}
if (mIsClaim)
{
mParcelSellerName = "Linden Lab";
}
else if (parcelp->getIsGroupOwned())
{
gCacheName->get(parcelp->getGroupID(), TRUE,
boost::bind(&LLFloaterBuyLandUI::updateGroupName, this,
_1, _2, _3, _4));
}
else
{
mParcelSellerName =
LLSLURL::buildCommand("agent", parcelp->getOwnerID(), "inspect");
}
}
示例4: updateGroupName
void LLFloaterBuyLandUI::updateGroupName(const LLUUID& id,
const std::string& name,
bool is_group)
{
LLParcel* parcelp = mParcel->getParcel();
if (parcelp
&& parcelp->getGroupID() == id)
{
// request is current
mParcelSellerName = name;
}
}
示例5: onConfirmSale
bool LLFloaterSellLandUI::onConfirmSale(const LLSD& notification, const LLSD& response)
{
S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
if (option != 0)
{
return false;
}
S32 sale_price = getChild<LLUICtrl>("price")->getValue();
// Valid extracted data
if (sale_price < 0)
{
// TomY TODO: Throw an error
return false;
}
LLParcel* parcel = mParcelSelection->getParcel();
if (!parcel) return false;
// can_agent_modify_parcel deprecated by GROUPS
// if (!can_agent_modify_parcel(parcel))
// {
// close();
// return;
// }
parcel->setParcelFlag(PF_FOR_SALE, TRUE);
parcel->setSalePrice(sale_price);
bool sell_with_objects = false;
if ("yes" == getChild<LLUICtrl>("sell_objects")->getValue().asString())
{
sell_with_objects = true;
}
parcel->setSellWithObjects(sell_with_objects);
if ("user" == getChild<LLUICtrl>("sell_to")->getValue().asString())
{
parcel->setAuthorizedBuyerID(mAuthorizedBuyer);
}
else
{
parcel->setAuthorizedBuyerID(LLUUID::null);
}
// Send update to server
LLViewerParcelMgr::getInstance()->sendParcelPropertiesUpdate( parcel );
closeFloater();
return false;
}
示例6: callbackAvatarPick
void LLFloaterSellLandUI::callbackAvatarPick(const uuid_vec_t& ids, const std::vector<LLAvatarName> names)
{
LLParcel* parcel = mParcelSelection->getParcel();
if (names.empty() || ids.empty()) return;
LLUUID id = ids[0];
parcel->setAuthorizedBuyerID(id);
mAuthorizedBuyer = ids[0];
getChild<LLUICtrl>("sell_to_agent")->setValue(names[0].getCompleteName());
refreshUI();
}
示例7: setParcel
bool LLFloaterSellLandUI::setParcel(LLViewerRegion* region, LLParcelSelectionHandle parcel)
{
if (!parcel->getParcel())
{
return false;
}
mRegion = region;
mParcelSelection = parcel;
mChoseSellTo = false;
updateParcelInfo();
refreshUI();
return true;
}
示例8: setParcel
bool LLFloaterSellLandUI::setParcel(LLViewerRegion* region, LLParcelSelectionHandle parcel)
{
if (!parcel->getParcel()) // || !can_agent_modify_parcel(parcel)) // can_agent_modify_parcel was deprecated by GROUPS
{
return false;
}
mRegion = region;
mParcelSelection = parcel;
mChoseSellTo = false;
updateParcelInfo();
refreshUI();
return true;
}
示例9: updateParcelInfo
void LLFloaterSellLandUI::updateParcelInfo()
{
LLParcel* parcelp = mParcelSelection->getParcel();
if (!parcelp) return;
mParcelActualArea = parcelp->getArea();
mParcelIsForSale = parcelp->getForSale();
if (mParcelIsForSale)
{
mChoseSellTo = true;
}
mParcelPrice = mParcelIsForSale ? parcelp->getSalePrice() : 0;
mParcelSoldWithObjects = parcelp->getSellWithObjects();
if (mParcelIsForSale)
{
childSetValue("price", mParcelPrice);
if (mParcelSoldWithObjects)
{
childSetValue("sell_objects", "yes");
}
else
{
childSetValue("sell_objects", "no");
}
}
else
{
childSetValue("price", "");
childSetValue("sell_objects", "none");
}
mParcelSnapshot = parcelp->getSnapshotID();
mAuthorizedBuyer = parcelp->getAuthorizedBuyerID();
mSellToBuyer = mAuthorizedBuyer.notNull();
if(mSellToBuyer)
{
std::string name;
gCacheName->getFullName(mAuthorizedBuyer, name);
childSetText("sell_to_agent", name);
}
}
示例10: updateParcelInfo
void LLFloaterSellLandUI::updateParcelInfo()
{
LLParcel* parcelp = mParcelSelection->getParcel();
if (!parcelp) return;
mParcelActualArea = parcelp->getArea();
mParcelIsForSale = parcelp->getForSale();
if (mParcelIsForSale)
{
mChoseSellTo = true;
}
mParcelPrice = mParcelIsForSale ? parcelp->getSalePrice() : 0;
mParcelSoldWithObjects = parcelp->getSellWithObjects();
if (mParcelIsForSale)
{
getChild<LLUICtrl>("price")->setValue(mParcelPrice);
if (mParcelSoldWithObjects)
{
getChild<LLUICtrl>("sell_objects")->setValue("yes");
}
else
{
getChild<LLUICtrl>("sell_objects")->setValue("no");
}
}
else
{
getChild<LLUICtrl>("price")->setValue("");
getChild<LLUICtrl>("sell_objects")->setValue("none");
}
mParcelSnapshot = parcelp->getSnapshotID();
mAuthorizedBuyer = parcelp->getAuthorizedBuyerID();
mSellToBuyer = mAuthorizedBuyer.notNull();
if(mSellToBuyer)
{
LLAvatarNameCache::get(mAuthorizedBuyer,
boost::bind(&LLFloaterSellLandUI::onBuyerNameCache, this, _2));
}
}
示例11: updateNames
void LLFloaterBuyLandUI::updateNames()
{
LLParcel* parcelp = mParcel->getParcel();
if (!parcelp)
{
mParcelSellerName = LLStringUtil::null;
return;
}
if (mIsClaim)
{
mParcelSellerName = "Linden Lab";
}
else if (parcelp->getIsGroupOwned())
{
gCacheName->getGroupName(parcelp->getGroupID(), mParcelSellerName);
}
else
{
gCacheName->getFullName(parcelp->getOwnerID(), mParcelSellerName);
}
}
示例12: updateParcelInfo
void LLFloaterBuyLandUI::updateParcelInfo()
{
LLParcel* parcel = mParcel->getParcel();
mParcelValid = parcel && mRegion;
mParcelIsForSale = false;
mParcelIsGroupLand = false;
mParcelGroupContribution = 0;
mParcelPrice = 0;
mParcelActualArea = 0;
mParcelBillableArea = 0;
mParcelSupportedObjects = 0;
mParcelSoldWithObjects = false;
mParcelLocation = "";
mParcelSnapshot.setNull();
mParcelSellerName = "";
mCanBuy = false;
mCannotBuyIsError = false;
if (!mParcelValid)
{
mCannotBuyReason = getString("no_land_selected");
return;
}
if (mParcel->getMultipleOwners())
{
mCannotBuyReason = getString("multiple_parcels_selected");
return;
}
const LLUUID& parcelOwner = parcel->getOwnerID();
mIsClaim = parcel->isPublic();
if (!mIsClaim)
{
mParcelActualArea = parcel->getArea();
mParcelIsForSale = parcel->getForSale();
mParcelIsGroupLand = parcel->getIsGroupOwned();
mParcelPrice = mParcelIsForSale ? parcel->getSalePrice() : 0;
if (mParcelIsGroupLand)
{
LLUUID group_id = parcel->getGroupID();
mParcelGroupContribution = gAgent.getGroupContribution(group_id);
}
}
else
{
mParcelActualArea = mParcel->getClaimableArea();
mParcelIsForSale = true;
mParcelPrice = mParcelActualArea * parcel->getClaimPricePerMeter();
}
mParcelBillableArea =
llround(mRegion->getBillableFactor() * mParcelActualArea);
mParcelSupportedObjects = llround(
parcel->getMaxPrimCapacity() * parcel->getParcelPrimBonus());
// Can't have more than region max tasks, regardless of parcel
// object bonus factor.
LLViewerRegion* region = LLViewerParcelMgr::getInstance()->getSelectionRegion();
if(region)
{
S32 max_tasks_per_region = (S32)region->getMaxTasks();
mParcelSupportedObjects = llmin(
mParcelSupportedObjects, max_tasks_per_region);
}
mParcelSoldWithObjects = parcel->getSellWithObjects();
LLVector3 center = parcel->getCenterpoint();
mParcelLocation = llformat("%s %d,%d",
mRegion->getName().c_str(),
(int)center[VX], (int)center[VY]
);
mParcelSnapshot = parcel->getSnapshotID();
updateNames();
bool haveEnoughCash = mParcelPrice <= mAgentCashBalance;
S32 cashBuy = haveEnoughCash ? 0 : (mParcelPrice - mAgentCashBalance);
mCurrency.setAmount(cashBuy, true);
mCurrency.setZeroMessage(haveEnoughCash ? getString("none_needed") : LLStringUtil::null);
// checks that we can buy the land
if(mIsForGroup && !gAgent.hasPowerInActiveGroup(GP_LAND_DEED))
{
mCannotBuyReason = getString("cant_buy_for_group");
return;
}
if (!mIsClaim)
{
const LLUUID& authorizedBuyer = parcel->getAuthorizedBuyerID();
const LLUUID buyer = gAgent.getID();
const LLUUID newOwner = mIsForGroup ? gAgent.getGroupID() : buyer;
//.........这里部分代码省略.........
示例13: refreshUI
void LLFloaterSellLandUI::refreshUI()
{
LLParcel* parcelp = mParcelSelection->getParcel();
if (!parcelp) return;
LLTextureCtrl* snapshot = getChild<LLTextureCtrl>("info_image");
snapshot->setImageAssetID(mParcelSnapshot);
getChild<LLUICtrl>("info_parcel")->setValue(parcelp->getName());
getChild<LLUICtrl>("info_size")->setTextArg("[AREA]", llformat("%d", mParcelActualArea));
std::string price_str = getChild<LLUICtrl>("price")->getValue().asString();
bool valid_price = false;
valid_price = (price_str != "") && LLTextValidate::validateNonNegativeS32(utf8str_to_wstring(price_str));
if (valid_price && mParcelActualArea > 0)
{
F32 per_meter_price = 0;
per_meter_price = F32(mParcelPrice) / F32(mParcelActualArea);
std::string type_currency = LLGridManager::getInstance()->getCurrency();
getChild<LLUICtrl>("price_per_m")->setTextArg("[CUR]", type_currency);
getChild<LLUICtrl>("price_per_m")->setTextArg("[PER_METER]", llformat("%0.2f", per_meter_price));
getChildView("price_per_m")->setVisible(TRUE);
setBadge("step_price", BADGE_OK);
}
else
{
getChildView("price_per_m")->setVisible(FALSE);
if ("" == price_str)
{
setBadge("step_price", BADGE_NOTE);
}
else
{
setBadge("step_price", BADGE_ERROR);
}
}
if (mSellToBuyer)
{
getChild<LLUICtrl>("sell_to")->setValue("user");
getChildView("sell_to_agent")->setVisible(TRUE);
getChildView("sell_to_select_agent")->setVisible(TRUE);
}
else
{
if (mChoseSellTo)
{
getChild<LLUICtrl>("sell_to")->setValue("anyone");
}
else
{
getChild<LLUICtrl>("sell_to")->setValue("select");
}
getChildView("sell_to_agent")->setVisible(FALSE);
getChildView("sell_to_select_agent")->setVisible(FALSE);
}
// Must select Sell To: Anybody, or User (with a specified username)
std::string sell_to = getChild<LLUICtrl>("sell_to")->getValue().asString();
bool valid_sell_to = "select" != sell_to &&
("user" != sell_to || mAuthorizedBuyer.notNull());
if (!valid_sell_to)
{
setBadge("step_sell_to", BADGE_NOTE);
}
else
{
setBadge("step_sell_to", BADGE_OK);
}
bool valid_sell_objects = ("none" != getChild<LLUICtrl>("sell_objects")->getValue().asString());
if (!valid_sell_objects)
{
setBadge("step_sell_objects", BADGE_NOTE);
}
else
{
setBadge("step_sell_objects", BADGE_OK);
}
if (valid_sell_to && valid_price && valid_sell_objects)
{
getChildView("sell_btn")->setEnabled(TRUE);
}
else
{
getChildView("sell_btn")->setEnabled(FALSE);
}
}
示例14: refreshUI
void LLFloaterSellLandUI::refreshUI()
{
LLParcel* parcelp = mParcelSelection->getParcel();
if (!parcelp) return;
LLTextureCtrl* snapshot = getChild<LLTextureCtrl>("info_image");
if (snapshot)
{
snapshot->setImageAssetID(mParcelSnapshot);
}
childSetText("info_parcel", parcelp->getName());
childSetTextArg("info_size", "[AREA]", llformat("%d", mParcelActualArea));
childSetTextArg("price_ld", "[CURRENCY]", gHippoGridManager->getConnectedGrid()->getCurrencySymbol());
std::string price_str = childGetValue("price").asString();
bool valid_price = false;
valid_price = (price_str != "") && LLLineEditor::prevalidateNonNegativeS32(utf8str_to_wstring(price_str));
if (valid_price && mParcelActualArea > 0)
{
F32 per_meter_price = 0;
per_meter_price = F32(mParcelPrice) / F32(mParcelActualArea);
childSetTextArg("price_per_m", "[PER_METER]", llformat("%0.2f", per_meter_price));
childShow("price_per_m");
setBadge("step_price", BADGE_OK);
}
else
{
childHide("price_per_m");
if ("" == price_str)
{
setBadge("step_price", BADGE_NOTE);
}
else
{
setBadge("step_price", BADGE_ERROR);
}
}
if (mSellToBuyer)
{
childSetValue("sell_to", "user");
childShow("sell_to_agent");
childShow("sell_to_select_agent");
}
else
{
if (mChoseSellTo)
{
childSetValue("sell_to", "anyone");
}
else
{
childSetValue("sell_to", "select");
}
childHide("sell_to_agent");
childHide("sell_to_select_agent");
}
// Must select Sell To: Anybody, or User (with a specified username)
std::string sell_to = childGetValue("sell_to").asString();
bool valid_sell_to = "select" != sell_to &&
("user" != sell_to || mAuthorizedBuyer.notNull());
if (!valid_sell_to)
{
setBadge("step_sell_to", BADGE_NOTE);
}
else
{
setBadge("step_sell_to", BADGE_OK);
}
bool valid_sell_objects = ("none" != childGetValue("sell_objects").asString());
if (!valid_sell_objects)
{
setBadge("step_sell_objects", BADGE_NOTE);
}
else
{
setBadge("step_sell_objects", BADGE_OK);
}
if (valid_sell_to && valid_price && valid_sell_objects)
{
childEnable("sell_btn");
}
else
{
childDisable("sell_btn");
}
}