aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/llui
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra/llui')
-rw-r--r--linden/indra/llui/llalertdialog.cpp2
-rw-r--r--linden/indra/llui/llalertdialog.h2
-rw-r--r--linden/indra/llui/llbutton.cpp3
-rw-r--r--linden/indra/llui/llbutton.h2
-rw-r--r--linden/indra/llui/llcallbackmap.h2
-rw-r--r--linden/indra/llui/llcheckboxctrl.cpp2
-rw-r--r--linden/indra/llui/llcheckboxctrl.h2
-rw-r--r--linden/indra/llui/llclipboard.cpp2
-rw-r--r--linden/indra/llui/llclipboard.h2
-rw-r--r--linden/indra/llui/llcombobox.cpp2
-rw-r--r--linden/indra/llui/llcombobox.h2
-rw-r--r--linden/indra/llui/llctrlselectioninterface.cpp2
-rw-r--r--linden/indra/llui/llctrlselectioninterface.h2
-rw-r--r--linden/indra/llui/lldraghandle.cpp2
-rw-r--r--linden/indra/llui/lldraghandle.h2
-rw-r--r--linden/indra/llui/lleditmenuhandler.cpp2
-rw-r--r--linden/indra/llui/lleditmenuhandler.h2
-rw-r--r--linden/indra/llui/llfloater.cpp56
-rw-r--r--linden/indra/llui/llfloater.h7
-rw-r--r--linden/indra/llui/llfocusmgr.cpp2
-rw-r--r--linden/indra/llui/llfocusmgr.h2
-rw-r--r--linden/indra/llui/llhtmlhelp.h2
-rw-r--r--linden/indra/llui/lliconctrl.cpp2
-rw-r--r--linden/indra/llui/lliconctrl.h2
-rw-r--r--linden/indra/llui/llkeywords.cpp2
-rw-r--r--linden/indra/llui/llkeywords.h2
-rw-r--r--linden/indra/llui/lllineeditor.cpp31
-rw-r--r--linden/indra/llui/lllineeditor.h5
-rw-r--r--linden/indra/llui/llmemberlistener.h2
-rw-r--r--linden/indra/llui/llmenugl.cpp167
-rw-r--r--linden/indra/llui/llmenugl.h18
-rw-r--r--linden/indra/llui/llmodaldialog.cpp2
-rw-r--r--linden/indra/llui/llmodaldialog.h2
-rw-r--r--linden/indra/llui/llmultislider.cpp4
-rw-r--r--linden/indra/llui/llmultislider.h2
-rw-r--r--linden/indra/llui/llmultisliderctrl.cpp2
-rw-r--r--linden/indra/llui/llmultisliderctrl.h2
-rw-r--r--linden/indra/llui/llpanel.cpp2
-rw-r--r--linden/indra/llui/llpanel.h2
-rw-r--r--linden/indra/llui/llradiogroup.cpp2
-rw-r--r--linden/indra/llui/llradiogroup.h2
-rw-r--r--linden/indra/llui/llresizebar.cpp2
-rw-r--r--linden/indra/llui/llresizebar.h2
-rw-r--r--linden/indra/llui/llresizehandle.cpp2
-rw-r--r--linden/indra/llui/llresizehandle.h2
-rw-r--r--linden/indra/llui/llresmgr.cpp2
-rw-r--r--linden/indra/llui/llresmgr.h2
-rw-r--r--linden/indra/llui/llrootview.cpp2
-rw-r--r--linden/indra/llui/llrootview.h2
-rw-r--r--linden/indra/llui/llscrollbar.cpp2
-rw-r--r--linden/indra/llui/llscrollbar.h2
-rw-r--r--linden/indra/llui/llscrollcontainer.cpp4
-rw-r--r--linden/indra/llui/llscrollcontainer.h2
-rw-r--r--linden/indra/llui/llscrollingpanellist.cpp2
-rw-r--r--linden/indra/llui/llscrollingpanellist.h2
-rw-r--r--linden/indra/llui/llscrolllistctrl.cpp6
-rw-r--r--linden/indra/llui/llscrolllistctrl.h2
-rw-r--r--linden/indra/llui/llslider.cpp4
-rw-r--r--linden/indra/llui/llslider.h2
-rw-r--r--linden/indra/llui/llsliderctrl.cpp2
-rw-r--r--linden/indra/llui/llsliderctrl.h2
-rw-r--r--linden/indra/llui/llspinctrl.cpp2
-rw-r--r--linden/indra/llui/llspinctrl.h2
-rw-r--r--linden/indra/llui/llstyle.cpp2
-rw-r--r--linden/indra/llui/llstyle.h2
-rw-r--r--linden/indra/llui/lltabcontainer.cpp2
-rw-r--r--linden/indra/llui/lltabcontainer.h2
-rw-r--r--linden/indra/llui/lltabcontainervertical.cpp2
-rw-r--r--linden/indra/llui/lltabcontainervertical.h2
-rw-r--r--linden/indra/llui/lltextbox.cpp2
-rw-r--r--linden/indra/llui/lltextbox.h2
-rw-r--r--linden/indra/llui/lltexteditor.cpp16
-rw-r--r--linden/indra/llui/lltexteditor.h2
-rw-r--r--linden/indra/llui/llui.cpp126
-rw-r--r--linden/indra/llui/llui.h21
-rw-r--r--linden/indra/llui/lluiconstants.h2
-rw-r--r--linden/indra/llui/lluictrl.cpp2
-rw-r--r--linden/indra/llui/lluictrl.h2
-rw-r--r--linden/indra/llui/lluictrlfactory.cpp12
-rw-r--r--linden/indra/llui/lluictrlfactory.h2
-rw-r--r--linden/indra/llui/lluifwd.h2
-rw-r--r--linden/indra/llui/lluistring.cpp2
-rw-r--r--linden/indra/llui/lluistring.h2
-rw-r--r--linden/indra/llui/lluixmltags.h2
-rw-r--r--linden/indra/llui/llundo.cpp2
-rw-r--r--linden/indra/llui/llundo.h2
-rw-r--r--linden/indra/llui/llview.cpp162
-rw-r--r--linden/indra/llui/llview.h2
-rw-r--r--linden/indra/llui/llviewborder.cpp10
-rw-r--r--linden/indra/llui/llviewborder.h2
-rw-r--r--linden/indra/llui/llviewquery.cpp2
-rw-r--r--linden/indra/llui/llviewquery.h2
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
128LLFloater::LLFloater() : 128LLFloater::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
1301void LLFloater::closeFocusedFloater() 1323LLFloater* 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
1359void 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
779S32 LLLineEditor::nextWordPos(S32 cursorPos) const 780S32 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
1826BOOL LLLineEditor::isPartOfWord(llwchar c) { return (c == '_') || isalnum(c); }
1827
1828// static 1826// static
1829BOOL LLLineEditor::postvalidateFloat(const std::string &str) 1827BOOL 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
2316void LLLineEditor::cleanupClass() 2315void 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
1036LLMenuItemBranchGL::LLMenuItemBranchGL( const std::string& name, const std::string& label, LLMenuGL* branch, 1036LLMenuItemBranchGL::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
1053LLMenuItemBranchGL::~LLMenuItemBranchGL()
1054{
1055 LLView::deleteViewByHandle(mBranch);
1043} 1056}
1044 1057
1045// virtual 1058// virtual
1046LLView* LLMenuItemBranchGL::getChildView(const std::string& name, BOOL recurse, BOOL create_if_missing) const 1059LLView* 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
1073BOOL LLMenuItemBranchGL::handleAcceleratorKey(KEY key, MASK mask) 1090BOOL 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
1079LLXMLNodePtr LLMenuItemBranchGL::getXML(bool save_children) const 1100LLXMLNodePtr 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
1092BOOL LLMenuItemBranchGL::addToAcceleratorList(std::list<LLKeyBinding*> *listp) 1113BOOL 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
1131BOOL LLMenuItemBranchGL::handleKey(KEY key, MASK mask, BOOL called_from_parent) 1155BOOL 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)
1147BOOL LLMenuItemBranchGL::handleUnicodeChar(llwchar uni_char, BOOL called_from_parent) 1171BOOL 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 )
1201void LLMenuItemBranchGL::draw() 1230void 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
1210void LLMenuItemBranchGL::updateBranchParent(LLView* parentp) 1239void 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
1219void LLMenuItemBranchGL::onVisibilityChange( BOOL new_visibility ) 1248void 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
1228BOOL LLMenuItemBranchGL::handleKeyHere( KEY key, MASK mask ) 1257BOOL 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
1264void LLMenuItemBranchGL::openMenu() 1293void 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
1325protected: 1357protected:
1326 1358
1327public: 1359public:
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
1359LLMenuItemBranchDownGL::LLMenuItemBranchDownGL( const std::string& name, 1391LLMenuItemBranchDownGL::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:
561class LLMenuItemBranchGL : public LLMenuItemGL 562class LLMenuItemBranchGL : public LLMenuItemGL
562{ 563{
563public: 564public:
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
611private: 615private:
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
144void gl_draw_x(const LLRect& rect, const LLColor4& color) 142void 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
183void gl_rect_2d(S32 left, S32 top, S32 right, S32 bottom, BOOL filled ) 181void 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 )
254void gl_drop_shadow(S32 left, S32 top, S32 right, S32 bottom, const LLColor4 &start_color, S32 lines) 252void 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
356void gl_triangle_2d(S32 x1, S32 y1, S32 x2, S32 y2, S32 x3, S32 y3, const LLColor4& color, BOOL filled) 354void 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
376void gl_corners_2d(S32 left, S32 top, S32 right, S32 bottom, S32 length, F32 max_frac) 374void 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
1034void gl_rect_2d_simple_tex( S32 width, S32 height ) 1032void 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
1053void gl_rect_2d_simple( S32 width, S32 height ) 1051void 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,
1575void LLUI::cleanupClass() 1573void 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
1654std::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
1651std::string LLUI::locateSkin(const std::string& filename) 1677std::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
49class LLColor4; 49class LLColor4;
50class LLHtmlHelp;
51class LLImageGL;
50class LLVector3; 52class LLVector3;
51class LLVector2; 53class LLVector2;
52class LLUUID; 54class 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.
150extern BOOL gShowTextEditCursor; 145extern 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
2198LLView* LLView::findSnapEdge(S32& new_edge_val, const LLCoordGL& mouse_dir, ESnapEdge snap_edge, ESnapType snap_type, S32 threshold, S32 padding) 2078LLView* 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
112void LLViewBorder::drawOnePixelLines() 112void 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
159void LLViewBorder::drawTwoPixelLines() 159void 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