svn merge -r 61148:61343 svn+ssh://svn/svn/linden/branches/maintenance into release

master
Don Kjer 2007-05-04 21:57:06 +00:00
parent 08d746156b
commit 70aaa3e444
19 changed files with 87 additions and 42 deletions

View File

@ -4,7 +4,7 @@ along with the issue identifier corresponding to the patches we've
received from them. To see more about these contributions, visit
http://jira.secondlife.com/ and enter the issue identifier.
Alissa Sabre - VWR-81, VWR-83, VWR-414
Alissa Sabre - VWR-81, VWR-83, VWR-414, VWR-415
blino Nakamura - VWR-17
bushing Spatula - VWR-424
Drewan Keats - VWR-28
@ -22,7 +22,7 @@ Kunnis Basiat - VWR-82
Paul Churchill - VWR-20
Paula Innis - VWR-30
Peekay Semyorka - VWR-7, VWR-19, VWR-49
SignpostMarv Martin - VWR-155
SignpostMarv Martin - VWR-154, VWR-155
SpacedOut Frye - VWR-57, VWR-94, VWR-121, VWR-123
Strife Onizuka - SVC-9, VWR-74, VWR-85, VWR-148
Zipherius Turas - VWR-76, VWR-77

View File

@ -50,7 +50,7 @@ const F32 PIXEL_BORDER_THRESHOLD = 0.0001f;
const F32 PIXEL_CORRECTION_DISTANCE = 0.01f;
const F32 PAD_AMT = 0.5f;
const F32 DROP_SHADOW_STRENGTH = 0.3f;
const F32 DROP_SHADOW_SOFT_STRENGTH = 0.3f;
F32 llfont_round_x(F32 x)
{
@ -86,6 +86,14 @@ U8 LLFontGL::getStyleFromString(const LLString &style)
{
ret |= UNDERLINE;
}
if (style.find("SHADOW") != style.npos)
{
ret |= DROP_SHADOW;
}
if (style.find("SOFT_SHADOW") != style.npos)
{
ret |= DROP_SHADOW_SOFT;
}
return ret;
}
@ -551,14 +559,14 @@ S32 LLFontGL::render(const LLWString &wstr,
}
F32 drop_shadow_strength = 0.f;
if (style & DROP_SHADOW)
if (style & (DROP_SHADOW | DROP_SHADOW_SOFT))
{
F32 luminance;
color.calcHSL(NULL, NULL, &luminance);
drop_shadow_strength = clamp_rescale(luminance, 0.35f, 0.6f, 0.f, DROP_SHADOW_STRENGTH);
drop_shadow_strength = clamp_rescale(luminance, 0.35f, 0.6f, 0.f, 1.f);
if (luminance < 0.35f)
{
style = style & ~DROP_SHADOW;
style = style & ~(DROP_SHADOW | DROP_SHADOW_SOFT);
}
}
@ -1315,10 +1323,10 @@ void LLFontGL::drawGlyph(const LLRectf& screen_rect, const LLRectf& uv_rect, con
renderQuad(screen_rect_offset, uv_rect, slant_offset);
}
}
else if (style & DROP_SHADOW)
else if (style & DROP_SHADOW_SOFT)
{
LLColor4 shadow_color = LLFontGL::sShadowColor;
shadow_color.mV[VALPHA] = color.mV[VALPHA] * drop_shadow_strength;
shadow_color.mV[VALPHA] = color.mV[VALPHA] * drop_shadow_strength * DROP_SHADOW_SOFT_STRENGTH;
glColor4fv(shadow_color.mV);
for (S32 pass = 0; pass < 5; pass++)
{
@ -1348,6 +1356,17 @@ void LLFontGL::drawGlyph(const LLRectf& screen_rect, const LLRectf& uv_rect, con
glColor4fv(color.mV);
renderQuad(screen_rect, uv_rect, slant_offset);
}
else if (style & DROP_SHADOW)
{
LLColor4 shadow_color = LLFontGL::sShadowColor;
shadow_color.mV[VALPHA] = color.mV[VALPHA] * drop_shadow_strength;
glColor4fv(shadow_color.mV);
LLRectf screen_rect_shadow = screen_rect;
screen_rect_shadow.translate(1.f, -1.f);
renderQuad(screen_rect_shadow, uv_rect, slant_offset);
glColor4fv(color.mV);
renderQuad(screen_rect, uv_rect, slant_offset);
}
else // normal rendering
{
glColor4fv(color.mV);

View File

@ -45,7 +45,8 @@ public:
BOLD = 1,
ITALIC = 2,
UNDERLINE = 4,
DROP_SHADOW = 8
DROP_SHADOW = 8,
DROP_SHADOW_SOFT = 16
};
// Takes a string with potentially several flags, i.e. "NORMAL|BOLD|ITALIC"

View File

@ -628,7 +628,7 @@ void LLButton::draw()
mGLFont->render(label, 0, (F32)x, (F32)(LLBUTTON_V_PAD + y_offset),
label_color,
mHAlign, LLFontGL::BOTTOM,
mDropShadowedText ? LLFontGL::DROP_SHADOW : LLFontGL::NORMAL,
mDropShadowedText ? LLFontGL::DROP_SHADOW_SOFT : LLFontGL::NORMAL,
U32_MAX, drawable_width,
NULL, FALSE, FALSE);
}

View File

@ -102,6 +102,7 @@ void LLDragHandleTop::setTitle(const LLString& title)
const LLFontGL* font = gResMgr->getRes( LLFONT_SANSSERIF );
mTitleBox = new LLTextBox( "Drag Handle Title", mRect, trimmed_title, font );
mTitleBox->setFollows(FOLLOWS_TOP | FOLLOWS_LEFT | FOLLOWS_RIGHT);
mTitleBox->setFontStyle(LLFontGL::DROP_SHADOW_SOFT);
reshapeTitleBox();
// allow empty titles, as default behavior replaces them with title box name

View File

@ -1919,7 +1919,11 @@ void LLFloaterView::bringToFront(LLFloater* child, BOOL give_focus)
LLFloater* floaterp = (LLFloater*)(*view_it);
sendChildToFront(floaterp);
floaterp->setMinimized(FALSE);
// always unminimize dependee, but allow dependents to stay minimized
if (!floaterp->isDependent())
{
floaterp->setMinimized(FALSE);
}
}
floaters_to_move.clear();
@ -1931,7 +1935,9 @@ void LLFloaterView::bringToFront(LLFloater* child, BOOL give_focus)
if (dependent)
{
sendChildToFront(dependent);
dependent->setMinimized(FALSE);
//don't un-minimize dependent windows automatically
// respect user's wishes
//dependent->setMinimized(FALSE);
}
++dependent_it;
}

