diff options
Diffstat (limited to 'linden/indra/llui')
92 files changed, 391 insertions, 411 deletions
diff --git a/linden/indra/llui/llalertdialog.cpp b/linden/indra/llui/llalertdialog.cpp index 4be07e9..80e54b6 100644 --- a/linden/indra/llui/llalertdialog.cpp +++ b/linden/indra/llui/llalertdialog.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llalertdialog.h b/linden/indra/llui/llalertdialog.h index fc3bdea..7d82fb5 100644 --- a/linden/indra/llui/llalertdialog.h +++ b/linden/indra/llui/llalertdialog.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llbutton.cpp b/linden/indra/llui/llbutton.cpp index 508500a..34e62c8 100644 --- a/linden/indra/llui/llbutton.cpp +++ b/linden/indra/llui/llbutton.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
@@ -38,6 +38,7 @@ | |||
38 | #include "llstring.h" | 38 | #include "llstring.h" |
39 | 39 | ||
40 | // Project includes | 40 | // Project includes |
41 | #include "llhtmlhelp.h" | ||
41 | #include "llkeyboard.h" | 42 | #include "llkeyboard.h" |
42 | #include "llui.h" | 43 | #include "llui.h" |
43 | #include "lluiconstants.h" | 44 | #include "lluiconstants.h" |
diff --git a/linden/indra/llui/llbutton.h b/linden/indra/llui/llbutton.h index e9497bd..556e12c 100644 --- a/linden/indra/llui/llbutton.h +++ b/linden/indra/llui/llbutton.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llcallbackmap.h b/linden/indra/llui/llcallbackmap.h index 6f2d3bf..db11c39 100644 --- a/linden/indra/llui/llcallbackmap.h +++ b/linden/indra/llui/llcallbackmap.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2006&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2006&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2006-2008, Linden Research, Inc. | 7 | * Copyright (c) 2006-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llcheckboxctrl.cpp b/linden/indra/llui/llcheckboxctrl.cpp index d383640..d4c372a 100644 --- a/linden/indra/llui/llcheckboxctrl.cpp +++ b/linden/indra/llui/llcheckboxctrl.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llcheckboxctrl.h b/linden/indra/llui/llcheckboxctrl.h index 659ba82..8a70c62 100644 --- a/linden/indra/llui/llcheckboxctrl.h +++ b/linden/indra/llui/llcheckboxctrl.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llclipboard.cpp b/linden/indra/llui/llclipboard.cpp index 31d02a4..d5255e7 100644 --- a/linden/indra/llui/llclipboard.cpp +++ b/linden/indra/llui/llclipboard.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llclipboard.h b/linden/indra/llui/llclipboard.h index 2ebc2de..706ed2a 100644 --- a/linden/indra/llui/llclipboard.h +++ b/linden/indra/llui/llclipboard.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llcombobox.cpp b/linden/indra/llui/llcombobox.cpp index cb9dd4e..2ca69db 100644 --- a/linden/indra/llui/llcombobox.cpp +++ b/linden/indra/llui/llcombobox.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llcombobox.h b/linden/indra/llui/llcombobox.h index f4cf0fb..efcb798 100644 --- a/linden/indra/llui/llcombobox.h +++ b/linden/indra/llui/llcombobox.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llctrlselectioninterface.cpp b/linden/indra/llui/llctrlselectioninterface.cpp index 3ef0f83..282f43c 100644 --- a/linden/indra/llui/llctrlselectioninterface.cpp +++ b/linden/indra/llui/llctrlselectioninterface.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2006&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2006&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2006-2008, Linden Research, Inc. | 7 | * Copyright (c) 2006-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llctrlselectioninterface.h b/linden/indra/llui/llctrlselectioninterface.h index 67743de..6f5f5c8 100644 --- a/linden/indra/llui/llctrlselectioninterface.h +++ b/linden/indra/llui/llctrlselectioninterface.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2006&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2006&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2006-2008, Linden Research, Inc. | 7 | * Copyright (c) 2006-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/lldraghandle.cpp b/linden/indra/llui/lldraghandle.cpp index bec2da5..c76bdfb 100644 --- a/linden/indra/llui/lldraghandle.cpp +++ b/linden/indra/llui/lldraghandle.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/lldraghandle.h b/linden/indra/llui/lldraghandle.h index 6882c7f..35408da 100644 --- a/linden/indra/llui/lldraghandle.h +++ b/linden/indra/llui/lldraghandle.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/lleditmenuhandler.cpp b/linden/indra/llui/lleditmenuhandler.cpp index 2f29f71..d6f04f2 100644 --- a/linden/indra/llui/lleditmenuhandler.cpp +++ b/linden/indra/llui/lleditmenuhandler.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2006&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2006&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2006-2008, Linden Research, Inc. | 7 | * Copyright (c) 2006-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/lleditmenuhandler.h b/linden/indra/llui/lleditmenuhandler.h index 82bb058..c0c6d7b 100644 --- a/linden/indra/llui/lleditmenuhandler.h +++ b/linden/indra/llui/lleditmenuhandler.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2006&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2006&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2006-2008, Linden Research, Inc. | 7 | * Copyright (c) 2006-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llfloater.cpp b/linden/indra/llui/llfloater.cpp index 2f4e873..2924c29 100644 --- a/linden/indra/llui/llfloater.cpp +++ b/linden/indra/llui/llfloater.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2002-2008, Linden Research, Inc. | 7 | * Copyright (c) 2002-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
@@ -127,6 +127,7 @@ LLFloaterView* gFloaterView = NULL; | |||
127 | 127 | ||
128 | LLFloater::LLFloater() : | 128 | LLFloater::LLFloater() : |
129 | //FIXME: we should initialize *all* member variables here | 129 | //FIXME: we should initialize *all* member variables here |
130 | LLPanel(), mAutoFocus(TRUE), | ||
130 | mResizable(FALSE), | 131 | mResizable(FALSE), |
131 | mDragOnLeft(FALSE), | 132 | mDragOnLeft(FALSE), |
132 | mMinWidth(0), | 133 | mMinWidth(0), |
@@ -139,6 +140,11 @@ LLFloater::LLFloater() : | |||
139 | mButtonsEnabled[i] = FALSE; | 140 | mButtonsEnabled[i] = FALSE; |
140 | mButtons[i] = NULL; | 141 | mButtons[i] = NULL; |
141 | } | 142 | } |
143 | for (S32 i = 0; i < 4; i++) | ||
144 | { | ||
145 | mResizeBar[i] = NULL; | ||
146 | mResizeHandle[i] = NULL; | ||
147 | } | ||
142 | mDragHandle = NULL; | 148 | mDragHandle = NULL; |
143 | mHandle.bind(this); | 149 | mHandle.bind(this); |
144 | } | 150 | } |
@@ -151,6 +157,11 @@ LLFloater::LLFloater(const std::string& name) | |||
151 | mButtonsEnabled[i] = FALSE; | 157 | mButtonsEnabled[i] = FALSE; |
152 | mButtons[i] = NULL; | 158 | mButtons[i] = NULL; |
153 | } | 159 | } |
160 | for (S32 i = 0; i < 4; i++) | ||
161 | { | ||
162 | mResizeBar[i] = NULL; | ||
163 | mResizeHandle[i] = NULL; | ||
164 | } | ||
154 | std::string title; // null string | 165 | std::string title; // null string |
155 | initFloater(title, FALSE, DEFAULT_MIN_WIDTH, DEFAULT_MIN_HEIGHT, FALSE, TRUE, TRUE); // defaults | 166 | initFloater(title, FALSE, DEFAULT_MIN_WIDTH, DEFAULT_MIN_HEIGHT, FALSE, TRUE, TRUE); // defaults |
156 | } | 167 | } |
@@ -171,6 +182,11 @@ LLFloater::LLFloater(const std::string& name, const LLRect& rect, const std::str | |||
171 | mButtonsEnabled[i] = FALSE; | 182 | mButtonsEnabled[i] = FALSE; |
172 | mButtons[i] = NULL; | 183 | mButtons[i] = NULL; |
173 | } | 184 | } |
185 | for (S32 i = 0; i < 4; i++) | ||
186 | { | ||
187 | mResizeBar[i] = NULL; | ||
188 | mResizeHandle[i] = NULL; | ||
189 | } | ||
174 | initFloater( title, resizable, min_width, min_height, drag_on_left, minimizable, close_btn); | 190 | initFloater( title, resizable, min_width, min_height, drag_on_left, minimizable, close_btn); |
175 | } | 191 | } |
176 | 192 | ||
@@ -189,6 +205,11 @@ LLFloater::LLFloater(const std::string& name, const std::string& rect_control, c | |||
189 | mButtonsEnabled[i] = FALSE; | 205 | mButtonsEnabled[i] = FALSE; |
190 | mButtons[i] = NULL; | 206 | mButtons[i] = NULL; |
191 | } | 207 | } |
208 | for (S32 i = 0; i < 4; i++) | ||
209 | { | ||
210 | mResizeBar[i] = NULL; | ||
211 | mResizeHandle[i] = NULL; | ||
212 | } | ||
192 | initFloater( title, resizable, min_width, min_height, drag_on_left, minimizable, close_btn); | 213 | initFloater( title, resizable, min_width, min_height, drag_on_left, minimizable, close_btn); |
193 | } | 214 | } |
194 | 215 | ||
@@ -523,6 +544,7 @@ void LLFloater::close(bool app_quitting) | |||
523 | if (getHost()) | 544 | if (getHost()) |
524 | { | 545 | { |
525 | ((LLMultiFloater*)getHost())->removeFloater(this); | 546 | ((LLMultiFloater*)getHost())->removeFloater(this); |
547 | gFloaterView->addChild(this); | ||
526 | } | 548 | } |
527 | 549 | ||
528 | if (getSoundFlags() != SILENT | 550 | if (getSoundFlags() != SILENT |
@@ -1297,8 +1319,8 @@ void LLFloater::onClickEdit(void *userdata) | |||
1297 | self->mEditing = self->mEditing ? FALSE : TRUE; | 1319 | self->mEditing = self->mEditing ? FALSE : TRUE; |
1298 | } | 1320 | } |
1299 | 1321 | ||
1300 | // static | 1322 | // static |
1301 | void LLFloater::closeFocusedFloater() | 1323 | LLFloater* LLFloater::getClosableFloaterFromFocus() |
1302 | { | 1324 | { |
1303 | LLFloater* focused_floater = NULL; | 1325 | LLFloater* focused_floater = NULL; |
1304 | 1326 | ||
@@ -1315,10 +1337,32 @@ void LLFloater::closeFocusedFloater() | |||
1315 | if (iter == sFloaterMap.end()) | 1337 | if (iter == sFloaterMap.end()) |
1316 | { | 1338 | { |
1317 | // nothing found, return | 1339 | // nothing found, return |
1318 | return; | 1340 | return NULL; |
1341 | } | ||
1342 | |||
1343 | // The focused floater may not be closable, | ||
1344 | // Find and close a parental floater that is closeable, if any. | ||
1345 | for(LLFloater* floater_to_close = focused_floater; | ||
1346 | NULL != floater_to_close; | ||
1347 | floater_to_close = gFloaterView->getParentFloater(floater_to_close)) | ||
1348 | { | ||
1349 | if(floater_to_close->isCloseable()) | ||
1350 | { | ||
1351 | return floater_to_close; | ||
1352 | } | ||
1319 | } | 1353 | } |
1320 | 1354 | ||
1321 | focused_floater->close(); | 1355 | return NULL; |
1356 | } | ||
1357 | |||
1358 | // static | ||
1359 | void LLFloater::closeFocusedFloater() | ||
1360 | { | ||
1361 | LLFloater* floater_to_close = LLFloater::getClosableFloaterFromFocus(); | ||
1362 | if(floater_to_close) | ||
1363 | { | ||
1364 | floater_to_close->close(); | ||
1365 | } | ||
1322 | 1366 | ||
1323 | // if nothing took focus after closing focused floater | 1367 | // if nothing took focus after closing focused floater |
1324 | // give it to next floater (to allow closing multiple windows via keyboard in rapid succession) | 1368 | // give it to next floater (to allow closing multiple windows via keyboard in rapid succession) |
@@ -1580,7 +1624,7 @@ void LLFloater::updateButtons() | |||
1580 | S32 button_count = 0; | 1624 | S32 button_count = 0; |
1581 | for (S32 i = 0; i < BUTTON_COUNT; i++) | 1625 | for (S32 i = 0; i < BUTTON_COUNT; i++) |
1582 | { | 1626 | { |
1583 | if(!mButtons[i]) continue; | 1627 | if(!mButtons[i]) continue; |
1584 | mButtons[i]->setEnabled(mButtonsEnabled[i]); | 1628 | mButtons[i]->setEnabled(mButtonsEnabled[i]); |
1585 | 1629 | ||
1586 | if (mButtonsEnabled[i] | 1630 | if (mButtonsEnabled[i] |
diff --git a/linden/indra/llui/llfloater.h b/linden/indra/llui/llfloater.h index 0be5d44..a6fe3cc 100644 --- a/linden/indra/llui/llfloater.h +++ b/linden/indra/llui/llfloater.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2002-2008, Linden Research, Inc. | 7 | * Copyright (c) 2002-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
@@ -206,6 +206,11 @@ public: | |||
206 | 206 | ||
207 | LLHandle<LLFloater> getHandle() const { return mHandle; } | 207 | LLHandle<LLFloater> getHandle() const { return mHandle; } |
208 | 208 | ||
209 | // Return a closeable floater, if any, given the current focus. | ||
210 | static LLFloater* getClosableFloaterFromFocus(); | ||
211 | |||
212 | // Close the floater returned by getClosableFloaterFromFocus() and | ||
213 | // handle refocusing. | ||
209 | static void closeFocusedFloater(); | 214 | static void closeFocusedFloater(); |
210 | 215 | ||
211 | static void onClickClose(void *userdata); | 216 | static void onClickClose(void *userdata); |
diff --git a/linden/indra/llui/llfocusmgr.cpp b/linden/indra/llui/llfocusmgr.cpp index 517e148..69010cd 100644 --- a/linden/indra/llui/llfocusmgr.cpp +++ b/linden/indra/llui/llfocusmgr.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2002-2008, Linden Research, Inc. | 7 | * Copyright (c) 2002-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llfocusmgr.h b/linden/indra/llui/llfocusmgr.h index e1b3d88..61daca7 100644 --- a/linden/indra/llui/llfocusmgr.h +++ b/linden/indra/llui/llfocusmgr.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2002-2008, Linden Research, Inc. | 7 | * Copyright (c) 2002-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llhtmlhelp.h b/linden/indra/llui/llhtmlhelp.h index 254faa2..3383148 100644 --- a/linden/indra/llui/llhtmlhelp.h +++ b/linden/indra/llui/llhtmlhelp.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2006&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2006&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2006-2008, Linden Research, Inc. | 7 | * Copyright (c) 2006-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/lliconctrl.cpp b/linden/indra/llui/lliconctrl.cpp index 6d1a678..71c2315 100644 --- a/linden/indra/llui/lliconctrl.cpp +++ b/linden/indra/llui/lliconctrl.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/lliconctrl.h b/linden/indra/llui/lliconctrl.h index 5cb8e98..a8a265d 100644 --- a/linden/indra/llui/lliconctrl.h +++ b/linden/indra/llui/lliconctrl.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llkeywords.cpp b/linden/indra/llui/llkeywords.cpp index 862e77b..b7e7d87 100644 --- a/linden/indra/llui/llkeywords.cpp +++ b/linden/indra/llui/llkeywords.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2000&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2000&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2000-2008, Linden Research, Inc. | 7 | * Copyright (c) 2000-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llkeywords.h b/linden/indra/llui/llkeywords.h index 742383a..cb19298 100644 --- a/linden/indra/llui/llkeywords.h +++ b/linden/indra/llui/llkeywords.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/lllineeditor.cpp b/linden/indra/llui/lllineeditor.cpp index 9c8ee94..498ef26 100644 --- a/linden/indra/llui/lllineeditor.cpp +++ b/linden/indra/llui/lllineeditor.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
@@ -35,6 +35,7 @@ | |||
35 | 35 | ||
36 | #include "lllineeditor.h" | 36 | #include "lllineeditor.h" |
37 | 37 | ||
38 | #include "lltexteditor.h" | ||
38 | #include "audioengine.h" | 39 | #include "audioengine.h" |
39 | #include "llmath.h" | 40 | #include "llmath.h" |
40 | #include "llfontgl.h" | 41 | #include "llfontgl.h" |
@@ -455,19 +456,19 @@ BOOL LLLineEditor::handleDoubleClick(S32 x, S32 y, MASK mask) | |||
455 | BOOL doSelectAll = TRUE; | 456 | BOOL doSelectAll = TRUE; |
456 | 457 | ||
457 | // Select the word we're on | 458 | // Select the word we're on |
458 | if( isPartOfWord( wtext[mCursorPos] ) ) | 459 | if( LLTextEditor::isPartOfWord( wtext[mCursorPos] ) ) |
459 | { | 460 | { |
460 | S32 old_selection_start = mLastSelectionStart; | 461 | S32 old_selection_start = mLastSelectionStart; |
461 | S32 old_selection_end = mLastSelectionEnd; | 462 | S32 old_selection_end = mLastSelectionEnd; |
462 | 463 | ||
463 | // Select word the cursor is over | 464 | // Select word the cursor is over |
464 | while ((mCursorPos > 0) && isPartOfWord( wtext[mCursorPos-1] )) | 465 | while ((mCursorPos > 0) && LLTextEditor::isPartOfWord( wtext[mCursorPos-1] )) |
465 | { // Find the start of the word | 466 | { // Find the start of the word |
466 | mCursorPos--; | 467 | mCursorPos--; |
467 | } | 468 | } |
468 | startSelection(); | 469 | startSelection(); |
469 | 470 | ||
470 | while ((mCursorPos < (S32)wtext.length()) && isPartOfWord( wtext[mCursorPos] ) ) | 471 | while ((mCursorPos < (S32)wtext.length()) && LLTextEditor::isPartOfWord( wtext[mCursorPos] ) ) |
471 | { // Find the end of the word | 472 | { // Find the end of the word |
472 | mCursorPos++; | 473 | mCursorPos++; |
473 | } | 474 | } |
@@ -769,7 +770,7 @@ S32 LLLineEditor::prevWordPos(S32 cursorPos) const | |||
769 | { | 770 | { |
770 | cursorPos--; | 771 | cursorPos--; |
771 | } | 772 | } |
772 | while( (cursorPos > 0) && isPartOfWord( wtext[cursorPos-1] ) ) | 773 | while( (cursorPos > 0) && LLTextEditor::isPartOfWord( wtext[cursorPos-1] ) ) |
773 | { | 774 | { |
774 | cursorPos--; | 775 | cursorPos--; |
775 | } | 776 | } |
@@ -779,7 +780,7 @@ S32 LLLineEditor::prevWordPos(S32 cursorPos) const | |||
779 | S32 LLLineEditor::nextWordPos(S32 cursorPos) const | 780 | S32 LLLineEditor::nextWordPos(S32 cursorPos) const |
780 | { | 781 | { |
781 | const LLWString& wtext = mText.getWString(); | 782 | const LLWString& wtext = mText.getWString(); |
782 | while( (cursorPos < getLength()) && isPartOfWord( wtext[cursorPos] ) ) | 783 | while( (cursorPos < getLength()) && LLTextEditor::isPartOfWord( wtext[cursorPos] ) ) |
783 | { | 784 | { |
784 | cursorPos++; | 785 | cursorPos++; |
785 | } | 786 | } |
@@ -1427,7 +1428,7 @@ void LLLineEditor::draw() | |||
1427 | #else // the old programmer art. | 1428 | #else // the old programmer art. |
1428 | // drawing solids requires texturing be disabled | 1429 | // drawing solids requires texturing be disabled |
1429 | { | 1430 | { |
1430 | LLGLSNoTexture no_texture; | 1431 | gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); |
1431 | // draw background for text | 1432 | // draw background for text |
1432 | if( !mReadOnly ) | 1433 | if( !mReadOnly ) |
1433 | { | 1434 | { |
@@ -1822,9 +1823,6 @@ BOOL LLLineEditor::prevalidateFloat(const LLWString &str) | |||
1822 | return success; | 1823 | return success; |
1823 | } | 1824 | } |
1824 | 1825 | ||
1825 | //static | ||
1826 | BOOL LLLineEditor::isPartOfWord(llwchar c) { return (c == '_') || isalnum(c); } | ||
1827 | |||
1828 | // static | 1826 | // static |
1829 | BOOL LLLineEditor::postvalidateFloat(const std::string &str) | 1827 | BOOL LLLineEditor::postvalidateFloat(const std::string &str) |
1830 | { | 1828 | { |
@@ -1998,7 +1996,7 @@ BOOL LLLineEditor::prevalidateAlphaNum(const LLWString &str) | |||
1998 | if(len == 0) return rv; | 1996 | if(len == 0) return rv; |
1999 | while(len--) | 1997 | while(len--) |
2000 | { | 1998 | { |
2001 | if( !isalnum(str[len]) ) | 1999 | if( !LLStringOps::isAlnum((char)str[len]) ) |
2002 | { | 2000 | { |
2003 | rv = FALSE; | 2001 | rv = FALSE; |
2004 | break; | 2002 | break; |
@@ -2017,7 +2015,7 @@ BOOL LLLineEditor::prevalidateAlphaNumSpace(const LLWString &str) | |||
2017 | if(len == 0) return rv; | 2015 | if(len == 0) return rv; |
2018 | while(len--) | 2016 | while(len--) |
2019 | { | 2017 | { |
2020 | if(!(isalnum(str[len]) || (' ' == str[len]))) | 2018 | if(!(LLStringOps::isAlnum((char)str[len]) || (' ' == str[len]))) |
2021 | { | 2019 | { |
2022 | rv = FALSE; | 2020 | rv = FALSE; |
2023 | break; | 2021 | break; |
@@ -2039,7 +2037,7 @@ BOOL LLLineEditor::prevalidatePrintableNotPipe(const LLWString &str) | |||
2039 | rv = FALSE; | 2037 | rv = FALSE; |
2040 | break; | 2038 | break; |
2041 | } | 2039 | } |
2042 | if(!((' ' == str[len]) || isalnum(str[len]) || ispunct(str[len]))) | 2040 | if(!((' ' == str[len]) || LLStringOps::isAlnum((char)str[len]) || LLStringOps::isPunct((char)str[len]))) |
2043 | { | 2041 | { |
2044 | rv = FALSE; | 2042 | rv = FALSE; |
2045 | break; | 2043 | break; |
@@ -2057,12 +2055,13 @@ BOOL LLLineEditor::prevalidatePrintableNoSpace(const LLWString &str) | |||
2057 | if(len == 0) return rv; | 2055 | if(len == 0) return rv; |
2058 | while(len--) | 2056 | while(len--) |
2059 | { | 2057 | { |
2060 | if(iswspace(str[len])) | 2058 | if(LLStringOps::isSpace(str[len])) |
2061 | { | 2059 | { |
2062 | rv = FALSE; | 2060 | rv = FALSE; |
2063 | break; | 2061 | break; |
2064 | } | 2062 | } |
2065 | if( !(isalnum(str[len]) || ispunct(str[len]) ) ) | 2063 | if( !(LLStringOps::isAlnum((char)str[len]) || |
2064 | LLStringOps::isPunct((char)str[len]) ) ) | ||
2066 | { | 2065 | { |
2067 | rv = FALSE; | 2066 | rv = FALSE; |
2068 | break; | 2067 | break; |
@@ -2313,7 +2312,7 @@ LLView* LLLineEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory | |||
2313 | } | 2312 | } |
2314 | 2313 | ||
2315 | //static | 2314 | //static |
2316 | void LLLineEditor::cleanupClass() | 2315 | void LLLineEditor::cleanupLineEditor() |
2317 | { | 2316 | { |
2318 | sImage = NULL; | 2317 | sImage = NULL; |
2319 | } | 2318 | } |
diff --git a/linden/indra/llui/lllineeditor.h b/linden/indra/llui/lllineeditor.h index 6738151..11cbcd9 100644 --- a/linden/indra/llui/lllineeditor.h +++ b/linden/indra/llui/lllineeditor.h | |||
@@ -13,7 +13,7 @@ | |||
13 | * | 13 | * |
14 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 14 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
15 | * | 15 | * |
16 | * Copyright (c) 2001-2008, Linden Research, Inc. | 16 | * Copyright (c) 2001-2009, Linden Research, Inc. |
17 | * | 17 | * |
18 | * Second Life Viewer Source Code | 18 | * Second Life Viewer Source Code |
19 | * The source code in this file ("Source Code") is provided by Linden Lab | 19 | * The source code in this file ("Source Code") is provided by Linden Lab |
@@ -82,7 +82,7 @@ public: | |||
82 | virtual LLXMLNodePtr getXML(bool save_children = true) const; | 82 | virtual LLXMLNodePtr getXML(bool save_children = true) const; |
83 | void setColorParameters(LLXMLNodePtr node); | 83 | void setColorParameters(LLXMLNodePtr node); |
84 | static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory); | 84 | static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory); |
85 | static void cleanupClass(); | 85 | static void cleanupLineEditor(); |
86 | 86 | ||
87 | // mousehandler overrides | 87 | // mousehandler overrides |
88 | /*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask); | 88 | /*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask); |
@@ -195,7 +195,6 @@ public: | |||
195 | void setMaxTextLength(S32 max_text_length); | 195 | void setMaxTextLength(S32 max_text_length); |
196 | void setTextPadding(S32 left, S32 right); // Used to specify room for children before or after text. | 196 | void setTextPadding(S32 left, S32 right); // Used to specify room for children before or after text. |
197 | 197 | ||
198 | static BOOL isPartOfWord(llwchar c); | ||
199 | // Prevalidation controls which keystrokes can affect the editor | 198 | // Prevalidation controls which keystrokes can affect the editor |
200 | void setPrevalidate( BOOL (*func)(const LLWString &) ); | 199 | void setPrevalidate( BOOL (*func)(const LLWString &) ); |
201 | static BOOL prevalidateFloat(const LLWString &str ); | 200 | static BOOL prevalidateFloat(const LLWString &str ); |
diff --git a/linden/indra/llui/llmemberlistener.h b/linden/indra/llui/llmemberlistener.h index a81f767..3b702ed 100644 --- a/linden/indra/llui/llmemberlistener.h +++ b/linden/indra/llui/llmemberlistener.h | |||
@@ -30,7 +30,7 @@ | |||
30 | * | 30 | * |
31 | * $LicenseInfo:firstyear=2006&license=viewergpl$ | 31 | * $LicenseInfo:firstyear=2006&license=viewergpl$ |
32 | * | 32 | * |
33 | * Copyright (c) 2006-2008, Linden Research, Inc. | 33 | * Copyright (c) 2006-2009, Linden Research, Inc. |
34 | * | 34 | * |
35 | * Second Life Viewer Source Code | 35 | * Second Life Viewer Source Code |
36 | * The source code in this file ("Source Code") is provided by Linden Lab | 36 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llmenugl.cpp b/linden/indra/llui/llmenugl.cpp index 24cc47e..907777d 100644 --- a/linden/indra/llui/llmenugl.cpp +++ b/linden/indra/llui/llmenugl.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
@@ -1033,30 +1033,47 @@ void LLMenuItemToggleGL::doIt( void ) | |||
1033 | } | 1033 | } |
1034 | 1034 | ||
1035 | 1035 | ||
1036 | LLMenuItemBranchGL::LLMenuItemBranchGL( const std::string& name, const std::string& label, LLMenuGL* branch, | 1036 | LLMenuItemBranchGL::LLMenuItemBranchGL( const std::string& name, const std::string& label, LLHandle<LLView> branch, |
1037 | KEY key, MASK mask ) : | 1037 | KEY key, MASK mask ) : |
1038 | LLMenuItemGL( name, label, key, mask ), | 1038 | LLMenuItemGL( name, label, key, mask ), |
1039 | mBranch( branch ) | 1039 | mBranch( branch ) |
1040 | { | 1040 | { |
1041 | mBranch->setVisible( FALSE ); | 1041 | if(!dynamic_cast<LLMenuGL*>(branch.get())) |
1042 | mBranch->setParentMenuItem(this); | 1042 | { |
1043 | llerrs << "Non-menu handle passed as branch reference." << llendl; | ||
1044 | } | ||
1045 | |||
1046 | if(getBranch()) | ||
1047 | { | ||
1048 | getBranch()->setVisible( FALSE ); | ||
1049 | getBranch()->setParentMenuItem(this); | ||
1050 | } | ||
1051 | } | ||
1052 | |||
1053 | LLMenuItemBranchGL::~LLMenuItemBranchGL() | ||
1054 | { | ||
1055 | LLView::deleteViewByHandle(mBranch); | ||
1043 | } | 1056 | } |
1044 | 1057 | ||
1045 | // virtual | 1058 | // virtual |
1046 | LLView* LLMenuItemBranchGL::getChildView(const std::string& name, BOOL recurse, BOOL create_if_missing) const | 1059 | LLView* LLMenuItemBranchGL::getChildView(const std::string& name, BOOL recurse, BOOL create_if_missing) const |
1047 | { | 1060 | { |
1048 | // richard: this is redundant with parent, remove | 1061 | // richard: this is redundant with parent, remove |
1049 | if (mBranch->getName() == name) | 1062 | if (getBranch()) |
1050 | { | ||
1051 | return mBranch; | ||
1052 | } | ||
1053 | // Always recurse on branches | ||
1054 | LLView* child = mBranch->getChildView(name, recurse, FALSE); | ||
1055 | if (!child) | ||
1056 | { | 1063 | { |
1057 | child = LLView::getChildView(name, recurse, create_if_missing); | 1064 | if(getBranch()->getName() == name) |
1065 | { | ||
1066 | return getBranch(); | ||
1067 | } | ||
1068 | |||
1069 | // Always recurse on branches | ||
1070 | LLView* child = getBranch()->getChildView(name, recurse, FALSE); | ||
1071 | if(child) | ||
1072 | { | ||
1073 | return child; | ||
1074 | } | ||
1058 | } | 1075 | } |
1059 | return child; | 1076 | return LLView::getChildView(name, recurse, create_if_missing);; |
1060 | } | 1077 | } |
1061 | 1078 | ||
1062 | // virtual | 1079 | // virtual |
@@ -1072,15 +1089,19 @@ BOOL LLMenuItemBranchGL::handleMouseUp(S32 x, S32 y, MASK mask) | |||
1072 | 1089 | ||
1073 | BOOL LLMenuItemBranchGL::handleAcceleratorKey(KEY key, MASK mask) | 1090 | BOOL LLMenuItemBranchGL::handleAcceleratorKey(KEY key, MASK mask) |
1074 | { | 1091 | { |
1075 | return mBranch->handleAcceleratorKey(key, mask); | 1092 | if(getBranch()) |
1093 | { | ||
1094 | return getBranch()->handleAcceleratorKey(key, mask); | ||
1095 | } | ||
1096 | return FALSE; | ||
1076 | } | 1097 | } |
1077 | 1098 | ||
1078 | // virtual | 1099 | // virtual |
1079 | LLXMLNodePtr LLMenuItemBranchGL::getXML(bool save_children) const | 1100 | LLXMLNodePtr LLMenuItemBranchGL::getXML(bool save_children) const |
1080 | { | 1101 | { |
1081 | if (mBranch) | 1102 | if (getBranch()) |
1082 | { | 1103 | { |
1083 | return mBranch->getXML(); | 1104 | return getBranch()->getXML(); |
1084 | } | 1105 | } |
1085 | 1106 | ||
1086 | return LLMenuItemGL::getXML(); | 1107 | return LLMenuItemGL::getXML(); |
@@ -1091,14 +1112,17 @@ LLXMLNodePtr LLMenuItemBranchGL::getXML(bool save_children) const | |||
1091 | // if not, it will be added to the list | 1112 | // if not, it will be added to the list |
1092 | BOOL LLMenuItemBranchGL::addToAcceleratorList(std::list<LLKeyBinding*> *listp) | 1113 | BOOL LLMenuItemBranchGL::addToAcceleratorList(std::list<LLKeyBinding*> *listp) |
1093 | { | 1114 | { |
1094 | U32 item_count = mBranch->getItemCount(); | 1115 | if(getBranch()) |
1095 | LLMenuItemGL *item; | ||
1096 | |||
1097 | while (item_count--) | ||
1098 | { | 1116 | { |
1099 | if ((item = mBranch->getItem(item_count))) | 1117 | U32 item_count = getBranch()->getItemCount(); |
1118 | LLMenuItemGL *item; | ||
1119 | |||
1120 | while (item_count--) | ||
1100 | { | 1121 | { |
1101 | return item->addToAcceleratorList(listp); | 1122 | if ((item = getBranch()->getItem(item_count))) |
1123 | { | ||
1124 | return item->addToAcceleratorList(listp); | ||
1125 | } | ||
1102 | } | 1126 | } |
1103 | } | 1127 | } |
1104 | return FALSE; | 1128 | return FALSE; |
@@ -1122,18 +1146,18 @@ void LLMenuItemBranchGL::doIt( void ) | |||
1122 | 1146 | ||
1123 | // keyboard navigation automatically propagates highlight to sub-menu | 1147 | // keyboard navigation automatically propagates highlight to sub-menu |
1124 | // to facilitate fast menu control via jump keys | 1148 | // to facilitate fast menu control via jump keys |
1125 | if (LLMenuGL::getKeyboardMode() && !mBranch->getHighlightedItem()) | 1149 | if (getBranch() && LLMenuGL::getKeyboardMode() && !getBranch()->getHighlightedItem()) |
1126 | { | 1150 | { |
1127 | mBranch->highlightNextItem(NULL); | 1151 | getBranch()->highlightNextItem(NULL); |
1128 | } | 1152 | } |
1129 | } | 1153 | } |
1130 | 1154 | ||
1131 | BOOL LLMenuItemBranchGL::handleKey(KEY key, MASK mask, BOOL called_from_parent) | 1155 | BOOL LLMenuItemBranchGL::handleKey(KEY key, MASK mask, BOOL called_from_parent) |
1132 | { | 1156 | { |
1133 | BOOL handled = FALSE; | 1157 | BOOL handled = FALSE; |
1134 | if (called_from_parent) | 1158 | if (called_from_parent && getBranch()) |
1135 | { | 1159 | { |
1136 | handled = mBranch->handleKey(key, mask, called_from_parent); | 1160 | handled = getBranch()->handleKey(key, mask, called_from_parent); |
1137 | } | 1161 | } |
1138 | 1162 | ||
1139 | if (!handled) | 1163 | if (!handled) |
@@ -1147,9 +1171,9 @@ BOOL LLMenuItemBranchGL::handleKey(KEY key, MASK mask, BOOL called_from_parent) | |||
1147 | BOOL LLMenuItemBranchGL::handleUnicodeChar(llwchar uni_char, BOOL called_from_parent) | 1171 | BOOL LLMenuItemBranchGL::handleUnicodeChar(llwchar uni_char, BOOL called_from_parent) |
1148 | { | 1172 | { |
1149 | BOOL handled = FALSE; | 1173 | BOOL handled = FALSE; |
1150 | if (called_from_parent) | 1174 | if (called_from_parent && getBranch()) |
1151 | { | 1175 | { |
1152 | handled = mBranch->handleUnicodeChar(uni_char, TRUE); | 1176 | handled = getBranch()->handleUnicodeChar(uni_char, TRUE); |
1153 | } | 1177 | } |
1154 | 1178 | ||
1155 | if (!handled) | 1179 | if (!handled) |
@@ -1165,14 +1189,19 @@ void LLMenuItemBranchGL::setHighlight( BOOL highlight ) | |||
1165 | { | 1189 | { |
1166 | if (highlight == getHighlight()) return; | 1190 | if (highlight == getHighlight()) return; |
1167 | 1191 | ||
1168 | BOOL auto_open = getEnabled() && (!mBranch->getVisible() || mBranch->getTornOff()); | 1192 | if(!getBranch()) |
1193 | { | ||
1194 | return; | ||
1195 | } | ||
1196 | |||
1197 | BOOL auto_open = getEnabled() && (!getBranch()->getVisible() || getBranch()->getTornOff()); | ||
1169 | // torn off menus don't open sub menus on hover unless they have focus | 1198 | // torn off menus don't open sub menus on hover unless they have focus |
1170 | if (getMenu()->getTornOff() && !((LLFloater*)getMenu()->getParent())->hasFocus()) | 1199 | if (getMenu()->getTornOff() && !((LLFloater*)getMenu()->getParent())->hasFocus()) |
1171 | { | 1200 | { |
1172 | auto_open = FALSE; | 1201 | auto_open = FALSE; |
1173 | } | 1202 | } |
1174 | // don't auto open torn off sub-menus (need to explicitly active menu item to give them focus) | 1203 | // don't auto open torn off sub-menus (need to explicitly active menu item to give them focus) |
1175 | if (mBranch->getTornOff()) | 1204 | if (getBranch()->getTornOff()) |
1176 | { | 1205 | { |
1177 | auto_open = FALSE; | 1206 | auto_open = FALSE; |
1178 | } | 1207 | } |
@@ -1186,14 +1215,14 @@ void LLMenuItemBranchGL::setHighlight( BOOL highlight ) | |||
1186 | } | 1215 | } |
1187 | else | 1216 | else |
1188 | { | 1217 | { |
1189 | if (mBranch->getTornOff()) | 1218 | if (getBranch()->getTornOff()) |
1190 | { | 1219 | { |
1191 | ((LLFloater*)mBranch->getParent())->setFocus(FALSE); | 1220 | ((LLFloater*)getBranch()->getParent())->setFocus(FALSE); |
1192 | mBranch->clearHoverItem(); | 1221 | getBranch()->clearHoverItem(); |
1193 | } | 1222 | } |
1194 | else | 1223 | else |
1195 | { | 1224 | { |
1196 | mBranch->setVisible( FALSE ); | 1225 | getBranch()->setVisible( FALSE ); |
1197 | } | 1226 | } |
1198 | } | 1227 | } |
1199 | } | 1228 | } |
@@ -1201,7 +1230,7 @@ void LLMenuItemBranchGL::setHighlight( BOOL highlight ) | |||
1201 | void LLMenuItemBranchGL::draw() | 1230 | void LLMenuItemBranchGL::draw() |
1202 | { | 1231 | { |
1203 | LLMenuItemGL::draw(); | 1232 | LLMenuItemGL::draw(); |
1204 | if (mBranch->getVisible() && !mBranch->getTornOff()) | 1233 | if (getBranch() && getBranch()->getVisible() && !getBranch()->getTornOff()) |
1205 | { | 1234 | { |
1206 | setHighlight(TRUE); | 1235 | setHighlight(TRUE); |
1207 | } | 1236 | } |
@@ -1209,33 +1238,33 @@ void LLMenuItemBranchGL::draw() | |||
1209 | 1238 | ||
1210 | void LLMenuItemBranchGL::updateBranchParent(LLView* parentp) | 1239 | void LLMenuItemBranchGL::updateBranchParent(LLView* parentp) |
1211 | { | 1240 | { |
1212 | if (mBranch->getParent() == NULL) | 1241 | if (getBranch() && getBranch()->getParent() == NULL) |
1213 | { | 1242 | { |
1214 | // make the branch menu a sibling of my parent menu | 1243 | // make the branch menu a sibling of my parent menu |
1215 | mBranch->updateParent(parentp); | 1244 | getBranch()->updateParent(parentp); |
1216 | } | 1245 | } |
1217 | } | 1246 | } |
1218 | 1247 | ||
1219 | void LLMenuItemBranchGL::onVisibilityChange( BOOL new_visibility ) | 1248 | void LLMenuItemBranchGL::onVisibilityChange( BOOL new_visibility ) |
1220 | { | 1249 | { |
1221 | if (new_visibility == FALSE && !mBranch->getTornOff()) | 1250 | if (new_visibility == FALSE && getBranch() && !getBranch()->getTornOff()) |
1222 | { | 1251 | { |
1223 | mBranch->setVisible(FALSE); | 1252 | getBranch()->setVisible(FALSE); |
1224 | } | 1253 | } |
1225 | LLMenuItemGL::onVisibilityChange(new_visibility); | 1254 | LLMenuItemGL::onVisibilityChange(new_visibility); |
1226 | } | 1255 | } |
1227 | 1256 | ||
1228 | BOOL LLMenuItemBranchGL::handleKeyHere( KEY key, MASK mask ) | 1257 | BOOL LLMenuItemBranchGL::handleKeyHere( KEY key, MASK mask ) |
1229 | { | 1258 | { |
1230 | if (getMenu()->getVisible() && mBranch->getVisible() && key == KEY_LEFT) | 1259 | if (getMenu()->getVisible() && getBranch() && getBranch()->getVisible() && key == KEY_LEFT) |
1231 | { | 1260 | { |
1232 | // switch to keyboard navigation mode | 1261 | // switch to keyboard navigation mode |
1233 | LLMenuGL::setKeyboardMode(TRUE); | 1262 | LLMenuGL::setKeyboardMode(TRUE); |
1234 | 1263 | ||
1235 | BOOL handled = mBranch->clearHoverItem(); | 1264 | BOOL handled = getBranch()->clearHoverItem(); |
1236 | if (mBranch->getTornOff()) | 1265 | if (getBranch()->getTornOff()) |
1237 | { | 1266 | { |
1238 | ((LLFloater*)mBranch->getParent())->setFocus(FALSE); | 1267 | ((LLFloater*)getBranch()->getParent())->setFocus(FALSE); |
1239 | } | 1268 | } |
1240 | if (handled && getMenu()->getTornOff()) | 1269 | if (handled && getMenu()->getTornOff()) |
1241 | { | 1270 | { |
@@ -1246,12 +1275,12 @@ BOOL LLMenuItemBranchGL::handleKeyHere( KEY key, MASK mask ) | |||
1246 | 1275 | ||
1247 | if (getHighlight() && | 1276 | if (getHighlight() && |
1248 | getMenu()->isOpen() && | 1277 | getMenu()->isOpen() && |
1249 | key == KEY_RIGHT && !mBranch->getHighlightedItem()) | 1278 | key == KEY_RIGHT && getBranch() && !getBranch()->getHighlightedItem()) |
1250 | { | 1279 | { |
1251 | // switch to keyboard navigation mode | 1280 | // switch to keyboard navigation mode |
1252 | LLMenuGL::setKeyboardMode(TRUE); | 1281 | LLMenuGL::setKeyboardMode(TRUE); |
1253 | 1282 | ||
1254 | LLMenuItemGL* itemp = mBranch->highlightNextItem(NULL); | 1283 | LLMenuItemGL* itemp = getBranch()->highlightNextItem(NULL); |
1255 | if (itemp) | 1284 | if (itemp) |
1256 | { | 1285 | { |
1257 | return TRUE; | 1286 | return TRUE; |
@@ -1263,37 +1292,39 @@ BOOL LLMenuItemBranchGL::handleKeyHere( KEY key, MASK mask ) | |||
1263 | 1292 | ||
1264 | void LLMenuItemBranchGL::openMenu() | 1293 | void LLMenuItemBranchGL::openMenu() |
1265 | { | 1294 | { |
1266 | if (mBranch->getTornOff()) | 1295 | if(!getBranch()) return; |
1296 | |||
1297 | if (getBranch()->getTornOff()) | ||
1267 | { | 1298 | { |
1268 | gFloaterView->bringToFront((LLFloater*)mBranch->getParent()); | 1299 | gFloaterView->bringToFront((LLFloater*)getBranch()->getParent()); |
1269 | // this might not be necessary, as torn off branches don't get focus and hence no highligth | 1300 | // this might not be necessary, as torn off branches don't get focus and hence no highligth |
1270 | mBranch->highlightNextItem(NULL); | 1301 | getBranch()->highlightNextItem(NULL); |
1271 | } | 1302 | } |
1272 | else if( !mBranch->getVisible() ) | 1303 | else if( !getBranch()->getVisible() ) |
1273 | { | 1304 | { |
1274 | // get valid rectangle for menus | 1305 | // get valid rectangle for menus |
1275 | const LLRect menu_region_rect = LLMenuGL::sMenuContainer->getMenuRect(); | 1306 | const LLRect menu_region_rect = LLMenuGL::sMenuContainer->getMenuRect(); |
1276 | 1307 | ||
1277 | mBranch->arrange(); | 1308 | getBranch()->arrange(); |
1278 | 1309 | ||
1279 | LLRect rect = mBranch->getRect(); | 1310 | LLRect rect = getBranch()->getRect(); |
1280 | // calculate root-view relative position for branch menu | 1311 | // calculate root-view relative position for branch menu |
1281 | S32 left = getRect().mRight; | 1312 | S32 left = getRect().mRight; |
1282 | S32 top = getRect().mTop - getRect().mBottom; | 1313 | S32 top = getRect().mTop - getRect().mBottom; |
1283 | 1314 | ||
1284 | localPointToOtherView(left, top, &left, &top, mBranch->getParent()); | 1315 | localPointToOtherView(left, top, &left, &top, getBranch()->getParent()); |
1285 | 1316 | ||
1286 | rect.setLeftTopAndSize( left, top, | 1317 | rect.setLeftTopAndSize( left, top, |
1287 | rect.getWidth(), rect.getHeight() ); | 1318 | rect.getWidth(), rect.getHeight() ); |
1288 | 1319 | ||
1289 | if (mBranch->getCanTearOff()) | 1320 | if (getBranch()->getCanTearOff()) |
1290 | { | 1321 | { |
1291 | rect.translate(0, TEAROFF_SEPARATOR_HEIGHT_PIXELS); | 1322 | rect.translate(0, TEAROFF_SEPARATOR_HEIGHT_PIXELS); |
1292 | } | 1323 | } |
1293 | mBranch->setRect( rect ); | 1324 | getBranch()->setRect( rect ); |
1294 | S32 x = 0; | 1325 | S32 x = 0; |
1295 | S32 y = 0; | 1326 | S32 y = 0; |
1296 | mBranch->localPointToOtherView( 0, 0, &x, &y, mBranch->getParent() ); | 1327 | getBranch()->localPointToOtherView( 0, 0, &x, &y, getBranch()->getParent() ); |
1297 | S32 delta_x = 0; | 1328 | S32 delta_x = 0; |
1298 | S32 delta_y = 0; | 1329 | S32 delta_y = 0; |
1299 | if( y < menu_region_rect.mBottom ) | 1330 | if( y < menu_region_rect.mBottom ) |
@@ -1307,8 +1338,9 @@ void LLMenuItemBranchGL::openMenu() | |||
1307 | // move sub-menu over to left side | 1338 | // move sub-menu over to left side |
1308 | delta_x = llmax(-x, (-1 * (rect.getWidth() + getRect().getWidth()))); | 1339 | delta_x = llmax(-x, (-1 * (rect.getWidth() + getRect().getWidth()))); |
1309 | } | 1340 | } |
1310 | mBranch->translate( delta_x, delta_y ); | 1341 | getBranch()->translate( delta_x, delta_y ); |
1311 | mBranch->setVisible( TRUE ); | 1342 | getBranch()->setVisible( TRUE ); |
1343 | getBranch()->getParent()->sendChildToFront(getBranch()); | ||
1312 | } | 1344 | } |
1313 | } | 1345 | } |
1314 | 1346 | ||
@@ -1325,7 +1357,7 @@ class LLMenuItemBranchDownGL : public LLMenuItemBranchGL | |||
1325 | protected: | 1357 | protected: |
1326 | 1358 | ||
1327 | public: | 1359 | public: |
1328 | LLMenuItemBranchDownGL( const std::string& name, const std::string& label, LLMenuGL* branch, | 1360 | LLMenuItemBranchDownGL( const std::string& name, const std::string& label, LLHandle<LLView> branch, |
1329 | KEY key = KEY_NONE, MASK mask = MASK_NONE ); | 1361 | KEY key = KEY_NONE, MASK mask = MASK_NONE ); |
1330 | 1362 | ||
1331 | virtual std::string getType() const { return "menu"; } | 1363 | virtual std::string getType() const { return "menu"; } |
@@ -1358,7 +1390,7 @@ public: | |||
1358 | 1390 | ||
1359 | LLMenuItemBranchDownGL::LLMenuItemBranchDownGL( const std::string& name, | 1391 | LLMenuItemBranchDownGL::LLMenuItemBranchDownGL( const std::string& name, |
1360 | const std::string& label, | 1392 | const std::string& label, |
1361 | LLMenuGL* branch, | 1393 | LLHandle<LLView> branch, |
1362 | KEY key, MASK mask ) : | 1394 | KEY key, MASK mask ) : |
1363 | LLMenuItemBranchGL( name, label, branch, key, mask ) | 1395 | LLMenuItemBranchGL( name, label, branch, key, mask ) |
1364 | { | 1396 | { |
@@ -1427,6 +1459,7 @@ void LLMenuItemBranchDownGL::openMenu( void ) | |||
1427 | 1459 | ||
1428 | setHighlight(TRUE); | 1460 | setHighlight(TRUE); |
1429 | branch->setVisible( TRUE ); | 1461 | branch->setVisible( TRUE ); |
1462 | branch->getParent()->sendChildToFront(branch); | ||
1430 | } | 1463 | } |
1431 | } | 1464 | } |
1432 | } | 1465 | } |
@@ -2255,7 +2288,7 @@ void LLMenuGL::createSpilloverBranch() | |||
2255 | mSpilloverMenu->setBackgroundColor( mBackgroundColor ); | 2288 | mSpilloverMenu->setBackgroundColor( mBackgroundColor ); |
2256 | mSpilloverMenu->setCanTearOff(FALSE); | 2289 | mSpilloverMenu->setCanTearOff(FALSE); |
2257 | 2290 | ||
2258 | mSpilloverBranch = new LLMenuItemBranchGL(std::string("More"), std::string("More"), mSpilloverMenu); | 2291 | mSpilloverBranch = new LLMenuItemBranchGL(std::string("More"), std::string("More"), mSpilloverMenu->getHandle()); |
2259 | mSpilloverBranch->setFontStyle(LLFontGL::ITALIC); | 2292 | mSpilloverBranch->setFontStyle(LLFontGL::ITALIC); |
2260 | } | 2293 | } |
2261 | } | 2294 | } |
@@ -2275,9 +2308,6 @@ void LLMenuGL::cleanupSpilloverBranch() | |||
2275 | mItems.erase(found_iter); | 2308 | mItems.erase(found_iter); |
2276 | } | 2309 | } |
2277 | 2310 | ||
2278 | delete mSpilloverBranch; | ||
2279 | mSpilloverBranch = NULL; | ||
2280 | |||
2281 | // pop off spillover items | 2311 | // pop off spillover items |
2282 | while (mSpilloverMenu->getItemCount()) | 2312 | while (mSpilloverMenu->getItemCount()) |
2283 | { | 2313 | { |
@@ -2288,6 +2318,12 @@ void LLMenuGL::cleanupSpilloverBranch() | |||
2288 | mItems.push_back(itemp); | 2318 | mItems.push_back(itemp); |
2289 | addChild(itemp); | 2319 | addChild(itemp); |
2290 | } | 2320 | } |
2321 | |||
2322 | // Delete the branch, and since the branch will delete the menu, | ||
2323 | // set the menu* to null. | ||
2324 | delete mSpilloverBranch; | ||
2325 | mSpilloverBranch = NULL; | ||
2326 | mSpilloverMenu = NULL; | ||
2291 | } | 2327 | } |
2292 | } | 2328 | } |
2293 | 2329 | ||
@@ -2460,7 +2496,7 @@ BOOL LLMenuGL::appendMenu( LLMenuGL* menu ) | |||
2460 | BOOL success = TRUE; | 2496 | BOOL success = TRUE; |
2461 | 2497 | ||
2462 | LLMenuItemBranchGL* branch = NULL; | 2498 | LLMenuItemBranchGL* branch = NULL; |
2463 | branch = new LLMenuItemBranchGL( menu->getName(), menu->getLabel(), menu ); | 2499 | branch = new LLMenuItemBranchGL( menu->getName(), menu->getLabel(), menu->getHandle() ); |
2464 | branch->setJumpKey(menu->getJumpKey()); | 2500 | branch->setJumpKey(menu->getJumpKey()); |
2465 | success &= append( branch ); | 2501 | success &= append( branch ); |
2466 | 2502 | ||
@@ -2958,6 +2994,7 @@ void LLMenuGL::showPopup(LLView* spawning_view, LLMenuGL* menu, S32 x, S32 y) | |||
2958 | } | 2994 | } |
2959 | menu->translate( delta_x, delta_y ); | 2995 | menu->translate( delta_x, delta_y ); |
2960 | menu->setVisible( TRUE ); | 2996 | menu->setVisible( TRUE ); |
2997 | menu->getParent()->sendChildToFront(menu); | ||
2961 | } | 2998 | } |
2962 | 2999 | ||
2963 | //----------------------------------------------------------------------------- | 3000 | //----------------------------------------------------------------------------- |
@@ -4068,7 +4105,7 @@ BOOL LLMenuBarGL::appendMenu( LLMenuGL* menu ) | |||
4068 | BOOL success = TRUE; | 4105 | BOOL success = TRUE; |
4069 | 4106 | ||
4070 | LLMenuItemBranchGL* branch = NULL; | 4107 | LLMenuItemBranchGL* branch = NULL; |
4071 | branch = new LLMenuItemBranchDownGL( menu->getName(), menu->getLabel(), menu ); | 4108 | branch = new LLMenuItemBranchDownGL( menu->getName(), menu->getLabel(), menu->getHandle()); |
4072 | success &= branch->addToAcceleratorList(&mAccelerators); | 4109 | success &= branch->addToAcceleratorList(&mAccelerators); |
4073 | success &= append( branch ); | 4110 | success &= append( branch ); |
4074 | branch->setJumpKey(branch->getJumpKey()); | 4111 | branch->setJumpKey(branch->getJumpKey()); |
diff --git a/linden/indra/llui/llmenugl.h b/linden/indra/llui/llmenugl.h index 8561f1b..d981e78 100644 --- a/linden/indra/llui/llmenugl.h +++ b/linden/indra/llui/llmenugl.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
@@ -89,6 +89,7 @@ public: | |||
89 | static const LLColor4& getHighlightFGColor() { return sHighlightForeground; } | 89 | static const LLColor4& getHighlightFGColor() { return sHighlightForeground; } |
90 | 90 | ||
91 | LLMenuItemGL( const std::string& name, const std::string& label, KEY key = KEY_NONE, MASK = MASK_NONE ); | 91 | LLMenuItemGL( const std::string& name, const std::string& label, KEY key = KEY_NONE, MASK = MASK_NONE ); |
92 | virtual ~LLMenuItemGL() {}; | ||
92 | 93 | ||
93 | virtual void setValue(const LLSD& value) { setLabel(value.asString()); } | 94 | virtual void setValue(const LLSD& value) { setLabel(value.asString()); } |
94 | 95 | ||
@@ -561,8 +562,11 @@ private: | |||
561 | class LLMenuItemBranchGL : public LLMenuItemGL | 562 | class LLMenuItemBranchGL : public LLMenuItemGL |
562 | { | 563 | { |
563 | public: | 564 | public: |
564 | LLMenuItemBranchGL( const std::string& name, const std::string& label, LLMenuGL* branch, | 565 | LLMenuItemBranchGL( const std::string& name, const std::string& label, LLHandle<LLView> branch, |
565 | KEY key = KEY_NONE, MASK mask = MASK_NONE ); | 566 | KEY key = KEY_NONE, MASK mask = MASK_NONE ); |
567 | |||
568 | virtual ~LLMenuItemBranchGL(); | ||
569 | |||
566 | virtual LLXMLNodePtr getXML(bool save_children = true) const; | 570 | virtual LLXMLNodePtr getXML(bool save_children = true) const; |
567 | 571 | ||
568 | virtual std::string getType() const { return "menu"; } | 572 | virtual std::string getType() const { return "menu"; } |
@@ -589,11 +593,11 @@ public: | |||
589 | 593 | ||
590 | virtual BOOL handleKeyHere(KEY key, MASK mask); | 594 | virtual BOOL handleKeyHere(KEY key, MASK mask); |
591 | 595 | ||
592 | virtual BOOL isActive() const { return isOpen() && mBranch->getHighlightedItem(); } | 596 | virtual BOOL isActive() const { return isOpen() && getBranch()->getHighlightedItem(); } |
593 | 597 | ||
594 | virtual BOOL isOpen() const { return mBranch->isOpen(); } | 598 | virtual BOOL isOpen() const { return getBranch() && getBranch()->isOpen(); } |
595 | 599 | ||
596 | LLMenuGL *getBranch() const { return mBranch; } | 600 | LLMenuGL *getBranch() const { return (LLMenuGL*)(mBranch.get()); } |
597 | 601 | ||
598 | virtual void updateBranchParent( LLView* parentp ); | 602 | virtual void updateBranchParent( LLView* parentp ); |
599 | 603 | ||
@@ -602,14 +606,14 @@ public: | |||
602 | 606 | ||
603 | virtual void draw(); | 607 | virtual void draw(); |
604 | 608 | ||
605 | virtual void setEnabledSubMenus(BOOL enabled) { mBranch->setEnabledSubMenus(enabled); } | 609 | virtual void setEnabledSubMenus(BOOL enabled) { if(getBranch()) getBranch()->setEnabledSubMenus(enabled); } |
606 | 610 | ||
607 | virtual void openMenu(); | 611 | virtual void openMenu(); |
608 | 612 | ||
609 | virtual LLView* getChildView(const std::string& name, BOOL recurse = TRUE, BOOL create_if_missing = TRUE) const; | 613 | virtual LLView* getChildView(const std::string& name, BOOL recurse = TRUE, BOOL create_if_missing = TRUE) const; |
610 | 614 | ||
611 | private: | 615 | private: |
612 | LLMenuGL* mBranch; | 616 | LLHandle<LLView> mBranch; |
613 | }; // end class LLMenuItemBranchGL | 617 | }; // end class LLMenuItemBranchGL |
614 | 618 | ||
615 | 619 | ||
diff --git a/linden/indra/llui/llmodaldialog.cpp b/linden/indra/llui/llmodaldialog.cpp index 1b05b0e..682cc08 100644 --- a/linden/indra/llui/llmodaldialog.cpp +++ b/linden/indra/llui/llmodaldialog.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2002-2008, Linden Research, Inc. | 7 | * Copyright (c) 2002-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llmodaldialog.h b/linden/indra/llui/llmodaldialog.h index d38b7a6..5bb1a74 100644 --- a/linden/indra/llui/llmodaldialog.h +++ b/linden/indra/llui/llmodaldialog.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2002-2008, Linden Research, Inc. | 7 | * Copyright (c) 2002-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llmultislider.cpp b/linden/indra/llui/llmultislider.cpp index 227cf98..415e96b 100644 --- a/linden/indra/llui/llmultislider.cpp +++ b/linden/indra/llui/llmultislider.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2007&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2007&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2007-2008, Linden Research, Inc. | 7 | * Copyright (c) 2007-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
@@ -431,7 +431,7 @@ void LLMultiSlider::draw() | |||
431 | // Draw background and thumb. | 431 | // Draw background and thumb. |
432 | 432 | ||
433 | // drawing solids requires texturing be disabled | 433 | // drawing solids requires texturing be disabled |
434 | LLGLSNoTexture no_texture; | 434 | gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); |
435 | 435 | ||
436 | LLRect rect(mDragStartThumbRect); | 436 | LLRect rect(mDragStartThumbRect); |
437 | 437 | ||
diff --git a/linden/indra/llui/llmultislider.h b/linden/indra/llui/llmultislider.h index 001ed26..08cfa78 100644 --- a/linden/indra/llui/llmultislider.h +++ b/linden/indra/llui/llmultislider.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2007&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2007&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2007-2008, Linden Research, Inc. | 7 | * Copyright (c) 2007-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llmultisliderctrl.cpp b/linden/indra/llui/llmultisliderctrl.cpp index 673887b..53c0799 100644 --- a/linden/indra/llui/llmultisliderctrl.cpp +++ b/linden/indra/llui/llmultisliderctrl.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2007&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2007&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2007-2008, Linden Research, Inc. | 7 | * Copyright (c) 2007-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llmultisliderctrl.h b/linden/indra/llui/llmultisliderctrl.h index 1f41d81..4145d70 100644 --- a/linden/indra/llui/llmultisliderctrl.h +++ b/linden/indra/llui/llmultisliderctrl.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2007&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2007&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2007-2008, Linden Research, Inc. | 7 | * Copyright (c) 2007-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llpanel.cpp b/linden/indra/llui/llpanel.cpp index 0389590..d37517f 100644 --- a/linden/indra/llui/llpanel.cpp +++ b/linden/indra/llui/llpanel.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llpanel.h b/linden/indra/llui/llpanel.h index 8ed739e..46022e5 100644 --- a/linden/indra/llui/llpanel.h +++ b/linden/indra/llui/llpanel.h | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 6 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
7 | * | 7 | * |
8 | * Copyright (c) 2001-2008, Linden Research, Inc. | 8 | * Copyright (c) 2001-2009, Linden Research, Inc. |
9 | * | 9 | * |
10 | * Second Life Viewer Source Code | 10 | * Second Life Viewer Source Code |
11 | * The source code in this file ("Source Code") is provided by Linden Lab | 11 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llradiogroup.cpp b/linden/indra/llui/llradiogroup.cpp index e518069..f6778f3 100644 --- a/linden/indra/llui/llradiogroup.cpp +++ b/linden/indra/llui/llradiogroup.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llradiogroup.h b/linden/indra/llui/llradiogroup.h index c8b96db..06729bc 100644 --- a/linden/indra/llui/llradiogroup.h +++ b/linden/indra/llui/llradiogroup.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llresizebar.cpp b/linden/indra/llui/llresizebar.cpp index d8a7b92..0ba02fa 100644 --- a/linden/indra/llui/llresizebar.cpp +++ b/linden/indra/llui/llresizebar.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llresizebar.h b/linden/indra/llui/llresizebar.h index 70dc7eb..b8494b0 100644 --- a/linden/indra/llui/llresizebar.h +++ b/linden/indra/llui/llresizebar.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llresizehandle.cpp b/linden/indra/llui/llresizehandle.cpp index 340dff5..3202ffe 100644 --- a/linden/indra/llui/llresizehandle.cpp +++ b/linden/indra/llui/llresizehandle.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llresizehandle.h b/linden/indra/llui/llresizehandle.h index 46d3827..32d382a 100644 --- a/linden/indra/llui/llresizehandle.h +++ b/linden/indra/llui/llresizehandle.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llresmgr.cpp b/linden/indra/llui/llresmgr.cpp index bd05d43..d111bd6 100644 --- a/linden/indra/llui/llresmgr.cpp +++ b/linden/indra/llui/llresmgr.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llresmgr.h b/linden/indra/llui/llresmgr.h index d7bc86c..86bb6dd 100644 --- a/linden/indra/llui/llresmgr.h +++ b/linden/indra/llui/llresmgr.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llrootview.cpp b/linden/indra/llui/llrootview.cpp index fa7c730..de1f90b 100644 --- a/linden/indra/llui/llrootview.cpp +++ b/linden/indra/llui/llrootview.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2006&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2006&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2006-2008, Linden Research, Inc. | 7 | * Copyright (c) 2006-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llrootview.h b/linden/indra/llui/llrootview.h index 9936f2d..4aa4467 100644 --- a/linden/indra/llui/llrootview.h +++ b/linden/indra/llui/llrootview.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2006&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2006&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2006-2008, Linden Research, Inc. | 7 | * Copyright (c) 2006-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llscrollbar.cpp b/linden/indra/llui/llscrollbar.cpp index b011325..1b87c69 100644 --- a/linden/indra/llui/llscrollbar.cpp +++ b/linden/indra/llui/llscrollbar.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llscrollbar.h b/linden/indra/llui/llscrollbar.h index cb0ad97..0703263 100644 --- a/linden/indra/llui/llscrollbar.h +++ b/linden/indra/llui/llscrollbar.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llscrollcontainer.cpp b/linden/indra/llui/llscrollcontainer.cpp index 1ba2923..f7c4200 100644 --- a/linden/indra/llui/llscrollcontainer.cpp +++ b/linden/indra/llui/llscrollcontainer.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
@@ -425,7 +425,7 @@ void LLScrollableContainerView::draw() | |||
425 | // Draw background | 425 | // Draw background |
426 | if( mIsOpaque ) | 426 | if( mIsOpaque ) |
427 | { | 427 | { |
428 | LLGLSNoTexture no_texture; | 428 | gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); |
429 | gGL.color4fv( mBackgroundColor.mV ); | 429 | gGL.color4fv( mBackgroundColor.mV ); |
430 | gl_rect_2d( mInnerRect ); | 430 | gl_rect_2d( mInnerRect ); |
431 | } | 431 | } |
diff --git a/linden/indra/llui/llscrollcontainer.h b/linden/indra/llui/llscrollcontainer.h index 3e42dd4..80e67d2 100644 --- a/linden/indra/llui/llscrollcontainer.h +++ b/linden/indra/llui/llscrollcontainer.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llscrollingpanellist.cpp b/linden/indra/llui/llscrollingpanellist.cpp index cc4b8f4..0cd501c 100644 --- a/linden/indra/llui/llscrollingpanellist.cpp +++ b/linden/indra/llui/llscrollingpanellist.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2006&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2006&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2006-2008, Linden Research, Inc. | 7 | * Copyright (c) 2006-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llscrollingpanellist.h b/linden/indra/llui/llscrollingpanellist.h index 2b8072d..c96f12c 100644 --- a/linden/indra/llui/llscrollingpanellist.h +++ b/linden/indra/llui/llscrollingpanellist.h | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * $LicenseInfo:firstyear=2006&license=viewergpl$ | 4 | * $LicenseInfo:firstyear=2006&license=viewergpl$ |
5 | * | 5 | * |
6 | * Copyright (c) 2006-2008, Linden Research, Inc. | 6 | * Copyright (c) 2006-2009, Linden Research, Inc. |
7 | * | 7 | * |
8 | * Second Life Viewer Source Code | 8 | * Second Life Viewer Source Code |
9 | * The source code in this file ("Source Code") is provided by Linden Lab | 9 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llscrolllistctrl.cpp b/linden/indra/llui/llscrolllistctrl.cpp index d342378..7dba55f 100644 --- a/linden/indra/llui/llscrolllistctrl.cpp +++ b/linden/indra/llui/llscrolllistctrl.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
@@ -435,7 +435,7 @@ void LLScrollListItem::draw(const LLRect& rect, const LLColor4& fg_color, const | |||
435 | // draw background rect | 435 | // draw background rect |
436 | LLRect bg_rect = rect; | 436 | LLRect bg_rect = rect; |
437 | { | 437 | { |
438 | LLGLSNoTexture no_texture; | 438 | gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); |
439 | gGL.color4fv(bg_color.mV); | 439 | gGL.color4fv(bg_color.mV); |
440 | gl_rect_2d( bg_rect ); | 440 | gl_rect_2d( bg_rect ); |
441 | } | 441 | } |
@@ -1758,7 +1758,7 @@ void LLScrollListCtrl::draw() | |||
1758 | // Draw background | 1758 | // Draw background |
1759 | if (mBackgroundVisible) | 1759 | if (mBackgroundVisible) |
1760 | { | 1760 | { |
1761 | LLGLSNoTexture no_texture; | 1761 | gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); |
1762 | gGL.color4fv( getEnabled() ? mBgWriteableColor.mV : mBgReadOnlyColor.mV ); | 1762 | gGL.color4fv( getEnabled() ? mBgWriteableColor.mV : mBgReadOnlyColor.mV ); |
1763 | gl_rect_2d(background); | 1763 | gl_rect_2d(background); |
1764 | } | 1764 | } |
diff --git a/linden/indra/llui/llscrolllistctrl.h b/linden/indra/llui/llscrolllistctrl.h index 12b8e2c..f276562 100644 --- a/linden/indra/llui/llscrolllistctrl.h +++ b/linden/indra/llui/llscrolllistctrl.h | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 4 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
5 | * | 5 | * |
6 | * Copyright (c) 2001-2008, Linden Research, Inc. | 6 | * Copyright (c) 2001-2009, Linden Research, Inc. |
7 | * | 7 | * |
8 | * Second Life Viewer Source Code | 8 | * Second Life Viewer Source Code |
9 | * The source code in this file ("Source Code") is provided by Linden Lab | 9 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llslider.cpp b/linden/indra/llui/llslider.cpp index 4cc558f..51b96c1 100644 --- a/linden/indra/llui/llslider.cpp +++ b/linden/indra/llui/llslider.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2002-2008, Linden Research, Inc. | 7 | * Copyright (c) 2002-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
@@ -253,7 +253,7 @@ void LLSlider::draw() | |||
253 | // Draw background and thumb. | 253 | // Draw background and thumb. |
254 | 254 | ||
255 | // drawing solids requires texturing be disabled | 255 | // drawing solids requires texturing be disabled |
256 | LLGLSNoTexture no_texture; | 256 | gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); |
257 | 257 | ||
258 | F32 opacity = getEnabled() ? 1.f : 0.3f; | 258 | F32 opacity = getEnabled() ? 1.f : 0.3f; |
259 | LLColor4 center_color = (mThumbCenterColor % opacity); | 259 | LLColor4 center_color = (mThumbCenterColor % opacity); |
diff --git a/linden/indra/llui/llslider.h b/linden/indra/llui/llslider.h index b963beb..94f5992 100644 --- a/linden/indra/llui/llslider.h +++ b/linden/indra/llui/llslider.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2002-2008, Linden Research, Inc. | 7 | * Copyright (c) 2002-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llsliderctrl.cpp b/linden/indra/llui/llsliderctrl.cpp index a47f133..477003b 100644 --- a/linden/indra/llui/llsliderctrl.cpp +++ b/linden/indra/llui/llsliderctrl.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2002-2008, Linden Research, Inc. | 7 | * Copyright (c) 2002-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llsliderctrl.h b/linden/indra/llui/llsliderctrl.h index 7df255c..56f4661 100644 --- a/linden/indra/llui/llsliderctrl.h +++ b/linden/indra/llui/llsliderctrl.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2002-2008, Linden Research, Inc. | 7 | * Copyright (c) 2002-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llspinctrl.cpp b/linden/indra/llui/llspinctrl.cpp index b12d095..51daefb 100644 --- a/linden/indra/llui/llspinctrl.cpp +++ b/linden/indra/llui/llspinctrl.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llspinctrl.h b/linden/indra/llui/llspinctrl.h index 0cc6661..1a96767 100644 --- a/linden/indra/llui/llspinctrl.h +++ b/linden/indra/llui/llspinctrl.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2002-2008, Linden Research, Inc. | 7 | * Copyright (c) 2002-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llstyle.cpp b/linden/indra/llui/llstyle.cpp index 6130416..fc6c14e 100644 --- a/linden/indra/llui/llstyle.cpp +++ b/linden/indra/llui/llstyle.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llstyle.h b/linden/indra/llui/llstyle.h index d235e15..8dc1a40 100644 --- a/linden/indra/llui/llstyle.h +++ b/linden/indra/llui/llstyle.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/lltabcontainer.cpp b/linden/indra/llui/lltabcontainer.cpp index 7bf1485..6b028d4 100644 --- a/linden/indra/llui/lltabcontainer.cpp +++ b/linden/indra/llui/lltabcontainer.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/lltabcontainer.h b/linden/indra/llui/lltabcontainer.h index 8d4218a..96400f0 100644 --- a/linden/indra/llui/lltabcontainer.h +++ b/linden/indra/llui/lltabcontainer.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/lltabcontainervertical.cpp b/linden/indra/llui/lltabcontainervertical.cpp index b4b2710..fa24ed1 100644 --- a/linden/indra/llui/lltabcontainervertical.cpp +++ b/linden/indra/llui/lltabcontainervertical.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/lltabcontainervertical.h b/linden/indra/llui/lltabcontainervertical.h index ffe65be..d01d20a 100644 --- a/linden/indra/llui/lltabcontainervertical.h +++ b/linden/indra/llui/lltabcontainervertical.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/lltextbox.cpp b/linden/indra/llui/lltextbox.cpp index 6997c61..f43b7d2 100644 --- a/linden/indra/llui/lltextbox.cpp +++ b/linden/indra/llui/lltextbox.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/lltextbox.h b/linden/indra/llui/lltextbox.h index c2211fb..83e4a9b 100644 --- a/linden/indra/llui/lltextbox.h +++ b/linden/indra/llui/lltextbox.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/lltexteditor.cpp b/linden/indra/llui/lltexteditor.cpp index 714ee7c..3813e76 100644 --- a/linden/indra/llui/lltexteditor.cpp +++ b/linden/indra/llui/lltexteditor.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
@@ -473,9 +473,9 @@ void LLTextEditor::updateLineStartList(S32 startpos) | |||
473 | } | 473 | } |
474 | 474 | ||
475 | // if scrolled to bottom, stay at bottom | 475 | // if scrolled to bottom, stay at bottom |
476 | // unless user is editing text | 476 | // unless user is selecting text |
477 | // do this after updating page size | 477 | // do this after updating page size |
478 | if (mScrolledToBottom && mTrackBottom && !hasFocus()) | 478 | if (mScrolledToBottom && mTrackBottom && !hasMouseCapture()) |
479 | { | 479 | { |
480 | endOfDoc(); | 480 | endOfDoc(); |
481 | } | 481 | } |
@@ -1011,7 +1011,7 @@ void LLTextEditor::indentSelectedLines( S32 spaces ) | |||
1011 | } | 1011 | } |
1012 | else | 1012 | else |
1013 | { | 1013 | { |
1014 | while( (text[right] != '\n') && (right <= getLength() ) ) | 1014 | while( right < getLength() && (text[right] != '\n') ) |
1015 | { | 1015 | { |
1016 | right++; | 1016 | right++; |
1017 | } | 1017 | } |
@@ -1323,8 +1323,6 @@ BOOL LLTextEditor::handleMouseUp(S32 x, S32 y, MASK mask) | |||
1323 | 1323 | ||
1324 | setCursorAtLocalPos( x, y, TRUE ); | 1324 | setCursorAtLocalPos( x, y, TRUE ); |
1325 | endSelection(); | 1325 | endSelection(); |
1326 | |||
1327 | updateScrollFromCursor(); | ||
1328 | } | 1326 | } |
1329 | 1327 | ||
1330 | if( !hasSelection() ) | 1328 | if( !hasSelection() ) |
@@ -2594,7 +2592,7 @@ void LLTextEditor::drawSelectionBackground() | |||
2594 | BOOL selection_visible = (left_visible_pos <= selection_right) && (selection_left <= right_visible_pos); | 2592 | BOOL selection_visible = (left_visible_pos <= selection_right) && (selection_left <= right_visible_pos); |
2595 | if( selection_visible ) | 2593 | if( selection_visible ) |
2596 | { | 2594 | { |
2597 | LLGLSNoTexture no_texture; | 2595 | gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); |
2598 | const LLColor4& color = mReadOnly ? mReadOnlyBgColor : mWriteableBgColor; | 2596 | const LLColor4& color = mReadOnly ? mReadOnlyBgColor : mWriteableBgColor; |
2599 | F32 alpha = hasFocus() ? 1.f : 0.5f; | 2597 | F32 alpha = hasFocus() ? 1.f : 0.5f; |
2600 | gGL.color4f( 1.f - color.mV[0], 1.f - color.mV[1], 1.f - color.mV[2], alpha ); | 2598 | gGL.color4f( 1.f - color.mV[0], 1.f - color.mV[1], 1.f - color.mV[2], alpha ); |
@@ -2729,7 +2727,7 @@ void LLTextEditor::drawCursor() | |||
2729 | } | 2727 | } |
2730 | } | 2728 | } |
2731 | 2729 | ||
2732 | LLGLSNoTexture no_texture; | 2730 | gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); |
2733 | 2731 | ||
2734 | gGL.color4fv( mCursorColor.mV ); | 2732 | gGL.color4fv( mCursorColor.mV ); |
2735 | 2733 | ||
@@ -4259,7 +4257,7 @@ S32 LLTextEditor::findHTMLToken(const std::string &line, S32 pos, BOOL reverse) | |||
4259 | std::string closers=" \t\n)'\"]}><;"; | 4257 | std::string closers=" \t\n)'\"]}><;"; |
4260 | 4258 | ||
4261 | S32 index = 0; | 4259 | S32 index = 0; |
4262 | 4260 | ||
4263 | if (reverse) | 4261 | if (reverse) |
4264 | { | 4262 | { |
4265 | for (index=pos; index >= 0; index--) | 4263 | for (index=pos; index >= 0; index--) |
diff --git a/linden/indra/llui/lltexteditor.h b/linden/indra/llui/lltexteditor.h index c76395c..643b7c3 100644 --- a/linden/indra/llui/lltexteditor.h +++ b/linden/indra/llui/lltexteditor.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llui.cpp b/linden/indra/llui/llui.cpp index 734aecf..f3e73fd 100644 --- a/linden/indra/llui/llui.cpp +++ b/linden/indra/llui/llui.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
@@ -30,8 +30,6 @@ | |||
30 | */ | 30 | */ |
31 | 31 | ||
32 | // Utilities functions the user interface needs | 32 | // Utilities functions the user interface needs |
33 | |||
34 | //#include "llviewerprecompiledheaders.h" | ||
35 | #include "linden_common.h" | 33 | #include "linden_common.h" |
36 | 34 | ||
37 | #include <string> | 35 | #include <string> |
@@ -143,11 +141,11 @@ void gl_state_for_2d(S32 width, S32 height) | |||
143 | 141 | ||
144 | void gl_draw_x(const LLRect& rect, const LLColor4& color) | 142 | void gl_draw_x(const LLRect& rect, const LLColor4& color) |
145 | { | 143 | { |
146 | LLGLSNoTexture no_texture; | 144 | gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); |
147 | 145 | ||
148 | gGL.color4fv( color.mV ); | 146 | gGL.color4fv( color.mV ); |
149 | 147 | ||
150 | gGL.begin( LLVertexBuffer::LINES ); | 148 | gGL.begin( LLRender::LINES ); |
151 | gGL.vertex2i( rect.mLeft, rect.mTop ); | 149 | gGL.vertex2i( rect.mLeft, rect.mTop ); |
152 | gGL.vertex2i( rect.mRight, rect.mBottom ); | 150 | gGL.vertex2i( rect.mRight, rect.mBottom ); |
153 | gGL.vertex2i( rect.mLeft, rect.mBottom ); | 151 | gGL.vertex2i( rect.mLeft, rect.mBottom ); |
@@ -183,12 +181,12 @@ void gl_rect_2d_offset_local( S32 left, S32 top, S32 right, S32 bottom, S32 pixe | |||
183 | void gl_rect_2d(S32 left, S32 top, S32 right, S32 bottom, BOOL filled ) | 181 | void gl_rect_2d(S32 left, S32 top, S32 right, S32 bottom, BOOL filled ) |
184 | { | 182 | { |
185 | stop_glerror(); | 183 | stop_glerror(); |
186 | LLGLSNoTexture no_texture; | 184 | gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); |
187 | 185 | ||
188 | // Counterclockwise quad will face the viewer | 186 | // Counterclockwise quad will face the viewer |
189 | if( filled ) | 187 | if( filled ) |
190 | { | 188 | { |
191 | gGL.begin( LLVertexBuffer::QUADS ); | 189 | gGL.begin( LLRender::QUADS ); |
192 | gGL.vertex2i(left, top); | 190 | gGL.vertex2i(left, top); |
193 | gGL.vertex2i(left, bottom); | 191 | gGL.vertex2i(left, bottom); |
194 | gGL.vertex2i(right, bottom); | 192 | gGL.vertex2i(right, bottom); |
@@ -200,7 +198,7 @@ void gl_rect_2d(S32 left, S32 top, S32 right, S32 bottom, BOOL filled ) | |||
200 | if( gGLManager.mATIOffsetVerticalLines ) | 198 | if( gGLManager.mATIOffsetVerticalLines ) |
201 | { | 199 | { |
202 | // Work around bug in ATI driver: vertical lines are offset by (-1,-1) | 200 | // Work around bug in ATI driver: vertical lines are offset by (-1,-1) |
203 | gGL.begin( LLVertexBuffer::LINES ); | 201 | gGL.begin( LLRender::LINES ); |
204 | 202 | ||
205 | // Verticals | 203 | // Verticals |
206 | gGL.vertex2i(left + 1, top); | 204 | gGL.vertex2i(left + 1, top); |
@@ -223,7 +221,7 @@ void gl_rect_2d(S32 left, S32 top, S32 right, S32 bottom, BOOL filled ) | |||
223 | { | 221 | { |
224 | top--; | 222 | top--; |
225 | right--; | 223 | right--; |
226 | gGL.begin( LLVertexBuffer::LINE_STRIP ); | 224 | gGL.begin( LLRender::LINE_STRIP ); |
227 | gGL.vertex2i(left, top); | 225 | gGL.vertex2i(left, top); |
228 | gGL.vertex2i(left, bottom); | 226 | gGL.vertex2i(left, bottom); |
229 | gGL.vertex2i(right, bottom); | 227 | gGL.vertex2i(right, bottom); |
@@ -254,7 +252,7 @@ void gl_rect_2d( const LLRect& rect, const LLColor4& color, BOOL filled ) | |||
254 | void gl_drop_shadow(S32 left, S32 top, S32 right, S32 bottom, const LLColor4 &start_color, S32 lines) | 252 | void gl_drop_shadow(S32 left, S32 top, S32 right, S32 bottom, const LLColor4 &start_color, S32 lines) |
255 | { | 253 | { |
256 | stop_glerror(); | 254 | stop_glerror(); |
257 | LLGLSNoTexture no_texture; | 255 | gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); |
258 | 256 | ||
259 | // HACK: Overlap with the rectangle by a single pixel. | 257 | // HACK: Overlap with the rectangle by a single pixel. |
260 | right--; | 258 | right--; |
@@ -264,7 +262,7 @@ void gl_drop_shadow(S32 left, S32 top, S32 right, S32 bottom, const LLColor4 &st | |||
264 | LLColor4 end_color = start_color; | 262 | LLColor4 end_color = start_color; |
265 | end_color.mV[VALPHA] = 0.f; | 263 | end_color.mV[VALPHA] = 0.f; |
266 | 264 | ||
267 | gGL.begin(LLVertexBuffer::QUADS); | 265 | gGL.begin(LLRender::QUADS); |
268 | 266 | ||
269 | // Right edge, CCW faces screen | 267 | // Right edge, CCW faces screen |
270 | gGL.color4fv(start_color.mV); | 268 | gGL.color4fv(start_color.mV); |
@@ -324,9 +322,9 @@ void gl_line_2d(S32 x1, S32 y1, S32 x2, S32 y2 ) | |||
324 | y2++; | 322 | y2++; |
325 | } | 323 | } |
326 | 324 | ||
327 | LLGLSNoTexture no_texture; | 325 | gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); |
328 | 326 | ||
329 | gGL.begin(LLVertexBuffer::LINES); | 327 | gGL.begin(LLRender::LINES); |
330 | gGL.vertex2i(x1, y1); | 328 | gGL.vertex2i(x1, y1); |
331 | gGL.vertex2i(x2, y2); | 329 | gGL.vertex2i(x2, y2); |
332 | gGL.end(); | 330 | gGL.end(); |
@@ -343,11 +341,11 @@ void gl_line_2d(S32 x1, S32 y1, S32 x2, S32 y2, const LLColor4 &color ) | |||
343 | y2++; | 341 | y2++; |
344 | } | 342 | } |
345 | 343 | ||
346 | LLGLSNoTexture no_texture; | 344 | gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); |
347 | 345 | ||
348 | gGL.color4fv( color.mV ); | 346 | gGL.color4fv( color.mV ); |
349 | 347 | ||
350 | gGL.begin(LLVertexBuffer::LINES); | 348 | gGL.begin(LLRender::LINES); |
351 | gGL.vertex2i(x1, y1); | 349 | gGL.vertex2i(x1, y1); |
352 | gGL.vertex2i(x2, y2); | 350 | gGL.vertex2i(x2, y2); |
353 | gGL.end(); | 351 | gGL.end(); |
@@ -355,17 +353,17 @@ void gl_line_2d(S32 x1, S32 y1, S32 x2, S32 y2, const LLColor4 &color ) | |||
355 | 353 | ||
356 | void gl_triangle_2d(S32 x1, S32 y1, S32 x2, S32 y2, S32 x3, S32 y3, const LLColor4& color, BOOL filled) | 354 | void gl_triangle_2d(S32 x1, S32 y1, S32 x2, S32 y2, S32 x3, S32 y3, const LLColor4& color, BOOL filled) |
357 | { | 355 | { |
358 | LLGLSNoTexture no_texture; | 356 | gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); |
359 | 357 | ||
360 | gGL.color4fv(color.mV); | 358 | gGL.color4fv(color.mV); |
361 | 359 | ||
362 | if (filled) | 360 | if (filled) |
363 | { | 361 | { |
364 | gGL.begin(LLVertexBuffer::TRIANGLES); | 362 | gGL.begin(LLRender::TRIANGLES); |
365 | } | 363 | } |
366 | else | 364 | else |
367 | { | 365 | { |
368 | gGL.begin(LLVertexBuffer::LINE_LOOP); | 366 | gGL.begin(LLRender::LINE_LOOP); |
369 | } | 367 | } |
370 | gGL.vertex2i(x1, y1); | 368 | gGL.vertex2i(x1, y1); |
371 | gGL.vertex2i(x2, y2); | 369 | gGL.vertex2i(x2, y2); |
@@ -375,11 +373,11 @@ void gl_triangle_2d(S32 x1, S32 y1, S32 x2, S32 y2, S32 x3, S32 y3, const LLColo | |||
375 | 373 | ||
376 | void gl_corners_2d(S32 left, S32 top, S32 right, S32 bottom, S32 length, F32 max_frac) | 374 | void gl_corners_2d(S32 left, S32 top, S32 right, S32 bottom, S32 length, F32 max_frac) |
377 | { | 375 | { |
378 | LLGLSNoTexture no_texture; | 376 | gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); |
379 | 377 | ||
380 | length = llmin((S32)(max_frac*(right - left)), length); | 378 | length = llmin((S32)(max_frac*(right - left)), length); |
381 | length = llmin((S32)(max_frac*(top - bottom)), length); | 379 | length = llmin((S32)(max_frac*(top - bottom)), length); |
382 | gGL.begin(LLVertexBuffer::LINES); | 380 | gGL.begin(LLRender::LINES); |
383 | gGL.vertex2i(left, top); | 381 | gGL.vertex2i(left, top); |
384 | gGL.vertex2i(left + length, top); | 382 | gGL.vertex2i(left + length, top); |
385 | 383 | ||
@@ -496,11 +494,11 @@ void gl_draw_scaled_image_with_border(S32 x, S32 y, S32 width, S32 height, LLIma | |||
496 | { | 494 | { |
497 | gGL.translatef((F32)x, (F32)y, 0.f); | 495 | gGL.translatef((F32)x, (F32)y, 0.f); |
498 | 496 | ||
499 | image->bind(); | 497 | gGL.getTexUnit(0)->bind(image); |
500 | 498 | ||
501 | gGL.color4fv(color.mV); | 499 | gGL.color4fv(color.mV); |
502 | 500 | ||
503 | gGL.begin(LLVertexBuffer::QUADS); | 501 | gGL.begin(LLRender::QUADS); |
504 | { | 502 | { |
505 | // draw bottom left | 503 | // draw bottom left |
506 | gGL.texCoord2f(uv_rect.mLeft, uv_rect.mBottom); | 504 | gGL.texCoord2f(uv_rect.mLeft, uv_rect.mBottom); |
@@ -656,11 +654,11 @@ void gl_draw_scaled_rotated_image(S32 x, S32 y, S32 width, S32 height, F32 degre | |||
656 | gGL.translatef( -offset_x, -offset_y, 0.f ); | 654 | gGL.translatef( -offset_x, -offset_y, 0.f ); |
657 | } | 655 | } |
658 | 656 | ||
659 | image->bind(); | 657 | gGL.getTexUnit(0)->bind(image); |
660 | 658 | ||
661 | gGL.color4fv(color.mV); | 659 | gGL.color4fv(color.mV); |
662 | 660 | ||
663 | gGL.begin(LLVertexBuffer::QUADS); | 661 | gGL.begin(LLRender::QUADS); |
664 | { | 662 | { |
665 | gGL.texCoord2f(uv_rect.mRight, uv_rect.mTop); | 663 | gGL.texCoord2f(uv_rect.mRight, uv_rect.mTop); |
666 | gGL.vertex2i(width, height ); | 664 | gGL.vertex2i(width, height ); |
@@ -694,11 +692,11 @@ void gl_draw_scaled_image_inverted(S32 x, S32 y, S32 width, S32 height, LLImageG | |||
694 | { | 692 | { |
695 | gGL.translatef((F32)x, (F32)y, 0.f); | 693 | gGL.translatef((F32)x, (F32)y, 0.f); |
696 | 694 | ||
697 | image->bind(); | 695 | gGL.getTexUnit(0)->bind(image); |
698 | 696 | ||
699 | gGL.color4fv(color.mV); | 697 | gGL.color4fv(color.mV); |
700 | 698 | ||
701 | gGL.begin(LLVertexBuffer::QUADS); | 699 | gGL.begin(LLRender::QUADS); |
702 | { | 700 | { |
703 | gGL.texCoord2f(uv_rect.mRight, uv_rect.mBottom); | 701 | gGL.texCoord2f(uv_rect.mRight, uv_rect.mBottom); |
704 | gGL.vertex2i(width, height ); | 702 | gGL.vertex2i(width, height ); |
@@ -733,7 +731,7 @@ void gl_stippled_line_3d( const LLVector3& start, const LLVector3& end, const LL | |||
733 | glLineWidth(2.5f); | 731 | glLineWidth(2.5f); |
734 | glLineStipple(2, 0x3333 << shift); | 732 | glLineStipple(2, 0x3333 << shift); |
735 | 733 | ||
736 | gGL.begin(LLVertexBuffer::LINES); | 734 | gGL.begin(LLRender::LINES); |
737 | { | 735 | { |
738 | gGL.vertex3fv( start.mV ); | 736 | gGL.vertex3fv( start.mV ); |
739 | gGL.vertex3fv( end.mV ); | 737 | gGL.vertex3fv( end.mV ); |
@@ -750,7 +748,7 @@ void gl_rect_2d_xor(S32 left, S32 top, S32 right, S32 bottom) | |||
750 | glLogicOp( GL_XOR ); | 748 | glLogicOp( GL_XOR ); |
751 | stop_glerror(); | 749 | stop_glerror(); |
752 | 750 | ||
753 | gGL.begin(LLVertexBuffer::QUADS); | 751 | gGL.begin(LLRender::QUADS); |
754 | gGL.vertex2i(left, top); | 752 | gGL.vertex2i(left, top); |
755 | gGL.vertex2i(left, bottom); | 753 | gGL.vertex2i(left, bottom); |
756 | gGL.vertex2i(right, bottom); | 754 | gGL.vertex2i(right, bottom); |
@@ -782,14 +780,14 @@ void gl_arc_2d(F32 center_x, F32 center_y, F32 radius, S32 steps, BOOL filled, F | |||
782 | 780 | ||
783 | if (filled) | 781 | if (filled) |
784 | { | 782 | { |
785 | gGL.begin(LLVertexBuffer::TRIANGLE_FAN); | 783 | gGL.begin(LLRender::TRIANGLE_FAN); |
786 | gGL.vertex2f(0.f, 0.f); | 784 | gGL.vertex2f(0.f, 0.f); |
787 | // make sure circle is complete | 785 | // make sure circle is complete |
788 | steps += 1; | 786 | steps += 1; |
789 | } | 787 | } |
790 | else | 788 | else |
791 | { | 789 | { |
792 | gGL.begin(LLVertexBuffer::LINE_STRIP); | 790 | gGL.begin(LLRender::LINE_STRIP); |
793 | } | 791 | } |
794 | 792 | ||
795 | while( steps-- ) | 793 | while( steps-- ) |
@@ -809,7 +807,7 @@ void gl_circle_2d(F32 center_x, F32 center_y, F32 radius, S32 steps, BOOL filled | |||
809 | { | 807 | { |
810 | gGL.pushMatrix(); | 808 | gGL.pushMatrix(); |
811 | { | 809 | { |
812 | LLGLSNoTexture gls_no_texture; | 810 | gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); |
813 | gGL.translatef(center_x, center_y, 0.f); | 811 | gGL.translatef(center_x, center_y, 0.f); |
814 | 812 | ||
815 | // Inexact, but reasonably fast. | 813 | // Inexact, but reasonably fast. |
@@ -821,14 +819,14 @@ void gl_circle_2d(F32 center_x, F32 center_y, F32 radius, S32 steps, BOOL filled | |||
821 | 819 | ||
822 | if (filled) | 820 | if (filled) |
823 | { | 821 | { |
824 | gGL.begin(LLVertexBuffer::TRIANGLE_FAN); | 822 | gGL.begin(LLRender::TRIANGLE_FAN); |
825 | gGL.vertex2f(0.f, 0.f); | 823 | gGL.vertex2f(0.f, 0.f); |
826 | // make sure circle is complete | 824 | // make sure circle is complete |
827 | steps += 1; | 825 | steps += 1; |
828 | } | 826 | } |
829 | else | 827 | else |
830 | { | 828 | { |
831 | gGL.begin(LLVertexBuffer::LINE_LOOP); | 829 | gGL.begin(LLRender::LINE_LOOP); |
832 | } | 830 | } |
833 | 831 | ||
834 | while( steps-- ) | 832 | while( steps-- ) |
@@ -850,7 +848,7 @@ void gl_deep_circle( F32 radius, F32 depth, S32 steps ) | |||
850 | F32 x = radius; | 848 | F32 x = radius; |
851 | F32 y = 0.f; | 849 | F32 y = 0.f; |
852 | F32 angle_delta = F_TWO_PI / (F32)steps; | 850 | F32 angle_delta = F_TWO_PI / (F32)steps; |
853 | gGL.begin( LLVertexBuffer::TRIANGLE_STRIP ); | 851 | gGL.begin( LLRender::TRIANGLE_STRIP ); |
854 | { | 852 | { |
855 | S32 step = steps + 1; // An extra step to close the circle. | 853 | S32 step = steps + 1; // An extra step to close the circle. |
856 | while( step-- ) | 854 | while( step-- ) |
@@ -905,7 +903,7 @@ void gl_rect_2d_checkerboard(const LLRect& rect) | |||
905 | first = FALSE; | 903 | first = FALSE; |
906 | } | 904 | } |
907 | 905 | ||
908 | LLGLSNoTexture gls_no_texture; | 906 | gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); |
909 | 907 | ||
910 | // ...white squares | 908 | // ...white squares |
911 | gGL.color3f( 1.f, 1.f, 1.f ); | 909 | gGL.color3f( 1.f, 1.f, 1.f ); |
@@ -935,9 +933,9 @@ void gl_washer_2d(F32 outer_radius, F32 inner_radius, S32 steps, const LLColor4& | |||
935 | F32 x2 = inner_radius; | 933 | F32 x2 = inner_radius; |
936 | F32 y2 = 0.f; | 934 | F32 y2 = 0.f; |
937 | 935 | ||
938 | LLGLSNoTexture gls_no_texture; | 936 | gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); |
939 | 937 | ||
940 | gGL.begin( LLVertexBuffer::TRIANGLE_STRIP ); | 938 | gGL.begin( LLRender::TRIANGLE_STRIP ); |
941 | { | 939 | { |
942 | steps += 1; // An extra step to close the circle. | 940 | steps += 1; // An extra step to close the circle. |
943 | while( steps-- ) | 941 | while( steps-- ) |
@@ -972,8 +970,8 @@ void gl_washer_segment_2d(F32 outer_radius, F32 inner_radius, F32 start_radians, | |||
972 | F32 x2 = inner_radius * cos( start_radians ); | 970 | F32 x2 = inner_radius * cos( start_radians ); |
973 | F32 y2 = inner_radius * sin( start_radians ); | 971 | F32 y2 = inner_radius * sin( start_radians ); |
974 | 972 | ||
975 | LLGLSNoTexture gls_no_texture; | 973 | gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); |
976 | gGL.begin( LLVertexBuffer::TRIANGLE_STRIP ); | 974 | gGL.begin( LLRender::TRIANGLE_STRIP ); |
977 | { | 975 | { |
978 | steps += 1; // An extra step to close the circle. | 976 | steps += 1; // An extra step to close the circle. |
979 | while( steps-- ) | 977 | while( steps-- ) |
@@ -1008,9 +1006,9 @@ void gl_washer_spokes_2d(F32 outer_radius, F32 inner_radius, S32 count, const LL | |||
1008 | F32 x2 = inner_radius * cos( HALF_DELTA ); | 1006 | F32 x2 = inner_radius * cos( HALF_DELTA ); |
1009 | F32 y2 = inner_radius * sin( HALF_DELTA ); | 1007 | F32 y2 = inner_radius * sin( HALF_DELTA ); |
1010 | 1008 | ||
1011 | LLGLSNoTexture gls_no_texture; | 1009 | gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); |
1012 | 1010 | ||
1013 | gGL.begin( LLVertexBuffer::LINES ); | 1011 | gGL.begin( LLRender::LINES ); |
1014 | { | 1012 | { |
1015 | while( count-- ) | 1013 | while( count-- ) |
1016 | { | 1014 | { |
@@ -1033,7 +1031,7 @@ void gl_washer_spokes_2d(F32 outer_radius, F32 inner_radius, S32 count, const LL | |||
1033 | 1031 | ||
1034 | void gl_rect_2d_simple_tex( S32 width, S32 height ) | 1032 | void gl_rect_2d_simple_tex( S32 width, S32 height ) |
1035 | { | 1033 | { |
1036 | gGL.begin( LLVertexBuffer::QUADS ); | 1034 | gGL.begin( LLRender::QUADS ); |
1037 | 1035 | ||
1038 | gGL.texCoord2f(1.f, 1.f); | 1036 | gGL.texCoord2f(1.f, 1.f); |
1039 | gGL.vertex2i(width, height); | 1037 | gGL.vertex2i(width, height); |
@@ -1052,7 +1050,7 @@ void gl_rect_2d_simple_tex( S32 width, S32 height ) | |||
1052 | 1050 | ||
1053 | void gl_rect_2d_simple( S32 width, S32 height ) | 1051 | void gl_rect_2d_simple( S32 width, S32 height ) |
1054 | { | 1052 | { |
1055 | gGL.begin( LLVertexBuffer::QUADS ); | 1053 | gGL.begin( LLRender::QUADS ); |
1056 | gGL.vertex2i(width, height); | 1054 | gGL.vertex2i(width, height); |
1057 | gGL.vertex2i(0, height); | 1055 | gGL.vertex2i(0, height); |
1058 | gGL.vertex2i(0, 0); | 1056 | gGL.vertex2i(0, 0); |
@@ -1094,7 +1092,7 @@ void gl_segmented_rect_2d_tex(const S32 left, | |||
1094 | LLVector2 width_vec((F32)width, 0.f); | 1092 | LLVector2 width_vec((F32)width, 0.f); |
1095 | LLVector2 height_vec(0.f, (F32)height); | 1093 | LLVector2 height_vec(0.f, (F32)height); |
1096 | 1094 | ||
1097 | gGL.begin(LLVertexBuffer::QUADS); | 1095 | gGL.begin(LLRender::QUADS); |
1098 | { | 1096 | { |
1099 | // draw bottom left | 1097 | // draw bottom left |
1100 | gGL.texCoord2f(0.f, 0.f); | 1098 | gGL.texCoord2f(0.f, 0.f); |
@@ -1262,7 +1260,7 @@ void gl_segmented_rect_2d_fragment_tex(const S32 left, | |||
1262 | LLVector2 x_min; | 1260 | LLVector2 x_min; |
1263 | LLVector2 x_max; | 1261 | LLVector2 x_max; |
1264 | 1262 | ||
1265 | gGL.begin(LLVertexBuffer::QUADS); | 1263 | gGL.begin(LLRender::QUADS); |
1266 | { | 1264 | { |
1267 | if (start_fragment < middle_start) | 1265 | if (start_fragment < middle_start) |
1268 | { | 1266 | { |
@@ -1419,7 +1417,7 @@ void gl_segmented_rect_3d_tex(const LLVector2& border_scale, const LLVector3& bo | |||
1419 | LLVector3 bottom_border_height = ((edges & (~(U32)ROUNDED_RECT_TOP)) != 0) ? border_height : LLVector3::zero; | 1417 | LLVector3 bottom_border_height = ((edges & (~(U32)ROUNDED_RECT_TOP)) != 0) ? border_height : LLVector3::zero; |
1420 | 1418 | ||
1421 | 1419 | ||
1422 | gGL.begin(LLVertexBuffer::QUADS); | 1420 | gGL.begin(LLRender::QUADS); |
1423 | { | 1421 | { |
1424 | // draw bottom left | 1422 | // draw bottom left |
1425 | gGL.texCoord2f(0.f, 0.f); | 1423 | gGL.texCoord2f(0.f, 0.f); |
@@ -1575,7 +1573,7 @@ void LLUI::initClass(LLControlGroup* config, | |||
1575 | void LLUI::cleanupClass() | 1573 | void LLUI::cleanupClass() |
1576 | { | 1574 | { |
1577 | sImageProvider->cleanUp(); | 1575 | sImageProvider->cleanUp(); |
1578 | LLLineEditor::cleanupClass(); | 1576 | LLLineEditor::cleanupLineEditor(); |
1579 | } | 1577 | } |
1580 | 1578 | ||
1581 | 1579 | ||
@@ -1647,6 +1645,34 @@ void LLUI::setCursorPositionLocal(const LLView* viewp, S32 x, S32 y) | |||
1647 | setCursorPositionScreen(screen_x, screen_y); | 1645 | setCursorPositionScreen(screen_x, screen_y); |
1648 | } | 1646 | } |
1649 | 1647 | ||
1648 | // On Windows, the user typically sets the language when they install the | ||
1649 | // app (by running it with a shortcut that sets InstallLanguage). On Mac, | ||
1650 | // or on Windows if the SecondLife.exe executable is run directly, the | ||
1651 | // language follows the OS language. In all cases the user can override | ||
1652 | // the language manually in preferences. JC | ||
1653 | // static | ||
1654 | std::string LLUI::getLanguage() | ||
1655 | { | ||
1656 | std::string language = "en-us"; | ||
1657 | if (sConfigGroup) | ||
1658 | { | ||
1659 | language = sConfigGroup->getString("Language"); | ||
1660 | if (language.empty() || language == "default") | ||
1661 | { | ||
1662 | language = sConfigGroup->getString("InstallLanguage"); | ||
1663 | } | ||
1664 | if (language.empty() || language == "default") | ||
1665 | { | ||
1666 | language = sConfigGroup->getString("SystemLanguage"); | ||
1667 | } | ||
1668 | if (language.empty() || language == "default") | ||
1669 | { | ||
1670 | language = "en-us"; | ||
1671 | } | ||
1672 | } | ||
1673 | return language; | ||
1674 | } | ||
1675 | |||
1650 | //static | 1676 | //static |
1651 | std::string LLUI::locateSkin(const std::string& filename) | 1677 | std::string LLUI::locateSkin(const std::string& filename) |
1652 | { | 1678 | { |
@@ -1660,11 +1686,7 @@ std::string LLUI::locateSkin(const std::string& filename) | |||
1660 | { | 1686 | { |
1661 | if (!gDirUtilp->fileExists(found_file)) | 1687 | if (!gDirUtilp->fileExists(found_file)) |
1662 | { | 1688 | { |
1663 | std::string localization(sConfigGroup->getString("Language")); | 1689 | std::string localization = getLanguage(); |
1664 | if(localization == "default") | ||
1665 | { | ||
1666 | localization = sConfigGroup->getString("SystemLanguage"); | ||
1667 | } | ||
1668 | std::string local_skin = "xui" + slash + localization + slash + filename; | 1690 | std::string local_skin = "xui" + slash + localization + slash + filename; |
1669 | found_file = gDirUtilp->findSkinnedFilename(local_skin); | 1691 | found_file = gDirUtilp->findSkinnedFilename(local_skin); |
1670 | } | 1692 | } |
diff --git a/linden/indra/llui/llui.h b/linden/indra/llui/llui.h index 4c1bb22..1e731f1 100644 --- a/linden/indra/llui/llui.h +++ b/linden/indra/llui/llui.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
@@ -38,15 +38,17 @@ | |||
38 | #include "llcontrol.h" | 38 | #include "llcontrol.h" |
39 | #include "llrect.h" | 39 | #include "llrect.h" |
40 | #include "llcoord.h" | 40 | #include "llcoord.h" |
41 | #include "llhtmlhelp.h" | 41 | //#include "llhtmlhelp.h" |
42 | #include "llgl.h" | 42 | #include "llgl.h" // *TODO: break this dependency |
43 | #include <stack> | 43 | #include <stack> |
44 | #include "llimagegl.h" | 44 | //#include "llimagegl.h" |
45 | 45 | ||
46 | // LLUIFactory | 46 | // LLUIFactory |
47 | #include "llsd.h" | 47 | #include "llsd.h" |
48 | 48 | ||
49 | class LLColor4; | 49 | class LLColor4; |
50 | class LLHtmlHelp; | ||
51 | class LLImageGL; | ||
50 | class LLVector3; | 52 | class LLVector3; |
51 | class LLVector2; | 53 | class LLVector2; |
52 | class LLUUID; | 54 | class LLUUID; |
@@ -139,13 +141,6 @@ inline void gl_rect_2d_offset_local( const LLRect& rect, S32 pixel_offset, BOOL | |||
139 | gl_rect_2d_offset_local( rect.mLeft, rect.mTop, rect.mRight, rect.mBottom, pixel_offset, filled ); | 141 | gl_rect_2d_offset_local( rect.mLeft, rect.mTop, rect.mRight, rect.mBottom, pixel_offset, filled ); |
140 | } | 142 | } |
141 | 143 | ||
142 | // No longer used | ||
143 | // Initializes translation table | ||
144 | // void init_tr(); | ||
145 | |||
146 | // Returns a string from the string table in the correct language | ||
147 | // std::string tr(const std::string& english_chars); | ||
148 | |||
149 | // Used to hide the flashing text cursor when window doesn't have focus. | 144 | // Used to hide the flashing text cursor when window doesn't have focus. |
150 | extern BOOL gShowTextEditCursor; | 145 | extern BOOL gShowTextEditCursor; |
151 | 146 | ||
@@ -172,6 +167,10 @@ public: | |||
172 | static void loadIdentity(); | 167 | static void loadIdentity(); |
173 | static void translate(F32 x, F32 y, F32 z = 0.0f); | 168 | static void translate(F32 x, F32 y, F32 z = 0.0f); |
174 | 169 | ||
170 | // Return the ISO639 language name ("en", "ko", etc.) for the viewer UI. | ||
171 | // http://www.loc.gov/standards/iso639-2/php/code_list.php | ||
172 | static std::string getLanguage(); | ||
173 | |||
175 | //helper functions (should probably move free standing rendering helper functions here) | 174 | //helper functions (should probably move free standing rendering helper functions here) |
176 | static std::string locateSkin(const std::string& filename); | 175 | static std::string locateSkin(const std::string& filename); |
177 | static void setCursorPositionScreen(S32 x, S32 y); | 176 | static void setCursorPositionScreen(S32 x, S32 y); |
diff --git a/linden/indra/llui/lluiconstants.h b/linden/indra/llui/lluiconstants.h index b3b9297..14e7a81 100644 --- a/linden/indra/llui/lluiconstants.h +++ b/linden/indra/llui/lluiconstants.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/lluictrl.cpp b/linden/indra/llui/lluictrl.cpp index ddafa74..b2c14df 100644 --- a/linden/indra/llui/lluictrl.cpp +++ b/linden/indra/llui/lluictrl.cpp | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 6 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
7 | * | 7 | * |
8 | * Copyright (c) 2001-2008, Linden Research, Inc. | 8 | * Copyright (c) 2001-2009, Linden Research, Inc. |
9 | * | 9 | * |
10 | * Second Life Viewer Source Code | 10 | * Second Life Viewer Source Code |
11 | * The source code in this file ("Source Code") is provided by Linden Lab | 11 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/lluictrl.h b/linden/indra/llui/lluictrl.h index b63f79b..f11ece7 100644 --- a/linden/indra/llui/lluictrl.h +++ b/linden/indra/llui/lluictrl.h | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 6 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
7 | * | 7 | * |
8 | * Copyright (c) 2001-2008, Linden Research, Inc. | 8 | * Copyright (c) 2001-2009, Linden Research, Inc. |
9 | * | 9 | * |
10 | * Second Life Viewer Source Code | 10 | * Second Life Viewer Source Code |
11 | * The source code in this file ("Source Code") is provided by Linden Lab | 11 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/lluictrlfactory.cpp b/linden/indra/llui/lluictrlfactory.cpp index bcd4876..07de717 100644 --- a/linden/indra/llui/lluictrlfactory.cpp +++ b/linden/indra/llui/lluictrlfactory.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2003&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2003&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2003-2008, Linden Research, Inc. | 7 | * Copyright (c) 2003-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
@@ -130,15 +130,7 @@ void LLUICtrlFactory::setupPaths() | |||
130 | for (path = root->getFirstChild(); path.notNull(); path = path->getNextSibling()) | 130 | for (path = root->getFirstChild(); path.notNull(); path = path->getNextSibling()) |
131 | { | 131 | { |
132 | LLUIString path_val_ui(path->getValue()); | 132 | LLUIString path_val_ui(path->getValue()); |
133 | std::string language = "en-us"; | 133 | std::string language = LLUI::getLanguage(); |
134 | if (LLUI::sConfigGroup) | ||
135 | { | ||
136 | language = LLUI::sConfigGroup->getString("Language"); | ||
137 | if(language == "default") | ||
138 | { | ||
139 | language = LLUI::sConfigGroup->getString("SystemLanguage"); | ||
140 | } | ||
141 | } | ||
142 | path_val_ui.setArg("[LANGUAGE]", language); | 134 | path_val_ui.setArg("[LANGUAGE]", language); |
143 | 135 | ||
144 | if (std::find(sXUIPaths.begin(), sXUIPaths.end(), path_val_ui.getString()) == sXUIPaths.end()) | 136 | if (std::find(sXUIPaths.begin(), sXUIPaths.end(), path_val_ui.getString()) == sXUIPaths.end()) |
diff --git a/linden/indra/llui/lluictrlfactory.h b/linden/indra/llui/lluictrlfactory.h index 559c8e5..b5b2853 100644 --- a/linden/indra/llui/lluictrlfactory.h +++ b/linden/indra/llui/lluictrlfactory.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2003&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2003&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2003-2008, Linden Research, Inc. | 7 | * Copyright (c) 2003-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/lluifwd.h b/linden/indra/llui/lluifwd.h index 758a0e4..ab8eb63 100644 --- a/linden/indra/llui/lluifwd.h +++ b/linden/indra/llui/lluifwd.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2007&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2007&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2007-2008, Linden Research, Inc. | 7 | * Copyright (c) 2007-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/lluistring.cpp b/linden/indra/llui/lluistring.cpp index 52b83bd..974047f 100644 --- a/linden/indra/llui/lluistring.cpp +++ b/linden/indra/llui/lluistring.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2006&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2006&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2006-2008, Linden Research, Inc. | 7 | * Copyright (c) 2006-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/lluistring.h b/linden/indra/llui/lluistring.h index b6c715f..5983e1d 100644 --- a/linden/indra/llui/lluistring.h +++ b/linden/indra/llui/lluistring.h | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * $LicenseInfo:firstyear=2006&license=viewergpl$ | 6 | * $LicenseInfo:firstyear=2006&license=viewergpl$ |
7 | * | 7 | * |
8 | * Copyright (c) 2006-2008, Linden Research, Inc. | 8 | * Copyright (c) 2006-2009, Linden Research, Inc. |
9 | * | 9 | * |
10 | * Second Life Viewer Source Code | 10 | * Second Life Viewer Source Code |
11 | * The source code in this file ("Source Code") is provided by Linden Lab | 11 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/lluixmltags.h b/linden/indra/llui/lluixmltags.h index 5209199..da31136 100644 --- a/linden/indra/llui/lluixmltags.h +++ b/linden/indra/llui/lluixmltags.h | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * $LicenseInfo:firstyear=2006&license=viewergpl$ | 4 | * $LicenseInfo:firstyear=2006&license=viewergpl$ |
5 | * | 5 | * |
6 | * Copyright (c) 2006-2008, Linden Research, Inc. | 6 | * Copyright (c) 2006-2009, Linden Research, Inc. |
7 | * | 7 | * |
8 | * Second Life Viewer Source Code | 8 | * Second Life Viewer Source Code |
9 | * The source code in this file ("Source Code") is provided by Linden Lab | 9 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llundo.cpp b/linden/indra/llui/llundo.cpp index 4fdf9d3..05c8c11 100644 --- a/linden/indra/llui/llundo.cpp +++ b/linden/indra/llui/llundo.cpp | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 4 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
5 | * | 5 | * |
6 | * Copyright (c) 2001-2008, Linden Research, Inc. | 6 | * Copyright (c) 2001-2009, Linden Research, Inc. |
7 | * | 7 | * |
8 | * Second Life Viewer Source Code | 8 | * Second Life Viewer Source Code |
9 | * The source code in this file ("Source Code") is provided by Linden Lab | 9 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llundo.h b/linden/indra/llui/llundo.h index 6921259..55d164e 100644 --- a/linden/indra/llui/llundo.h +++ b/linden/indra/llui/llundo.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2000&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2000&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2000-2008, Linden Research, Inc. | 7 | * Copyright (c) 2000-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llview.cpp b/linden/indra/llui/llview.cpp index 034c49b..9cdf481 100644 --- a/linden/indra/llui/llview.cpp +++ b/linden/indra/llui/llview.cpp | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 6 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
7 | * | 7 | * |
8 | * Copyright (c) 2001-2008, Linden Research, Inc. | 8 | * Copyright (c) 2001-2009, Linden Research, Inc. |
9 | * | 9 | * |
10 | * Second Life Viewer Source Code | 10 | * Second Life Viewer Source Code |
11 | * The source code in this file ("Source Code") is provided by Linden Lab | 11 | * The source code in this file ("Source Code") is provided by Linden Lab |
@@ -43,7 +43,7 @@ | |||
43 | #include "llfocusmgr.h" | 43 | #include "llfocusmgr.h" |
44 | #include "llrect.h" | 44 | #include "llrect.h" |
45 | #include "llstl.h" | 45 | #include "llstl.h" |
46 | #include "llui.h" // colors saved settings | 46 | #include "llui.h" |
47 | #include "lluictrl.h" | 47 | #include "lluictrl.h" |
48 | #include "llwindow.h" | 48 | #include "llwindow.h" |
49 | #include "v3color.h" | 49 | #include "v3color.h" |
@@ -710,25 +710,38 @@ BOOL LLView::handleToolTip(S32 x, S32 y, std::string& msg, LLRect* sticky_rect_s | |||
710 | && viewp->getEnabled() | 710 | && viewp->getEnabled() |
711 | && viewp->handleToolTip(local_x, local_y, msg, sticky_rect_screen )) | 711 | && viewp->handleToolTip(local_x, local_y, msg, sticky_rect_screen )) |
712 | { | 712 | { |
713 | // child provided a tooltip, just return | ||
714 | if (!msg.empty()) return TRUE; | ||
715 | |||
716 | // otherwise, one of our children ate the event so don't traverse | ||
717 | // siblings however, our child did not actually provide a tooltip | ||
718 | // so we might want to | ||
713 | handled = TRUE; | 719 | handled = TRUE; |
714 | break; | 720 | break; |
715 | } | 721 | } |
716 | } | 722 | } |
717 | 723 | ||
724 | // get our own tooltip | ||
718 | tool_tip = mToolTipMsg.getString(); | 725 | tool_tip = mToolTipMsg.getString(); |
719 | if ( | 726 | if ( |
720 | LLUI::sShowXUINames && | 727 | LLUI::sShowXUINames |
721 | (tool_tip.find(".xml", 0) == std::string::npos) && | 728 | && (tool_tip.find(".xml", 0) == std::string::npos) |
722 | (mName.find("Drag", 0) == std::string::npos)) | 729 | && (mName.find("Drag", 0) == std::string::npos)) |
723 | { | 730 | { |
724 | tool_tip = getShowNamesToolTip(); | 731 | tool_tip = getShowNamesToolTip(); |
725 | } | 732 | } |
726 | 733 | ||
727 | BOOL show_names_text_box = LLUI::sShowXUINames && dynamic_cast<LLTextBox*>(this) != NULL; | 734 | BOOL show_names_text_box = LLUI::sShowXUINames && dynamic_cast<LLTextBox*>(this) != NULL; |
728 | 735 | ||
729 | if( !handled && (blockMouseEvent(x, y) || show_names_text_box)) | 736 | // don't allow any siblings to handle this event |
737 | // even if we don't have a tooltip | ||
738 | if (getMouseOpaque() || show_names_text_box) | ||
730 | { | 739 | { |
740 | handled = TRUE; | ||
741 | } | ||
731 | 742 | ||
743 | if(!tool_tip.empty()) | ||
744 | { | ||
732 | msg = tool_tip; | 745 | msg = tool_tip; |
733 | 746 | ||
734 | // Convert rect local to screen coordinates | 747 | // Convert rect local to screen coordinates |
@@ -1281,7 +1294,7 @@ void LLView::drawDebugRect() | |||
1281 | LLUI::pushMatrix(); | 1294 | LLUI::pushMatrix(); |
1282 | { | 1295 | { |
1283 | // drawing solids requires texturing be disabled | 1296 | // drawing solids requires texturing be disabled |
1284 | LLGLSNoTexture no_texture; | 1297 | gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); |
1285 | 1298 | ||
1286 | if (mUseBoundingRect) | 1299 | if (mUseBoundingRect) |
1287 | { | 1300 | { |
@@ -1303,7 +1316,7 @@ void LLView::drawDebugRect() | |||
1303 | 1316 | ||
1304 | gGL.color4fv( border_color.mV ); | 1317 | gGL.color4fv( border_color.mV ); |
1305 | 1318 | ||
1306 | gGL.begin(LLVertexBuffer::LINES); | 1319 | gGL.begin(LLRender::LINES); |
1307 | gGL.vertex2i(0, debug_rect.getHeight() - 1); | 1320 | gGL.vertex2i(0, debug_rect.getHeight() - 1); |
1308 | gGL.vertex2i(0, 0); | 1321 | gGL.vertex2i(0, 0); |
1309 | 1322 | ||
@@ -2060,139 +2073,6 @@ LLView* LLView::findSnapRect(LLRect& new_rect, const LLCoordGL& mouse_dir, | |||
2060 | 2073 | ||
2061 | new_rect.translate(delta_x, delta_y); | 2074 | new_rect.translate(delta_x, delta_y); |
2062 | return snap_view; | 2075 | return snap_view; |
2063 | |||
2064 | //// If the view is near the edge of its parent, snap it to | ||
2065 | //// the edge. | ||
2066 | //LLRect test_rect = getSnapRect(); | ||
2067 | //LLRect view_rect = getSnapRect(); | ||
2068 | //test_rect.stretch(padding); | ||
2069 | //view_rect.stretch(padding); | ||
2070 | |||
2071 | //S32 x_threshold = threshold; | ||
2072 | //S32 y_threshold = threshold; | ||
2073 | |||
2074 | //LLRect parent_local_snap_rect = mParentView->getLocalSnapRect(); | ||
2075 | |||
2076 | //if (snap_type == SNAP_PARENT || snap_type == SNAP_PARENT_AND_SIBLINGS) | ||
2077 | //{ | ||
2078 | // if (llabs(parent_local_snap_rect.mRight - test_rect.mRight) <= x_threshold && (parent_local_snap_rect.mRight - test_rect.mRight) * mouse_dir.mX >= 0) | ||
2079 | // { | ||
2080 | // view_rect.translate(parent_local_snap_rect.mRight - view_rect.mRight, 0); | ||
2081 | // snap_view = mParentView; | ||
2082 | // x_threshold = llabs(parent_local_snap_rect.mRight - test_rect.mRight); | ||
2083 | // } | ||
2084 | |||
2085 | // if (llabs(test_rect.mLeft - parent_local_snap_rect.mLeft) <= x_threshold && test_rect.mLeft * mouse_dir.mX <= 0) | ||
2086 | // { | ||
2087 | // view_rect.translate(parent_local_snap_rect.mLeft - view_rect.mLeft, 0); | ||
2088 | // snap_view = mParentView; | ||
2089 | // x_threshold = llabs(test_rect.mLeft - parent_local_snap_rect.mLeft); | ||
2090 | // } | ||
2091 | |||
2092 | // if (llabs(test_rect.mBottom - parent_local_snap_rect.mBottom) <= y_threshold && test_rect.mBottom * mouse_dir.mY <= 0) | ||
2093 | // { | ||
2094 | // view_rect.translate(0, parent_local_snap_rect.mBottom - view_rect.mBottom); | ||
2095 | // snap_view = mParentView; | ||
2096 | // y_threshold = llabs(test_rect.mBottom - parent_local_snap_rect.mBottom); | ||
2097 | // } | ||
2098 | |||
2099 | // if (llabs(parent_local_snap_rect.mTop - test_rect.mTop) <= y_threshold && (parent_local_snap_rect.mTop - test_rect.mTop) * mouse_dir.mY >= 0) | ||
2100 | // { | ||
2101 | // view_rect.translate(0, parent_local_snap_rect.mTop - view_rect.mTop); | ||
2102 | // snap_view = mParentView; | ||
2103 | // y_threshold = llabs(parent_local_snap_rect.mTop - test_rect.mTop); | ||
2104 | // } | ||
2105 | //} | ||
2106 | //if (snap_type == SNAP_SIBLINGS || snap_type == SNAP_PARENT_AND_SIBLINGS) | ||
2107 | //{ | ||
2108 | // for ( child_list_const_iter_t child_it = mParentView->getChildList()->begin(); | ||
2109 | // child_it != mParentView->getChildList()->end(); ++child_it) | ||
2110 | // { | ||
2111 | // LLView* siblingp = *child_it; | ||
2112 | |||
2113 | // // skip non-snappable views (self, invisible views, etc) | ||
2114 | // if (!canSnapTo(siblingp)) continue; | ||
2115 | |||
2116 | // LLRect sibling_rect = siblingp->getSnapRect(); | ||
2117 | |||
2118 | // if (llabs(test_rect.mRight - sibling_rect.mLeft) <= x_threshold | ||
2119 | // && (test_rect.mRight - sibling_rect.mLeft) * mouse_dir.mX <= 0) | ||
2120 | // { | ||
2121 | // view_rect.translate(sibling_rect.mLeft - view_rect.mRight, 0); | ||
2122 | // if (llabs(test_rect.mTop - sibling_rect.mTop) <= y_threshold && (test_rect.mTop - sibling_rect.mTop) * mouse_dir.mY <= 0) | ||
2123 | // { | ||
2124 | // view_rect.translate(0, sibling_rect.mTop - test_rect.mTop); | ||
2125 | // y_threshold = llabs(test_rect.mTop - sibling_rect.mTop); | ||
2126 | // } | ||
2127 | // else if (llabs(test_rect.mBottom - sibling_rect.mBottom) <= y_threshold && (test_rect.mBottom - sibling_rect.mBottom) * mouse_dir.mY <= 0) | ||
2128 | // { | ||
2129 | // view_rect.translate(0, sibling_rect.mBottom - test_rect.mBottom); | ||
2130 | // y_threshold = llabs(test_rect.mBottom - sibling_rect.mBottom); | ||
2131 | // } | ||
2132 | // snap_view = siblingp; | ||
2133 | // x_threshold = llabs(test_rect.mRight - sibling_rect.mLeft); | ||
2134 | // } | ||
2135 | |||
2136 | // if (llabs(test_rect.mLeft - sibling_rect.mRight) <= x_threshold | ||
2137 | // && (test_rect.mLeft - sibling_rect.mRight) * mouse_dir.mX <= 0) | ||
2138 | // { | ||
2139 | // view_rect.translate(sibling_rect.mRight - view_rect.mLeft, 0); | ||
2140 | // if (llabs(test_rect.mTop - sibling_rect.mTop) <= y_threshold && (test_rect.mTop - sibling_rect.mTop) * mouse_dir.mY <= 0) | ||
2141 | // { | ||
2142 | // view_rect.translate(0, sibling_rect.mTop - test_rect.mTop); | ||
2143 | // y_threshold = llabs(test_rect.mTop - sibling_rect.mTop); | ||
2144 | // } | ||
2145 | // else if (llabs(test_rect.mBottom - sibling_rect.mBottom) <= y_threshold && (test_rect.mBottom - sibling_rect.mBottom) * mouse_dir.mY <= 0) | ||
2146 | // { | ||
2147 | // view_rect.translate(0, sibling_rect.mBottom - test_rect.mBottom); | ||
2148 | // y_threshold = llabs(test_rect.mBottom - sibling_rect.mBottom); | ||
2149 | // } | ||
2150 | // snap_view = siblingp; | ||
2151 | // x_threshold = llabs(test_rect.mLeft - sibling_rect.mRight); | ||
2152 | // } | ||
2153 | |||
2154 | // if (llabs(test_rect.mBottom - sibling_rect.mTop) <= y_threshold | ||
2155 | // && (test_rect.mBottom - sibling_rect.mTop) * mouse_dir.mY <= 0) | ||
2156 | // { | ||
2157 | // view_rect.translate(0, sibling_rect.mTop - view_rect.mBottom); | ||
2158 | // if (llabs(test_rect.mLeft - sibling_rect.mLeft) <= x_threshold && (test_rect.mLeft - sibling_rect.mLeft) * mouse_dir.mX <= 0) | ||
2159 | // { | ||
2160 | // view_rect.translate(sibling_rect.mLeft - test_rect.mLeft, 0); | ||
2161 | // x_threshold = llabs(test_rect.mLeft - sibling_rect.mLeft); | ||
2162 | // } | ||
2163 | // else if (llabs(test_rect.mRight - sibling_rect.mRight) <= x_threshold && (test_rect.mRight - sibling_rect.mRight) * mouse_dir.mX <= 0) | ||
2164 | // { | ||
2165 | // view_rect.translate(sibling_rect.mRight - test_rect.mRight, 0); | ||
2166 | // x_threshold = llabs(test_rect.mRight - sibling_rect.mRight); | ||
2167 | // } | ||
2168 | // snap_view = siblingp; | ||
2169 | // y_threshold = llabs(test_rect.mBottom - sibling_rect.mTop); | ||
2170 | // } | ||
2171 | |||
2172 | // if (llabs(test_rect.mTop - sibling_rect.mBottom) <= y_threshold | ||
2173 | // && (test_rect.mTop - sibling_rect.mBottom) * mouse_dir.mY <= 0) | ||
2174 | // { | ||
2175 | // view_rect.translate(0, sibling_rect.mBottom - view_rect.mTop); | ||
2176 | // if (llabs(test_rect.mLeft - sibling_rect.mLeft) <= x_threshold && (test_rect.mLeft - sibling_rect.mLeft) * mouse_dir.mX <= 0) | ||
2177 | // { | ||
2178 | // view_rect.translate(sibling_rect.mLeft - test_rect.mLeft, 0); | ||
2179 | // x_threshold = llabs(test_rect.mLeft - sibling_rect.mLeft); | ||
2180 | // } | ||
2181 | // else if (llabs(test_rect.mRight - sibling_rect.mRight) <= x_threshold && (test_rect.mRight - sibling_rect.mRight) * mouse_dir.mX <= 0) | ||
2182 | // { | ||
2183 | // view_rect.translate(sibling_rect.mRight - test_rect.mRight, 0); | ||
2184 | // x_threshold = llabs(test_rect.mRight - sibling_rect.mRight); | ||
2185 | // } | ||
2186 | // snap_view = siblingp; | ||
2187 | // y_threshold = llabs(test_rect.mTop - sibling_rect.mBottom); | ||
2188 | // } | ||
2189 | // } | ||
2190 | //} | ||
2191 | |||
2192 | //// shrink actual view rect back down | ||
2193 | //view_rect.stretch(-padding); | ||
2194 | //new_rect = view_rect; | ||
2195 | //return snap_view; | ||
2196 | } | 2076 | } |
2197 | 2077 | ||
2198 | LLView* LLView::findSnapEdge(S32& new_edge_val, const LLCoordGL& mouse_dir, ESnapEdge snap_edge, ESnapType snap_type, S32 threshold, S32 padding) | 2078 | LLView* LLView::findSnapEdge(S32& new_edge_val, const LLCoordGL& mouse_dir, ESnapEdge snap_edge, ESnapType snap_type, S32 threshold, S32 padding) |
diff --git a/linden/indra/llui/llview.h b/linden/indra/llui/llview.h index b65edd7..80dd348 100644 --- a/linden/indra/llui/llview.h +++ b/linden/indra/llui/llview.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llviewborder.cpp b/linden/indra/llui/llviewborder.cpp index 8a5beea..ae24694 100644 --- a/linden/indra/llui/llviewborder.cpp +++ b/linden/indra/llui/llviewborder.cpp | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 4 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
5 | * | 5 | * |
6 | * Copyright (c) 2001-2008, Linden Research, Inc. | 6 | * Copyright (c) 2001-2009, Linden Research, Inc. |
7 | * | 7 | * |
8 | * Second Life Viewer Source Code | 8 | * Second Life Viewer Source Code |
9 | * The source code in this file ("Source Code") is provided by Linden Lab | 9 | * The source code in this file ("Source Code") is provided by Linden Lab |
@@ -111,7 +111,7 @@ void LLViewBorder::draw() | |||
111 | 111 | ||
112 | void LLViewBorder::drawOnePixelLines() | 112 | void LLViewBorder::drawOnePixelLines() |
113 | { | 113 | { |
114 | LLGLSNoTexture uiNoTexture; | 114 | gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); |
115 | 115 | ||
116 | LLColor4 top_color = mHighlightLight; | 116 | LLColor4 top_color = mHighlightLight; |
117 | LLColor4 bottom_color = mHighlightLight; | 117 | LLColor4 bottom_color = mHighlightLight; |
@@ -158,7 +158,7 @@ void LLViewBorder::drawOnePixelLines() | |||
158 | 158 | ||
159 | void LLViewBorder::drawTwoPixelLines() | 159 | void LLViewBorder::drawTwoPixelLines() |
160 | { | 160 | { |
161 | LLGLSNoTexture no_texture; | 161 | gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); |
162 | 162 | ||
163 | LLColor4 focus_color = gFocusMgr.getFocusColor(); | 163 | LLColor4 focus_color = gFocusMgr.getFocusColor(); |
164 | 164 | ||
@@ -230,7 +230,7 @@ void LLViewBorder::drawTextures() | |||
230 | 230 | ||
231 | //gGL.color4fv(UI_VERTEX_COLOR.mV); | 231 | //gGL.color4fv(UI_VERTEX_COLOR.mV); |
232 | 232 | ||
233 | //mTexture->bind(); | 233 | //gGL.getTexUnit(0)->bind(mTexture); |
234 | //glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT ); | 234 | //glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT ); |
235 | //glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT ); | 235 | //glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT ); |
236 | 236 | ||
@@ -248,7 +248,7 @@ void LLViewBorder::drawTextureTrapezoid( F32 degrees, S32 width, S32 length, F32 | |||
248 | gGL.translatef(start_x, start_y, 0.f); | 248 | gGL.translatef(start_x, start_y, 0.f); |
249 | glRotatef( degrees, 0, 0, 1 ); | 249 | glRotatef( degrees, 0, 0, 1 ); |
250 | 250 | ||
251 | gGL.begin(LLVertexBuffer::QUADS); | 251 | gGL.begin(LLRender::QUADS); |
252 | { | 252 | { |
253 | // width, width /---------\ length-width, width // | 253 | // width, width /---------\ length-width, width // |
254 | // / \ // | 254 | // / \ // |
diff --git a/linden/indra/llui/llviewborder.h b/linden/indra/llui/llviewborder.h index 2297491..7f72d54 100644 --- a/linden/indra/llui/llviewborder.h +++ b/linden/indra/llui/llviewborder.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llviewquery.cpp b/linden/indra/llui/llviewquery.cpp index b84fba5..fe3c308 100644 --- a/linden/indra/llui/llviewquery.cpp +++ b/linden/indra/llui/llviewquery.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llui/llviewquery.h b/linden/indra/llui/llviewquery.h index c76ed25..a8cec09 100644 --- a/linden/indra/llui/llviewquery.h +++ b/linden/indra/llui/llviewquery.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |