summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorMerov Linden <merov@lindenlab.com>2012-12-18 22:57:56 -0800
committerMerov Linden <merov@lindenlab.com>2012-12-18 22:57:56 -0800
commit8adca4583ec95ac063f79990ac092998f24415b8 (patch)
tree5019732addb552d4efafb31792a48e364ab8c351 /indra/newview
parent138d4f5fcd4567c5d77230b6eadc21c246ceed59 (diff)
CHUI-600 : WIP : Flash conversation item in different color than select and start flashing only when shown
Diffstat (limited to 'indra/newview')
-rwxr-xr-xindra/newview/llconversationview.cpp20
-rwxr-xr-xindra/newview/llconversationview.h5
-rw-r--r--indra/newview/skins/default/colors.xml6
3 files changed, 27 insertions, 4 deletions
diff --git a/indra/newview/llconversationview.cpp b/indra/newview/llconversationview.cpp
index c0a209f22d..d3a0e882f5 100755
--- a/indra/newview/llconversationview.cpp
+++ b/indra/newview/llconversationview.cpp
@@ -101,7 +101,17 @@ LLConversationViewSession::~LLConversationViewSession()
void LLConversationViewSession::setFlashState(bool flash_state)
{
mFlashStateOn = flash_state;
- (flash_state ? mFlashTimer->startFlashing() : mFlashTimer->stopFlashing());
+ mFlashStarted = false;
+ mFlashTimer->stopFlashing();
+}
+
+void LLConversationViewSession::startFlashing()
+{
+ if (mFlashStateOn && !mFlashStarted)
+ {
+ mFlashStarted = true;
+ mFlashTimer->startFlashing();
+ }
}
bool LLConversationViewSession::isHighlightAllowed()
@@ -198,8 +208,11 @@ void LLConversationViewSession::draw()
drawOpenFolderArrow(default_params, sFgColor);
}
+ // Indicate that flash can start (moot operation if already started, done or not flashing)
+ startFlashing();
+
// draw highlight for selected items
- drawHighlight(show_context, true, sHighlightBgColor, sFocusOutlineColor, sMouseOverColor);
+ drawHighlight(show_context, true, sHighlightBgColor, sFlashBgColor, sFocusOutlineColor, sMouseOverColor);
// Draw children if root folder, or any other folder that is open. Do not draw children when animating to closed state or you get rendering overlap.
bool draw_children = getRoot() == static_cast<LLFolderViewFolder*>(this) || isOpen();
@@ -427,6 +440,7 @@ void LLConversationViewParticipant::draw()
static LLUIColor sFgDisabledColor = LLUIColorTable::instance().getColor("MenuItemDisabledColor", DEFAULT_WHITE);
static LLUIColor sHighlightFgColor = LLUIColorTable::instance().getColor("MenuItemHighlightFgColor", DEFAULT_WHITE);
static LLUIColor sHighlightBgColor = LLUIColorTable::instance().getColor("MenuItemHighlightBgColor", DEFAULT_WHITE);
+ static LLUIColor sFlashBgColor = LLUIColorTable::instance().getColor("MenuItemFlashBgColor", DEFAULT_WHITE);
static LLUIColor sFocusOutlineColor = LLUIColorTable::instance().getColor("InventoryFocusOutlineColor", DEFAULT_WHITE);
static LLUIColor sMouseOverColor = LLUIColorTable::instance().getColor("InventoryMouseOverColor", DEFAULT_WHITE);
@@ -450,7 +464,7 @@ void LLConversationViewParticipant::draw()
color = mIsSelected ? sHighlightFgColor : sFgColor;
}
- drawHighlight(show_context, mIsSelected, sHighlightBgColor, sFocusOutlineColor, sMouseOverColor);
+ drawHighlight(show_context, mIsSelected, sHighlightBgColor, sFlashBgColor, sFocusOutlineColor, sMouseOverColor);
drawLabel(font, text_left, y, color, right_x);
refresh();
diff --git a/indra/newview/llconversationview.h b/indra/newview/llconversationview.h
index 1e20fb8b7e..74443e1d88 100755
--- a/indra/newview/llconversationview.h
+++ b/indra/newview/llconversationview.h
@@ -58,6 +58,7 @@ protected:
/*virtual*/ bool isHighlightAllowed();
/*virtual*/ bool isHighlightActive();
+ /*virtual*/ bool isFlashing() { return mFlashStateOn; }
LLFloaterIMContainer* mContainer;
@@ -83,11 +84,12 @@ public:
virtual void refresh();
- void setFlashState(bool flash_state);
+ /*virtual*/ void setFlashState(bool flash_state);
private:
void onCurrentVoiceSessionChanged(const LLUUID& session_id);
+ void startFlashing();
LLPanel* mItemPanel;
LLPanel* mCallIconLayoutPanel;
@@ -95,6 +97,7 @@ private:
LLOutputMonitorCtrl* mSpeakingIndicator;
LLFlashTimer* mFlashTimer;
bool mFlashStateOn;
+ bool mFlashStarted;
bool mCollapsedMode;
bool mHasArrow;
diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml
index 05230b8bd5..becdbda067 100644
--- a/indra/newview/skins/default/colors.xml
+++ b/indra/newview/skins/default/colors.xml
@@ -12,6 +12,9 @@
name="EmphasisColor_35"
value="0.38 0.694 0.573 0.35" />
<color
+ name="BeaconColor"
+ value="1 .67 .2 1" />
+ <color
name="White"
value="1 1 1 1" />
<color
@@ -523,6 +526,9 @@
name="MenuItemHighlightBgColor"
reference="EmphasisColor_35" />
<color
+ name="MenuItemFlashBgColor"
+ reference="BeaconColor" />
+ <color
name="MenuItemHighlightFgColor"
reference="White" />
<color