Added new parameter to the OnCommitSpinner method and XML objects

Added new parameter to the OnCommitSpinner method and XML objects
Also changed logic to use Switch statement so that each action takes the same amount of time  to be reached.
master
minerjr 2025-01-30 03:30:25 -04:00
parent bbb0299bf1
commit b4536e545f
3 changed files with 118 additions and 108 deletions

View File

@ -106,7 +106,8 @@ FSFloaterPoser::FSFloaterPoser(const LLSD& key) : LLFloater(key)
mCommitCallbackRegistrar.add("Poser.TogglePosingSelectedBones", [this](LLUICtrl*, const LLSD&) { onClickToggleSelectedBoneEnabled(); });
mCommitCallbackRegistrar.add("Poser.PoseJointsReset", [this](LLUICtrl*, const LLSD&) { onPoseJointsReset(); });
mCommitCallbackRegistrar.add("Poser.CommitSpinner", [this](LLUICtrl* spinnerControl, const LLSD&) { onCommitSpinner(spinnerControl); });
//mCommitCallbackRegistrar.add("Poser.CommitSpinner", [this](LLUICtrl* spinnerControl, const LLSD&) { onCommitSpinner(spinnerControl); });
mCommitCallbackRegistrar.add("Poser.CommitSpinner", boost::bind(&FSFloaterPoser::onCommitSpinner, this, _1, _2));
}
bool FSFloaterPoser::postBuild()
@ -581,7 +582,9 @@ void FSFloaterPoser::onClickBrowsePoseCache()
gViewerWindow->getWindow()->openFile(pathname);
}
void FSFloaterPoser::onCommitSpinner(LLUICtrl* spinner)
//void FSFloaterPoser::onCommitSpinner(LLUICtrl* spinner)
// Pass in an ID as a parameter, so you can use a switch statement
void FSFloaterPoser::onCommitSpinner(LLUICtrl* spinner, S32 id)
{
if (!spinner)
return;
@ -594,103 +597,96 @@ void FSFloaterPoser::onCommitSpinner(LLUICtrl* spinner)
F32 value = (F32)spinner->getValue().asReal();
if (spinner == mTrackpadSensitivitySpnr)
// Use the ID passed in to perform a switch statment
// which should make each action take the same amount of time.
switch (id)
{
onAdjustTrackpadSensitivity();
return;
}
if (spinner == mInOutSpnr)
{
mPosXSlider->setValue(value);
onAvatarPositionSet();
return;
}
if (spinner == mAdvPosXSpnr)
{
if (changingBodyPosition)
mPosXSlider->setValue(value);
mAdvPosXSlider->setValue(value);
onAdvancedPositionSet();
return;
}
if (spinner == mLeftRightSpnr)
{
mPosYSlider->setValue(value);
onAvatarPositionSet();
return;
}
if (spinner == mAdvPosYSpnr)
{
if (changingBodyPosition)
mPosYSlider->setValue(value);
mAdvPosYSlider->setValue(value);
onAdvancedPositionSet();
return;
}
if (spinner == mUpDownSpnr)
{
mPosZSlider->setValue(value);
onAvatarPositionSet();
return;
}
if (spinner == mAdvPosZSpnr)
{
if (changingBodyPosition)
case 0: // av_position_updown_spinner
{
mPosZSlider->setValue(value);
onAvatarPositionSet();
break;
}
case 1: // av_position_leftright
{
mPosYSlider->setValue(value);
onAvatarPositionSet();
break;
}
case 2: // av_position_inout_spinner
{
mPosXSlider->setValue(value);
onAvatarPositionSet();
break;
}
case 3: // trackpad_sensitivity_spinner
{
onAdjustTrackpadSensitivity();
break;
}
case 4: // limb_pitch_spinner
{
mLimbPitchSlider->setValue(value);
onYawPitchRollSliderChanged();
break;
}
case 5: // limb_yaw_spinner
{
mLimbYawSlider->setValue(value);
onYawPitchRollSliderChanged();
break;
}
case 6: // limb_roll_spinner
{
mLimbRollSlider->setValue(value);
onYawPitchRollSliderChanged();
break;
}
case 7: // adv_posx_spinner
{
if (changingBodyPosition)
mPosXSlider->setValue(value);
mAdvPosZSlider->setValue(value);
onAdvancedPositionSet();
return;
}
mAdvPosXSlider->setValue(value);
onAdvancedPositionSet();
break;
}
case 8: // adv_posy_spinner
{
if (changingBodyPosition)
mPosYSlider->setValue(value);
if (spinner == mScaleXSpnr)
{
mAdvScaleXSlider->setValue(value);
onAdvancedScaleSet();
return;
}
mAdvPosYSlider->setValue(value);
onAdvancedPositionSet();
break;
}
case 9: // adv_posz_spinner
{
if (changingBodyPosition)
mPosZSlider->setValue(value);
if (spinner == mScaleYSpnr)
{
mAdvScaleYSlider->setValue(value);
onAdvancedScaleSet();
return;
}
if (spinner == mScaleZSpnr)
{
mAdvScaleZSlider->setValue(value);
onAdvancedScaleSet();
return;
}
if (spinner == mYawSpnr)
{
mLimbYawSlider->setValue(value);
onYawPitchRollSliderChanged();
return;
}
if (spinner == mPitchSpnr)
{
mLimbPitchSlider->setValue(value);
onYawPitchRollSliderChanged();
return;
}
if (spinner == mRollSpnr)
{
mLimbRollSlider->setValue(value);
onYawPitchRollSliderChanged();
return;
mAdvPosZSlider->setValue(value);
onAdvancedPositionSet();
break;
}
case 10: // adv_scalex_spinner
{
mAdvScaleXSlider->setValue(value);
onAdvancedScaleSet();
break;
}
case 11: // adv_scaley_spinner
{
mAdvScaleYSlider->setValue(value);
onAdvancedScaleSet();
break;
}
case 12: // adv_scalez_spinner
{
mAdvScaleZSlider->setValue(value);
onAdvancedScaleSet();
break;
}
}
}

