Moved LLFloaterPay implementation to .cpp file so header file is just lightweight interface. Not reviewed.
parent
d4b468cd70
commit
5c51eb5a34
|
|
@ -306,7 +306,7 @@ bool LLAvatarActions::handlePay(const LLSD& notification, const LLSD& response,
|
|||
gAgent.clearBusy();
|
||||
}
|
||||
|
||||
LLFloaterPay::payDirectly(&give_money, avatar_id, /*is_group=*/FALSE);
|
||||
LLFloaterPayUtil::payDirectly(&give_money, avatar_id, /*is_group=*/false);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -36,6 +36,9 @@
|
|||
#include "llfloaterpay.h"
|
||||
|
||||
#include "message.h"
|
||||
#include "llfloater.h"
|
||||
#include "lllslconstants.h" // MAX_PAY_BUTTONS
|
||||
#include "lluuid.h"
|
||||
|
||||
#include "llagent.h"
|
||||
#include "llfloaterreg.h"
|
||||
|
|
@ -62,6 +65,7 @@
|
|||
//
|
||||
// A small class used to track callback information
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
class LLFloaterPay;
|
||||
|
||||
struct LLGiveMoneyInfo
|
||||
{
|
||||
|
|
@ -75,6 +79,52 @@ struct LLGiveMoneyInfo
|
|||
/// Class LLFloaterPay
|
||||
///----------------------------------------------------------------------------
|
||||
|
||||
class LLFloaterPay : public LLFloater
|
||||
{
|
||||
public:
|
||||
LLFloaterPay(const LLSD& key);
|
||||
virtual ~LLFloaterPay();
|
||||
/*virtual*/ BOOL postBuild();
|
||||
|
||||
void setCallback(money_callback callback) { mCallback = callback; }
|
||||
|
||||
void onClose();
|
||||
|
||||
static void payViaObject(money_callback callback, LLSafeHandle<LLObjectSelection> selection);
|
||||
|
||||
static void payDirectly(money_callback callback,
|
||||
const LLUUID& target_id,
|
||||
bool is_group);
|
||||
|
||||
private:
|
||||
static void onCancel(void* data);
|
||||
static void onKeystroke(LLLineEditor* editor, void* data);
|
||||
static void onGive(void* data);
|
||||
void give(S32 amount);
|
||||
static void processPayPriceReply(LLMessageSystem* msg, void **userdata);
|
||||
void onCacheOwnerName(const LLUUID& owner_id,
|
||||
const std::string& firstname,
|
||||
const std::string& lastname,
|
||||
BOOL is_group);
|
||||
void finishPayUI(const LLUUID& target_id, BOOL is_group);
|
||||
|
||||
protected:
|
||||
std::vector<LLGiveMoneyInfo*> mCallbackData;
|
||||
money_callback mCallback;
|
||||
LLTextBox* mObjectNameText;
|
||||
LLUUID mTargetUUID;
|
||||
BOOL mTargetIsGroup;
|
||||
BOOL mHaveName;
|
||||
|
||||
LLButton* mQuickPayButton[MAX_PAY_BUTTONS];
|
||||
LLGiveMoneyInfo* mQuickPayInfo[MAX_PAY_BUTTONS];
|
||||
|
||||
LLSafeHandle<LLObjectSelection> mObjectSelection;
|
||||
|
||||
static S32 sLastAmount;
|
||||
};
|
||||
|
||||
|
||||
S32 LLFloaterPay::sLastAmount = 0;
|
||||
const S32 MAX_AMOUNT_LENGTH = 10;
|
||||
const S32 FASTPAY_BUTTON_WIDTH = 80;
|
||||
|
|
@ -352,7 +402,7 @@ void LLFloaterPay::payViaObject(money_callback callback, LLSafeHandle<LLObjectSe
|
|||
|
||||
void LLFloaterPay::payDirectly(money_callback callback,
|
||||
const LLUUID& target_id,
|
||||
BOOL is_group)
|
||||
bool is_group)
|
||||
{
|
||||
LLFloaterPay *floater = LLFloaterReg::showTypedInstance<LLFloaterPay>("pay_resident", LLSD(target_id));
|
||||
if (!floater)
|
||||
|
|
@ -496,3 +546,28 @@ void LLFloaterPay::give(S32 amount)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Namespace LLFloaterPayUtil
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
void LLFloaterPayUtil::registerFloater()
|
||||
{
|
||||
// Sneaky, use same code but different XML for dialogs
|
||||
LLFloaterReg::add("pay_resident", "floater_pay.xml",
|
||||
&LLFloaterReg::build<LLFloaterPay>);
|
||||
LLFloaterReg::add("pay_object", "floater_pay_object.xml",
|
||||
&LLFloaterReg::build<LLFloaterPay>);
|
||||
}
|
||||
|
||||
void LLFloaterPayUtil::payViaObject(money_callback callback,
|
||||
LLSafeHandle<LLObjectSelection> selection)
|
||||
{
|
||||
LLFloaterPay::payViaObject(callback, selection);
|
||||
}
|
||||
|
||||
void LLFloaterPayUtil::payDirectly(money_callback callback,
|
||||
const LLUUID& target_id,
|
||||
bool is_group)
|
||||
{
|
||||
LLFloaterPay::payDirectly(callback, target_id, is_group);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,72 +32,30 @@
|
|||
#ifndef LLFLOATERPAY_H
|
||||
#define LLFLOATERPAY_H
|
||||
|
||||
#include "lluuid.h"
|
||||
#include "llfloater.h"
|
||||
#include "lllslconstants.h"
|
||||
#include "llsafehandle.h"
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Class LLFloaterPay
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
class LLViewerRegion;
|
||||
class LLLineEditor;
|
||||
class LLTextBox;
|
||||
class LLButton;
|
||||
class LLObjectSelection;
|
||||
struct LLGiveMoneyInfo;
|
||||
class LLUUID;
|
||||
class LLViewerRegion;
|
||||
|
||||
typedef void (*money_callback)(const LLUUID&, LLViewerRegion*,S32,BOOL,S32,const std::string&);
|
||||
|
||||
class LLFloaterPay : public LLFloater
|
||||
namespace LLFloaterPayUtil
|
||||
{
|
||||
public:
|
||||
LLFloaterPay(const LLSD& key);
|
||||
virtual ~LLFloaterPay();
|
||||
/*virtual*/ BOOL postBuild();
|
||||
/// Register with LLFloaterReg
|
||||
void registerFloater();
|
||||
|
||||
/// Pay into an in-world object, which will trigger scripts and eventually
|
||||
/// transfer the L$ to the resident or group that owns the object.
|
||||
/// Objects must be selected. Recipient (primary) object may be a child.
|
||||
void payViaObject(money_callback callback,
|
||||
LLSafeHandle<LLObjectSelection> selection);
|
||||
|
||||
void setCallback(money_callback callback) { mCallback = callback; }
|
||||
|
||||
void onClose();
|
||||
|
||||
// Pay into an in-world object, which will trigger scripts and eventually
|
||||
// transfer the L$ to the resident or group that owns the object.
|
||||
// Object must be selected. It may be a child.
|
||||
static void payViaObject(money_callback callback, LLSafeHandle<LLObjectSelection> selection);
|
||||
|
||||
// Pay an avatar or group directly, not via an object in the world.
|
||||
// Scripts are not notified, L$ can be direcly transferred.
|
||||
static void payDirectly(money_callback callback,
|
||||
const LLUUID& target_id,
|
||||
BOOL is_group);
|
||||
|
||||
private:
|
||||
static void onCancel(void* data);
|
||||
static void onKeystroke(LLLineEditor* editor, void* data);
|
||||
static void onGive(void* data);
|
||||
void give(S32 amount);
|
||||
static void processPayPriceReply(LLMessageSystem* msg, void **userdata);
|
||||
void onCacheOwnerName(const LLUUID& owner_id,
|
||||
const std::string& firstname,
|
||||
const std::string& lastname,
|
||||
BOOL is_group);
|
||||
void finishPayUI(const LLUUID& target_id, BOOL is_group);
|
||||
|
||||
protected:
|
||||
std::vector<LLGiveMoneyInfo*> mCallbackData;
|
||||
money_callback mCallback;
|
||||
LLTextBox* mObjectNameText;
|
||||
LLUUID mTargetUUID;
|
||||
BOOL mTargetIsGroup;
|
||||
BOOL mHaveName;
|
||||
|
||||
LLButton* mQuickPayButton[MAX_PAY_BUTTONS];
|
||||
LLGiveMoneyInfo* mQuickPayInfo[MAX_PAY_BUTTONS];
|
||||
|
||||
LLSafeHandle<LLObjectSelection> mObjectSelection;
|
||||
|
||||
static S32 sLastAmount;
|
||||
};
|
||||
|
||||
/// Pay an avatar or group directly, not via an object in the world.
|
||||
/// Scripts are not notified, L$ can be direcly transferred.
|
||||
void payDirectly(money_callback callback,
|
||||
const LLUUID& target_id,
|
||||
bool is_group);
|
||||
}
|
||||
|
||||
#endif // LLFLOATERPAY_H
|
||||
|
|
|
|||
|
|
@ -195,8 +195,7 @@ void LLViewerFloaterReg::registerFloaters()
|
|||
LLFloaterReg::add("openobject", "floater_openobject.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterOpenObject>);
|
||||
|
||||
LLFloaterReg::add("parcel_info", "floater_preview_url.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterParcelInfo>);
|
||||
LLFloaterReg::add("pay_resident", "floater_pay.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPay>);
|
||||
LLFloaterReg::add("pay_object", "floater_pay_object.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPay>);
|
||||
LLFloaterPayUtil::registerFloater();
|
||||
|
||||
LLFloaterReg::add("postcard", "floater_postcard.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPostcard>);
|
||||
LLFloaterReg::add("preferences", "floater_preferences.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPreference>);
|
||||
|
|
|
|||
|
|
@ -5437,14 +5437,14 @@ bool complete_give_money(const LLSD& notification, const LLSD& response, LLObjec
|
|||
{
|
||||
if (objectp->isAvatar())
|
||||
{
|
||||
const BOOL is_group = FALSE;
|
||||
LLFloaterPay::payDirectly(&give_money,
|
||||
const bool is_group = false;
|
||||
LLFloaterPayUtil::payDirectly(&give_money,
|
||||
objectp->getID(),
|
||||
is_group);
|
||||
}
|
||||
else
|
||||
{
|
||||
LLFloaterPay::payViaObject(&give_money, selection);
|
||||
LLFloaterPayUtil::payViaObject(&give_money, selection);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
|
|
|||
Loading…
Reference in New Issue