View File

@ -497,7 +497,7 @@ void LLMenuItemGL::draw( void )
U8 font_style = mStyle;
if (LLMenuItemGL::sDropShadowText && getEnabled() && !mDrawTextDisabled )
{
font_style |= LLFontGL::DROP_SHADOW;
font_style |= LLFontGL::DROP_SHADOW_SOFT;
}
if ( getEnabled() && getHighlight() )
@ -1728,7 +1728,7 @@ void LLMenuItemBranchDownGL::draw( void )
U8 font_style = mStyle;
if (LLMenuItemGL::sDropShadowText && getEnabled() && !mDrawTextDisabled )
{
font_style |= LLFontGL::DROP_SHADOW;
font_style |= LLFontGL::DROP_SHADOW_SOFT;
}
LLColor4 color;

View File

@ -28,7 +28,7 @@ LLTextBox::LLTextBox(const LLString& name, const LLRect& rect, const LLString& t
mBorderColor( LLUI::sColorsGroup->getColor( "DefaultHighlightLight" ) ),
mBackgroundVisible( FALSE ),
mBorderVisible( FALSE ),
mDropshadowVisible( TRUE ),
mFontStyle(LLFontGL::DROP_SHADOW_SOFT),
mBorderDropShadowVisible( FALSE ),
mHPad(0),
mVPad(0),
@ -53,7 +53,7 @@ LLTextBox::LLTextBox(const LLString& name, const LLString& text, F32 max_width,
mBorderColor(LLUI::sColorsGroup->getColor("DefaultHighlightLight")),
mBackgroundVisible(FALSE),
mBorderVisible(FALSE),
mDropshadowVisible(TRUE),
mFontStyle(LLFontGL::DROP_SHADOW_SOFT),
mBorderDropShadowVisible(FALSE),
mHPad(0),
mVPad(0),
@ -343,7 +343,7 @@ void LLTextBox::drawText( S32 x, S32 y, const LLColor4& color )
S32 line_length = *iter;
mFontGL->render(mText.getWString(), cur_pos, (F32)x, (F32)y, color,
mHAlign, mVAlign,
mDropshadowVisible ? LLFontGL::DROP_SHADOW : LLFontGL::NORMAL,
mFontStyle,
line_length, mRect.getWidth(), NULL, TRUE );
cur_pos += line_length + 1;
y -= llfloor(mFontGL->getLineHeight());
@ -353,7 +353,7 @@ void LLTextBox::drawText( S32 x, S32 y, const LLColor4& color )
{
mFontGL->render(mText.getWString(), 0, (F32)x, (F32)y, color,
mHAlign, mVAlign,
mDropshadowVisible ? LLFontGL::DROP_SHADOW : LLFontGL::NORMAL,
mFontStyle,
S32_MAX, mRect.getWidth(), NULL, TRUE);
}
}
@ -386,8 +386,6 @@ LLXMLNodePtr LLTextBox::getXML(bool save_children) const
node->createChild("border_visible", TRUE)->setBoolValue(mBorderVisible);
node->createChild("drop_shadow_visible", TRUE)->setBoolValue(mDropshadowVisible);
node->createChild("border_drop_shadow_visible", TRUE)->setBoolValue(mBorderDropShadowVisible);
node->createChild("h_pad", TRUE)->setIntValue(mHPad);
@ -427,6 +425,12 @@ LLView* LLTextBox::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *f
text_box->initFromXML(node, parent);
LLString font_style;
if (node->getAttributeString("font-style", font_style))
{
text_box->mFontStyle = LLFontGL::getStyleFromString(font_style);
}
if(node->hasAttribute("text_color"))
{
LLColor4 color;

View File

@ -54,7 +54,7 @@ public:
void setBackgroundVisible(BOOL visible) { mBackgroundVisible = visible; }
void setBorderVisible(BOOL visible) { mBorderVisible = visible; }
void setDropshadowVisible(BOOL visible) { mDropshadowVisible = visible; }
void setFontStyle(U8 style) { mFontStyle = style; }
void setBorderDropshadowVisible(BOOL visible){ mBorderDropShadowVisible = visible; }
void setHPad(S32 pixels) { mHPad = pixels; }
void setVPad(S32 pixels) { mVPad = pixels; }
@ -92,7 +92,7 @@ protected:
BOOL mBackgroundVisible;
BOOL mBorderVisible;
BOOL mDropshadowVisible; // Draws black dropshadow below and to the right of the text.
U8 mFontStyle; // style bit flags for font
BOOL mBorderDropShadowVisible;
S32 mHPad;

View File

@ -34,8 +34,12 @@
#include "indra_constants.h"
// culled from winuser.h
#ifndef WM_MOUSEWHEEL /* Added to be compatible with later SDK's */
const S32 WM_MOUSEWHEEL = 0x020A;
#endif
#ifndef WHEEL_DELTA /* Added to be compatible with later SDK's */
const S32 WHEEL_DELTA = 120; /* Value for rolling one detent */
#endif
const S32 MAX_MESSAGE_PER_UPDATE = 20;
const S32 BITS_PER_PIXEL = 32;
const S32 MAX_NUM_RESOLUTIONS = 32;

View File

@ -162,7 +162,6 @@ BOOL LLFloaterTOS::postBuild()
childSetValue("tos_text", LLSD(mMessage));
#endif
return TRUE;
}

View File

@ -83,7 +83,7 @@ LLNetMap::LLNetMap(
LLRect major_dir_rect( 0, DIR_HEIGHT, DIR_WIDTH, 0 );
mTextBoxNorth = new LLTextBox( "N", major_dir_rect );
mTextBoxNorth->setDropshadowVisible( TRUE );
mTextBoxNorth->setFontStyle(LLFontGL::DROP_SHADOW_SOFT);
addChild( mTextBoxNorth );
LLColor4 minor_color( 1.f, 1.f, 1.f, .7f );

View File

@ -87,9 +87,13 @@ void LLPanelContents::getState(LLViewerObject *objectp )
return;
}
LLUUID group_id; // used for SL-23488
gSelectMgr->selectGetGroup(group_id); // sets group_id as a side effect SL-23488
// BUG? Check for all objects being editable?
BOOL editable = gAgent.isGodlike()
|| (objectp->permModify() && objectp->permYouOwner());
|| (objectp->permModify()
&& ( objectp->permYouOwner() || ( !group_id.isNull() && gAgent.isInGroup(group_id) ))); // solves SL-23488
BOOL all_volume = gSelectMgr->selectionAllPCode( LL_PCODE_VOLUME );
// Edit script button - ok if object is editable and there's an

View File

@ -503,7 +503,7 @@ void LLScriptEdCore::updateDynamicHelp(BOOL immediate)
mLiveHelpTimer.stop();
}
}
else
else if (immediate)
{
setHelpPage("");
}

