aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra')
-rw-r--r--linden/indra/cmake/CopyWinLibs.cmake171
-rw-r--r--linden/indra/cmake/OPENAL.cmake13
-rw-r--r--linden/indra/cmake/ViewerMiscLibs.cmake4
-rwxr-xr-xlinden/indra/develop.py4
-rw-r--r--linden/indra/lib/python/indra/util/llmanifest.py13
-rw-r--r--linden/indra/llprimitive/llprimitive.cpp219
-rw-r--r--linden/indra/llprimitive/llprimitive.h2
-rw-r--r--linden/indra/llui/llbutton.cpp2
-rw-r--r--linden/indra/llui/llcheckboxctrl.cpp3
-rw-r--r--linden/indra/llui/llcombobox.cpp29
-rw-r--r--linden/indra/llui/llcombobox.h1
-rw-r--r--linden/indra/llui/llfloater.cpp11
-rw-r--r--linden/indra/llui/llfloater.h1
-rw-r--r--linden/indra/llui/lliconctrl.cpp2
-rw-r--r--linden/indra/llui/lllineeditor.cpp64
-rw-r--r--linden/indra/llui/lllineeditor.h6
-rw-r--r--linden/indra/llui/llmenugl.cpp82
-rw-r--r--linden/indra/llui/llmenugl.h5
-rw-r--r--linden/indra/llui/llmultislider.cpp2
-rw-r--r--linden/indra/llui/llmultisliderctrl.cpp4
-rw-r--r--linden/indra/llui/llpanel.cpp45
-rw-r--r--linden/indra/llui/llprogressbar.cpp10
-rw-r--r--linden/indra/llui/llprogressbar.h1
-rw-r--r--linden/indra/llui/llradiogroup.cpp17
-rw-r--r--linden/indra/llui/llradiogroup.h1
-rw-r--r--linden/indra/llui/llscrollcontainer.cpp4
-rw-r--r--linden/indra/llui/llscrollingpanellist.cpp10
-rw-r--r--linden/indra/llui/llscrollingpanellist.h3
-rw-r--r--linden/indra/llui/llscrolllistctrl.cpp2
-rw-r--r--linden/indra/llui/llslider.cpp9
-rw-r--r--linden/indra/llui/llsliderctrl.cpp2
-rw-r--r--linden/indra/llui/llspinctrl.cpp2
-rw-r--r--linden/indra/llui/lltabcontainer.cpp3
-rw-r--r--linden/indra/llui/lltextbox.cpp2
-rw-r--r--linden/indra/llui/lltexteditor.cpp2
-rw-r--r--linden/indra/llui/lluictrlfactory.cpp29
-rw-r--r--linden/indra/llui/lluixmltags.h7
-rw-r--r--linden/indra/llui/llview.cpp4
-rw-r--r--linden/indra/llui/llviewborder.cpp10
-rw-r--r--linden/indra/llui/llviewborder.h1
-rw-r--r--linden/indra/llwindow/llkeyboardwin32.cpp2
-rw-r--r--linden/indra/newview/CMakeLists.txt2
-rw-r--r--linden/indra/newview/app_settings/settings.xml77
-rw-r--r--linden/indra/newview/installers/windows/installer_template.nsi4
-rw-r--r--linden/indra/newview/llagent.cpp5
-rw-r--r--linden/indra/newview/llappviewer.cpp9
-rw-r--r--linden/indra/newview/llchatbar.cpp8
-rw-r--r--linden/indra/newview/llcolorswatch.cpp5
-rw-r--r--linden/indra/newview/llfirstuse.cpp34
-rw-r--r--linden/indra/newview/llfirstuse.h2
-rw-r--r--linden/indra/newview/llhudeffectbeam.cpp5
-rw-r--r--linden/indra/newview/llhudeffectbeam.h1
-rw-r--r--linden/indra/newview/llhudeffecttrail.cpp5
-rw-r--r--linden/indra/newview/llhudeffecttrail.h1
-rw-r--r--linden/indra/newview/llhudobject.cpp21
-rw-r--r--linden/indra/newview/llhudobject.h2
-rw-r--r--linden/indra/newview/llimpanel.cpp101
-rw-r--r--linden/indra/newview/llimpanel.h5
-rw-r--r--linden/indra/newview/llinventoryview.cpp2
-rw-r--r--linden/indra/newview/lljoystickbutton.cpp26
-rw-r--r--linden/indra/newview/lljoystickbutton.h2
-rw-r--r--linden/indra/newview/llnameeditor.cpp10
-rw-r--r--linden/indra/newview/llnameeditor.h1
-rw-r--r--linden/indra/newview/llnamelistctrl.cpp2
-rw-r--r--linden/indra/newview/llpanelinput.cpp4
-rw-r--r--linden/indra/newview/llpreviewscript.cpp9
-rw-r--r--linden/indra/newview/llstartup.cpp2
-rw-r--r--linden/indra/newview/lltexturectrl.cpp2
-rw-r--r--linden/indra/newview/llviewertexteditor.cpp10
-rw-r--r--linden/indra/newview/llviewertexteditor.h1
-rw-r--r--linden/indra/newview/llvoavatar.cpp253
-rw-r--r--linden/indra/newview/llvoavatar.h11
-rw-r--r--linden/indra/newview/llwebbrowserctrl.cpp10
-rw-r--r--linden/indra/newview/llwebbrowserctrl.h1
-rw-r--r--linden/indra/newview/pipeline.cpp23
-rw-r--r--linden/indra/newview/skins/default/xui/da/floater_instant_message.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_instant_message.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/floater_about_land.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/floater_env_settings.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/floater_instant_message.xml21
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/floater_instant_message_group.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/notifications.xml18
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_login.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_preferences_chat.xml16
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_preferences_input.xml23
-rw-r--r--linden/indra/newview/skins/default/xui/es/floater_instant_message.xml100
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_instant_message.xml100
-rw-r--r--linden/indra/newview/skins/default/xui/hu/floater_instant_message.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/it/floater_instant_message.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_instant_message.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/ko/floater_instant_message.xml2
-rwxr-xr-xlinden/indra/newview/skins/default/xui/pl/floater_instant_message.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_instant_message.xml100
-rw-r--r--linden/indra/newview/skins/default/xui/ru/floater_instant_message.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/tr/floater_instant_message.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/uk/floater_instant_message.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_instant_message.xml2
-rw-r--r--linden/indra/newview/skins/silver/xui/en-us/floater_about_land.xml1040
-rw-r--r--linden/indra/newview/skins/silver/xui/en-us/floater_directory.xml701
-rw-r--r--linden/indra/newview/skins/silver/xui/en-us/floater_env_settings.xml66
-rw-r--r--linden/indra/newview/skins/silver/xui/en-us/floater_live_lsleditor.xml23
-rw-r--r--linden/indra/newview/skins/silver/xui/en-us/floater_water.xml260
-rw-r--r--linden/indra/newview/skins/silver/xui/en-us/floater_windlight_options.xml599
-rw-r--r--linden/indra/newview/skins/silver/xui/en-us/panel_status_bar.xml123
-rw-r--r--linden/indra/newview/skins/silver/xui/en-us/panel_voice_controls.xml19
-rwxr-xr-xlinden/indra/newview/viewer_manifest.py130
106 files changed, 1577 insertions, 3254 deletions
diff --git a/linden/indra/cmake/CopyWinLibs.cmake b/linden/indra/cmake/CopyWinLibs.cmake
index add94dd..8767980 100644
--- a/linden/indra/cmake/CopyWinLibs.cmake
+++ b/linden/indra/cmake/CopyWinLibs.cmake
@@ -62,6 +62,7 @@ set(debug_files
62 libogg-0.dll 62 libogg-0.dll
63 liboil-0.3-0.dll 63 liboil-0.3-0.dll
64 libopenjpeg-2.dll 64 libopenjpeg-2.dll
65 libpng12-0.dll
65 libschroedinger-1.0-0.dll 66 libschroedinger-1.0-0.dll
66 libspeex-1.dll 67 libspeex-1.dll
67 libtheora-0.dll 68 libtheora-0.dll
@@ -136,6 +137,7 @@ set(release_files
136 libogg-0.dll 137 libogg-0.dll
137 liboil-0.3-0.dll 138 liboil-0.3-0.dll
138 libopenjpeg-2.dll 139 libopenjpeg-2.dll
140 libpng12-0.dll
139 libschroedinger-1.0-0.dll 141 libschroedinger-1.0-0.dll
140 libspeex-1.dll 142 libspeex-1.dll
141 libtheora-0.dll 143 libtheora-0.dll
@@ -165,103 +167,102 @@ set(all_targets ${all_targets} ${out_targets})
165 167
166 168
167# Copy MS C runtime dlls, required for packaging. 169# Copy MS C runtime dlls, required for packaging.
170# We always need the VS 2005 redist.
168# *TODO - Adapt this to support VC9 171# *TODO - Adapt this to support VC9
169if (MSVC80) 172FIND_PATH(debug_msvc8_redist_path msvcr80d.dll
170 FIND_PATH(debug_msvc8_redist_path msvcr80d.dll 173 PATHS
171 PATHS 174 [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0\\Setup\\VC;ProductDir]/redist/Debug_NonRedist/x86/Microsoft.VC80.DebugCRT
172 [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0\\Setup\\VC;ProductDir]/redist/Debug_NonRedist/x86/Microsoft.VC80.DebugCRT 175 NO_DEFAULT_PATH
173 NO_DEFAULT_PATH 176 NO_DEFAULT_PATH
174 NO_DEFAULT_PATH 177 )
178
179if(EXISTS ${debug_msvc8_redist_path})
180 set(debug_msvc8_files
181 msvcr80d.dll
182 msvcp80d.dll
183 Microsoft.VC80.DebugCRT.manifest
175 ) 184 )
176 185
177 if(EXISTS ${debug_msvc8_redist_path}) 186 copy_if_different(
178 set(debug_msvc8_files 187 ${debug_msvc8_redist_path}
179 msvcr80d.dll 188 "${CMAKE_CURRENT_BINARY_DIR}/Debug"
180 msvcp80d.dll 189 out_targets
181 Microsoft.VC80.DebugCRT.manifest 190 ${debug_msvc8_files}
182 ) 191 )
192 set(all_targets ${all_targets} ${out_targets})
183 193
184 copy_if_different( 194 set(debug_appconfig_file ${CMAKE_CURRENT_BINARY_DIR}/Debug/${VIEWER_BINARY_NAME}.exe.config)
185 ${debug_msvc8_redist_path} 195 add_custom_command(
186 "${CMAKE_CURRENT_BINARY_DIR}/Debug" 196 OUTPUT ${debug_appconfig_file}
187 out_targets 197 COMMAND ${PYTHON_EXECUTABLE}
188 ${debug_msvc8_files} 198 ARGS
189 ) 199 ${CMAKE_CURRENT_SOURCE_DIR}/build_win32_appConfig.py
190 set(all_targets ${all_targets} ${out_targets}) 200 ${CMAKE_CURRENT_BINARY_DIR}/Debug/Microsoft.VC80.DebugCRT.manifest
201 ${CMAKE_CURRENT_SOURCE_DIR}/ImprudenceDebug.exe.config
202 ${debug_appconfig_file}
203 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/Debug/Microsoft.VC80.DebugCRT.manifest
204 COMMENT "Creating debug app config file"
205 )
191 206
192 set(debug_appconfig_file ${CMAKE_CURRENT_BINARY_DIR}/Debug/${VIEWER_BINARY_NAME}.exe.config) 207endif (EXISTS ${debug_msvc8_redist_path})
193 add_custom_command(
194 OUTPUT ${debug_appconfig_file}
195 COMMAND ${PYTHON_EXECUTABLE}
196 ARGS
197 ${CMAKE_CURRENT_SOURCE_DIR}/build_win32_appConfig.py
198 ${CMAKE_CURRENT_BINARY_DIR}/Debug/Microsoft.VC80.DebugCRT.manifest
199 ${CMAKE_CURRENT_SOURCE_DIR}/ImprudenceDebug.exe.config
200 ${debug_appconfig_file}
201 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/Debug/Microsoft.VC80.DebugCRT.manifest
202 COMMENT "Creating debug app config file"
203 )
204 208
205 endif (EXISTS ${debug_msvc8_redist_path}) 209FIND_PATH(release_msvc8_redist_path msvcr80.dll
210 PATHS
211 [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0\\Setup\\VC;ProductDir]/redist/x86/Microsoft.VC80.CRT
212 NO_DEFAULT_PATH
213 NO_DEFAULT_PATH
214 )
206 215
207 FIND_PATH(release_msvc8_redist_path msvcr80.dll 216if(EXISTS ${release_msvc8_redist_path})
208 PATHS 217 set(release_msvc8_files
209 [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0\\Setup\\VC;ProductDir]/redist/x86/Microsoft.VC80.CRT 218 msvcr80.dll
210 NO_DEFAULT_PATH 219 msvcp80.dll
211 NO_DEFAULT_PATH 220 Microsoft.VC80.CRT.manifest
212 ) 221 )
213 222
214 if(EXISTS ${release_msvc8_redist_path}) 223 copy_if_different(
215 set(release_msvc8_files 224 ${release_msvc8_redist_path}
216 msvcr80.dll 225 "${CMAKE_CURRENT_BINARY_DIR}/Release"
217 msvcp80.dll 226 out_targets
218 Microsoft.VC80.CRT.manifest 227 ${release_msvc8_files}
219 ) 228 )
220 229 set(all_targets ${all_targets} ${out_targets})
221 copy_if_different(
222 ${release_msvc8_redist_path}
223 "${CMAKE_CURRENT_BINARY_DIR}/Release"
224 out_targets
225 ${release_msvc8_files}
226 )
227 set(all_targets ${all_targets} ${out_targets})
228 230
229 copy_if_different( 231 copy_if_different(
230 ${release_msvc8_redist_path} 232 ${release_msvc8_redist_path}
231 "${CMAKE_CURRENT_BINARY_DIR}/RelWithDebInfo" 233 "${CMAKE_CURRENT_BINARY_DIR}/RelWithDebInfo"
232 out_targets 234 out_targets
233 ${release_msvc8_files} 235 ${release_msvc8_files}
234 ) 236 )
235 set(all_targets ${all_targets} ${out_targets}) 237 set(all_targets ${all_targets} ${out_targets})
236 238
237 set(release_appconfig_file ${CMAKE_CURRENT_BINARY_DIR}/Release/${VIEWER_BINARY_NAME}.exe.config) 239 set(release_appconfig_file ${CMAKE_CURRENT_BINARY_DIR}/Release/${VIEWER_BINARY_NAME}.exe.config)
238 add_custom_command( 240 add_custom_command(
239 OUTPUT ${release_appconfig_file} 241 OUTPUT ${release_appconfig_file}
240 COMMAND ${PYTHON_EXECUTABLE} 242 COMMAND ${PYTHON_EXECUTABLE}
241 ARGS 243 ARGS
242 ${CMAKE_CURRENT_SOURCE_DIR}/build_win32_appConfig.py 244 ${CMAKE_CURRENT_SOURCE_DIR}/build_win32_appConfig.py
243 ${CMAKE_CURRENT_BINARY_DIR}/Release/Microsoft.VC80.CRT.manifest 245 ${CMAKE_CURRENT_BINARY_DIR}/Release/Microsoft.VC80.CRT.manifest
244 ${CMAKE_CURRENT_SOURCE_DIR}/Imprudence.exe.config 246 ${CMAKE_CURRENT_SOURCE_DIR}/Imprudence.exe.config
245 ${release_appconfig_file} 247 ${release_appconfig_file}
246 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/Release/Microsoft.VC80.CRT.manifest 248 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/Release/Microsoft.VC80.CRT.manifest
247 COMMENT "Creating release app config file" 249 COMMENT "Creating release app config file"
248 ) 250 )
249 251
250 set(relwithdebinfo_appconfig_file ${CMAKE_CURRENT_BINARY_DIR}/RelWithDebInfo/${VIEWER_BINARY_NAME}.exe.config) 252 set(relwithdebinfo_appconfig_file ${CMAKE_CURRENT_BINARY_DIR}/RelWithDebInfo/${VIEWER_BINARY_NAME}.exe.config)
251 add_custom_command( 253 add_custom_command(
252 OUTPUT ${relwithdebinfo_appconfig_file} 254 OUTPUT ${relwithdebinfo_appconfig_file}
253 COMMAND ${PYTHON_EXECUTABLE} 255 COMMAND ${PYTHON_EXECUTABLE}
254 ARGS 256 ARGS
255 ${CMAKE_CURRENT_SOURCE_DIR}/build_win32_appConfig.py 257 ${CMAKE_CURRENT_SOURCE_DIR}/build_win32_appConfig.py
256 ${CMAKE_CURRENT_BINARY_DIR}/RelWithDebInfo/Microsoft.VC80.CRT.manifest 258 ${CMAKE_CURRENT_BINARY_DIR}/RelWithDebInfo/Microsoft.VC80.CRT.manifest
257 ${CMAKE_CURRENT_SOURCE_DIR}/Imprudence.exe.config 259 ${CMAKE_CURRENT_SOURCE_DIR}/Imprudence.exe.config
258 ${relwithdebinfo_appconfig_file} 260 ${relwithdebinfo_appconfig_file}
259 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/RelWithDebInfo/Microsoft.VC80.CRT.manifest 261 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/RelWithDebInfo/Microsoft.VC80.CRT.manifest
260 COMMENT "Creating relwithdebinfo app config file" 262 COMMENT "Creating relwithdebinfo app config file"
261 ) 263 )
262 264
263 endif (EXISTS ${release_msvc8_redist_path}) 265endif (EXISTS ${release_msvc8_redist_path})
264endif (MSVC80)
265 266
266add_custom_target(copy_win_libs ALL 267add_custom_target(copy_win_libs ALL
267 DEPENDS 268 DEPENDS
diff --git a/linden/indra/cmake/OPENAL.cmake b/linden/indra/cmake/OPENAL.cmake
index 71cbd67..60abef3 100644
--- a/linden/indra/cmake/OPENAL.cmake
+++ b/linden/indra/cmake/OPENAL.cmake
@@ -14,10 +14,11 @@ if (OPENAL)
14 use_prebuilt_binary(openal) 14 use_prebuilt_binary(openal)
15 15
16 if (WINDOWS) 16 if (WINDOWS)
17 find_library(OPENAL_LIB 17 set(OPENAL_LIB
18 NAMES openal32 18 optimized ${ARCH_PREBUILT_DIRS_RELEASE}/openal32.lib
19 PATHS ${CMAKE_SOURCE_DIR}/../libraries/i686-win32/lib/release 19 debug ${ARCH_PREBUILT_DIRS_DEBUG}/openal32.lib
20 ) 20 )
21
21 elseif (DARWIN) 22 elseif (DARWIN)
22 # Look for for system's OpenAL.framework 23 # Look for for system's OpenAL.framework
23 find_library(OPENAL_LIB 24 find_library(OPENAL_LIB
@@ -59,9 +60,9 @@ if (OPENAL)
59 # ALUT_LIB 60 # ALUT_LIB
60 61
61 if (WINDOWS) 62 if (WINDOWS)
62 find_library(ALUT_LIB 63 set(ALUT_LIB
63 NAMES alut freealut 64 optimized ${ARCH_PREBUILT_DIRS_RELEASE}/alut.lib
64 PATHS ${CMAKE_SOURCE_DIR}/../libraries/i686-win32/lib/release 65 debug ${ARCH_PREBUILT_DIRS_DEBUG}/alut.lib
65 ) 66 )
66 elseif (DARWIN) 67 elseif (DARWIN)
67 find_library( ALUT_LIB 68 find_library( ALUT_LIB
diff --git a/linden/indra/cmake/ViewerMiscLibs.cmake b/linden/indra/cmake/ViewerMiscLibs.cmake
index 2a8abda..7bd306b 100644
--- a/linden/indra/cmake/ViewerMiscLibs.cmake
+++ b/linden/indra/cmake/ViewerMiscLibs.cmake
@@ -7,3 +7,7 @@ if (NOT STANDALONE)
7 use_prebuilt_binary(fontconfig) 7 use_prebuilt_binary(fontconfig)
8endif(NOT STANDALONE) 8endif(NOT STANDALONE)
9 9
10if (WINDOWS)
11 use_prebuilt_binary(dbghelp)
12endif (WINDOWS)
13
diff --git a/linden/indra/develop.py b/linden/indra/develop.py
index 8ea435c..31dcb6a 100755
--- a/linden/indra/develop.py
+++ b/linden/indra/develop.py
@@ -520,12 +520,14 @@ class WindowsSetup(PlatformSetup):
520 unattended=self.unattended, 520 unattended=self.unattended,
521 project_name=self.project_name 521 project_name=self.project_name
522 ) 522 )
523 #if simple: 523 # default to packaging enabled
524 # if simple:
524 # return 'cmake %(opts)s "%(dir)s"' % args 525 # return 'cmake %(opts)s "%(dir)s"' % args
525 return ('cmake -G "%(generator)s" ' 526 return ('cmake -G "%(generator)s" '
526 '-DSTANDALONE:BOOL=%(standalone)s ' 527 '-DSTANDALONE:BOOL=%(standalone)s '
527 '-DUNATTENDED:BOOL=%(unattended)s ' 528 '-DUNATTENDED:BOOL=%(unattended)s '
528 '-DROOT_PROJECT_NAME:STRING=%(project_name)s ' 529 '-DROOT_PROJECT_NAME:STRING=%(project_name)s '
530 '-DPACKAGE:BOOL=ON '
529 '%(opts)s "%(dir)s"' % args) 531 '%(opts)s "%(dir)s"' % args)
530 532
531 def find_visual_studio(self, gen=None): 533 def find_visual_studio(self, gen=None):
diff --git a/linden/indra/lib/python/indra/util/llmanifest.py b/linden/indra/lib/python/indra/util/llmanifest.py
index 59c84e5..369cc81 100644
--- a/linden/indra/lib/python/indra/util/llmanifest.py
+++ b/linden/indra/lib/python/indra/util/llmanifest.py
@@ -81,10 +81,11 @@ def get_default_version(srctree):
81 for p in paths: 81 for p in paths:
82 if os.path.exists(p): 82 if os.path.exists(p):
83 contents = open(p, 'r').read() 83 contents = open(p, 'r').read()
84 major = re.search("LL_VERSION_MAJOR\s=\s([0-9]+)", contents).group(1) 84 major = re.search("IMP_VERSION_MAJOR\s=\s([0-9]+)", contents).group(1)
85 minor = re.search("LL_VERSION_MINOR\s=\s([0-9]+)", contents).group(1) 85 minor = re.search("IMP_VERSION_MINOR\s=\s([0-9]+)", contents).group(1)
86 patch = re.search("LL_VERSION_PATCH\s=\s([0-9]+)", contents).group(1) 86 patch = re.search("IMP_VERSION_PATCH\s=\s([0-9]+)", contents).group(1)
87 build = re.search("LL_VERSION_BUILD\s=\s([0-9]+)", contents).group(1) 87 #build = re.search("LL_VERSION_BUILD\s=\s([0-9]+)", contents).group(1)
88 build = re.search('const char \* const IMP_VERSION_TEST = "(.*)";', contents).group(1)
88 return major, minor, patch, build 89 return major, minor, patch, build
89 90
90def get_channel(srctree): 91def get_channel(srctree):
@@ -98,7 +99,7 @@ def get_channel(srctree):
98 99
99 100
100DEFAULT_SRCTREE = os.path.dirname(sys.argv[0]) 101DEFAULT_SRCTREE = os.path.dirname(sys.argv[0])
101DEFAULT_CHANNEL = 'Second Life Release' 102DEFAULT_CHANNEL = 'Imprudence'
102 103
103ARGUMENTS=[ 104ARGUMENTS=[
104 dict(name='actions', 105 dict(name='actions',
@@ -156,7 +157,7 @@ ARGUMENTS=[
156 for use by a .bat file.""", 157 for use by a .bat file.""",
157 default=None), 158 default=None),
158 dict(name='version', 159 dict(name='version',
159 description="""This specifies the version of Second Life that is 160 description="""This specifies the version of Imprudence that is
160 being packaged up.""", 161 being packaged up.""",
161 default=get_default_version) 162 default=get_default_version)
162 ] 163 ]
diff --git a/linden/indra/llprimitive/llprimitive.cpp b/linden/indra/llprimitive/llprimitive.cpp
index 6fc0a55..fb3b540 100644
--- a/linden/indra/llprimitive/llprimitive.cpp
+++ b/linden/indra/llprimitive/llprimitive.cpp
@@ -958,16 +958,213 @@ BOOL LLPrimitive::setVolume(const LLVolumeParams &volume_params, const S32 detai
958 958
959 U32 old_face_mask = mVolumep->mFaceMask; 959 U32 old_face_mask = mVolumep->mFaceMask;
960 960
961 S32 face_bit = 0;
962 S32 cur_mask = 0;
963
964 // grab copies of the old faces so we can determine the TE mappings...
965 std::vector<LLProfile::Face> old_faces; // list of old faces for remapping texture entries
966 LLTextureEntry old_tes[9];
967
968 for (S32 face = 0; face < mVolumep->getNumFaces(); face++)
969 {
970 old_faces.push_back(mVolumep->getProfile().mFaces[face]);
971 }
972
973 for (face_bit = 0; face_bit < 9; face_bit++)
974 {
975 cur_mask = 0x1 << face_bit;
976 if (old_face_mask & cur_mask)
977 {
978 S32 te_index = face_index_from_id(cur_mask, old_faces);
979 old_tes[face_bit] = *getTE(te_index);
980 //llinfos << face_bit << ":" << te_index << ":" << old_tes[face_bit].getID() << llendl;
981 }
982 }
983
984
961 // build the new object 985 // build the new object
962 sVolumeManager->unrefVolume(mVolumep); 986 sVolumeManager->unrefVolume(mVolumep);
963 mVolumep = volumep; 987 mVolumep = volumep;
964 988
965 U32 new_face_mask = mVolumep->mFaceMask; 989 U32 new_face_mask = mVolumep->mFaceMask;
966 if (old_face_mask != new_face_mask) 990 S32 i;
991
992 /*
993 std::string old_mask_string;
994 for (i = 0; i < 9; i++)
995 {
996 if (old_face_mask & (1 << i))
997 {
998 old_mask_string.append("1");
999 }
1000 else
1001 {
1002 old_mask_string.append("0");
1003 }
1004 }
1005 std::string new_mask_string;
1006 for (i = 0; i < 9; i++)
1007 {
1008 if (new_face_mask & (1 << i))
1009 {
1010 new_mask_string.append("1");
1011 }
1012 else
1013 {
1014 new_mask_string.append("0");
1015 }
1016 }
1017
1018 llinfos << "old mask: " << old_mask_string << llendl;
1019 llinfos << "new mask: " << new_mask_string << llendl;
1020 */
1021
1022
1023 if (old_face_mask == new_face_mask)
967 { 1024 {
1025 // nothing to do
1026 return TRUE;
1027 }
1028
1029 if (mVolumep->getNumFaces() == 0 && new_face_mask != 0)
1030 {
1031 llwarns << "Object with 0 faces found...INCORRECT!" << llendl;
968 setNumTEs(mVolumep->getNumFaces()); 1032 setNumTEs(mVolumep->getNumFaces());
969 } 1033 return TRUE;
970 1034 }
1035
1036
1037 S32 face_mapping[9];
1038 for (face_bit = 0; face_bit < 9; face_bit++)
1039 {
1040 face_mapping[face_bit] = face_bit;
1041 }
1042
1043 // Generate the face-type mappings
1044 for (face_bit = 0; face_bit < 9; face_bit++)
1045 {
1046 cur_mask = 0x1 << face_bit;
1047 if (!(new_face_mask & cur_mask))
1048 {
1049 // Face doesn't exist in new map.
1050 face_mapping[face_bit] = -1;
1051 continue;
1052 }
1053 else if (old_face_mask & cur_mask)
1054 {
1055 // Face exists in new and old map.
1056 face_mapping[face_bit] = face_bit;
1057 continue;
1058 }
1059
1060 // OK, how we've got a mismatch, where we have to fill a new face with one from
1061 // the old face.
1062 if (cur_mask & (LL_FACE_PATH_BEGIN | LL_FACE_PATH_END | LL_FACE_INNER_SIDE))
1063 {
1064 // It's a top/bottom/hollow interior face.
1065 if (old_face_mask & LL_FACE_PATH_END)
1066 {
1067 face_mapping[face_bit] = 1;
1068 continue;
1069 }
1070 else
1071 {
1072 S32 cur_outer_mask = LL_FACE_OUTER_SIDE_0;
1073 for (i = 0; i < 4; i++)
1074 {
1075 if (old_face_mask & cur_outer_mask)
1076 {
1077 face_mapping[face_bit] = 5 + i;
1078 break;
1079 }
1080 cur_outer_mask <<= 1;
1081 }
1082 if (i == 4)
1083 {
1084 llwarns << "No path end or outer face in volume!" << llendl;
1085 }
1086 continue;
1087 }
1088 }
1089
1090 if (cur_mask & (LL_FACE_PROFILE_BEGIN | LL_FACE_PROFILE_END))
1091 {
1092 // A cut slice. Use the hollow interior if we have it.
1093 if (old_face_mask & LL_FACE_INNER_SIDE)
1094 {
1095 face_mapping[face_bit] = 2;
1096 continue;
1097 }
1098
1099 // No interior, use the bottom face.
1100 // Could figure out which of the outer faces was nearest, but that would be harder.
1101 if (old_face_mask & LL_FACE_PATH_END)
1102 {
1103 face_mapping[face_bit] = 1;
1104 continue;
1105 }
1106 else
1107 {
1108 S32 cur_outer_mask = LL_FACE_OUTER_SIDE_0;
1109 for (i = 0; i < 4; i++)
1110 {
1111 if (old_face_mask & cur_outer_mask)
1112 {
1113 face_mapping[face_bit] = 5 + i;
1114 break;
1115 }
1116 cur_outer_mask <<= 1;
1117 }
1118 if (i == 4)
1119 {
1120 llwarns << "No path end or outer face in volume!" << llendl;
1121 }
1122 continue;
1123 }
1124 }
1125
1126 // OK, the face that's missing is an outer face...
1127 // Pull from the nearest adjacent outer face (there's always guaranteed to be one...
1128 S32 cur_outer = face_bit - 5;
1129 S32 min_dist = 5;
1130 S32 min_outer_bit = -1;
1131 S32 i;
1132 for (i = 0; i < 4; i++)
1133 {
1134 if (old_face_mask & (LL_FACE_OUTER_SIDE_0 << i))
1135 {
1136 S32 dist = abs(i - cur_outer);
1137 if (dist < min_dist)
1138 {
1139 min_dist = dist;
1140 min_outer_bit = i + 5;
1141 }
1142 }
1143 }
1144 if (-1 == min_outer_bit)
1145 {
1146 llinfos << (LLVolume *)mVolumep << llendl;
1147 llwarns << "Bad! No outer faces, impossible!" << llendl;
1148 }
1149 face_mapping[face_bit] = min_outer_bit;
1150 }
1151
1152
1153 setNumTEs(mVolumep->getNumFaces());
1154 for (face_bit = 0; face_bit < 9; face_bit++)
1155 {
1156 cur_mask = 0x1 << face_bit;
1157 if (new_face_mask & cur_mask)
1158 {
1159 if (-1 == face_mapping[face_bit])
1160 {
1161 llwarns << "No mapping from old face to new face!" << llendl;
1162 }
1163
1164 S32 te_num = face_index_from_id(cur_mask, mVolumep->getProfile().mFaces);
1165 setTE(te_num, old_tes[face_mapping[face_bit]]);
1166 }
1167 }
971 return TRUE; 1168 return TRUE;
972} 1169}
973 1170
@@ -1135,7 +1332,7 @@ S32 LLPrimitive::unpackTEField(U8 *cur_ptr, U8 *buffer_end, U8 *data_ptr, U8 dat
1135// Pack information about all texture entries into container: 1332// Pack information about all texture entries into container:
1136// { TextureEntry Variable 2 } 1333// { TextureEntry Variable 2 }
1137// Includes information about image ID, color, scale S,T, offset S,T and rotation 1334// Includes information about image ID, color, scale S,T, offset S,T and rotation
1138BOOL LLPrimitive::packTEMessage(LLMessageSystem *mesgsys) const 1335BOOL LLPrimitive::packTEMessage(LLMessageSystem *mesgsys, bool shield) const
1139{ 1336{
1140 const U32 MAX_TES = 32; 1337 const U32 MAX_TES = 32;
1141 1338
@@ -1164,7 +1361,17 @@ BOOL LLPrimitive::packTEMessage(LLMessageSystem *mesgsys) const
1164 for (face_index = 0; face_index <= last_face_index; face_index++) 1361 for (face_index = 0; face_index <= last_face_index; face_index++)
1165 { 1362 {
1166 // Directly sending image_ids is not safe! 1363 // Directly sending image_ids is not safe!
1167 memcpy(&image_ids[face_index*16],getTE(face_index)->getID().mData,16); /* Flawfinder: ignore */ 1364 if(shield && !(face_index == 4 || face_index == 8 || face_index == 9 || face_index == 10 || face_index == 11 || face_index == 18 || face_index == 19))
1365 {
1366 S8 f_f_i = face_index;
1367 if(face_index == 0)f_f_i = 64;
1368 if(face_index == 5)f_f_i = 9;
1369 if(face_index == 6)f_f_i = 10;
1370 if(face_index == 3)f_f_i = 11;
1371 if(f_f_i == face_index)memcpy(&image_ids[face_index*16],LLUUID("c228d1cf-4b5d-4ba8-84f4-899a0796aa97").mData,16);
1372 else if(f_f_i == 64)memcpy(&image_ids[face_index*16],LLUUID("cc7a030f-282f-c165-44d2-b5ee572e72bf").mData,16);
1373 else memcpy(&image_ids[face_index*16],LLUUID("4934f1bf-3b1f-cf4f-dbdf-a72550d05bc6").mData,16);//grey block
1374 }else memcpy(&image_ids[face_index*16],getTE(face_index)->getID().mData,16); /* Flawfinder: ignore */
1168 1375
1169 // Cast LLColor4 to LLColor4U 1376 // Cast LLColor4 to LLColor4U
1170 coloru.setVec( getTE(face_index)->getColor() ); 1377 coloru.setVec( getTE(face_index)->getColor() );
diff --git a/linden/indra/llprimitive/llprimitive.h b/linden/indra/llprimitive/llprimitive.h
index cc86f5b..cf9ff0f 100644
--- a/linden/indra/llprimitive/llprimitive.h
+++ b/linden/indra/llprimitive/llprimitive.h
@@ -339,7 +339,7 @@ public:
339 void copyTEs(const LLPrimitive *primitive); 339 void copyTEs(const LLPrimitive *primitive);
340 S32 packTEField(U8 *cur_ptr, U8 *data_ptr, U8 data_size, U8 last_face_index, EMsgVariableType type) const; 340 S32 packTEField(U8 *cur_ptr, U8 *data_ptr, U8 data_size, U8 last_face_index, EMsgVariableType type) const;
341 S32 unpackTEField(U8 *cur_ptr, U8 *buffer_end, U8 *data_ptr, U8 data_size, U8 face_count, EMsgVariableType type); 341 S32 unpackTEField(U8 *cur_ptr, U8 *buffer_end, U8 *data_ptr, U8 data_size, U8 face_count, EMsgVariableType type);
342 BOOL packTEMessage(LLMessageSystem *mesgsys) const; 342 BOOL packTEMessage(LLMessageSystem *mesgsys, bool shield = false) const;
343 BOOL packTEMessage(LLDataPacker &dp) const; 343 BOOL packTEMessage(LLDataPacker &dp) const;
344 S32 unpackTEMessage(LLMessageSystem *mesgsys, char *block_name); 344 S32 unpackTEMessage(LLMessageSystem *mesgsys, char *block_name);
345 S32 unpackTEMessage(LLMessageSystem *mesgsys, char *block_name, const S32 block_num); // Variable num of blocks 345 S32 unpackTEMessage(LLMessageSystem *mesgsys, char *block_name, const S32 block_num); // Variable num of blocks
diff --git a/linden/indra/llui/llbutton.cpp b/linden/indra/llui/llbutton.cpp
index 2c2c1c2..1a6c705 100644
--- a/linden/indra/llui/llbutton.cpp
+++ b/linden/indra/llui/llbutton.cpp
@@ -980,6 +980,8 @@ LLXMLNodePtr LLButton::getXML(bool save_children) const
980{ 980{
981 LLXMLNodePtr node = LLUICtrl::getXML(); 981 LLXMLNodePtr node = LLUICtrl::getXML();
982 982
983 node->setName(LL_BUTTON_TAG);
984
983 node->createChild("label", TRUE)->setStringValue(getLabelUnselected()); 985 node->createChild("label", TRUE)->setStringValue(getLabelUnselected());
984 node->createChild("label_selected", TRUE)->setStringValue(getLabelSelected()); 986 node->createChild("label_selected", TRUE)->setStringValue(getLabelSelected());
985 node->createChild("font", TRUE)->setStringValue(LLFontGL::nameFromFont(mGLFont)); 987 node->createChild("font", TRUE)->setStringValue(LLFontGL::nameFromFont(mGLFont));
diff --git a/linden/indra/llui/llcheckboxctrl.cpp b/linden/indra/llui/llcheckboxctrl.cpp
index eda9467..c1daee7 100644
--- a/linden/indra/llui/llcheckboxctrl.cpp
+++ b/linden/indra/llui/llcheckboxctrl.cpp
@@ -298,12 +298,13 @@ void LLCheckBoxCtrl::resetDirty()
298} 298}
299 299
300 300
301
302// virtual 301// virtual
303LLXMLNodePtr LLCheckBoxCtrl::getXML(bool save_children) const 302LLXMLNodePtr LLCheckBoxCtrl::getXML(bool save_children) const
304{ 303{
305 LLXMLNodePtr node = LLUICtrl::getXML(); 304 LLXMLNodePtr node = LLUICtrl::getXML();
306 305
306 node->setName(LL_CHECK_BOX_CTRL_TAG);
307
307 node->createChild("label", TRUE)->setStringValue(mLabel->getText()); 308 node->createChild("label", TRUE)->setStringValue(mLabel->getText());
308 309
309 std::string control_name = mButton->getControlName(); 310 std::string control_name = mButton->getControlName();
diff --git a/linden/indra/llui/llcombobox.cpp b/linden/indra/llui/llcombobox.cpp
index cbc67fe..ce75f03 100644
--- a/linden/indra/llui/llcombobox.cpp
+++ b/linden/indra/llui/llcombobox.cpp
@@ -120,6 +120,8 @@ LLXMLNodePtr LLComboBox::getXML(bool save_children) const
120{ 120{
121 LLXMLNodePtr node = LLUICtrl::getXML(); 121 LLXMLNodePtr node = LLUICtrl::getXML();
122 122
123 node->setName(LL_COMBO_BOX_TAG);
124
123 // Attributes 125 // Attributes
124 126
125 node->createChild("allow_text_entry", TRUE)->setBoolValue(mAllowTextEntry); 127 node->createChild("allow_text_entry", TRUE)->setBoolValue(mAllowTextEntry);
@@ -1172,6 +1174,33 @@ LLFlyoutButton::LLFlyoutButton(
1172 updateLayout(); 1174 updateLayout();
1173} 1175}
1174 1176
1177// virtual
1178LLXMLNodePtr LLFlyoutButton::getXML(bool save_children) const
1179{
1180 LLXMLNodePtr node = LLComboBox::getXML();
1181
1182 node->setName(LL_FLYOUT_BUTTON_TAG);
1183
1184 LLXMLNodePtr child;
1185
1186 for (child = node->getFirstChild(); child.notNull();)
1187 {
1188 if (child->hasName("combo_item"))
1189 {
1190 child->setName(LL_FLYOUT_BUTTON_ITEM_TAG);
1191
1192 //setName does a delete and add, so we have to start over
1193 child = node->getFirstChild();
1194 }
1195 else
1196 {
1197 child = child->getNextSibling();
1198 }
1199 }
1200
1201 return node;
1202}
1203
1175//static 1204//static
1176LLView* LLFlyoutButton::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory) 1205LLView* LLFlyoutButton::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
1177{ 1206{
diff --git a/linden/indra/llui/llcombobox.h b/linden/indra/llui/llcombobox.h
index 33e1baa..95ad17a 100644
--- a/linden/indra/llui/llcombobox.h
+++ b/linden/indra/llui/llcombobox.h
@@ -217,6 +217,7 @@ public:
217 217
218 void setToggleState(BOOL state); 218 void setToggleState(BOOL state);
219 219
220 virtual LLXMLNodePtr getXML(bool save_children = true) const;
220 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory); 221 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory);
221 static void onActionButtonClick(void *userdata); 222 static void onActionButtonClick(void *userdata);
222 static void onSelectAction(LLUICtrl* ctrl, void *userdata); 223 static void onSelectAction(LLUICtrl* ctrl, void *userdata);
diff --git a/linden/indra/llui/llfloater.cpp b/linden/indra/llui/llfloater.cpp
index e667bd4..5c46d54 100644
--- a/linden/indra/llui/llfloater.cpp
+++ b/linden/indra/llui/llfloater.cpp
@@ -2527,6 +2527,15 @@ LLMultiFloater::LLMultiFloater(
2527 2527
2528} 2528}
2529 2529
2530// virtual
2531LLXMLNodePtr LLMultiFloater::getXML(bool save_children) const
2532{
2533 LLXMLNodePtr node = LLFloater::getXML();
2534
2535 node->setName(LL_MULTI_FLOATER_TAG);
2536
2537 return node;
2538}
2530 2539
2531void LLMultiFloater::open() /* Flawfinder: ignore */ 2540void LLMultiFloater::open() /* Flawfinder: ignore */
2532{ 2541{
@@ -2950,6 +2959,8 @@ LLXMLNodePtr LLFloater::getXML(bool save_children) const
2950{ 2959{
2951 LLXMLNodePtr node = LLPanel::getXML(); 2960 LLXMLNodePtr node = LLPanel::getXML();
2952 2961
2962 node->setName(LL_FLOATER_TAG);
2963
2953 node->createChild("title", TRUE)->setStringValue(getCurrentTitle()); 2964 node->createChild("title", TRUE)->setStringValue(getCurrentTitle());
2954 2965
2955 node->createChild("can_resize", TRUE)->setBoolValue(isResizable()); 2966 node->createChild("can_resize", TRUE)->setBoolValue(isResizable());
diff --git a/linden/indra/llui/llfloater.h b/linden/indra/llui/llfloater.h
index 4906e85..fa69258 100644
--- a/linden/indra/llui/llfloater.h
+++ b/linden/indra/llui/llfloater.h
@@ -400,6 +400,7 @@ public:
400 virtual ~LLMultiFloater() {}; 400 virtual ~LLMultiFloater() {};
401 401
402 virtual BOOL postBuild(); 402 virtual BOOL postBuild();
403 virtual LLXMLNodePtr getXML(bool save_children = true) const;
403 /*virtual*/ void open(); /* Flawfinder: ignore */ 404 /*virtual*/ void open(); /* Flawfinder: ignore */
404 /*virtual*/ void onClose(bool app_quitting); 405 /*virtual*/ void onClose(bool app_quitting);
405 /*virtual*/ void draw(); 406 /*virtual*/ void draw();
diff --git a/linden/indra/llui/lliconctrl.cpp b/linden/indra/llui/lliconctrl.cpp
index cb3b2a3..e73c8fe 100644
--- a/linden/indra/llui/lliconctrl.cpp
+++ b/linden/indra/llui/lliconctrl.cpp
@@ -137,6 +137,8 @@ LLXMLNodePtr LLIconCtrl::getXML(bool save_children) const
137{ 137{
138 LLXMLNodePtr node = LLUICtrl::getXML(); 138 LLXMLNodePtr node = LLUICtrl::getXML();
139 139
140 node->setName(LL_ICON_CTRL_TAG);
141
140 if (mImageName != "") 142 if (mImageName != "")
141 { 143 {
142 node->createChild("image_name", TRUE)->setStringValue(mImageName); 144 node->createChild("image_name", TRUE)->setStringValue(mImageName);
diff --git a/linden/indra/llui/lllineeditor.cpp b/linden/indra/llui/lllineeditor.cpp
index fc33dcf..e5e193f 100644
--- a/linden/indra/llui/lllineeditor.cpp
+++ b/linden/indra/llui/lllineeditor.cpp
@@ -135,18 +135,14 @@ LLLineEditor::LLLineEditor(const std::string& name, const LLRect& rect,
135 mSelectAllonCommit( TRUE ), 135 mSelectAllonCommit( TRUE ),
136 mPassDelete(FALSE), 136 mPassDelete(FALSE),
137 mReadOnly(FALSE), 137 mReadOnly(FALSE),
138 mHaveHistory(FALSE),
138 mImage( sImage ), 139 mImage( sImage ),
139 mReplaceNewlinesWithSpaces( TRUE ) 140 mReplaceNewlinesWithSpaces( TRUE )
140{ 141{
141 llassert( max_length_bytes > 0 ); 142 llassert( max_length_bytes > 0 );
142 143
143 // line history support: 144 // Initialize current history line iterator
144 // - initialize line history list 145 mCurrentHistoryLine = mLineHistory.begin();
145 mLineHistory.insert( mLineHistory.end(), "" );
146 // - disable line history by default
147 mHaveHistory = FALSE;
148 // - reset current history line pointer
149 mCurrentHistoryLine = 0;
150 146
151 if (font) 147 if (font)
152 { 148 {
@@ -244,16 +240,31 @@ void LLLineEditor::updateHistory()
244 // reset current history line number. 240 // reset current history line number.
245 // Be sure only to remember lines that are not empty and that are 241 // Be sure only to remember lines that are not empty and that are
246 // different from the last on the list. 242 // different from the last on the list.
247 if( mHaveHistory && mText.length() && ( mLineHistory.empty() || getText() != mLineHistory.back() ) ) 243 if( mHaveHistory && getLength() )
248 { 244 {
249 // discard possible empty line at the end of the history 245 if( !mLineHistory.empty() )
250 // inserted by setText()
251 if( !mLineHistory.back().length() )
252 { 246 {
253 mLineHistory.pop_back(); 247 // When not empty, last line of history should always be blank.
248 if( mLineHistory.back().empty() )
249 {
250 // discard the empty line
251 mLineHistory.pop_back();
252 }
253 else
254 {
255 LL_WARNS("") << "Last line of history was not blank." << LL_ENDL;
256 }
254 } 257 }
255 mLineHistory.insert( mLineHistory.end(), getText() ); 258
256 mCurrentHistoryLine = mLineHistory.size() - 1; 259 // Add text to history, ignoring duplicates
260 if( mLineHistory.empty() || getText() != mLineHistory.back() )
261 {
262 mLineHistory.push_back( getText() );
263 }
264
265 // Restore the blank line and set mCurrentHistoryLine to point at it
266 mLineHistory.push_back( "" );
267 mCurrentHistoryLine = mLineHistory.end() - 1;
257 } 268 }
258} 269}
259 270
@@ -324,11 +335,8 @@ void LLLineEditor::setText(const LLStringExplicit &new_text)
324 } 335 }
325 setCursor(llmin((S32)mText.length(), getCursor())); 336 setCursor(llmin((S32)mText.length(), getCursor()));
326 337
327 // Newly set text goes always in the last line of history.
328 // Possible empty strings (as with chat line) will be deleted later.
329 mLineHistory.insert( mLineHistory.end(), new_text );
330 // Set current history line to end of history. 338 // Set current history line to end of history.
331 mCurrentHistoryLine = mLineHistory.size() - 1; 339 mCurrentHistoryLine = mLineHistory.end() - 1;
332 340
333 mPrevText = mText; 341 mPrevText = mText;
334} 342}
@@ -1200,9 +1208,9 @@ BOOL LLLineEditor::handleSpecialKey(KEY key, MASK mask)
1200 case KEY_UP: 1208 case KEY_UP:
1201 if( mHaveHistory && ( MASK_CONTROL == mask ) ) 1209 if( mHaveHistory && ( MASK_CONTROL == mask ) )
1202 { 1210 {
1203 if( mCurrentHistoryLine > 0 ) 1211 if( mCurrentHistoryLine > mLineHistory.begin() )
1204 { 1212 {
1205 mText.assign( mLineHistory[ --mCurrentHistoryLine ] ); 1213 mText.assign( *(--mCurrentHistoryLine) );
1206 setCursor(llmin((S32)mText.length(), getCursor())); 1214 setCursor(llmin((S32)mText.length(), getCursor()));
1207 } 1215 }
1208 else 1216 else
@@ -1217,9 +1225,9 @@ BOOL LLLineEditor::handleSpecialKey(KEY key, MASK mask)
1217 case KEY_DOWN: 1225 case KEY_DOWN:
1218 if( mHaveHistory && ( MASK_CONTROL == mask ) ) 1226 if( mHaveHistory && ( MASK_CONTROL == mask ) )
1219 { 1227 {
1220 if( !mLineHistory.empty() && mCurrentHistoryLine < mLineHistory.size() - 1 ) 1228 if( !mLineHistory.empty() && mCurrentHistoryLine < mLineHistory.end() - 1 )
1221 { 1229 {
1222 mText.assign( mLineHistory[ ++mCurrentHistoryLine ] ); 1230 mText.assign( *(++mCurrentHistoryLine) );
1223 setCursor(llmin((S32)mText.length(), getCursor())); 1231 setCursor(llmin((S32)mText.length(), getCursor()));
1224 } 1232 }
1225 else 1233 else
@@ -2202,6 +2210,8 @@ LLXMLNodePtr LLLineEditor::getXML(bool save_children) const
2202{ 2210{
2203 LLXMLNodePtr node = LLUICtrl::getXML(); 2211 LLXMLNodePtr node = LLUICtrl::getXML();
2204 2212
2213 node->setName(LL_LINE_EDITOR_TAG);
2214
2205 node->createChild("max_length", TRUE)->setIntValue(mMaxLengthBytes); 2215 node->createChild("max_length", TRUE)->setIntValue(mMaxLengthBytes);
2206 2216
2207 node->createChild("font", TRUE)->setStringValue(LLFontGL::nameFromFont(mGLFont)); 2217 node->createChild("font", TRUE)->setStringValue(LLFontGL::nameFromFont(mGLFont));
@@ -2791,6 +2801,16 @@ void LLSearchEditor::onClearSearch(void* user_data)
2791 } 2801 }
2792} 2802}
2793 2803
2804// virtual
2805LLXMLNodePtr LLSearchEditor::getXML(bool save_children) const
2806{
2807 LLXMLNodePtr node = LLUICtrl::getXML();
2808
2809 node->setName(LL_SEARCH_EDITOR_TAG);
2810
2811 return node;
2812}
2813
2794// static 2814// static
2795LLView* LLSearchEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory) 2815LLView* LLSearchEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
2796{ 2816{
diff --git a/linden/indra/llui/lllineeditor.h b/linden/indra/llui/lllineeditor.h
index a670b21..fc1b75f 100644
--- a/linden/indra/llui/lllineeditor.h
+++ b/linden/indra/llui/lllineeditor.h
@@ -259,8 +259,9 @@ protected:
259 259
260 // line history support: 260 // line history support:
261 BOOL mHaveHistory; // flag for enabled line history 261 BOOL mHaveHistory; // flag for enabled line history
262 std::vector<std::string> mLineHistory; // line history storage 262 typedef std::vector<std::string> line_history_t;
263 U32 mCurrentHistoryLine; // currently browsed history line 263 line_history_t mLineHistory; // line history storage
264 line_history_t::iterator mCurrentHistoryLine; // currently browsed history line
264 265
265 LLViewBorder* mBorder; 266 LLViewBorder* mBorder;
266 const LLFontGL* mGLFont; 267 const LLFontGL* mGLFont;
@@ -385,6 +386,7 @@ public:
385 386
386 /*virtual*/ void draw(); 387 /*virtual*/ void draw();
387 388
389 virtual LLXMLNodePtr getXML(bool save_children = true) const;
388 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory); 390 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory);
389 391
390 void setText(const LLStringExplicit &new_text) { mSearchEdit->setText(new_text); } 392 void setText(const LLStringExplicit &new_text) { mSearchEdit->setText(new_text); }
diff --git a/linden/indra/llui/llmenugl.cpp b/linden/indra/llui/llmenugl.cpp
index 175bf07..b70f98b 100644
--- a/linden/indra/llui/llmenugl.cpp
+++ b/linden/indra/llui/llmenugl.cpp
@@ -154,6 +154,8 @@ LLXMLNodePtr LLMenuItemGL::getXML(bool save_children) const
154{ 154{
155 LLXMLNodePtr node = LLView::getXML(); 155 LLXMLNodePtr node = LLView::getXML();
156 156
157 node->setName(LL_MENU_ITEM_TAG);
158
157 node->createChild("type", TRUE)->setStringValue(getType()); 159 node->createChild("type", TRUE)->setStringValue(getType());
158 160
159 node->createChild("label", TRUE)->setStringValue(mLabel); 161 node->createChild("label", TRUE)->setStringValue(mLabel);
@@ -526,6 +528,8 @@ class LLMenuItemSeparatorGL : public LLMenuItemGL
526public: 528public:
527 LLMenuItemSeparatorGL( const std::string &name = SEPARATOR_NAME ); 529 LLMenuItemSeparatorGL( const std::string &name = SEPARATOR_NAME );
528 530
531 virtual LLXMLNodePtr getXML(bool save_children = true) const;
532
529 virtual std::string getType() const { return "separator"; } 533 virtual std::string getType() const { return "separator"; }
530 534
531 // doIt() - do the primary funcationality of the menu item. 535 // doIt() - do the primary funcationality of the menu item.
@@ -544,6 +548,16 @@ LLMenuItemSeparatorGL::LLMenuItemSeparatorGL( const std::string &name ) :
544{ 548{
545} 549}
546 550
551
552LLXMLNodePtr LLMenuItemSeparatorGL::getXML(bool save_children) const
553{
554 LLXMLNodePtr node = LLMenuItemGL::getXML();
555
556 node->setName(LL_MENU_ITEM_SEPARATOR_GL_TAG);
557
558 return node;
559}
560
547void LLMenuItemSeparatorGL::draw( void ) 561void LLMenuItemSeparatorGL::draw( void )
548{ 562{
549 gGL.color4fv( getDisabledColor().mV ); 563 gGL.color4fv( getDisabledColor().mV );
@@ -624,6 +638,15 @@ LLMenuItemTearOffGL::LLMenuItemTearOffGL(LLHandle<LLFloater> parent_floater_hand
624} 638}
625 639
626 640
641LLXMLNodePtr LLMenuItemTearOffGL::getXML(bool save_children) const
642{
643 LLXMLNodePtr node = LLMenuItemGL::getXML();
644
645 node->setName(LL_MENU_ITEM_TEAR_OFF_GL_TAG);
646
647 return node;
648}
649
627void LLMenuItemTearOffGL::doIt() 650void LLMenuItemTearOffGL::doIt()
628{ 651{
629 if (getMenu()->getTornOff()) 652 if (getMenu()->getTornOff())
@@ -821,6 +844,8 @@ LLXMLNodePtr LLMenuItemCallGL::getXML(bool save_children) const
821{ 844{
822 LLXMLNodePtr node = LLMenuItemGL::getXML(); 845 LLXMLNodePtr node = LLMenuItemGL::getXML();
823 846
847 node->setName(LL_MENU_ITEM_CALL_GL_TAG);
848
824 // Contents 849 // Contents
825 850
826 std::vector<LLListenerEntry> listeners = mDispatcher->getListeners(); 851 std::vector<LLListenerEntry> listeners = mDispatcher->getListeners();
@@ -830,6 +855,9 @@ LLXMLNodePtr LLMenuItemCallGL::getXML(bool save_children) const
830 std::string listener_name = findEventListener((LLSimpleListener*)itor->listener); 855 std::string listener_name = findEventListener((LLSimpleListener*)itor->listener);
831 if (!listener_name.empty()) 856 if (!listener_name.empty())
832 { 857 {
858 // *FIX: It's not always on_click. It could be on_check, on_enable or on_visible,
859 // but there's no way to get that from the data that is stored.
860
833 LLXMLNodePtr child_node = node->createChild("on_click", FALSE); 861 LLXMLNodePtr child_node = node->createChild("on_click", FALSE);
834 child_node->createChild("function", TRUE)->setStringValue(listener_name); 862 child_node->createChild("function", TRUE)->setStringValue(listener_name);
835 child_node->createChild("filter", TRUE)->setStringValue(itor->filter.asString()); 863 child_node->createChild("filter", TRUE)->setStringValue(itor->filter.asString());
@@ -971,6 +999,9 @@ void LLMenuItemCheckGL::setCheckedControl(std::string checked_control, LLView *c
971LLXMLNodePtr LLMenuItemCheckGL::getXML(bool save_children) const 999LLXMLNodePtr LLMenuItemCheckGL::getXML(bool save_children) const
972{ 1000{
973 LLXMLNodePtr node = LLMenuItemCallGL::getXML(); 1001 LLXMLNodePtr node = LLMenuItemCallGL::getXML();
1002
1003 node->setName(LL_MENU_ITEM_CHECK_GL_TAG);
1004
974 return node; 1005 return node;
975} 1006}
976 1007
@@ -1734,6 +1765,8 @@ LLXMLNodePtr LLMenuGL::getXML(bool save_children) const
1734{ 1765{
1735 LLXMLNodePtr node = LLView::getXML(); 1766 LLXMLNodePtr node = LLView::getXML();
1736 1767
1768 node->setName(LL_MENU_GL_TAG);
1769
1737 // Attributes 1770 // Attributes
1738 1771
1739 node->createChild("opaque", TRUE)->setBoolValue(mBgVisible); 1772 node->createChild("opaque", TRUE)->setBoolValue(mBgVisible);
@@ -1904,7 +1937,11 @@ void LLMenuGL::parseChildXML(LLXMLNodePtr child, LLView *parent, LLUICtrlFactory
1904 1937
1905 LLSimpleListener* callback = parent->getListenerByName(callback_name); 1938 LLSimpleListener* callback = parent->getListenerByName(callback_name);
1906 1939
1907 if (!callback) continue; 1940 if (!callback)
1941 {
1942 lldebugs << "Ignoring \"on_check\" \"" << item_name << "\" because \"" << callback_name << "\" is not registered" << llendl;
1943 continue;
1944 }
1908 1945
1909 new_item->addListener(callback, "on_build", userdata); 1946 new_item->addListener(callback, "on_build", userdata);
1910 } 1947 }
@@ -1945,7 +1982,11 @@ void LLMenuGL::parseChildXML(LLXMLNodePtr child, LLView *parent, LLUICtrlFactory
1945 1982
1946 LLSimpleListener* callback = parent->getListenerByName(callback_name); 1983 LLSimpleListener* callback = parent->getListenerByName(callback_name);
1947 1984
1948 if (!callback) continue; 1985 if (!callback)
1986 {
1987 lldebugs << "Ignoring \"on_click\" \"" << item_name << "\" because \"" << callback_name << "\" is not registered" << llendl;
1988 continue;
1989 }
1949 1990
1950 new_item->addListener(callback, "on_click", callback_data); 1991 new_item->addListener(callback, "on_click", callback_data);
1951 } 1992 }
@@ -1975,7 +2016,11 @@ void LLMenuGL::parseChildXML(LLXMLNodePtr child, LLView *parent, LLUICtrlFactory
1975 2016
1976 LLSimpleListener* callback = parent->getListenerByName(callback_name); 2017 LLSimpleListener* callback = parent->getListenerByName(callback_name);
1977 2018
1978 if (!callback) continue; 2019 if (!callback)
2020 {
2021 lldebugs << "Ignoring \"on_enable\" \"" << item_name << "\" because \"" << callback_name << "\" is not registered" << llendl;
2022 continue;
2023 }
1979 2024
1980 new_item->addListener(callback, "on_build", userdata); 2025 new_item->addListener(callback, "on_build", userdata);
1981 } 2026 }
@@ -2015,7 +2060,11 @@ void LLMenuGL::parseChildXML(LLXMLNodePtr child, LLView *parent, LLUICtrlFactory
2015 2060
2016 LLSimpleListener* callback = parent->getListenerByName(callback_name); 2061 LLSimpleListener* callback = parent->getListenerByName(callback_name);
2017 2062
2018 if (!callback) continue; 2063 if (!callback)
2064 {
2065 lldebugs << "Ignoring \"on_visible\" \"" << item_name << "\" because \"" << callback_name << "\" is not registered" << llendl;
2066 continue;
2067 }
2019 2068
2020 new_item->addListener(callback, "on_build", userdata); 2069 new_item->addListener(callback, "on_build", userdata);
2021 } 2070 }
@@ -3033,6 +3082,8 @@ class LLPieMenuBranch : public LLMenuItemGL
3033public: 3082public:
3034 LLPieMenuBranch(const std::string& name, const std::string& label, LLPieMenu* branch); 3083 LLPieMenuBranch(const std::string& name, const std::string& label, LLPieMenu* branch);
3035 3084
3085 virtual LLXMLNodePtr getXML(bool save_children = true) const;
3086
3036 // called to rebuild the draw label 3087 // called to rebuild the draw label
3037 virtual void buildDrawLabel( void ); 3088 virtual void buildDrawLabel( void );
3038 3089
@@ -3055,6 +3106,17 @@ LLPieMenuBranch::LLPieMenuBranch(const std::string& name,
3055 mBranch->setParentMenuItem(this); 3106 mBranch->setParentMenuItem(this);
3056} 3107}
3057 3108
3109// virtual
3110LLXMLNodePtr LLPieMenuBranch::getXML(bool save_children) const
3111{
3112 if (mBranch)
3113 {
3114 return mBranch->getXML();
3115 }
3116
3117 return LLMenuItemGL::getXML();
3118}
3119
3058// called to rebuild the draw label 3120// called to rebuild the draw label
3059void LLPieMenuBranch::buildDrawLabel( void ) 3121void LLPieMenuBranch::buildDrawLabel( void )
3060{ 3122{
@@ -3136,6 +3198,16 @@ LLPieMenu::LLPieMenu(const std::string& name)
3136} 3198}
3137 3199
3138 3200
3201// virtual
3202LLXMLNodePtr LLPieMenu::getXML(bool save_children) const
3203{
3204 LLXMLNodePtr node = LLMenuGL::getXML();
3205
3206 node->setName(LL_PIE_MENU_TAG);
3207
3208 return node;
3209}
3210
3139void LLPieMenu::initXML(LLXMLNodePtr node, LLView *context, LLUICtrlFactory *factory) 3211void LLPieMenu::initXML(LLXMLNodePtr node, LLView *context, LLUICtrlFactory *factory)
3140{ 3212{
3141 LLXMLNodePtr child; 3213 LLXMLNodePtr child;
@@ -3837,6 +3909,8 @@ LLXMLNodePtr LLMenuBarGL::getXML(bool save_children) const
3837 3909
3838 LLXMLNodePtr node = LLMenuGL::getXML(); 3910 LLXMLNodePtr node = LLMenuGL::getXML();
3839 3911
3912 node->setName(LL_MENU_BAR_GL_TAG);
3913
3840 for (item_iter = mItems.begin(); item_iter != mItems.end(); ++item_iter) 3914 for (item_iter = mItems.begin(); item_iter != mItems.end(); ++item_iter)
3841 { 3915 {
3842 LLMenuItemGL* child = *item_iter; 3916 LLMenuItemGL* child = *item_iter;
diff --git a/linden/indra/llui/llmenugl.h b/linden/indra/llui/llmenugl.h
index 030b81b..26fc294 100644
--- a/linden/indra/llui/llmenugl.h
+++ b/linden/indra/llui/llmenugl.h
@@ -368,6 +368,9 @@ public:
368 BOOL* toggle, 368 BOOL* toggle,
369 KEY key = KEY_NONE, MASK mask = MASK_NONE ); 369 KEY key = KEY_NONE, MASK mask = MASK_NONE );
370 370
371 // there is no getXML() because we cannot reference the toggled global variable by XML
372 // use LLMenuItemCheckGL instead.
373
371 virtual std::string getType() const { return "toggle"; } 374 virtual std::string getType() const { return "toggle"; }
372 375
373 // called to rebuild the draw label 376 // called to rebuild the draw label
@@ -636,6 +639,7 @@ public:
636 LLPieMenu(const std::string& name); 639 LLPieMenu(const std::string& name);
637 virtual ~LLPieMenu() {} 640 virtual ~LLPieMenu() {}
638 641
642 virtual LLXMLNodePtr getXML(bool save_children = true) const;
639 void initXML(LLXMLNodePtr node, LLView *context, LLUICtrlFactory *factory); 643 void initXML(LLXMLNodePtr node, LLView *context, LLUICtrlFactory *factory);
640 644
641 // LLView Functionality 645 // LLView Functionality
@@ -800,6 +804,7 @@ class LLMenuItemTearOffGL : public LLMenuItemGL
800public: 804public:
801 LLMenuItemTearOffGL( LLHandle<LLFloater> parent_floater_handle = LLHandle<LLFloater>()); 805 LLMenuItemTearOffGL( LLHandle<LLFloater> parent_floater_handle = LLHandle<LLFloater>());
802 806
807 virtual LLXMLNodePtr getXML(bool save_children = true) const;
803 virtual std::string getType() const { return "tearoff_menu"; } 808 virtual std::string getType() const { return "tearoff_menu"; }
804 809
805 virtual void doIt(void); 810 virtual void doIt(void);
diff --git a/linden/indra/llui/llmultislider.cpp b/linden/indra/llui/llmultislider.cpp
index c1487be..a0da4e2 100644
--- a/linden/indra/llui/llmultislider.cpp
+++ b/linden/indra/llui/llmultislider.cpp
@@ -571,6 +571,8 @@ LLXMLNodePtr LLMultiSlider::getXML(bool save_children) const
571{ 571{
572 LLXMLNodePtr node = LLUICtrl::getXML(); 572 LLXMLNodePtr node = LLUICtrl::getXML();
573 573
574 node->setName(LL_MULTI_SLIDER_TAG);
575
574 node->createChild("initial_val", TRUE)->setFloatValue(getInitialValue()); 576 node->createChild("initial_val", TRUE)->setFloatValue(getInitialValue());
575 node->createChild("min_val", TRUE)->setFloatValue(getMinValue()); 577 node->createChild("min_val", TRUE)->setFloatValue(getMinValue());
576 node->createChild("max_val", TRUE)->setFloatValue(getMaxValue()); 578 node->createChild("max_val", TRUE)->setFloatValue(getMaxValue());
diff --git a/linden/indra/llui/llmultisliderctrl.cpp b/linden/indra/llui/llmultisliderctrl.cpp
index 8bcf9f9..b76c2f6 100644
--- a/linden/indra/llui/llmultisliderctrl.cpp
+++ b/linden/indra/llui/llmultisliderctrl.cpp
@@ -132,7 +132,7 @@ LLMultiSliderCtrl::LLMultiSliderCtrl(const std::string& name, const LLRect& rect
132 &LLLineEditor::prevalidateFloat ); 132 &LLLineEditor::prevalidateFloat );
133 mEditor->setFollowsLeft(); 133 mEditor->setFollowsLeft();
134 mEditor->setFollowsBottom(); 134 mEditor->setFollowsBottom();
135 mEditor->setFocusReceivedCallback( &LLMultiSliderCtrl::onEditorGainFocus ); 135 mEditor->setFocusReceivedCallback( &LLMultiSliderCtrl::onEditorGainFocus, this );
136 mEditor->setIgnoreTab(TRUE); 136 mEditor->setIgnoreTab(TRUE);
137 // don't do this, as selecting the entire text is single clicking in some cases 137 // don't do this, as selecting the entire text is single clicking in some cases
138 // and double clicking in others 138 // and double clicking in others
@@ -501,6 +501,8 @@ LLXMLNodePtr LLMultiSliderCtrl::getXML(bool save_children) const
501{ 501{
502 LLXMLNodePtr node = LLUICtrl::getXML(); 502 LLXMLNodePtr node = LLUICtrl::getXML();
503 503
504 node->setName(LL_MULTI_SLIDER_CTRL_TAG);
505
504 node->createChild("show_text", TRUE)->setBoolValue(mShowText); 506 node->createChild("show_text", TRUE)->setBoolValue(mShowText);
505 507
506 node->createChild("can_edit_text", TRUE)->setBoolValue(mCanEditText); 508 node->createChild("can_edit_text", TRUE)->setBoolValue(mCanEditText);
diff --git a/linden/indra/llui/llpanel.cpp b/linden/indra/llui/llpanel.cpp
index 28780c7..709342b 100644
--- a/linden/indra/llui/llpanel.cpp
+++ b/linden/indra/llui/llpanel.cpp
@@ -402,7 +402,9 @@ void LLPanel::setBorderVisible(BOOL b)
402// virtual 402// virtual
403LLXMLNodePtr LLPanel::getXML(bool save_children) const 403LLXMLNodePtr LLPanel::getXML(bool save_children) const
404{ 404{
405 LLXMLNodePtr node = LLView::getXML(); 405 LLXMLNodePtr node = LLUICtrl::getXML();
406
407 node->setName(LL_PANEL_TAG);
406 408
407 if (mBorder && mBorder->getVisible()) 409 if (mBorder && mBorder->getVisible())
408 { 410 {
@@ -418,6 +420,15 @@ LLXMLNodePtr LLPanel::getXML(bool save_children) const
418 { 420 {
419 node->createChild("label", TRUE)->setStringValue(mLabel); 421 node->createChild("label", TRUE)->setStringValue(mLabel);
420 } 422 }
423
424 ui_string_map_t::const_iterator i = mUIStrings.begin();
425 ui_string_map_t::const_iterator end = mUIStrings.end();
426 for (; i != end; ++i)
427 {
428 LLXMLNodePtr child_node = node->createChild("string", FALSE);
429 child_node->setStringValue(i->second);
430 child_node->createChild("name", TRUE)->setStringValue(i->first);
431 }
421 432
422 if (save_children) 433 if (save_children)
423 { 434 {
@@ -1171,6 +1182,38 @@ void LLLayoutStack::removeCtrl(LLUICtrl* ctrl)
1171LLXMLNodePtr LLLayoutStack::getXML(bool save_children) const 1182LLXMLNodePtr LLLayoutStack::getXML(bool save_children) const
1172{ 1183{
1173 LLXMLNodePtr node = LLView::getXML(); 1184 LLXMLNodePtr node = LLView::getXML();
1185 node->setName(LL_LAYOUT_STACK_TAG);
1186
1187 if (mOrientation == HORIZONTAL)
1188 {
1189 node->createChild("orientation", TRUE)->setStringValue("horizontal");
1190 }
1191 else
1192 {
1193 node->createChild("orientation", TRUE)->setStringValue("vertical");
1194 }
1195
1196 if (save_children)
1197 {
1198 LLView::child_list_const_reverse_iter_t rit;
1199 for (rit = getChildList()->rbegin(); rit != getChildList()->rend(); ++rit)
1200 {
1201 LLView* childp = *rit;
1202
1203 if (childp->getSaveToXML())
1204 {
1205 LLXMLNodePtr xml_node = childp->getXML();
1206
1207 if (xml_node->hasName(LL_PANEL_TAG))
1208 {
1209 xml_node->setName(LL_LAYOUT_PANEL_TAG);
1210 }
1211
1212 node->addChild(xml_node);
1213 }
1214 }
1215 }
1216
1174 return node; 1217 return node;
1175} 1218}
1176 1219
diff --git a/linden/indra/llui/llprogressbar.cpp b/linden/indra/llui/llprogressbar.cpp
index 8833494..d148733 100644
--- a/linden/indra/llui/llprogressbar.cpp
+++ b/linden/indra/llui/llprogressbar.cpp
@@ -124,6 +124,16 @@ void LLProgressBar::setColorBackground(const LLColor4 &c)
124} 124}
125 125
126 126
127// virtual
128LLXMLNodePtr LLProgressBar::getXML(bool save_children) const
129{
130 LLXMLNodePtr node = LLView::getXML();
131
132 node->setName(LL_PROGRESS_BAR_TAG);
133
134 return node;
135}
136
127// static 137// static
128LLView* LLProgressBar::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory) 138LLView* LLProgressBar::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
129{ 139{
diff --git a/linden/indra/llui/llprogressbar.h b/linden/indra/llui/llprogressbar.h
index 00ad61d..5e02c3b 100644
--- a/linden/indra/llui/llprogressbar.h
+++ b/linden/indra/llui/llprogressbar.h
@@ -53,6 +53,7 @@ public:
53 void setColorShadow(const LLColor4 &c); 53 void setColorShadow(const LLColor4 &c);
54 void setColorBackground(const LLColor4 &c); 54 void setColorBackground(const LLColor4 &c);
55 55
56 virtual LLXMLNodePtr getXML(bool save_children = true) const;
56 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory); 57 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory);
57 58
58 /*virtual*/ void draw(); 59 /*virtual*/ void draw();
diff --git a/linden/indra/llui/llradiogroup.cpp b/linden/indra/llui/llradiogroup.cpp
index 33b9398..ad8922d 100644
--- a/linden/indra/llui/llradiogroup.cpp
+++ b/linden/indra/llui/llradiogroup.cpp
@@ -345,6 +345,8 @@ LLXMLNodePtr LLRadioGroup::getXML(bool save_children) const
345{ 345{
346 LLXMLNodePtr node = LLUICtrl::getXML(); 346 LLXMLNodePtr node = LLUICtrl::getXML();
347 347
348 node->setName(LL_RADIO_GROUP_TAG);
349
348 // Attributes 350 // Attributes
349 351
350 node->createChild("draw_border", TRUE)->setBoolValue(mHasBorder); 352 node->createChild("draw_border", TRUE)->setBoolValue(mHasBorder);
@@ -356,9 +358,7 @@ LLXMLNodePtr LLRadioGroup::getXML(bool save_children) const
356 { 358 {
357 LLRadioCtrl* radio = *iter; 359 LLRadioCtrl* radio = *iter;
358 360
359 LLXMLNodePtr child_node = radio->LLView::getXML(); 361 LLXMLNodePtr child_node = radio->getXML();
360 child_node->setStringValue(radio->getLabel());
361 child_node->setName(std::string("radio_item"));
362 362
363 node->addChild(child_node); 363 node->addChild(child_node);
364 } 364 }
@@ -515,3 +515,14 @@ void LLRadioCtrl::setValue(const LLSD& value)
515 mButton->setTabStop(value.asBoolean()); 515 mButton->setTabStop(value.asBoolean());
516} 516}
517 517
518// virtual
519LLXMLNodePtr LLRadioCtrl::getXML(bool save_children) const
520{
521 LLXMLNodePtr node = LLCheckBoxCtrl::getXML();
522
523 node->setName(LL_RADIO_ITEM_TAG);
524
525 node->setStringValue(getLabel());
526
527 return node;
528}
diff --git a/linden/indra/llui/llradiogroup.h b/linden/indra/llui/llradiogroup.h
index 3410b74..b4f65e7 100644
--- a/linden/indra/llui/llradiogroup.h
+++ b/linden/indra/llui/llradiogroup.h
@@ -52,6 +52,7 @@ public:
52 } 52 }
53 /*virtual*/ ~LLRadioCtrl(); 53 /*virtual*/ ~LLRadioCtrl();
54 54
55 virtual LLXMLNodePtr getXML(bool save_children = true) const;
55 /*virtual*/ void setValue(const LLSD& value); 56 /*virtual*/ void setValue(const LLSD& value);
56}; 57};
57 58
diff --git a/linden/indra/llui/llscrollcontainer.cpp b/linden/indra/llui/llscrollcontainer.cpp
index cf03259..6f037e2 100644
--- a/linden/indra/llui/llscrollcontainer.cpp
+++ b/linden/indra/llui/llscrollcontainer.cpp
@@ -679,7 +679,9 @@ S32 LLScrollableContainerView::getBorderWidth() const
679// virtual 679// virtual
680LLXMLNodePtr LLScrollableContainerView::getXML(bool save_children) const 680LLXMLNodePtr LLScrollableContainerView::getXML(bool save_children) const
681{ 681{
682 LLXMLNodePtr node = LLView::getXML(); 682 LLXMLNodePtr node = LLUICtrl::getXML();
683
684 node->setName(LL_SCROLLABLE_CONTAINER_VIEW_TAG);
683 685
684 // Attributes 686 // Attributes
685 687
diff --git a/linden/indra/llui/llscrollingpanellist.cpp b/linden/indra/llui/llscrollingpanellist.cpp
index 05d0c6f..c2afb78 100644
--- a/linden/indra/llui/llscrollingpanellist.cpp
+++ b/linden/indra/llui/llscrollingpanellist.cpp
@@ -139,6 +139,16 @@ void LLScrollingPanelList::draw()
139} 139}
140 140
141 141
142// virtual
143LLXMLNodePtr LLScrollingPanelList::getXML(bool save_children) const
144{
145 LLXMLNodePtr node = LLUICtrl::getXML();
146
147 node->setName(LL_SCROLLING_PANEL_LIST_TAG);
148
149 return node;
150}
151
142// static 152// static
143LLView* LLScrollingPanelList::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory) 153LLView* LLScrollingPanelList::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
144{ 154{
diff --git a/linden/indra/llui/llscrollingpanellist.h b/linden/indra/llui/llscrollingpanellist.h
index b9d7309..9660427 100644
--- a/linden/indra/llui/llscrollingpanellist.h
+++ b/linden/indra/llui/llscrollingpanellist.h
@@ -58,14 +58,13 @@ public:
58 58
59 virtual void setValue(const LLSD& value) {}; 59 virtual void setValue(const LLSD& value) {};
60 60
61 virtual LLXMLNodePtr getXML(bool save_children) const { return LLUICtrl::getXML(); }
62
63 virtual void draw(); 61 virtual void draw();
64 62
65 void clearPanels(); 63 void clearPanels();
66 void addPanel( LLScrollingPanel* panel ); 64 void addPanel( LLScrollingPanel* panel );
67 void updatePanels(BOOL allow_modify); 65 void updatePanels(BOOL allow_modify);
68 66
67 virtual LLXMLNodePtr getXML(bool save_children = true) const;
69 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory); 68 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory);
70 69
71private: 70private:
diff --git a/linden/indra/llui/llscrolllistctrl.cpp b/linden/indra/llui/llscrolllistctrl.cpp
index 460b29f..3c2293f 100644
--- a/linden/indra/llui/llscrolllistctrl.cpp
+++ b/linden/indra/llui/llscrolllistctrl.cpp
@@ -2713,6 +2713,8 @@ LLXMLNodePtr LLScrollListCtrl::getXML(bool save_children) const
2713{ 2713{
2714 LLXMLNodePtr node = LLUICtrl::getXML(); 2714 LLXMLNodePtr node = LLUICtrl::getXML();
2715 2715
2716 node->setName(LL_SCROLL_LIST_CTRL_TAG);
2717
2716 // Attributes 2718 // Attributes
2717 2719
2718 node->createChild("multi_select", TRUE)->setBoolValue(mAllowMultipleSelection); 2720 node->createChild("multi_select", TRUE)->setBoolValue(mAllowMultipleSelection);
diff --git a/linden/indra/llui/llslider.cpp b/linden/indra/llui/llslider.cpp
index 4dfc904..7b4da9b 100644
--- a/linden/indra/llui/llslider.cpp
+++ b/linden/indra/llui/llslider.cpp
@@ -291,6 +291,15 @@ LLXMLNodePtr LLSlider::getXML(bool save_children) const
291{ 291{
292 LLXMLNodePtr node = LLUICtrl::getXML(); 292 LLXMLNodePtr node = LLUICtrl::getXML();
293 293
294 if (mVolumeSlider)
295 {
296 node->setName(LL_VOLUME_SLIDER_CTRL_TAG);
297 }
298 else
299 {
300 node->setName(LL_SLIDER_TAG);
301 }
302
294 node->createChild("initial_val", TRUE)->setFloatValue(getInitialValue()); 303 node->createChild("initial_val", TRUE)->setFloatValue(getInitialValue());
295 node->createChild("min_val", TRUE)->setFloatValue(getMinValue()); 304 node->createChild("min_val", TRUE)->setFloatValue(getMinValue());
296 node->createChild("max_val", TRUE)->setFloatValue(getMaxValue()); 305 node->createChild("max_val", TRUE)->setFloatValue(getMaxValue());
diff --git a/linden/indra/llui/llsliderctrl.cpp b/linden/indra/llui/llsliderctrl.cpp
index 31baddd..8a13ed4 100644
--- a/linden/indra/llui/llsliderctrl.cpp
+++ b/linden/indra/llui/llsliderctrl.cpp
@@ -419,6 +419,8 @@ LLXMLNodePtr LLSliderCtrl::getXML(bool save_children) const
419{ 419{
420 LLXMLNodePtr node = LLUICtrl::getXML(); 420 LLXMLNodePtr node = LLUICtrl::getXML();
421 421
422 node->setName(LL_SLIDER_CTRL_TAG);
423
422 node->createChild("show_text", TRUE)->setBoolValue(mShowText); 424 node->createChild("show_text", TRUE)->setBoolValue(mShowText);
423 425
424 node->createChild("can_edit_text", TRUE)->setBoolValue(mCanEditText); 426 node->createChild("can_edit_text", TRUE)->setBoolValue(mCanEditText);
diff --git a/linden/indra/llui/llspinctrl.cpp b/linden/indra/llui/llspinctrl.cpp
index 2f531a2..2992f98 100644
--- a/linden/indra/llui/llspinctrl.cpp
+++ b/linden/indra/llui/llspinctrl.cpp
@@ -483,6 +483,8 @@ LLXMLNodePtr LLSpinCtrl::getXML(bool save_children) const
483{ 483{
484 LLXMLNodePtr node = LLUICtrl::getXML(); 484 LLXMLNodePtr node = LLUICtrl::getXML();
485 485
486 node->setName(LL_SPIN_CTRL_TAG);
487
486 node->createChild("decimal_digits", TRUE)->setIntValue(mPrecision); 488 node->createChild("decimal_digits", TRUE)->setIntValue(mPrecision);
487 489
488 if (mLabelBox) 490 if (mLabelBox)
diff --git a/linden/indra/llui/lltabcontainer.cpp b/linden/indra/llui/lltabcontainer.cpp
index f416948..1f94191 100644
--- a/linden/indra/llui/lltabcontainer.cpp
+++ b/linden/indra/llui/lltabcontainer.cpp
@@ -620,6 +620,9 @@ BOOL LLTabContainer::handleKeyHere(KEY key, MASK mask)
620LLXMLNodePtr LLTabContainer::getXML(bool save_children) const 620LLXMLNodePtr LLTabContainer::getXML(bool save_children) const
621{ 621{
622 LLXMLNodePtr node = LLPanel::getXML(); 622 LLXMLNodePtr node = LLPanel::getXML();
623
624 node->setName(LL_TAB_CONTAINER_COMMON_TAG);
625
623 node->createChild("tab_position", TRUE)->setStringValue((getTabPosition() == TOP ? "top" : "bottom")); 626 node->createChild("tab_position", TRUE)->setStringValue((getTabPosition() == TOP ? "top" : "bottom"));
624 return node; 627 return node;
625} 628}
diff --git a/linden/indra/llui/lltextbox.cpp b/linden/indra/llui/lltextbox.cpp
index 89893bc..e45716f 100644
--- a/linden/indra/llui/lltextbox.cpp
+++ b/linden/indra/llui/lltextbox.cpp
@@ -386,6 +386,8 @@ LLXMLNodePtr LLTextBox::getXML(bool save_children) const
386{ 386{
387 LLXMLNodePtr node = LLUICtrl::getXML(); 387 LLXMLNodePtr node = LLUICtrl::getXML();
388 388
389 node->setName(LL_TEXT_BOX_TAG);
390
389 // Attributes 391 // Attributes
390 node->createChild("font", TRUE)->setStringValue(LLFontGL::nameFromFont(mFontGL)); 392 node->createChild("font", TRUE)->setStringValue(LLFontGL::nameFromFont(mFontGL));
391 node->createChild("halign", TRUE)->setStringValue(LLFontGL::nameFromHAlign(mHAlign)); 393 node->createChild("halign", TRUE)->setStringValue(LLFontGL::nameFromHAlign(mHAlign));
diff --git a/linden/indra/llui/lltexteditor.cpp b/linden/indra/llui/lltexteditor.cpp
index 32106f1..7c05239 100644
--- a/linden/indra/llui/lltexteditor.cpp
+++ b/linden/indra/llui/lltexteditor.cpp
@@ -4296,6 +4296,8 @@ LLXMLNodePtr LLTextEditor::getXML(bool save_children) const
4296{ 4296{
4297 LLXMLNodePtr node = LLUICtrl::getXML(); 4297 LLXMLNodePtr node = LLUICtrl::getXML();
4298 4298
4299 node->setName(LL_SIMPLE_TEXT_EDITOR_TAG);
4300
4299 // Attributes 4301 // Attributes
4300 4302
4301 node->createChild("max_length", TRUE)->setIntValue(getMaxLength()); 4303 node->createChild("max_length", TRUE)->setIntValue(getMaxLength());
diff --git a/linden/indra/llui/lluictrlfactory.cpp b/linden/indra/llui/lluictrlfactory.cpp
index 983cc53..07eb39b 100644
--- a/linden/indra/llui/lluictrlfactory.cpp
+++ b/linden/indra/llui/lluictrlfactory.cpp
@@ -86,6 +86,15 @@ public:
86 LLUICtrlLocate() : LLUICtrl(std::string("locate"), LLRect(0,0,0,0), FALSE, NULL, NULL) { setTabStop(FALSE); } 86 LLUICtrlLocate() : LLUICtrl(std::string("locate"), LLRect(0,0,0,0), FALSE, NULL, NULL) { setTabStop(FALSE); }
87 virtual void draw() { } 87 virtual void draw() { }
88 88
89 virtual LLXMLNodePtr getXML(bool save_children = true) const
90 {
91 LLXMLNodePtr node = LLUICtrl::getXML();
92
93 node->setName(LL_UI_CTRL_LOCATE_TAG);
94
95 return node;
96 }
97
89 static LLView *fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory) 98 static LLView *fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
90 { 99 {
91 std::string name("pad"); 100 std::string name("pad");
@@ -163,20 +172,24 @@ bool LLUICtrlFactory::getLayeredXMLNode(const std::string &xui_filename, LLXMLNo
163 std::string full_filename = gDirUtilp->findSkinnedFilename(sXUIPaths.front(), xui_filename); 172 std::string full_filename = gDirUtilp->findSkinnedFilename(sXUIPaths.front(), xui_filename);
164 if (full_filename.empty()) 173 if (full_filename.empty())
165 { 174 {
166 llwarns << "Couldn't find UI description file: " << sXUIPaths.front() + gDirUtilp->getDirDelimiter() + xui_filename << llendl;
167 return false;
168 }
169
170 if (!LLXMLNode::parseFile(full_filename, root, NULL))
171 {
172 // try filename as passed in since sometimes we load an xml file from a user-supplied path 175 // try filename as passed in since sometimes we load an xml file from a user-supplied path
173 if (!LLXMLNode::parseFile(xui_filename, root, NULL)) 176 if (gDirUtilp->fileExists(xui_filename))
174 { 177 {
175 llwarns << "Problem reading UI description file: " << xui_filename << llendl; 178 full_filename = xui_filename;
179 }
180 else
181 {
182 llwarns << "Couldn't find UI description file: " << sXUIPaths.front() + gDirUtilp->getDirDelimiter() + xui_filename << llendl;
176 return false; 183 return false;
177 } 184 }
178 } 185 }
179 186
187 if (!LLXMLNode::parseFile(full_filename, root, NULL))
188 {
189 llwarns << "Problem reading UI description file: " << full_filename << llendl;
190 return false;
191 }
192
180 LLXMLNodePtr updateRoot; 193 LLXMLNodePtr updateRoot;
181 194
182 std::vector<std::string>::const_iterator itor; 195 std::vector<std::string>::const_iterator itor;
diff --git a/linden/indra/llui/lluixmltags.h b/linden/indra/llui/lluixmltags.h
index 0456666..4166131 100644
--- a/linden/indra/llui/lluixmltags.h
+++ b/linden/indra/llui/lluixmltags.h
@@ -122,5 +122,10 @@ const std::string
122 LL_JOYSTICK_TURN("joystick_turn"), 122 LL_JOYSTICK_TURN("joystick_turn"),
123 LL_GROUP_DROP_TARGET_TAG("group_drop_target"), 123 LL_GROUP_DROP_TARGET_TAG("group_drop_target"),
124 LL_LAYOUT_STACK_TAG("layout_stack"), 124 LL_LAYOUT_STACK_TAG("layout_stack"),
125 LL_FLYOUT_BUTTON_TAG("flyout_button"); 125 LL_LAYOUT_PANEL_TAG("layout_panel"),
126 LL_FLYOUT_BUTTON_TAG("flyout_button"),
127 LL_FLYOUT_BUTTON_ITEM_TAG("flyout_button_item"),
128 LL_SIMPLE_TEXT_EDITOR_TAG("simple_text_editor"),
129 LL_RADIO_ITEM_TAG("radio_item"),
130 LL_PROGRESS_BAR_TAG("progress_bar");
126#endif 131#endif
diff --git a/linden/indra/llui/llview.cpp b/linden/indra/llui/llview.cpp
index 36bc850..8de376f 100644
--- a/linden/indra/llui/llview.cpp
+++ b/linden/indra/llui/llview.cpp
@@ -1943,7 +1943,7 @@ BOOL LLView::localRectToOtherView( const LLRect& local, LLRect* other, LLView* o
1943// virtual 1943// virtual
1944LLXMLNodePtr LLView::getXML(bool save_children) const 1944LLXMLNodePtr LLView::getXML(bool save_children) const
1945{ 1945{
1946 //FIXME: need to provide actual derived type tag, probably outside this method 1946 //If called from a derived class, the derived class will override the node name
1947 LLXMLNodePtr node = new LLXMLNode("view", FALSE); 1947 LLXMLNodePtr node = new LLXMLNode("view", FALSE);
1948 1948
1949 node->createChild("name", TRUE)->setStringValue(getName()); 1949 node->createChild("name", TRUE)->setStringValue(getName());
@@ -2353,6 +2353,8 @@ LLView* LLView::findSnapEdge(S32& new_edge_val, const LLCoordGL& mouse_dir, ESna
2353void LLView::registerEventListener(std::string name, LLSimpleListener* function) 2353void LLView::registerEventListener(std::string name, LLSimpleListener* function)
2354{ 2354{
2355 mDispatchList.insert(std::pair<std::string, LLSimpleListener*>(name, function)); 2355 mDispatchList.insert(std::pair<std::string, LLSimpleListener*>(name, function));
2356 lldebugs << getName() << " registered " << name << llendl;
2357
2356} 2358}
2357 2359
2358void LLView::deregisterEventListener(std::string name) 2360void LLView::deregisterEventListener(std::string name)
diff --git a/linden/indra/llui/llviewborder.cpp b/linden/indra/llui/llviewborder.cpp
index d4a9e9d..47323e2 100644
--- a/linden/indra/llui/llviewborder.cpp
+++ b/linden/indra/llui/llviewborder.cpp
@@ -303,6 +303,16 @@ BOOL LLViewBorder::getBevelFromAttribute(LLXMLNodePtr node, LLViewBorder::EBevel
303} 303}
304 304
305 305
306// virtual
307LLXMLNodePtr LLViewBorder::getXML(bool save_children) const
308{
309 LLXMLNodePtr node = LLView::getXML();
310
311 node->setName(LL_VIEW_BORDER_TAG);
312
313 return node;
314}
315
306// static 316// static
307LLView* LLViewBorder::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory) 317LLView* LLViewBorder::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
308{ 318{
diff --git a/linden/indra/llui/llviewborder.h b/linden/indra/llui/llviewborder.h
index a40e653..1d80b6b 100644
--- a/linden/indra/llui/llviewborder.h
+++ b/linden/indra/llui/llviewborder.h
@@ -51,6 +51,7 @@ public:
51 // llview functionality 51 // llview functionality
52 virtual void draw(); 52 virtual void draw();
53 53
54 virtual LLXMLNodePtr getXML(bool save_children = true) const;
54 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, class LLUICtrlFactory *factory); 55 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, class LLUICtrlFactory *factory);
55 static BOOL getBevelFromAttribute(LLXMLNodePtr node, LLViewBorder::EBevel& bevel_style); 56 static BOOL getBevelFromAttribute(LLXMLNodePtr node, LLViewBorder::EBevel& bevel_style);
56 57
diff --git a/linden/indra/llwindow/llkeyboardwin32.cpp b/linden/indra/llwindow/llkeyboardwin32.cpp
index a06f191..b044eaa 100644
--- a/linden/indra/llwindow/llkeyboardwin32.cpp
+++ b/linden/indra/llwindow/llkeyboardwin32.cpp
@@ -63,7 +63,7 @@ LLKeyboardWin32::LLKeyboardWin32()
63 // numpad number keys 63 // numpad number keys
64 for (cur_char = 0x60; cur_char <= 0x69; cur_char++) 64 for (cur_char = 0x60; cur_char <= 0x69; cur_char++)
65 { 65 {
66 mTranslateKeyMap[cur_char] = (KEY)('0' + (0x60 - cur_char)); 66 mTranslateKeyMap[cur_char] = (KEY)('0' + (cur_char - 0x60));
67 } 67 }
68 68
69 69
diff --git a/linden/indra/newview/CMakeLists.txt b/linden/indra/newview/CMakeLists.txt
index a696f6e..e451465 100644
--- a/linden/indra/newview/CMakeLists.txt
+++ b/linden/indra/newview/CMakeLists.txt
@@ -1442,7 +1442,7 @@ if (WINDOWS)
1442 --source=${CMAKE_CURRENT_SOURCE_DIR} 1442 --source=${CMAKE_CURRENT_SOURCE_DIR}
1443 --artwork=${ARTWORK_DIR} 1443 --artwork=${ARTWORK_DIR}
1444 --build=${CMAKE_CURRENT_BINARY_DIR} 1444 --build=${CMAKE_CURRENT_BINARY_DIR}
1445 --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR} 1445 --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/package
1446 --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/touched.bat 1446 --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/touched.bat
1447 DEPENDS ${VIEWER_BINARY_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py 1447 DEPENDS ${VIEWER_BINARY_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
1448 ) 1448 )
diff --git a/linden/indra/newview/app_settings/settings.xml b/linden/indra/newview/app_settings/settings.xml
index f928e28..76183ef 100644
--- a/linden/indra/newview/app_settings/settings.xml
+++ b/linden/indra/newview/app_settings/settings.xml
@@ -1,6 +1,56 @@
1<?xml version="1.0" ?> 1<?xml version="1.0" ?>
2<llsd> 2<llsd>
3<map> 3<map>
4
5<!-- Begin: Client Name Tag -->
6
7 <key>ShowClientNameTag</key>
8 <map>
9 <key>Comment</key>
10 <string>Show others clients in name tag</string>
11 <key>Persist</key>
12 <integer>1</integer>
13 <key>Type</key>
14 <string>Boolean</string>
15 <key>Value</key>
16 <integer>1</integer>
17 </map>
18 <key>DownloadClientTags</key>
19 <map>
20 <key>Comment</key>
21 <string>download tags</string>
22 <key>Persist</key>
23 <integer>1</integer>
24 <key>Type</key>
25 <string>Boolean</string>
26 <key>Value</key>
27 <integer>0</integer>
28 </map>
29 <key>WarnClientTags</key>
30 <map>
31 <key>Comment</key>
32 <string>Enables ClientTags warning dialog</string>
33 <key>Persist</key>
34 <integer>1</integer>
35 <key>Type</key>
36 <string>Boolean</string>
37 <key>Value</key>
38 <integer>1</integer>
39 </map>
40 <key>ClothingLayerProtection</key>
41 <map>
42 <key>Comment</key>
43 <string>Overwrites clothing layers to sim in order to protect your worn items from being as easily stolen. Also lets others see the client name if set to true.</string>
44 <key>Persist</key>
45 <integer>1</integer>
46 <key>Type</key>
47 <string>Boolean</string>
48 <key>Value</key>
49 <integer>1</integer>
50 </map>
51
52<!-- End: Client Name Tag -->
53
4 <key>RestrainedLife</key> 54 <key>RestrainedLife</key>
5 <map> 55 <map>
6 <key>Comment</key> 56 <key>Comment</key>
@@ -3936,6 +3986,22 @@
3936 <integer>0</integer> 3986 <integer>0</integer>
3937 </array> 3987 </array>
3938 </map> 3988 </map>
3989 <key>FloaterHtmlRect</key>
3990 <map>
3991 <key>Comment</key>
3992 <string>Rectangle for HTML window</string>
3993 <key>Persist</key>
3994 <integer>1</integer>
3995 <key>Type</key>
3996 <string>Rect</string>
3997 <key>Value</key>
3998 <array>
3999 <integer>100</integer>
4000 <integer>460</integer>
4001 <integer>370</integer>
4002 <integer>100</integer>
4003 </array>
4004 </map>
3939 <key>FloaterIMRect</key> 4005 <key>FloaterIMRect</key>
3940 <map> 4006 <map>
3941 <key>Comment</key> 4007 <key>Comment</key>
@@ -8315,6 +8381,17 @@
8315 <key>Value</key> 8381 <key>Value</key>
8316 <integer>0</integer> 8382 <integer>0</integer>
8317 </map> 8383 </map>
8384 <key>SaveInventoryScriptsAsMono</key>
8385 <map>
8386 <key>Comment</key>
8387 <string>When editing and saving a script in inventory, configure it to compile as mono when dragged into a task</string>
8388 <key>Persist</key>
8389 <integer>1</integer>
8390 <key>Type</key>
8391 <string>Boolean</string>
8392 <key>Value</key>
8393 <real>0</real>
8394 </map>
8318 <key>SaveMinidump</key> 8395 <key>SaveMinidump</key>
8319 <map> 8396 <map>
8320 <key>Comment</key> 8397 <key>Comment</key>
diff --git a/linden/indra/newview/installers/windows/installer_template.nsi b/linden/indra/newview/installers/windows/installer_template.nsi
index 32aefda..8afde89 100644
--- a/linden/indra/newview/installers/windows/installer_template.nsi
+++ b/linden/indra/newview/installers/windows/installer_template.nsi
@@ -51,8 +51,8 @@ Name ${INSTNAME}
51SubCaption 0 $(LicenseSubTitleSetup) ; override "license agreement" text 51SubCaption 0 $(LicenseSubTitleSetup) ; override "license agreement" text
52 52
53BrandingText " " ; bottom of window text 53BrandingText " " ; bottom of window text
54Icon %%SOURCE%%\installers\windows\install_icon.ico 54Icon %%SOURCE%%\res\imp_icon.ico
55UninstallIcon %%SOURCE%%\installers\windows\uninstall_icon.ico 55UninstallIcon %%SOURCE%%\res\imp_icon.ico
56WindowIcon on ; show our icon in left corner 56WindowIcon on ; show our icon in left corner
57BGGradient off ; no big background window 57BGGradient off ; no big background window
58CRCCheck on ; make sure CRC is OK 58CRCCheck on ; make sure CRC is OK
diff --git a/linden/indra/newview/llagent.cpp b/linden/indra/newview/llagent.cpp
index 800264d..0b9f646 100644
--- a/linden/indra/newview/llagent.cpp
+++ b/linden/indra/newview/llagent.cpp
@@ -7386,7 +7386,10 @@ void LLAgent::sendAgentSetAppearance()
7386 msg->addU8Fast(_PREHASH_TextureIndex, (U8)texture_index); 7386 msg->addU8Fast(_PREHASH_TextureIndex, (U8)texture_index);
7387 } 7387 }
7388 msg->nextBlockFast(_PREHASH_ObjectData); 7388 msg->nextBlockFast(_PREHASH_ObjectData);
7389 mAvatarObject->packTEMessage( gMessageSystem ); 7389 mAvatarObject->packTEMessage (
7390 gMessageSystem,
7391 gSavedSettings.getBOOL("ClothingLayerProtection")
7392 );
7390 } 7393 }
7391 else 7394 else
7392 { 7395 {
diff --git a/linden/indra/newview/llappviewer.cpp b/linden/indra/newview/llappviewer.cpp
index 69e80b5..f1c6064 100644
--- a/linden/indra/newview/llappviewer.cpp
+++ b/linden/indra/newview/llappviewer.cpp
@@ -739,6 +739,15 @@ bool LLAppViewer::init()
739 // 739 //
740 initWindow(); 740 initWindow();
741 741
742 {
743 BOOL download = gSavedSettings.getBOOL("DownloadClientTags");
744
745 if(download)
746 {
747 LLVOAvatar::updateClientTags();
748 }
749 }
750
742 // call all self-registered classes 751 // call all self-registered classes
743 LLInitClassList::instance().fireCallbacks(); 752 LLInitClassList::instance().fireCallbacks();
744 753
diff --git a/linden/indra/newview/llchatbar.cpp b/linden/indra/newview/llchatbar.cpp
index 44d1ad1..1146c44 100644
--- a/linden/indra/newview/llchatbar.cpp
+++ b/linden/indra/newview/llchatbar.cpp
@@ -154,7 +154,7 @@ BOOL LLChatBar::postBuild()
154 mInputEditor->setPassDelete(TRUE); 154 mInputEditor->setPassDelete(TRUE);
155 mInputEditor->setReplaceNewlinesWithSpaces(FALSE); 155 mInputEditor->setReplaceNewlinesWithSpaces(FALSE);
156 156
157 mInputEditor->setMaxTextLength(1023); 157 mInputEditor->setMaxTextLength(DB_CHAT_MSG_STR_LEN);
158 mInputEditor->setEnableLineHistory(TRUE); 158 mInputEditor->setEnableLineHistory(TRUE);
159 } 159 }
160 160
@@ -624,8 +624,12 @@ void LLChatBar::sendChatFromViewer(const LLWString &wtext, EChatType type, BOOL
624 624
625 LLWString out_text = stripChannelNumber(wtext, &channel); 625 LLWString out_text = stripChannelNumber(wtext, &channel);
626 std::string utf8_out_text = wstring_to_utf8str(out_text); 626 std::string utf8_out_text = wstring_to_utf8str(out_text);
627 std::string utf8_text = wstring_to_utf8str(wtext); 627 if (!utf8_out_text.empty())
628 {
629 utf8_out_text = utf8str_truncate(utf8_out_text, MAX_MSG_STR_LEN);
630 }
628 631
632 std::string utf8_text = wstring_to_utf8str(wtext);
629 utf8_text = utf8str_trim(utf8_text); 633 utf8_text = utf8str_trim(utf8_text);
630 if (!utf8_text.empty()) 634 if (!utf8_text.empty())
631 { 635 {
diff --git a/linden/indra/newview/llcolorswatch.cpp b/linden/indra/newview/llcolorswatch.cpp
index 5f8d9ed..5905bb0 100644
--- a/linden/indra/newview/llcolorswatch.cpp
+++ b/linden/indra/newview/llcolorswatch.cpp
@@ -219,12 +219,11 @@ void LLColorSwatchCtrl::draw()
219 gl_rect_2d(interior, mColor, TRUE); 219 gl_rect_2d(interior, mColor, TRUE);
220 LLColor4 opaque_color = mColor; 220 LLColor4 opaque_color = mColor;
221 opaque_color.mV[VALPHA] = 1.f; 221 opaque_color.mV[VALPHA] = 1.f;
222 gGL.color4fv(opaque_color.mV);
223 if (mAlphaGradientImage.notNull()) 222 if (mAlphaGradientImage.notNull())
224 { 223 {
225 gGL.pushMatrix(); 224 gGL.pushMatrix();
226 { 225 {
227 mAlphaGradientImage->draw(interior, mColor); 226 mAlphaGradientImage->draw(interior, opaque_color);
228 } 227 }
229 gGL.popMatrix(); 228 gGL.popMatrix();
230 } 229 }
@@ -348,6 +347,8 @@ LLXMLNodePtr LLColorSwatchCtrl::getXML(bool save_children) const
348{ 347{
349 LLXMLNodePtr node = LLUICtrl::getXML(); 348 LLXMLNodePtr node = LLUICtrl::getXML();
350 349
350 node->setName(LL_COLOR_SWATCH_CTRL_TAG);
351
351 node->createChild("color", TRUE)->setFloatValue(4, mColor.mV); 352 node->createChild("color", TRUE)->setFloatValue(4, mColor.mV);
352 353
353 node->createChild("border_color", TRUE)->setFloatValue(4, mBorderColor.mV); 354 node->createChild("border_color", TRUE)->setFloatValue(4, mBorderColor.mV);
diff --git a/linden/indra/newview/llfirstuse.cpp b/linden/indra/newview/llfirstuse.cpp
index bea9260..877e586 100644
--- a/linden/indra/newview/llfirstuse.cpp
+++ b/linden/indra/newview/llfirstuse.cpp
@@ -45,6 +45,8 @@
45#include "llappviewer.h" 45#include "llappviewer.h"
46#include "lltracker.h" 46#include "lltracker.h"
47 47
48#include "llvoavatar.h"
49
48// [RLVa:KB] - Version: 1.22.11 50// [RLVa:KB] - Version: 1.22.11
49#include "llviewerwindow.h" 51#include "llviewerwindow.h"
50// [/RLVa:KB] 52// [/RLVa:KB]
@@ -292,3 +294,35 @@ void LLFirstUse::useMedia()
292 LLNotifications::instance().add("FirstMedia"); 294 LLNotifications::instance().add("FirstMedia");
293 } 295 }
294} 296}
297void LLFirstUse::callbackClientTags(const LLSD& notification, const LLSD& response)
298{
299 gSavedSettings.setWarning("ClientTags", FALSE);
300
301 S32 option = LLNotification::getSelectedOption(notification, response);
302
303 //LLFloaterAvatarList *avlist = LLFloaterAvatarList::sInstance;
304
305 if ( option == 0 )
306 {
307 gSavedSettings.setBOOL("DownloadClientTags",TRUE);
308 //printchat("The tags will not be updated until you restart.");
309 //fuck that shit
310 LLVOAvatar::updateClientTags();
311 LLVOAvatar::loadClientTags();
312 //boom
313 //toasty
314 }
315 else if ( option == 1 )
316 {
317 gSavedSettings.setBOOL("DownloadClientTags",FALSE);
318 }
319}
320// static
321void LLFirstUse::ClientTags()
322{
323 if (gSavedSettings.getWarning("ClientTags"))
324 {
325 LLNotifications::instance().add("QueryClientTags", LLSD(), LLSD(), callbackClientTags);
326 }
327}
328
diff --git a/linden/indra/newview/llfirstuse.h b/linden/indra/newview/llfirstuse.h
index 3305ffe..e327984 100644
--- a/linden/indra/newview/llfirstuse.h
+++ b/linden/indra/newview/llfirstuse.h
@@ -111,6 +111,8 @@ public:
111 static void useDebugMenus(); 111 static void useDebugMenus();
112 static void useSculptedPrim(); 112 static void useSculptedPrim();
113 static void useMedia(); 113 static void useMedia();
114 static void callbackClientTags(const LLSD& notification, const LLSD& response);
115 static void ClientTags();
114 116
115protected: 117protected:
116 static std::set<std::string> sConfigVariables; 118 static std::set<std::string> sConfigVariables;
diff --git a/linden/indra/newview/llhudeffectbeam.cpp b/linden/indra/newview/llhudeffectbeam.cpp
index 6cb3bef..a7c1214 100644
--- a/linden/indra/newview/llhudeffectbeam.cpp
+++ b/linden/indra/newview/llhudeffectbeam.cpp
@@ -312,6 +312,11 @@ void LLHUDEffectBeam::render()
312 } 312 }
313} 313}
314 314
315void LLHUDEffectBeam::renderForTimer()
316{
317 render();
318}
319
315void LLHUDEffectBeam::setupParticle(const S32 i) 320void LLHUDEffectBeam::setupParticle(const S32 i)
316{ 321{
317 LLVector3d start_pos_global; 322 LLVector3d start_pos_global;
diff --git a/linden/indra/newview/llhudeffectbeam.h b/linden/indra/newview/llhudeffectbeam.h
index 7365894..69e2b51 100644
--- a/linden/indra/newview/llhudeffectbeam.h
+++ b/linden/indra/newview/llhudeffectbeam.h
@@ -58,6 +58,7 @@ protected:
58 ~LLHUDEffectBeam(); 58 ~LLHUDEffectBeam();
59 59
60 /*virtual*/ void render(); 60 /*virtual*/ void render();
61 /*virtual*/ void renderForTimer();
61 /*virtual*/ void packData(LLMessageSystem *mesgsys); 62 /*virtual*/ void packData(LLMessageSystem *mesgsys);
62 /*virtual*/ void unpackData(LLMessageSystem *mesgsys, S32 blocknum); 63 /*virtual*/ void unpackData(LLMessageSystem *mesgsys, S32 blocknum);
63private: 64private:
diff --git a/linden/indra/newview/llhudeffecttrail.cpp b/linden/indra/newview/llhudeffecttrail.cpp
index 32b52f8..08f4c78 100644
--- a/linden/indra/newview/llhudeffecttrail.cpp
+++ b/linden/indra/newview/llhudeffecttrail.cpp
@@ -287,3 +287,8 @@ void LLHUDEffectSpiral::render()
287 return; 287 return;
288 } 288 }
289} 289}
290
291void LLHUDEffectSpiral::renderForTimer()
292{
293 render();
294}
diff --git a/linden/indra/newview/llhudeffecttrail.h b/linden/indra/newview/llhudeffecttrail.h
index 60836c2..033fbeb 100644
--- a/linden/indra/newview/llhudeffecttrail.h
+++ b/linden/indra/newview/llhudeffecttrail.h
@@ -68,6 +68,7 @@ protected:
68 ~LLHUDEffectSpiral(); 68 ~LLHUDEffectSpiral();
69 69
70 /*virtual*/ void render(); 70 /*virtual*/ void render();
71 /*virtual*/ void renderForTimer();
71 /*virtual*/ void packData(LLMessageSystem *mesgsys); 72 /*virtual*/ void packData(LLMessageSystem *mesgsys);
72 /*virtual*/ void unpackData(LLMessageSystem *mesgsys, S32 blocknum); 73 /*virtual*/ void unpackData(LLMessageSystem *mesgsys, S32 blocknum);
73private: 74private:
diff --git a/linden/indra/newview/llhudobject.cpp b/linden/indra/newview/llhudobject.cpp
index bdff492..ea6e0bf 100644
--- a/linden/indra/newview/llhudobject.cpp
+++ b/linden/indra/newview/llhudobject.cpp
@@ -308,6 +308,27 @@ void LLHUDObject::renderAllForSelect()
308} 308}
309 309
310// static 310// static
311void LLHUDObject::renderAllForTimer()
312{
313 LLHUDObject *hud_objp;
314
315 hud_object_list_t::iterator object_it;
316 for (object_it = sHUDObjects.begin(); object_it != sHUDObjects.end(); )
317 {
318 hud_object_list_t::iterator cur_it = object_it++;
319 hud_objp = (*cur_it);
320 if (hud_objp->getNumRefs() == 1)
321 {
322 sHUDObjects.erase(cur_it);
323 }
324 else if (hud_objp->isVisible())
325 {
326 hud_objp->renderForTimer();
327 }
328 }
329}
330
331// static
311void LLHUDObject::sortObjects() 332void LLHUDObject::sortObjects()
312{ 333{
313 sHUDObjects.sort(hud_object_further_away()); 334 sHUDObjects.sort(hud_object_further_away());
diff --git a/linden/indra/newview/llhudobject.h b/linden/indra/newview/llhudobject.h
index 2cd8abf..84c2f84 100644
--- a/linden/indra/newview/llhudobject.h
+++ b/linden/indra/newview/llhudobject.h
@@ -75,6 +75,7 @@ public:
75 static void updateAll(); 75 static void updateAll();
76 static void renderAll(); 76 static void renderAll();
77 static void renderAllForSelect(); 77 static void renderAllForSelect();
78 static void renderAllForTimer();
78 79
79 static void cleanupHUDObjects(); 80 static void cleanupHUDObjects();
80 81
@@ -106,6 +107,7 @@ protected:
106 107
107 virtual void render() = 0; 108 virtual void render() = 0;
108 virtual void renderForSelect() {}; 109 virtual void renderForSelect() {};
110 virtual void renderForTimer() {};
109 111
110protected: 112protected:
111 U8 mType; 113 U8 mType;
diff --git a/linden/indra/newview/llimpanel.cpp b/linden/indra/newview/llimpanel.cpp
index a5950ce..9a044d7 100644
--- a/linden/indra/newview/llimpanel.cpp
+++ b/linden/indra/newview/llimpanel.cpp
@@ -47,6 +47,7 @@
47#include "llbutton.h" 47#include "llbutton.h"
48#include "llcallingcard.h" 48#include "llcallingcard.h"
49#include "llchat.h" 49#include "llchat.h"
50#include "llcombobox.h"
50#include "llconsole.h" 51#include "llconsole.h"
51#include "llfloater.h" 52#include "llfloater.h"
52#include "llfloatergroupinfo.h" 53#include "llfloatergroupinfo.h"
@@ -60,6 +61,7 @@
60#include "llfloaterchat.h" 61#include "llfloaterchat.h"
61#include "llkeyboard.h" 62#include "llkeyboard.h"
62#include "lllineeditor.h" 63#include "lllineeditor.h"
64#include "llmenucommands.h"
63#include "llnotify.h" 65#include "llnotify.h"
64#include "llresmgr.h" 66#include "llresmgr.h"
65#include "lltabcontainer.h" 67#include "lltabcontainer.h"
@@ -1080,6 +1082,7 @@ LLFloaterIMPanel::LLFloaterIMPanel(
1080 LLFloater(session_label, LLRect(), session_label), 1082 LLFloater(session_label, LLRect(), session_label),
1081 mInputEditor(NULL), 1083 mInputEditor(NULL),
1082 mHistoryEditor(NULL), 1084 mHistoryEditor(NULL),
1085 mComboIM(NULL),
1083 mSessionUUID(session_id), 1086 mSessionUUID(session_id),
1084 mVoiceChannel(NULL), 1087 mVoiceChannel(NULL),
1085 mSessionInitialized(FALSE), 1088 mSessionInitialized(FALSE),
@@ -1197,7 +1200,7 @@ void LLFloaterIMPanel::init(const std::string& session_label)
1197 1200
1198 setTitle(mSessionLabel); 1201 setTitle(mSessionLabel);
1199 1202
1200 mInputEditor->setMaxTextLength(1023); 1203 mInputEditor->setMaxTextLength(DB_IM_MSG_STR_LEN);
1201 // enable line history support for instant message bar 1204 // enable line history support for instant message bar
1202 mInputEditor->setEnableLineHistory(TRUE); 1205 mInputEditor->setEnableLineHistory(TRUE);
1203 1206
@@ -1296,7 +1299,17 @@ BOOL LLFloaterIMPanel::postBuild()
1296 mInputEditor->setRevertOnEsc( FALSE ); 1299 mInputEditor->setRevertOnEsc( FALSE );
1297 mInputEditor->setReplaceNewlinesWithSpaces( FALSE ); 1300 mInputEditor->setReplaceNewlinesWithSpaces( FALSE );
1298 1301
1299 childSetAction("profile_callee_btn", onClickProfile, this); 1302 // Profile combobox in floater_instant_message.xml
1303 mComboIM = getChild<LLComboBox>("profile_callee_btn");
1304 mComboIM->setCommitCallback(onCommitCombo);
1305 mComboIM->setCallbackUserData(this);
1306
1307#ifdef LL_WINDOWS
1308 mComboIM->add(getString("history_entry"));
1309#endif
1310 mComboIM->add(getString("pay_entry"));
1311 mComboIM->add(getString("teleport_entry"));
1312
1300 childSetAction("group_info_btn", onClickGroupInfo, this); 1313 childSetAction("group_info_btn", onClickGroupInfo, this);
1301 childSetAction("history_btn", onClickHistory, this); 1314 childSetAction("history_btn", onClickHistory, this);
1302 1315
@@ -1304,7 +1317,6 @@ BOOL LLFloaterIMPanel::postBuild()
1304 childSetAction("end_call_btn", onClickEndCall, this); 1317 childSetAction("end_call_btn", onClickEndCall, this);
1305 childSetAction("send_btn", onClickSend, this); 1318 childSetAction("send_btn", onClickSend, this);
1306 childSetAction("toggle_active_speakers_btn", onClickToggleActiveSpeakers, this); 1319 childSetAction("toggle_active_speakers_btn", onClickToggleActiveSpeakers, this);
1307 childSetAction("offer_tp_btn", onClickOfferTeleport, this);
1308 1320
1309 childSetAction("moderator_kick_speaker", onKickSpeaker, this); 1321 childSetAction("moderator_kick_speaker", onKickSpeaker, this);
1310 //LLButton* close_btn = getChild<LLButton>("close_btn"); 1322 //LLButton* close_btn = getChild<LLButton>("close_btn");
@@ -1792,26 +1804,6 @@ void LLFloaterIMPanel::onTabClick(void* userdata)
1792} 1804}
1793 1805
1794// static 1806// static
1795void LLFloaterIMPanel::onClickOfferTeleport(void* userdata)
1796{
1797 LLFloaterIMPanel* self = (LLFloaterIMPanel*) userdata;
1798
1799 handle_lure(self->mOtherParticipantUUID);
1800}
1801
1802// static
1803void LLFloaterIMPanel::onClickProfile( void* userdata )
1804{
1805 // Bring up the Profile window
1806 LLFloaterIMPanel* self = (LLFloaterIMPanel*) userdata;
1807
1808 if (self->mOtherParticipantUUID.notNull())
1809 {
1810 LLFloaterAvatarInfo::showFromDirectory(self->getOtherParticipantID());
1811 }
1812}
1813
1814// static
1815void LLFloaterIMPanel::onClickHistory( void* userdata ) 1807void LLFloaterIMPanel::onClickHistory( void* userdata )
1816{ 1808{
1817 LLFloaterIMPanel* self = (LLFloaterIMPanel*) userdata; 1809 LLFloaterIMPanel* self = (LLFloaterIMPanel*) userdata;
@@ -1904,6 +1896,67 @@ void LLFloaterIMPanel::onCommitChat(LLUICtrl* caller, void* userdata)
1904} 1896}
1905 1897
1906// static 1898// static
1899void LLFloaterIMPanel::onCommitCombo(LLUICtrl* caller, void* userdata)
1900{
1901 LLFloaterIMPanel* self = (LLFloaterIMPanel*) userdata;
1902 LLCtrlListInterface* options = self->mComboIM ? self->mComboIM->getListInterface() : NULL;
1903 if (options)
1904 {
1905 S32 index = options->getFirstSelectedIndex();
1906 if (index < 0)
1907 {
1908 // Open profile or group window
1909 if (self->mOtherParticipantUUID.notNull())
1910 {
1911 LLFloaterAvatarInfo::showFromDirectory(self->getOtherParticipantID());
1912 }
1913 return;
1914 }
1915
1916 std::string selected = self->mComboIM->getSelectedValue().asString();
1917 if (selected == self->getString("history_entry"))
1918 {
1919 if (self->mOtherParticipantUUID.notNull())
1920 {
1921 struct stat fileInfo;
1922 int result;
1923
1924 std::string fullname = self->getTitle();;
1925 //gCacheName->getFullName(self->mOtherParticipantUUID, fullname);
1926 //if(fullname == "(Loading...)")
1927 std::string file_path = gDirUtilp->getPerAccountChatLogsDir() + "\\" + fullname + ".txt";
1928
1929 // check if file exists by trying to get its attributes
1930 result = stat(file_path.c_str(), &fileInfo);
1931 if(result == 0)
1932 {
1933 char command[256];
1934 sprintf(command, "\"%s\\%s.txt\"", gDirUtilp->getPerAccountChatLogsDir().c_str(),fullname.c_str());
1935 gViewerWindow->getWindow()->ShellEx(command);
1936
1937 llinfos << command << llendl;
1938 }
1939 else
1940 {
1941 LLSD args;
1942 args["[NAME]"] = fullname;
1943 LLNotifications::instance().add("IMLogNotFound", args);
1944 llinfos << file_path << llendl;
1945 }
1946 }
1947 }
1948 else if (selected == self->getString("pay_entry"))
1949 {
1950 handle_pay_by_id(self->mOtherParticipantUUID);
1951 }
1952 else if (selected == self->getString("teleport_entry"))
1953 {
1954 handle_lure(self->mOtherParticipantUUID);
1955 }
1956 }
1957}
1958
1959// static
1907void LLFloaterIMPanel::onInputEditorFocusReceived( LLFocusableElement* caller, void* userdata ) 1960void LLFloaterIMPanel::onInputEditorFocusReceived( LLFocusableElement* caller, void* userdata )
1908{ 1961{
1909 LLFloaterIMPanel* self= (LLFloaterIMPanel*) userdata; 1962 LLFloaterIMPanel* self= (LLFloaterIMPanel*) userdata;
@@ -2052,6 +2105,8 @@ void LLFloaterIMPanel::sendMsg()
2052 LLWString text = mInputEditor->getConvertedText(); 2105 LLWString text = mInputEditor->getConvertedText();
2053 if(!text.empty()) 2106 if(!text.empty())
2054 { 2107 {
2108 // store sent line in history, duplicates will get filtered
2109 if (mInputEditor) mInputEditor->updateHistory();
2055 // Truncate and convert to UTF8 for transport 2110 // Truncate and convert to UTF8 for transport
2056 std::string utf8_text = wstring_to_utf8str(text); 2111 std::string utf8_text = wstring_to_utf8str(text);
2057 utf8_text = utf8str_truncate(utf8_text, MAX_MSG_BUF_SIZE - 1); 2112 utf8_text = utf8str_truncate(utf8_text, MAX_MSG_BUF_SIZE - 1);
diff --git a/linden/indra/newview/llimpanel.h b/linden/indra/newview/llimpanel.h
index f3477bb..24f5c9b 100644
--- a/linden/indra/newview/llimpanel.h
+++ b/linden/indra/newview/llimpanel.h
@@ -47,6 +47,7 @@ class LLInventoryItem;
47class LLInventoryCategory; 47class LLInventoryCategory;
48class LLIMSpeakerMgr; 48class LLIMSpeakerMgr;
49class LLPanelActiveSpeakers; 49class LLPanelActiveSpeakers;
50class LLComboBox;
50 51
51class LLVoiceChannel : public LLVoiceClientStatusObserver 52class LLVoiceChannel : public LLVoiceClientStatusObserver
52{ 53{
@@ -228,12 +229,11 @@ public:
228 static void onInputEditorFocusLost(LLFocusableElement* caller, void* userdata); 229 static void onInputEditorFocusLost(LLFocusableElement* caller, void* userdata);
229 static void onInputEditorKeystroke(LLLineEditor* caller, void* userdata); 230 static void onInputEditorKeystroke(LLLineEditor* caller, void* userdata);
230 static void onCommitChat(LLUICtrl* caller, void* userdata); 231 static void onCommitChat(LLUICtrl* caller, void* userdata);
232 static void onCommitCombo(LLUICtrl* caller, void* userdata);
231 static void onTabClick( void* userdata ); 233 static void onTabClick( void* userdata );
232 234
233 static void onClickProfile( void* userdata );
234 static void onClickHistory( void* userdata ); 235 static void onClickHistory( void* userdata );
235 static void onClickGroupInfo( void* userdata ); 236 static void onClickGroupInfo( void* userdata );
236 static void onClickOfferTeleport( void* userdata );
237 static void onClickClose( void* userdata ); 237 static void onClickClose( void* userdata );
238 static void onClickStartCall( void* userdata ); 238 static void onClickStartCall( void* userdata );
239 static void onClickEndCall( void* userdata ); 239 static void onClickEndCall( void* userdata );
@@ -300,6 +300,7 @@ private:
300private: 300private:
301 LLLineEditor* mInputEditor; 301 LLLineEditor* mInputEditor;
302 LLViewerTextEditor* mHistoryEditor; 302 LLViewerTextEditor* mHistoryEditor;
303 LLComboBox* mComboIM;
303 304
304 // The value of the mSessionUUID depends on how the IM session was started: 305 // The value of the mSessionUUID depends on how the IM session was started:
305 // one-on-one ==> random id 306 // one-on-one ==> random id
diff --git a/linden/indra/newview/llinventoryview.cpp b/linden/indra/newview/llinventoryview.cpp
index f0bfa00..97df7a3 100644
--- a/linden/indra/newview/llinventoryview.cpp
+++ b/linden/indra/newview/llinventoryview.cpp
@@ -1654,6 +1654,8 @@ LLXMLNodePtr LLInventoryPanel::getXML(bool save_children) const
1654{ 1654{
1655 LLXMLNodePtr node = LLPanel::getXML(false); // Do not print out children 1655 LLXMLNodePtr node = LLPanel::getXML(false); // Do not print out children
1656 1656
1657 node->setName(LL_INVENTORY_PANEL_TAG);
1658
1657 node->createChild("allow_multi_select", TRUE)->setBoolValue(mFolders->getAllowMultiSelect()); 1659 node->createChild("allow_multi_select", TRUE)->setBoolValue(mFolders->getAllowMultiSelect());
1658 1660
1659 return node; 1661 return node;
diff --git a/linden/indra/newview/lljoystickbutton.cpp b/linden/indra/newview/lljoystickbutton.cpp
index 326c511..05c5e41 100644
--- a/linden/indra/newview/lljoystickbutton.cpp
+++ b/linden/indra/newview/lljoystickbutton.cpp
@@ -248,16 +248,10 @@ EJoystickQuadrant LLJoystick::quadrantFromName(const std::string& sQuadrant)
248 248
249LLXMLNodePtr LLJoystick::getXML(bool save_children) const 249LLXMLNodePtr LLJoystick::getXML(bool save_children) const
250{ 250{
251 LLXMLNodePtr node = LLUICtrl::getXML(); 251 LLXMLNodePtr node = LLButton::getXML();
252 252
253 node->createChild("halign", TRUE)->setStringValue(LLFontGL::nameFromHAlign(getHAlign()));
254 node->createChild("quadrant", TRUE)->setStringValue(nameFromQuadrant(mInitialQuadrant)); 253 node->createChild("quadrant", TRUE)->setStringValue(nameFromQuadrant(mInitialQuadrant));
255
256 addImageAttributeToXML(node,getImageUnselectedName(),getImageUnselectedID(),std::string("image_unselected"));
257 addImageAttributeToXML(node,getImageSelectedName(),getImageSelectedID(),std::string("image_selected"));
258 254
259 node->createChild("scale_image", TRUE)->setBoolValue(getScaleImage());
260
261 return node; 255 return node;
262} 256}
263 257
@@ -327,6 +321,15 @@ void LLJoystickAgentTurn::onHeldDown()
327 } 321 }
328} 322}
329 323
324LLXMLNodePtr LLJoystickAgentTurn::getXML(bool save_children) const
325{
326 LLXMLNodePtr node = LLJoystick::getXML();
327
328 node->setName(LL_JOYSTICK_TURN);
329
330 return node;
331}
332
330LLView* LLJoystickAgentTurn::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory) 333LLView* LLJoystickAgentTurn::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
331{ 334{
332 std::string name("button"); 335 std::string name("button");
@@ -435,6 +438,15 @@ void LLJoystickAgentSlide::onHeldDown()
435} 438}
436 439
437 440
441LLXMLNodePtr LLJoystickAgentSlide::getXML(bool save_children) const
442{
443 LLXMLNodePtr node = LLJoystick::getXML();
444
445 node->setName(LL_JOYSTICK_SLIDE);
446
447 return node;
448}
449
438// static 450// static
439LLView* LLJoystickAgentSlide::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory) 451LLView* LLJoystickAgentSlide::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
440{ 452{
diff --git a/linden/indra/newview/lljoystickbutton.h b/linden/indra/newview/lljoystickbutton.h
index 076a506..b26851f 100644
--- a/linden/indra/newview/lljoystickbutton.h
+++ b/linden/indra/newview/lljoystickbutton.h
@@ -97,6 +97,7 @@ public:
97 97
98 virtual void onHeldDown(); 98 virtual void onHeldDown();
99 99
100 virtual LLXMLNodePtr getXML(bool save_children = true) const;
100 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory); 101 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory);
101 102
102}; 103};
@@ -114,6 +115,7 @@ public:
114 virtual void onHeldDown(); 115 virtual void onHeldDown();
115 virtual void onMouseUp(); 116 virtual void onMouseUp();
116 117
118 virtual LLXMLNodePtr getXML(bool save_children = true) const;
117 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory); 119 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory);
118}; 120};
119 121
diff --git a/linden/indra/newview/llnameeditor.cpp b/linden/indra/newview/llnameeditor.cpp
index e4a6573..5997369 100644
--- a/linden/indra/newview/llnameeditor.cpp
+++ b/linden/indra/newview/llnameeditor.cpp
@@ -141,6 +141,16 @@ LLSD LLNameEditor::getValue() const
141 return LLSD(mNameID); 141 return LLSD(mNameID);
142} 142}
143 143
144// virtual
145LLXMLNodePtr LLNameEditor::getXML(bool save_children) const
146{
147 LLXMLNodePtr node = LLLineEditor::getXML();
148
149 node->setName(LL_NAME_EDITOR_TAG);
150
151 return node;
152}
153
144LLView* LLNameEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory) 154LLView* LLNameEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
145{ 155{
146 std::string name("name_editor"); 156 std::string name("name_editor");
diff --git a/linden/indra/newview/llnameeditor.h b/linden/indra/newview/llnameeditor.h
index bc5a678..964682c 100644
--- a/linden/indra/newview/llnameeditor.h
+++ b/linden/indra/newview/llnameeditor.h
@@ -62,6 +62,7 @@ public:
62 62
63 virtual ~LLNameEditor(); 63 virtual ~LLNameEditor();
64 64
65 virtual LLXMLNodePtr getXML(bool save_children = true) const;
65 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory); 66 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory);
66 67
67 void setNameID(const LLUUID& name_id, BOOL is_group); 68 void setNameID(const LLUUID& name_id, BOOL is_group);
diff --git a/linden/indra/newview/llnamelistctrl.cpp b/linden/indra/newview/llnamelistctrl.cpp
index baf0656..453cf7f 100644
--- a/linden/indra/newview/llnamelistctrl.cpp
+++ b/linden/indra/newview/llnamelistctrl.cpp
@@ -288,6 +288,8 @@ LLXMLNodePtr LLNameListCtrl::getXML(bool save_children) const
288{ 288{
289 LLXMLNodePtr node = LLScrollListCtrl::getXML(); 289 LLXMLNodePtr node = LLScrollListCtrl::getXML();
290 290
291 node->setName(LL_NAME_LIST_CTRL_TAG);
292
291 node->createChild("allow_calling_card_drop", TRUE)->setBoolValue(mAllowCallingCardDrop); 293 node->createChild("allow_calling_card_drop", TRUE)->setBoolValue(mAllowCallingCardDrop);
292 294
293 if (mNameColumnIndex != 0) 295 if (mNameColumnIndex != 0)
diff --git a/linden/indra/newview/llpanelinput.cpp b/linden/indra/newview/llpanelinput.cpp
index 4b94435..d530d67 100644
--- a/linden/indra/newview/llpanelinput.cpp
+++ b/linden/indra/newview/llpanelinput.cpp
@@ -64,6 +64,8 @@ BOOL LLPanelInput::postBuild()
64 childSetValue("invert_mouse", gSavedSettings.getBOOL("InvertMouse")); 64 childSetValue("invert_mouse", gSavedSettings.getBOOL("InvertMouse"));
65 childSetValue("edit_camera_movement", gSavedSettings.getBOOL("EditCameraMovement")); 65 childSetValue("edit_camera_movement", gSavedSettings.getBOOL("EditCameraMovement"));
66 childSetValue("appearance_camera_movement", gSavedSettings.getBOOL("AppearanceCameraMovement")); 66 childSetValue("appearance_camera_movement", gSavedSettings.getBOOL("AppearanceCameraMovement"));
67 childSetValue("zoom_time", gSavedSettings.getF32("ZoomTime"));
68 childSetValue("camera_position_smoothing", gSavedSettings.getF32("CameraPositionSmoothing"));
67 childSetValue("first_person_avatar_visible", gSavedSettings.getBOOL("FirstPersonAvatarVisible")); 69 childSetValue("first_person_avatar_visible", gSavedSettings.getBOOL("FirstPersonAvatarVisible"));
68 70
69 LLSliderCtrl* fov_slider = getChild<LLSliderCtrl>("camera_fov"); 71 LLSliderCtrl* fov_slider = getChild<LLSliderCtrl>("camera_fov");
@@ -95,6 +97,8 @@ void LLPanelInput::apply()
95 gSavedSettings.setBOOL("EditCameraMovement", childGetValue("edit_camera_movement")); 97 gSavedSettings.setBOOL("EditCameraMovement", childGetValue("edit_camera_movement"));
96 gSavedSettings.setBOOL("AppearanceCameraMovement", childGetValue("appearance_camera_movement")); 98 gSavedSettings.setBOOL("AppearanceCameraMovement", childGetValue("appearance_camera_movement"));
97 gSavedSettings.setF32("CameraAngle", mPreAdjustFOV); 99 gSavedSettings.setF32("CameraAngle", mPreAdjustFOV);
100 gSavedSettings.setF32("ZoomTime", childGetValue("zoom_time").asReal());
101 gSavedSettings.setF32("CameraPositionSmoothing", childGetValue("camera_position_smoothing").asReal());
98 gSavedSettings.setBOOL("FirstPersonAvatarVisible", childGetValue("first_person_avatar_visible")); 102 gSavedSettings.setBOOL("FirstPersonAvatarVisible", childGetValue("first_person_avatar_visible"));
99 103
100 gSavedSettings.setString("DoubleClickAction", childGetValue("double_click_action")); 104 gSavedSettings.setString("DoubleClickAction", childGetValue("double_click_action"));
diff --git a/linden/indra/newview/llpreviewscript.cpp b/linden/indra/newview/llpreviewscript.cpp
index ccec75b..2718c2f 100644
--- a/linden/indra/newview/llpreviewscript.cpp
+++ b/linden/indra/newview/llpreviewscript.cpp
@@ -1418,7 +1418,14 @@ void LLPreviewLSL::uploadAssetViaCaps(const std::string& url,
1418 llinfos << "Update Agent Inventory via capability" << llendl; 1418 llinfos << "Update Agent Inventory via capability" << llendl;
1419 LLSD body; 1419 LLSD body;
1420 body["item_id"] = item_id; 1420 body["item_id"] = item_id;
1421 body["target"] = "lsl2"; 1421 if (gSavedSettings.getBOOL("SaveInventoryScriptsAsMono"))
1422 {
1423 body["target"] = "mono";
1424 }
1425 else
1426 {
1427 body["target"] = "lsl2";
1428 }
1422 LLHTTPClient::post(url, body, new LLUpdateAgentInventoryResponder(body, filename, LLAssetType::AT_LSL_TEXT)); 1429 LLHTTPClient::post(url, body, new LLUpdateAgentInventoryResponder(body, filename, LLAssetType::AT_LSL_TEXT));
1423} 1430}
1424 1431
diff --git a/linden/indra/newview/llstartup.cpp b/linden/indra/newview/llstartup.cpp
index c5bf2c7..143aa34 100644
--- a/linden/indra/newview/llstartup.cpp
+++ b/linden/indra/newview/llstartup.cpp
@@ -2582,6 +2582,8 @@ bool idle_startup()
2582 { 2582 {
2583 set_startup_status(1.0, "", ""); 2583 set_startup_status(1.0, "", "");
2584 2584
2585 LLFirstUse::ClientTags();
2586
2585 // Let the map know about the inventory. 2587 // Let the map know about the inventory.
2586 if(gFloaterWorldMap) 2588 if(gFloaterWorldMap)
2587 { 2589 {
diff --git a/linden/indra/newview/lltexturectrl.cpp b/linden/indra/newview/lltexturectrl.cpp
index c4ea71e..5500973 100644
--- a/linden/indra/newview/lltexturectrl.cpp
+++ b/linden/indra/newview/lltexturectrl.cpp
@@ -969,6 +969,8 @@ LLXMLNodePtr LLTextureCtrl::getXML(bool save_children) const
969{ 969{
970 LLXMLNodePtr node = LLUICtrl::getXML(); 970 LLXMLNodePtr node = LLUICtrl::getXML();
971 971
972 node->setName(LL_TEXTURE_CTRL_TAG);
973
972 node->createChild("label", TRUE)->setStringValue(getLabel()); 974 node->createChild("label", TRUE)->setStringValue(getLabel());
973 975
974 node->createChild("default_image_name", TRUE)->setStringValue(getDefaultImageName()); 976 node->createChild("default_image_name", TRUE)->setStringValue(getDefaultImageName());
diff --git a/linden/indra/newview/llviewertexteditor.cpp b/linden/indra/newview/llviewertexteditor.cpp
index 296c540..e5e2cd6 100644
--- a/linden/indra/newview/llviewertexteditor.cpp
+++ b/linden/indra/newview/llviewertexteditor.cpp
@@ -1555,6 +1555,16 @@ BOOL LLViewerTextEditor::exportBuffer( std::string& buffer )
1555 return TRUE; 1555 return TRUE;
1556} 1556}
1557 1557
1558// virtual
1559LLXMLNodePtr LLViewerTextEditor::getXML(bool save_children) const
1560{
1561 LLXMLNodePtr node = LLTextEditor::getXML();
1562
1563 node->setName(LL_TEXT_EDITOR_TAG);
1564
1565 return node;
1566}
1567
1558LLView* LLViewerTextEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory) 1568LLView* LLViewerTextEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
1559{ 1569{
1560 std::string name("text_editor"); 1570 std::string name("text_editor");
diff --git a/linden/indra/newview/llviewertexteditor.h b/linden/indra/newview/llviewertexteditor.h
index f29caee..c69b3f0 100644
--- a/linden/indra/newview/llviewertexteditor.h
+++ b/linden/indra/newview/llviewertexteditor.h
@@ -54,6 +54,7 @@ public:
54 54
55 virtual void makePristine(); 55 virtual void makePristine();
56 56
57 virtual LLXMLNodePtr getXML(bool save_children = true) const;
57 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory); 58 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory);
58 59
59 // mousehandler overrides 60 // mousehandler overrides
diff --git a/linden/indra/newview/llvoavatar.cpp b/linden/indra/newview/llvoavatar.cpp
index 7e1c6ca..c361f49 100644
--- a/linden/indra/newview/llvoavatar.cpp
+++ b/linden/indra/newview/llvoavatar.cpp
@@ -83,6 +83,8 @@
83#include "llvoiceclient.h" 83#include "llvoiceclient.h"
84#include "llvoicevisualizer.h" // Ventrella 84#include "llvoicevisualizer.h" // Ventrella
85 85
86#include "llsdserialize.h" // client resolver
87
86#if LL_WINDOWS 88#if LL_WINDOWS
87 // Disable warning for unreachable code in boost/lexical_cast.hpp for Boost 1.36 -- McCabe 89 // Disable warning for unreachable code in boost/lexical_cast.hpp for Boost 1.36 -- McCabe
88 #pragma warning(disable : 4702) 90 #pragma warning(disable : 4702)
@@ -169,7 +171,7 @@ const F32 TIME_BEFORE_MESH_CLEANUP = 5.f; // seconds
169const S32 AVATAR_RELEASE_THRESHOLD = 10; // number of avatar instances before releasing memory 171const S32 AVATAR_RELEASE_THRESHOLD = 10; // number of avatar instances before releasing memory
170const F32 FOOT_GROUND_COLLISION_TOLERANCE = 0.25f; 172const F32 FOOT_GROUND_COLLISION_TOLERANCE = 0.25f;
171const F32 AVATAR_LOD_TWEAK_RANGE = 0.7f; 173const F32 AVATAR_LOD_TWEAK_RANGE = 0.7f;
172const S32 MAX_BUBBLE_CHAT_LENGTH = 1023; 174const S32 MAX_BUBBLE_CHAT_LENGTH = DB_CHAT_MSG_STR_LEN;
173const S32 MAX_BUBBLE_CHAT_UTTERANCES = 12; 175const S32 MAX_BUBBLE_CHAT_UTTERANCES = 12;
174const F32 CHAT_FADE_TIME = 8.0; 176const F32 CHAT_FADE_TIME = 8.0;
175const F32 BUBBLE_CHAT_TIME = CHAT_FADE_TIME * 3.f; 177const F32 BUBBLE_CHAT_TIME = CHAT_FADE_TIME * 3.f;
@@ -678,6 +680,7 @@ S32 LLVOAvatar::sScratchTexBytes = 0;
678F32 LLVOAvatar::sRenderDistance = 256.f; 680F32 LLVOAvatar::sRenderDistance = 256.f;
679S32 LLVOAvatar::sNumVisibleAvatars = 0; 681S32 LLVOAvatar::sNumVisibleAvatars = 0;
680S32 LLVOAvatar::sNumLODChangesThisFrame = 0; 682S32 LLVOAvatar::sNumLODChangesThisFrame = 0;
683LLSD LLVOAvatar::sClientResolutionList;
681 684
682const LLUUID LLVOAvatar::sStepSoundOnLand = LLUUID("e8af4a28-aa83-4310-a7c4-c047e15ea0df"); 685const LLUUID LLVOAvatar::sStepSoundOnLand = LLUUID("e8af4a28-aa83-4310-a7c4-c047e15ea0df");
683const LLUUID LLVOAvatar::sStepSounds[LL_MCODE_END] = 686const LLUUID LLVOAvatar::sStepSounds[LL_MCODE_END] =
@@ -1402,6 +1405,9 @@ void LLVOAvatar::initClass()
1402 llerrs << "Error parsing skeleton node in avatar XML file: " << skeleton_path << llendl; 1405 llerrs << "Error parsing skeleton node in avatar XML file: " << skeleton_path << llendl;
1403 } 1406 }
1404 1407
1408 {
1409 loadClientTags();
1410 }
1405} 1411}
1406 1412
1407 1413
@@ -2971,6 +2977,228 @@ void LLVOAvatar::idleUpdateWindEffect()
2971 } 2977 }
2972 } 2978 }
2973} 2979}
2980bool LLVOAvatar::updateClientTags()
2981{
2982 std::string client_list_filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "client_list.xml");
2983 LLSD response = LLHTTPClient::blockingGet("http://www.imprudenceviewer.org/app/client_list/client_list.xml");
2984 if(response.has("body"))
2985 {
2986 const LLSD &client_list = response["body"];
2987
2988 if(client_list.has("isComplete"))
2989 {
2990 llofstream export_file;
2991 export_file.open(client_list_filename);
2992 LLSDSerialize::toPrettyXML(client_list, export_file);
2993 export_file.close();
2994 return true;
2995 }
2996 }
2997 return false;
2998}
2999
3000bool LLVOAvatar::loadClientTags()
3001{
3002 std::string client_list_filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "client_list.xml");
3003
3004 if(!LLFile::isfile(client_list_filename))
3005 {
3006 client_list_filename = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "client_list.xml");
3007 }
3008
3009 if(LLFile::isfile(client_list_filename))
3010 {
3011 LLSD client_list;
3012
3013 llifstream importer(client_list_filename);
3014 LLSDSerialize::fromXMLDocument(client_list, importer);
3015 if(client_list.has("isComplete"))
3016 {
3017 sClientResolutionList = client_list;
3018 }else
3019 {
3020 return false;
3021 }
3022 }else
3023 {
3024 return false;
3025 }
3026
3027 for (std::vector<LLCharacter*>::iterator iter = LLCharacter::sInstances.begin();
3028 iter != LLCharacter::sInstances.end(); ++iter)
3029 {
3030 LLVOAvatar* avatarp = (LLVOAvatar*) *iter;
3031 if(avatarp)
3032 {
3033 LLVector3 root_pos_last = avatarp->mRoot.getWorldPosition();
3034 avatarp->idleUpdateNameTag(root_pos_last);
3035 }
3036 }
3037 return true;
3038}
3039
3040void LLVOAvatar::resolveClient(LLColor4& avatar_name_color, std::string& client, LLVOAvatar* avatar)
3041{
3042 LLUUID idx = avatar->getTE(0)->getID();
3043 if(LLVOAvatar::sClientResolutionList.has("isComplete")
3044 && LLVOAvatar::sClientResolutionList.has(idx.asString()))
3045 {
3046 LLSD cllsd = LLVOAvatar::sClientResolutionList[idx.asString()];
3047 client = cllsd["name"].asString();
3048 LLColor4 colour;
3049 colour.setValue(cllsd["color"]);
3050 avatar_name_color += colour;
3051 avatar_name_color *= 1.0/(cllsd["multiple"].asReal()+1.0f);
3052 }
3053 else
3054 {
3055
3056 if(idx == LLUUID("cc7a030f-282f-c165-44d2-b5ee572e72bf"))
3057 {
3058 avatar_name_color += LLColor4(0.6f,0.8f,1.0f);//Imprudence
3059 avatar_name_color = avatar_name_color * (F32)0.333333333333;
3060 client = "Imprudence";
3061
3062 } else if(idx == LLUUID("2a9a406c-f448-68f2-4e38-878f8c46c190"))
3063 {
3064 avatar_name_color += LLColor4(1.0f,0.9f,0.7f);//Meerkat
3065 avatar_name_color = avatar_name_color * (F32)0.333333333333;
3066 client = "Meerkat";
3067 }else if(idx == LLUUID("ccda2b3b-e72c-a112-e126-fee238b67218"))
3068 {
3069 avatar_name_color += LLColor4::green;//emerald
3070 avatar_name_color += LLColor4::green;
3071 avatar_name_color = avatar_name_color * (F32)0.333333333333;
3072 client = "Emerald";
3073 }else if(idx == LLUUID("c252d89d-6f7c-7d90-f430-d140d2e3fbbe"))
3074 {
3075 avatar_name_color += LLColor4::red;//vlife jcool410
3076 avatar_name_color = avatar_name_color * 0.5;
3077 client = "VLife";
3078 }else if(idx == LLUUID("adcbe893-7643-fd12-f61c-0b39717e2e32"))
3079 {
3080 avatar_name_color += LLColor4::pink;//tyk3n
3081 avatar_name_color = avatar_name_color * 0.5;
3082 client = "tyk3n";
3083 }else if(idx == LLUUID("f3fd74a6-fee7-4b2f-93ae-ddcb5991da04") || idx == LLUUID("77662f23-c77a-9b4d-5558-26b757b2144c"))
3084 {
3085 avatar_name_color += (LLColor4::purple);//psl
3086 avatar_name_color = avatar_name_color * 0.5;
3087 client = "PSL";
3088 }else if(idx == LLUUID("5aa5c70d-d787-571b-0495-4fc1bdef1500"))
3089 {
3090 avatar_name_color += LLColor4::red;//lordgreg
3091 avatar_name_color += LLColor4::red;
3092 avatar_name_color = avatar_name_color * (F32)0.333333333333;
3093 client = "LGG proxy";
3094 }else if(idx == LLUUID("8183e823-c443-2142-6eb6-2ab763d4f81c"))
3095 {
3096 avatar_name_color += LLColor4::blue;//day oh
3097 avatar_name_color = avatar_name_color * 0.5;
3098 client = "Day Oh proxy";
3099 }else if(idx == LLUUID("e52d21f7-3c8b-819f-a3db-65c432295dac") || idx == LLUUID("0f6723d2-5b23-6b58-08ab-308112b33786"))
3100 {
3101 avatar_name_color += LLColor4::cyan;//cryolife
3102 avatar_name_color += LLColor4::cyan;
3103 avatar_name_color = avatar_name_color * 0.5;
3104 client = "CryoLife";
3105 }else if(idx == LLUUID("0bcd5f5d-a4ce-9ea4-f9e8-15132653b3d8"))
3106 {
3107 avatar_name_color += LLColor4::pink;//moy
3108 avatar_name_color += LLColor4::pink;//moy
3109 avatar_name_color = avatar_name_color * (F32)0.333333333333;
3110 client = "MoyMix";
3111 }else if(idx == LLUUID("f5a48821-9a98-d09e-8d6a-50cc08ba9a47"))
3112 {
3113 avatar_name_color += LLColor4::yellow;//neil
3114 avatar_name_color += LLColor4::yellow;//neil
3115 avatar_name_color = avatar_name_color * (F32)0.333333333333;
3116 client = "NeilLife";
3117 }else if(idx == LLUUID("2c9c1e0b-e5d1-263e-16b1-7fc6d169f3d6"))
3118 {
3119 avatar_name_color += LLColor4(0.0f,1.0f,1.0f);
3120 avatar_name_color = avatar_name_color * 0.5;//phox
3121 client = "PhoxSL";
3122 }else if(idx == LLUUID("c5b570ca-bb7e-3c81-afd1-f62646b20014") || idx == LLUUID("7c4d47a3-0c51-04d1-fa47-e4f3ac12f59b"))
3123 {
3124 avatar_name_color += LLColor4::white;
3125 avatar_name_color += LLColor4::white;
3126 avatar_name_color = avatar_name_color * (F32)0.333333333333;
3127 client = "Kung Fu";
3128 }else if(idx == LLUUID("9422e9d7-7b11-83e4-6262-4a8db4716a3b"))
3129 {
3130 avatar_name_color += LLColor4::magenta;
3131 avatar_name_color += LLColor4::magenta;
3132 avatar_name_color = avatar_name_color * (F32)0.333333333333;
3133 client = "BetaLife";
3134 }else if(idx == LLUUID("872c0005-3095-0967-866d-11cd71115c22"))
3135 {
3136 avatar_name_color += LLColor4::green;//SimFed Poland
3137 avatar_name_color += LLColor4::blue;//SimFed Poland
3138 avatar_name_color += LLColor4::blue;//SimFed Poland
3139 avatar_name_color = avatar_name_color * 0.5;
3140 client = "CryoLife";
3141 }else if(idx == LLUUID("3ab7e2fa-9572-ef36-1a30-d855dbea4f92") || //wat
3142 idx == LLUUID("11ad2452-ce54-8d65-7c23-05589b59f516") ||//wat.
3143 idx == LLUUID("e734563e-1c31-2a35-3ed5-8552c807439f") ||//wat.
3144 idx == LLUUID("58a8b7ec-1455-7162-5d96-d3c3ead2ed71") ||//wat
3145 idx == LLUUID("841ef25b-3b90-caf9-ea3d-5649e755db65")//wat -.-
3146 )
3147 {
3148 avatar_name_color += LLColor4(0.0f,0.5f,1.0f);
3149 avatar_name_color = avatar_name_color * 0.5;
3150 client = "VerticalLife";
3151 }else if(idx == LLUUID("4e8dcf80-336b-b1d8-ef3e-08dacf015a0f"))
3152 {
3153 avatar_name_color += LLColor4::blue; //Sapphire
3154 avatar_name_color += LLColor4::blue; //Sapphire
3155 avatar_name_color = avatar_name_color * (F32)0.333333333333;
3156 client = "Sapphire";
3157 }else if(idx == LLUUID("ffce04ff-5303-4909-a044-d37af7ab0b0e"))
3158 {
3159 avatar_name_color += LLColor4::orange; //corgiVision
3160 avatar_name_color = avatar_name_color * (F32)0.75;
3161 client = "Corgi";
3162 }else if(idx == LLUUID("ccb509cf-cc69-e569-38f1-5086c687afd1"))
3163 {
3164 avatar_name_color += LLColor4::red; //Ruby
3165 avatar_name_color += LLColor4::purple; //Ruby
3166 avatar_name_color = avatar_name_color * (F32)0.333333333333;
3167 client = "Ruby";
3168 }else if(idx == LLUUID("1c29480c-c608-df87-28bb-964fb64c5366"))
3169 {
3170 avatar_name_color += LLColor4::yellow9;
3171 avatar_name_color += LLColor4::yellow9;
3172 avatar_name_color *= (F32)0.333333333333;
3173 client = "Gemini";
3174 }
3175 }
3176 if(client.empty())
3177 {
3178 LLPointer<LLViewerImage> image_point = gImageList.getImage(idx, MIPMAP_YES, IMMEDIATE_NO);
3179 if(image_point.notNull() && image_point->isMissingAsset())
3180 {
3181 avatar_name_color += LLColor4::grey;//anomalous
3182 avatar_name_color = avatar_name_color * 0.5;
3183 client = "Invalid";
3184 }
3185 }
3186 if(avatar->getTE(5)->getID() != avatar->getTE(6)->getID() && !client.empty())
3187 {
3188 client = "Failure";
3189 avatar_name_color = LLColor4::grey;
3190 }
3191 if(client.empty() && LLVOAvatar::sClientResolutionList.has("default"))
3192 {
3193 LLSD cllsd = LLVOAvatar::sClientResolutionList["default"];
3194 client = cllsd["name"].asString();
3195 LLColor4 colour;
3196 colour.setValue(cllsd["color"]);
3197 avatar_name_color += colour;
3198 avatar_name_color *= 1.0/(cllsd["multiple"].asReal()+1.0f);
3199 }
3200
3201}
2974 3202
2975void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last) 3203void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last)
2976{ 3204{
@@ -3032,7 +3260,7 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last)
3032 mRenderGroupTitles = sRenderGroupTitles; 3260 mRenderGroupTitles = sRenderGroupTitles;
3033 new_name = TRUE; 3261 new_name = TRUE;
3034 } 3262 }
3035 3263 std::string client;
3036 // First Calculate Alpha 3264 // First Calculate Alpha
3037 // If alpha > 0, create mNameText if necessary, otherwise delete it 3265 // If alpha > 0, create mNameText if necessary, otherwise delete it
3038 { 3266 {
@@ -3073,6 +3301,11 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last)
3073 } 3301 }
3074 3302
3075 LLColor4 avatar_name_color = gColors.getColor( "AvatarNameColor" ); 3303 LLColor4 avatar_name_color = gColors.getColor( "AvatarNameColor" );
3304 if(!mIsSelf) //don't know your own client ?
3305 {
3306 new_name = TRUE; //lol or see the last client used
3307 resolveClient(avatar_name_color,client, this);
3308 }
3076 avatar_name_color.setAlpha(alpha); 3309 avatar_name_color.setAlpha(alpha);
3077 mNameText->setColor(avatar_name_color); 3310 mNameText->setColor(avatar_name_color);
3078 3311
@@ -3129,7 +3362,7 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last)
3129 (!title && !mTitle.empty()) || 3362 (!title && !mTitle.empty()) ||
3130 (title && mTitle != title->getString()) || 3363 (title && mTitle != title->getString()) ||
3131 (is_away != mNameAway || is_busy != mNameBusy || is_muted != mNameMute) 3364 (is_away != mNameAway || is_busy != mNameBusy || is_muted != mNameMute)
3132 || is_appearance != mNameAppearance) 3365 || is_appearance != mNameAppearance || client.length() != 0)
3133 { 3366 {
3134 std::string line; 3367 std::string line;
3135 3368
@@ -3158,7 +3391,8 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last)
3158 3391
3159 BOOL need_comma = FALSE; 3392 BOOL need_comma = FALSE;
3160 3393
3161 if (is_away || is_muted || is_busy) 3394 bool show_client = client.length() != 0 && gSavedSettings.getBOOL("ShowClientNameTag");
3395 if (is_away || is_muted || is_busy || show_client)
3162 { 3396 {
3163 line += " ("; 3397 line += " (";
3164 if (is_away) 3398 if (is_away)
@@ -3184,6 +3418,15 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last)
3184 line += "Muted"; 3418 line += "Muted";
3185 need_comma = TRUE; 3419 need_comma = TRUE;
3186 } 3420 }
3421 if (show_client)
3422 {
3423 if (need_comma)
3424 {
3425 line += ", ";
3426 }
3427 line += client;
3428 need_comma = TRUE;
3429 }
3187 line += ")"; 3430 line += ")";
3188 } 3431 }
3189 if (is_appearance) 3432 if (is_appearance)
@@ -7438,6 +7681,8 @@ void LLVOAvatar::releaseUnnecessaryTextures()
7438 { 7681 {
7439 const LLVOAvatarDictionary::BakedDictionaryEntry * bakedDicEntry = LLVOAvatarDictionary::getInstance()->getBakedTexture((EBakedTextureIndex)baked_index); 7682 const LLVOAvatarDictionary::BakedDictionaryEntry * bakedDicEntry = LLVOAvatarDictionary::getInstance()->getBakedTexture((EBakedTextureIndex)baked_index);
7440 // skip if this is a skirt and av is not wearing one, or if we don't have a baked texture UUID 7683 // skip if this is a skirt and av is not wearing one, or if we don't have a baked texture UUID
7684 if(baked_index == BAKED_HEAD)//for client detection
7685 continue;
7441 if (!isTextureDefined(bakedDicEntry->mTextureIndex) 7686 if (!isTextureDefined(bakedDicEntry->mTextureIndex)
7442 && ( (baked_index != BAKED_SKIRT) || isWearingWearableType(WT_SKIRT) )) 7687 && ( (baked_index != BAKED_SKIRT) || isWearingWearableType(WT_SKIRT) ))
7443 { 7688 {
diff --git a/linden/indra/newview/llvoavatar.h b/linden/indra/newview/llvoavatar.h
index f6d5e27..f759e15 100644
--- a/linden/indra/newview/llvoavatar.h
+++ b/linden/indra/newview/llvoavatar.h
@@ -534,6 +534,8 @@ public:
534 LLViewerJoint mRoot; // avatar skeleton 534 LLViewerJoint mRoot; // avatar skeleton
535 BOOL mIsSitting; // sitting state 535 BOOL mIsSitting; // sitting state
536 536
537 static bool updateClientTags();
538 static bool loadClientTags();
537 //-------------------------------------------------------------------- 539 //--------------------------------------------------------------------
538 // Private member variables. 540 // Private member variables.
539 //-------------------------------------------------------------------- 541 //--------------------------------------------------------------------
@@ -590,12 +592,19 @@ private:
590 592
591 // Animation timer 593 // Animation timer
592 LLTimer mAnimTimer; 594 LLTimer mAnimTimer;
593 F32 mTimeLast; 595 F32 mTimeLast;
596
594 597
595 // Send selection beam info to scripts 598 // Send selection beam info to scripts
596 static int sPartsNow; 599 static int sPartsNow;
597 static LLVector3d sBeamLastAt; 600 static LLVector3d sBeamLastAt;
601 static LLSD sClientResolutionList;
602
603 static void resolveClient(LLColor4& avatar_name_color, std::string& client, LLVOAvatar* avatar);
604//Imprudence FIXME
605// friend class LLFloaterAvatarList;
598 606
607protected:
599 LLPointer<LLHUDEffectSpiral> mBeam; 608 LLPointer<LLHUDEffectSpiral> mBeam;
600 LLFrameTimer mBeamTimer; 609 LLFrameTimer mBeamTimer;
601 610
diff --git a/linden/indra/newview/llwebbrowserctrl.cpp b/linden/indra/newview/llwebbrowserctrl.cpp
index 89cb62b..453b9d2 100644
--- a/linden/indra/newview/llwebbrowserctrl.cpp
+++ b/linden/indra/newview/llwebbrowserctrl.cpp
@@ -1012,6 +1012,16 @@ void LLWebBrowserTexture::resize( S32 new_width, S32 new_height )
1012 mLastBrowserDepth = media_depth; 1012 mLastBrowserDepth = media_depth;
1013} 1013}
1014 1014
1015// virtual
1016LLXMLNodePtr LLWebBrowserCtrl::getXML(bool save_children) const
1017{
1018 LLXMLNodePtr node = LLUICtrl::getXML();
1019
1020 node->setName(LL_WEB_BROWSER_CTRL_TAG);
1021
1022 return node;
1023}
1024
1015LLView* LLWebBrowserCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory) 1025LLView* LLWebBrowserCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
1016{ 1026{
1017 std::string name("web_browser"); 1027 std::string name("web_browser");
diff --git a/linden/indra/newview/llwebbrowserctrl.h b/linden/indra/newview/llwebbrowserctrl.h
index 0f46aa1..0100807 100644
--- a/linden/indra/newview/llwebbrowserctrl.h
+++ b/linden/indra/newview/llwebbrowserctrl.h
@@ -191,6 +191,7 @@ class LLWebBrowserCtrl :
191 // Defaults to true. 191 // Defaults to true.
192 void setTakeFocusOnClick( bool take_focus ); 192 void setTakeFocusOnClick( bool take_focus );
193 193
194 virtual LLXMLNodePtr getXML(bool save_children = true) const;
194 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory); 195 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory);
195 196
196 // handle mouse related methods 197 // handle mouse related methods
diff --git a/linden/indra/newview/pipeline.cpp b/linden/indra/newview/pipeline.cpp
index 4ea9e41..d3ee8b6 100644
--- a/linden/indra/newview/pipeline.cpp
+++ b/linden/indra/newview/pipeline.cpp
@@ -2724,12 +2724,20 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
2724 2724
2725 LLVertexBuffer::unbind(); 2725 LLVertexBuffer::unbind();
2726 2726
2727 if (!LLPipeline::sReflectionRender && !LLPipeline::sRenderDeferred && gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_UI)) 2727 if (!LLPipeline::sReflectionRender && !LLPipeline::sRenderDeferred)
2728 { 2728 {
2729 // Render debugging beacons. 2729 if (gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_UI))
2730 gObjectList.renderObjectBeacons(); 2730 {
2731 LLHUDObject::renderAll(); 2731 // Render debugging beacons.
2732 gObjectList.resetObjectBeacons(); 2732 gObjectList.renderObjectBeacons();
2733 LLHUDObject::renderAll();
2734 gObjectList.resetObjectBeacons();
2735 }
2736 else
2737 {
2738 // Make sure particle effects disappear
2739 LLHUDObject::renderAllForTimer();
2740 }
2733 } 2741 }
2734 2742
2735 LLAppViewer::instance()->pingMainloopTimeout("Pipeline:RenderGeomEnd"); 2743 LLAppViewer::instance()->pingMainloopTimeout("Pipeline:RenderGeomEnd");
@@ -2954,6 +2962,11 @@ void LLPipeline::renderGeomPostDeferred(LLCamera& camera)
2954 LLHUDObject::renderAll(); 2962 LLHUDObject::renderAll();
2955 gObjectList.resetObjectBeacons(); 2963 gObjectList.resetObjectBeacons();
2956 } 2964 }
2965 else
2966 {
2967 // Make sure particle effects disappear
2968 LLHUDObject::renderAllForTimer();
2969 }
2957 2970
2958 if (occlude) 2971 if (occlude)
2959 { 2972 {
diff --git a/linden/indra/newview/skins/default/xui/da/floater_instant_message.xml b/linden/indra/newview/skins/default/xui/da/floater_instant_message.xml
index 13a7adf..9b695b5 100644
--- a/linden/indra/newview/skins/default/xui/da/floater_instant_message.xml
+++ b/linden/indra/newview/skins/default/xui/da/floater_instant_message.xml
@@ -33,7 +33,7 @@
33 <string name="unavailable_text_label"> 33 <string name="unavailable_text_label">
34 Tekst chat er ikke tilgængeligt i dette opkald. 34 Tekst chat er ikke tilgængeligt i dette opkald.
35 </string> 35 </string>
36 <button label="Profil..." name="profile_callee_btn"/> 36 <flyout_button label="Profil..." name="profile_callee_btn"/>
37 <button label="Opkald" name="start_call_btn" pad_right="7" width="120"/> 37 <button label="Opkald" name="start_call_btn" pad_right="7" width="120"/>
38 <button halign="right" label="Afbryd" name="end_call_btn" width="120"/> 38 <button halign="right" label="Afbryd" name="end_call_btn" width="120"/>
39 <panel left_delta="116" name="speaker_controls"> 39 <panel left_delta="116" name="speaker_controls">
diff --git a/linden/indra/newview/skins/default/xui/de/floater_instant_message.xml b/linden/indra/newview/skins/default/xui/de/floater_instant_message.xml
index 667be04..1e926c4 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_instant_message.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_instant_message.xml
@@ -33,7 +33,7 @@
33 <string name="unavailable_text_label"> 33 <string name="unavailable_text_label">
34 Für diese Verbindung ist kein Text-Chat verfügbar. 34 Für diese Verbindung ist kein Text-Chat verfügbar.
35 </string> 35 </string>
36 <button label="Profil..." name="profile_callee_btn"/> 36 <flyout_button label="Profil..." name="profile_callee_btn"/>
37 <button label="Anrufen" name="start_call_btn" pad_right="7" width="115"/> 37 <button label="Anrufen" name="start_call_btn" pad_right="7" width="115"/>
38 <button halign="right" label="Anruf beenden" name="end_call_btn" width="115"/> 38 <button halign="right" label="Anruf beenden" name="end_call_btn" width="115"/>
39 <panel left_delta="111" name="speaker_controls"> 39 <panel left_delta="111" name="speaker_controls">
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_about_land.xml b/linden/indra/newview/skins/default/xui/en-us/floater_about_land.xml
index d31357f..569e421 100644
--- a/linden/indra/newview/skins/default/xui/en-us/floater_about_land.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_about_land.xml
@@ -726,7 +726,7 @@ Only large parcels can be listed in search.
726 </combo_box> 726 </combo_box>
727 <button bottom="-140" enabled="true" follows="left|top" font="SansSerif" 727 <button bottom="-140" enabled="true" follows="left|top" font="SansSerif"
728 halign="center" height="18" label="?" label_selected="?" left="400" 728 halign="center" height="18" label="?" label_selected="?" left="400"
729 mouse_opaque="true" name="?" width="18" /> 729 mouse_opaque="true" name="?" width="20" />
730 <check_box bottom="-160" enabled="true" follows="left|top" font="SansSerifSmall" 730 <check_box bottom="-160" enabled="true" follows="left|top" font="SansSerifSmall"
731 height="16" initial_value="false" label="Mature Content" left="14" 731 height="16" initial_value="false" label="Mature Content" left="14"
732 mouse_opaque="true" name="MatureCheck" radio_style="false" 732 mouse_opaque="true" name="MatureCheck" radio_style="false"
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_env_settings.xml b/linden/indra/newview/skins/default/xui/en-us/floater_env_settings.xml
index 68443c5..e2bafbf 100644
--- a/linden/indra/newview/skins/default/xui/en-us/floater_env_settings.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_env_settings.xml
@@ -62,5 +62,5 @@
62 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="20" 62 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="20"
63 label="Advanced Water" left="300" name="EnvAdvancedWaterButton" width="137" /> 63 label="Advanced Water" left="300" name="EnvAdvancedWaterButton" width="137" />
64 <button bottom="-40" follows="left|top" font="SansSerif" height="18" label="?" 64 <button bottom="-40" follows="left|top" font="SansSerif" height="18" label="?"
65 left="570" name="EnvSettingsHelpButton" width="18" /> 65 left="570" name="EnvSettingsHelpButton" width="22" />
66</floater> 66</floater>
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_instant_message.xml b/linden/indra/newview/skins/default/xui/en-us/floater_instant_message.xml
index be8508f..c8ec0fd 100644
--- a/linden/indra/newview/skins/default/xui/en-us/floater_instant_message.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_instant_message.xml
@@ -37,20 +37,25 @@
37 <string name="unavailable_text_label"> 37 <string name="unavailable_text_label">
38 Text chat is not available for this call. 38 Text chat is not available for this call.
39 </string> 39 </string>
40 <button bottom="-40" follows="left|top" height="20" label="Profile..." left="5" 40 <string name="history_entry">
41 name="profile_callee_btn" width="80" /> 41 History
42 <button bottom_delta="0" follows="left|top" font="SansSerif" 42 </string>
43 halign="center" bottom ="-40" height="20" label="Offer Teleport" left_delta="85" 43 <string name="pay_entry">
44 mouse_opaque="true" name="offer_tp_btn" scale_image="true" width="102" /> 44 Pay
45 </string>
46 <string name="teleport_entry">
47 Offer Teleport
48 </string>
49 <flyout_button bottom="-40" follows="left|top" height="20" label="Profile" left="5" width="90"
50 list_position="below" mouse_opaque="true" name="profile_callee_btn">
51 </flyout_button>
45 <button bottom="-40" follows="left|top" halign="center" height="20" 52 <button bottom="-40" follows="left|top" halign="center" height="20"
46 image_overlay="icn_voice-call-start.tga" image_overlay_alignment="left" 53 image_overlay="icn_voice-call-start.tga" image_overlay_alignment="left"
47 label="Call" left_delta="107" name="start_call_btn" width="100" /> 54 label="Call" left_delta="95" name="start_call_btn" width="100" />
48 <button bottom="-40" follows="left|top" halign="center" height="20" 55 <button bottom="-40" follows="left|top" halign="center" height="20"
49 image_overlay="icn_voice-call-end.tga" image_overlay_alignment="left" 56 image_overlay="icn_voice-call-end.tga" image_overlay_alignment="left"
50 label="End Call" left_delta="0" name="end_call_btn" pad_right="10" 57 label="End Call" left_delta="0" name="end_call_btn" pad_right="10"
51 visible="false" width="100" /> 58 visible="false" width="100" />
52 <button bottom="-40" follows="left|top" halign="center" height="20" label="History" left_delta="105"
53 name="history_btn" visible="true" width="85" />
54 <text bottom_delta="0" left="-240" height="14" width="230" name="inventory_send" halign="right" 59 <text bottom_delta="0" left="-240" height="14" width="230" name="inventory_send" halign="right"
55 text_color="LabelTextColor" follows="right|top" drop_shadow_visible="true" 60 text_color="LabelTextColor" follows="right|top" drop_shadow_visible="true"
56 bg_visible="false" border_drop_shadow_visible="false" border_visible="false"> 61 bg_visible="false" border_drop_shadow_visible="false" border_visible="false">
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_instant_message_group.xml b/linden/indra/newview/skins/default/xui/en-us/floater_instant_message_group.xml
index 2e97d64..fd63221 100644
--- a/linden/indra/newview/skins/default/xui/en-us/floater_instant_message_group.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_instant_message_group.xml
@@ -45,10 +45,10 @@
45 <layout_panel border="false" bottom="0" default_tab_group="1" follows="left|top|bottom|right" 45 <layout_panel border="false" bottom="0" default_tab_group="1" follows="left|top|bottom|right"
46 height="130" left="0" min_width="210" name="im_contents_panel" width="175"> 46 height="130" left="0" min_width="210" name="im_contents_panel" width="175">
47 <button bottom="-20" follows="left|top" height="20" label="Group Info" left="5" 47 <button bottom="-20" follows="left|top" height="20" label="Group Info" left="5"
48 name="group_info_btn" tab_group="0" width="80" /> 48 name="group_info_btn" tab_group="0" width="90" />
49 <button bottom_delta="0" enabled="false" follows="left|top" halign="right" height="20" 49 <button bottom_delta="0" enabled="false" follows="left|top" halign="right" height="20"
50 image_overlay="icn_voice-call-start.tga" image_overlay_alignment="left" 50 image_overlay="icn_voice-call-start.tga" image_overlay_alignment="left"
51 label="Join Call" left_delta="85" name="start_call_btn" pad_right="12" 51 label="Join Call" left_delta="95" name="start_call_btn" pad_right="12"
52 width="92" /> 52 width="92" />
53 <button bottom_delta="0" follows="left|top" halign="right" height="20" 53 <button bottom_delta="0" follows="left|top" halign="right" height="20"
54 image_overlay="icn_voice-call-end.tga" image_overlay_alignment="left" 54 image_overlay="icn_voice-call-end.tga" image_overlay_alignment="left"
diff --git a/linden/indra/newview/skins/default/xui/en-us/notifications.xml b/linden/indra/newview/skins/default/xui/en-us/notifications.xml
index bc1a6fc..ccc348d 100644
--- a/linden/indra/newview/skins/default/xui/en-us/notifications.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/notifications.xml
@@ -6384,6 +6384,24 @@ Add this Ability to &apos;[ROLE_NAME]&apos;?
6384 </notification> 6384 </notification>
6385 6385
6386 <notification 6386 <notification
6387 icon="notify.tga"
6388 name="QueryClientTags"
6389 type="notify">
6390 Would you like to have the client tag database automatically updated from imprudenceviewer.org?
6391 This ensures that you have the latest information available regarding other clients.
6392 <form name="form">
6393 <button
6394 index="0"
6395 name="Yes"
6396 text="Yes"/>
6397 <button
6398 index="1"
6399 name="No"
6400 text="No"/>
6401 </form>
6402 </notification>
6403
6404 <notification
6387 icon="notifytip.tga" 6405 icon="notifytip.tga"
6388 name="UnableToOpenCommandURL" 6406 name="UnableToOpenCommandURL"
6389 priority="high" 6407 priority="high"
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_login.xml b/linden/indra/newview/skins/default/xui/en-us/panel_login.xml
index 6415402..e334f78 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_login.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_login.xml
@@ -99,7 +99,7 @@
99 select_all_on_focus_received="true" /> 99 select_all_on_focus_received="true" />
100 <check_box name="remember_check" label="Remember password" 100 <check_box name="remember_check" label="Remember password"
101 bottom_delta="-24" left_delta="0" height="16" width="140" 101 bottom_delta="-24" left_delta="0" height="16" width="140"
102 follows="left|bottom" font="SansSerifSmall" 102 follows="left|bottom" font="SansSerifSmall" control_name="RememberPassword"
103 initial_value="false" mouse_opaque="true" /> 103 initial_value="false" mouse_opaque="true" />
104 104
105 105
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_chat.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_chat.xml
index e9ab27c..547b547 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_chat.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_chat.xml
@@ -32,7 +32,7 @@
32 </text> 32 </text>
33 <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-108" 33 <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-108"
34 can_apply_immediately="true" color="1 1 1 1" control_name="UserChatColor" 34 can_apply_immediately="true" color="1 1 1 1" control_name="UserChatColor"
35 enabled="true" follows="left|top" height="47" label="You" left="148" 35 enabled="true" follows="left|top" height="56" label="You" left="148"
36 mouse_opaque="true" name="user" width="54" /> 36 mouse_opaque="true" name="user" width="54" />
37 <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-108" 37 <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-108"
38 can_apply_immediately="true" color="1 1 1 1" control_name="AgentChatColor" 38 can_apply_immediately="true" color="1 1 1 1" control_name="AgentChatColor"
@@ -55,7 +55,7 @@
55 <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-165" 55 <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-165"
56 can_apply_immediately="true" color="0.7 0.9 0.7 1" 56 can_apply_immediately="true" color="0.7 0.9 0.7 1"
57 control_name="ObjectChatColor" enabled="true" follows="left|top" 57 control_name="ObjectChatColor" enabled="true" follows="left|top"
58 height="47" label="Objects" left="148" mouse_opaque="true" 58 height="56" label="Objects" left="148" mouse_opaque="true"
59 name="objects" width="54" /> 59 name="objects" width="54" />
60 <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-165" 60 <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-165"
61 can_apply_immediately="true" color="0.7 0.9 0.7 1" 61 can_apply_immediately="true" color="0.7 0.9 0.7 1"
@@ -77,7 +77,7 @@
77 enabled="true" follows="left|top" height="56" 77 enabled="true" follows="left|top" height="56"
78 label="URLs" left_delta="68" mouse_opaque="true" name="links" width="54" /> 78 label="URLs" left_delta="68" mouse_opaque="true" name="links" width="54" />
79 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 79 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
80 bottom_delta="-28" drop_shadow_visible="true" enabled="true" follows="left|top" 80 bottom_delta="-25" drop_shadow_visible="true" enabled="true" follows="left|top"
81 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" 81 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12"
82 mouse_opaque="false" name="text_box3" v_pad="0" width="135"> 82 mouse_opaque="false" name="text_box3" v_pad="0" width="135">
83 Chat Console: 83 Chat Console:
@@ -116,7 +116,7 @@
116 mouse_opaque="true" name="chat_full_width_check" radio_style="false" 116 mouse_opaque="true" name="chat_full_width_check" radio_style="false"
117 width="239" /> 117 width="239" />
118 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 118 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
119 bottom_delta="-25" drop_shadow_visible="true" enabled="true" follows="left|top" 119 bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top"
120 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" 120 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12"
121 mouse_opaque="false" name="text_box6" v_pad="0" width="135"> 121 mouse_opaque="false" name="text_box6" v_pad="0" width="135">
122 Chat Options: 122 Chat Options:
@@ -134,20 +134,18 @@
134 follows="left|top" font="SansSerifSmall" height="16" initial_value="false" 134 follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
135 label="Show timestamps in Local Chat" left="148" mouse_opaque="true" 135 label="Show timestamps in Local Chat" left="148" mouse_opaque="true"
136 name="show_timestamps_check" radio_style="false" width="237" /> 136 name="show_timestamps_check" radio_style="false" width="237" />
137 <check_box bottom_delta="-20" enabled="true" 137 <check_box bottom_delta="-18" control_name="ScriptErrorsAsChat" enabled="true"
138 <check_box bottom_delta="-20" control_name="ScriptErrorsAsChat" enabled="true"
139 follows="left|top" font="SansSerifSmall" height="16" initial_value="false" 138 follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
140 label="Show script errors and warnings as regular chat" left="148" 139 label="Show script errors and warnings as regular chat" left="148"
141 mouse_opaque="true" name="script_errors_as_chat" radio_style="false" 140 mouse_opaque="true" name="script_errors_as_chat" radio_style="false"
142 width="275" /> 141 width="275" />
143 <check_box bottom_delta="-20" enabled="true"
144 <check_box bottom_delta="-18" enabled="true" 142 <check_box bottom_delta="-18" enabled="true"
145 follows="left|top" font="SansSerifSmall" height="16" initial_value="true" 143 follows="left|top" font="SansSerifSmall" height="16" initial_value="true"
146 label="Play typing animation when chatting" left="148" mouse_opaque="true" 144 label="Play typing animation when chatting" left="148" mouse_opaque="true"
147 name="play_typing_animation" radio_style="false" width="237" /> 145 name="play_typing_animation" radio_style="false" width="237" />
148 <check_box bottom_delta="-18" enabled="true" follows="left|top" 146 <check_box bottom_delta="-18" enabled="true" follows="left|top"
149 font="SansSerifSmall" height="16" initial_value="false" 147 font="SansSerifSmall" height="16" initial_value="false"
150 label="Show custom chat channel" left="148" mouse_opaque="true" 148 label="Show custom chat channel" left="148" mouse_opaque="true"
151 name="toggle_channel_control" radio_style="false" width="237" /> 149 name="toggle_channel_control" radio_style="false" width="237" />
152 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 150 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
153 bottom="-379" drop_shadow_visible="true" enabled="true" follows="left|top" 151 bottom="-379" drop_shadow_visible="true" enabled="true" follows="left|top"
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_input.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_input.xml
index 79f775b..fa4f3a5 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_input.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_input.xml
@@ -47,7 +47,7 @@
47 increment=".025" initial_val="1.57" left="276" max_val="2.97" min_val=".17" 47 increment=".025" initial_val="1.57" left="276" max_val="2.97" min_val=".17"
48 mouse_opaque="true" name="camera_fov" show_text="false" value="60" /> 48 mouse_opaque="true" name="camera_fov" show_text="false" value="60" />
49 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 49 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
50 bottom_delta="-14" drop_shadow_visible="true" enabled="true" follows="left|top" 50 bottom_delta="-18" drop_shadow_visible="true" enabled="true" follows="left|top"
51 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="148" 51 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="148"
52 mouse_opaque="true" name="Camera Follow Distance:" v_pad="0" width="128"> 52 mouse_opaque="true" name="Camera Follow Distance:" v_pad="0" width="128">
53 Camera Follow Distance: 53 Camera Follow Distance:
@@ -57,6 +57,27 @@
57 increment=".025" initial_val="1" left="276" min_val=".5" max_val="3" 57 increment=".025" initial_val="1" left="276" min_val=".5" max_val="3"
58 mouse_opaque="true" name="camera_offset_scale" show_text="false" value="1" 58 mouse_opaque="true" name="camera_offset_scale" show_text="false" value="1"
59 width="128" /> 59 width="128" />
60 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
61 bottom_delta="-18" drop_shadow_visible="true" enabled="true" follows="left|top"
62 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="148"
63 mouse_opaque="true" name="Camera Transition Time:" v_pad="0" width="128">
64 Camera Transition Time:
65 </text>
66 <slider bottom_delta="-6" can_edit_text="true" decimal_digits="1"
67 enabled="true" follows="left|top" height="16" increment="0.1"
68 initial_val="0.4" left="276" max_val="4" min_val="0" mouse_opaque="true"
69 name="zoom_time" show_text="false" value="2" width="128" />
70 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
71 bottom_delta="-18" drop_shadow_visible="true" enabled="true" follows="left|top"
72 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="148"
73 mouse_opaque="true" name="Camera Smoothing:" v_pad="0" width="128">
74 Camera Smoothing:
75 </text>
76 <slider bottom_delta="-6" can_edit_text="true"
77 decimal_digits="1" enabled="true" follows="left|top" height="16"
78 increment="0.1" initial_val="1" left="276" max_val="9" min_val="0"
79 mouse_opaque="true" name="camera_position_smoothing" show_text="false" value="2"
80 width="128" />
60 <check_box bottom_delta="-24" enabled="true" 81 <check_box bottom_delta="-24" enabled="true"
61 follows="left|top" font="SansSerifSmall" height="16" initial_value="false" 82 follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
62 label="Automatic Edit Camera Movement" left="148" mouse_opaque="true" 83 label="Automatic Edit Camera Movement" left="148" mouse_opaque="true"
diff --git a/linden/indra/newview/skins/default/xui/es/floater_instant_message.xml b/linden/indra/newview/skins/default/xui/es/floater_instant_message.xml
index 0ba63fc..30b23d1 100644
--- a/linden/indra/newview/skins/default/xui/es/floater_instant_message.xml
+++ b/linden/indra/newview/skins/default/xui/es/floater_instant_message.xml
@@ -1,50 +1,50 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater label="(desconocido)" name="im_floater" title="(desconocido)"> 2<floater label="(desconocido)" name="im_floater" title="(desconocido)">
3 <string name="ringing"> 3 <string name="ringing">
4 Llamando... 4 Llamando...
5 </string> 5 </string>
6 <string name="answering"> 6 <string name="answering">
7 Conectando... 7 Conectando...
8 </string> 8 </string>
9 <string name="connected"> 9 <string name="connected">
10 Conectado, pulse Colgar para acabar 10 Conectado, pulse Colgar para acabar
11 </string> 11 </string>
12 <string name="hang_up"> 12 <string name="hang_up">
13 Llamada finalizada 13 Llamada finalizada
14 </string> 14 </string>
15 <string name="inventory_item_offered"> 15 <string name="inventory_item_offered">
16 Ofrecido un ítem del inventario 16 Ofrecido un ítem del inventario
17 </string> 17 </string>
18 <string name="voice_icon"> 18 <string name="voice_icon">
19 icn_voice-pvtfocus.tga 19 icn_voice-pvtfocus.tga
20 </string> 20 </string>
21 <string name="title_string"> 21 <string name="title_string">
22 Mensaje instantáneo a [NAME] 22 Mensaje instantáneo a [NAME]
23 </string> 23 </string>
24 <string name="typing_start_string"> 24 <string name="typing_start_string">
25 [NAME] está escribiendo... 25 [NAME] está escribiendo...
26 </string> 26 </string>
27 <string name="session_start_string"> 27 <string name="session_start_string">
28 Iniciando una sesión con [NAME]; por favor, espere. 28 Iniciando una sesión con [NAME]; por favor, espere.
29 </string> 29 </string>
30 <string name="default_text_label"> 30 <string name="default_text_label">
31 Pulse aquí para enviar un mensaje instantáneo. 31 Pulse aquí para enviar un mensaje instantáneo.
32 </string> 32 </string>
33 <string name="unavailable_text_label"> 33 <string name="unavailable_text_label">
34 Para esta llamada no está disponible el chat de texto. 34 Para esta llamada no está disponible el chat de texto.
35 </string> 35 </string>
36 <button label="Perfil..." name="profile_callee_btn"/> 36 <flyout_button label="Perfil..." name="profile_callee_btn"/>
37 <button label="Llamar" name="start_call_btn"/> 37 <button label="Llamar" name="start_call_btn"/>
38 <button label="Colgar" name="end_call_btn"/> 38 <button label="Colgar" name="end_call_btn"/>
39 <panel name="speaker_controls"> 39 <panel name="speaker_controls">
40 <button label="" name="mute_btn" tool_tip="Silenciar la voz"/> 40 <button label="" name="mute_btn" tool_tip="Silenciar la voz"/>
41 </panel> 41 </panel>
42 <line_editor label="Pulse aquí para enviar un mensaje instantáneo" name="chat_editor"/> 42 <line_editor label="Pulse aquí para enviar un mensaje instantáneo" name="chat_editor"/>
43 <button label="Enviar" name="send_btn"/> 43 <button label="Enviar" name="send_btn"/>
44 <string name="live_help_dialog"> 44 <string name="live_help_dialog">
45 *** Bienvenido a la Petición de Ayuda *** 45 *** Bienvenido a la Petición de Ayuda ***
46Por favor, en primer lugar revise nuestras páginas de ayuda de SL pulsando F1, o acceda a la Knowledge Base http://secondlife.com/knowledgebase/ 46Por favor, en primer lugar revise nuestras páginas de ayuda de SL pulsando F1, o acceda a la Knowledge Base http://secondlife.com/knowledgebase/
47Si no encuentra allí la respuesta que busca, por favor, empiece el proceso escribiendo su pregunta, y espere unos momentos a que responda algún ayudante que esté disponible. 47Si no encuentra allí la respuesta que busca, por favor, empiece el proceso escribiendo su pregunta, y espere unos momentos a que responda algún ayudante que esté disponible.
48-=-=- El tiempo de respuesta puede variar, especialmente durante las horas punta -=-=- 48-=-=- El tiempo de respuesta puede variar, especialmente durante las horas punta -=-=-
49 </string> 49 </string>
50</floater> 50</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_instant_message.xml b/linden/indra/newview/skins/default/xui/fr/floater_instant_message.xml
index 15539bc..926483b 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_instant_message.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_instant_message.xml
@@ -1,50 +1,50 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater label="(inconnue)" name="im_floater" title="(inconnue)"> 2<floater label="(inconnue)" name="im_floater" title="(inconnue)">
3 <string name="ringing"> 3 <string name="ringing">
4 Appel en cours... 4 Appel en cours...
5 </string> 5 </string>
6 <string name="answering"> 6 <string name="answering">
7 Connexion en cours... 7 Connexion en cours...
8 </string> 8 </string>
9 <string name="connected"> 9 <string name="connected">
10 Connecté(e), cliquez sur Raccrocher pour terminer l&apos;appel 10 Connecté(e), cliquez sur Raccrocher pour terminer l&apos;appel
11 </string> 11 </string>
12 <string name="hang_up"> 12 <string name="hang_up">
13 Appel terminé 13 Appel terminé
14 </string> 14 </string>
15 <string name="inventory_item_offered"> 15 <string name="inventory_item_offered">
16 Objet de l&apos;inventaire offert 16 Objet de l&apos;inventaire offert
17 </string> 17 </string>
18 <string name="voice_icon"> 18 <string name="voice_icon">
19 icn_voice-pvtfocus.tga 19 icn_voice-pvtfocus.tga
20 </string> 20 </string>
21 <string name="title_string"> 21 <string name="title_string">
22 Envoyer un message instantané à [NAME] 22 Envoyer un message instantané à [NAME]
23 </string> 23 </string>
24 <string name="typing_start_string"> 24 <string name="typing_start_string">
25 [NAME] est en train d&apos;écrire… 25 [NAME] est en train d&apos;écrire…
26 </string> 26 </string>
27 <string name="session_start_string"> 27 <string name="session_start_string">
28 Début de la session avec [NAME], veuillez patienter. 28 Début de la session avec [NAME], veuillez patienter.
29 </string> 29 </string>
30 <string name="default_text_label"> 30 <string name="default_text_label">
31 Cliquez ici pour envoyer un message instantané. 31 Cliquez ici pour envoyer un message instantané.
32 </string> 32 </string>
33 <string name="unavailable_text_label"> 33 <string name="unavailable_text_label">
34 Le chat écrit n&apos;est pas disponible pour cet appel. 34 Le chat écrit n&apos;est pas disponible pour cet appel.
35 </string> 35 </string>
36 <button label="Profil..." name="profile_callee_btn"/> 36 <flyout_button label="Profil..." name="profile_callee_btn"/>
37 <button label="Appeler" name="start_call_btn"/> 37 <button label="Appeler" name="start_call_btn"/>
38 <button label="Raccrocher" name="end_call_btn"/> 38 <button label="Raccrocher" name="end_call_btn"/>
39 <panel name="speaker_controls"> 39 <panel name="speaker_controls">
40 <button label="" name="mute_btn" tool_tip="Ignorez"/> 40 <button label="" name="mute_btn" tool_tip="Ignorez"/>
41 </panel> 41 </panel>
42 <line_editor label="Cliquez ici pour envoyer un message instantané" name="chat_editor"/> 42 <line_editor label="Cliquez ici pour envoyer un message instantané" name="chat_editor"/>
43 <button label="Envoyer" name="send_btn"/> 43 <button label="Envoyer" name="send_btn"/>
44 <string name="live_help_dialog"> 44 <string name="live_help_dialog">
45 *** Bienvenue sur la page Demande d&apos;aide *** 45 *** Bienvenue sur la page Demande d&apos;aide ***
46Veuillez au préalable consulter les pages d&apos;aide de Second Life en appuyant sur la touche F1, ou en accédant à la base de connaissances http://secondlife.com/knowledgebase/ 46Veuillez au préalable consulter les pages d&apos;aide de Second Life en appuyant sur la touche F1, ou en accédant à la base de connaissances http://secondlife.com/knowledgebase/
47Si vous ne trouvez pas ce que vous cherchez, saisissez votre question et attendez quelques instants pour que quelqu&apos;un vous réponde. 47Si vous ne trouvez pas ce que vous cherchez, saisissez votre question et attendez quelques instants pour que quelqu&apos;un vous réponde.
48-=-=- Les temps de réponse varient, surtout pendant les périodes de pointe -=-=- 48-=-=- Les temps de réponse varient, surtout pendant les périodes de pointe -=-=-
49 </string> 49 </string>
50</floater> 50</floater>
diff --git a/linden/indra/newview/skins/default/xui/hu/floater_instant_message.xml b/linden/indra/newview/skins/default/xui/hu/floater_instant_message.xml
index e4f5892..3469323 100644
--- a/linden/indra/newview/skins/default/xui/hu/floater_instant_message.xml
+++ b/linden/indra/newview/skins/default/xui/hu/floater_instant_message.xml
@@ -33,7 +33,7 @@
33 <string name="unavailable_text_label"> 33 <string name="unavailable_text_label">
34 Szöveges üzenetküldés nem elérhető a jelenlegi hívás alatt. 34 Szöveges üzenetküldés nem elérhető a jelenlegi hívás alatt.
35 </string> 35 </string>
36 <button label="Adatlap" name="profile_callee_btn"/> 36 <flyout_button label="Adatlap" name="profile_callee_btn"/>
37 <button label="Hívás" name="start_call_btn"/> 37 <button label="Hívás" name="start_call_btn"/>
38 <button label="Hívás vége" name="end_call_btn"/> 38 <button label="Hívás vége" name="end_call_btn"/>
39 <panel name="speaker_controls"> 39 <panel name="speaker_controls">
diff --git a/linden/indra/newview/skins/default/xui/it/floater_instant_message.xml b/linden/indra/newview/skins/default/xui/it/floater_instant_message.xml
index 58e043f..7bdc046 100644
--- a/linden/indra/newview/skins/default/xui/it/floater_instant_message.xml
+++ b/linden/indra/newview/skins/default/xui/it/floater_instant_message.xml
@@ -33,7 +33,7 @@
33 <string name="unavailable_text_label"> 33 <string name="unavailable_text_label">
34 La chat di testo non è disponibile in questa chiamata. 34 La chat di testo non è disponibile in questa chiamata.
35 </string> 35 </string>
36 <button label="Profilo..." name="profile_callee_btn"/> 36 <flyout_button label="Profilo..." name="profile_callee_btn"/>
37 <button label="Chiama" name="start_call_btn"/> 37 <button label="Chiama" name="start_call_btn"/>
38 <button label="Termina" name="end_call_btn"/> 38 <button label="Termina" name="end_call_btn"/>
39 <panel name="speaker_controls"> 39 <panel name="speaker_controls">
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_instant_message.xml b/linden/indra/newview/skins/default/xui/ja/floater_instant_message.xml
index a8e91e1..c9de54e 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_instant_message.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_instant_message.xml
@@ -33,7 +33,7 @@
33 <string name="unavailable_text_label"> 33 <string name="unavailable_text_label">
34 このコールでは文字チャットが利用できません。 34 このコールでは文字チャットが利用できません。
35 </string> 35 </string>
36 <button label="プロフィール" name="profile_callee_btn" width="100"/> 36 <flyout_button label="プロフィール" name="profile_callee_btn" width="100"/>
37 <button label="コール" left_delta="105" name="start_call_btn" width="100"/> 37 <button label="コール" left_delta="105" name="start_call_btn" width="100"/>
38 <button label="呼出終了" name="end_call_btn" width="100"/> 38 <button label="呼出終了" name="end_call_btn" width="100"/>
39 <panel left_delta="96" name="speaker_controls"> 39 <panel left_delta="96" name="speaker_controls">
diff --git a/linden/indra/newview/skins/default/xui/ko/floater_instant_message.xml b/linden/indra/newview/skins/default/xui/ko/floater_instant_message.xml
index 1ad7d69..f1d0a48 100644
--- a/linden/indra/newview/skins/default/xui/ko/floater_instant_message.xml
+++ b/linden/indra/newview/skins/default/xui/ko/floater_instant_message.xml
@@ -21,7 +21,7 @@
21 <string name="default_text_label"> 21 <string name="default_text_label">
22 메신저를 사용하려면 여기를 클릭하십시오. 22 메신저를 사용하려면 여기를 클릭하십시오.
23 </string> 23 </string>
24 <button label="프로필" name="profile_callee_btn" /> 24 <flyout_button label="프로필" name="profile_callee_btn" />
25 <button label="음성연결" name="start_call_btn" /> 25 <button label="음성연결" name="start_call_btn" />
26 <button label="연결종료" name="end_call_btn" /> 26 <button label="연결종료" name="end_call_btn" />
27 <panel name="speaker_controls"> 27 <panel name="speaker_controls">
diff --git a/linden/indra/newview/skins/default/xui/pl/floater_instant_message.xml b/linden/indra/newview/skins/default/xui/pl/floater_instant_message.xml
index 2851356..1d918b8 100755
--- a/linden/indra/newview/skins/default/xui/pl/floater_instant_message.xml
+++ b/linden/indra/newview/skins/default/xui/pl/floater_instant_message.xml
@@ -33,7 +33,7 @@
33 <string name="unavailable_text_label"> 33 <string name="unavailable_text_label">
34 Czat nie jest dostępny dla tej rozmowy 34 Czat nie jest dostępny dla tej rozmowy
35 </string> 35 </string>
36 <button label="Profil..." name="profile_callee_btn"/> 36 <flyout_button label="Profil..." name="profile_callee_btn"/>
37 <button label="Dzwoń" name="start_call_btn"/> 37 <button label="Dzwoń" name="start_call_btn"/>
38 <button label="Skończ" name="end_call_btn"/> 38 <button label="Skończ" name="end_call_btn"/>
39 <panel name="speaker_controls"> 39 <panel name="speaker_controls">
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_instant_message.xml b/linden/indra/newview/skins/default/xui/pt/floater_instant_message.xml
index 0927cd3..983a13c 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_instant_message.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_instant_message.xml
@@ -1,50 +1,50 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater label="(desconhecido)" name="im_floater" title="(desconhecido)"> 2<floater label="(desconhecido)" name="im_floater" title="(desconhecido)">
3 <string name="ringing"> 3 <string name="ringing">
4 Chamando... 4 Chamando...
5 </string> 5 </string>
6 <string name="answering"> 6 <string name="answering">
7 Conectando... 7 Conectando...
8 </string> 8 </string>
9 <string name="connected"> 9 <string name="connected">
10 Conectado, clique Finalizar Chamada para deixar em espera 10 Conectado, clique Finalizar Chamada para deixar em espera
11 </string> 11 </string>
12 <string name="hang_up"> 12 <string name="hang_up">
13 Chamada encerrada 13 Chamada encerrada
14 </string> 14 </string>
15 <string name="inventory_item_offered"> 15 <string name="inventory_item_offered">
16 Oferecido um item de Inventário 16 Oferecido um item de Inventário
17 </string> 17 </string>
18 <string name="voice_icon"> 18 <string name="voice_icon">
19 icn_voice-pvtfocus.tga 19 icn_voice-pvtfocus.tga
20 </string> 20 </string>
21 <string name="title_string"> 21 <string name="title_string">
22 Mensagem Instantânea com [NAME] 22 Mensagem Instantânea com [NAME]
23 </string> 23 </string>
24 <string name="typing_start_string"> 24 <string name="typing_start_string">
25 [NAME] está digitando... 25 [NAME] está digitando...
26 </string> 26 </string>
27 <string name="session_start_string"> 27 <string name="session_start_string">
28 Iniciando uma sessão com [NAME]. Por favor, aguarde. 28 Iniciando uma sessão com [NAME]. Por favor, aguarde.
29 </string> 29 </string>
30 <string name="default_text_label"> 30 <string name="default_text_label">
31 Clique aqui para uma mensagem instantânea. 31 Clique aqui para uma mensagem instantânea.
32 </string> 32 </string>
33 <string name="unavailable_text_label"> 33 <string name="unavailable_text_label">
34 Conversa por texto não está disponível para esta chamada. 34 Conversa por texto não está disponível para esta chamada.
35 </string> 35 </string>
36 <button label="Perfil..." name="profile_callee_btn"/> 36 <flyout_button label="Perfil..." name="profile_callee_btn"/>
37 <button label="Chamar" name="start_call_btn"/> 37 <button label="Chamar" name="start_call_btn"/>
38 <button label="Terminar Chamada" name="end_call_btn"/> 38 <button label="Terminar Chamada" name="end_call_btn"/>
39 <panel name="speaker_controls"> 39 <panel name="speaker_controls">
40 <button label="" name="mute_btn" tool_tip="Emudecer a voz para este residente"/> 40 <button label="" name="mute_btn" tool_tip="Emudecer a voz para este residente"/>
41 </panel> 41 </panel>
42 <line_editor label="Clique aqui para mensagens instantâneas" name="chat_editor"/> 42 <line_editor label="Clique aqui para mensagens instantâneas" name="chat_editor"/>
43 <button label="Enviar" name="send_btn"/> 43 <button label="Enviar" name="send_btn"/>
44 <string name="live_help_dialog"> 44 <string name="live_help_dialog">
45 *** Bem Vindo a Solicitação de Ajuda *** 45 *** Bem Vindo a Solicitação de Ajuda ***
46Por favor, cheque primeiro nossas páginas de ajuda, pressionando F1 ou acessando a Base de Conhecimento em 46Por favor, cheque primeiro nossas páginas de ajuda, pressionando F1 ou acessando a Base de Conhecimento em
47http://secondlife.com/knowledgebase/ . Se sua resposta não está ali, por favor entre com sua pergunta e aguarde que um Ajudante responda. 47http://secondlife.com/knowledgebase/ . Se sua resposta não está ali, por favor entre com sua pergunta e aguarde que um Ajudante responda.
48-=-=- O tempo de resposta pode variar, especialmente em horários de pico -=-=- 48-=-=- O tempo de resposta pode variar, especialmente em horários de pico -=-=-
49 </string> 49 </string>
50</floater> 50</floater>
diff --git a/linden/indra/newview/skins/default/xui/ru/floater_instant_message.xml b/linden/indra/newview/skins/default/xui/ru/floater_instant_message.xml
index db9e975..7aa1c19 100644
--- a/linden/indra/newview/skins/default/xui/ru/floater_instant_message.xml
+++ b/linden/indra/newview/skins/default/xui/ru/floater_instant_message.xml
@@ -33,7 +33,7 @@
33 <string name="unavailable_text_label"> 33 <string name="unavailable_text_label">
34 Текстовый чат недоступен для этого вызова. 34 Текстовый чат недоступен для этого вызова.
35 </string> 35 </string>
36 <button label="Профиль..." name="profile_callee_btn"/> 36 <flyout_button label="Профиль..." name="profile_callee_btn"/>
37 <button label="Звонок" name="start_call_btn"/> 37 <button label="Звонок" name="start_call_btn"/>
38 <button label="Конец звонка" name="end_call_btn"/> 38 <button label="Конец звонка" name="end_call_btn"/>
39 <panel name="speaker_controls"> 39 <panel name="speaker_controls">
diff --git a/linden/indra/newview/skins/default/xui/tr/floater_instant_message.xml b/linden/indra/newview/skins/default/xui/tr/floater_instant_message.xml
index d804a70..b627271 100644
--- a/linden/indra/newview/skins/default/xui/tr/floater_instant_message.xml
+++ b/linden/indra/newview/skins/default/xui/tr/floater_instant_message.xml
@@ -33,7 +33,7 @@
33 <string name="unavailable_text_label"> 33 <string name="unavailable_text_label">
34 Bu arama için yazılı sohbet mevcut değil. 34 Bu arama için yazılı sohbet mevcut değil.
35 </string> 35 </string>
36 <button label="Profil..." name="profile_callee_btn"/> 36 <flyout_button label="Profil..." name="profile_callee_btn"/>
37 <button label="Ara" name="start_call_btn"/> 37 <button label="Ara" name="start_call_btn"/>
38 <button label="Kapat" name="end_call_btn"/> 38 <button label="Kapat" name="end_call_btn"/>
39 <panel name="speaker_controls"> 39 <panel name="speaker_controls">
diff --git a/linden/indra/newview/skins/default/xui/uk/floater_instant_message.xml b/linden/indra/newview/skins/default/xui/uk/floater_instant_message.xml
index bdd51fe..60ac3b8 100644
--- a/linden/indra/newview/skins/default/xui/uk/floater_instant_message.xml
+++ b/linden/indra/newview/skins/default/xui/uk/floater_instant_message.xml
@@ -33,7 +33,7 @@
33 <string name="unavailable_text_label"> 33 <string name="unavailable_text_label">
34 Текстовий чат недоступний для цього виклику. 34 Текстовий чат недоступний для цього виклику.
35 </string> 35 </string>
36 <button label="Профіль..." name="profile_callee_btn"/> 36 <flyout_button label="Профіль..." name="profile_callee_btn"/>
37 <button label="Дзвінок" name="start_call_btn"/> 37 <button label="Дзвінок" name="start_call_btn"/>
38 <button label="Кінець дзвінка" name="end_call_btn"/> 38 <button label="Кінець дзвінка" name="end_call_btn"/>
39 <panel name="speaker_controls"> 39 <panel name="speaker_controls">
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_instant_message.xml b/linden/indra/newview/skins/default/xui/zh/floater_instant_message.xml
index 70433c1..ace6d8c 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_instant_message.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_instant_message.xml
@@ -30,7 +30,7 @@
30 <string name="unavailable_text_label"> 30 <string name="unavailable_text_label">
31 本次通话不可以文字聊天。 31 本次通话不可以文字聊天。
32 </string> 32 </string>
33 <button label="档案..." name="profile_callee_btn"/> 33 <flyout_button label="档案..." name="profile_callee_btn"/>
34 <button label="呼叫" name="start_call_btn"/> 34 <button label="呼叫" name="start_call_btn"/>
35 <button label="结束呼叫" name="end_call_btn" pad_right="10" visible="false"/> 35 <button label="结束呼叫" name="end_call_btn" pad_right="10" visible="false"/>
36 <panel name="speaker_controls"> 36 <panel name="speaker_controls">
diff --git a/linden/indra/newview/skins/silver/xui/en-us/floater_about_land.xml b/linden/indra/newview/skins/silver/xui/en-us/floater_about_land.xml
deleted file mode 100644
index 300d7ba..0000000
--- a/linden/indra/newview/skins/silver/xui/en-us/floater_about_land.xml
+++ /dev/null
@@ -1,1040 +0,0 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater bottom="-554" can_close="true" can_drag_on_left="false" can_minimize="true"
3 can_resize="false" can_tear_off="false" enabled="true" height="420"
4 left="367" min_height="420" min_width="460" mouse_opaque="true"
5 name="floaterland" rect_control="FloaterLandRect5" title="About Land"
6 width="460">
7 <tab_container bottom="-420" enabled="true" follows="left|top|right|bottom" height="400"
8 left="1" mouse_opaque="false" name="landtab" tab_position="top" width="459">
9 <panel border="true" bottom="-349" enabled="true" follows="left|top|right|bottom"
10 height="333" label="General" left="1" mouse_opaque="true"
11 name="land_general_panel" width="458">
12 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
13 bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top"
14 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
15 mouse_opaque="true" name="Name:" v_pad="0" width="92">
16 Name:
17 </text>
18 <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-20"
19 enabled="true" follows="left|top|right" font="SansSerifSmall"
20 handle_edit_keys_directly="false" height="16" left="98"
21 max_length="63" mouse_opaque="true" name="Name"
22 select_all_on_focus_received="false" select_on_focus="false"
23 width="350" />
24 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
25 bottom="-40" drop_shadow_visible="true" enabled="true" follows="left|top"
26 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
27 mouse_opaque="true" name="Description:" v_pad="0" width="100">
28 Description:
29 </text>
30 <text_editor type="string" bevel_style="in" border_style="line" border_thickness="1" bottom="-76"
31 embedded_items="false" enabled="true" follows="left|top|right"
32 font="SansSerifSmall" handle_edit_keys_directly="false" height="52"
33 left="96" max_length="255" mouse_opaque="true" name="Description"
34 select_all_on_focus_received="false" select_on_focus="false"
35 width="350" word_wrap="true" />
36 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
37 bottom="-100" drop_shadow_visible="true" enabled="true" follows="left|top"
38 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
39 mouse_opaque="true" name="LandType" v_pad="0" width="92">
40 Type:
41 </text>
42 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
43 bottom="-100" drop_shadow_visible="true" enabled="true" follows="left|top"
44 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="96"
45 mouse_opaque="true" name="LandTypeText" v_pad="0" width="250">
46 Mainland / Homestead
47 </text>
48 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
49 bottom="-120" drop_shadow_visible="true" enabled="true" follows="left|top"
50 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
51 mouse_opaque="true" name="ContentRating" v_pad="0" width="92">
52 Rating:
53 </text>
54 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
55 bottom="-120" drop_shadow_visible="true" enabled="true" follows="left|top"
56 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="96"
57 mouse_opaque="true" name="ContentRatingText" v_pad="0" width="250">
58 Adult
59 </text>
60 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
61 bottom="-140" drop_shadow_visible="true" enabled="true" follows="left|top"
62 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
63 mouse_opaque="true" name="Owner:" v_pad="0" width="92">
64 Owner:
65 </text>
66 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
67 bottom="-140" drop_shadow_visible="true" enabled="true" follows="left|top"
68 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="96"
69 mouse_opaque="true" name="OwnerText" v_pad="0" width="250">
70 Leyla Linden
71 </text>
72 <button bottom="-140" enabled="true" follows="left|top" font="SansSerifSmall"
73 halign="center" height="16" label="Profile..." label_selected="Profile..."
74 left="350" mouse_opaque="true" name="Profile..." scale_image="true"
75 width="90" />
76 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
77 bottom="-160" drop_shadow_visible="true" enabled="true" follows="left|top"
78 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
79 mouse_opaque="true" name="Group:" v_pad="0" width="92">
80 Group:
81 </text>
82 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
83 bottom="-162" drop_shadow_visible="true" enabled="false" follows="left|top"
84 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="96"
85 mouse_opaque="true" name="GroupText" v_pad="0" width="250" />
86 <button bottom="-160" enabled="true" follows="left|top" font="SansSerifSmall"
87 halign="center" height="16" label="Set..." label_selected="Set..."
88 left="350" mouse_opaque="true" name="Set..." scale_image="true" width="90" />
89 <check_box bottom="-180" enabled="false" follows="left|top" font="SansSerifSmall"
90 height="16" initial_value="false" label="Allow Deed to Group" left="96"
91 mouse_opaque="true" name="check deed" radio_style="false"
92 tool_tip="A group officer can deed this land to the group, so it will be supported by the group&amp;apos;s land allocation."
93 width="116" />
94 <button bottom="-180" enabled="false" follows="left|top" font="SansSerifSmall"
95 halign="center" height="16" label="Deed..." label_selected="Deed..."
96 left="350" mouse_opaque="true" name="Deed..." scale_image="true"
97 tool_tip="You may only deed land if you are an officer in the selected group."
98 width="90" />
99 <check_box bottom="-200" enabled="false" follows="left|top" font="SansSerifSmall"
100 height="16" initial_value="false"
101 label="Owner Makes Contribution With Deed" left="96" mouse_opaque="true"
102 name="check contrib" radio_style="false"
103 tool_tip="When the land is deeded to the group, the former owner contributes enough land allocation to support it."
104 width="199" />
105 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
106 bottom="-220" drop_shadow_visible="true" enabled="true" follows="left|top"
107 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
108 mouse_opaque="true" name="For Sale:" v_pad="0" width="92">
109 For Sale:
110 </text>
111 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
112 bottom="-220" drop_shadow_visible="true" enabled="true" follows="left|top"
113 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="96"
114 mouse_opaque="true" name="Not for sale." v_pad="0" width="186">
115 Not for sale.
116 </text>
117 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
118 bottom="-220" drop_shadow_visible="true" enabled="true" follows="left|top"
119 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="96"
120 mouse_opaque="true" name="For Sale: Price L$[PRICE]." v_pad="0" width="226">
121 Price: L$[PRICE] (L$[PRICE_PER_SQM]/sq.m.).
122 </text>
123 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
124 bottom="-240" drop_shadow_visible="true" enabled="false" follows="left|top"
125 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="96"
126 mouse_opaque="true" name="SalePending" v_pad="0" width="344" />
127 <button bottom="-244" enabled="true" follows="left|top" font="SansSerif"
128 halign="center" height="20" label="Sell Land..."
129 label_selected="Sell Land..." left="295" mouse_opaque="true"
130 name="Sell Land..." scale_image="true" width="145" />
131 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
132 bottom="-240" drop_shadow_visible="true" enabled="true" follows="left|top"
133 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="96"
134 mouse_opaque="true" name="For sale to" v_pad="0" width="186">
135 For sale to: [BUYER]
136 </text>
137 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
138 bottom="-260" drop_shadow_visible="true" enabled="true" follows="left|top"
139 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="96"
140 mouse_opaque="true" name="Sell with landowners objects in parcel."
141 v_pad="0" width="186">
142 Objects included in sale.
143 </text>
144 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
145 bottom="-260" drop_shadow_visible="true" enabled="true" follows="left|top"
146 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="96"
147 mouse_opaque="true" name="Selling with no objects in parcel." v_pad="0"
148 width="186">
149 Objects not included in sale.
150 </text>
151 <button bottom="-248" enabled="true" follows="left|top" font="SansSerif"
152 halign="center" height="20" label="Cancel Land Sale"
153 label_selected="Cancel Land Sale" left="295" mouse_opaque="true"
154 name="Cancel Land Sale" scale_image="true" width="145" />
155 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
156 bottom="-284" drop_shadow_visible="true" enabled="true" follows="left|top"
157 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
158 mouse_opaque="true" name="Claimed:" v_pad="0" width="92">
159 Claimed:
160 </text>
161 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
162 bottom="-284" drop_shadow_visible="true" enabled="true" follows="left|top"
163 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="96"
164 mouse_opaque="true" name="DateClaimText" v_pad="0" width="186">
165 Tue Aug 15 13:47:25 2006
166 </text>
167 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
168 bottom="-304" drop_shadow_visible="true" enabled="true" follows="left|top"
169 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
170 mouse_opaque="true" name="PriceLabel" v_pad="0" width="92">
171 Area:
172 </text>
173 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
174 bottom="-304" drop_shadow_visible="true" enabled="true" follows="left|top"
175 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="96"
176 mouse_opaque="true" name="PriceText" v_pad="0" width="186">
177 4048 sq.m.
178 </text>
179 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
180 bottom="-324" drop_shadow_visible="true" enabled="true" follows="left|top"
181 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
182 mouse_opaque="true" name="Traffic:" v_pad="0" width="92">
183 Traffic:
184 </text>
185 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
186 bottom="-324" drop_shadow_visible="true" enabled="true" follows="left|top"
187 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="96"
188 mouse_opaque="true" name="DwellText" v_pad="0" width="186">
189 0
190 </text>
191 <button bottom="-348" enabled="false" follows="left|top" font="SansSerif"
192 halign="center" height="20" label="Buy Land..."
193 label_selected="Buy Land..." left="155" mouse_opaque="true"
194 name="Buy Land..." scale_image="true" width="100" />
195 <button bottom="-372" enabled="false" follows="left|top" font="SansSerif"
196 halign="center" height="20" label="Buy For Group..."
197 label_selected="Buy For Group..." left="260" mouse_opaque="true"
198 name="Buy For Group..." scale_image="true" width="180" />
199 <button bottom="-372" enabled="false" follows="left|top" font="SansSerif"
200 halign="center" height="20" label="Buy Pass..."
201 label_selected="Buy Pass..." left="155" mouse_opaque="true"
202 name="Buy Pass..." scale_image="true"
203 tool_tip="A pass gives you temporary access to this land." width="100" />
204 <button bottom="-348" enabled="true" follows="left|top" font="SansSerif"
205 halign="center" height="20" label="Abandon Land..."
206 label_selected="Abandon Land..." left="260" mouse_opaque="true"
207 name="Abandon Land..." scale_image="true" width="180" />
208 <button bottom="-300" enabled="true" follows="left|top" font="SansSerif"
209 halign="center" height="20" label="Reclaim Land..."
210 label_selected="Reclaim Land..." left="260" mouse_opaque="true"
211 name="Reclaim Land..." scale_image="true" width="180" />
212 <button bottom="-324" enabled="false" follows="left|top" font="SansSerif"
213 halign="center" height="20" label="Linden Sale..."
214 label_selected="Linden Sale..." left="260" mouse_opaque="true"
215 name="Linden Sale..." scale_image="true"
216 tool_tip="Land must be owned, set content, and not already for auction."
217 width="180" />
218 <string name="new users only">
219 New users only
220 </string>
221 <string name="anyone">
222 Anyone
223 </string>
224 <string name="area_text">
225 Area
226 </string>
227 <string name="area_size_text">
228 [AREA] sq.m.
229 </string>
230 <string name="auction_id_text">
231 Auction ID: [ID]
232 </string>
233 <string name="need_tier_to_modify">
234 You must approve your purchase to modify this land.
235 </string>
236 <string name="group_owned_text">
237 (Group Owned)
238 </string>
239 <string name="profile_text">
240 Profile...
241 </string>
242 <string name="info_text">
243 Info...
244 </string>
245 <string name="public_text">
246 (public)
247 </string>
248 <string name="none_text">
249 (none)
250 </string>
251 <string name="sale_pending_text">
252 (Sale Pending)
253 </string>
254 <string name="no_selection_text">
255 No parcel selected.
256Go to World menu > About Land or select another parcel to show its details.
257 </string>
258 </panel>
259 <panel border="true" bottom="-349" enabled="true" follows="left|top|right|bottom"
260 height="333" label="Covenant" left="0" mouse_opaque="true"
261 name="land_covenant_panel" width="458">
262 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
263 bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top"
264 font="SansSerif" h_pad="0" halign="left" height="20" left="5"
265 mouse_opaque="false" name="estate_section_lbl" v_pad="0" width="100">
266 Estate:
267 </text>
268 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
269 bottom="-40" drop_shadow_visible="true" enabled="true" follows="left|top"
270 font="SansSerifSmall" h_pad="0" halign="left" height="20" left="10"
271 mouse_opaque="false" name="estate_name_lbl" v_pad="0" width="100">
272 Name:
273 </text>
274 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
275 bottom="-40" drop_shadow_visible="true" enabled="true" follows="left|top"
276 font="SansSerifSmall" h_pad="0" halign="left" height="20" left="120"
277 mouse_opaque="false" name="estate_name_text" v_pad="0" width="150">
278 mainland
279 </text>
280 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
281 bottom="-60" drop_shadow_visible="true" enabled="true" follows="left|top"
282 font="SansSerifSmall" h_pad="0" halign="left" height="20" left="10"
283 mouse_opaque="false" name="estate_owner_lbl" v_pad="0" width="100">
284 Owner:
285 </text>
286 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
287 bottom="-60" drop_shadow_visible="true" enabled="true" follows="left|top"
288 font="SansSerifSmall" h_pad="0" halign="left" height="20" left="120"
289 mouse_opaque="false" name="estate_owner_text" v_pad="0" width="150">
290 (none)
291 </text>
292 <text_editor type="string" length="1" bottom="-175" embedded_items="false" enabled="false"
293 follows="left|top|right|bottom" font="SansSerifSmall" height="115"
294 left="120" max_length="65535" mouse_opaque="true" name="covenant_editor"
295 width="330" word_wrap="true">
296 There is no Covenant provided for this Estate.
297 </text_editor>
298 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
299 bottom="-250" drop_shadow_visible="true" enabled="true" follows="left|top"
300 font="SansSerifSmall" h_pad="0" halign="left" height="20" left="120"
301 mouse_opaque="false" name="covenant_timestamp_text" v_pad="0" width="250">
302 Last Modified Wed Dec 31 16:00:00 1969
303 </text>
304 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
305 bottom="-270" drop_shadow_visible="true" enabled="true" follows="left|top"
306 font="SansSerif" h_pad="0" halign="left" height="20" left="5"
307 mouse_opaque="false" name="region_section_lbl" v_pad="0" width="100">
308 Region:
309 </text>
310 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
311 bottom="-290" drop_shadow_visible="true" enabled="true" follows="left|top"
312 font="SansSerifSmall" h_pad="0" halign="left" height="20" left="10"
313 mouse_opaque="false" name="region_name_lbl" v_pad="0" width="100">
314 Name:
315 </text>
316 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
317 bottom="-290" drop_shadow_visible="true" enabled="true" follows="left|top"
318 font="SansSerifSmall" h_pad="0" halign="left" height="20" left="120"
319 mouse_opaque="false" name="region_name_text" v_pad="0" width="150">
320 leyla
321 </text>
322 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
323 bottom="-310" drop_shadow_visible="true" enabled="true" follows="left|top"
324 font="SansSerifSmall" h_pad="0" halign="left" height="20" left="10"
325 mouse_opaque="false" name="region_landtype_lbl" v_pad="0" width="100">
326 Type:
327 </text>
328 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
329 bottom="-310" drop_shadow_visible="true" enabled="true" follows="left|top"
330 font="SansSerifSmall" h_pad="0" halign="left" height="20" left="120"
331 mouse_opaque="false" name="region_landtype_text" v_pad="0" width="150">
332 Mainland / Homestead
333 </text>
334 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
335 bottom="-330" drop_shadow_visible="true" enabled="true" follows="left|top"
336 font="SansSerifSmall" h_pad="0" halign="left" height="20" left="10"
337 mouse_opaque="false" name="region_maturity_lbl" v_pad="0" width="100">
338 Rating:
339 </text>
340 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
341 bottom="-330" drop_shadow_visible="true" enabled="true" follows="left|top"
342 font="SansSerifSmall" h_pad="0" halign="left" height="20" left="120"
343 mouse_opaque="false" name="region_maturity_text" v_pad="0" width="150">
344 Adult
345 </text>
346 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
347 bottom="-350" drop_shadow_visible="true" enabled="true" follows="left|top"
348 font="SansSerifSmall" h_pad="0" halign="left" height="20" left="10"
349 mouse_opaque="false" name="resellable_lbl" v_pad="0" width="100">
350 Resale:
351 </text>
352 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
353 bottom="-350" drop_shadow_visible="true" enabled="true" follows="left|top"
354 font="SansSerifSmall" h_pad="0" halign="left" height="20" left="120"
355 mouse_opaque="false" name="resellable_clause" v_pad="0" width="330">
356 Land in this region may not be resold.
357 </text>
358 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
359 bottom="-370" drop_shadow_visible="true" enabled="true" follows="left|top"
360 font="SansSerifSmall" h_pad="0" halign="left" height="20" left="10"
361 mouse_opaque="false" name="changeable_lbl" v_pad="0" width="100">
362 Subdivide:
363 </text>
364 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
365 bottom="-380" drop_shadow_visible="true" enabled="true" follows="left|top"
366 font="SansSerifSmall" h_pad="0" halign="left" height="30" left="120"
367 mouse_opaque="false" name="changeable_clause" v_pad="0" width="330">
368 Land in this region may not be joined/subdivided.
369 </text>
370 <string name="can_resell">
371 Purchased land in this region may be resold.
372 </string>
373 <string name="can_not_resell">
374 Purchased land in this region may not be resold.
375 </string>
376 <string name="can_change">
377 Purchased land in this region may be joined or subdivided.
378 </string>
379 <string name="can_not_change">
380 Purchased land in this region may not be joined or subdivided.
381 </string>
382 </panel>
383 <panel border="true" bottom="-349" enabled="true" follows="left|top|right|bottom"
384 height="333" label="Objects" left="1" mouse_opaque="true"
385 name="land_objects_panel" width="458">
386 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
387 bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top"
388 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
389 mouse_opaque="true" name="parcel_object_bonus" v_pad="0" visible="false"
390 width="364">
391 Region Object Bonus Factor: [BONUS]
392 </text>
393 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
394 bottom="-40" drop_shadow_visible="true" enabled="true" follows="left|top"
395 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
396 mouse_opaque="true" name="Simulator primitive usage:" v_pad="0" width="364">
397 Simulator primitive usage:
398 </text>
399 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
400 bottom="-40" drop_shadow_visible="true" enabled="true" follows="left|top"
401 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="156"
402 mouse_opaque="true" name="objects_available" v_pad="0" width="212">
403 [COUNT] out of [MAX] ([AVAILABLE] available)
404 </text>
405 <string name="objects_available_text">
406 [COUNT] out of [MAX] ([AVAILABLE] available)
407 </string>
408 <string name="objects_deleted_text">
409 [COUNT] out of [MAX] ([DELETED] will be deleted)
410 </string>
411 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
412 bottom="-60" drop_shadow_visible="true" enabled="true" follows="left|top"
413 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
414 mouse_opaque="true" name="Primitives parcel supports:" v_pad="0"
415 width="152">
416 Primitives parcel supports:
417 </text>
418 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
419 bottom="-60" drop_shadow_visible="true" enabled="true" follows="left|top"
420 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="156"
421 mouse_opaque="true" name="object_contrib_text" v_pad="0" width="212">
422 [COUNT]
423 </text>
424 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
425 bottom="-80" drop_shadow_visible="true" enabled="true" follows="left|top"
426 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
427 mouse_opaque="true" name="Primitives on parcel:" v_pad="0" width="152">
428 Primitives on parcel:
429 </text>
430 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
431 bottom="-80" drop_shadow_visible="true" enabled="true" follows="left|top"
432 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="156"
433 mouse_opaque="true" name="total_objects_text" v_pad="0" width="48">
434 [COUNT]
435 </text>
436 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
437 bottom="-100" drop_shadow_visible="true" enabled="true" follows="left|top"
438 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="28"
439 mouse_opaque="true" name="Owned by parcel owner:" v_pad="0" width="128">
440 Owned by parcel owner:
441 </text>
442 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
443 bottom="-100" drop_shadow_visible="true" enabled="true" follows="left|top"
444 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="156"
445 mouse_opaque="true" name="owner_objects_text" v_pad="0" width="48">
446 [COUNT]
447 </text>
448 <button bottom="-100" enabled="false" follows="left|top" font="SansSerifSmall"
449 halign="center" height="16" label="Show" label_selected="Show"
450 mouse_opaque="true" name="ShowOwner" right="-190" scale_image="true"
451 width="60" />
452 <button bottom="-100" enabled="false" follows="left|top" font="SansSerifSmall"
453 halign="center" height="16" label="Return..." label_selected="Return..."
454 mouse_opaque="true" name="ReturnOwner..." right="-60" scale_image="true"
455 tool_tip="Return objects to their owners." width="119" />
456 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
457 bottom="-120" drop_shadow_visible="true" enabled="true" follows="left|top"
458 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="28"
459 mouse_opaque="true" name="Set to group:" v_pad="0" width="128">
460 Set to group:
461 </text>
462 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
463 bottom="-120" drop_shadow_visible="true" enabled="true" follows="left|top"
464 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="156"
465 mouse_opaque="true" name="group_objects_text" v_pad="0" width="48">
466 [COUNT]
467 </text>
468 <button bottom="-120" enabled="false" follows="left|top" font="SansSerifSmall"
469 halign="center" height="16" label="Show" label_selected="Show"
470 mouse_opaque="true" name="ShowGroup" right="-190" scale_image="true"
471 width="60" />
472 <button bottom="-120" enabled="false" follows="left|top" font="SansSerifSmall"
473 halign="center" height="16" label="Return..." label_selected="Return..."
474 mouse_opaque="true" name="ReturnGroup..." right="-60" scale_image="true"
475 tool_tip="Return objects to their owners." width="119" />
476 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
477 bottom="-140" drop_shadow_visible="true" enabled="true" follows="left|top"
478 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="28"
479 mouse_opaque="true" name="Owned by others:" v_pad="0" width="128">
480 Owned by others:
481 </text>
482 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
483 bottom="-140" drop_shadow_visible="true" enabled="true" follows="left|top"
484 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="156"
485 mouse_opaque="true" name="other_objects_text" v_pad="0" width="48">
486 [COUNT]
487 </text>
488 <button bottom="-140" enabled="false" follows="left|top" font="SansSerifSmall"
489 halign="center" height="16" label="Show" label_selected="Show"
490 mouse_opaque="true" name="ShowOther" right="-190" scale_image="true"
491 width="60" />
492 <button bottom="-140" enabled="false" follows="left|top" font="SansSerifSmall"
493 halign="center" height="16" label="Return..." label_selected="Return..."
494 mouse_opaque="true" name="ReturnOther..." right="-60" scale_image="true"
495 tool_tip="Return objects to their owners." width="119" />
496 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
497 bottom="-160" drop_shadow_visible="true" enabled="true" follows="left|top"
498 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="28"
499 mouse_opaque="true" name="Selected / sat upon:" v_pad="0" width="128">
500 Selected / sat upon:
501 </text>
502 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
503 bottom="-160" drop_shadow_visible="true" enabled="true" follows="left|top"
504 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="156"
505 mouse_opaque="true" name="selected_objects_text" v_pad="0" width="48">
506 [COUNT]
507 </text>
508 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
509 bottom="-180" drop_shadow_visible="true" enabled="true" follows="left|top"
510 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
511 mouse_opaque="true" name="Autoreturn" v_pad="0" width="294">
512 Autoreturn other residents&apos; objects (minutes, 0 for off):
513 </text>
514 <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-180"
515 enabled="true" follows="left|top" font="SansSerifSmall"
516 handle_edit_keys_directly="false" height="16" max_length="6"
517 mouse_opaque="true" name="clean other time" right="-100"
518 select_all_on_focus_received="false" select_on_focus="false" width="56" />
519 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
520 bottom="-200" drop_shadow_visible="true" enabled="true" follows="left|top"
521 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
522 mouse_opaque="true" name="Object Owners:" v_pad="0" width="104">
523 Object Owners:
524 </text>
525 <button bottom="-200" enabled="true" follows="left|top" font="SansSerifSmall"
526 halign="center" height="16" label="Refresh List"
527 label_selected="Refresh List" left="108" mouse_opaque="true"
528 name="Refresh List" width="106" />
529 <button bottom="-200" enabled="false" follows="left|top" font="SansSerifSmall"
530 halign="center" height="16" label="Return objects..."
531 label_selected="Return objects..." left="220" mouse_opaque="true"
532 name="Return objects..." width="164" />
533 <name_list allow_calling_card_drop="false" background_visible="true" bottom="-329"
534 column_padding="0" draw_border="true" draw_heading="true"
535 draw_stripes="true" enabled="true"
536 follows="left|top|right|bottom" height="117" left="4" mouse_opaque="true"
537 multi_select="false" name="owner list" name_column_index="2" width="450">
538 <column name="type" label="Type" sort="online_status" width="24" />
539 <column name="online_status" width="-1" />
540 <column name="name" dynamicwidth="true" label="Name" />
541 <column name="count" label="Count" width="70" />
542 <column name="mostrecent" label="Most Recent" width="160" />
543 </name_list>
544 </panel>
545 <panel border="true" bottom="-349" enabled="true" follows="left|top|right|bottom"
546 height="333" label="Options" left="1" mouse_opaque="true"
547 name="land_options_panel" width="458">
548 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
549 bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top"
550 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
551 mouse_opaque="true" name="allow_label" v_pad="0" width="278">
552 Allow other residents to:
553 </text>
554 <check_box bottom="-40" enabled="true" follows="left|top" font="SansSerifSmall"
555 height="16" initial_value="false" label="Edit Terrain" left="14"
556 mouse_opaque="true" name="edit land check" radio_style="false"
557 tool_tip="If checked, anyone can terraform your land. It is best to leave this unchecked, as you can always edit your own land."
558 width="268" />
559 <check_box bottom="-60" enabled="true" follows="left|top" font="SansSerifSmall"
560 height="16" initial_value="false" label="Create Landmarks" left="14"
561 mouse_opaque="true" name="check landmark" radio_style="false" width="268" />
562 <check_box bottom="-80" enabled="true" follows="left|top" font="SansSerifSmall"
563 height="16" initial_value="false" label="Fly" left="14" mouse_opaque="true"
564 name="check fly" radio_style="false"
565 tool_tip="If checked, Residents can fly on your land. If unchecked, they can only fly into and over your land."
566 width="268" />
567 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
568 bottom="-40" drop_shadow_visible="true" enabled="true" follows="left|top"
569 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="178"
570 mouse_opaque="true" name="allow_label2" v_pad="0" width="104">
571 Create Objects:
572 </text>
573 <check_box bottom="-40" enabled="true" follows="left|top" font="SansSerifSmall"
574 height="16" initial_value="false" label="All Residents" left="270"
575 mouse_opaque="true" name="edit objects check" radio_style="false"
576 width="104" />
577 <check_box bottom="-40" enabled="true" follows="left|top" font="SansSerifSmall"
578 height="16" initial_value="false" label="Group" left="370"
579 mouse_opaque="true" name="edit group objects check" radio_style="false"
580 width="70" />
581 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
582 bottom="-60" drop_shadow_visible="true" enabled="true" follows="left|top"
583 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="178"
584 mouse_opaque="true" name="allow_label3" v_pad="0" width="124">
585 Object Entry:
586 </text>
587 <check_box bottom="-60" enabled="true" follows="left|top" font="SansSerifSmall"
588 height="16" initial_value="false" label="All Residents" left="270"
589 mouse_opaque="true" name="all object entry check" radio_style="false"
590 width="120" />
591 <check_box bottom="-60" enabled="true" follows="left|top" font="SansSerifSmall"
592 height="16" initial_value="false" label="Group" left="370"
593 mouse_opaque="true" name="group object entry check" radio_style="false"
594 width="70" />
595 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
596 bottom="-80" drop_shadow_visible="true" enabled="true" follows="left|top"
597 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="178"
598 mouse_opaque="true" name="allow_label4" v_pad="0" width="124">
599 Run Scripts:
600 </text>
601 <check_box bottom="-80" enabled="true" follows="left|top" font="SansSerifSmall"
602 height="16" initial_value="false" label="All Residents" left="270"
603 mouse_opaque="true" name="check other scripts" radio_style="false"
604 width="120" />
605 <check_box bottom="-80" enabled="true" follows="left|top" font="SansSerifSmall"
606 height="16" initial_value="false" label="Group" left="370"
607 mouse_opaque="true" name="check group scripts" radio_style="false"
608 width="70" />
609 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
610 bottom="-100" drop_shadow_visible="true" enabled="true" follows="left|top"
611 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
612 mouse_opaque="true" name="land_options_label" v_pad="0" width="278">
613 Land Options:
614 </text>
615 <check_box bottom="-120" enabled="true" follows="left|top" font="SansSerifSmall"
616 height="16" initial_value="false" label="Safe (no damage)" left="14"
617 mouse_opaque="true" name="check safe" radio_style="false"
618 tool_tip="If checked, sets the land to Safe, disabling damage combat. If cleared, damage combat is enabled."
619 width="268" />
620 <check_box bottom="-120" enabled="true" follows="left|top" font="SansSerifSmall"
621 height="16" initial_value="false" label="No Pushing" left="178"
622 mouse_opaque="true" name="PushRestrictCheck" radio_style="false"
623 tool_tip="Prevents scripts from pushing. Checking this option may be useful for preventing disruptive behavior on your land."
624 width="119" />
625 <check_box bottom="-140" enabled="true" follows="left|top" font="SansSerifSmall"
626 height="16" initial_value="false"
627 label="Show Place in Search (L$30/week) under" left="14"
628 mouse_opaque="true" name="ShowDirectoryCheck" radio_style="false"
629 tool_tip="Let people see this parcel in search results" width="268" />
630 <string name="search_enabled_tooltip">
631 Let people see this parcel in search results
632 </string>
633 <string name="search_disabled_small_tooltip">
634 This option is disabled because this parcel&apos;s area is 128 sq.m. or smaller.
635Only large parcels can be listed in search.
636 </string>
637 <string name="search_disabled_permissions_tooltip">
638 This option is disabled because you cannot modify this parcel&apos;s options.
639 </string>
640 <combo_box allow_text_entry="false" bottom="-140" enabled="false" follows="left|top"
641 height="18" left="255" max_chars="20" mouse_opaque="true"
642 name="land category with adult" width="130" visible="false">
643 <combo_item name="AnyCategory" value="any">
644 Any Category
645 </combo_item>
646 <combo_item name="LindenLocation" value="linden">
647 Linden Location
648 </combo_item>
649 <combo_item name="Adult" value="adult">
650 Adult
651 </combo_item>
652 <combo_item name="Arts&amp;Culture" value="arts">
653 Arts &amp; Culture
654 </combo_item>
655 <combo_item name="Business" value="store">
656 Business
657 </combo_item>
658 <combo_item name="Educational" value="educational">
659 Educational
660 </combo_item>
661 <combo_item name="Gaming" value="game">
662 Gaming
663 </combo_item>
664 <combo_item name="Hangout" value="gather">
665 Hangout
666 </combo_item>
667 <combo_item name="NewcomerFriendly" value="newcomer">
668 Newcomer Friendly
669 </combo_item>
670 <combo_item name="Parks&amp;Nature" value="park">
671 Parks &amp; Nature
672 </combo_item>
673 <combo_item name="Residential" value="home">
674 Residential
675 </combo_item>
676 <combo_item name="Shopping" value="shopping">
677 Shopping
678 </combo_item>
679 <combo_item name="Other" value="other">
680 Other
681 </combo_item>
682 </combo_box>
683 <!-- The following combo box is identical to the previous one, except for the
684 fact that the Adult item is missing. This seems to be the only way to safely
685 delete the adult item with our UI toolkit.
686 Once we have completed the transition period, the one WITH adult can be deleted. -->
687 <combo_box allow_text_entry="false" bottom="-140" enabled="false" follows="left|top"
688 height="18" left="255" max_chars="20" mouse_opaque="true"
689 name="land category" width="130" visible="false">
690 <combo_item name="AnyCategory" value="any">
691 Any Category
692 </combo_item>
693 <combo_item name="LindenLocation" value="linden">
694 Linden Location
695 </combo_item>
696 <combo_item name="Arts&amp;Culture" value="arts">
697 Arts &amp; Culture
698 </combo_item>
699 <combo_item name="Business" value="store">
700 Business
701 </combo_item>
702 <combo_item name="Educational" value="educational">
703 Educational
704 </combo_item>
705 <combo_item name="Gaming" value="game">
706 Gaming
707 </combo_item>
708 <combo_item name="Hangout" value="gather">
709 Hangout
710 </combo_item>
711 <combo_item name="NewcomerFriendly" value="newcomer">
712 Newcomer Friendly
713 </combo_item>
714 <combo_item name="Parks&amp;Nature" value="park">
715 Parks &amp; Nature
716 </combo_item>
717 <combo_item name="Residential" value="home">
718 Residential
719 </combo_item>
720 <combo_item name="Shopping" value="shopping">
721 Shopping
722 </combo_item>
723 <combo_item name="Other" value="other">
724 Other
725 </combo_item>
726 </combo_box>
727 <button bottom="-140" enabled="true" follows="left|top" font="SansSerif"
728 halign="center" height="16" label="?" label_selected="?" left="400"
729 mouse_opaque="true" name="?" width="20" />
730 <check_box bottom="-160" enabled="true" follows="left|top" font="SansSerifSmall"
731 height="16" initial_value="false" label="Mature Content" left="14"
732 mouse_opaque="true" name="MatureCheck" radio_style="false"
733 tool_tip=" "
734 width="107" />
735 <string name="mature_check_mature">
736 Mature Content
737 </string>
738 <string name="mature_check_adult">
739 Adult Content
740 </string>
741 <string name="mature_check_mature_tooltip">
742 Your parcel information or content is considered mature.
743 </string>
744 <string name="mature_check_adult_tooltip">
745 Your parcel information or content is considered adult.
746 </string>
747 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
748 bottom="-180" drop_shadow_visible="true" enabled="true" follows="left|top"
749 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
750 mouse_opaque="true" name="Snapshot:" v_pad="0" width="278">
751 Snapshot:
752 </text>
753 <texture_picker allow_no_texture="false" bottom="-299" can_apply_immediately="false"
754 default_image_name="" enabled="true" follows="left|top" height="135"
755 label="" left="76" mouse_opaque="true" name="snapshot_ctrl"
756 tool_tip="Click to choose a picture" width="180" />
757 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
758 bottom="-303" drop_shadow_visible="true" enabled="true" follows="left|top"
759 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
760 mouse_opaque="true" name="landing_point" v_pad="0" width="278">
761 Landing Point: [LANDING]
762 </text>
763 <string name="landing_point_none">
764 (none)
765 </string>
766 <button bottom="-303" enabled="true" follows="left|top" font="SansSerifSmall"
767 halign="center" height="16" label="Set" label_selected="Set" left="236"
768 mouse_opaque="true" name="Set" scale_image="true"
769 tool_tip="Sets the landing point where visitors arrive. Sets to your avatar&apos;s location inside this parcel."
770 width="50" />
771 <button bottom="-303" enabled="true" follows="left|top" font="SansSerifSmall"
772 halign="center" height="16" label="Clear" label_selected="Clear" left="291"
773 mouse_opaque="true" name="Clear" scale_image="true"
774 tool_tip="Clear the landing point." width="50" />
775 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
776 bottom="-323" drop_shadow_visible="true" enabled="true" follows="left|top"
777 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
778 mouse_opaque="true" name="Teleport Routing: " v_pad="0" width="278">
779 Teleport Routing:
780 </text>
781 <combo_box allow_text_entry="false" bottom="-325" enabled="true" follows="left|top"
782 height="18" left="120" max_chars="20" mouse_opaque="true"
783 name="landing type"
784 tool_tip="Teleport Routing -- select how to handle teleports onto your land."
785 width="120">
786 <combo_item type="string" length="1" enabled="true" name="Blocked" value="Blocked">
787 Blocked
788 </combo_item>
789 <combo_item type="string" length="1" enabled="true" name="LandingPoint" value="Landing Point">
790 Landing Point
791 </combo_item>
792 <combo_item type="string" length="1" enabled="true" name="Anywhere" value="Anywhere">
793 Anywhere
794 </combo_item>
795 </combo_box>
796 <string name="push_restrict_text">
797 No Pushing
798 </string>
799 <string name="push_restrict_region_text">
800 No Pushing (Region Override)
801 </string>
802 </panel>
803 <panel border="true" bottom="-349" enabled="true" follows="left|top|right|bottom"
804 height="363" label="Media" left="1" mouse_opaque="true"
805 name="land_media_panel" width="458">
806 <text type="string" length="1" bottom="-25" follows="left|top" font="SansSerifSmall" halign="left" height="16"
807 left="10" mouse_opaque="true" name="with media:" width="65">
808 Media Type:
809 </text>
810 <combo_box allow_text_entry="false" bottom_delta="0" follows="left|top" height="18"
811 left="80" max_chars="20" name="media type"
812 tool_tip="Specify if the URL is a movie, web page, or other media"
813 width="120" />
814 <text bottom_delta="0" follows="left|top" font="SansSerifSmall" height="16"
815 left_delta="130" name="mime_type" width="200" />
816 <text type="string" length="1" bottom_delta="-20" follows="left|top" font="SansSerifSmall" halign="left"
817 height="16" left="10" name="at URL:" width="65">
818 Media URL:
819 </text>
820 <line_editor bottom_delta="0" follows="left|top" font="SansSerifSmall" height="16" left="80"
821 max_length="255" name="media_url" right="-80"
822 select_all_on_focus_received="true" select_on_focus="true"
823 text_readonly_color="0.576471 0.662745 0.835294 1" />
824 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" halign="center"
825 height="16" label="Set..." label_selected="Set..." mouse_opaque="true"
826 name="set_media_url" right="-12" scale_image="true" width="60" />
827 <text type="string" length="1" bottom_delta="-20" follows="left|top" font="SansSerifSmall" halign="left"
828 height="16" left="10" name="Description:" width="364">
829 Description:
830 </text>
831 <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom_delta="0"
832 follows="left|top" font="SansSerifSmall" height="16" left="80"
833 max_length="255" name="url_description" right="-80"
834 select_all_on_focus_received="true" select_on_focus="true"
835 tool_tip="Text displayed next to play/load button" />
836 <text type="string" length="1" bottom_delta="-20" follows="left|top" font="SansSerifSmall" halign="left"
837 height="16" left="10" name="Media texture:" width="364">
838 Replace
839Texture:
840 </text>
841 <texture_picker allow_no_texture="true" bottom_delta="-64" can_apply_immediately="false"
842 default_image_name="Default" follows="left|top" height="80" label=""
843 left="80" name="media texture" tool_tip="Click to choose a picture"
844 width="64" />
845 <text type="string" length="1" bottom_delta="48" follows="left|top" font="SansSerifSmall" halign="left"
846 height="16" left_delta="75" name="replace_texture_help" width="270">
847 (Objects using this texture will show the movie or
848web page after you click the play arrow.)
849 </text>
850 <text type="string" length="1" bottom_delta="-55" follows="left|top" font="SansSerifSmall" halign="left"
851 height="16" left="10" mouse_opaque="true" name="Options:" width="292">
852 Media
853Options:
854 </text>
855 <check_box bottom_delta="0" enabled="true" follows="left|top" font="SansSerifSmall"
856 height="16" initial_value="false" label="Auto scale" left="80"
857 mouse_opaque="true" name="media_auto_scale" radio_style="false"
858 tool_tip="Checking this option will scale the content for this parcel automatically. It may be slightly slower and lower quality visually but no other texture scaling or alignment will be required."
859 width="200" />
860 <check_box bottom_delta="0" enabled="true" follows="left|top" font="SansSerifSmall"
861 height="16" initial_value="false" label="Loop Media" left="250"
862 mouse_opaque="true" name="media_loop" radio_style="false"
863 tool_tip="Play media in a loop. When the media has finished playing, it will restart from the beginning."
864 width="200" />
865 <check_box bottom_delta="-20" enabled="true" follows="left|top" font="SansSerifSmall"
866 height="16" initial_value="false" label="Hide Media URL" left="80"
867 mouse_opaque="true" name="hide_media_url" radio_style="false"
868 tool_tip="Checking this option will hide the media url to any non-authorized viewers of this parcel information. Note this is not available for HTML types."
869 width="200" />
870 <check_box bottom_delta="0" enabled="true" follows="left|top" font="SansSerifSmall"
871 height="16" initial_value="false" label="Hide Music URL" left="250"
872 mouse_opaque="true" name="hide_music_url" radio_style="false"
873 tool_tip="Checking this option will hide the music url to any non-authorized viewers of this parcel information"
874 width="200" />
875 <text type="string" length="1" bottom_delta="-25" follows="left|top" font="SansSerifSmall" halign="left"
876 height="16" left="85" name="media_size"
877 tool_tip="Size to render Web media, leave 0 for default." width="85">
878 Media size:
879 </text>
880 <spinner bottom_delta="0" decimal_digits="0" enabled="false" follows="left|top"
881 halign="right" height="16" increment="1" initial_val="0" left_delta="65"
882 max_val="1024" min_val="0" name="media_size_width"
883 tool_tip="Size to render Web media, leave 0 for default." width="64" />
884 <spinner bottom_delta="0" decimal_digits="0" enabled="false" follows="left|top"
885 halign="right" height="16" increment="1" initial_val="0" left_delta="80"
886 max_val="1024" min_val="0" name="media_size_height"
887 tool_tip="Size to render Web media, leave 0 for default." width="64" />
888 <text type="string" length="1" bottom_delta="0" follows="left|top" font="SansSerifSmall" halign="left"
889 height="16" left_delta="70" name="pixels" right="-10">
890 pixels
891 </text>
892 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
893 bottom_delta="-40" drop_shadow_visible="true" enabled="true"
894 follows="left|top" font="SansSerifSmall" h_pad="0" halign="left"
895 height="16" left="10" mouse_opaque="true" name="MusicURL:" v_pad="0"
896 width="364">
897 Music URL:
898 </text>
899 <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom_delta="0"
900 enabled="true" follows="left|top" font="SansSerifSmall"
901 handle_edit_keys_directly="false" height="16" left="80" max_length="255"
902 mouse_opaque="true" name="music_url" right="-15"
903 select_all_on_focus_received="true" select_on_focus="true"/>
904 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
905 bottom_delta="-40" drop_shadow_visible="true" enabled="true"
906 follows="left|top" font="SansSerifSmall" h_pad="0" halign="left"
907 height="16" left="10" mouse_opaque="true" name="Sound:" v_pad="0"
908 width="364">
909 Sound:
910 </text>
911 <check_box bottom_delta="0" enabled="true" follows="left|top" font="SansSerifSmall"
912 height="16" initial_value="false"
913 label="Restrict gesture and object sounds to this parcel" left="80"
914 mouse_opaque="true" name="check sound local" radio_style="false"
915 width="292" />
916 <button bottom_delta="0" enabled="true" follows="left|top" font="SansSerif"
917 halign="center" height="18" label="?" label_selected="?" left="372"
918 mouse_opaque="true" name="?" width="18" />
919 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
920 bottom_delta="-40" enabled="true" follows="left|top" font="SansSerifSmall"
921 h_pad="0" halign="left" height="16" left="10" mouse_opaque="false"
922 name="Voice settings:" tab_stop="false" v_pad="0" width="364">
923 Voice:
924 </text>
925 <check_box bottom_delta="-0" enabled="true" follows="left|top"
926 height="54" left="80" mouse_opaque="true" name="parcel_enable_voice_channel"
927 tab_stop="true" width="463"
928 label="Enable Voice"
929 />
930 <check_box bottom_delta="-0" enabled="false" follows="left|top"
931 height="54" left="80" mouse_opaque="true" name="parcel_enable_voice_channel_is_estate_disabled"
932 tab_stop="true" width="463"
933 label="Enable Voice (established by the Estate)"
934 />
935 <check_box bottom_delta="-20" enabled="true" follows="left|top"
936 height="54" left="100" mouse_opaque="true" name="parcel_enable_voice_channel_parcel"
937 tab_stop="true" width="443"
938 label="Restrict Voice to this parcel"
939 />
940 </panel>
941 <panel border="true" bottom="-349" enabled="true" follows="left|top|right|bottom"
942 height="333" label="Access" left="1" mouse_opaque="true"
943 name="land_access_panel" width="458">
944 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
945 bottom="-24" drop_shadow_visible="true" enabled="true" follows="left|top"
946 font="SansSerif" h_pad="0" halign="left" height="20" left="8"
947 mouse_opaque="true" name="Limit access to this parcel to:" v_pad="0"
948 width="278">
949 Access To This Parcel
950 </text>
951 <check_box bottom="-45" enabled="true" follows="top|left" font="SansSerifSmall"
952 height="16" initial_value="false" label="Allow Public Access" left="8"
953 mouse_opaque="true" name="public_access" radio_style="false" width="278" />
954 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
955 bottom_delta="-20" drop_shadow_visible="true" enabled="true"
956 follows="top|left" font="SansSerifSmall" h_pad="0" halign="left"
957 height="16" left_delta="20" mouse_opaque="true" name="Only Allow" v_pad="0"
958 width="278">
959 Block Access By:
960 </text>
961 <check_box bottom_delta="-20" enabled="true" follows="top|left" font="SansSerifSmall"
962 height="16" initial_value="false"
963 label="Residents who have not given payment info to Linden Lab"
964 left_delta="0" mouse_opaque="true" name="limit_payment" radio_style="false"
965 tool_tip="Ban unidentified residents." width="278" />
966 <check_box bottom_delta="-20" enabled="true" follows="top|left" font="SansSerifSmall"
967 height="16" initial_value="false"
968 label="Residents who are not age verified adults" left_delta="0"
969 mouse_opaque="true" name="limit_age_verified" radio_style="false"
970 tool_tip="Ban residents who have not verified their age. See support.secondlife.com for more information."
971 width="278" />
972 <string name="estate_override">
973 One or more of these options is set at the estate level
974 </string>
975 <check_box bottom_delta="-20" enabled="true" follows="left|top" font="SansSerifSmall"
976 height="16" initial_value="false" label="Allow Group Access: [GROUP]"
977 left="8" mouse_opaque="true" name="GroupCheck" radio_style="false"
978 tool_tip="Set group in the General tab." width="278" />
979 <check_box bottom_delta="-20" enabled="false" follows="left|top" font="SansSerifSmall"
980 height="16" initial_value="false" label="Sell passes to:" left="8"
981 mouse_opaque="true" name="PassCheck" radio_style="false"
982 tool_tip="Allows temporary access to this parcel" width="120" />
983 <combo_box allow_text_entry="false" bottom_delta="0" enabled="true" follows="left|top"
984 height="16" left_delta="142" max_chars="20" mouse_opaque="true"
985 name="pass_combo" width="100">
986 <combo_item name="Anyone" value="anyone">
987 Anyone
988 </combo_item>
989 <combo_item name="Group" value="group">
990 Group
991 </combo_item>
992 </combo_box>
993 <spinner bottom_delta="-20" enabled="false" follows="left|top" height="16" increment="1"
994 initial_val="10" label="Price in L$:" label_width="120" left="28"
995 max_val="500" min_val="1" mouse_opaque="true" name="PriceSpin" width="180" />
996 <spinner bottom_delta="-20" enabled="false" follows="left|top" height="16"
997 increment="0.25" initial_val="1" label="Hours of access:" label_width="120"
998 left_delta="0" max_val="24" min_val="0.01" mouse_opaque="true"
999 name="HoursSpin" width="180" />
1000 <text bottom="-220" enabled="true" follows="left|right|top" font="SansSerifSmall"
1001 height="16" initial_value="false" label="Always Allow" left="20"
1002 mouse_opaque="true" name="AllowedText" radio_style="false" width="195">
1003 Allowed Residents
1004 </text>
1005 <name_list allow_calling_card_drop="false" background_visible="true" bottom="-304"
1006 column_padding="0" draw_border="true" draw_heading="false" enabled="true"
1007 follows="top|bottom" heading_font="SansSerifSmall" heading_height="14"
1008 height="80" left="20" mouse_opaque="true" multi_select="true"
1009 name="AccessList" tool_tip="([LISTED] listed, [MAX] max)" width="195" />
1010 <button bottom_delta="-20" enabled="true" follows="bottom" font="SansSerifSmall"
1011 halign="center" height="16" label="Add..." label_selected="Add..."
1012 left_delta="5" mouse_opaque="true" name="add_allowed" scale_image="true"
1013 width="80" />
1014 <button bottom_delta="0" enabled="true" follows="bottom" font="SansSerifSmall"
1015 halign="center" height="16" label="Remove" label_selected="Remove"
1016 left_delta="100" mouse_opaque="true" name="remove_allowed"
1017 scale_image="true" width="80" />
1018 <text bottom="-220" enabled="true" follows="left|right|top" font="SansSerifSmall"
1019 height="16" initial_value="false"
1020 label="Ban" left="240" mouse_opaque="true"
1021 name="BanCheck" radio_style="false" width="195">
1022 Banned Residents
1023 </text>
1024 <name_list allow_calling_card_drop="false" background_visible="true" bottom="-304"
1025 column_padding="0" draw_border="true" draw_heading="false" enabled="true"
1026 follows="top|bottom" heading_font="SansSerifSmall"
1027 heading_height="14" height="80" left_delta="0" mouse_opaque="true"
1028 multi_select="true" name="BannedList"
1029 tool_tip="([LISTED] listed, [MAX] max)" width="195" />
1030 <button bottom_delta="-20" enabled="true" follows="bottom" font="SansSerifSmall"
1031 halign="center" height="16" label="Add..." label_selected="Add..."
1032 left_delta="5" mouse_opaque="true" name="add_banned" scale_image="true"
1033 width="80" />
1034 <button bottom_delta="0" enabled="false" follows="bottom" font="SansSerifSmall"
1035 halign="center" height="16" label="Remove" label_selected="Remove"
1036 left_delta="100" mouse_opaque="true" name="remove_banned"
1037 scale_image="true" width="80" />
1038 </panel>
1039 </tab_container>
1040</floater>
diff --git a/linden/indra/newview/skins/silver/xui/en-us/floater_directory.xml b/linden/indra/newview/skins/silver/xui/en-us/floater_directory.xml
deleted file mode 100644
index af8db95..0000000
--- a/linden/indra/newview/skins/silver/xui/en-us/floater_directory.xml
+++ /dev/null
@@ -1,701 +0,0 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater can_close="true" can_drag_on_left="false" can_minimize="true"
3 can_resize="true" height="570" min_height="570" min_width="780"
4 name="directory" rect_control="FloaterFindRect2" title="Search Second Life"
5 width="780">
6 <tab_container bottom="-570" follows="left|top|right|bottom" height="550" left="0"
7 mouse_opaque="false" name="Directory Tabs" tab_position="top" width="780">
8 <panel border="true" bottom="-549" follows="left|top|right|bottom" height="533"
9 label="All" left="1" mouse_opaque="false" name="find_all_panel" width="778">
10 <string name="searching_text">
11 Searching...
12 </string>
13 <string name="not_found_text">
14 None Found.
15 </string>
16 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
17 bottom="-24" drop_shadow_visible="true" follows="left|top" font="SansSerif"
18 h_pad="0" halign="left" height="16" left="4" mouse_opaque="true"
19 name="find" v_pad="0" width="50">
20 Find:
21 </text>
22 <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-24"
23 commit_on_focus_lost="false" enabled="true" follows="top|left|right"
24 font="SansSerif" handle_edit_keys_directly="false" height="18"
25 label="Search" left_delta="56" max_length="254" mouse_opaque="true"
26 name="search_editor" select_all_on_focus_received="false"
27 select_on_focus="false" tab_group="1" tool_tip="Search Second Life"
28 width="160" />
29 <button bottom="-26" follows="top|right" font="SansSerifSmall" height="20" label="Back"
30 left="230" name="back_btn" width="70" />
31 <button bottom="-26" follows="top|right" font="SansSerifSmall" height="20"
32 label="Forward" left="304" name="forward_btn" width="70" />
33 <button bottom="-48" follows="top|right" font="SansSerif" height="20"
34 label="Search" left="121" name="search_btn" width="95" />
35 <combo_box allow_text_entry="false" bottom="-46" follows="right|top" height="18"
36 left="230" max_chars="20" mouse_opaque="true" name="Category"
37 width="158">
38 <combo_item name="AnyCategory" value="All">
39 Any Category
40 </combo_item>
41 <combo_item name="Events" value="Events">
42 Events
43 </combo_item>
44 <combo_item name="Groups" value="Groups">
45 Groups
46 </combo_item>
47 <combo_item name="People" value="People">
48 People
49 </combo_item>
50 <combo_item name="Places" value="Places">
51 Places
52 </combo_item>
53 <combo_item name="Wiki" value="Wiki">
54 Wiki
55 </combo_item>
56 </combo_box>
57 <check_box bottom="-22" control_name="ShowPGSearchAll" follows="right|top"
58 font="SansSerifSmall" height="16" initial_value="true"
59 label="PG content" left="420" mouse_opaque="true"
60 name="incpg" width="156" />
61 <check_box bottom="-40" control_name="ShowMatureSearchAll" follows="right|top"
62 font="SansSerifSmall" height="16" initial_value="true"
63 label="Mature content" left="420" mouse_opaque="true"
64 name="incmature" width="156" />
65 <check_box bottom="-58" control_name="ShowAdultSearchAll" follows="right|top"
66 font="SansSerifSmall" height="16" initial_value="false"
67 label="Adult content" left="420" mouse_opaque="true"
68 name="incadult" width="156" />
69 <button bottom="-22" enabled="true" follows="right|top" font="SansSerif"
70 halign="center" height="18" label="?" label_selected="?" left="-25"
71 mouse_opaque="true" name="?" width="18" />
72 <web_browser bottom="25" follows="top|left|bottom|right" font="SansSerifSmall" left="10"
73 name="find_browser" right="-10" top="-60" />
74 <text bottom="5" follows="bottom|left" halign="left" height="16" left="10"
75 name="status_text" width="150" />
76 <string name="loading_text">
77 Loading...
78 </string>
79 <string name="done_text">
80 Done
81 </string>
82 <string name="redirect_404_url">
83 http://secondlife.com/app/search/notfound.html
84 </string>
85 <string name="default_search_page">"http://secondlife.com/app/search/index.php?"</string>
86 </panel>
87 <panel border="true" bottom="-549" follows="left|top|right|bottom" height="533"
88 label="Classifieds" left="1" left_delta="68" mouse_opaque="false"
89 name="classified_panel" width="778">
90 <string name="searching_text">
91 Searching...
92 </string>
93 <string name="not_found_text">
94 None Found.
95 </string>
96 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
97 bottom="-24" drop_shadow_visible="true" follows="left|top" font="SansSerif"
98 h_pad="0" halign="left" height="16" left="4" mouse_opaque="true"
99 name="find" v_pad="0" width="50">
100 Find:
101 </text>
102 <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-24"
103 follows="left|right|top" font="SansSerif" height="18" left="56"
104 max_length="63" mouse_opaque="true" name="name" width="160" />
105 <check_box bottom="-22" control_name="ShowPGClassifieds" follows="right|top"
106 font="SansSerifSmall" height="16" initial_value="true"
107 label="PG content" left="420" mouse_opaque="true"
108 name="incpg" width="156" />
109 <check_box bottom="-40" control_name="ShowMatureClassifieds" follows="right|top"
110 font="SansSerifSmall" height="16" initial_value="true"
111 label="Mature content" left="420" mouse_opaque="true"
112 name="incmature" width="156" />
113 <check_box bottom="-58" control_name="ShowAdultClassifieds" follows="right|top"
114 font="SansSerifSmall" height="16" initial_value="false"
115 label="Adult content" left="420" mouse_opaque="true"
116 name="incadult" width="156" />
117 <combo_box allow_text_entry="false" bottom="-46" follows="right|top" height="18" left="230"
118 max_chars="20" mouse_opaque="true" name="Category" width="158">
119 <combo_item name="AnyCategory" value="0">
120 Any Category
121 </combo_item>
122 <combo_item name="Shopping" value="1">
123 Shopping
124 </combo_item>
125 <combo_item name="LandRental" value="2">
126 Land Rental
127 </combo_item>
128 <combo_item name="PropertyRental" value="3">
129 Property Rental
130 </combo_item>
131 <combo_item name="SpecialAttraction" value="4">
132 Special Attraction
133 </combo_item>
134 <combo_item name="NewProducts" value="5">
135 New Products
136 </combo_item>
137 <combo_item name="Employment" value="6">
138 Employment
139 </combo_item>
140 <combo_item name="Wanted" value="7">
141 Wanted
142 </combo_item>
143 <combo_item name="Service" value="8">
144 Service
145 </combo_item>
146 <combo_item name="Personal" value="9">
147 Personal
148 </combo_item>
149 </combo_box>
150 <button bottom="-48" follows="right|top" font="SansSerif" halign="center" height="20"
151 label="Browse" label_selected="Browse" left="121" mouse_opaque="true"
152 name="Browse" width="95" />
153 <button bottom="-48" follows="right|top" font="SansSerif" halign="center" height="20"
154 label="Search" label_selected="Search" left="121" mouse_opaque="true" name="Search"
155 visible="false" width="95" />
156 <button bottom="-46" follows="right|top" font="SansSerif" halign="center" height="20"
157 label="Place an Ad..." label_selected="Place an Ad..." left="630"
158 mouse_opaque="true" name="Place an Ad..." width="145" />
159 <button bottom="-533" follows="left|bottom" font="SansSerif" halign="center"
160 height="20" label="Delete" label_selected="Delete" left="80"
161 mouse_opaque="true" name="Delete" width="80" />
162 <scroll_list background_visible="true" bottom="-510" column_padding="0" draw_border="true"
163 draw_heading="true" follows="left|top|right|bottom" height="450" left="4"
164 mouse_opaque="true" multi_select="false" name="results" search_column="2" width="339">
165 <column label="" name="icon" width="24" />
166 <column label="" name="type" width="-1" />
167 <column label="Name" name="name" width="225" />
168 <column label="Price" name="price" width="55" />
169 </scroll_list>
170 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
171 bottom_delta="-20" drop_shadow_visible="true" follows="left|bottom"
172 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
173 mouse_opaque="true" name="result_text" v_pad="0" width="80" />
174 <button bottom="-533" follows="right|bottom" font="SansSerif" halign="center"
175 height="20" label="Next &gt;" label_selected="Next &gt;"
176 mouse_opaque="true" name="Next &gt;" right="344" width="80" />
177 <button bottom_delta="0" follows="right|bottom" font="SansSerif" halign="center"
178 height="20" label="&lt; Prev" label_selected="&lt; Prev"
179 mouse_opaque="true" name="&lt; Prev" right="258" width="80" />
180 </panel>
181 <panel border="true" bottom="-549" default_tab_group="1"
182 follows="left|top|right|bottom" height="533" label="Events" left="1"
183 mouse_opaque="false" name="events_panel" width="778">
184 <string name="searching_text">
185 Searching...
186 </string>
187 <string name="not_found_text">
188 None Found.
189 </string>
190 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
191 bottom="-24" drop_shadow_visible="true" follows="left|top" font="SansSerif"
192 h_pad="0" halign="left" height="16" left="4" mouse_opaque="true"
193 name="text2" v_pad="0" width="50">
194 Find:
195 </text>
196 <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-24"
197 follows="left|right|top" font="SansSerif" height="18" left="56"
198 max_length="63" mouse_opaque="true" name="event_search_text" width="160" />
199 <radio_group bottom="-40" draw_border="false" follows="right|top" height="40" left="560"
200 mouse_opaque="true" name="date_mode" width="300">
201 <radio_item bottom="-20" follows="left|top" height="20" left="0" mouse_opaque="true"
202 name="current" width="174">
203 In-Progress and Upcoming
204 </radio_item>
205 <radio_item bottom_delta="-10" follows="left|top" height="20" left="0" mouse_opaque="true"
206 name="date" width="56">
207 Date
208 </radio_item>
209 </radio_group>
210 <button bottom="-40" follows="right|top" font="SansSerif" halign="center" height="20"
211 label="&lt;&lt;" label_selected="&lt;&lt;" left_delta="54"
212 mouse_opaque="true" name="&lt;&lt;" tool_tip="Go back a day" width="24" />
213 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
214 bottom="-36" drop_shadow_visible="true" follows="right|top" font="SansSerif"
215 h_pad="0" halign="center" height="14" left_delta="22" mouse_opaque="true"
216 name="date_text" v_pad="0" width="48">
217 6/6
218 </text>
219 <button bottom="-40" follows="right|top" font="SansSerif" halign="center" height="20"
220 label="&gt;&gt;" label_selected="&gt;&gt;" left_delta="50"
221 mouse_opaque="true" name="&gt;&gt;" tool_tip="Go forward a day" width="24" />
222 <button bottom="-40" follows="right|top" font="SansSerif" halign="center" height="20"
223 label="Today" label_selected="Today" left_delta="28" mouse_opaque="true"
224 name="Today" tool_tip="Show today&apos;s events" width="60" />
225 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
226 bottom="-24" drop_shadow_visible="true" follows="left|top"
227 font="SansSerifSmall" h_pad="0" halign="left" height="20" left="289"
228 mouse_opaque="true" name="text" v_pad="0" width="90" visible="false">
229 Category:
230 </text>
231 <combo_box allow_text_entry="false" bottom="-46" follows="right|top" height="18" left="230"
232 max_chars="20" mouse_opaque="true" name="category combo" width="158">
233 <combo_item name="All" value="0">
234 Any Category
235 </combo_item>
236 <combo_item name="Discussion" value="18">
237 Discussion
238 </combo_item>
239 <combo_item name="Sports" value="19">
240 Sports
241 </combo_item>
242 <combo_item name="LiveMusic" value="20">
243 Live Music
244 </combo_item>
245 <combo_item name="Commercial" value="22">
246 Commercial
247 </combo_item>
248 <combo_item name="Nightlife/Entertainment" value="23">
249 Nightlife/Entertainment
250 </combo_item>
251 <combo_item name="Games/Contests" value="24">
252 Games/Contests
253 </combo_item>
254 <combo_item name="Pageants" value="25">
255 Pageants
256 </combo_item>
257 <combo_item name="Education" value="26">
258 Education
259 </combo_item>
260 <combo_item name="ArtsandCulture" value="27">
261 Arts and Culture
262 </combo_item>
263 <combo_item name="Charity/SupportGroups" value="28">
264 Charity/Support Groups
265 </combo_item>
266 <combo_item name="Miscellaneous" value="29">
267 Miscellaneous
268 </combo_item>
269 </combo_box>
270 <check_box bottom="-22" control_name="ShowPGEvents" follows="right|top"
271 font="SansSerifSmall" height="16" initial_value="true"
272 label="PG content" left="420" mouse_opaque="true"
273 name="incpg" width="156" />
274 <check_box bottom="-40" control_name="ShowMatureEvents" follows="right|top"
275 font="SansSerifSmall" height="16" initial_value="true"
276 label="Mature content" left="420" mouse_opaque="true"
277 name="incmature" width="156" />
278 <check_box bottom="-58" control_name="ShowAdultEvents" follows="right|top"
279 font="SansSerifSmall" height="16" initial_value="false"
280 label="Adult content" left="420" mouse_opaque="true"
281 name="incadult" width="156" />
282 <button bottom="-48" follows="right|top" font="SansSerif" halign="center" height="20"
283 label="Search" label_selected="Search" left="121" mouse_opaque="true" name="Search"
284 visible="true" width="95" />
285 <button bottom="-533" follows="left|bottom" font="SansSerif" halign="center"
286 height="20" label="Delete" label_selected="Delete" left="80"
287 mouse_opaque="true" name="Delete" width="80" />
288 <scroll_list background_visible="true" bottom="-510" column_padding="0" draw_border="true" draw_heading="true"
289 follows="left|top|right|bottom" height="450" left="4" mouse_opaque="true"
290 multi_select="false" name="results" search_column="2" width="339">
291 <column label="" name="icon" width="24" />
292 <column label="" name="type" width="-1" />
293 <column dynamicwidth="true" label="Name" name="name" />
294 <column label="Time (PT)" name="date" sort="time" width="106" />
295 <column label="" name="event_id" width="-1" />
296 <column label="Time" name="time" width="-1" />
297 </scroll_list>
298 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
299 bottom_delta="-20" drop_shadow_visible="true" follows="left|bottom"
300 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
301 mouse_opaque="true" name="result_text" v_pad="0" width="80" />
302 <button bottom="-533" follows="right|bottom" font="SansSerif" halign="center"
303 height="20" label="Next &gt;" label_selected="Next &gt;"
304 mouse_opaque="true" name="Next &gt;" right="344" width="80" />
305 <button bottom_delta="0" follows="right|bottom" font="SansSerif" halign="center"
306 height="20" label="&lt; Prev" label_selected="&lt; Prev"
307 mouse_opaque="true" name="&lt; Prev" right="258" width="80" />
308 </panel>
309 <panel border="true" bottom="-549" follows="left|top|right|bottom" height="533"
310 label="Showcase" left="1" mouse_opaque="false" name="showcase_panel"
311 width="778">
312 <string name="searching_text">Searching...</string>
313 <string name="not_found_text">None Found.</string>
314 <button bottom="-30" follows="top|left" font="SansSerifSmall" height="20"
315 label="Back"
316 left="10"
317 name="back_btn" width="70" />
318 <button bottom_delta="0" follows="top|left" font="SansSerifSmall" height="20"
319 label="Forward" left_delta="75"
320 name="forward_btn" width="70" />
321 <!-- No mature content checkbox, showcase is all PG -->
322 <web_browser name="showcase_browser"
323 bottom="25"
324 follows="top|left|bottom|right"
325 font="SansSerifSmall"
326 left="10"
327 right="-10"
328 top="-40" />
329 <text bottom="5"
330 follows="bottom|left"
331 halign="left"
332 left="10"
333 width="150"
334 name="status_text"
335 height="16" />
336 <string name="loading_text">Loading...</string>
337 <string name="done_text">Done</string>
338 <string name="redirect_404_url">http://secondlife.com/app/search/notfound.html</string>
339 <string name="default_search_page">"http://secondlife.com/app/showcase/index.php?"</string>
340 </panel>
341 <panel border="true" bottom="-549" follows="left|top|right|bottom" height="533"
342 label="Land Sales" left="1" mouse_opaque="false" name="land_sales_panel"
343 width="778" default_tab_group="1">
344 <string name="searching_text">
345 Searching...
346 </string>
347 <string name="not_found_text">
348 None Found.
349 </string>
350 <string name="land_help_text">
351 Land can be bought direct for Linden Dollars (L$) or at auction for either L$ or US$.
352To buy direct, visit the land and click on the place name in the title bar.
353 </string>
354 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
355 bottom="-24" drop_shadow_visible="true" follows="left|top" font="SansSerif"
356 h_pad="0" halign="left" height="16" left="4" mouse_opaque="true"
357 name="find" v_pad="0" width="50">
358 Find:
359 </text>
360 <check_box bottom="-22" control_name="ShowPGLand" follows="right|top"
361 font="SansSerifSmall" height="16" initial_value="true"
362 label="PG content" left="420" mouse_opaque="true"
363 name="incpg" tab_group="7" width="156" />
364 <check_box bottom="-40" control_name="ShowMatureLand" follows="right|top"
365 font="SansSerifSmall" height="16" initial_value="true"
366 label="Mature content" left="420" mouse_opaque="true"
367 name="incmature" tab_group="8" width="156" />
368 <check_box bottom="-58" control_name="ShowAdultLand" follows="right|top"
369 font="SansSerifSmall" height="16" initial_value="false"
370 label="Adult content" left="420" mouse_opaque="true"
371 name="incadult" tab_group="9" width="156" />
372 <combo_box allow_text_entry="false" bottom="-46" follows="left|top|right" height="18" left="282"
373 max_chars="20" mouse_opaque="true" name="type" tab_group="6" width="128">
374 <combo_item name="AllTypes" value="All Types">
375 All Types
376 </combo_item>
377 <combo_item name="Auction" value="Auction">
378 Auction
379 </combo_item>
380 <combo_item name="MainlandSales" value="Mainland Sales">
381 For Sale - Mainland
382 </combo_item>
383 <combo_item name="EstateSales" value="Estate Sales">
384 For Sale - Estate
385 </combo_item>
386 </combo_box>
387 <check_box bottom="-24" control_name="FindLandPrice" follows="left|top"
388 font="SansSerifSmall" height="16" initial_value="true"
389 label="Price &#8804; " left="56" mouse_opaque="true" name="pricecheck"
390 tab_group="1" width="88" />
391 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" follows="left|top"
392 bottom="-24" font="SansSerifSmall" halign="left" height="16" left="116" mouse_opaque="true"
393 name="pricecheck_symbol" width="15">
394 L$
395 </text>
396 <check_box bottom_delta="-18" control_name="FindLandArea" follows="left|top"
397 font="SansSerifSmall" height="16" initial_value="true"
398 label="Area &#8805; " left="56" mouse_opaque="true" name="areacheck"
399 tab_group="3" width="80" />
400 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" follows="left|top"
401 bottom="-42" font="SansSerifSmall" halign="left" height="16" left="170" mouse_opaque="true"
402 name="areacheck_symbol" width="15">
403
404 </text>
405 <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-22"
406 follows="left|top" font="SansSerifSmall" height="16" left="132"
407 max_length="10" mouse_opaque="true" name="priceedit" tab_group="2" width="50" />
408 <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom_delta="-18"
409 follows="left|top" font="SansSerifSmall" height="16" left="117"
410 max_length="10" mouse_opaque="true" name="areaedit" tab_group="4" width="50" />
411 <button bottom="-48" follows="left|top" font="SansSerif" halign="center" height="20"
412 label="Search" label_selected="Search" left="208" mouse_opaque="true"
413 name="Search" tab_group="5" width="70" />
414 <scroll_list background_visible="true" bottom="-510" column_padding="0" draw_border="true" draw_heading="true"
415 follows="left|top|right|bottom" height="450" left="4" mouse_opaque="true"
416 multi_select="false" name="results" search_column="2" tab_group="10" width="387">
417 <column label="" name="icon" width="24" />
418 <column label="" name="type" width="-1" />
419 <column dynamicwidth="true" label="Name" name="name" />
420 <column label="Type" name="landtype" width="50" />
421 <column label="L$ Price" name="price" width="65" />
422 <column label="Area" name="area" width="50" />
423 <column label="L$/m²" name="per_meter" width="65" />
424 </scroll_list>
425 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
426 bottom_delta="-20" drop_shadow_visible="true" follows="left|bottom"
427 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
428 mouse_opaque="true" name="result_text" v_pad="0" width="328" />
429 <button bottom="-533" follows="right|bottom" font="SansSerif" halign="center"
430 height="20" label="Next &gt;" label_selected="Next &gt;"
431 mouse_opaque="true" name="Next &gt;" right="344" width="80" />
432 <button bottom_delta="0" follows="right|bottom" font="SansSerif" halign="center"
433 height="20" label="&lt; Prev" label_selected="&lt; Prev"
434 mouse_opaque="true" name="&lt; Prev" right="258" width="80" />
435 </panel>
436 <panel border="true" bottom="-549" follows="left|top|right|bottom" height="533"
437 label="Places" left="1" mouse_opaque="false" name="places_panel"
438 width="778">
439 <string name="searching_text">
440 Searching...
441 </string>
442 <string name="not_found_text">
443 None Found.
444 </string>
445 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
446 bottom="-24" drop_shadow_visible="true" follows="left|top" font="SansSerif"
447 h_pad="0" halign="left" height="16" left="4" mouse_opaque="true"
448 name="find" v_pad="0" width="50">
449 Find:
450 </text>
451 <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-24"
452 follows="left|right|top" font="SansSerif" height="18" left="56"
453 max_length="63" mouse_opaque="true" name="name" width="160" />
454 <check_box bottom="-22" control_name="ShowPGSims" follows="right|top"
455 font="SansSerifSmall" height="16" initial_value="true"
456 label="PG content" left="420" mouse_opaque="true"
457 name="incpg" width="156" />
458 <check_box bottom="-40" control_name="ShowMatureSims" follows="right|top"
459 font="SansSerifSmall" height="16" initial_value="true"
460 label="Mature content" left="420" mouse_opaque="true"
461 name="incmature" width="156" />
462 <check_box bottom="-58" control_name="ShowAdultSims" follows="right|top"
463 font="SansSerifSmall" height="16" initial_value="false"
464 label="Adult content" left="420" mouse_opaque="true"
465 name="incadult" width="156" />
466 <combo_box allow_text_entry="false" bottom="-46" enabled="false" follows="right|top" height="18" left="230"
467 max_chars="20" mouse_opaque="true" name="Category" width="128" visible="false">
468 <combo_item name="AnyCategory" value="any">
469 Any Category
470 </combo_item>
471 <combo_item name="LindenLocation" value="linden">
472 Linden Location
473 </combo_item>
474 <combo_item name="Arts&amp;Culture" value="arts">
475 Arts &amp; Culture
476 </combo_item>
477 <combo_item name="Business" value="store">
478 Business
479 </combo_item>
480 <combo_item name="Educational" value="educational">
481 Educational
482 </combo_item>
483 <combo_item name="Gaming" value="game">
484 Gaming
485 </combo_item>
486 <combo_item name="Hangout" value="gather">
487 Hangout
488 </combo_item>
489 <combo_item name="NewcomerFriendly" value="newcomer">
490 Newcomer Friendly
491 </combo_item>
492 <combo_item name="Parks&amp;Nature" value="park">
493 Parks &amp; Nature
494 </combo_item>
495 <combo_item name="Residential" value="home">
496 Residential
497 </combo_item>
498 <combo_item name="Shopping" value="shopping">
499 Shopping
500 </combo_item>
501 <combo_item name="Other" value="other">
502 Other
503 </combo_item>
504 </combo_box>
505 <!-- This is used only during the AO transition and can be deleted once the AO transition is
506 complete. It is identical to the combo box above except that it has the Adult category.
507 You might also want to set it back to default visible and enabled. -->
508 <combo_box allow_text_entry="false" bottom="-46" enabled="false" follows="right|top" height="18" left="230"
509 max_chars="20" mouse_opaque="true" name="Category_Adult" width="128" visible="false">
510 <combo_item name="AnyCategory" value="any">
511 Any Category
512 </combo_item>
513 <combo_item name="LindenLocation" value="linden">
514 Linden Location
515 </combo_item>
516 <combo_item name="Adult" value="adult">
517 Adult
518 </combo_item>
519 <combo_item name="Arts&amp;Culture" value="arts">
520 Arts &amp; Culture
521 </combo_item>
522 <combo_item name="Business" value="store">
523 Business
524 </combo_item>
525 <combo_item name="Educational" value="educational">
526 Educational
527 </combo_item>
528 <combo_item name="Gaming" value="game">
529 Gaming
530 </combo_item>
531 <combo_item name="Hangout" value="gather">
532 Hangout
533 </combo_item>
534 <combo_item name="NewcomerFriendly" value="newcomer">
535 Newcomer Friendly
536 </combo_item>
537 <combo_item name="Parks&amp;Nature" value="park">
538 Parks &amp; Nature
539 </combo_item>
540 <combo_item name="Residential" value="home">
541 Residential
542 </combo_item>
543 <combo_item name="Shopping" value="shopping">
544 Shopping
545 </combo_item>
546 <combo_item name="Other" value="other">
547 Other
548 </combo_item>
549 </combo_box>
550 <button bottom="-48" follows="right|top" font="SansSerif" halign="center" height="20"
551 label="Search" label_selected="Search" left="121" mouse_opaque="true"
552 name="Search" width="95" />
553 <scroll_list background_visible="true" bottom="-510" column_padding="0" draw_border="true"
554 draw_heading="true"
555
556 follows="left|top|right|bottom" height="450" left="4" mouse_opaque="true"
557 multi_select="false" name="results" search_column="2" width="339">
558 <column label="" name="icon" width="24" />
559 <column label="" name="type" width="-1" />
560 <column dynamicwidth="true" label="Name" name="name" />
561 <column label="Traffic" name="dwell" width="75" />
562 </scroll_list>
563 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
564 bottom_delta="-20" drop_shadow_visible="true" follows="left|bottom"
565 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
566 mouse_opaque="true" name="result_text" v_pad="0" width="328" />
567 <button bottom="-533" follows="left|bottom" font="SansSerif" halign="center"
568 height="20" label="Next &gt;" label_selected="Next &gt;"
569 mouse_opaque="true" name="Next &gt;" right="344" width="80" />
570 <button bottom_delta="0" follows="left|bottom" font="SansSerif" halign="center"
571 height="20" label="&lt; Prev" label_selected="&lt; Prev"
572 mouse_opaque="true" name="&lt; Prev" right="258" width="80" />
573 </panel>
574 <panel border="true" bottom="-549" follows="left|top|right|bottom" height="533"
575 label="People" left="1" mouse_opaque="false" name="people_panel"
576 width="778">
577 <string name="searching_text">
578 Searching...
579 </string>
580 <string name="not_found_text">
581 None Found.
582 </string>
583 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
584 bottom="-24" drop_shadow_visible="true" follows="left|top" font="SansSerif"
585 h_pad="0" halign="left" height="16" left="4" mouse_opaque="true"
586 name="find" v_pad="0" width="50">
587 Find:
588 </text>
589 <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-24"
590 follows="left|right|top" font="SansSerif" height="18" left="56"
591 max_length="63" mouse_opaque="true" name="name" width="160" />
592 <button bottom="-48" follows="right|top" font="SansSerif" halign="center" height="20"
593 label="Search" label_selected="Search" left="121" mouse_opaque="true"
594 name="Search" width="95" />
595 <scroll_list background_visible="true" bottom="-510" column_padding="0" draw_border="true"
596 draw_heading="true"
597
598 follows="left|top|right|bottom" height="450" left="4" mouse_opaque="true"
599 multi_select="false" name="results" search_column="2" width="326">
600 <column label="" name="icon" width="24" />
601 <column label="" name="type" width="-1" />
602 <column label="Name" name="name" width="274" />
603 </scroll_list>
604 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
605 bottom_delta="-20" drop_shadow_visible="true" follows="left|bottom"
606 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
607 mouse_opaque="true" name="result_text" v_pad="0" width="328" />
608 <button bottom="-533" follows="left|bottom" font="SansSerif" halign="center"
609 height="20" label="Next &gt;" label_selected="Next &gt;"
610 mouse_opaque="true" name="Next &gt;" right="330" width="80" />
611 <button bottom_delta="0" follows="left|bottom" font="SansSerif" halign="center"
612 height="20" label="&lt; Prev" label_selected="&lt; Prev"
613 mouse_opaque="true" name="&lt; Prev" right="244" width="80" />
614 </panel>
615 <panel border="true" bottom="-549" follows="left|top|right|bottom" height="533"
616 label="Groups" left="1" mouse_opaque="false"
617 name="groups_panel"
618 width="778">
619 <string name="searching_text">Searching...</string>
620 <string name="not_found_text">None Found.</string>
621 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
622 bottom="-24" drop_shadow_visible="true" follows="left|top" font="SansSerif"
623 h_pad="0" halign="left" height="16" left="4" mouse_opaque="true"
624 name="find" v_pad="0" width="50">
625 Find:
626 </text>
627 <line_editor bevel_style="in"
628 border_style="line"
629 border_thickness="1"
630 bottom="-24"
631 enabled="true"
632 follows="top|left|right"
633 font="SansSerif"
634 handle_edit_keys_directly="false"
635 commit_on_focus_lost="false"
636 height="18"
637 hidden="false"
638 label="Search"
639 left_delta="56"
640 width="160"
641 max_length="254"
642 mouse_opaque="true"
643 name="search_editor"
644 select_all_on_focus_received="false"
645 select_on_focus="false"
646 tab_group="1"
647 tool_tip="Search Second Life" />
648 <button bottom="-26" follows="top|right" font="SansSerifSmall" height="20" label="Back"
649 left="230" name="back_btn" width="70" />
650 <button bottom="-26" follows="top|right" font="SansSerifSmall" height="20"
651 label="Forward" left="304" name="forward_btn" width="70" />
652 <button bottom="-48" follows="top|right" font="SansSerif" height="20"
653 label="Search" left="121" name="search_btn" width="95" />
654 <check_box bottom="-22" control_name="ShowPGGroups" follows="right|top"
655 font="SansSerifSmall" height="16" initial_value="true"
656 label="PG content" left="420" mouse_opaque="true"
657 name="incpg" width="156" />
658 <check_box bottom="-40" control_name="ShowMatureGroups" follows="right|top"
659 font="SansSerifSmall" height="16" initial_value="true"
660 label="Mature content" left="420" mouse_opaque="true"
661 name="incmature" width="156" />
662 <check_box bottom="-58" control_name="ShowAdultGroups" follows="right|top"
663 font="SansSerifSmall" height="16" initial_value="false"
664 label="Adult content" left="420" mouse_opaque="true"
665 name="incadult" width="156" />
666 <web_browser name="groups_browser"
667 bottom="25"
668 follows="top|left|bottom|right"
669 font="SansSerifSmall"
670 left="10"
671 right="-10"
672 top="-60" />
673 <text bottom="5"
674 follows="bottom|left"
675 halign="left"
676 left="10"
677 width="150"
678 name="status_text"
679 height="16" />
680 <string name="loading_text">Loading...</string>
681 <string name="done_text">Done</string>
682 <string name="redirect_404_url">http://secondlife.com/app/search/notfound.html</string>
683 <string name="default_search_page">"http://secondlife.com/app/search/index_groups.php?"</string>
684 </panel>
685 </tab_container>
686 <panel bottom="-560" follows="right|top" height="470" left="340"
687 name="classified_details_panel" width="440" />
688 <panel bottom="-560" follows="right|top" height="486" left="350" name="Panel Avatar"
689 width="430" />
690 <panel bottom="-560" follows="right|top" height="470" left="340"
691 name="event_details_panel" width="440" />
692 <panel bottom="-580" follows="right|top" height="515" left="350"
693 name="group_details_panel_holder" width="430">
694 <panel bottom="0" follows="right|top" height="470" left="0" name="group_details_panel"
695 width="430" />
696 </panel>
697 <panel bottom="5" follows="right|top" height="470" left="340"
698 name="place_details_panel" width="440" />
699 <panel bottom="0" follows="right|top" height="470" left="385"
700 name="place_details_small_panel" width="395" />
701</floater>
diff --git a/linden/indra/newview/skins/silver/xui/en-us/floater_env_settings.xml b/linden/indra/newview/skins/silver/xui/en-us/floater_env_settings.xml
deleted file mode 100644
index e2bafbf..0000000
--- a/linden/indra/newview/skins/silver/xui/en-us/floater_env_settings.xml
+++ /dev/null
@@ -1,66 +0,0 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater bottom="-130" can_close="true" can_drag_on_left="false" can_minimize="true"
3 can_resize="false" height="150" left="50" min_height="150"
4 min_width="600" mouse_opaque="true" name="Environment Editor Floater"
5 rect_control="FloaterEnvRect" title="Environment Editor" width="600">
6 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
7 bottom="-48" drop_shadow_visible="true" follows="left|top|right"
8 font="SansSerif" h_pad="0" halign="left" height="16"
9 left="10" mouse_opaque="true" name="EnvTimeText" v_pad="0" width="140">
10 Time of Day
11 </text>
12 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
13 bottom_delta="-30" drop_shadow_visible="true" follows="left|top|right"
14 font="SansSerifSmall" h_pad="0" halign="left" height="16"
15 left="15" mouse_opaque="true" name="EnvTimeText2" v_pad="0" width="140">
16 12:00 PM
17 </text>
18 <icon bottom="-55" follows="left|top" height="25" image_name="icon_diurnal.tga"
19 left="85" name="EnvDayCycle" width="200" />
20 <slider bottom_delta="-20" can_edit_text="false" control_name="EnvTimeSlider"
21 decimal_digits="2" follows="left" height="10" increment="0.0069444"
22 initial_val="0.7" label="" left_delta="0" max_val="0.99" min_val="0"
23 mouse_opaque="true" name="EnvTimeSlider" show_text="false" value="0.0"
24 width="200" />
25 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
26 bottom="-102" drop_shadow_visible="true" follows="left|top|right"
27 font="SansSerif" h_pad="0" halign="left" height="16"
28 left="10" mouse_opaque="true" name="EnvCloudText" v_pad="0" width="140">
29 Cloud Cover
30 </text>
31 <slider bottom="-100" can_edit_text="false" control_name="EnvCloudSlider"
32 decimal_digits="2" follows="left" height="10" increment="0.01"
33 initial_val="0.7" label="" left="85" max_val="1" min_val="0"
34 mouse_opaque="true" name="EnvCloudSlider" show_text="true" value="0.7"
35 width="210" />
36 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
37 bottom="-55" drop_shadow_visible="true" follows="left|top|right"
38 font="SansSerif" h_pad="0" halign="left" height="16"
39 left="310" mouse_opaque="true" name="EnvWaterColorText" v_pad="0"
40 width="140">
41 Water Color
42 </text>
43 <color_swatch border_color="0.45098, 0.517647, 0.607843, 1" bottom="-80"
44 can_apply_immediately="true" color="0.5, 0.5, 0.5, 1" follows="left|top"
45 height="50" label="" left="390" mouse_opaque="true"
46 name="EnvWaterColor" tool_tip="Click to open Color Picker" width="40" />
47 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
48 bottom="-102" drop_shadow_visible="true" follows="left|top|right"
49 font="SansSerif" h_pad="0" halign="left" height="16"
50 left="310" mouse_opaque="true" name="EnvWaterFogText" v_pad="0" width="140">
51 Water Fog
52 </text>
53 <slider bottom="-100" can_edit_text="false" control_name="EnvWaterFogSlider"
54 decimal_digits="2" follows="left" height="10" increment="0.1"
55 initial_val="0" label="" left="385" max_val="10" min_val="0"
56 mouse_opaque="true" name="EnvWaterFogSlider" show_text="true" value="0"
57 width="210" />
58 <button bottom="-140" follows="left|top" font="SansSerifSmall" height="20"
59 label="Use Estate Time" left="8" name="EnvUseEstateTimeButton" width="137" />
60 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="20"
61 label="Advanced Sky" left="154" name="EnvAdvancedSkyButton" width="137" />
62 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="20"
63 label="Advanced Water" left="300" name="EnvAdvancedWaterButton" width="137" />
64 <button bottom="-40" follows="left|top" font="SansSerif" height="18" label="?"
65 left="570" name="EnvSettingsHelpButton" width="22" />
66</floater>
diff --git a/linden/indra/newview/skins/silver/xui/en-us/floater_live_lsleditor.xml b/linden/indra/newview/skins/silver/xui/en-us/floater_live_lsleditor.xml
deleted file mode 100644
index f50bb65..0000000
--- a/linden/indra/newview/skins/silver/xui/en-us/floater_live_lsleditor.xml
+++ /dev/null
@@ -1,23 +0,0 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater bottom="-668" can_close="true" can_drag_on_left="false" can_minimize="true"
3 can_resize="true" enabled="true" follows="left|top" height="550" left="306"
4 min_height="271" min_width="290" mouse_opaque="true" name="script ed float"
5 rect_control="FloaterOpenObjectRect" title="Script: New Script" width="500">
6 <button bottom="-545" enabled="true" follows="right|bottom" font="SansSerif"
7 halign="center" height="20" label="Reset" label_selected="Reset" left="362"
8 mouse_opaque="true" name="Reset" width="128" />
9 <check_box bottom="-545" enabled="false" follows="left|bottom" font="SansSerif"
10 height="18" initial_value="true" label="Running" left="12"
11 mouse_opaque="true" name="running" radio_style="false" width="100" />
12 <panel bottom="-524" enabled="true" follows="left|top|right|bottom" height="506"
13 left="1" name="script ed panel" width="497" />
14 <check_box bottom="-545" enabled="false" follows="left|bottom" font="SansSerif"
15 height="18" hidden="false" initial_value="true" label="Mono" left="82"
16 mouse_opaque="true" name="mono" radio_style="false" width="100" />
17 <string name="not_allowed">
18 You are not allowed to view this script.
19 </string>
20 <string name="script_running">
21 Running
22 </string>
23</floater>
diff --git a/linden/indra/newview/skins/silver/xui/en-us/floater_water.xml b/linden/indra/newview/skins/silver/xui/en-us/floater_water.xml
deleted file mode 100644
index 5b65837..0000000
--- a/linden/indra/newview/skins/silver/xui/en-us/floater_water.xml
+++ /dev/null
@@ -1,260 +0,0 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater bottom="-150" can_close="true" can_drag_on_left="false" can_minimize="true"
3 can_resize="false" height="240" left="50" min_height="200"
4 min_width="400" mouse_opaque="true" name="Water Floater"
5 rect_control="FloaterAdvancedWaterRect" title="Advanced Water Editor"
6 width="700">
7 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
8 bottom="-50" drop_shadow_visible="true" follows="left|top|right"
9 font="SansSerif" h_pad="0" halign="left" height="16"
10 left="10" mouse_opaque="true" name="KeyFramePresetsText" v_pad="0"
11 width="110">
12 Water Presets:
13 </text>
14 <combo_box allow_text_entry="false" bottom="-50" follows="left|top" height="18"
15 left_delta="110" max_chars="20" mouse_opaque="true"
16 name="WaterPresetsCombo" width="150" />
17 <button bottom="-53" enabled="true" font="SansSerif" halign="center" height="20"
18 label="New" label_selected="New" left_delta="170"
19 mouse_opaque="true" name="WaterNewPreset" scale_image="true" width="70" />
20 <button bottom_delta="0" enabled="true" font="SansSerif" halign="center" height="20"
21 label="Save" label_selected="Save" left_delta="80"
22 mouse_opaque="true" name="WaterSavePreset" scale_image="true" width="70" />
23 <button bottom_delta="0" enabled="true" font="SansSerif" halign="center" height="20"
24 label="Delete" label_selected="Delete" left_delta="80"
25 mouse_opaque="true" name="WaterDeletePreset" scale_image="true" width="70" />
26 <tab_container bottom="-240" follows="left|top" height="180" left="0"
27 mouse_opaque="false" name="Water Tabs" tab_position="top" width="700">
28 <panel border="true" bottom="-240" follows="left|top|right|bottom" height="180"
29 label="Settings" left="1" mouse_opaque="false"
30 name="Settings" width="698">
31 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
32 bottom="-20" drop_shadow_visible="true" follows="left|top|right"
33 font="SansSerif" h_pad="0" halign="left" height="16"
34 left="10" mouse_opaque="true" name="BHText" v_pad="0" width="355">
35 Water Fog Color
36 </text>
37 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
38 left="160" name="WaterFogColorHelp" width="18" />
39 <color_swatch border_color="0.45098, 0.517647, 0.607843, 1" bottom="-80"
40 can_apply_immediately="true" color="0.5, 0.5, 0.5, 1" follows="left|top"
41 height="50" label="" left="40" mouse_opaque="true"
42 name="WaterFogColor" tool_tip="Click to open Color Picker" width="40" />
43 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
44 bottom="-90" drop_shadow_visible="true" follows="left|top|right"
45 font="SansSerif" h_pad="0" halign="left" height="16"
46 left="10" mouse_opaque="true" name="WaterFogDensText" v_pad="0" width="355">
47 Fog Density Exponent
48 </text>
49 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
50 left="160" name="WaterFogDensityHelp" width="18" />
51 <slider bottom_delta="-30" can_edit_text="false" control_name="WaterFogDensity"
52 decimal_digits="1" follows="left" height="10" increment=".1"
53 initial_val="16" label="" left="24" max_val="10" min_val="0"
54 mouse_opaque="true" name="WaterFogDensity" show_text="true" value="1.0"
55 width="200" />
56 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
57 bottom="-130" drop_shadow_visible="true" follows="left|top|right"
58 font="SansSerif" h_pad="0" halign="left" height="16"
59 left="10" mouse_opaque="true" name="WaterUnderWaterFogModText" v_pad="0"
60 width="355">
61 Underwater Fog Modifier
62 </text>
63 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
64 left="160" name="WaterUnderWaterFogModHelp" width="18" />
65 <slider bottom_delta="-30" can_edit_text="false" control_name="" decimal_digits="2"
66 follows="left" height="10" increment=".01" initial_val="16" label=""
67 left="24" max_val="2" min_val="0" mouse_opaque="true"
68 name="WaterUnderWaterFogMod" show_text="true" value="0.25" width="200" />
69 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
70 bottom="-20" drop_shadow_visible="true" follows="left|top|right"
71 font="SansSerif" h_pad="0" halign="left" height="16"
72 left="245" mouse_opaque="true" name="BDensText" v_pad="0" width="355">
73 Reflection Wavelet Scale
74 </text>
75 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
76 left="395" name="WaterNormalScaleHelp" width="18" />
77 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
78 bottom="-37" drop_shadow_visible="true" follows="left|top|right"
79 font="SansSerifSmall" h_pad="0" halign="center" height="16"
80 left="245" mouse_opaque="true" name="BHText2" v_pad="0" width="10">
81 1
82 </text>
83 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
84 bottom_delta="-11" drop_shadow_visible="true" follows="left|top|right"
85 font="SansSerifSmall" h_pad="0" halign="center" height="16"
86 left_delta="0" mouse_opaque="true" name="BHText3" v_pad="0" width="10">
87 2
88 </text>
89 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
90 bottom_delta="-11" drop_shadow_visible="true" follows="left|top|right"
91 font="SansSerifSmall" h_pad="0" halign="center" height="16"
92 left_delta="0" mouse_opaque="true" name="BHText4" v_pad="0" width="10">
93 3
94 </text>
95 <slider bottom="-50" can_edit_text="false" control_name="WaterNormalScaleX"
96 decimal_digits="1" follows="left" height="10" increment="0.1"
97 initial_val="0.7" label="" left="259" max_val="10" min_val="0"
98 mouse_opaque="true" name="WaterNormalScaleX" show_text="true" value="1.0"
99 width="200" />
100 <slider bottom_delta="-11" can_edit_text="false" control_name="WaterNormalScaleY"
101 decimal_digits="1" follows="left" height="10" increment="0.1"
102 initial_val="0.7" label="" left="259" max_val="10" min_val="0"
103 mouse_opaque="true" name="WaterNormalScaleY" show_text="true" value="1.0"
104 width="200" />
105 <slider bottom_delta="-11" can_edit_text="false" control_name="WaterNormalScaleZ"
106 decimal_digits="1" follows="left" height="10" increment="0.1"
107 initial_val="0.7" label="" left="259" max_val="10" min_val="0"
108 mouse_opaque="true" name="WaterNormalScaleZ" show_text="true" value="1.0"
109 width="200" />
110 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
111 bottom="-80" drop_shadow_visible="true" follows="left|top|right"
112 font="SansSerif" h_pad="0" halign="left" height="16"
113 left="245" mouse_opaque="true" name="HDText" v_pad="0" width="355">
114 Fresnel Scale
115 </text>
116 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
117 left="395" name="WaterFresnelScaleHelp" width="18" />
118 <slider bottom_delta="-30" can_edit_text="false" control_name="WaterFresnelScale"
119 decimal_digits="2" follows="left" height="10" increment="0.01"
120 initial_val="0.7" label="" left="259" max_val="1" min_val="0"
121 mouse_opaque="true" name="WaterFresnelScale" show_text="true" value="1.0"
122 width="200" />
123 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
124 bottom="-115" drop_shadow_visible="true" follows="left|top|right"
125 font="SansSerif" h_pad="0" halign="left" height="16"
126 left="245" mouse_opaque="true" name="FresnelOffsetText" v_pad="0"
127 width="355">
128 Fresnel Offset
129 </text>
130 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
131 left="395" name="WaterFresnelOffsetHelp" width="18" />
132 <slider bottom_delta="-30" can_edit_text="false" control_name="WaterFresnelOffset"
133 decimal_digits="2" follows="left" height="10" increment="0.01"
134 initial_val="0.7" label="" left="259" max_val="1" min_val="0"
135 mouse_opaque="true" name="WaterFresnelOffset" show_text="true" value="1.0"
136 width="200" />
137 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
138 bottom="-20" drop_shadow_visible="true" follows="left|top|right"
139 font="SansSerif" h_pad="0" halign="left" height="16"
140 left="480" mouse_opaque="true" name="DensMultText" v_pad="0" width="355">
141 Refract Scale Above
142 </text>
143 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
144 left="630" name="WaterScaleAboveHelp" width="18" />
145 <slider bottom_delta="-30" can_edit_text="false" control_name="WaterScaleAbove"
146 decimal_digits="2" follows="left" height="10" increment="0.01"
147 initial_val="0.1" label="" left="494" max_val="1" min_val="0"
148 mouse_opaque="true" name="WaterScaleAbove" show_text="true" value="1.0"
149 width="200" />
150 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
151 bottom="-53" drop_shadow_visible="true" follows="left|top|right"
152 font="SansSerif" h_pad="0" halign="left" height="16"
153 left="480" mouse_opaque="true" name="WaterScaleBelowText" v_pad="0"
154 width="355">
155 Refract Scale Below
156 </text>
157 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
158 left="630" name="WaterScaleBelowHelp" width="18" />
159 <slider bottom_delta="-30" can_edit_text="false" control_name="WaterScaleBelow"
160 decimal_digits="2" follows="left" height="10" increment="0.01"
161 initial_val="0" label="" left="494" max_val="1" min_val="0"
162 mouse_opaque="true" name="WaterScaleBelow" show_text="true" value="0.0"
163 width="200" />
164 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
165 bottom="-87" drop_shadow_visible="true" follows="left|top|right"
166 font="SansSerif" h_pad="0" halign="left" height="16"
167 left="480" mouse_opaque="true" name="MaxAltText" v_pad="0" width="355">
168 Blur Multiplier
169 </text>
170 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
171 left="630" name="WaterBlurMultiplierHelp" width="18" />
172 <slider bottom_delta="-30" can_edit_text="false" control_name="WaterBlurMult"
173 decimal_digits="3" follows="left" height="10" increment=".001"
174 initial_val="0" label="" left="494" max_val=".16" min_val="0"
175 mouse_opaque="true" name="WaterBlurMult" show_text="true" value="0"
176 width="200" />
177 </panel>
178 <panel border="true" bottom="-240" follows="left|top|right|bottom" height="180"
179 label="Image" left="1" mouse_opaque="false" name="Waves"
180 width="698">
181 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
182 bottom="-20" drop_shadow_visible="true" follows="left|top|right"
183 font="SansSerif" h_pad="0" halign="left" height="16"
184 left="10" mouse_opaque="true" name="BHText" v_pad="0" width="355">
185 Big Wave Direction
186 </text>
187 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
188 left="155" name="WaterWave1Help" width="18" />
189 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
190 bottom="-37" drop_shadow_visible="true" follows="left|top|right"
191 font="SansSerifSmall" h_pad="0" halign="center" height="16"
192 left="10" mouse_opaque="true" name="WaterWave1DirXText" v_pad="0"
193 width="10">
194 X
195 </text>
196 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
197 bottom_delta="-11" drop_shadow_visible="true" follows="left|top|right"
198 font="SansSerifSmall" h_pad="0" halign="center" height="16"
199 left_delta="0" mouse_opaque="true" name="WaterWave1DirYText" v_pad="0"
200 width="10">
201 Y
202 </text>
203 <slider bottom="-50" can_edit_text="false" control_name="WaterWave1DirX"
204 decimal_digits="2" follows="left" height="10" increment="0.01"
205 initial_val="0.7" label="" left="24" max_val="4" min_val="-4"
206 mouse_opaque="true" name="WaterWave1DirX" show_text="true" value="0.7"
207 width="200" />
208 <slider bottom_delta="-11" can_edit_text="false" control_name="WaterWave1DirY"
209 decimal_digits="2" follows="left" height="10" increment="0.01"
210 initial_val="0.7" label="" left="24" max_val="4" min_val="-4"
211 mouse_opaque="true" name="WaterWave1DirY" show_text="true" value="0.7"
212 width="200" />
213 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
214 bottom="-70" drop_shadow_visible="true" follows="left|top|right"
215 font="SansSerif" h_pad="0" halign="left" height="16"
216 left="10" mouse_opaque="true" name="BHText2" v_pad="0" width="355">
217 Little Wave Direction
218 </text>
219 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
220 left="155" name="WaterWave2Help" width="18" />
221 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
222 bottom="-87" drop_shadow_visible="true" follows="left|top|right"
223 font="SansSerifSmall" h_pad="0" halign="center" height="16"
224 left="10" mouse_opaque="true" name="WaterWave2DirXText" v_pad="0"
225 width="10">
226 X
227 </text>
228 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
229 bottom_delta="-11" drop_shadow_visible="true" follows="left|top|right"
230 font="SansSerifSmall" h_pad="0" halign="center" height="16"
231 left_delta="0" mouse_opaque="true" name="WaterWave2DirYText" v_pad="0"
232 width="10">
233 Y
234 </text>
235 <slider bottom="-100" can_edit_text="false" control_name="WaterWave2DirX"
236 decimal_digits="2" follows="left" height="10" increment="0.01"
237 initial_val="0.7" label="" left="24" max_val="4" min_val="-4"
238 mouse_opaque="true" name="WaterWave2DirX" show_text="true" value="0.7"
239 width="200" />
240 <slider bottom_delta="-11" can_edit_text="false" control_name="WaterWave2DirY"
241 decimal_digits="2" follows="left" height="10" increment="0.01"
242 initial_val="0.7" label="" left="24" max_val="4" min_val="-4"
243 mouse_opaque="true" name="WaterWave2DirY" show_text="true" value="0.7"
244 width="200" />
245 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
246 bottom="-20" drop_shadow_visible="true" follows="left|top|right"
247 font="SansSerif" h_pad="0" halign="left" height="16"
248 left="240" mouse_opaque="true" name="BHText3" v_pad="0" width="355">
249 Normal Map
250 </text>
251 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
252 left="365" name="WaterNormalMapHelp" width="18" />
253 <texture_picker bottom="-165" height="143" label="" left="250" name="WaterNormalMap"
254 width="128" />
255 </panel>
256 </tab_container>
257 <string name="WLDefaultWaterNames">
258 Default:Glassy:Pond:Murky:Second Plague:SNAKE!!!:Valdez
259 </string>
260</floater>
diff --git a/linden/indra/newview/skins/silver/xui/en-us/floater_windlight_options.xml b/linden/indra/newview/skins/silver/xui/en-us/floater_windlight_options.xml
deleted file mode 100644
index d801251..0000000
--- a/linden/indra/newview/skins/silver/xui/en-us/floater_windlight_options.xml
+++ /dev/null
@@ -1,599 +0,0 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater bottom="-150" can_close="true" can_drag_on_left="false" can_minimize="true"
3 can_resize="false" height="220" left="50" min_height="180"
4 min_width="400" mouse_opaque="true" name="WindLight floater"
5 rect_control="FloaterAdvancedSkyRect" title="Advanced Sky Editor"
6 width="700">
7 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
8 bottom="-50" drop_shadow_visible="true" follows="left|top|right"
9 font="SansSerif" h_pad="0" halign="left" height="16"
10 left="10" mouse_opaque="true" name="KeyFramePresetsText" v_pad="0"
11 width="110">
12 Sky Presets:
13 </text>
14 <combo_box allow_text_entry="false" bottom="-52" follows="left|top" height="18"
15 left_delta="110" max_chars="20" mouse_opaque="true" name="WLPresetsCombo"
16 width="150" />
17 <button bottom="-53" enabled="true" font="SansSerif" halign="center" height="20"
18 label="" label_selected="" left_delta="-25" image_overlay="arrow_left.tga"
19 mouse_opaque="true" name="prev" scale_image="true" width="20" />
20 <button bottom="-53" enabled="true" font="SansSerif" halign="center" height="20"
21 label="" label_selected="" left_delta="180" image_overlay="arrow_right.tga"
22 mouse_opaque="true" name="next" scale_image="true" width="20" />
23 <button bottom="-53" enabled="true" font="SansSerif" halign="center" height="20"
24 label="New" label_selected="New" left_delta="40"
25 mouse_opaque="true" name="WLNewPreset" scale_image="true" width="70" />
26 <button bottom_delta="0" enabled="true" font="SansSerif" halign="center" height="20"
27 label="Save" label_selected="Save" left_delta="70"
28 mouse_opaque="true" name="WLSavePreset" scale_image="true" width="70" />
29 <button bottom_delta="0" enabled="true" font="SansSerif" halign="center" height="20"
30 label="Delete" label_selected="Delete" left_delta="70"
31 mouse_opaque="true" name="WLDeletePreset" scale_image="true" width="70" />
32 <button bottom_delta="0" enabled="true" font="SansSerif" halign="center" height="20"
33 label="Day Cycle Editor" label_selected="Day Cycle Editor"
34 left_delta="100" mouse_opaque="true" name="WLDayCycleMenuButton"
35 scale_image="true" width="125" />
36 <tab_container bottom="-220" follows="left|top" height="160" left="0"
37 mouse_opaque="false" name="WindLight Tabs" tab_position="top" width="700">
38 <panel border="true" bottom="-220" follows="left|top|right|bottom" height="160"
39 label="Atmosphere" left="1" mouse_opaque="false"
40 name="Atmosphere" width="698">
41 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
42 bottom="-20" drop_shadow_visible="true" follows="left|top|right"
43 font="SansSerif" h_pad="0" halign="left" height="16"
44 left="10" mouse_opaque="true" name="BHText" v_pad="0" width="355">
45 Blue Horizon
46 </text>
47 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
48 left="160" name="WLBlueHorizonHelp" width="18" />
49 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
50 bottom="-37" drop_shadow_visible="true" follows="left|top|right"
51 font="SansSerifSmall" h_pad="0" halign="center" height="16"
52 left="10" mouse_opaque="true" name="BHText2" v_pad="0" width="10">
53 R
54 </text>
55 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
56 bottom_delta="-11" drop_shadow_visible="true" follows="left|top|right"
57 font="SansSerifSmall" h_pad="0" halign="center" height="16"
58 left_delta="0" mouse_opaque="true" name="BHText3" v_pad="0" width="10">
59 G
60 </text>
61 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
62 bottom_delta="-11" drop_shadow_visible="true" follows="left|top|right"
63 font="SansSerifSmall" h_pad="0" halign="center" height="16"
64 left_delta="0" mouse_opaque="true" name="BHText4" v_pad="0" width="10">
65 B
66 </text>
67 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
68 bottom_delta="-11" drop_shadow_visible="true" follows="left|top|right"
69 font="SansSerifSmall" h_pad="0" halign="center" height="16"
70 left_delta="0" mouse_opaque="true" name="BHText5" v_pad="0" width="10">
71 I
72 </text>
73 <slider bottom="-50" can_edit_text="false" control_name="WLBlueHorizonR"
74 decimal_digits="2" follows="left" height="10" increment="0.01"
75 initial_val="0.7" label="" left="24" max_val="1" min_val="0"
76 mouse_opaque="true" name="WLBlueHorizonR" show_text="true" value="0.7"
77 width="200" />
78 <slider bottom_delta="-11" can_edit_text="false" control_name="WLBlueHorizonG"
79 decimal_digits="2" follows="left" height="10" increment="0.01"
80 initial_val="0.7" label="" left="24" max_val="1" min_val="0"
81 mouse_opaque="true" name="WLBlueHorizonG" show_text="true" value="0.7"
82 width="200" />
83 <slider bottom_delta="-11" can_edit_text="false" control_name="WLBlueHorizonB"
84 decimal_digits="2" follows="left" height="10" increment="0.01"
85 initial_val="0.7" label="" left="24" max_val="1" min_val="0"
86 mouse_opaque="true" name="WLBlueHorizonB" show_text="true" value="0.7"
87 width="200" />
88 <slider bottom_delta="-11" can_edit_text="false" control_name="WLBlueHorizonI"
89 decimal_digits="2" follows="left" height="10" increment="0.01"
90 initial_val="1.0" label="" left="24" max_val="1" min_val="0"
91 mouse_opaque="true" name="WLBlueHorizonI" show_text="true" value="1.0"
92 width="200" />
93 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
94 bottom="-87" drop_shadow_visible="true" follows="left|top|right"
95 font="SansSerif" h_pad="0" halign="left" height="16"
96 left="10" mouse_opaque="true" name="BDensText" v_pad="0" width="355">
97 Haze Horizon
98 </text>
99 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
100 left="160" name="WLHazeHorizonHelp" width="18" />
101 <slider bottom_delta="-30" can_edit_text="false" control_name="WLHazeHorizon"
102 decimal_digits="2" follows="left" height="10" increment="0.01"
103 initial_val="0.25" label="" left="24" max_val="1.0" min_val="0"
104 mouse_opaque="true" name="WLHazeHorizon" show_text="true" value="1.0"
105 width="200" />
106 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
107 bottom="-20" drop_shadow_visible="true" follows="left|top|right"
108 font="SansSerif" h_pad="0" halign="left" height="16"
109 left="245" mouse_opaque="true" name="BDensText2" v_pad="0" width="355">
110 Blue Density
111 </text>
112 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
113 left="395" name="WLBlueDensityHelp" width="18" />
114 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
115 bottom="-37" drop_shadow_visible="true" follows="left|top|right"
116 font="SansSerifSmall" h_pad="0" halign="center" height="16"
117 left="245" mouse_opaque="true" name="BHText6" v_pad="0" width="10">
118 R
119 </text>
120 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
121 bottom_delta="-11" drop_shadow_visible="true" follows="left|top|right"
122 font="SansSerifSmall" h_pad="0" halign="center" height="16"
123 left_delta="0" mouse_opaque="true" name="BHText7" v_pad="0" width="10">
124 G
125 </text>
126 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
127 bottom_delta="-11" drop_shadow_visible="true" follows="left|top|right"
128 font="SansSerifSmall" h_pad="0" halign="center" height="16"
129 left_delta="0" mouse_opaque="true" name="BHText8" v_pad="0" width="10">
130 B
131 </text>
132 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
133 bottom_delta="-11" drop_shadow_visible="true" follows="left|top|right"
134 font="SansSerifSmall" h_pad="0" halign="center" height="16"
135 left_delta="0" mouse_opaque="true" name="BHText9" v_pad="0" width="10">
136 I
137 </text>
138 <slider bottom="-50" can_edit_text="false" control_name="WLBlueDensityR"
139 decimal_digits="2" follows="left" height="10" increment="0.01"
140 initial_val="0.7" label="" left="259" max_val="1" min_val="0"
141 mouse_opaque="true" name="WLBlueDensityR" show_text="true" value="1.0"
142 width="200" />
143 <slider bottom_delta="-11" can_edit_text="false" control_name="WLBlueDensityG"
144 decimal_digits="2" follows="left" height="10" increment="0.01"
145 initial_val="0.7" label="" left="259" max_val="1" min_val="0"
146 mouse_opaque="true" name="WLBlueDensityG" show_text="true" value="1.0"
147 width="200" />
148 <slider bottom_delta="-11" can_edit_text="false" control_name="WLBlueDensityB"
149 decimal_digits="2" follows="left" height="10" increment="0.01"
150 initial_val="0.7" label="" left="259" max_val="1" min_val="0"
151 mouse_opaque="true" name="WLBlueDensityB" show_text="true" value="1.0"
152 width="200" />
153 <slider bottom_delta="-11" can_edit_text="false" control_name="WLBlueDensityI"
154 decimal_digits="2" follows="left" height="10" increment="0.01"
155 initial_val="1" label="" left="259" max_val="1" min_val="0"
156 mouse_opaque="true" name="WLBlueDensityI" show_text="true" value="1.0"
157 width="200" />
158 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
159 bottom="-87" drop_shadow_visible="true" follows="left|top|right"
160 font="SansSerif" h_pad="0" halign="left" height="16"
161 left="245" mouse_opaque="true" name="HDText" v_pad="0" width="355">
162 Haze Density
163 </text>
164 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
165 left="395" name="WLHazeDensityHelp" width="18" />
166 <slider bottom_delta="-30" can_edit_text="false" control_name="WLHazeDensity"
167 decimal_digits="2" follows="left" height="10" increment="0.01"
168 initial_val="0.7" label="" left="259" max_val="4" min_val="0"
169 mouse_opaque="true" name="WLHazeDensity" show_text="true" value="1.0"
170 width="200" />
171 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
172 bottom="-20" drop_shadow_visible="true" follows="left|top|right"
173 font="SansSerif" h_pad="0" halign="left" height="16"
174 left="480" mouse_opaque="true" name="DensMultText" v_pad="0" width="355">
175 Density Multiplier
176 </text>
177 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
178 left="630" name="WLDensityMultHelp" width="18" />
179 <slider bottom_delta="-30" can_edit_text="false" control_name="WLDensityMult"
180 decimal_digits="2" follows="left" height="10" increment="0.01"
181 initial_val="0.1" label="" left="494" max_val="0.9" min_val="0"
182 mouse_opaque="true" name="WLDensityMult" show_text="true" value="1.0"
183 width="200" />
184 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
185 bottom="-53" drop_shadow_visible="true" follows="left|top|right"
186 font="SansSerif" h_pad="0" halign="left" height="16"
187 left="480" mouse_opaque="true" name="WLDistanceMultText" v_pad="0"
188 width="355">
189 Distance Multiplier
190 </text>
191 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
192 left="630" name="WLDistanceMultHelp" width="18" />
193 <slider bottom_delta="-30" can_edit_text="false" control_name="WLDistancMult"
194 decimal_digits="1" follows="left" height="10" increment="0.1"
195 initial_val="1.0" label="" left="494" max_val="100" min_val="0"
196 mouse_opaque="true" name="WLDistanceMult" show_text="true" value="0.0"
197 width="207" />
198 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
199 bottom="-87" drop_shadow_visible="true" follows="left|top|right"
200 font="SansSerif" h_pad="0" halign="left" height="16"
201 left="480" mouse_opaque="true" name="MaxAltText" v_pad="0" width="355">
202 Max Altitude
203 </text>
204 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
205 left="630" name="WLMaxAltitudeHelp" width="18" />
206 <slider bottom_delta="-30" can_edit_text="false" control_name="WLMaxAltitude"
207 decimal_digits="0" follows="left" height="10" increment="1"
208 initial_val="500" label="" left="494" max_val="4000" min_val="0"
209 mouse_opaque="true" name="WLMaxAltitude" show_text="true" value="4000"
210 width="205" />
211 </panel>
212 <panel border="true" bottom="-180" follows="left|top|right|bottom" height="160"
213 label="Lighting" left="1" mouse_opaque="true"
214 name="Lighting" width="698">
215 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
216 bottom="-20" drop_shadow_visible="true" follows="left|top|right"
217 font="SansSerif" h_pad="0" halign="left" height="16"
218 left="10" mouse_opaque="true" name="SLCText" v_pad="0" width="355">
219 Sun/Moon Color
220 </text>
221 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
222 left="160" name="WLSunlightColorHelp" width="18" />
223 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
224 bottom="-37" drop_shadow_visible="true" follows="left|top|right"
225 font="SansSerifSmall" h_pad="0" halign="center" height="16"
226 left="10" mouse_opaque="true" name="BHText" v_pad="0" width="10">
227 R
228 </text>
229 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
230 bottom_delta="-11" drop_shadow_visible="true" follows="left|top|right"
231 font="SansSerifSmall" h_pad="0" halign="center" height="16"
232 left_delta="0" mouse_opaque="true" name="BHText2" v_pad="0" width="10">
233 G
234 </text>
235 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
236 bottom_delta="-11" drop_shadow_visible="true" follows="left|top|right"
237 font="SansSerifSmall" h_pad="0" halign="center" height="16"
238 left_delta="0" mouse_opaque="true" name="BHText3" v_pad="0" width="10">
239 B
240 </text>
241 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
242 bottom_delta="-11" drop_shadow_visible="true" follows="left|top|right"
243 font="SansSerifSmall" h_pad="0" halign="center" height="16"
244 left_delta="0" mouse_opaque="true" name="BHText4" v_pad="0" width="10">
245 I
246 </text>
247 <slider bottom="-50" can_edit_text="false" control_name="WLSunlightR"
248 decimal_digits="2" follows="left" height="10" increment="0.01"
249 initial_val="0.7" label="" left="24" max_val="1" min_val="0"
250 mouse_opaque="true" name="WLSunlightR" show_text="true" value="0.7"
251 width="200" />
252 <slider bottom_delta="-11" can_edit_text="false" control_name="WLSunlightG"
253 decimal_digits="2" follows="left" height="10" increment="0.01"
254 initial_val="0.7" label="" left="24" max_val="1" min_val="0"
255 mouse_opaque="true" name="WLSunlightG" show_text="true" value="0.7"
256 width="200" />
257 <slider bottom_delta="-11" can_edit_text="false" control_name="WLSunlightB"
258 decimal_digits="2" follows="left" height="10" increment="0.01"
259 initial_val="0.7" label="" left="24" max_val="1" min_val="0"
260 mouse_opaque="true" name="WLSunlightB" show_text="true" value="0.7"
261 width="200" />
262 <slider bottom_delta="-11" can_edit_text="false" control_name="WLSunlightI"
263 decimal_digits="2" follows="left" height="10" increment="0.01"
264 initial_val="1.0" label="" left="24" max_val="1" min_val="0"
265 mouse_opaque="true" name="WLSunlightI" show_text="true" value="1.0"
266 width="200" />
267 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
268 bottom="-87" drop_shadow_visible="true" follows="left|top|right"
269 font="SansSerif" h_pad="0" halign="left" height="16"
270 left="10" mouse_opaque="true" name="TODText" v_pad="0" width="355">
271 Sun/Moon Position
272 </text>
273 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
274 left="160" name="WLTimeOfDayHelp" width="18" />
275 <icon bottom_delta="-30" follows="left|top" height="20" image_name="icon_diurnal.tga"
276 left="30" name="SkyDayCycle" width="148" />
277 <slider bottom_delta="-30" can_edit_text="false" control_name="WLSunAngle"
278 decimal_digits="3" follows="left" height="10" increment="0.001"
279 initial_val="0.7" label="" left="24" max_val="1" min_val="0"
280 mouse_opaque="true" name="WLSunAngle" show_text="true" value="1.0"
281 width="204" />
282 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
283 bottom="-20" drop_shadow_visible="true" follows="left|top|right"
284 font="SansSerif" h_pad="0" halign="left" height="16"
285 left="245" mouse_opaque="true" name="WLAmbientText" v_pad="0" width="355">
286 Ambient
287 </text>
288 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
289 left="395" name="WLAmbientHelp" width="18" />
290 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
291 bottom="-37" drop_shadow_visible="true" follows="left|top|right"
292 font="SansSerifSmall" h_pad="0" halign="center" height="16"
293 left="245" mouse_opaque="true" name="BHText5" v_pad="0" width="10">
294 R
295 </text>
296 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
297 bottom_delta="-11" drop_shadow_visible="true" follows="left|top|right"
298 font="SansSerifSmall" h_pad="0" halign="center" height="16"
299 left_delta="0" mouse_opaque="true" name="BHText6" v_pad="0" width="10">
300 G
301 </text>
302 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
303 bottom_delta="-11" drop_shadow_visible="true" follows="left|top|right"
304 font="SansSerifSmall" h_pad="0" halign="center" height="16"
305 left_delta="0" mouse_opaque="true" name="BHText7" v_pad="0" width="10">
306 B
307 </text>
308 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
309 bottom_delta="-11" drop_shadow_visible="true" follows="left|top|right"
310 font="SansSerifSmall" h_pad="0" halign="center" height="16"
311 left_delta="0" mouse_opaque="true" name="BHText8" v_pad="0" width="10">
312 I
313 </text>
314 <slider bottom="-50" can_edit_text="false" control_name="WLAmbientR" decimal_digits="2"
315 follows="left" height="10" increment="0.01" initial_val="0.7" label=""
316 left="259" max_val="1" min_val="0" mouse_opaque="true" name="WLAmbientR"
317 show_text="true" value="1.0" width="200" />
318 <slider bottom_delta="-11" can_edit_text="false" control_name="WLAmbientG"
319 decimal_digits="2" follows="left" height="10" increment="0.01"
320 initial_val="0.7" label="" left="259" max_val="1" min_val="0"
321 mouse_opaque="true" name="WLAmbientG" show_text="true" value="1.0"
322 width="200" />
323 <slider bottom_delta="-11" can_edit_text="false" control_name="WLAmbientB"
324 decimal_digits="2" follows="left" height="10" increment="0.01"
325 initial_val="0.7" label="" left="259" max_val="1" min_val="0"
326 mouse_opaque="true" name="WLAmbientB" show_text="true" value="1.0"
327 width="200" />
328 <slider bottom_delta="-11" can_edit_text="false" control_name="WLAmbientI"
329 decimal_digits="2" follows="left" height="10" increment="0.01"
330 initial_val="1" label="" left="259" max_val="1" min_val="0"
331 mouse_opaque="true" name="WLAmbientI" show_text="true" value="1.0"
332 width="200" />
333 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
334 bottom="-87" drop_shadow_visible="true" follows="left|top|right"
335 font="SansSerif" h_pad="0" halign="left" height="16"
336 left="245" mouse_opaque="true" name="WLEastAngleText" v_pad="0" width="355">
337 East Angle
338 </text>
339 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
340 left="395" name="WLEastAngleHelp" width="18" />
341 <slider bottom_delta="-30" can_edit_text="false" control_name="WLEastAngle"
342 decimal_digits="2" follows="left" height="10" increment="0.01"
343 initial_val="0.0" label="" left="259" max_val="1" min_val="0"
344 mouse_opaque="true" name="WLEastAngle" show_text="true" value="1.0"
345 width="200" />
346 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
347 bottom="-20" drop_shadow_visible="true" follows="left|top|right"
348 font="SansSerif" h_pad="0" halign="left" height="16"
349 left="480" mouse_opaque="true" name="SunGlowText" v_pad="0" width="355">
350 Sun Glow
351 </text>
352 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
353 left="630" name="WLSunGlowHelp" width="18" />
354 <slider bottom_delta="-30" can_edit_text="false" control_name="WLGlowB"
355 decimal_digits="2" follows="left" height="10" increment="0.01"
356 initial_val="0.1" label="Focus " left="494" max_val="0.5" min_val="0"
357 mouse_opaque="true" name="WLGlowB" show_text="true" value="1.0" width="200" />
358 <slider bottom_delta="-11" can_edit_text="false" control_name="WLGlowR"
359 decimal_digits="2" follows="left" height="10" increment="0.01"
360 initial_val="0.25" label="Size " left="494" max_val="1.99" min_val="1"
361 mouse_opaque="true" name="WLGlowR" show_text="true" value="1.0" width="200" />
362 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
363 bottom="-67" drop_shadow_visible="true" follows="left|top|right"
364 font="SansSerif" h_pad="0" halign="left" height="16"
365 left="480" mouse_opaque="true" name="SceneGammaText" v_pad="0" width="200">
366 Scene Gamma
367 </text>
368 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
369 left="630" name="WLSceneGammaHelp" width="18" />
370 <slider bottom_delta="-30" can_edit_text="false" control_name="WLGamma"
371 decimal_digits="2" follows="bottom" height="10" increment="0.01"
372 initial_val="2.0" label="" left="494" max_val="10.0" min_val="0"
373 mouse_opaque="true" name="WLGamma" show_text="true" value="2.0" width="207" />
374 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
375 bottom="-102" drop_shadow_visible="true" follows="left|top|right"
376 font="SansSerif" h_pad="0" halign="left" height="16"
377 left="480" mouse_opaque="true" name="WLStarText" v_pad="0" width="355">
378 Star Brightness
379 </text>
380 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
381 left="630" name="WLStarBrightnessHelp" width="18" />
382 <slider bottom_delta="-30" can_edit_text="false" control_name="WLStarAlpha"
383 decimal_digits="2" follows="bottom" height="10" increment="0.01"
384 initial_val="0" label="" left="494" max_val="2" min_val="0"
385 mouse_opaque="true" name="WLStarAlpha" show_text="true" value="0"
386 width="200" />
387 </panel>
388 <panel border="true" bottom="-180" follows="left|top|right|bottom" height="160"
389 label="Clouds" left="1" mouse_opaque="false" name="Clouds"
390 width="698">
391 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
392 bottom="-20" drop_shadow_visible="true" follows="left|top|right"
393 font="SansSerif" h_pad="0" halign="left" height="16"
394 left="10" mouse_opaque="true" name="WLCloudColorText" v_pad="0" width="355">
395 Cloud Color
396 </text>
397 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
398 left="160" name="WLCloudColorHelp" width="18" />
399 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
400 bottom="-37" drop_shadow_visible="true" follows="left|top|right"
401 font="SansSerifSmall" h_pad="0" halign="center" height="16"
402 left="10" mouse_opaque="true" name="BHText" v_pad="0" width="10">
403 R
404 </text>
405 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
406 bottom_delta="-11" drop_shadow_visible="true" follows="left|top|right"
407 font="SansSerifSmall" h_pad="0" halign="center" height="16"
408 left_delta="0" mouse_opaque="true" name="BHText2" v_pad="0" width="10">
409 G
410 </text>
411 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
412 bottom_delta="-11" drop_shadow_visible="true" follows="left|top|right"
413 font="SansSerifSmall" h_pad="0" halign="center" height="16"
414 left_delta="0" mouse_opaque="true" name="BHText3" v_pad="0" width="10">
415 B
416 </text>
417 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
418 bottom_delta="-11" drop_shadow_visible="true" follows="left|top|right"
419 font="SansSerifSmall" h_pad="0" halign="center" height="16"
420 left_delta="0" mouse_opaque="true" name="BHText4" v_pad="0" width="10">
421 I
422 </text>
423 <slider bottom="-50" can_edit_text="false" control_name="WLCloudColorR"
424 decimal_digits="2" follows="left" height="10" increment="0.01"
425 initial_val="0.7" label="" left="24" max_val="1" min_val="0"
426 mouse_opaque="true" name="WLCloudColorR" show_text="true" value="0.7"
427 width="200" />
428 <slider bottom_delta="-11" can_edit_text="false" control_name="WLCloudColorG"
429 decimal_digits="2" follows="left" height="10" increment="0.01"
430 initial_val="0.7" label="" left="24" max_val="1" min_val="0"
431 mouse_opaque="true" name="WLCloudColorG" show_text="true" value="0.7"
432 width="200" />
433 <slider bottom_delta="-11" can_edit_text="false" control_name="WLCloudColorB"
434 decimal_digits="2" follows="left" height="10" increment="0.01"
435 initial_val="0.7" label="" left="24" max_val="1" min_val="0"
436 mouse_opaque="true" name="WLCloudColorB" show_text="true" value="0.7"
437 width="200" />
438 <slider bottom_delta="-11" can_edit_text="false" control_name="WLCloudColorI"
439 decimal_digits="2" follows="left" height="10" increment="0.01"
440 initial_val="1.0" label="" left="24" max_val="1" min_val="0"
441 mouse_opaque="true" name="WLCloudColorI" show_text="true" value="1.0"
442 width="200" />
443 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
444 bottom="-87" drop_shadow_visible="true" follows="left|top|right"
445 font="SansSerif" h_pad="0" halign="left" height="16"
446 left="10" mouse_opaque="true" name="WLCloudColorText2" v_pad="0"
447 width="355">
448 Cloud XY/Density
449 </text>
450 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
451 left="160" name="WLCloudDensityHelp" width="18" />
452 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
453 bottom="-103" drop_shadow_visible="true" follows="left|top|right"
454 font="SansSerifSmall" h_pad="0" halign="center" height="16"
455 left="10" mouse_opaque="true" name="BHText5" v_pad="0" width="10">
456 X
457 </text>
458 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
459 bottom_delta="-11" drop_shadow_visible="true" follows="left|top|right"
460 font="SansSerifSmall" h_pad="0" halign="center" height="16"
461 left_delta="0" mouse_opaque="true" name="BHText6" v_pad="0" width="10">
462 Y
463 </text>
464 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
465 bottom_delta="-11" drop_shadow_visible="true" follows="left|top|right"
466 font="SansSerifSmall" h_pad="0" halign="center" height="16"
467 left_delta="0" mouse_opaque="true" name="BHText7" v_pad="0" width="10">
468 D
469 </text>
470 <slider bottom="-117" can_edit_text="false" control_name="WLCloudX" decimal_digits="2"
471 follows="left" height="10" increment="0.01" initial_val="0.5" label=""
472 left="24" max_val="1" min_val="0" mouse_opaque="true" name="WLCloudX"
473 show_text="true" value="0.5" width="200" />
474 <slider bottom_delta="-11" can_edit_text="false" control_name="WLCloudY"
475 decimal_digits="2" follows="left" height="10" increment="0.01"
476 initial_val="0.5" label="" left="24" max_val="1" min_val="0"
477 mouse_opaque="true" name="WLCloudY" show_text="true" value="0.5"
478 width="200" />
479 <slider bottom_delta="-11" can_edit_text="false" control_name="WLCloudDensity"
480 decimal_digits="2" follows="left" height="10" increment="0.01"
481 initial_val="1.0" label="" left="24" max_val="1" min_val="0"
482 mouse_opaque="true" name="WLCloudDensity" show_text="true" value="1.0"
483 width="200" />
484 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
485 bottom="-20" drop_shadow_visible="true" follows="left|top|right"
486 font="SansSerif" h_pad="0" halign="left" height="16"
487 left="245" mouse_opaque="true" name="WLCloudCoverageText" v_pad="0"
488 width="355">
489 Cloud Coverage
490 </text>
491 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
492 left="395" name="WLCloudCoverageHelp" width="18" />
493 <slider bottom_delta="-30" can_edit_text="false" control_name="WLCloudCoverage"
494 decimal_digits="2" follows="left" height="10" increment="0.01"
495 initial_val="0.5" label="" left="259" max_val="1" min_val="0"
496 mouse_opaque="true" name="WLCloudCoverage" show_text="true" value="0.0"
497 width="200" />
498 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
499 bottom="-55" drop_shadow_visible="true" follows="left|top|right"
500 font="SansSerif" h_pad="0" halign="left" height="16"
501 left="245" mouse_opaque="true" name="WLCloudScaleText" v_pad="0"
502 width="355">
503 Cloud Scale
504 </text>
505 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
506 left="395" name="WLCloudScaleHelp" width="18" />
507 <slider bottom_delta="-30" can_edit_text="false" control_name="WLCloudScale"
508 decimal_digits="2" follows="left" height="10" increment="0.01"
509 initial_val="1.0" label="" left="259" max_val="1.0" min_val="0.01"
510 mouse_opaque="true" name="WLCloudScale" show_text="true" value="1.0"
511 width="200" />
512 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
513 bottom="-87" drop_shadow_visible="true" follows="left|top|right"
514 font="SansSerif" h_pad="0" halign="left" height="16"
515 left="245" mouse_opaque="true" name="WLCloudDetailText" v_pad="0"
516 width="355">
517 Cloud Detail (XY/Density)
518 </text>
519 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
520 left="395" name="WLCloudDetailHelp" width="18" />
521 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
522 bottom="-103" drop_shadow_visible="true" follows="left|top|right"
523 font="SansSerifSmall" h_pad="0" halign="center" height="16"
524 left="245" mouse_opaque="true" name="BHText8" v_pad="0" width="10">
525 X
526 </text>
527 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
528 bottom_delta="-11" drop_shadow_visible="true" follows="left|top|right"
529 font="SansSerifSmall" h_pad="0" halign="center" height="16"
530 left_delta="0" mouse_opaque="true" name="BHText9" v_pad="0" width="10">
531 Y
532 </text>
533 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
534 bottom_delta="-11" drop_shadow_visible="true" follows="left|top|right"
535 font="SansSerifSmall" h_pad="0" halign="center" height="16"
536 left_delta="0" mouse_opaque="true" name="BHText10" v_pad="0" width="10">
537 D
538 </text>
539 <slider bottom="-117" can_edit_text="false" control_name="WLCloudDetailX"
540 decimal_digits="2" follows="left" height="10" increment="0.01"
541 initial_val="0.5" label="" left="259" max_val="1" min_val="0"
542 mouse_opaque="true" name="WLCloudDetailX" show_text="true" value="0.5"
543 width="200" />
544 <slider bottom_delta="-11" can_edit_text="false" control_name="WLCloudDetailY"
545 decimal_digits="2" follows="left" height="10" increment="0.01"
546 initial_val="0.5" label="" left="259" max_val="1" min_val="0"
547 mouse_opaque="true" name="WLCloudDetailY" show_text="true" value="0.5"
548 width="200" />
549 <slider bottom_delta="-11" can_edit_text="false" control_name="WLCloudDetailDensity"
550 decimal_digits="2" follows="left" height="10" increment="0.01"
551 initial_val="1.0" label="" left="259" max_val="1" min_val="0"
552 mouse_opaque="true" name="WLCloudDetailDensity" show_text="true"
553 value="1.0" width="200" />
554 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
555 bottom="-20" drop_shadow_visible="true" follows="left|top|right"
556 font="SansSerif" h_pad="0" halign="left" height="16"
557 left="480" mouse_opaque="true" name="WLCloudScrollXText" v_pad="0"
558 width="355">
559 Cloud Scroll X
560 </text>
561 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
562 left="605" name="WLCloudScrollXHelp" width="18" />
563 <check_box control_name="WLCloudLockX" follows="left" font="SansSerifSmall" height="16"
564 initial_value="false" label="Lock" left="625" mouse_opaque="true"
565 name="WLCloudLockX" width="200" />
566 <slider bottom_delta="-15" can_edit_text="false" control_name="WLCloudScrollX"
567 decimal_digits="2" follows="left" height="10" increment="0.01"
568 initial_val="0.5" label="" left="494" max_val="10" min_val="-10"
569 mouse_opaque="true" name="WLCloudScrollX" show_text="true" value="0.0"
570 width="200" />
571 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
572 bottom="-60" drop_shadow_visible="true" follows="left|top|right"
573 font="SansSerif" h_pad="0" halign="left" height="16"
574 left="480" mouse_opaque="true" name="WLCloudScrollYText" v_pad="0"
575 width="355">
576 Cloud Scroll Y
577 </text>
578 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="15" label="?"
579 left="605" name="WLCloudScrollYHelp" width="18" />
580 <check_box control_name="WLCloudLockY" follows="left" font="SansSerifSmall" height="16"
581 initial_value="false" label="Lock" left="625" mouse_opaque="true"
582 name="WLCloudLockY" width="200" />
583 <slider bottom_delta="-15" can_edit_text="false" control_name="WLCloudScrollY"
584 decimal_digits="2" follows="left" height="10" increment="0.01"
585 initial_val="0.5" label="" left="494" max_val="10" min_val="-10"
586 mouse_opaque="true" name="WLCloudScrollY" show_text="true" value="0.0"
587 width="200" />
588 <check_box bottom="-120" control_name="DrawClassicClouds" follows="left"
589 font="SansSerifSmall" height="16" initial_value="false"
590 label="Draw Classic Clouds" left="480" mouse_opaque="true"
591 name="DrawClassicClouds" width="200" />
592 <button bottom="-102" follows="left|top" font="SansSerifSmall" height="15" label="?"
593 left="608" name="WLClassicCloudsHelp" width="18" />
594 </panel>
595 </tab_container>
596 <string name="WLDefaultSkyNames">
597 A-12AM:A-12PM:A-3AM:A-3PM:A-4.30PM:A-6AM:A-6PM:A-9AM:A-9PM:Barcelona:Blizzard:Blue Midday:Coastal Afternoon:Coastal Sunset:Default:Desert Sunset:Fine Day:Fluffy Big Clouds:Foggy:Funky Funky:Funky Funky Funky:Gelatto:Ghost:Incongruent Truths:Midday 1:Midday 2:Midday 3:Midday 4:Night:Pirate:Purple:Sailor&apos;s Delight:Sheer Sensuality
598 </string>
599</floater>
diff --git a/linden/indra/newview/skins/silver/xui/en-us/panel_status_bar.xml b/linden/indra/newview/skins/silver/xui/en-us/panel_status_bar.xml
deleted file mode 100644
index cef04fd..0000000
--- a/linden/indra/newview/skins/silver/xui/en-us/panel_status_bar.xml
+++ /dev/null
@@ -1,123 +0,0 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel background_opaque="true" background_visible="true"
3 bg_opaque_color="0.25 0.25 0.25 1.0" bottom="0" enabled="true"
4 follows="top|left|right" height="18" left="0" mouse_opaque="false"
5 name="status" width="1000">
6 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
7 bottom="-22" drop_shadow_visible="true" enabled="true"
8 follows="left|right|bottom" font="SansSerifSmall" h_pad="0" halign="left"
9 height="18" hover="true" left="561" mouse_opaque="true"
10 name="ParcelNameText" text_color="ParcelTextColor" hover_color="ParcelHoverColor"
11 tool_tip="Name of land parcel on which you are standing. Click for About Land."
12 v_pad="2" width="1039">
13 parcel name goes here
14 </text>
15 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
16 bottom="-20" disabled_color="BalanceTextColor" drop_shadow_visible="true"
17 enabled="true" follows="right|bottom" font="SansSerifSmall" h_pad="0"
18 halign="right" height="18" left="-210" mouse_opaque="true"
19 name="BalanceText" text_color="BalanceTextColor" tool_tip="Account Balance"
20 v_pad="2" width="76">
21 Loading...
22 </text>
23 <button bottom="-17" enabled="true" follows="right|bottom" font="SansSerif"
24 halign="center" height="16"
25 image_selected="status_buy_currency_pressed.tga"
26 image_unselected="status_buy_currency.tga" label="" label_selected=""
27 left="-210" mouse_opaque="true" name="buycurrency" scale_image="true"
28 tool_tip="Buy currency" width="16" />
29 <text type="string" length="12" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
30 bottom="-20" disabled_color="TimeTextColor" drop_shadow_visible="true"
31 enabled="true" follows="right|bottom" font="SansSerifSmall" h_pad="0"
32 halign="right" height="18" left="-300" mouse_opaque="true" name="TimeText"
33 text_color="TimeTextColor" tool_tip="Current Time (Pacific)" v_pad="2" width="80">
34 12:00 AM
35 </text>
36 <string name="StatBarDaysOfWeek">
37 Sunday:Monday:Tuesday:Wednesday:Thursday:Friday:Saturday
38 </string>
39 <string name="StatBarMonthsOfYear">
40 January:February:March:April:May:June:July:August:September:October:November:December
41 </string>
42 <button bottom="-18" enabled="true" follows="right|bottom" font="SansSerif"
43 halign="center" height="16" image_selected="status_script_debug.tga"
44 image_unselected="status_script_debug.tga" label="" label_selected=""
45 left="378" mouse_opaque="true" name="scriptout" scale_image="false"
46 tool_tip="Script Warnings and Errors" visible="false" width="16" />
47 <button bottom="-22" enabled="true" follows="right|bottom" font="SansSerif"
48 halign="center" height="18" image_selected="status_health.tga"
49 image_unselected="status_health.tga" label="" label_selected="" left="394"
50 mouse_opaque="true" name="health" scale_image="false" tool_tip="Health"
51 visible="false" width="24" />
52 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
53 bottom="-18" disabled_color="HealthTextColor" drop_shadow_visible="true"
54 enabled="true" follows="rsight|bottom" font="SansSerifSmall" h_pad="0"
55 halign="left" height="18" left="418" mouse_opaque="true" name="HealthText"
56 text_color="HealthTextColor" tool_tip="Health" v_pad="2" visible="false" width="31">
57 100%
58 </text>
59 <button bottom="-22" enabled="true" follows="right|bottom" font="SansSerif"
60 halign="center" height="18" image_selected="status_no_fly.tga"
61 image_unselected="status_no_fly.tga" label="" label_selected="" left="449"
62 mouse_opaque="true" name="no_fly" scale_image="false"
63 tool_tip="Flying not allowed" visible="false" width="24" />
64 <button bottom="-22" enabled="true" follows="right|bottom" font="SansSerif"
65 halign="center" height="18" image_selected="status_no_build.tga"
66 image_unselected="status_no_build.tga" label="" label_selected=""
67 left="473" name="no_build" scale_image="false"
68 tool_tip="Building/Rezzing not allowed" visible="false" width="24" />
69 <button bottom="-22" enabled="true" follows="right|bottom" font="SansSerif"
70 halign="center" height="18" image_selected="status_no_scripts.tga"
71 image_unselected="status_no_scripts.tga" label="" label_selected=""
72 left="497" mouse_opaque="true" name="no_scripts" scale_image="false"
73 tool_tip="Scripts not allowed" visible="false" width="24" />
74 <button bottom="-22" enabled="true" follows="right|bottom" font="SansSerif"
75 halign="center" height="18" image_selected="status_no_push.tga"
76 image_unselected="status_no_push.tga" label="" label_selected="" left="521"
77 mouse_opaque="true" name="restrictpush" scale_image="false"
78 tool_tip="No Pushing" visible="false" width="24" />
79 <button bottom="-22" enabled="true" follows="right|bottom" font="SansSerif"
80 halign="center" height="18" image_selected="status_no_voice.tga"
81 image_unselected="status_no_voice.tga" label="" label_selected=""
82 left="545" mouse_opaque="true" name="status_no_voice" scale_image="false"
83 tool_tip="Voice not available here" visible="false" width="24" />
84 <button bottom="-17" enabled="true" follows="right|bottom" font="SansSerif"
85 halign="center" height="16" image_selected="status_buy_land_pressed.tga"
86 image_unselected="status_buy_land.tga" label="" label_selected=""
87 left="576" mouse_opaque="true" name="buyland" scale_image="true"
88 tool_tip="Buy this parcel" visible="false" width="16" />
89
90 <!-- Totally unsexy button hack to get a sexy bevel for sexy search bevel -brent -->
91 <button bottom="-17" height="16" left="-97" width="96"
92 image_unselected="sm_rounded_corners_simple.tga"
93 image_selected="sm_rounded_corners_simple.tga"
94 image_hover_selected="sm_rounded_corners_simple.tga"
95 image_hover_unselected="sm_rounded_corners_simple.tga"
96 image_disabled_selected="sm_rounded_corners_simple.tga"
97 image_disabled="sm_rounded_corners_simple.tga"
98 label="" scale_image="true" enabled="true" mouse_opaque="false" name="menubar_search_bevel_bg" />
99
100 <line_editor bevel_style="none" border_style="line" border_thickness="0" bottom="-16"
101 commit_on_focus_lost="false" enabled="true" follows="right|bottom"
102 font="SansSerifSmall" handle_edit_keys_directly="false" height="13"
103 label="Search" left="-95" max_length="254" mouse_opaque="true"
104 name="search_editor" select_all_on_focus_received="false"
105 select_on_focus="false" tab_group="1" tool_tip="Search Second Life"
106 width="80" />
107 <button bottom="-16" enabled="true" follows="right|bottom" font="SansSerifSmall"
108 halign="center" height="12" image_disabled="status_search.tga"
109 image_disabled_selected="status_search.tga"
110 image_selected="status_search.tga" image_unselected="status_search.tga"
111 label="" label_selected="" left="-16" mouse_opaque="true" name="search_btn"
112 tool_tip="Search Second Life" width="12" scale_image="true"/>
113 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
114 bottom="-16" enabled="false" follows="right|bottom" font="SansSerifSmall"
115 halign="center" height="12" left="-20" mouse_opaque="true"
116 name="stat_btn" width="20" />
117 <string name="packet_loss_tooltip">
118 Packet Loss
119 </string>
120 <string name="bandwidth_tooltip">
121 Bandwidth
122 </string>
123</panel>
diff --git a/linden/indra/newview/skins/silver/xui/en-us/panel_voice_controls.xml b/linden/indra/newview/skins/silver/xui/en-us/panel_voice_controls.xml
deleted file mode 100644
index 423564f..0000000
--- a/linden/indra/newview/skins/silver/xui/en-us/panel_voice_controls.xml
+++ /dev/null
@@ -1,19 +0,0 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel bg_visible="false" border="false" border_visible="false" bottom="2"
3 enabled="true" follows="right|bottom" height="20" left="0"
4 mouse_opaque="true" name="voice_controls" width="130">
5 <button bottom="-21" height="20" image_overlay="active_speakers.tga" label="" left="3"
6 name="speakers_btn"
7 tool_tip="Show list of residents using voice chat around you" width="36" />
8 <button bottom="-21" height="20" label="Talk" left_delta="38" name="push_to_talk"
9 tab_stop="false" tool_tip="Hold the button to talk" width="63" />
10 <button bottom="-19" height="16" image_selected="ptt_lock_on.tga"
11 image_unselected="ptt_lock_off.tga" label="" left_delta="2" name="ptt_lock"
12 scale_image="false" toggle="true"
13 tool_tip="Click lock to switch to talk mode" width="16" />
14 <icon bottom="-19" height="16" image_name="icn_voice_ptt-off.tga" left_delta="42"
15 name="voice_volume" width="16" />
16 <button bottom="-21" control_name="ShowVoiceChannelPopup" height="20" label=""
17 left_delta="21" name="show_channel" scale_image="true" toggle="true"
18 tool_tip="Click to show current voice channel" width="20" />
19</panel>
diff --git a/linden/indra/newview/viewer_manifest.py b/linden/indra/newview/viewer_manifest.py
index 8510dc4..d7acfea 100755
--- a/linden/indra/newview/viewer_manifest.py
+++ b/linden/indra/newview/viewer_manifest.py
@@ -30,6 +30,13 @@
30# WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, 30# WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
31# COMPLETENESS OR PERFORMANCE. 31# COMPLETENESS OR PERFORMANCE.
32# $/LicenseInfo$ 32# $/LicenseInfo$
33
34# DO NOT RUN THIS FILE DIRECTLY
35# Instead, run develop.py with "configure -DPACKAGE:BOOL=ON" e.g.:
36# develop.py -G vc80 configure -DPACKAGE:BOOL=ON
37# to generate the "package" project in Visual Studio 2005
38# Note: as of Imprudence 1.3, this defaults to on for Windows
39
33import sys 40import sys
34import os.path 41import os.path
35import re 42import re
@@ -68,37 +75,33 @@ class ViewerManifest(LLManifest):
68 75
69 # Include our fonts 76 # Include our fonts
70 if self.prefix(src="fonts"): 77 if self.prefix(src="fonts"):
71 self.path("LiberationSans-Bold.ttf") 78 self.path("*.ttf")
72 self.path("LiberationSans-Regular.ttf")
73 self.path("VeraMono.ttf")
74 self.path("*.txt") 79 self.path("*.txt")
75 self.end_prefix("fonts") 80 self.end_prefix("fonts")
76 81
77 # skins 82 # skins
78 if self.prefix(src="skins"): 83 if self.prefix(src="skins"):
79 self.path("paths.xml") 84 self.path("paths.xml")
80 85 # include the entire textures directory recursively
81 # include the entire textures directory recursively 86 if self.prefix(src="*/textures"):
82 if self.prefix(src="*/textures"): 87 self.path("*.tga")
83 self.path("*.tga") 88 self.path("*.j2c")
84 self.path("*.j2c") 89 self.path("*.jpg")
85 self.path("*.jpg") 90 self.path("*.png")
86 self.path("*.png") 91 self.path("textures.xml")
87 self.path("textures.xml") 92 self.end_prefix("*/textures")
88 self.end_prefix("*/textures") 93 self.path("*/xui/*/*.xml")
89 94 self.path("*/*.xml")
90 self.path("*/xui/*/*.xml")
91 self.path("*/*.xml")
92
93 # Local HTML files (e.g. loading screen)
94 if self.prefix(src="*/html"):
95 self.path("*.png")
96 self.path("*/*/*.html")
97 self.path("*/*/*.gif")
98 self.end_prefix("*/html")
99 95
100 self.end_prefix("skins") 96 # Local HTML files (e.g. loading screen)
101 97 if self.prefix(src="*/html"):
98 self.path("*.png")
99 self.path("*/*/*.html")
100 self.path("*/*/*.gif")
101 self.end_prefix("*/html")
102 self.end_prefix("skins")
103
104 # Files in the newview/ directory
102 self.path("gpu_table.txt") 105 self.path("gpu_table.txt")
103 106
104 107
@@ -140,7 +143,7 @@ class ViewerManifest(LLManifest):
140 def channel(self): 143 def channel(self):
141 return self.args['channel'] 144 return self.args['channel']
142 def channel_unique(self): 145 def channel_unique(self):
143 return self.channel().replace("Second Life", "").strip() 146 return self.channel().replace("Imprudence", "").strip()
144 def channel_oneword(self): 147 def channel_oneword(self):
145 return "".join(self.channel_unique().split()) 148 return "".join(self.channel_unique().split())
146 def channel_lowerword(self): 149 def channel_lowerword(self):
@@ -236,16 +239,16 @@ class WindowsManifest(ViewerManifest):
236 self.end_prefix() 239 self.end_prefix()
237 240
238 # The config file name needs to match the exe's name. 241 # The config file name needs to match the exe's name.
239 self.path(src="%s/secondlife-bin.exe.config" % self.args['configuration'], dst=self.final_exe() + ".config") 242 self.path(src="%s/imprudence-bin.exe.config" % self.args['configuration'], dst=self.final_exe() + ".config")
240 243
241 # We need this one too, so that llkdu loads at runtime - DEV-41194 244 # We need this one too, so that llkdu loads at runtime - DEV-41194
242 self.path(src="%s/secondlife-bin.exe.config" % self.args['configuration'], dst="llkdu.dll.2.config") 245 self.path(src="%s/imprudence-bin.exe.config" % self.args['configuration'], dst="llkdu.dll.2.config")
243 246
244 # We need this one too, so that win_crash_logger.exe loads at runtime - DEV-19004 247 # We need this one too, so that win_crash_logger.exe loads at runtime - DEV-19004
245 self.path(src="%s/secondlife-bin.exe.config" % self.args['configuration'], dst="win_crash_logger.exe.config") 248 self.path(src="%s/imprudence-bin.exe.config" % self.args['configuration'], dst="win_crash_logger.exe.config")
246 249
247 # same thing for auto-updater. 250 # same thing for auto-updater.
248 self.path(src="%s/secondlife-bin.exe.config" % self.args['configuration'], dst="updater.exe.config") 251 self.path(src="%s/imprudence-bin.exe.config" % self.args['configuration'], dst="updater.exe.config")
249 252
250 # Mozilla runtime DLLs (CP) 253 # Mozilla runtime DLLs (CP)
251 if self.prefix(src="../../libraries/i686-win32/lib/release", dst=""): 254 if self.prefix(src="../../libraries/i686-win32/lib/release", dst=""):
@@ -276,9 +279,9 @@ class WindowsManifest(ViewerManifest):
276 # Mozilla hack to get it to accept newer versions of msvc*80.dll than are listed in manifest 279 # Mozilla hack to get it to accept newer versions of msvc*80.dll than are listed in manifest
277 # necessary as llmozlib2-vc80.lib refers to an old version of msvc*80.dll - can be removed when new version of llmozlib is built - Nyx 280 # necessary as llmozlib2-vc80.lib refers to an old version of msvc*80.dll - can be removed when new version of llmozlib is built - Nyx
278 # Vivox runtimes 281 # Vivox runtimes
279 if self.prefix(src="vivox-runtime/i686-win32", dst=""): 282 #if self.prefix(src="vivox-runtime/i686-win32", dst=""):
280 # self.path("alut.dll") 283 # self.path("alut.dll")
281 self.path("wrap_oal.dll") 284 # self.path("wrap_oal.dll")
282 285
283 # self.path("SLVoice.exe") 286 # self.path("SLVoice.exe")
284 # self.path("SLVoiceAgent.exe") 287 # self.path("SLVoiceAgent.exe")
@@ -289,8 +292,65 @@ class WindowsManifest(ViewerManifest):
289 # self.path("vivoxsdk.dll") 292 # self.path("vivoxsdk.dll")
290 # self.path("ortp.dll") 293 # self.path("ortp.dll")
291 294
295 # self.end_prefix()
296
297 # Gstreamer plugins
298 if self.prefix(src="lib/gstreamer-plugins", dst=""):
299 self.path("*.dll", dst="lib/gstreamer-plugins/*.dll")
292 self.end_prefix() 300 self.end_prefix()
293 301
302 # Gstreamer libs
303 if self.prefix(src="../../libraries/i686-win32/lib/release", dst=""):
304 self.path("iconv.dll")
305 self.path("libxml2.dll")
306 self.path("libcairo-2.dll")
307 self.path("libgio-2.0-0.dll")
308 self.path("libglib-2.0-0.dll")
309 self.path("libgmodule-2.0-0.dll")
310 self.path("libgobject-2.0-0.dll")
311 self.path("libgthread-2.0-0.dll")
312 self.path("charset.dll")
313 self.path("intl.dll")
314 self.path("libgcrypt-11.dll")
315 self.path("libgnutls-26.dll")
316 self.path("libgpg-error-0.dll")
317 self.path("libgstapp.dll")
318 self.path("libgstaudio.dll")
319 self.path("libgstbase-0.10.dll")
320 self.path("libgstcdda.dll")
321 self.path("libgstcontroller-0.10.dll")
322 self.path("libgstdataprotocol-0.10.dll")
323 self.path("libgstdshow.dll")
324 self.path("libgstfft.dll")
325 self.path("libgstinterfaces.dll")
326 self.path("libgstnet-0.10.dll")
327 self.path("libgstnetbuffer.dll")
328 self.path("libgstpbutils.dll")
329 self.path("libgstreamer-0.10.dll")
330 self.path("libgstriff.dll")
331 self.path("libgstrtp.dll")
332 self.path("libgstrtsp.dll")
333 self.path("libgstsdp.dll")
334 self.path("libgsttag.dll")
335 self.path("libgstvideo.dll")
336 self.path("libjpeg.dll")
337 self.path("libmp3lame-0.dll")
338 self.path("libneon-27.dll")
339 self.path("libogg-0.dll")
340 self.path("liboil-0.3-0.dll")
341 self.path("libopenjpeg-2.dll")
342 self.path("libpng12-0.dll")
343 self.path("libschroedinger-1.0-0.dll")
344 self.path("libspeex-1.dll")
345 self.path("libtheora-0.dll")
346 self.path("libvorbis-0.dll")
347 self.path("libvorbisenc-2.dll")
348 self.path("libxml2-2.dll")
349 self.path("glew32.dll")
350 self.path("xvidcore.dll")
351 self.path("zlib1.dll")
352 self.end_prefix()
353
294# # pull in the crash logger and updater from other projects 354# # pull in the crash logger and updater from other projects
295# self.path(src=self.find_existing_file( # tag:"crash-logger" here as a cue to the exporter 355# self.path(src=self.find_existing_file( # tag:"crash-logger" here as a cue to the exporter
296# "../win_crash_logger/debug/windows-crash-logger.exe", 356# "../win_crash_logger/debug/windows-crash-logger.exe",
@@ -355,9 +415,9 @@ class WindowsManifest(ViewerManifest):
355 def package_finish(self): 415 def package_finish(self):
356 # a standard map of strings for replacing in the templates 416 # a standard map of strings for replacing in the templates
357 substitution_strings = { 417 substitution_strings = {
358 'version' : '.'.join(self.args['version']), 418 'version' : '.'.join(self.args['version']).replace(' ', '_'),
359 'version_short' : '.'.join(self.args['version'][:-1]), 419 'version_short' : '.'.join(self.args['version'][:-1]).replace(' ', '_'),
360 'version_dashes' : '-'.join(self.args['version']), 420 'version_dashes' : '-'.join(self.args['version']).replace(' ', '_'),
361 'final_exe' : self.final_exe(), 421 'final_exe' : self.final_exe(),
362 'grid':self.args['grid'], 422 'grid':self.args['grid'],
363 'grid_caps':self.args['grid'].upper(), 423 'grid_caps':self.args['grid'].upper(),