summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rw-r--r--indra/llui/llbutton.cpp24
-rw-r--r--indra/llui/llbutton.h13
-rw-r--r--indra/llui/llfloater.cpp9
-rw-r--r--indra/llui/llfloater.h1
-rw-r--r--indra/llui/llfloaterreg.cpp23
-rw-r--r--indra/llui/llfloaterreg.h1
-rw-r--r--indra/llui/lltoolbar.cpp86
-rw-r--r--indra/llui/lltoolbar.h18
-rw-r--r--indra/llui/lltooltip.cpp2
-rw-r--r--indra/llui/llui.cpp1
-rw-r--r--indra/newview/app_settings/commands.xml46
-rw-r--r--indra/newview/app_settings/settings.xml22
-rw-r--r--indra/newview/skins/default/xui/en/floater_test_button.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_toybox.xml13
-rw-r--r--indra/newview/skins/default/xui/en/widgets/button.xml7
-rw-r--r--indra/newview/skins/default/xui/en/widgets/toolbar.xml6
16 files changed, 220 insertions, 53 deletions
diff --git a/indra/llui/llbutton.cpp b/indra/llui/llbutton.cpp
index f259e8027e..c9ee62296f 100644
--- a/indra/llui/llbutton.cpp
+++ b/indra/llui/llbutton.cpp
@@ -83,7 +83,6 @@ LLButton::Params::Params()
label_color_selected("label_color_selected"), // requires is_toggle true
label_color_disabled("label_color_disabled"),
label_color_disabled_selected("label_color_disabled_selected"),
- highlight_color("highlight_color"),
image_color("image_color"),
image_color_disabled("image_color_disabled"),
image_overlay_color("image_overlay_color", LLColor4::white),
@@ -99,10 +98,13 @@ LLButton::Params::Params()
scale_image("scale_image", true),
hover_glow_amount("hover_glow_amount"),
commit_on_return("commit_on_return", true),
+ display_pressed_state("display_pressed_state", true),
use_draw_context_alpha("use_draw_context_alpha", true),
badge("badge"),
handle_right_mouse("handle_right_mouse"),
- held_down_delay("held_down_delay")
+ held_down_delay("held_down_delay"),
+ button_flash_count("button_flash_count"),
+ button_flash_rate("button_flash_rate")
{
addSynonym(is_toggle, "toggle");
changeDefault(initial_value, LLSD(false));
@@ -136,7 +138,6 @@ LLButton::LLButton(const LLButton::Params& p)
mSelectedLabelColor(p.label_color_selected()),
mDisabledLabelColor(p.label_color_disabled()),
mDisabledSelectedLabelColor(p.label_color_disabled_selected()),
- mHighlightColor(p.highlight_color()),
mImageColor(p.image_color()),
mFlashBgColor(p.flash_color()),
mDisabledImageColor(p.image_color_disabled()),
@@ -159,12 +160,15 @@ LLButton::LLButton(const LLButton::Params& p)
mCommitOnReturn(p.commit_on_return),
mFadeWhenDisabled(FALSE),
mForcePressedState(false),
+ mDisplayPressedState(p.display_pressed_state),
mLastDrawCharsCount(0),
mMouseDownSignal(NULL),
mMouseUpSignal(NULL),
mHeldDownSignal(NULL),
mUseDrawContextAlpha(p.use_draw_context_alpha),
- mHandleRightMouse(p.handle_right_mouse)
+ mHandleRightMouse(p.handle_right_mouse),
+ mButtonFlashCount(p.button_flash_count),
+ mButtonFlashRate(p.button_flash_rate)
{
static LLUICachedControl<S32> llbutton_orig_h_pad ("UIButtonOrigHPad", 0);
static Params default_params(LLUICtrlFactory::getDefaultParams<LLButton>());
@@ -570,15 +574,13 @@ void LLButton::draw()
{
F32 alpha = mUseDrawContextAlpha ? getDrawContext().mAlpha : getCurrentTransparency();
bool flash = FALSE;
- static LLUICachedControl<F32> button_flash_rate("ButtonFlashRate", 0);
- static LLUICachedControl<S32> button_flash_count("ButtonFlashCount", 0);
if( mFlashing )
{
F32 elapsed = mFlashingTimer.getElapsedTimeF32();
- S32 flash_count = S32(elapsed * button_flash_rate * 2.f);
+ S32 flash_count = S32(elapsed * mButtonFlashRate * 2.f);
// flash on or off?
- flash = (flash_count % 2 == 0) || flash_count > S32((F32)button_flash_count * 2.f);
+ flash = (flash_count % 2 == 0) || flash_count > S32((F32)mButtonFlashCount * 2.f);
}
bool pressed_by_keyboard = FALSE;
@@ -607,7 +609,7 @@ void LLButton::draw()
LLColor4 glow_color = LLColor4::white;
LLRender::eBlendType glow_type = LLRender::BT_ADD_WITH_ALPHA;
LLUIImage* imagep = NULL;
- if (pressed)
+ if (pressed && mDisplayPressedState)
{
imagep = selected ? mImagePressedSelected : mImagePressed;
}
@@ -800,7 +802,7 @@ void LLButton::draw()
S32 center_y = getLocalRect().getCenterY();
//FUGLY HACK FOR "DEPRESSED" BUTTONS
- if (pressed)
+ if (pressed && mDisplayPressedState)
{
center_y--;
center_x++;
@@ -873,7 +875,7 @@ void LLButton::draw()
S32 y_offset = 2 + (getRect().getHeight() - 20)/2;
- if (pressed)
+ if (pressed && mDisplayPressedState)
{
y_offset--;
x++;
diff --git a/indra/llui/llbutton.h b/indra/llui/llbutton.h
index 08b45e01b3..14c1d01c7e 100644
--- a/indra/llui/llbutton.h
+++ b/indra/llui/llbutton.h
@@ -91,7 +91,6 @@ public:
label_color_selected,
label_color_disabled,
label_color_disabled_selected,
- highlight_color,
image_color,
image_color_disabled,
image_overlay_color,
@@ -120,7 +119,8 @@ public:
// misc
Optional<bool> is_toggle,
scale_image,
- commit_on_return;
+ commit_on_return,
+ display_pressed_state;
Optional<F32> hover_glow_amount;
Optional<TimeIntervalParam> held_down_delay;
@@ -131,6 +131,9 @@ public:
Optional<bool> handle_right_mouse;
+ Optional<S32> button_flash_count;
+ Optional<F32> button_flash_rate;
+
Params();
};
@@ -273,6 +276,9 @@ protected:
void getOverlayImageSize(S32& overlay_width, S32& overlay_height);
LLFrameTimer mMouseDownTimer;
+ bool mNeedsHighlight;
+ S32 mButtonFlashCount;
+ F32 mButtonFlashRate;
private:
void drawBorder(LLUIImage* imagep, const LLColor4& color, S32 size);
@@ -322,7 +328,6 @@ private:
flash icon name is set in attributes(by default it isn't). First way is used otherwise. */
LLPointer<LLUIImage> mImageFlash;
- LLUIColor mHighlightColor;
LLUIColor mFlashBgColor;
LLUIColor mImageColor;
@@ -355,10 +360,10 @@ private:
F32 mHoverGlowStrength;
F32 mCurGlowStrength;
- bool mNeedsHighlight;
bool mCommitOnReturn;
bool mFadeWhenDisabled;
bool mForcePressedState;
+ bool mDisplayPressedState;
LLFrameTimer mFlashingTimer;
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index bc494e97f5..c28bcc2ec9 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -1029,7 +1029,7 @@ void LLFloater::setMinimized(BOOL minimize)
if (minimize == mMinimized) return;
- if(mMinimizeSignal)
+ if (mMinimizeSignal)
{
(*mMinimizeSignal)(this, LLSD(minimize));
}
@@ -2857,7 +2857,7 @@ void LLFloater::initFromParams(const LLFloater::Params& p)
// open callback
if (p.open_callback.isProvided())
{
- mOpenSignal.connect(initCommitCallback(p.open_callback));
+ setOpenCallback(initCommitCallback(p.open_callback));
}
// close callback
if (p.close_callback.isProvided())
@@ -2872,6 +2872,11 @@ boost::signals2::connection LLFloater::setMinimizeCallback( const commit_signal_
return mMinimizeSignal->connect(cb);
}
+boost::signals2::connection LLFloater::setOpenCallback( const commit_signal_t::slot_type& cb )
+{
+ return mOpenSignal.connect(cb);
+}
+
boost::signals2::connection LLFloater::setCloseCallback( const commit_signal_t::slot_type& cb )
{
return mCloseSignal.connect(cb);
diff --git a/indra/llui/llfloater.h b/indra/llui/llfloater.h
index fba59e82e1..5aff542049 100644
--- a/indra/llui/llfloater.h
+++ b/indra/llui/llfloater.h
@@ -144,6 +144,7 @@ public:
bool buildFromFile(const std::string &filename, LLXMLNodePtr output_node = NULL);
boost::signals2::connection setMinimizeCallback( const commit_signal_t::slot_type& cb );
+ boost::signals2::connection setOpenCallback( const commit_signal_t::slot_type& cb );
boost::signals2::connection setCloseCallback( const commit_signal_t::slot_type& cb );
void initFromParams(const LLFloater::Params& p);
diff --git a/indra/llui/llfloaterreg.cpp b/indra/llui/llfloaterreg.cpp
index 27e96856b3..d0ae9413a3 100644
--- a/indra/llui/llfloaterreg.cpp
+++ b/indra/llui/llfloaterreg.cpp
@@ -478,6 +478,7 @@ void LLFloaterReg::toggleToolbarFloaterInstance(const LLSD& sdname)
if (LLFloater::isMinimized(instance))
{
instance->setMinimized(FALSE);
+ instance->setFocus(TRUE);
}
else if (!LLFloater::isShown(instance))
{
@@ -494,6 +495,28 @@ void LLFloaterReg::toggleToolbarFloaterInstance(const LLSD& sdname)
}
//static
+bool LLFloaterReg::floaterInstanceOpen(const LLSD& sdname)
+{
+ LLSD key;
+ std::string name = sdname.asString();
+ parse_name_key(name, key);
+
+ bool visible_or_minimized = instanceVisible(name, key);
+
+ if (!visible_or_minimized)
+ {
+ LLFloater* instance = findInstance(name, key);
+
+ if (instance != NULL)
+ {
+ visible_or_minimized = LLFloater::isMinimized(instance);
+ }
+ }
+
+ return visible_or_minimized;
+}
+
+//static
bool LLFloaterReg::floaterInstanceVisible(const LLSD& sdname)
{
LLSD key;
diff --git a/indra/llui/llfloaterreg.h b/indra/llui/llfloaterreg.h
index 6239d98a7d..07ae45cc4c 100644
--- a/indra/llui/llfloaterreg.h
+++ b/indra/llui/llfloaterreg.h
@@ -128,6 +128,7 @@ public:
static void hideFloaterInstance(const LLSD& sdname);
static void toggleFloaterInstance(const LLSD& sdname);
static void toggleToolbarFloaterInstance(const LLSD& sdname);
+ static bool floaterInstanceOpen(const LLSD& sdname);
static bool floaterInstanceVisible(const LLSD& sdname);
static bool floaterInstanceMinimized(const LLSD& sdname);
diff --git a/indra/llui/lltoolbar.cpp b/indra/llui/lltoolbar.cpp
index 9ffb859053..392e26f496 100644
--- a/indra/llui/lltoolbar.cpp
+++ b/indra/llui/lltoolbar.cpp
@@ -253,7 +253,7 @@ bool LLToolBar::removeCommand(const LLCommandId& commandId)
mButtons.erase(it_button);
mNeedsLayout = true;
-
+
return true;
}
@@ -551,7 +551,33 @@ void LLToolBar::updateLayoutAsNeeded()
void LLToolBar::draw()
{
- if (mButtons.empty()) return;
+ if (mButtons.empty())
+ {
+ return;
+ }
+
+ // Update enable/disable state and highlight state for editable toolbars
+ if (!mReadOnly)
+ {
+ for (toolbar_button_list::iterator btn_it = mButtons.begin(); btn_it != mButtons.end(); ++btn_it)
+ {
+ LLToolBarButton* btn = *btn_it;
+ LLCommand* command = LLCommandManager::instance().getCommand(btn->mId);
+
+ if (command && btn->mIsEnabledSignal)
+ {
+ const bool button_command_enabled = (*btn->mIsEnabledSignal)(btn, command->isEnabledParameters());
+ btn->setEnabled(button_command_enabled);
+ }
+
+ if (command && btn->mIsRunningSignal)
+ {
+ const bool button_command_running = (*btn->mIsRunningSignal)(btn, command->isRunningParameters());
+ btn->setFlashing(button_command_running);
+ }
+ }
+ }
+
updateLayoutAsNeeded();
// rect may have shifted during layout
LLUI::popMatrix();
@@ -607,14 +633,47 @@ LLToolBarButton* LLToolBar::createButton(const LLCommandId& id)
LLUICtrl::CommitCallbackParam cbParam;
cbParam.function_name = commandp->executeFunctionName();
cbParam.parameter = commandp->executeParameters();
+
button->setCommitCallback(cbParam);
button->setStartDragCallback(mStartDragItemCallback);
button->setHandleDragCallback(mHandleDragItemCallback);
+
+ const std::string& isEnabledFunction = commandp->isEnabledFunctionName();
+ if (isEnabledFunction.length() > 0)
+ {
+ LLUICtrl::EnableCallbackParam isEnabledParam;
+ isEnabledParam.function_name = isEnabledFunction;
+ isEnabledParam.parameter = commandp->isEnabledParameters();
+ enable_signal_t::slot_type isEnabledCB = initEnableCallback(isEnabledParam);
+
+ if (NULL == button->mIsEnabledSignal)
+ {
+ button->mIsEnabledSignal = new enable_signal_t();
+ }
+
+ button->mIsEnabledSignal->connect(isEnabledCB);
+ }
+
+ const std::string& isRunningFunction = commandp->isRunningFunctionName();
+ if (isRunningFunction.length() > 0)
+ {
+ LLUICtrl::EnableCallbackParam isRunningParam;
+ isRunningParam.function_name = isRunningFunction;
+ isRunningParam.parameter = commandp->isRunningParameters();
+ enable_signal_t::slot_type isRunningCB = initEnableCallback(isRunningParam);
+
+ if (NULL == button->mIsRunningSignal)
+ {
+ button->mIsRunningSignal = new enable_signal_t();
+ }
+
+ button->mIsRunningSignal->connect(isRunningCB);
+ }
}
button->setCommandId(id);
- return button;
+ return button;
}
BOOL LLToolBar::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
@@ -648,8 +707,20 @@ LLToolBarButton::LLToolBarButton(const Params& p)
mMouseDownY(0),
mWidthRange(p.button_width),
mDesiredHeight(p.desired_height),
- mId("")
+ mId(""),
+ mIsEnabledSignal(NULL),
+ mIsRunningSignal(NULL),
+ mIsStartingSignal(NULL)
+{
+ mButtonFlashRate = 0.0;
+ mButtonFlashCount = 0;
+}
+
+LLToolBarButton::~LLToolBarButton()
{
+ delete mIsEnabledSignal;
+ delete mIsRunningSignal;
+ delete mIsStartingSignal;
}
BOOL LLToolBarButton::handleMouseDown(S32 x, S32 y, MASK mask)
@@ -684,3 +755,10 @@ BOOL LLToolBarButton::handleHover(S32 x, S32 y, MASK mask)
return handled;
}
+void LLToolBarButton::onMouseEnter(S32 x, S32 y, MASK mask)
+{
+ LLUICtrl::onMouseEnter(x, y, mask);
+
+ // Always highlight toolbar buttons, even if they are disabled
+ mNeedsHighlight = TRUE;
+}
diff --git a/indra/llui/lltoolbar.h b/indra/llui/lltoolbar.h
index a35f6d9db1..ac99e23aae 100644
--- a/indra/llui/lltoolbar.h
+++ b/indra/llui/lltoolbar.h
@@ -58,6 +58,7 @@ public:
};
LLToolBarButton(const Params& p);
+ ~LLToolBarButton();
BOOL handleMouseDown(S32 x, S32 y, MASK mask);
BOOL handleHover(S32 x, S32 y, MASK mask);
@@ -65,15 +66,22 @@ public:
void setStartDragCallback(tool_startdrag_callback_t cb) { mStartDragItemCallback = cb; }
void setHandleDragCallback(tool_handledrag_callback_t cb) { mHandleDragItemCallback = cb; }
+
+ void onMouseEnter(S32 x, S32 y, MASK mask);
+
private:
LLCommandId mId;
S32 mMouseDownX;
S32 mMouseDownY;
LLUI::RangeS32 mWidthRange;
S32 mDesiredHeight;
- bool mIsDragged;
+ bool mIsDragged;
tool_startdrag_callback_t mStartDragItemCallback;
tool_handledrag_callback_t mHandleDragItemCallback;
+
+ enable_signal_t* mIsEnabledSignal;
+ enable_signal_t* mIsRunningSignal;
+ enable_signal_t* mIsStartingSignal;
};
@@ -151,11 +159,12 @@ public:
void* cargo_data,
EAcceptance* accept,
std::string& tooltip_msg);
-
+
bool addCommand(const LLCommandId& commandId, int rank = -1);
bool removeCommand(const LLCommandId& commandId);
bool hasCommand(const LLCommandId& commandId) const;
bool enableCommand(const LLCommandId& commandId, bool enabled);
+
void setStartDragCallback(tool_startdrag_callback_t cb) { mStartDragItemCallback = cb; }
void setHandleDragCallback(tool_handledrag_callback_t cb) { mHandleDragItemCallback = cb; }
void setHandleDropCallback(tool_handledrop_callback_t cb) { mHandleDropCallback = cb; }
@@ -171,7 +180,7 @@ protected:
tool_startdrag_callback_t mStartDragItemCallback;
tool_handledrag_callback_t mHandleDragItemCallback;
tool_handledrop_callback_t mHandleDropCallback;
- bool mDragAndDropTarget;
+ bool mDragAndDropTarget;
public:
// Methods used in loading and saving toolbar settings
@@ -190,7 +199,8 @@ private:
const bool mReadOnly;
- std::list<LLToolBarButton*> mButtons;
+ typedef std::list<LLToolBarButton*> toolbar_button_list;
+ toolbar_button_list mButtons;
command_id_list_t mButtonCommands;
typedef std::map<LLCommandId, LLToolBarButton*> command_id_map;
command_id_map mButtonMap;
diff --git a/indra/llui/lltooltip.cpp b/indra/llui/lltooltip.cpp
index bc6461a0c2..23cdd9ad9a 100644
--- a/indra/llui/lltooltip.cpp
+++ b/indra/llui/lltooltip.cpp
@@ -200,7 +200,7 @@ LLToolTip::LLToolTip(const LLToolTip::Params& p)
icon_params.image_selected(imagep);
icon_params.scale_image(true);
- icon_params.flash_color(icon_params.highlight_color());
+ icon_params.flash_color.control = "ButtonUnselectedFgColor";
mInfoButton = LLUICtrlFactory::create<LLButton>(icon_params);
if (p.click_callback.isProvided())
{
diff --git a/indra/llui/llui.cpp b/indra/llui/llui.cpp
index 76a12e649b..9c0253f074 100644
--- a/indra/llui/llui.cpp
+++ b/indra/llui/llui.cpp
@@ -1637,6 +1637,7 @@ void LLUI::initClass(const settings_map_t& settings,
// Used by menus along with Floater.Toggle to display visibility as a checkmark
LLUICtrl::EnableCallbackRegistry::defaultRegistrar().add("Floater.Visible", boost::bind(&LLFloaterReg::floaterInstanceVisible, _2));
+ LLUICtrl::EnableCallbackRegistry::defaultRegistrar().add("Floater.IsOpen", boost::bind(&LLFloaterReg::floaterInstanceOpen, _2));
// Parse the master list of commands
LLCommandManager::load();
diff --git a/indra/newview/app_settings/commands.xml b/indra/newview/app_settings/commands.xml
index 3a91ef490d..1fff95417b 100644
--- a/indra/newview/app_settings/commands.xml
+++ b/indra/newview/app_settings/commands.xml
@@ -7,6 +7,8 @@
tooltip_ref="Command_AboutLand_Tooltip"
execute_function="Floater.ToolbarToggle"
execute_parameters="about_land"
+ is_running_function="Floater.IsOpen"
+ is_running_parameters="about_land"
/>
<command name="appearance"
available_in_toybox="true"
@@ -15,6 +17,8 @@
tooltip_ref="Command_Appearance_Tooltip"
execute_function="Floater.ToolbarToggle"
execute_parameters="appearance"
+ is_running_function="Floater.IsOpen"
+ is_running_parameters="appearance"
/>
<command name="avatar"
available_in_toybox="true"
@@ -23,6 +27,8 @@
tooltip_ref="Command_Avatar_Tooltip"
execute_function="Floater.ToolbarToggle"
execute_parameters="avatar_picker"
+ is_running_function="Floater.IsOpen"
+ is_running_parameters="avatar_picker"
/>
<command name="build"
available_in_toybox="true"
@@ -31,6 +37,8 @@
tooltip_ref="Command_Build_Tooltip"
execute_function="Floater.ToolbarToggle"
execute_parameters="build"
+ is_running_function="Floater.IsOpen"
+ is_running_parameters="build"
/>
<command name="chat"
available_in_toybox="true"
@@ -39,6 +47,8 @@
tooltip_ref="Command_Chat_Tooltip"
execute_function="Floater.ToolbarToggle"
execute_parameters="chat_bar"
+ is_running_function="Floater.IsOpen"
+ is_running_parameters="chat_bar"
/>
<command name="compass"
available_in_toybox="false"
@@ -47,6 +57,8 @@
tooltip_ref="Command_Compass_Tooltip"
execute_function="Floater.ToolbarToggle"
execute_parameters="compass"
+ is_running_function="Floater.IsOpen"
+ is_running_parameters="compass"
/>
<command name="destinations"
available_in_toybox="true"
@@ -55,6 +67,8 @@
tooltip_ref="Command_Destinations_Tooltip"
execute_function="Floater.ToolbarToggle"
execute_parameters="destinations"
+ is_running_function="Floater.IsOpen"
+ is_running_parameters="destinations"
/>
<command name="gestures"
available_in_toybox="true"
@@ -63,6 +77,8 @@
tooltip_ref="Command_Gestures_Tooltip"
execute_function="Floater.ToolbarToggle"
execute_parameters="gestures"
+ is_running_function="Floater.IsOpen"
+ is_running_parameters="gestures"
/>
<command name="howto"
available_in_toybox="true"
@@ -71,6 +87,8 @@
tooltip_ref="Command_HowTo_Tooltip"
execute_function="Floater.ToolbarToggle"
execute_parameters="help_browser"
+ is_running_function="Floater.IsOpen"
+ is_running_parameters="help_browser"
/>
<command name="inventory"
available_in_toybox="true"
@@ -79,6 +97,8 @@
tooltip_ref="Command_Inventory_Tooltip"
execute_function="Floater.ToolbarToggle"
execute_parameters="inventory"
+ is_running_function="Floater.IsOpen"
+ is_running_parameters="inventory"
/>
<command name="map"
available_in_toybox="true"
@@ -87,6 +107,8 @@
tooltip_ref="Command_Map_Tooltip"
execute_function="Floater.ToolbarToggle"
execute_parameters="world_map"
+ is_running_function="Floater.IsOpen"
+ is_running_parameters="world_map"
/>
<command name="marketplace"
available_in_toybox="true"
@@ -95,6 +117,8 @@
tooltip_ref="Command_Marketplace_Tooltip"
execute_function="Floater.ToolbarToggle"
execute_parameters="marketplace"
+ is_running_function="Floater.IsOpen"
+ is_running_parameters="marketplace"
/>
<command name="minimap"
available_in_toybox="true"
@@ -103,6 +127,8 @@
tooltip_ref="Command_MiniMap_Tooltip"
execute_function="Floater.ToolbarToggle"
execute_parameters="mini_map"
+ is_running_function="Floater.IsOpen"
+ is_running_parameters="mini_map"
/>
<command name="move"
available_in_toybox="true"
@@ -111,6 +137,8 @@
tooltip_ref="Command_Move_Tooltip"
execute_function="Floater.ToolbarToggle"
execute_parameters="moveview"
+ is_running_function="Floater.IsOpen"
+ is_running_parameters="moveview"
/>
<command name="people"
available_in_toybox="true"
@@ -119,6 +147,8 @@
tooltip_ref="Command_People_Tooltip"
execute_function="Floater.ToolbarToggle"
execute_parameters="people"
+ is_running_function="Floater.IsOpen"
+ is_running_parameters="people"
/>
<command name="places"
available_in_toybox="true"
@@ -127,6 +157,8 @@
tooltip_ref="Command_Places_Tooltip"
execute_function="Floater.ToolbarToggle"
execute_parameters="places"
+ is_running_function="Floater.IsOpen"
+ is_running_parameters="places"
/>
<command name="preferences"
available_in_toybox="true"
@@ -135,6 +167,8 @@
tooltip_ref="Command_Preferences_Tooltip"
execute_function="Floater.ToolbarToggle"
execute_parameters="preferences"
+ is_running_function="Floater.IsOpen"
+ is_running_parameters="preferences"
/>
<command name="profile"
available_in_toybox="true"
@@ -143,6 +177,8 @@
tooltip_ref="Command_Profile_Tooltip"
execute_function="Floater.ToolbarToggle"
execute_parameters="my_profile"
+ is_running_function="Floater.IsOpen"
+ is_running_parameters="my_profile"
/>
<command name="search"
available_in_toybox="true"
@@ -151,6 +187,8 @@
tooltip_ref="Command_Search_Tooltip"
execute_function="Floater.ToolbarToggle"
execute_parameters="search"
+ is_running_function="Floater.IsOpen"
+ is_running_parameters="search"
/>
<command name="snapshot"
available_in_toybox="true"
@@ -159,6 +197,8 @@
tooltip_ref="Command_Snapshot_Tooltip"
execute_function="Floater.ToolbarToggle"
execute_parameters="snapshot"
+ is_running_function="Floater.IsOpen"
+ is_running_parameters="snapshot"
/>
<command name="speak"
available_in_toybox="true"
@@ -167,6 +207,8 @@
tooltip_ref="Command_Speak_Tooltip"
execute_function="Floater.ToolbarToggle"
execute_parameters="speak"
+ is_running_function="Floater.IsOpen"
+ is_running_parameters="speak"
/>
<command name="view"
available_in_toybox="true"
@@ -175,6 +217,8 @@
tooltip_ref="Command_View_Tooltip"
execute_function="Floater.ToolbarToggle"
execute_parameters="camera"
+ is_running_function="Floater.IsOpen"
+ is_running_parameters="camera"
/>
<command name="voice"
available_in_toybox="true"
@@ -183,5 +227,7 @@
tooltip_ref="Command_Voice_Tooltip"
execute_function="Floater.ToolbarToggle"
execute_parameters="voice_controls"
+ is_running_function="Floater.IsOpen"
+ is_running_parameters="voice_controls"
/>
</commands>
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 7a641ea630..203bcab03a 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -1150,28 +1150,6 @@
<key>Value</key>
<integer>0</integer>
</map>
- <key>ButtonFlashCount</key>
- <map>
- <key>Comment</key>
- <string>Number of flashes after which flashing buttons stay lit up</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>S32</string>
- <key>Value</key>
- <integer>8</integer>
- </map>
- <key>ButtonFlashRate</key>
- <map>
- <key>Comment</key>
- <string>Frequency at which buttons flash (hz)</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>F32</string>
- <key>Value</key>
- <real>1.25</real>
- </map>
<key>ButtonHPad</key>
<map>
<key>Comment</key>
diff --git a/indra/newview/skins/default/xui/en/floater_test_button.xml b/indra/newview/skins/default/xui/en/floater_test_button.xml
index bf0a774e76..9bc05107a2 100644
--- a/indra/newview/skins/default/xui/en/floater_test_button.xml
+++ b/indra/newview/skins/default/xui/en/floater_test_button.xml
@@ -78,7 +78,6 @@
<button
bottom_delta="30"
height="23"
- highlight_color="EmphasisColor"
label="Highlight"
layout="topleft"
name="highlight_color_button" />
diff --git a/indra/newview/skins/default/xui/en/floater_toybox.xml b/indra/newview/skins/default/xui/en/floater_toybox.xml
index 972ae1487a..5c6fa5bc86 100644
--- a/indra/newview/skins/default/xui/en/floater_toybox.xml
+++ b/indra/newview/skins/default/xui/en/floater_toybox.xml
@@ -61,6 +61,19 @@
side="top"
top="85">
<button_panel background_visible="false" />
+ <button_icon_and_text image_unselected="PushButton_Off"
+ image_selected="PushButton_Off"
+ image_disabled_selected="PushButton_Disabled"
+ image_disabled="PushButton_Disabled"
+ label_color="ButtonLabelColor"
+ label_color_selected="ButtonLabelColor"
+ label_color_disabled="ButtonLabelDisabledColor"
+ label_color_disabled_selected="ButtonLabelDisabledColor"
+ image_color="ButtonImageColor"
+ image_color_disabled="ButtonImageColor"
+ flash_color="ButtonUnselectedFgColor"
+ hover_glow_amount="0.15"
+ display_pressed_state="false" />
</toolbar>
<panel
bevel_style="none"
diff --git a/indra/newview/skins/default/xui/en/widgets/button.xml b/indra/newview/skins/default/xui/en/widgets/button.xml
index 61d36468d7..e2baba92a3 100644
--- a/indra/newview/skins/default/xui/en/widgets/button.xml
+++ b/indra/newview/skins/default/xui/en/widgets/button.xml
@@ -15,7 +15,6 @@
label_color_selected="ButtonLabelSelectedColor"
label_color_disabled="ButtonLabelDisabledColor"
label_color_disabled_selected="ButtonLabelSelectedDisabledColor"
- highlight_color="ButtonUnselectedFgColor"
image_color="ButtonImageColor"
image_color_disabled="ButtonImageColor"
flash_color="ButtonFlashBgColor"
@@ -27,5 +26,9 @@
scale_image="true"
handle_right_mouse="true"
use_draw_context_alpha="true"
- held_down_delay.seconds="0.5">
+ held_down_delay.seconds="0.5"
+ button_flash_count="8"
+ button_flash_rate="1.25"
+ display_pressed_state="true"
+ >
</button>
diff --git a/indra/newview/skins/default/xui/en/widgets/toolbar.xml b/indra/newview/skins/default/xui/en/widgets/toolbar.xml
index 0c7e7cff56..1585166114 100644
--- a/indra/newview/skins/default/xui/en/widgets/toolbar.xml
+++ b/indra/newview/skins/default/xui/en/widgets/toolbar.xml
@@ -21,7 +21,8 @@
chrome="true"
image_overlay_alignment="left"
use_ellipses="true"
- auto_resize="true"/>
+ auto_resize="true"
+ flash_color="EmphasisColor"/>
<button_icon pad_left="10"
pad_right="10"
desired_height="35"
@@ -31,5 +32,6 @@
label=""
chrome="true"
use_ellipses="true"
- auto_resize="true"/>
+ auto_resize="true"
+ flash_color="EmphasisColor"/>
</toolbar>