View File

@ -253,7 +253,8 @@ class FSFloaterPoser : public LLFloater
void onClickLoadRightHandPose();
void onClickLoadHandPose(bool isRightHand);
void onClickSetBaseRotZero();
void onCommitSpinner(LLUICtrl* spinner);
//void onCommitSpinner(LLUICtrl* spinner);
void onCommitSpinner(LLUICtrl* spinner, S32 ID);
// UI Refreshments
void refreshRotationSlidersAndSpinners();

View File

@ -380,7 +380,8 @@ width="403">
max_val="1.5"
width="47">
<spinner.commit_callback
function="Poser.CommitSpinner" />
function="Poser.CommitSpinner"
parameter="0"/>
</spinner>
<text
follows="left|top"
@ -423,7 +424,8 @@ width="403">
max_val="1.5"
width="47">
<spinner.commit_callback
function="Poser.CommitSpinner" />
function="Poser.CommitSpinner"
parameter="1"/>
</spinner>
<text
follows="left|top"
@ -466,7 +468,8 @@ width="403">
max_val="1.5"
width="47">
<spinner.commit_callback
function="Poser.CommitSpinner" />
function="Poser.CommitSpinner"
parameter="2"/>
</spinner>
<!-- to make this panel behaves like the others in code-behind, it has an invisible list -->
<scroll_list
@ -872,7 +875,8 @@ width="403">
max_val="2"
width="47">
<spinner.commit_callback
function="Poser.CommitSpinner" />
function="Poser.CommitSpinner"
parameter="3"/>
</spinner>
<check_box
control_name="FSPoserStopPosingWhenClosed"
@ -1085,7 +1089,8 @@ width="403">
max_val="180"
width="57">
<spinner.commit_callback
function="Poser.CommitSpinner" />
function="Poser.CommitSpinner"
parameter="4"/>
</spinner>
<text
follows="left|top"
@ -1124,7 +1129,8 @@ width="403">
max_val="180"
width="57">
<spinner.commit_callback
function="Poser.CommitSpinner" />
function="Poser.CommitSpinner"
parameter="5"/>
</spinner>
<text
follows="left|top"
@ -1163,7 +1169,8 @@ width="403">
max_val="180"
width="57">
<spinner.commit_callback
function="Poser.CommitSpinner" />
function="Poser.CommitSpinner"
parameter="6"/>
</spinner>
</panel>
<panel
@ -1472,7 +1479,8 @@ width="403">
max_val="1.5"
width="47">
<spinner.commit_callback
function="Poser.CommitSpinner" />
function="Poser.CommitSpinner"
parameter="7"/>
</spinner>
<slider
label="Position Y:"
@ -1504,7 +1512,8 @@ width="403">
max_val="1.5"
width="47">
<spinner.commit_callback
function="Poser.CommitSpinner" />
function="Poser.CommitSpinner"
parameter="8"/>
</spinner>
<slider
label="Position Z:"
@ -1536,7 +1545,8 @@ width="403">
max_val="1.5"
width="47">
<spinner.commit_callback
function="Poser.CommitSpinner" />
function="Poser.CommitSpinner"
parameter="9"/>
</spinner>
<button
height="21"
@ -1629,7 +1639,8 @@ width="403">
max_val="1.5"
width="47">
<spinner.commit_callback
function="Poser.CommitSpinner" />
function="Poser.CommitSpinner"
parameter="10"/>
</spinner>
<slider
decimal_digits="3"
@ -1663,7 +1674,8 @@ width="403">
max_val="1.5"
width="47">
<spinner.commit_callback
function="Poser.CommitSpinner" />
function="Poser.CommitSpinner"
parameter="11"/>
</spinner>
<slider
decimal_digits="3"
@ -1697,7 +1709,8 @@ width="403">
max_val="1.5"
width="47">
<spinner.commit_callback
function="Poser.CommitSpinner" />
function="Poser.CommitSpinner"
parameter="12"/>
</spinner>
<button
height="21"