View File

@ -1124,16 +1124,8 @@ void inventory_offer_handler(LLOfferInfo* info, BOOL from_task)
if (from_task)
{
args["[OBJECTFROMNAME]"] = info->mFromName;
if (name_found)
{
LLNotifyBox::showXml("ObjectGiveItem", args,
&inventory_offer_callback, (void*)info);
}
else
{
LLNotifyBox::showXml("ObjectGiveItemUnknownUser", args,
&inventory_offer_callback, (void*)info);
}
LLNotifyBox::showXml(name_found ? "ObjectGiveItem" : "ObjectGiveItemUnknownUser",
args, &inventory_offer_callback, (void*)info);
}
else
{
@ -1633,10 +1625,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
}
else
{
if (dialog == IM_TASK_INVENTORY_OFFERED)
inventory_offer_handler(info, TRUE);
else
inventory_offer_handler(info, FALSE);
inventory_offer_handler(info, dialog == IM_TASK_INVENTORY_OFFERED);
}
}
break;

View File

@ -1708,7 +1708,7 @@ void LLViewerWindow::initBase()
mToolTip->setBorderVisible( FALSE );
mToolTip->setBackgroundColor( gColors.getColor( "ToolTipBgColor" ) );
mToolTip->setBackgroundVisible( TRUE );
mToolTip->setDropshadowVisible( FALSE );
mToolTip->setFontStyle(LLFontGL::NORMAL);
mToolTip->setBorderDropshadowVisible( TRUE );
mToolTip->setVisible( FALSE );

