From 9ec432034dc3c45d7ce763eb02dae4cc7f6b8da8 Mon Sep 17 00:00:00 2001 From: Steven Bennetts Date: Sun, 21 Jun 2009 08:04:56 +0000 Subject: merge -r 122421-124917 viewer-2.0.0-2 -> viewer-2.0.0-3 ignore-dead-branch --- indra/llui/llslider.cpp | 160 ++++++++++++++---------------------------------- 1 file changed, 47 insertions(+), 113 deletions(-) (limited to 'indra/llui/llslider.cpp') diff --git a/indra/llui/llslider.cpp b/indra/llui/llslider.cpp index 4dfc904581..66ed0d4e88 100644 --- a/indra/llui/llslider.cpp +++ b/indra/llui/llslider.cpp @@ -41,53 +41,45 @@ #include "llkeyboard.h" // for the MASK constants #include "llcontrol.h" #include "llimagegl.h" +#include "lluictrlfactory.h" + +static LLDefaultWidgetRegistry::Register r1("slider_bar"); + +LLSlider::Params::Params() +: track_color("track_color"), + thumb_outline_color("thumb_outline_color"), + thumb_center_color("thumb_center_color"), + thumb_image("thumb_image"), + track_image("track_image"), + track_highlight_image("track_highlight_image"), + mouse_down_callback("mouse_down_callback"), + mouse_up_callback("mouse_up_callback") +{ + follows.flags(FOLLOWS_LEFT | FOLLOWS_TOP); +} -static LLRegisterWidget r1("slider_bar"); -static LLRegisterWidget r2("volume_slider"); - - -LLSlider::LLSlider( - const std::string& name, - const LLRect& rect, - void (*on_commit_callback)(LLUICtrl* ctrl, void* userdata), - void* callback_userdata, - F32 initial_value, - F32 min_value, - F32 max_value, - F32 increment, - BOOL volume, - const std::string& control_name) - : - LLUICtrl( name, rect, TRUE, on_commit_callback, callback_userdata, - FOLLOWS_LEFT | FOLLOWS_TOP), - mValue( initial_value ), - mInitialValue( initial_value ), - mMinValue( min_value ), - mMaxValue( max_value ), - mIncrement( increment ), - mVolumeSlider( volume ), +LLSlider::LLSlider(const LLSlider::Params& p) +: LLF32UICtrl(p), mMouseOffset( 0 ), - mTrackColor( LLUI::sColorsGroup->getColor( "SliderTrackColor" ) ), - mThumbOutlineColor( LLUI::sColorsGroup->getColor( "SliderThumbOutlineColor" ) ), - mThumbCenterColor( LLUI::sColorsGroup->getColor( "SliderThumbCenterColor" ) ), - mMouseDownCallback( NULL ), - mMouseUpCallback( NULL ) + mTrackColor(p.track_color()), + mThumbOutlineColor(p.thumb_outline_color()), + mThumbCenterColor(p.thumb_center_color()), + mThumbImage(p.thumb_image), + mTrackImage(p.track_image), + mTrackHighlightImage(p.track_highlight_image) { - mThumbImage = LLUI::sImageProvider->getUIImage("icn_slide-thumb_dark.tga"); - mTrackImage = LLUI::sImageProvider->getUIImage("icn_slide-groove_dark.tga"); - mTrackHighlightImage = LLUI::sImageProvider->getUIImage("icn_slide-highlight.tga"); - - // properly handle setting the starting thumb rect - // do it this way to handle both the operating-on-settings - // and standalone ways of using this - setControlName(control_name, NULL); - setValue(getValueF32()); - + mViewModel->setValue(p.initial_value); updateThumbRect(); mDragStartThumbRect = mThumbRect; + setControlName(p.control_name, NULL); + setValue(getValueF32()); + + if (p.mouse_down_callback.isProvided()) + initCommitCallback(p.mouse_down_callback, mMouseDownSignal); + if (p.mouse_up_callback.isProvided()) + initCommitCallback(p.mouse_up_callback, mMouseUpSignal); } - void LLSlider::setValue(F32 value, BOOL from_event) { value = llclamp( value, mMinValue, mMaxValue ); @@ -98,21 +90,22 @@ void LLSlider::setValue(F32 value, BOOL from_event) value -= fmod(value, mIncrement); value += mMinValue; - if (!from_event && mValue != value) + if (!from_event && getValueF32() != value) { setControlValue(value); } - mValue = value; + LLF32UICtrl::setValue(value); updateThumbRect(); } void LLSlider::updateThumbRect() { - F32 t = (mValue - mMinValue) / (mMaxValue - mMinValue); + const S32 DEFAULT_THUMB_SIZE = 16; + F32 t = (getValueF32() - mMinValue) / (mMaxValue - mMinValue); - S32 thumb_width = mThumbImage->getWidth(); - S32 thumb_height = mThumbImage->getHeight(); + S32 thumb_width = mThumbImage ? mThumbImage->getWidth() : DEFAULT_THUMB_SIZE; + S32 thumb_height = mThumbImage ? mThumbImage->getHeight() : DEFAULT_THUMB_SIZE; S32 left_edge = (thumb_width / 2); S32 right_edge = getRect().getWidth() - (thumb_width / 2); @@ -126,10 +119,10 @@ void LLSlider::updateThumbRect() void LLSlider::setValueAndCommit(F32 value) { - F32 old_value = mValue; + F32 old_value = getValueF32(); setValue(value); - if (mValue != old_value) + if (getValueF32() != old_value) { onCommit(); } @@ -169,10 +162,8 @@ BOOL LLSlider::handleMouseUp(S32 x, S32 y, MASK mask) { gFocusMgr.setMouseCapture( NULL ); - if( mMouseUpCallback ) - { - mMouseUpCallback( this, mCallbackUserData ); - } + mMouseUpSignal( this, getValueF32() ); + handled = TRUE; make_ui_sound("UISndClickRelease"); } @@ -191,10 +182,7 @@ BOOL LLSlider::handleMouseDown(S32 x, S32 y, MASK mask) { setFocus(TRUE); } - if( mMouseDownCallback ) - { - mMouseDownCallback( this, mCallbackUserData ); - } + mMouseDownSignal( this, getValueF32() ); if (MASK_CONTROL & mask) // if CTRL is modifying { @@ -257,8 +245,8 @@ void LLSlider::draw() gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); F32 opacity = getEnabled() ? 1.f : 0.3f; - LLColor4 center_color = (mThumbCenterColor % opacity); - LLColor4 track_color = (mTrackColor % opacity); + LLColor4 center_color = (mThumbCenterColor.get() % opacity); + LLColor4 track_color = (mTrackColor.get() % opacity); // Track LLRect track_rect(mThumbImage->getWidth() / 2, @@ -273,7 +261,7 @@ void LLSlider::draw() if( hasMouseCapture() ) { // Show ghost where thumb was before dragging began. - mThumbImage->draw(mDragStartThumbRect, mThumbCenterColor % 0.3f); + mThumbImage->draw(mDragStartThumbRect, mThumbCenterColor.get() % 0.3f); } if (hasFocus()) { @@ -281,61 +269,7 @@ void LLSlider::draw() mThumbImage->drawBorder(mThumbRect, gFocusMgr.getFocusColor(), gFocusMgr.getFocusFlashWidth()); } // Fill in the thumb. - mThumbImage->draw(mThumbRect, hasMouseCapture() ? mThumbOutlineColor : center_color); + mThumbImage->draw(mThumbRect, hasMouseCapture() ? mThumbOutlineColor.get() : center_color); LLUICtrl::draw(); } - -// virtual -LLXMLNodePtr LLSlider::getXML(bool save_children) const -{ - LLXMLNodePtr node = LLUICtrl::getXML(); - - node->createChild("initial_val", TRUE)->setFloatValue(getInitialValue()); - node->createChild("min_val", TRUE)->setFloatValue(getMinValue()); - node->createChild("max_val", TRUE)->setFloatValue(getMaxValue()); - node->createChild("increment", TRUE)->setFloatValue(getIncrement()); - node->createChild("volume", TRUE)->setBoolValue(mVolumeSlider); - - return node; -} - - -//static -LLView* LLSlider::fromXML(LLXMLNodePtr node, LLView *parent, class LLUICtrlFactory *factory) -{ - std::string name("slider_bar"); - node->getAttributeString("name", name); - - LLRect rect; - createRect(node, rect, parent, LLRect()); - - F32 initial_value = 0.f; - node->getAttributeF32("initial_val", initial_value); - - F32 min_value = 0.f; - node->getAttributeF32("min_val", min_value); - - F32 max_value = 1.f; - node->getAttributeF32("max_val", max_value); - - F32 increment = 0.1f; - node->getAttributeF32("increment", increment); - - BOOL volume = node->hasName("volume_slider") ? TRUE : FALSE; - node->getAttributeBOOL("volume", volume); - - LLSlider* slider = new LLSlider(name, - rect, - NULL, - NULL, - initial_value, - min_value, - max_value, - increment, - volume); - - slider->initFromXML(node, parent); - - return slider; -} -- cgit v1.2.3 From 52aeaa32841e7d0b37abab0a2a2540c2be2f16b7 Mon Sep 17 00:00:00 2001 From: James Cook Date: Tue, 7 Jul 2009 00:53:05 +0000 Subject: Merge skinning-14 to viewer-2, including refactoring many floaters to register them with LLFloaterReg, support for introspection of ParamBlock based UI widgets to dump XML schema, splitting llfolderview.cpp into three separate files to unravel dependencies and skeleton for for LLListView widget. Resolved conflicts in these files: lldraghandle.h, lluictrl.h, llchiclet.cpp, llfolderview.h/cpp, lliinventorybridge.cpp, llpanelpicks.cpp, llviewermenu.cpp, floater_mute.xml, floater_preferences.xml, notifications.xml, panel_preferences_audio.xml, panel_preferences_graphics1.xml, panel_region_general.xml svn merge -r124961:126284 svn+ssh://svn.lindenlab.com/svn/linden/branches/skinning/skinning-14 --- indra/llui/llslider.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/llui/llslider.cpp') diff --git a/indra/llui/llslider.cpp b/indra/llui/llslider.cpp index 66ed0d4e88..fa782a1063 100644 --- a/indra/llui/llslider.cpp +++ b/indra/llui/llslider.cpp @@ -43,7 +43,7 @@ #include "llimagegl.h" #include "lluictrlfactory.h" -static LLDefaultWidgetRegistry::Register r1("slider_bar"); +static LLDefaultChildRegistry::Register r1("slider_bar"); LLSlider::Params::Params() : track_color("track_color"), -- cgit v1.2.3 From 77f56a3f3db72b2938eadb0868fc7be975dabafa Mon Sep 17 00:00:00 2001 From: Xiaohong Bao Date: Fri, 10 Jul 2009 22:02:26 +0000 Subject: merge QAR-1579: texture-cleanup-1. --- indra/llui/llslider.cpp | 1 - 1 file changed, 1 deletion(-) (limited to 'indra/llui/llslider.cpp') diff --git a/indra/llui/llslider.cpp b/indra/llui/llslider.cpp index fa782a1063..f167836bee 100644 --- a/indra/llui/llslider.cpp +++ b/indra/llui/llslider.cpp @@ -40,7 +40,6 @@ #include "llfocusmgr.h" #include "llkeyboard.h" // for the MASK constants #include "llcontrol.h" -#include "llimagegl.h" #include "lluictrlfactory.h" static LLDefaultChildRegistry::Register r1("slider_bar"); -- cgit v1.2.3 From caa367e5d435a70647c56460741a52b14f41ec9e Mon Sep 17 00:00:00 2001 From: Steven Bennetts Date: Tue, 11 Aug 2009 06:37:35 +0000 Subject: svn merge -r 129543-130091 skinning-19 -> viewer-2.0.0-3 EXT-172 - adding non-unicode support for group name line_editor EXT-310 text was squished, moved things around so there was was more space between text blocks. EXT-313 "me" panel EXT-314 changed out arrow character for arrow art, added arrow art to textures.xml EXT-315 replaced word "mute" with "block" EXT-322 moved Use Chat Bubbles text box from _chat.xml to _advanced.xml EXT-323 killed some two items EXT-324 and EXT-322 removed small avatar names checkbox and added show chat bubbled checkbox EXT-330 Sidetray filter - text overlaps search icon inside textbox EXT-261 I18N: Labels in /character/avatar_lad.xml are not localizable EXT-392 Rearranged floater_inventory_items_properties.xml to match spec DEV-35897 Filters in sidebar remain active even after user has changed/closed tab DEV-36886 I18N: hardcoded currency format in panel_status_bar.xml/status/buycurrency DEV-36987 - Pressed states needed for widgets DEV-36795 Remove slurl tooltip from navigation bar location box DEV-37184 Move "Block List" out of topmenu and make a button in Prefs > Privacy --- indra/llui/llslider.cpp | 42 +++++++++++++++++++++++++++++++----------- 1 file changed, 31 insertions(+), 11 deletions(-) (limited to 'indra/llui/llslider.cpp') diff --git a/indra/llui/llslider.cpp b/indra/llui/llslider.cpp index f167836bee..1c394a71dd 100644 --- a/indra/llui/llslider.cpp +++ b/indra/llui/llslider.cpp @@ -49,6 +49,8 @@ LLSlider::Params::Params() thumb_outline_color("thumb_outline_color"), thumb_center_color("thumb_center_color"), thumb_image("thumb_image"), + thumb_image_pressed("thumb_image_pressed"), + thumb_image_disabled("thumb_image_disabled"), track_image("track_image"), track_highlight_image("track_highlight_image"), mouse_down_callback("mouse_down_callback"), @@ -64,6 +66,8 @@ LLSlider::LLSlider(const LLSlider::Params& p) mThumbOutlineColor(p.thumb_outline_color()), mThumbCenterColor(p.thumb_center_color()), mThumbImage(p.thumb_image), + mThumbImagePressed(p.thumb_image_pressed), + mThumbImageDisabled(p.thumb_image_disabled), mTrackImage(p.track_image), mTrackHighlightImage(p.track_highlight_image) { @@ -243,10 +247,6 @@ void LLSlider::draw() // drawing solids requires texturing be disabled gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); - F32 opacity = getEnabled() ? 1.f : 0.3f; - LLColor4 center_color = (mThumbCenterColor.get() % opacity); - LLColor4 track_color = (mTrackColor.get() % opacity); - // Track LLRect track_rect(mThumbImage->getWidth() / 2, getLocalRect().getCenterY() + (mTrackImage->getHeight() / 2), @@ -257,18 +257,38 @@ void LLSlider::draw() mTrackHighlightImage->draw(highlight_rect); // Thumb - if( hasMouseCapture() ) - { - // Show ghost where thumb was before dragging began. - mThumbImage->draw(mDragStartThumbRect, mThumbCenterColor.get() % 0.3f); - } if (hasFocus()) { // Draw focus highlighting. mThumbImage->drawBorder(mThumbRect, gFocusMgr.getFocusColor(), gFocusMgr.getFocusFlashWidth()); } - // Fill in the thumb. - mThumbImage->draw(mThumbRect, hasMouseCapture() ? mThumbOutlineColor.get() : center_color); + if( hasMouseCapture() ) // currently clicking on slider + { + // Show ghost where thumb was before dragging began. + if (mThumbImage.notNull()) + { + mThumbImage->draw(mDragStartThumbRect, mThumbCenterColor.get() % 0.3f); + } + if (mThumbImagePressed.notNull()) + { + mThumbImagePressed->draw(mThumbRect, mThumbOutlineColor); + } + } + else if (!isInEnabledChain()) + { + if (mThumbImageDisabled.notNull()) + { + mThumbImageDisabled->draw(mThumbRect, mThumbCenterColor); + } + } + else + { + if (mThumbImage.notNull()) + { + mThumbImage->draw(mThumbRect, mThumbCenterColor); + } + } + LLUICtrl::draw(); } -- cgit v1.2.3