Added "on_check" XUI parameter for checkboxes
parent
b80860e244
commit
ef7deefaef
|
|
@ -53,6 +53,9 @@ LLCheckBoxCtrl::Params::Params()
|
|||
: initial_value("initial_value", false),
|
||||
label_text("label_text"),
|
||||
check_button("check_button"),
|
||||
// <FS:Ansariel> on_check callback parameter
|
||||
on_check("on_check"),
|
||||
// </FS:Ansariel>
|
||||
radio_style("radio_style")
|
||||
{}
|
||||
|
||||
|
|
@ -116,6 +119,13 @@ LLCheckBoxCtrl::LLCheckBoxCtrl(const LLCheckBoxCtrl::Params& p)
|
|||
|
||||
mButton = LLUICtrlFactory::create<LLButton>(params);
|
||||
addChild(mButton);
|
||||
|
||||
// <FS:Ansariel> on_check callback parameter
|
||||
if (p.on_check.isProvided())
|
||||
{
|
||||
setCheckCallback(initEnableCallback(p.on_check));
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
}
|
||||
|
||||
LLCheckBoxCtrl::~LLCheckBoxCtrl()
|
||||
|
|
@ -250,3 +260,19 @@ void LLCheckBoxCtrl::resetDirty()
|
|||
mButton->resetDirty();
|
||||
}
|
||||
}
|
||||
|
||||
// <FS:Ansariel> on_check callback parameter
|
||||
// virtual
|
||||
void LLCheckBoxCtrl::draw()
|
||||
{
|
||||
if (!mCheckSignal.empty())
|
||||
{
|
||||
bool checked = mCheckSignal(this, LLSD());
|
||||
if (getValue().asBoolean() != checked)
|
||||
{
|
||||
setValue(checked);
|
||||
}
|
||||
}
|
||||
LLUICtrl::draw();
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
|
|
@ -57,6 +57,10 @@ public:
|
|||
Optional<LLTextBox::Params> label_text;
|
||||
Optional<LLButton::Params> check_button;
|
||||
|
||||
// <FS:Ansariel> on_check callback parameter
|
||||
Optional<EnableCallbackParam> on_check;
|
||||
// </FS:Ansariel>
|
||||
|
||||
Ignored radio_style;
|
||||
|
||||
Params();
|
||||
|
|
@ -108,6 +112,18 @@ public:
|
|||
virtual BOOL isDirty() const; // Returns TRUE if the user has modified this control.
|
||||
virtual void resetDirty(); // Clear dirty state
|
||||
|
||||
// <FS:Ansariel> on_check callback parameter
|
||||
virtual void draw();
|
||||
|
||||
boost::signals2::connection setCheckCallback( const enable_signal_t::slot_type& cb )
|
||||
{
|
||||
return mCheckSignal.connect(cb);
|
||||
}
|
||||
|
||||
private:
|
||||
enable_signal_t mCheckSignal;
|
||||
// </FS:Ansariel>
|
||||
|
||||
protected:
|
||||
// note: value is stored in toggle state of button
|
||||
LLButton* mButton;
|
||||
|
|
|
|||
Loading…
Reference in New Issue