View File

@ -158,7 +158,6 @@ LLWorldMapView::LLWorldMapView(const std::string& name, const LLRect& rect )
LLRect major_dir_rect( 0, DIR_HEIGHT, DIR_WIDTH, 0 );
mTextBoxNorth = new LLTextBox( "N", major_dir_rect );
mTextBoxNorth->setDropshadowVisible( TRUE );
addChild( mTextBoxNorth );
LLColor4 minor_color( 1.f, 1.f, 1.f, .7f );

View File

@ -14,6 +14,10 @@
#include <tut/tut.h>
#include "linden_common.h"
// These are too slow on Windows to actually include in the build. JC
#if !LL_WINDOWS
#include "lltut.h"
#include "llhttpclient.h"
#include "llformat.h"
@ -313,4 +317,7 @@ namespace tut
LLSD body = result["body"];
ensure_equals("echoed result matches", body.size(), expected.size());
}
}
#endif // !LL_WINDOWS

View File

@ -20,6 +20,8 @@ namespace tut
void ensure_equals(const char* msg, const LLDate& actual,
const LLDate& expected)
{
std::cout << "ensure_equals " << msg << std::endl;
ensure_equals(msg,
actual.secondsSinceEpoch(), expected.secondsSinceEpoch());
}
@ -28,6 +30,8 @@ namespace tut
void ensure_equals(const char* msg, const LLURI& actual,
const LLURI& expected)
{
std::cout << "ensure_equals " << msg << std::endl;
ensure_equals(msg,
actual.asString(), expected.asString());
}
@ -36,6 +40,8 @@ namespace tut
void ensure_equals(const char* msg,
const std::vector<U8>& actual, const std::vector<U8>& expected)
{
std::cout << "ensure_equals " << msg << std::endl;
std::string s(msg);
ensure_equals(s + " size", actual.size(), expected.size());
@ -54,6 +60,8 @@ namespace tut
void ensure_equals(const char* m, const LLSD& actual,
const LLSD& expected)
{
std::cout << "ensure_equals " << m << std::endl;
const std::string& msg = m;
ensure_equals(msg + " type", actual.type(), expected.type());
@ -129,6 +137,7 @@ namespace tut
void ensure_starts_with(const std::string& msg,
const std::string& actual, const std::string& expectedStart)
{
std::cout << "ensure_starts_with " << msg << std::endl;
if( actual.find(expectedStart, 0) != 0 )
{
std::stringstream ss;
@ -141,6 +150,7 @@ namespace tut
void ensure_ends_with(const std::string& msg,
const std::string& actual, const std::string& expectedEnd)
{
std::cout << "ensure_ends_with " << msg << std::endl;
if( actual.size() < expectedEnd.size()
|| actual.rfind(expectedEnd)
!= (actual.size() - expectedEnd.size()) )
@ -155,6 +165,7 @@ namespace tut
void ensure_contains(const std::string& msg,
const std::string& actual, const std::string& expectedSubString)
{
std::cout << "ensure_contains " << msg << std::endl;
if( actual.find(expectedSubString, 0) == std::string::npos )
{
std::stringstream ss;
@ -167,6 +178,7 @@ namespace tut
void ensure_does_not_contain(const std::string& msg,
const std::string& actual, const std::string& expectedSubString)
{
std::cout << "ensure_does_not_contain " << msg << std::endl;
if( actual.find(expectedSubString, 0) != std::string::npos )
{
std::stringstream ss;