From d6101558a171dbd2390792ac1e78d09fc2c27711 Mon Sep 17 00:00:00 2001 From: James Cook Date: Mon, 6 Jul 2009 21:58:04 +0000 Subject: [PATCH] Merge xui-army-5 to viewer-2, includes layout, art, and color changes, also UI color refactoring and new FreeType font library on Linux. svn merge -r126038:126164 svn+ssh://svn.lindenlab.com/svn/linden/branches/skinning/xui-army-5 --- indra/cmake/00-Common.cmake | 1 - indra/llui/CMakeLists.txt | 2 + indra/llui/llcombobox.cpp | 22 +- indra/llui/llcombobox.h | 3 +- indra/llui/llconsole.cpp | 4 +- indra/llui/lldraghandle.h | 4 +- indra/llui/llfloater.cpp | 19 +- indra/llui/llflyoutbutton.cpp | 7 +- indra/llui/llflyoutbutton.h | 8 +- indra/llui/llfocusmgr.cpp | 2 +- indra/llui/lllineeditor.cpp | 11 +- indra/llui/llmenugl.cpp | 26 +- indra/llui/llmenugl.h | 2 +- indra/llui/llmodaldialog.cpp | 2 +- indra/llui/llpanel.cpp | 4 - indra/llui/llresizehandle.cpp | 2 +- indra/llui/llspinctrl.cpp | 8 +- indra/llui/llstatgraph.cpp | 4 +- indra/llui/llstyle.h | 2 +- indra/llui/lltextbox.cpp | 2 +- indra/llui/lltexteditor.cpp | 6 +- indra/llui/lltexteditor.h | 2 +- indra/llui/llui.cpp | 10 +- indra/llui/llui.h | 12 +- indra/llui/lluicolortable.cpp | 169 +- indra/llui/lluicolortable.h | 33 +- indra/llui/lluictrl.cpp | 8 - indra/llui/lluictrlfactory.cpp | 8 +- indra/llui/lluictrlfactory.h | 2 +- indra/llui/lluiimage.cpp | 2 +- indra/llui/lluiimage.h | 4 +- indra/llui/llview.cpp | 16 +- indra/llvfs/lldir_mac.cpp | 21 +- indra/llwindow/CMakeLists.txt | 4 +- indra/newview/app_settings/settings.xml | 89 +- indra/newview/llagent.cpp | 4 +- indra/newview/llagent.h | 3 +- indra/newview/llappviewer.cpp | 57 +- indra/newview/llbottomtray.cpp | 6 +- indra/newview/llcallingcard.cpp | 2 +- indra/newview/llchiclet.cpp | 10 +- indra/newview/llfavoritesbar.cpp | 2 +- indra/newview/llfeaturemanager.cpp | 1 - indra/newview/llfloaterabout.cpp | 10 +- indra/newview/llfloaterchat.cpp | 18 +- indra/newview/llfloatercolorpicker.cpp | 4 +- indra/newview/llfloaterpreference.cpp | 116 +- indra/newview/llfloaterpreference.h | 3 + indra/newview/llfloatersettingsdebug.cpp | 4 - indra/newview/llfloatersnapshot.cpp | 2 +- .../newview/llfloatervoicedevicesettings.cpp | 2 +- indra/newview/llfloaterworldmap.cpp | 4 +- indra/newview/llfolderview.cpp | 18 +- indra/newview/llhudmanager.cpp | 5 +- indra/newview/llhudtext.cpp | 2 +- indra/newview/llimpanel.cpp | 8 +- indra/newview/llimview.cpp | 10 +- indra/newview/lllocationinputctrl.cpp | 33 +- indra/newview/lllocationinputctrl.h | 8 +- indra/newview/llmanip.cpp | 6 +- indra/newview/llmaniprotate.cpp | 10 +- indra/newview/llmanipscale.cpp | 8 +- indra/newview/llmaniptranslate.cpp | 14 +- indra/newview/llmemoryview.cpp | 2 +- indra/newview/llnetmap.cpp | 12 +- indra/newview/lloutputmonitorctrl.cpp | 8 +- indra/newview/llselectmgr.cpp | 12 +- indra/newview/llsidetray.cpp | 4 +- indra/newview/llstartup.cpp | 25 +- indra/newview/llstatusbar.cpp | 2 +- indra/newview/llstylemap.cpp | 6 +- indra/newview/lltoolfocus.cpp | 6 +- indra/newview/lltoolgrab.cpp | 16 +- indra/newview/lltoolgun.cpp | 4 +- indra/newview/lltoolmgr.cpp | 2 + indra/newview/lltracker.cpp | 4 +- indra/newview/lluploaddialog.cpp | 2 +- indra/newview/llviewercontrol.cpp | 65 +- indra/newview/llviewercontrol.h | 5 +- indra/newview/llviewermenu.cpp | 9 +- indra/newview/llviewerobjectlist.cpp | 12 +- indra/newview/llviewerparceloverlay.cpp | 22 +- indra/newview/llviewerwindow.cpp | 41 +- indra/newview/llvoavatar.cpp | 4 +- indra/newview/llvosky.cpp | 2 +- indra/newview/llworldmapview.cpp | 6 +- indra/newview/pipeline.cpp | 4 +- indra/newview/skins/default/colors.xml | 207 +-- .../containers/Accordion_ArrowClosed_Off.png | Bin 0 -> 175 bytes .../containers/Accordion_ArrowClosed_Over.png | Bin 0 -> 170 bytes .../Accordion_ArrowClosed_Press.png | Bin 0 -> 175 bytes .../containers/Accordion_ArrowOpened_Over.png | Bin 0 -> 162 bytes .../Accordion_ArrowOpened_Press.png | Bin 0 -> 169 bytes .../textures/containers/Accordion_Off.png | Bin 0 -> 239 bytes .../textures/containers/Accordion_Over.png | Bin 0 -> 206 bytes .../textures/containers/Accordion_Press.png | Bin 0 -> 200 bytes .../default/textures/containers/Container.png | Bin 0 -> 673 bytes .../textures/containers/TabTop_Left_Off.png | Bin 0 -> 339 bytes .../textures/containers/TabTop_Left_Over.png | Bin 0 -> 337 bytes .../containers/TabTop_Left_Selected.png | Bin 0 -> 458 bytes .../textures/containers/TabTop_Middle_Off.png | Bin 0 -> 258 bytes .../containers/TabTop_Middle_Over.png | Bin 0 -> 285 bytes .../containers/TabTop_Middle_Selected.png | Bin 0 -> 367 bytes .../textures/containers/TabTop_Right_Off.png | Bin 0 -> 357 bytes .../textures/containers/TabTop_Right_Over.png | Bin 0 -> 362 bytes .../containers/TabTop_Right_Selected.png | Bin 0 -> 474 bytes .../textures/containers/Toolbar_Left_Off.png | Bin 0 -> 306 bytes .../textures/containers/Toolbar_Left_Over.png | Bin 0 -> 310 bytes .../containers/Toolbar_Left_Selected.png | Bin 0 -> 380 bytes .../containers/Toolbar_Middle_Off.png | Bin 0 -> 224 bytes .../containers/Toolbar_Middle_Over.png | Bin 0 -> 228 bytes .../containers/Toolbar_Middle_Selected.png | Bin 0 -> 296 bytes .../textures/containers/Toolbar_Right_Off.png | Bin 0 -> 302 bytes .../containers/Toolbar_Right_Over.png | Bin 0 -> 297 bytes .../containers/Toolbar_Right_Selected.png | Bin 0 -> 377 bytes .../textures/navbar/Arrow_Left_Off.png | Bin 0 -> 382 bytes .../textures/navbar/Arrow_Left_Over.png | Bin 0 -> 381 bytes .../textures/navbar/Arrow_Right_Off.png | Bin 0 -> 380 bytes .../textures/navbar/Arrow_Right_Over.png | Bin 0 -> 379 bytes .../textures/navbar/Favorite_Star_Active.png | Bin 0 -> 641 bytes .../textures/navbar/Favorite_Star_Off.png | Bin 0 -> 573 bytes .../textures/navbar/Favorite_Star_Over.png | Bin 0 -> 579 bytes .../textures/navbar/Favorite_Star_Press.png | Bin 0 -> 551 bytes .../textures/navbar/FileMenu_Divider.png | Bin 0 -> 116 bytes .../default/textures/navbar/Help_Over.png | Bin 0 -> 348 bytes .../default/textures/navbar/Help_Press.png | Bin 0 -> 384 bytes .../default/textures/navbar/Home_Off.png | Bin 0 -> 379 bytes .../default/textures/navbar/Home_Over.png | Bin 0 -> 330 bytes .../default/textures/navbar/Info_Off.png | Bin 0 -> 608 bytes .../default/textures/navbar/Info_Over.png | Bin 0 -> 622 bytes .../default/textures/navbar/Info_Press.png | Bin 0 -> 605 bytes .../default/textures/navbar/NavBar_BG.png | Bin 0 -> 210 bytes .../default/textures/navbar/Row_Selection.png | Bin 0 -> 231 bytes .../skins/default/textures/navbar/Search.png | Bin 0 -> 467 bytes .../textures/taskpanel/TaskPanel_Tab_Off.png | Bin 0 -> 219 bytes .../taskpanel/TaskPanel_Tab_Selected.png | Bin 0 -> 325 bytes .../skins/default/textures/textures.xml | 231 ++- .../textures/widgets/Checkbox_Disabled.png | Bin 0 -> 306 bytes .../default/textures/widgets/Checkbox_Off.png | Bin 0 -> 322 bytes .../default/textures/widgets/Checkbox_On.png | Bin 0 -> 577 bytes .../textures/widgets/Checkbox_On_Disabled.png | Bin 0 -> 558 bytes .../textures/widgets/Checkbox_On_Over.png | Bin 0 -> 547 bytes .../textures/widgets/Checkbox_On_Press.png | Bin 0 -> 612 bytes .../textures/widgets/Checkbox_Over.png | Bin 0 -> 318 bytes .../textures/widgets/Checkbox_Press.png | Bin 0 -> 373 bytes .../textures/widgets/ComboButton_Disabled.png | Bin 0 -> 450 bytes .../textures/widgets/ComboButton_Off.png | Bin 0 -> 470 bytes .../textures/widgets/ComboButton_On.png | Bin 0 -> 486 bytes .../textures/widgets/ComboButton_Selected.png | Bin 0 -> 539 bytes .../textures/widgets/DropDown_Disabled.png | Bin 0 -> 600 bytes .../default/textures/widgets/DropDown_Off.png | Bin 0 -> 603 bytes .../default/textures/widgets/DropDown_On.png | Bin 0 -> 638 bytes .../textures/widgets/DropDown_Press.png | Bin 0 -> 679 bytes .../default/textures/widgets/ProgressBar.png | Bin 0 -> 220 bytes .../textures/widgets/ProgressTrack.png | Bin 0 -> 192 bytes .../textures/widgets/PushButton_Disabled.png | Bin 0 -> 461 bytes .../textures/widgets/PushButton_Off.png | Bin 0 -> 464 bytes .../textures/widgets/PushButton_On.png | Bin 0 -> 490 bytes .../textures/widgets/PushButton_On_Over.png | Bin 0 -> 498 bytes .../widgets/PushButton_On_Selected.png | Bin 0 -> 572 bytes .../textures/widgets/PushButton_Over.png | Bin 0 -> 457 bytes .../textures/widgets/PushButton_Press.png | Bin 0 -> 520 bytes .../textures/widgets/PushButton_Selected.png | Bin 0 -> 520 bytes .../widgets/PushButton_Selected_Disabled.png | Bin 0 -> 490 bytes .../widgets/PushButton_Selected_Over.png | Bin 0 -> 498 bytes .../widgets/PushButton_Selected_Press.png | Bin 0 -> 572 bytes .../textures/widgets/RadioButton_Disabled.png | Bin 0 -> 541 bytes .../textures/widgets/RadioButton_Off.png | Bin 0 -> 563 bytes .../textures/widgets/RadioButton_On.png | Bin 0 -> 627 bytes .../widgets/RadioButton_On_Disabled.png | Bin 0 -> 605 bytes .../textures/widgets/RadioButton_On_Over.png | Bin 0 -> 635 bytes .../textures/widgets/RadioButton_On_Press.png | Bin 0 -> 641 bytes .../textures/widgets/RadioButton_Over.png | Bin 0 -> 575 bytes .../textures/widgets/RadioButton_Press.png | Bin 0 -> 589 bytes .../textures/widgets/ScrollArrow_Down.png | Bin 0 -> 239 bytes .../widgets/ScrollArrow_Down_Over.png | Bin 0 -> 257 bytes .../textures/widgets/ScrollArrow_Left.png | Bin 0 -> 271 bytes .../widgets/ScrollArrow_Left_Over.png | Bin 0 -> 295 bytes .../textures/widgets/ScrollArrow_Right.png | Bin 0 -> 260 bytes .../widgets/ScrollArrow_Right_Over.png | Bin 0 -> 283 bytes .../textures/widgets/ScrollArrow_Up.png | Bin 0 -> 262 bytes .../textures/widgets/ScrollArrow_Up_Over.png | Bin 0 -> 276 bytes .../textures/widgets/ScrollThumb_Horiz.png | Bin 0 -> 364 bytes .../widgets/ScrollThumb_Horiz_Over.png | Bin 0 -> 311 bytes .../textures/widgets/ScrollThumb_Vert.png | Bin 0 -> 323 bytes .../widgets/ScrollThumb_Vert_Over.png | Bin 0 -> 311 bytes .../textures/widgets/ScrollTrack_Horiz.png | Bin 0 -> 153 bytes .../textures/widgets/ScrollTrack_Vert.png | Bin 0 -> 150 bytes .../widgets/SegmentedBtn_Left_Disabled.png | Bin 0 -> 378 bytes .../widgets/SegmentedBtn_Left_Off.png | Bin 0 -> 386 bytes .../textures/widgets/SegmentedBtn_Left_On.png | Bin 0 -> 404 bytes .../widgets/SegmentedBtn_Left_On_Disabled.png | Bin 0 -> 404 bytes .../widgets/SegmentedBtn_Left_On_Over.png | Bin 0 -> 394 bytes .../widgets/SegmentedBtn_Left_On_Selected.png | Bin 0 -> 495 bytes .../widgets/SegmentedBtn_Left_Over.png | Bin 0 -> 384 bytes .../widgets/SegmentedBtn_Left_Press.png | Bin 0 -> 455 bytes .../widgets/SegmentedBtn_Left_Selected.png | Bin 0 -> 455 bytes .../SegmentedBtn_Left_Selected_Disabled.png | Bin 0 -> 404 bytes .../SegmentedBtn_Left_Selected_Over.png | Bin 0 -> 394 bytes .../SegmentedBtn_Left_Selected_Press.png | Bin 0 -> 495 bytes .../widgets/SegmentedBtn_Middle_Disabled.png | Bin 0 -> 277 bytes .../widgets/SegmentedBtn_Middle_On.png | Bin 0 -> 308 bytes .../widgets/SegmentedBtn_Middle_On_Over.png | Bin 0 -> 300 bytes .../widgets/SegmentedBtn_Middle_On_Press.png | Bin 0 -> 393 bytes .../widgets/SegmentedBtn_Middle_Over.png | Bin 0 -> 286 bytes .../widgets/SegmentedBtn_Middle_Selected.png | Bin 0 -> 359 bytes .../SegmentedBtn_Middle_Selected_Disabled.png | Bin 0 -> 308 bytes .../SegmentedBtn_Middle_Selected_Over.png | Bin 0 -> 300 bytes .../SegmentedBtn_Middle_Selected_Press.png | Bin 0 -> 393 bytes .../widgets/SegmentedBtn_Right_Disabled.png | Bin 0 -> 380 bytes .../widgets/SegmentedBtn_Right_Off.png | Bin 0 -> 391 bytes .../widgets/SegmentedBtn_Right_On.png | Bin 0 -> 420 bytes .../widgets/SegmentedBtn_Right_On_Over.png | Bin 0 -> 416 bytes .../SegmentedBtn_Right_On_Selected.png | Bin 0 -> 502 bytes .../widgets/SegmentedBtn_Right_Over.png | Bin 0 -> 398 bytes .../widgets/SegmentedBtn_Right_Press.png | Bin 0 -> 459 bytes .../widgets/SegmentedBtn_Right_Selected.png | Bin 0 -> 459 bytes .../SegmentedBtn_Right_Selected_Disabled.png | Bin 0 -> 420 bytes .../SegmentedBtn_Right_Selected_Over.png | Bin 0 -> 416 bytes .../SegmentedBtn_Right_Selected_Press.png | Bin 0 -> 502 bytes .../textures/widgets/SliderThumb_Disabled.png | Bin 0 -> 475 bytes .../textures/widgets/SliderThumb_Off.png | Bin 0 -> 475 bytes .../textures/widgets/SliderThumb_Over.png | Bin 0 -> 482 bytes .../textures/widgets/SliderThumb_Press.png | Bin 0 -> 470 bytes .../textures/widgets/SliderTrack_Horiz.png | Bin 0 -> 225 bytes .../textures/widgets/SliderTrack_Vert.png | Bin 0 -> 232 bytes .../textures/widgets/TextField_Active.png | Bin 0 -> 225 bytes .../textures/widgets/TextField_Disabled.png | Bin 0 -> 225 bytes .../textures/widgets/TextField_Off.png | Bin 0 -> 224 bytes .../widgets/TextField_Search_Active.png | Bin 0 -> 923 bytes .../widgets/TextField_Search_Disabled.png | Bin 0 -> 943 bytes .../textures/widgets/TextField_Search_Off.png | Bin 0 -> 958 bytes .../skins/default/textures/windows/Flyout.png | Bin 0 -> 820 bytes .../textures/windows/Flyout_Pointer.png | Bin 0 -> 236 bytes .../windows/Icon_Close_Foreground.png | Bin 0 -> 226 bytes .../textures/windows/Icon_Close_Press.png | Bin 0 -> 217 bytes .../textures/windows/Icon_Close_Toast.png | Bin 0 -> 460 bytes .../textures/windows/Icon_Dock_Foreground.png | Bin 0 -> 240 bytes .../textures/windows/Icon_Dock_Press.png | Bin 0 -> 241 bytes .../textures/windows/Icon_Gear_Background.png | Bin 0 -> 373 bytes .../textures/windows/Icon_Gear_Foreground.png | Bin 0 -> 373 bytes .../textures/windows/Icon_Gear_Over.png | Bin 0 -> 279 bytes .../textures/windows/Icon_Gear_Press.png | Bin 0 -> 396 bytes .../windows/Icon_Undock_Foreground.png | Bin 0 -> 238 bytes .../textures/windows/Icon_Undock_Press.png | Bin 0 -> 260 bytes .../textures/windows/Resize_Corner.png | Bin 0 -> 137 bytes .../textures/windows/Toast_CloseBtn.png | Bin 0 -> 471 bytes .../default/textures/windows/Toast_Over.png | Bin 0 -> 400 bytes .../textures/windows/Window_Background.png | Bin 0 -> 950 bytes .../textures/windows/Window_Foreground.png | Bin 0 -> 959 bytes .../skins/default/xui/de/floater_tools.xml | 632 ++++++- .../default/xui/de/panel_group_general.xml | 85 + .../default/xui/de/panel_group_land_money.xml | 86 + .../default/xui/de/panel_group_notices.xml | 80 + .../default/xui/de/panel_group_roles.xml | 163 +- .../xui/en/floater_animation_preview.xml | 14 +- .../default/xui/en/floater_bulk_perms.xml | 22 +- .../default/xui/en/floater_buy_contents.xml | 6 +- .../default/xui/en/floater_buy_object.xml | 14 +- .../skins/default/xui/en/floater_gesture.xml | 23 +- .../skins/default/xui/en/floater_im.xml | 2 +- .../xui/en/floater_inventory_view_finder.xml | 2 +- .../default/xui/en/floater_land_holdings.xml | 52 +- .../default/xui/en/floater_mute_object.xml | 4 +- .../default/xui/en/floater_preferences.xml | 139 +- .../xui/en/floater_preview_animation.xml | 10 +- .../xui/en/floater_preview_gesture.xml | 90 +- .../default/xui/en/floater_preview_sound.xml | 11 +- .../default/xui/en/floater_region_info.xml | 2 +- .../default/xui/en/floater_sell_land.xml | 65 +- .../skins/default/xui/en/floater_telehub.xml | 2 +- .../default/xui/en/floater_test_checkbox.xml | 11 - .../xui/en/floater_test_navigation_bar.xml | 17 + .../skins/default/xui/en/floater_tools.xml | 1609 ++++++++--------- .../default/xui/en/floater_url_entry.xml | 20 +- indra/newview/skins/default/xui/en/fonts.xml | 16 +- .../skins/default/xui/en/menu_viewer.xml | 13 +- .../skins/default/xui/en/notifications.xml | 36 +- .../skins/default/xui/en/panel_bottomtray.xml | 2 +- .../default/xui/en/panel_group_general.xml | 123 +- .../default/xui/en/panel_group_land_money.xml | 143 +- .../default/xui/en/panel_group_notices.xml | 168 +- .../default/xui/en/panel_group_roles.xml | 176 +- .../default/xui/en/panel_navigation_bar.xml | 141 +- .../skins/default/xui/en/panel_people.xml | 8 +- .../xui/en/panel_preferences_advanced.xml | 305 ++++ .../default/xui/en/panel_preferences_chat.xml | 496 +++-- .../xui/en/panel_preferences_general.xml | 501 ++--- .../xui/en/panel_preferences_graphics1.xml | 336 +--- .../skins/default/xui/en/panel_profile.xml | 4 +- .../skins/default/xui/en/panel_progress.xml | 28 +- .../default/xui/en/panel_region_covenant.xml | 72 +- .../default/xui/en/panel_region_debug.xml | 43 +- .../default/xui/en/panel_region_estate.xml | 127 +- .../default/xui/en/panel_region_general.xml | 18 +- .../default/xui/en/panel_region_terrain.xml | 40 +- .../default/xui/en/panel_region_texture.xml | 174 +- .../default/xui/en/panel_scrolling_param.xml | 16 +- .../skins/default/xui/en/panel_side_tray.xml | 570 ++++++ .../newview/skins/default/xui/en/strings.xml | 2 +- .../skins/default/xui/en/widgets/button.xml | 8 +- .../default/xui/en/widgets/check_box.xml | 13 +- .../default/xui/en/widgets/color_swatch.xml | 2 - .../default/xui/en/widgets/combo_box.xml | 33 +- .../default/xui/en/widgets/drop_down.xml | 18 +- .../default/xui/en/widgets/flyout_button.xml | 15 +- .../default/xui/en/widgets/line_editor.xml | 3 +- .../default/xui/en/widgets/location_input.xml | 84 +- .../default/xui/en/widgets/progress_bar.xml | 4 +- .../default/xui/en/widgets/radio_group.xml | 4 +- .../default/xui/en/widgets/radio_item.xml | 9 +- .../default/xui/en/widgets/scroll_bar.xml | 36 +- .../default/xui/en/widgets/search_editor.xml | 5 +- .../default/xui/en/widgets/side_tray.xml | 10 +- .../xui/en/widgets/simple_text_editor.xml | 4 +- .../default/xui/en/widgets/slider_bar.xml | 7 +- .../default/xui/en/widgets/tab_container.xml | 8 +- .../default/xui/en/widgets/text_editor.xml | 4 +- indra/newview/viewer_manifest.py | 4 + install.xml | 4 +- 320 files changed, 5275 insertions(+), 3323 deletions(-) create mode 100644 indra/newview/skins/default/textures/containers/Accordion_ArrowClosed_Off.png create mode 100644 indra/newview/skins/default/textures/containers/Accordion_ArrowClosed_Over.png create mode 100644 indra/newview/skins/default/textures/containers/Accordion_ArrowClosed_Press.png create mode 100644 indra/newview/skins/default/textures/containers/Accordion_ArrowOpened_Over.png create mode 100644 indra/newview/skins/default/textures/containers/Accordion_ArrowOpened_Press.png create mode 100644 indra/newview/skins/default/textures/containers/Accordion_Off.png create mode 100644 indra/newview/skins/default/textures/containers/Accordion_Over.png create mode 100644 indra/newview/skins/default/textures/containers/Accordion_Press.png create mode 100644 indra/newview/skins/default/textures/containers/Container.png create mode 100644 indra/newview/skins/default/textures/containers/TabTop_Left_Off.png create mode 100644 indra/newview/skins/default/textures/containers/TabTop_Left_Over.png create mode 100644 indra/newview/skins/default/textures/containers/TabTop_Left_Selected.png create mode 100644 indra/newview/skins/default/textures/containers/TabTop_Middle_Off.png create mode 100644 indra/newview/skins/default/textures/containers/TabTop_Middle_Over.png create mode 100644 indra/newview/skins/default/textures/containers/TabTop_Middle_Selected.png create mode 100644 indra/newview/skins/default/textures/containers/TabTop_Right_Off.png create mode 100644 indra/newview/skins/default/textures/containers/TabTop_Right_Over.png create mode 100644 indra/newview/skins/default/textures/containers/TabTop_Right_Selected.png create mode 100644 indra/newview/skins/default/textures/containers/Toolbar_Left_Off.png create mode 100644 indra/newview/skins/default/textures/containers/Toolbar_Left_Over.png create mode 100644 indra/newview/skins/default/textures/containers/Toolbar_Left_Selected.png create mode 100644 indra/newview/skins/default/textures/containers/Toolbar_Middle_Off.png create mode 100644 indra/newview/skins/default/textures/containers/Toolbar_Middle_Over.png create mode 100644 indra/newview/skins/default/textures/containers/Toolbar_Middle_Selected.png create mode 100644 indra/newview/skins/default/textures/containers/Toolbar_Right_Off.png create mode 100644 indra/newview/skins/default/textures/containers/Toolbar_Right_Over.png create mode 100644 indra/newview/skins/default/textures/containers/Toolbar_Right_Selected.png create mode 100644 indra/newview/skins/default/textures/navbar/Arrow_Left_Off.png create mode 100644 indra/newview/skins/default/textures/navbar/Arrow_Left_Over.png create mode 100644 indra/newview/skins/default/textures/navbar/Arrow_Right_Off.png create mode 100644 indra/newview/skins/default/textures/navbar/Arrow_Right_Over.png create mode 100644 indra/newview/skins/default/textures/navbar/Favorite_Star_Active.png create mode 100644 indra/newview/skins/default/textures/navbar/Favorite_Star_Off.png create mode 100644 indra/newview/skins/default/textures/navbar/Favorite_Star_Over.png create mode 100644 indra/newview/skins/default/textures/navbar/Favorite_Star_Press.png create mode 100644 indra/newview/skins/default/textures/navbar/FileMenu_Divider.png create mode 100644 indra/newview/skins/default/textures/navbar/Help_Over.png create mode 100644 indra/newview/skins/default/textures/navbar/Help_Press.png create mode 100644 indra/newview/skins/default/textures/navbar/Home_Off.png create mode 100644 indra/newview/skins/default/textures/navbar/Home_Over.png create mode 100644 indra/newview/skins/default/textures/navbar/Info_Off.png create mode 100644 indra/newview/skins/default/textures/navbar/Info_Over.png create mode 100644 indra/newview/skins/default/textures/navbar/Info_Press.png create mode 100644 indra/newview/skins/default/textures/navbar/NavBar_BG.png create mode 100644 indra/newview/skins/default/textures/navbar/Row_Selection.png create mode 100644 indra/newview/skins/default/textures/navbar/Search.png create mode 100644 indra/newview/skins/default/textures/taskpanel/TaskPanel_Tab_Off.png create mode 100644 indra/newview/skins/default/textures/taskpanel/TaskPanel_Tab_Selected.png create mode 100644 indra/newview/skins/default/textures/widgets/Checkbox_Disabled.png create mode 100644 indra/newview/skins/default/textures/widgets/Checkbox_Off.png create mode 100644 indra/newview/skins/default/textures/widgets/Checkbox_On.png create mode 100644 indra/newview/skins/default/textures/widgets/Checkbox_On_Disabled.png create mode 100644 indra/newview/skins/default/textures/widgets/Checkbox_On_Over.png create mode 100644 indra/newview/skins/default/textures/widgets/Checkbox_On_Press.png create mode 100644 indra/newview/skins/default/textures/widgets/Checkbox_Over.png create mode 100644 indra/newview/skins/default/textures/widgets/Checkbox_Press.png create mode 100644 indra/newview/skins/default/textures/widgets/ComboButton_Disabled.png create mode 100644 indra/newview/skins/default/textures/widgets/ComboButton_Off.png create mode 100644 indra/newview/skins/default/textures/widgets/ComboButton_On.png create mode 100644 indra/newview/skins/default/textures/widgets/ComboButton_Selected.png create mode 100644 indra/newview/skins/default/textures/widgets/DropDown_Disabled.png create mode 100644 indra/newview/skins/default/textures/widgets/DropDown_Off.png create mode 100644 indra/newview/skins/default/textures/widgets/DropDown_On.png create mode 100644 indra/newview/skins/default/textures/widgets/DropDown_Press.png create mode 100644 indra/newview/skins/default/textures/widgets/ProgressBar.png create mode 100644 indra/newview/skins/default/textures/widgets/ProgressTrack.png create mode 100644 indra/newview/skins/default/textures/widgets/PushButton_Disabled.png create mode 100644 indra/newview/skins/default/textures/widgets/PushButton_Off.png create mode 100644 indra/newview/skins/default/textures/widgets/PushButton_On.png create mode 100644 indra/newview/skins/default/textures/widgets/PushButton_On_Over.png create mode 100644 indra/newview/skins/default/textures/widgets/PushButton_On_Selected.png create mode 100644 indra/newview/skins/default/textures/widgets/PushButton_Over.png create mode 100644 indra/newview/skins/default/textures/widgets/PushButton_Press.png create mode 100644 indra/newview/skins/default/textures/widgets/PushButton_Selected.png create mode 100644 indra/newview/skins/default/textures/widgets/PushButton_Selected_Disabled.png create mode 100644 indra/newview/skins/default/textures/widgets/PushButton_Selected_Over.png create mode 100644 indra/newview/skins/default/textures/widgets/PushButton_Selected_Press.png create mode 100644 indra/newview/skins/default/textures/widgets/RadioButton_Disabled.png create mode 100644 indra/newview/skins/default/textures/widgets/RadioButton_Off.png create mode 100644 indra/newview/skins/default/textures/widgets/RadioButton_On.png create mode 100644 indra/newview/skins/default/textures/widgets/RadioButton_On_Disabled.png create mode 100644 indra/newview/skins/default/textures/widgets/RadioButton_On_Over.png create mode 100644 indra/newview/skins/default/textures/widgets/RadioButton_On_Press.png create mode 100644 indra/newview/skins/default/textures/widgets/RadioButton_Over.png create mode 100644 indra/newview/skins/default/textures/widgets/RadioButton_Press.png create mode 100644 indra/newview/skins/default/textures/widgets/ScrollArrow_Down.png create mode 100644 indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Over.png create mode 100644 indra/newview/skins/default/textures/widgets/ScrollArrow_Left.png create mode 100644 indra/newview/skins/default/textures/widgets/ScrollArrow_Left_Over.png create mode 100644 indra/newview/skins/default/textures/widgets/ScrollArrow_Right.png create mode 100644 indra/newview/skins/default/textures/widgets/ScrollArrow_Right_Over.png create mode 100644 indra/newview/skins/default/textures/widgets/ScrollArrow_Up.png create mode 100644 indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Over.png create mode 100644 indra/newview/skins/default/textures/widgets/ScrollThumb_Horiz.png create mode 100644 indra/newview/skins/default/textures/widgets/ScrollThumb_Horiz_Over.png create mode 100644 indra/newview/skins/default/textures/widgets/ScrollThumb_Vert.png create mode 100644 indra/newview/skins/default/textures/widgets/ScrollThumb_Vert_Over.png create mode 100644 indra/newview/skins/default/textures/widgets/ScrollTrack_Horiz.png create mode 100644 indra/newview/skins/default/textures/widgets/ScrollTrack_Vert.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Disabled.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Off.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_On.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_On_Disabled.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_On_Over.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_On_Selected.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Over.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Press.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Selected.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Selected_Disabled.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Selected_Over.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Selected_Press.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Disabled.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_On.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_On_Over.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_On_Press.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Over.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected_Disabled.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected_Over.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected_Press.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Disabled.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Off.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_On.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_On_Over.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_On_Selected.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Over.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Press.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Selected.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Selected_Disabled.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Selected_Over.png create mode 100644 indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Selected_Press.png create mode 100644 indra/newview/skins/default/textures/widgets/SliderThumb_Disabled.png create mode 100644 indra/newview/skins/default/textures/widgets/SliderThumb_Off.png create mode 100644 indra/newview/skins/default/textures/widgets/SliderThumb_Over.png create mode 100644 indra/newview/skins/default/textures/widgets/SliderThumb_Press.png create mode 100644 indra/newview/skins/default/textures/widgets/SliderTrack_Horiz.png create mode 100644 indra/newview/skins/default/textures/widgets/SliderTrack_Vert.png create mode 100644 indra/newview/skins/default/textures/widgets/TextField_Active.png create mode 100644 indra/newview/skins/default/textures/widgets/TextField_Disabled.png create mode 100644 indra/newview/skins/default/textures/widgets/TextField_Off.png create mode 100644 indra/newview/skins/default/textures/widgets/TextField_Search_Active.png create mode 100644 indra/newview/skins/default/textures/widgets/TextField_Search_Disabled.png create mode 100644 indra/newview/skins/default/textures/widgets/TextField_Search_Off.png create mode 100644 indra/newview/skins/default/textures/windows/Flyout.png create mode 100644 indra/newview/skins/default/textures/windows/Flyout_Pointer.png create mode 100644 indra/newview/skins/default/textures/windows/Icon_Close_Foreground.png create mode 100644 indra/newview/skins/default/textures/windows/Icon_Close_Press.png create mode 100644 indra/newview/skins/default/textures/windows/Icon_Close_Toast.png create mode 100644 indra/newview/skins/default/textures/windows/Icon_Dock_Foreground.png create mode 100644 indra/newview/skins/default/textures/windows/Icon_Dock_Press.png create mode 100644 indra/newview/skins/default/textures/windows/Icon_Gear_Background.png create mode 100644 indra/newview/skins/default/textures/windows/Icon_Gear_Foreground.png create mode 100644 indra/newview/skins/default/textures/windows/Icon_Gear_Over.png create mode 100644 indra/newview/skins/default/textures/windows/Icon_Gear_Press.png create mode 100644 indra/newview/skins/default/textures/windows/Icon_Undock_Foreground.png create mode 100644 indra/newview/skins/default/textures/windows/Icon_Undock_Press.png create mode 100644 indra/newview/skins/default/textures/windows/Resize_Corner.png create mode 100644 indra/newview/skins/default/textures/windows/Toast_CloseBtn.png create mode 100644 indra/newview/skins/default/textures/windows/Toast_Over.png create mode 100644 indra/newview/skins/default/textures/windows/Window_Background.png create mode 100644 indra/newview/skins/default/textures/windows/Window_Foreground.png create mode 100644 indra/newview/skins/default/xui/en/floater_test_navigation_bar.xml create mode 100644 indra/newview/skins/default/xui/en/panel_preferences_advanced.xml diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake index ad7529ea0a..977251f807 100644 --- a/indra/cmake/00-Common.cmake +++ b/indra/cmake/00-Common.cmake @@ -227,7 +227,6 @@ else (STANDALONE) glib-2.0 gstreamer-0.10 gtk-2.0 - llfreetype2 pango-1.0 ) endif (STANDALONE) diff --git a/indra/llui/CMakeLists.txt b/indra/llui/CMakeLists.txt index 117e8e28ab..e62d875a01 100644 --- a/indra/llui/CMakeLists.txt +++ b/indra/llui/CMakeLists.txt @@ -81,6 +81,7 @@ set(llui_SOURCE_FILES lltextparser.cpp lltrans.cpp llui.cpp + lluicolor.cpp lluicolortable.cpp lluictrl.cpp lluictrlfactory.cpp @@ -154,6 +155,7 @@ set(llui_HEADER_FILES lltexteditor.h lltextparser.h lltrans.h + lluicolor.h lluicolortable.h lluiconstants.h lluictrlfactory.h diff --git a/indra/llui/llcombobox.cpp b/indra/llui/llcombobox.cpp index 51ab3326fe..e19eacb774 100644 --- a/indra/llui/llcombobox.cpp +++ b/indra/llui/llcombobox.cpp @@ -83,12 +83,12 @@ LLComboBox::Params::Params() : allow_text_entry("allow_text_entry", false), show_text_as_tentative("show_text_as_tentative", true), max_chars("max_chars", 20), - arrow_image("arrow_image"), list_position("list_position", BELOW), items("item"), combo_button("combo_button"), combo_list("combo_list"), - combo_editor("combo_editor") + combo_editor("combo_editor"), + drop_down_button("drop_down_button") { addSynonym(items, "combo_item"); } @@ -104,19 +104,29 @@ LLComboBox::LLComboBox(const LLComboBox::Params& p) mPrearrangeCallback(p.prearrange_callback()), mTextEntryCallback(p.text_entry_callback()), mSelectionCallback(p.selection_callback()), - mArrowImage(p.arrow_image), mListPosition(p.list_position) { // Text label button - LLButton::Params button_params = p.combo_button; + LLButton::Params button_params = (mAllowTextEntry ? p.combo_button : p.drop_down_button); button_params.mouse_down_callback.function(boost::bind(&LLComboBox::onButtonDown, this)); button_params.follows.flags(FOLLOWS_LEFT|FOLLOWS_BOTTOM|FOLLOWS_RIGHT); button_params.rect(p.rect); - button_params.pad_right(2); + + if(mAllowTextEntry) + { + button_params.pad_right(2); + } + + mArrowImage = button_params.image_unselected; mButton = LLUICtrlFactory::create(button_params); - mButton->setRightHPad(2); //redo to compensate for button hack that leaves space for a character + if(mAllowTextEntry) + { + //redo to compensate for button hack that leaves space for a character + //unless it is a "minimal combobox"(drop down) + mButton->setRightHPad(2); + } addChild(mButton); LLScrollListCtrl::Params params = p.combo_list; diff --git a/indra/llui/llcombobox.h b/indra/llui/llcombobox.h index bc98690a01..cb5f72dcbe 100644 --- a/indra/llui/llcombobox.h +++ b/indra/llui/llcombobox.h @@ -84,7 +84,6 @@ public: Optional prearrange_callback, text_entry_callback, selection_callback; - Optional arrow_image; Optional list_position; @@ -93,6 +92,8 @@ public: Optional combo_list; Optional combo_editor; + Optional drop_down_button; + Multiple items; Params(); diff --git a/indra/llui/llconsole.cpp b/indra/llui/llconsole.cpp index f1fc3d8f43..1e8b8a5537 100644 --- a/indra/llui/llconsole.cpp +++ b/indra/llui/llconsole.cpp @@ -177,8 +177,8 @@ void LLConsole::draw() // F32 console_opacity = llclamp(gSavedSettings.getF32("ConsoleBackgroundOpacity"), 0.f, 1.f); F32 console_opacity = llclamp(LLUI::sSettingGroups["config"]->getF32("ConsoleBackgroundOpacity"), 0.f, 1.f); -// LLColor4 color = gSavedSkinSettings.getColor("ConsoleBackground"); - LLColor4 color = LLUI::sSettingGroups["color"]->getColor("ConsoleBackground"); +// LLColor4 color = LLUIColorTable::instance().getColor("ConsoleBackground"); + LLColor4 color = LLUIColorTable::instance().getColor("ConsoleBackground"); color.mV[VALPHA] *= console_opacity; F32 line_height = mFont->getLineHeight(); diff --git a/indra/llui/lldraghandle.h b/indra/llui/lldraghandle.h index 8b53c46ae9..0448c20068 100644 --- a/indra/llui/lldraghandle.h +++ b/indra/llui/lldraghandle.h @@ -53,8 +53,8 @@ public: Optional drag_shadow_color; Params() - : drag_highlight_color("", LLUI::getCachedColorFunctor("DefaultHighlightLight")), - drag_shadow_color("", LLUI::getCachedColorFunctor("DefaultShadowDark")) + : drag_highlight_color("", LLUIColorTable::instance().getColor("DefaultHighlightLight")), + drag_shadow_color("", LLUIColorTable::instance().getColor("DefaultShadowDark")) { mouse_opaque(true); follows.flags(FOLLOWS_ALL); diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp index 8932a7ccf2..d37459c040 100644 --- a/indra/llui/llfloater.cpp +++ b/indra/llui/llfloater.cpp @@ -66,7 +66,7 @@ const S32 TABBED_FLOATER_OFFSET = 0; std::string LLFloater::sButtonActiveImageNames[BUTTON_COUNT] = { - "closebox.tga", //BUTTON_CLOSE + "Icon_Close_Foreground", //BUTTON_CLOSE "restore.tga", //BUTTON_RESTORE "minimize.tga", //BUTTON_MINIMIZE "tearoffbox.tga", //BUTTON_TEAR_OFF @@ -84,7 +84,7 @@ std::string LLFloater::sButtonInactiveImageNames[BUTTON_COUNT] = std::string LLFloater::sButtonPressedImageNames[BUTTON_COUNT] = { - "close_in_blue.tga", //BUTTON_CLOSE + "Icon_Close_Press", //BUTTON_CLOSE "restore_pressed.tga", //BUTTON_RESTORE "minimize_pressed.tga", //BUTTON_MINIMIZE "tearoff_pressed.tga", //BUTTON_TEAR_OFF @@ -221,8 +221,8 @@ LLFloater::LLFloater(const LLSD& key, const LLFloater::Params& p) mPreviousMinimizedLeft(0), mNotificationContext(NULL) { - static LLUICachedControl default_background_color ("FloaterDefaultBackgroundColor", *(new LLColor4)); - static LLUICachedControl focus_background_color ("FloaterFocusBackgroundColor", *(new LLColor4)); + static LLUIColor default_background_color = LLUIColorTable::instance().getColor("FloaterDefaultBackgroundColor"); + static LLUIColor focus_background_color = LLUIColorTable::instance().getColor("FloaterFocusBackgroundColor"); for (S32 i = 0; i < BUTTON_COUNT; i++) { @@ -1449,7 +1449,7 @@ void LLFloater::draw() S32 bottom = LLPANEL_BORDER_WIDTH; static LLUICachedControl shadow_offset_S32 ("DropShadowFloater", 0); - static LLUICachedControl shadow_color_cached ("ColorDropShadow", *(new LLColor4)); + static LLUIColor shadow_color_cached = LLUIColorTable::instance().getColor("ColorDropShadow"); LLColor4 shadow_color = shadow_color_cached; F32 shadow_offset = (F32)shadow_offset_S32; @@ -1474,7 +1474,7 @@ void LLFloater::draw() if(gFocusMgr.childHasKeyboardFocus(this) && !getIsChrome() && !getCurrentTitle().empty()) { - static LLUICachedControl titlebar_focus_color ("TitleBarFocusColor", *(new LLColor4)); + static LLUIColor titlebar_focus_color = LLUIColorTable::instance().getColor("TitleBarFocusColor"); // draw highlight on title bar to indicate focus. RDW const LLFontGL* font = LLFontGL::getFontSansSerif(); LLRect r = getRect(); @@ -1533,10 +1533,10 @@ void LLFloater::draw() { // add in a border to improve spacialized visual aclarity ;) // use lines instead of gl_rect_2d so we can round the edges as per james' recommendation - static LLUICachedControl focus_border_color ("FloaterFocusBorderColor", *(new LLColor4)); - static LLUICachedControl unfocus_border_color ("FloaterUnfocusBorderColor", *(new LLColor4)); + static LLUIColor focus_border_color = LLUIColorTable::instance().getColor("FloaterFocusBorderColor"); + static LLUIColor unfocus_border_color = LLUIColorTable::instance().getColor("FloaterUnfocusBorderColor"); LLUI::setLineWidth(1.5f); - LLColor4 outlineColor = gFocusMgr.childHasKeyboardFocus(this) ? focus_border_color() : unfocus_border_color; + LLColor4 outlineColor = gFocusMgr.childHasKeyboardFocus(this) ? focus_border_color : unfocus_border_color; gl_rect_2d_offset_local(0, getRect().getHeight() + 1, getRect().getWidth() + 1, 0, outlineColor, -LLPANEL_BORDER_WIDTH, FALSE); LLUI::setLineWidth(1.f); } @@ -1699,7 +1699,6 @@ void LLFloater::buildButtons() p.tab_stop(false); p.follows.flags(FOLLOWS_TOP|FOLLOWS_RIGHT); p.tool_tip(sButtonToolTips[i]); - p.image_color(LLUI::getCachedColorFunctor("FloaterButtonImageColor")); p.scale_image(true); LLButton* buttonp = LLUICtrlFactory::create(p); diff --git a/indra/llui/llflyoutbutton.cpp b/indra/llui/llflyoutbutton.cpp index 8846f2a8c4..a99c3a4fe6 100644 --- a/indra/llui/llflyoutbutton.cpp +++ b/indra/llui/llflyoutbutton.cpp @@ -54,11 +54,6 @@ LLFlyoutButton::LLFlyoutButton(const Params& p) mActionButton = LLUICtrlFactory::create(bp); addChild(mActionButton); - - mButton->setOrigin(getRect().getWidth() - FLYOUT_BUTTON_ARROW_WIDTH, 0); - mButton->reshape(FLYOUT_BUTTON_ARROW_WIDTH, getRect().getHeight()); - mButton->setFollows(FOLLOWS_RIGHT | FOLLOWS_TOP | FOLLOWS_BOTTOM); - mButton->setImageOverlay(mListPosition == BELOW ? "down_arrow.tga" : "up_arrow.tga", LLFontGL::RIGHT); } void LLFlyoutButton::onActionButtonClick(const LLSD& data) @@ -75,7 +70,7 @@ void LLFlyoutButton::draw() //FIXME: this should be an attribute of comboboxes, whether they have a distinct label or // the label reflects the last selected item, for now we have to manually remove the label - mButton->setLabel(LLStringUtil::null); + setLabel(LLStringUtil::null); LLComboBox::draw(); } diff --git a/indra/llui/llflyoutbutton.h b/indra/llui/llflyoutbutton.h index f60fe1eb35..1f1716593a 100644 --- a/indra/llui/llflyoutbutton.h +++ b/indra/llui/llflyoutbutton.h @@ -46,10 +46,14 @@ public: struct Params : public LLInitParam::Block { Optional action_button; + Deprecated allow_text_entry; Params() - : action_button("action_button") - {} + : action_button("action_button"), + allow_text_entry("allow_text_entry") + { + LLComboBox::Params::allow_text_entry = false; + } }; protected: diff --git a/indra/llui/llfocusmgr.cpp b/indra/llui/llfocusmgr.cpp index 9a4ec7627e..a66f147dcc 100644 --- a/indra/llui/llfocusmgr.cpp +++ b/indra/llui/llfocusmgr.cpp @@ -323,7 +323,7 @@ F32 LLFocusMgr::getFocusFlashAmt() const LLColor4 LLFocusMgr::getFocusColor() const { - static LLUICachedControl focus_color_cached ("FocusColor", *(new LLColor4)); + static LLUIColor focus_color_cached = LLUIColorTable::instance().getColor("FocusColor"); LLColor4 focus_color = lerp(focus_color_cached, LLColor4::white, getFocusFlashAmt()); // de-emphasize keyboard focus when app has lost focus (to avoid typing into wrong window problem) if (!mAppHasFocus) diff --git a/indra/llui/lllineeditor.cpp b/indra/llui/lllineeditor.cpp index 5ea45e13cf..925f22d94e 100644 --- a/indra/llui/lllineeditor.cpp +++ b/indra/llui/lllineeditor.cpp @@ -184,6 +184,11 @@ LLLineEditor::LLLineEditor(const LLLineEditor::Params& p) mBorder = LLUICtrlFactory::create(border_p); addChild( mBorder ); + if(p.background_image.isProvided()) + { + mImage = p.background_image; + } + // clamp text padding to current editor size updateTextPadding(); setCursor(mText.length()); @@ -1525,12 +1530,12 @@ void LLLineEditor::draw() LLColor4 bg_color = mReadOnlyBgColor.get(); -#if 0 // for when we're ready for image art. +#if 1 // for when we're ready for image art. if( hasFocus()) { mImage->drawBorder(0, 0, getRect().getWidth(), getRect().getHeight(), gFocusMgr.getFocusColor(), gFocusMgr.getFocusFlashWidth()); } - mImage->draw(getLocalRect(), mReadOnly ? mReadOnlyBgColor : mWriteableBgColor ); + mImage->draw(getLocalRect()); #else // the old programmer art. // drawing solids requires texturing be disabled { @@ -1691,7 +1696,7 @@ void LLLineEditor::draw() mMaxHPixels - llround(rendered_pixels_right), &rendered_pixels_right); } -#if 0 // for when we're ready for image art. +#if 1 // for when we're ready for image art. mBorder->setVisible(FALSE); // no more programmatic art. #endif diff --git a/indra/llui/llmenugl.cpp b/indra/llui/llmenugl.cpp index 95221d5fc6..e79afe76d8 100644 --- a/indra/llui/llmenugl.cpp +++ b/indra/llui/llmenugl.cpp @@ -2333,10 +2333,10 @@ BOOL LLMenuGL::appendMenu( LLMenuGL* menu ) p.label = menu->getLabel(); p.branch = menu; p.jump_key = menu->getJumpKey(); - p.enabled_color=LLUI::getCachedColorFunctor("MenuItemEnabledColor"); - p.disabled_color=LLUI::getCachedColorFunctor("MenuItemDisabledColor"); - p.highlight_bg_color=LLUI::getCachedColorFunctor("MenuItemHighlightBgColor"); - p.highlight_fg_color=LLUI::getCachedColorFunctor("MenuItemHighlightFgColor"); + p.enabled_color=LLUIColorTable::instance().getColor("MenuItemEnabledColor"); + p.disabled_color=LLUIColorTable::instance().getColor("MenuItemDisabledColor"); + p.highlight_bg_color=LLUIColorTable::instance().getColor("MenuItemHighlightBgColor"); + p.highlight_fg_color=LLUIColorTable::instance().getColor("MenuItemHighlightFgColor"); LLMenuItemBranchGL* branch = LLUICtrlFactory::create(p); success &= append( branch ); @@ -2743,7 +2743,7 @@ void LLMenuGL::draw( void ) if (mDropShadowed && !mTornOff) { static LLUICachedControl drop_shadow_floater ("DropShadowFloater", 0); - static LLUICachedControl color_drop_shadow ("ColorDropShadow", *(new LLColor4)); + static LLUIColor color_drop_shadow = LLUIColorTable::instance().getColor("ColorDropShadow"); gl_drop_shadow(0, getRect().getHeight(), getRect().getWidth(), 0, color_drop_shadow, drop_shadow_floater ); } @@ -3117,10 +3117,10 @@ BOOL LLMenuBarGL::appendMenu( LLMenuGL* menu ) p.label = menu->getLabel(); p.visible = menu->getVisible(); p.branch = menu; - p.enabled_color=LLUI::getCachedColorFunctor("MenuItemEnabledColor"); - p.disabled_color=LLUI::getCachedColorFunctor("MenuItemDisabledColor"); - p.highlight_bg_color=LLUI::getCachedColorFunctor("MenuItemHighlightBgColor"); - p.highlight_fg_color=LLUI::getCachedColorFunctor("MenuItemHighlightFgColor"); + p.enabled_color=LLUIColorTable::instance().getColor("MenuItemEnabledColor"); + p.disabled_color=LLUIColorTable::instance().getColor("MenuItemDisabledColor"); + p.highlight_bg_color=LLUIColorTable::instance().getColor("MenuItemHighlightBgColor"); + p.highlight_fg_color=LLUIColorTable::instance().getColor("MenuItemHighlightFgColor"); LLMenuItemBranchDownGL* branch = LLUICtrlFactory::create(p); success &= branch->addToAcceleratorList(&mAccelerators); @@ -3804,10 +3804,10 @@ BOOL LLContextMenu::appendContextSubMenu(LLContextMenu *menu) p.name = menu->getName(); p.label = menu->getLabel(); p.branch = menu; - p.enabled_color=LLUI::getCachedColorFunctor("MenuItemEnabledColor"); - p.disabled_color=LLUI::getCachedColorFunctor("MenuItemDisabledColor"); - p.highlight_bg_color=LLUI::getCachedColorFunctor("MenuItemHighlightBgColor"); - p.highlight_fg_color=LLUI::getCachedColorFunctor("MenuItemHighlightFgColor"); + p.enabled_color=LLUIColorTable::instance().getColor("MenuItemEnabledColor"); + p.disabled_color=LLUIColorTable::instance().getColor("MenuItemDisabledColor"); + p.highlight_bg_color=LLUIColorTable::instance().getColor("MenuItemHighlightBgColor"); + p.highlight_fg_color=LLUIColorTable::instance().getColor("MenuItemHighlightFgColor"); item = LLUICtrlFactory::create(p); LLMenuGL::sMenuContainer->addChild(item->getBranch()); diff --git a/indra/llui/llmenugl.h b/indra/llui/llmenugl.h index 526e1c2583..ad257f46c2 100644 --- a/indra/llui/llmenugl.h +++ b/indra/llui/llmenugl.h @@ -379,7 +379,7 @@ public: drop_shadow("drop_shadow", true), bg_visible("bg_visible", true), create_jump_keys("create_jump_keys", false), - bg_color("bg_color", LLUI::getCachedColorFunctor( "MenuDefaultBgColor" )), + bg_color("bg_color", LLUIColorTable::instance().getColor( "MenuDefaultBgColor" )), scrollable("scrollable", false) { addSynonym(bg_visible, "opaque"); diff --git a/indra/llui/llmodaldialog.cpp b/indra/llui/llmodaldialog.cpp index 8779eee28d..7557b87b94 100644 --- a/indra/llui/llmodaldialog.cpp +++ b/indra/llui/llmodaldialog.cpp @@ -244,7 +244,7 @@ void LLModalDialog::onClose(bool app_quitting) // virtual void LLModalDialog::draw() { - static LLUICachedControl shadow_color ("ColorDropShadow", *(new LLColor4)); + static LLUIColor shadow_color = LLUIColorTable::instance().getColor("ColorDropShadow"); static LLUICachedControl shadow_lines ("DropShadowFloater", 0); gl_drop_shadow( 0, getRect().getHeight(), getRect().getWidth(), 0, diff --git a/indra/llui/llpanel.cpp b/indra/llui/llpanel.cpp index 3a76e72868..6a6e15867b 100644 --- a/indra/llui/llpanel.cpp +++ b/indra/llui/llpanel.cpp @@ -428,14 +428,10 @@ void LLPanel::initFromParams(const LLPanel::Params& p) mUIStrings[it->name] = it->text; } - setName(p.name()); setLabel(p.label()); - setShape(p.rect); parseFollowsFlags(p); - setEnabled(p.enabled); - setVisible(p.visible); setToolTip(p.tool_tip()); setSaveToXML(p.serializable); diff --git a/indra/llui/llresizehandle.cpp b/indra/llui/llresizehandle.cpp index 943e2f55f1..90f51b9919 100644 --- a/indra/llui/llresizehandle.cpp +++ b/indra/llui/llresizehandle.cpp @@ -63,7 +63,7 @@ LLResizeHandle::LLResizeHandle(const LLResizeHandle::Params& p) { if( RIGHT_BOTTOM == mCorner) { - mImage = LLUI::getUIImage("resize_handle_bottom_right_blue.tga"); + mImage = LLUI::getUIImage("Resize_Corner"); } switch( p.corner ) { diff --git a/indra/llui/llspinctrl.cpp b/indra/llui/llspinctrl.cpp index 72329a4b32..943891c572 100644 --- a/indra/llui/llspinctrl.cpp +++ b/indra/llui/llspinctrl.cpp @@ -111,8 +111,8 @@ LLSpinCtrl::LLSpinCtrl(const LLSpinCtrl::Params& p) .right(btn_right) .height(spinctrl_btn_height); up_button_params.follows.flags(FOLLOWS_LEFT|FOLLOWS_BOTTOM); - up_button_params.image_unselected.name("spin_up_out_blue.tga"); - up_button_params.image_selected.name("spin_up_in_blue.tga"); + up_button_params.image_unselected.name("ScrollArrow_Up"); + up_button_params.image_selected.name("ScrollArrow_Up"); up_button_params.click_callback.function(boost::bind(&LLSpinCtrl::onUpBtn, this, _2)); up_button_params.mouse_held_callback.function(boost::bind(&LLSpinCtrl::onUpBtn, this, _2)); up_button_params.tab_stop(false); @@ -130,8 +130,8 @@ LLSpinCtrl::LLSpinCtrl(const LLSpinCtrl::Params& p) .bottom(bottom) .height(spinctrl_btn_height); down_button_params.follows.flags(FOLLOWS_LEFT|FOLLOWS_BOTTOM); - down_button_params.image_unselected.name("spin_down_out_blue.tga"); - down_button_params.image_selected.name("spin_down_in_blue.tga"); + down_button_params.image_unselected.name("ScrollArrow_Down"); + down_button_params.image_selected.name("ScrollArrow_Down"); down_button_params.click_callback.function(boost::bind(&LLSpinCtrl::onDownBtn, this, _2)); down_button_params.mouse_held_callback.function(boost::bind(&LLSpinCtrl::onDownBtn, this, _2)); down_button_params.tab_stop(false); diff --git a/indra/llui/llstatgraph.cpp b/indra/llui/llstatgraph.cpp index 3bd2c9f9e7..55d6b3159f 100644 --- a/indra/llui/llstatgraph.cpp +++ b/indra/llui/llstatgraph.cpp @@ -107,10 +107,10 @@ void LLStatGraph::draw() } //gl_drop_shadow(0, getRect().getHeight(), getRect().getWidth(), 0, - // gSavedSkinSettings.getColor("ColorDropShadow"), + // LLUIColorTable::instance().getColor("ColorDropShadow"), // (S32) gSavedSettings.getF32("DropShadowFloater") ); - color = LLUI::sSettingGroups["color"]->getColor( "MenuDefaultBgColor" ); + color = LLUIColorTable::instance().getColor( "MenuDefaultBgColor" ); gGL.color4fv(color.mV); gl_rect_2d(0, getRect().getHeight(), getRect().getWidth(), 0, TRUE); diff --git a/indra/llui/llstyle.h b/indra/llui/llstyle.h index 890abc7d67..1a94fcf2c6 100644 --- a/indra/llui/llstyle.h +++ b/indra/llui/llstyle.h @@ -106,7 +106,7 @@ protected: private: BOOL mVisible; - LLColor4 mColor; + LLUIColor mColor; std::string mFontName; LLFontGL* mFont; // cached for performance std::string mLink; diff --git a/indra/llui/lltextbox.cpp b/indra/llui/lltextbox.cpp index 464e4be809..b812e876ef 100644 --- a/indra/llui/lltextbox.cpp +++ b/indra/llui/lltextbox.cpp @@ -314,7 +314,7 @@ void LLTextBox::draw() if( mBorderDropShadowVisible ) { - static LLUICachedControl color_drop_shadow ("ColorDropShadow", *(new LLColor4)); + static LLUIColor color_drop_shadow = LLUIColorTable::instance().getColor("ColorDropShadow"); static LLUICachedControl drop_shadow_tooltip ("DropShadowTooltip", 0); gl_drop_shadow(0, getRect().getHeight(), getRect().getWidth(), 0, color_drop_shadow, drop_shadow_tooltip); diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp index 34bced064e..6649264d9a 100644 --- a/indra/llui/lltexteditor.cpp +++ b/indra/llui/lltexteditor.cpp @@ -75,7 +75,7 @@ const S32 CURSOR_THICKNESS = 2; const S32 SPACES_PER_TAB = 4; -LLColor4 LLTextEditor::mLinkColor = LLColor4::blue; +LLUIColor LLTextEditor::mLinkColor = LLColor4::blue; void (* LLTextEditor::mURLcallback)(const std::string&) = NULL; bool (* LLTextEditor::mSecondlifeURLcallback)(const std::string&) = NULL; bool (* LLTextEditor::mSecondlifeURLcallbackRightClick)(const std::string&) = NULL; @@ -3083,8 +3083,8 @@ void LLTextEditor::drawClippedSegment(const LLWString &text, S32 seg_start, S32 if (style->getIsEmbeddedItem()) { - static LLUICachedControl text_embedded_item_readonly_color ("TextEmbeddedItemReadOnlyColor", *(new LLColor4)); - static LLUICachedControl text_embedded_item_color ("TextEmbeddedItemColor", *(new LLColor4)); + static LLUIColor text_embedded_item_readonly_color = LLUIColorTable::instance().getColor("TextEmbeddedItemReadOnlyColor"); + static LLUIColor text_embedded_item_color = LLUIColorTable::instance().getColor("TextEmbeddedItemColor"); if (mReadOnly) { color = text_embedded_item_readonly_color; diff --git a/indra/llui/lltexteditor.h b/indra/llui/lltexteditor.h index f64353555e..d0769c2a8f 100644 --- a/indra/llui/lltexteditor.h +++ b/indra/llui/lltexteditor.h @@ -512,7 +512,7 @@ private: // Data // LLKeywords mKeywords; - static LLColor4 mLinkColor; + static LLUIColor mLinkColor; static void (*mURLcallback) (const std::string& url); static bool (*mSecondlifeURLcallback) (const std::string& url); static bool (*mSecondlifeURLcallbackRightClick) (const std::string& url); diff --git a/indra/llui/llui.cpp b/indra/llui/llui.cpp index 1d3e5d7a15..12875b4ed1 100644 --- a/indra/llui/llui.cpp +++ b/indra/llui/llui.cpp @@ -1579,7 +1579,6 @@ void LLUI::initClass(const settings_map_t& settings, sSettingGroups = settings; if ((get_ptr_in_map(sSettingGroups, std::string("config")) == NULL) || - (get_ptr_in_map(sSettingGroups, std::string("color")) == NULL) || (get_ptr_in_map(sSettingGroups, std::string("floater")) == NULL) || (get_ptr_in_map(sSettingGroups, std::string("ignores")) == NULL)) { @@ -1590,7 +1589,7 @@ void LLUI::initClass(const settings_map_t& settings, sAudioCallback = audio_callback; sGLScaleFactor = (scale_factor == NULL) ? LLVector2(1.f, 1.f) : *scale_factor; sWindow = NULL; // set later in startup - LLFontGL::sShadowColor = LLUI::sSettingGroups["color"]->getColor("ColorDropShadow"); + LLFontGL::sShadowColor = LLUIColorTable::instance().getColor("ColorDropShadow"); static LLUICachedControl show_xui_names ("ShowXUINames", false); LLUI::sShowXUINames = show_xui_names; @@ -1855,13 +1854,6 @@ void LLUI::setHtmlHelp(LLHtmlHelp* html_help) LLUI::sHtmlHelp = html_help; } -// static -boost::function LLUI::getCachedColorFunctor(const std::string& color_name) -{ - return LLCachedControl(*sSettingGroups["color"], color_name, LLColor4::magenta); -} - -// static LLControlGroup& LLUI::getControlControlGroup (const std::string& controlname) { for (settings_map_t::iterator itor = sSettingGroups.begin(); diff --git a/indra/llui/llui.h b/indra/llui/llui.h index dbd295d4e8..c0873247c0 100644 --- a/indra/llui/llui.h +++ b/indra/llui/llui.h @@ -45,6 +45,8 @@ #include "lluiimage.h" // *TODO: break this dependency, need to add #include "lluiimage.h" to all widgets that hold an Optional in their paramblocks #include "llinitparam.h" #include "llregistry.h" +#include "lluicolor.h" +#include "lluicolortable.h" #include #include "lllazyvalue.h" @@ -202,7 +204,6 @@ public: static void screenRectToGL(const LLRect& screen, LLRect *gl); static void glRectToScreen(const LLRect& gl, LLRect *screen); static void setHtmlHelp(LLHtmlHelp* html_help); - static boost::function getCachedColorFunctor(const std::string& color_name); // Returns the control group containing the control name, or the default group static LLControlGroup& getControlControlGroup (const std::string& controlname); @@ -690,8 +691,6 @@ public: {} }; -typedef LLLazyValue LLUIColor; - namespace LLInitParam { template<> @@ -767,11 +766,4 @@ namespace LLInitParam }; } -namespace LLInitParam -{ - template<> - bool ParamCompare >::equals( - const LLLazyValue &a, const LLLazyValue &b); -} - #endif diff --git a/indra/llui/lluicolortable.cpp b/indra/llui/lluicolortable.cpp index 27ba6cc8b4..0320e998d0 100644 --- a/indra/llui/lluicolortable.cpp +++ b/indra/llui/lluicolortable.cpp @@ -11,7 +11,10 @@ #include +#include "lldir.h" +#include "llui.h" #include "lluicolortable.h" +#include "lluictrlfactory.h" LLUIColorTable::ColorParams::ColorParams() : value("value"), @@ -26,17 +29,16 @@ LLUIColorTable::ColorEntryParams::ColorEntryParams() } LLUIColorTable::Params::Params() -: color_entries("color_entries") +: color_entries("color") { } -void LLUIColorTable::init(const Params& p) +void LLUIColorTable::insertFromParams(const Params& p) { // this map will contain all color references after the following loop typedef std::map string_string_map_t; string_string_map_t unresolved_refs; - mColors.clear(); for(LLInitParam::ParamIterator::const_iterator it = p.color_entries().begin(); it != p.color_entries().end(); ++it) @@ -44,7 +46,7 @@ void LLUIColorTable::init(const Params& p) ColorEntryParams color_entry = *it; if(color_entry.color.value.isChosen()) { - mColors.insert(string_color_map_t::value_type(color_entry.name, color_entry.color.value)); + setColor(color_entry.name, color_entry.color.value, mLoadedColors); } else { @@ -66,19 +68,21 @@ void LLUIColorTable::init(const Params& p) // we haven't visited any references yet visited_refs.clear(); - string_string_map_t::iterator it = unresolved_refs.begin(); + string_string_map_t::iterator current = unresolved_refs.begin(); + string_string_map_t::iterator previous; + while(true) { - if(it != unresolved_refs.end()) + if(current != unresolved_refs.end()) { // locate the current reference in the previously visited references... - string_color_ref_iter_map_t::iterator visited = visited_refs.lower_bound(it->first); + string_color_ref_iter_map_t::iterator visited = visited_refs.lower_bound(current->first); if(visited != visited_refs.end() - && !(visited_refs.key_comp()(it->first, visited->first))) + && !(visited_refs.key_comp()(current->first, visited->first))) { // ...if we find the current reference in the previously visited references // we know that there is a cycle - std::string ending_ref = it->first; + std::string ending_ref = current->first; std::string warning("The following colors form a cycle: "); // warn about the references in the chain and remove them from @@ -102,17 +106,17 @@ void LLUIColorTable::init(const Params& p) else { // ...continue along the reference chain - ref_chain.push(it->first); - visited_refs.insert(visited, string_color_ref_iter_map_t::value_type(it->first, it)); + ref_chain.push(current->first); + visited_refs.insert(visited, string_color_ref_iter_map_t::value_type(current->first, current)); } } else { // since this reference does not refer to another reference it must refer to an // actual color, lets find it... - string_color_map_t::iterator color_value = mColors.find(it->second); + string_color_map_t::iterator color_value = mLoadedColors.find(previous->second); - if(color_value != mColors.end()) + if(color_value != mLoadedColors.end()) { // ...we found the color, and we now add every reference in the reference chain // to the color map @@ -120,7 +124,7 @@ void LLUIColorTable::init(const Params& p) iter != visited_refs.end(); ++iter) { - mColors.insert(string_color_map_t::value_type(iter->first, color_value->second)); + setColor(iter->first, color_value->second, mLoadedColors); unresolved_refs.erase(iter->second); } @@ -143,13 +147,142 @@ void LLUIColorTable::init(const Params& p) } // find the next color reference in the reference chain - it = unresolved_refs.find(it->second); + previous = current; + current = unresolved_refs.find(current->second); } } } -const LLColor4& LLUIColorTable::getColor(const std::string& name) const +void LLUIColorTable::clear() { - string_color_map_t::const_iterator iter = mColors.find(name); - return (iter != mColors.end() ? iter->second : LLColor4::magenta); + clearTable(mLoadedColors); + clearTable(mUserSetColors); +} + +LLUIColor LLUIColorTable::getColor(const std::string& name, const LLColor4& default_color) const +{ + string_color_map_t::const_iterator iter = mUserSetColors.find(name); + if(iter != mUserSetColors.end()) + { + return LLUIColor(&iter->second); + } + + iter = mLoadedColors.find(name); + return (iter != mLoadedColors.end() ? LLUIColor(&iter->second) : LLUIColor(default_color)); +} + +// update user color, loaded colors are parsed on initialization +void LLUIColorTable::setColor(const std::string& name, const LLColor4& color) +{ + setColor(name, color, mUserSetColors); +} + +bool LLUIColorTable::loadFromSettings() +{ + bool result = false; + + std::string default_filename = gDirUtilp->getExpandedFilename(LL_PATH_DEFAULT_SKIN, "colors_def.xml"); + result |= loadFromFilename(default_filename); + + std::string current_filename = gDirUtilp->getExpandedFilename(LL_PATH_TOP_SKIN, "colors_def.xml"); + if(current_filename != default_filename) + { + result |= loadFromFilename(current_filename); + } + + std::string user_filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SKIN, "colors_def.xml"); + loadFromFilename(user_filename); + + return result; +} + +void LLUIColorTable::saveUserSettings() const +{ + Params params; + + for(string_color_map_t::const_iterator it = mUserSetColors.begin(); + it != mUserSetColors.end(); + ++it) + { + ColorEntryParams color_entry; + color_entry.name = it->first; + color_entry.color.value = it->second; + + params.color_entries.add(color_entry); + } + + LLXMLNodePtr output_node = new LLXMLNode("colors", false); + LLXUIParser::instance().writeXUI(output_node, params); + + if(!output_node->isNull()) + { + const std::string& filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SKIN, "colors_def.xml"); + LLFILE *fp = LLFile::fopen(filename, "w"); + + if(fp != NULL) + { + LLXMLNode::writeHeaderToFile(fp); + output_node->writeToFile(fp); + + fclose(fp); + } + } +} + +bool LLUIColorTable::colorExists(const std::string& color_name) const +{ + return ((mLoadedColors.find(color_name) != mLoadedColors.end()) + || (mUserSetColors.find(color_name) != mUserSetColors.end())); +} + +void LLUIColorTable::clearTable(string_color_map_t& table) +{ + for(string_color_map_t::iterator it = table.begin(); + it != table.end(); + ++it) + { + it->second = LLColor4::magenta; + } +} + +// this method inserts a color into the table if it does not exist +// if the color already exists it changes the color +void LLUIColorTable::setColor(const std::string& name, const LLColor4& color, string_color_map_t& table) +{ + string_color_map_t::iterator it = table.lower_bound(name); + if(it != table.end() + && !(table.key_comp()(name, it->first))) + { + it->second = color; + } + else + { + table.insert(it, string_color_map_t::value_type(name, color)); + } +} + +bool LLUIColorTable::loadFromFilename(const std::string& filename) +{ + LLXMLNodePtr root; + + if(!LLXMLNode::parseFile(filename, root, NULL)) + { + llwarns << "Unable to parse color file " << filename << llendl; + return false; + } + + Params params; + LLXUIParser::instance().readXUI(root, params); + + if(params.validateBlock()) + { + insertFromParams(params); + } + else + { + llwarns << filename << " failed to load" << llendl; + return false; + } + + return true; } diff --git a/indra/llui/lluicolortable.h b/indra/llui/lluicolortable.h index dcbb1ee5cb..f102a573b8 100644 --- a/indra/llui/lluicolortable.h +++ b/indra/llui/lluicolortable.h @@ -17,8 +17,11 @@ #include "v4color.h" +class LLUIColor; + class LLUIColorTable : public LLSingleton { +LOG_CLASS(LLUIColorTable); public: struct ColorParams : LLInitParam::Choice { @@ -44,15 +47,37 @@ public: }; // define colors by passing in a param block that can be generated via XUI file or manually - void init(const Params& p); + void insertFromParams(const Params& p); + + // reset all colors to default magenta color + void clear(); // color lookup - const LLColor4& getColor(const std::string& name) const; + LLUIColor getColor(const std::string& name, const LLColor4& default_color = LLColor4::magenta) const; + + // if the color is in the table, it's value is changed, otherwise it is added + void setColor(const std::string& name, const LLColor4& color); + + // returns true if color_name exists in the table + bool colorExists(const std::string& color_name) const; + + // loads colors from settings files + bool loadFromSettings(); + + // saves colors specified by the user to the users skin directory + void saveUserSettings() const; private: - // consider using sorted vector + bool loadFromFilename(const std::string& filename); + + // consider using sorted vector, can be much faster typedef std::map string_color_map_t; - string_color_map_t mColors; + + void clearTable(string_color_map_t& table); + void setColor(const std::string& name, const LLColor4& color, string_color_map_t& table); + + string_color_map_t mLoadedColors; + string_color_map_t mUserSetColors; }; #endif // LL_LLUICOLORTABLE_H diff --git a/indra/llui/lluictrl.cpp b/indra/llui/lluictrl.cpp index 0fbcf24c49..395bed7959 100644 --- a/indra/llui/lluictrl.cpp +++ b/indra/llui/lluictrl.cpp @@ -918,12 +918,4 @@ namespace LLInitParam { return false; } - - template<> - bool ParamCompare >::equals( - const LLLazyValue &a, - const LLLazyValue &b) - { - return a.get() == b.get(); - } } diff --git a/indra/llui/lluictrlfactory.cpp b/indra/llui/lluictrlfactory.cpp index 24e4ad18e6..24caf51159 100644 --- a/indra/llui/lluictrlfactory.cpp +++ b/indra/llui/lluictrlfactory.cpp @@ -398,11 +398,11 @@ BOOL LLUICtrlFactory::getAttributeColor(LLXMLNodePtr node, const std::string& na { std::string colorstring; BOOL res = node->getAttributeString(name.c_str(), colorstring); - if (res && LLUI::sSettingGroups["color"]) + if (res) { - if (LLUI::sSettingGroups["color"]->controlExists(colorstring)) + if (LLUIColorTable::instance().colorExists(colorstring)) { - color.setVec(LLUI::sSettingGroups["color"]->getColor(colorstring)); + color.setVec(LLUIColorTable::instance().getColor(colorstring)); } else { @@ -1010,7 +1010,7 @@ bool LLXUIParser::writeUIColorValue(const void* val_ptr, const name_stack_t& sta LLUIColor color = *((LLUIColor*)val_ptr); //RN: don't write out the color that is represented by a function // rely on param block exporting to get the reference to the color settings - if (color.isUsingFunction()) return false; + if (color.isReference()) return false; node->setFloatValue(4, color.get().mV); return true; } diff --git a/indra/llui/lluictrlfactory.h b/indra/llui/lluictrlfactory.h index b9c61b1fed..f8d584bc75 100644 --- a/indra/llui/lluictrlfactory.h +++ b/indra/llui/lluictrlfactory.h @@ -305,7 +305,7 @@ fail: static T* getDefaultWidget(const std::string& name) { dummy_widget_creator_func_t* dummy_func = LLDummyWidgetRegistry::instance().getValue(&typeid(T)); - return dynamic_cast((*dummy_func)(name)); + return dummy_func ? dynamic_cast((*dummy_func)(name)) : NULL; } template diff --git a/indra/llui/lluiimage.cpp b/indra/llui/lluiimage.cpp index 8e0de0cb0c..84bc2d1bab 100644 --- a/indra/llui/lluiimage.cpp +++ b/indra/llui/lluiimage.cpp @@ -74,7 +74,7 @@ void LLUIImage::setScaleRegion(const LLRectf& region) //TODO: move drawing implementation inside class void LLUIImage::draw(S32 x, S32 y, const LLColor4& color) const { - gl_draw_image(x, y, mImage, color, mClipRegion); + gl_draw_scaled_image(x, y, getWidth(), getHeight(), mImage, color, mClipRegion); } void LLUIImage::draw(S32 x, S32 y, S32 width, S32 height, const LLColor4& color) const diff --git a/indra/llui/lluiimage.h b/indra/llui/lluiimage.h index e35026cd3d..e3b473b5f6 100644 --- a/indra/llui/lluiimage.h +++ b/indra/llui/lluiimage.h @@ -60,11 +60,11 @@ public: void drawSolid(S32 x, S32 y, S32 width, S32 height, const LLColor4& color) const; void drawSolid(const LLRect& rect, const LLColor4& color) const { drawSolid(rect.mLeft, rect.mBottom, rect.getWidth(), rect.getHeight(), color); } - void drawSolid(S32 x, S32 y, const LLColor4& color) const { drawSolid(x, y, mImage->getWidth(0), mImage->getHeight(0), color); } + void drawSolid(S32 x, S32 y, const LLColor4& color) const { drawSolid(x, y, getWidth(), getHeight(), color); } void drawBorder(S32 x, S32 y, S32 width, S32 height, const LLColor4& color, S32 border_width) const; void drawBorder(const LLRect& rect, const LLColor4& color, S32 border_width) const { drawBorder(rect.mLeft, rect.mBottom, rect.getWidth(), rect.getHeight(), color, border_width); } - void drawBorder(S32 x, S32 y, const LLColor4& color, S32 border_width) const { drawBorder(x, y, mImage->getWidth(0), mImage->getHeight(0), color, border_width); } + void drawBorder(S32 x, S32 y, const LLColor4& color, S32 border_width) const { drawBorder(x, y, getWidth(), getHeight(), color, border_width); } const std::string& getName() const { return mName; } diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp index d225ad2767..29d0f6a168 100644 --- a/indra/llui/llview.cpp +++ b/indra/llui/llview.cpp @@ -1325,13 +1325,6 @@ void LLView::draw() LLRect rootRect = getRootView()->getRect(); LLRect screenRect; - // draw focused control on top of everything else - LLView* focus_view = gFocusMgr.getKeyboardFocus(); - if (focus_view && focus_view->getParent() != this) - { - focus_view = NULL; - } - ++sDepth; for (child_list_reverse_iter_t child_iter = mChildList.rbegin(); child_iter != mChildList.rend();) // ++child_iter) @@ -1339,7 +1332,7 @@ void LLView::draw() child_list_reverse_iter_t child = child_iter++; LLView *viewp = *child; - if (viewp->getVisible() && viewp != focus_view && viewp->getRect().isValid()) + if (viewp->getVisible() && viewp->getRect().isValid()) { // Only draw views that are within the root view localRectToScreen(viewp->getRect(),&screenRect); @@ -1357,11 +1350,6 @@ void LLView::draw() } --sDepth; - - if (focus_view && focus_view->getVisible()) - { - drawChild(focus_view); - } } gGL.getTexUnit(0)->disable(); @@ -1398,7 +1386,7 @@ void LLView::drawDebugRect() } else { - static LLUICachedControl scroll_highlighted_color ("ScrollHighlightedColor", *(new LLColor4)); + static LLUIColor scroll_highlighted_color = LLUIColorTable::instance().getColor("ScrollHighlightedColor"); border_color = scroll_highlighted_color; } } diff --git a/indra/llvfs/lldir_mac.cpp b/indra/llvfs/lldir_mac.cpp index 04577bfc3b..f53c62580f 100644 --- a/indra/llvfs/lldir_mac.cpp +++ b/indra/llvfs/lldir_mac.cpp @@ -142,8 +142,25 @@ LLDir_Mac::LLDir_Mac() CFURLRefToLLString(executableParentURLRef, mExecutableDir, true); // mAppRODataDir - CFURLRef resourcesURLRef = CFBundleCopyResourcesDirectoryURL(mainBundleRef); - CFURLRefToLLString(resourcesURLRef, mAppRODataDir, true); + // *NOTE: When running in a dev tree, use the copy of app_settings and + // skins in indra/newview/ rather than in the application bundle. This + // mirrors Windows dev environment behavior and allows direct checkin + // of edited skins/xui files. JC + U32 indra_pos = mExecutableDir.find("/indra"); + if (indra_pos != std::string::npos) + { + // ...we're in a dev checkout + mAppRODataDir = mExecutableDir.substr(0, indra_pos) + + "/indra/newview"; + llinfos << "Running in dev checkout with mAppRODataDir " + << mAppRODataDir << llendl; + } + else + { + // ...normal installation running + CFURLRef resourcesURLRef = CFBundleCopyResourcesDirectoryURL(mainBundleRef); + CFURLRefToLLString(resourcesURLRef, mAppRODataDir, true); + } // mOSUserDir error = FSFindFolder(kUserDomain, kApplicationSupportFolderType, true, &fileRef); diff --git a/indra/llwindow/CMakeLists.txt b/indra/llwindow/CMakeLists.txt index b80080e458..beaf5c3488 100644 --- a/indra/llwindow/CMakeLists.txt +++ b/indra/llwindow/CMakeLists.txt @@ -64,7 +64,7 @@ if (NOT LINUX OR VIEWER) ${UI_LIBRARIES} # for GTK ${SDL_LIBRARY} ) -endif (VIEWER) +endif (NOT LINUX OR VIEWER) if (DARWIN) list(APPEND llwindow_SOURCE_FILES @@ -96,7 +96,7 @@ if (LINUX AND VIEWER) llkeyboardsdl.h llwindowsdl.h ) -endif (LINUX) +endif (LINUX AND VIEWER) if (WINDOWS) list(APPEND llwindow_SOURCE_FILES diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index afa7f707f1..567fda0034 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -3329,17 +3329,6 @@ Value 0 - NotFullScreen - - Comment - Run SL in non fullscreen mode - Persist - 1 - Type - Boolean - Value - 1 - FullScreenAspectRatio Comment @@ -5460,17 +5449,6 @@ Value 1 - RenderCustomSettings - - Comment - Do you want to set the graphics settings yourself - Persist - 1 - Type - Boolean - Value - 0 - RenderDebugAlphaMask Comment @@ -5758,6 +5736,21 @@ Value 2 + RenderGlowLumWeights + + Comment + Weights for each color channel to be used in calculating luminance (should add up to 1.0) + Persist + 1 + Type + Vector3 + Value + + 0.299 + 0.587 + 0.114 + + RenderGlowMaxExtractAlpha Comment @@ -5813,6 +5806,21 @@ Value 0.0 + RenderGlowWarmthWeights + + Comment + Weight of each color channel used before finding the max warmth + Persist + 1 + Type + Vector3 + Value + + 1.0 + 0.5 + 0.7 + + RenderGlowWidth Comment @@ -6589,6 +6597,17 @@ Value 0 + ShowAdvancedGraphicsSettings + + Comment + Show advanced graphics settings + Persist + 1 + Type + Boolean + Value + 0 + ShowAllObjectHoverTip Comment @@ -7230,6 +7249,21 @@ Value 0 + SkyNightColorShift + + Comment + Controls moonlight color (base color applied to moon as light source) + Persist + 1 + Type + Color3 + Value + + 0.67 + 0.67 + 1.0 + + SkyOverrideSimSunPosition Comment @@ -9314,6 +9348,17 @@ Value 1 + WindowFullScreen + + Comment + Run SL in fullscreen mode + Persist + 1 + Type + Boolean + Value + 0 + WindowHeight Comment diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index 8a050539d7..22d54fe627 100644 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -361,7 +361,7 @@ LLAgent::LLAgent() : mAutoPilotFinishedCallback(NULL), mAutoPilotCallbackData(NULL), - mEffectColor(0.f, 1.f, 1.f, 1.f), + mEffectColor(LLColor4(0.f, 1.f, 1.f, 1.f)), mHaveHomePosition(FALSE), mHomeRegionHandle( 0 ), @@ -413,7 +413,7 @@ void LLAgent::init() mCameraZoomFraction = 1.f; mTrackFocusObject = gSavedSettings.getBOOL("TrackFocusObject"); - mEffectColor = gSavedSkinSettings.getColor4("EffectColor"); + mEffectColor = LLUIColorTable::instance().getColor("EffectColor"); gSavedSettings.getControl("PreferredMaturity")->getValidateSignal()->connect(boost::bind(&LLAgent::validateMaturity, this, _2)); gSavedSettings.getControl("PreferredMaturity")->getSignal()->connect(boost::bind(&LLAgent::handleMaturity, this, _2)); diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h index 94f6229838..743784b2ef 100644 --- a/indra/newview/llagent.h +++ b/indra/newview/llagent.h @@ -44,6 +44,7 @@ #include "llcharacter.h" // LLAnimPauseRequest #include "llfollowcam.h" // Ventrella #include "llagentdata.h" // gAgentID, gAgentSessionID +#include "lluicolor.h" #include "llvoavatardefines.h" extern const BOOL ANIMATE; @@ -829,7 +830,7 @@ public: F32 mHUDTargetZoom; // Target zoom level for HUD objects (used when editing) F32 mHUDCurZoom; // Current animated zoom level for HUD objects private: - LLColor4 mEffectColor; + LLUIColor mEffectColor; /** Camera ** ** diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 2c570de697..0253d9e8d5 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -668,7 +668,6 @@ bool LLAppViewer::init() // Widget construction depends on LLUI being initialized LLUI::settings_map_t settings_map; settings_map["config"] = &gSavedSettings; - settings_map["color"] = &gSavedSkinSettings; settings_map["ignores"] = &gWarningSettings; settings_map["floater"] = &gSavedSettings; // *TODO: New settings file settings_map["account"] = &gSavedPerAccountSettings; @@ -1346,8 +1345,8 @@ bool LLAppViewer::cleanup() // save their rects on delete. gSavedSettings.saveToFile(gSavedSettings.getString("ClientSettingsFile"), TRUE); - //*FIX: don't overwrite user color tweaks with *all* colors - gSavedSkinSettings.saveToFile(gSavedSettings.getString("SkinningSettingsFile"), TRUE); + LLUIColorTable::instance().saveUserSettings(); + // PerAccountSettingsFile should be empty if no use has been logged on. // *FIX:Mani This should get really saved in a "logoff" mode. gSavedPerAccountSettings.saveToFile(gSavedSettings.getString("PerAccountSettingsFile"), TRUE); @@ -1361,7 +1360,7 @@ bool LLAppViewer::cleanup() gWarningSettings.saveToFile(warnings_settings_filename, TRUE); gSavedSettings.cleanup(); - gSavedSkinSettings.cleanup(); + LLUIColorTable::instance().clear(); gCrashSettings.cleanup(); // Save URL history file @@ -1701,43 +1700,11 @@ std::string LLAppViewer::getSettingsFilename(const std::string& location_key, void LLAppViewer::loadColorSettings() { - gSavedSkinSettings.cleanup(); - - loadSettingsFromDirectory("DefaultSkin"); - loadSettingsFromDirectory("CurrentSkin", true); - loadSettingsFromDirectory("UserSkin"); - - class ColorConverterFunctor : public LLControlGroup::ApplyFunctor + if(!LLUIColorTable::instance().loadFromSettings()) { - public: - explicit ColorConverterFunctor(LLUIColorTable::Params& result) - :mResult(result) - { - } - - void apply(const std::string& name, LLControlVariable* control) - { - if(control->isType(TYPE_COL4)) - { - LLUIColorTable::ColorParams color; - color.value = (LLColor4)control->getValue(); - - LLUIColorTable::ColorEntryParams color_entry; - color_entry.name = name; - color_entry.color = color; - - mResult.color_entries.add(color_entry); - } - } - - private: - LLUIColorTable::Params& mResult; - }; - - LLUIColorTable::Params params; - ColorConverterFunctor ccf(params); - LLControlGroup::getInstance("Skinning")->applyToAll(&ccf); - LLUIColorTable::instance().init(params); + convert_legacy_color_settings(); + LLUIColorTable::instance().loadFromSettings(); + } } bool LLAppViewer::initConfiguration() @@ -1781,9 +1748,6 @@ bool LLAppViewer::initConfiguration() gSavedSettings.setString("ClientSettingsFile", gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, getSettingsFilename("Default", "Global"))); - gSavedSettings.setString("SkinningSettingsFile", - gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, getSettingsFilename("UserSkin", "Skinning"))); - gSavedSettings.setString("VersionChannelName", LL_CHANNEL); #ifndef LL_RELEASE_FOR_DOWNLOAD @@ -2039,9 +2003,6 @@ bool LLAppViewer::initConfiguration() if(skinfolder && LLStringUtil::null != skinfolder->getValue().asString()) { gDirUtilp->setSkinFolder(skinfolder->getValue().asString()); - - gSavedSettings.setString("SkinningSettingsFile", - gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, getSettingsFilename("UserSkin", "Skinning"))); } mYieldTime = gSavedSettings.getS32("YieldTime"); @@ -2265,10 +2226,10 @@ bool LLAppViewer::initWindow() gSavedSettings.getS32("WindowWidth"), gSavedSettings.getS32("WindowHeight"), FALSE, ignorePixelDepth); - if (!gSavedSettings.getBOOL("NotFullScreen")) + if (gSavedSettings.getBOOL("WindowFullScreen")) { + // request to go full screen... which will be delayed until login gViewerWindow->toggleFullscreen(FALSE); - // request to go full screen... which will be delayed until login } if (gSavedSettings.getBOOL("WindowMaximized")) diff --git a/indra/newview/llbottomtray.cpp b/indra/newview/llbottomtray.cpp index d26da81179..604a77dac0 100644 --- a/indra/newview/llbottomtray.cpp +++ b/indra/newview/llbottomtray.cpp @@ -93,6 +93,11 @@ LLBottomTray::LLBottomTray() } LLIMMgr::getInstance()->addSessionObserver(this); + + //this is to fix a crash that occurs because LLBottomTray is a singleton + //and thus is deleted at the end of the viewers lifetime, but to be cleanly + //destroyed LLBottomTray requires some subsystems that are long gone + LLUI::getRootView()->addChild(this); } LLBottomTray::~LLBottomTray() @@ -495,4 +500,3 @@ LLWString LLBottomTray::stripChannelNumber(const LLWString &mesg, S32* channel) return mesg; } } - diff --git a/indra/newview/llcallingcard.cpp b/indra/newview/llcallingcard.cpp index 1844934e6a..355a90209a 100644 --- a/indra/newview/llcallingcard.cpp +++ b/indra/newview/llcallingcard.cpp @@ -684,7 +684,7 @@ void LLAvatarTracker::processNotify(LLMessageSystem* msg, bool online) { std::string notifyMsg = notification->getMessage(); if (!notifyMsg.empty()) - floater->addHistoryLine(notifyMsg,gSavedSkinSettings.getColor4("SystemChatColor")); + floater->addHistoryLine(notifyMsg,LLUIColorTable::instance().getColor("SystemChatColor")); } } diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp index 811ce39228..a97e56d60b 100644 --- a/indra/newview/llchiclet.cpp +++ b/indra/newview/llchiclet.cpp @@ -729,13 +729,11 @@ LLTalkButton::LLTalkButton(const LLUICtrl::Params& p) speak_params.label("Speak"); speak_params.label_selected("Speak"); speak_params.font(LLFontGL::getFontSansSerifSmall()); - speak_params.label_color(LLColor4::black); - speak_params.label_color_selected(LLColor4::black); speak_params.tab_stop(false); speak_params.is_toggle(true); speak_params.picture_style(true); - speak_params.image_selected(LLUI::getUIImage("flyout_btn_left_selected.tga")); - speak_params.image_unselected(LLUI::getUIImage("flyout_btn_left.tga")); + speak_params.image_selected(LLUI::getUIImage("SegmentedBtn_Left_Selected")); + speak_params.image_unselected(LLUI::getUIImage("SegmentedBtn_Left_Off")); mSpeakBtn = LLUICtrlFactory::create(speak_params); addChild(mSpeakBtn); @@ -749,8 +747,8 @@ LLTalkButton::LLTalkButton(const LLUICtrl::Params& p) show_params.tab_stop(false); show_params.is_toggle(true); show_params.picture_style(true); - show_params.image_selected(LLUI::getUIImage("talk_btn_right_selected.tga")); - show_params.image_unselected(LLUI::getUIImage("talk_btn_right.tga")); + show_params.image_selected(LLUI::getUIImage("ComboButton_Selected")); + show_params.image_unselected(LLUI::getUIImage("ComboButton_Off")); mShowBtn = LLUICtrlFactory::create(show_params); addChild(mShowBtn); diff --git a/indra/newview/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp index 0e5b943dd3..f43b625d17 100644 --- a/indra/newview/llfavoritesbar.cpp +++ b/indra/newview/llfavoritesbar.cpp @@ -369,7 +369,7 @@ BOOL LLFavoritesBarCtrl::postBuild() { menu = LLUICtrlFactory::getDefaultWidget("inventory_menu"); } - menu->setBackgroundColor(gSavedSkinSettings.getColor("MenuPopupBgColor")); + menu->setBackgroundColor(LLUIColorTable::instance().getColor("MenuPopupBgColor")); mInventoryItemsPopupMenuHandle = menu->getHandle(); return TRUE; diff --git a/indra/newview/llfeaturemanager.cpp b/indra/newview/llfeaturemanager.cpp index 35613b7c34..b8e2840fe6 100644 --- a/indra/newview/llfeaturemanager.cpp +++ b/indra/newview/llfeaturemanager.cpp @@ -434,7 +434,6 @@ void LLFeatureManager::applyRecommendedSettings() setGraphicsLevel(level, false); gSavedSettings.setU32("RenderQualityPerformance", level); - gSavedSettings.setBOOL("RenderCustomSettings", FALSE); // now apply the tweaks to draw distance // these are double negatives, because feature masks only work by diff --git a/indra/newview/llfloaterabout.cpp b/indra/newview/llfloaterabout.cpp index 9df0a96888..bdd34dfca8 100644 --- a/indra/newview/llfloaterabout.cpp +++ b/indra/newview/llfloaterabout.cpp @@ -106,7 +106,7 @@ BOOL LLFloaterAbout::postBuild() viewer_link_style->setVisible(true); viewer_link_style->setFontName(LLStringUtil::null); viewer_link_style->setLinkHREF(get_viewer_release_notes_url()); - viewer_link_style->setColor(gSavedSkinSettings.getColor4("HTMLLinkColor")); + viewer_link_style->setColor(LLUIColorTable::instance().getColor("HTMLLinkColor")); // Version string std::string version = LLTrans::getString("SECOND_LIFE_VIEWER") @@ -114,7 +114,7 @@ BOOL LLFloaterAbout::postBuild() LL_VERSION_MAJOR, LL_VERSION_MINOR, LL_VERSION_PATCH, LL_VIEWER_BUILD, __DATE__, __TIME__, gSavedSettings.getString("VersionChannelName").c_str()); - support_widget->appendColoredText(version, FALSE, FALSE, LLUI::sSettingGroups["color"]->getColor("TextFgReadOnlyColor")); + support_widget->appendColoredText(version, FALSE, FALSE, LLUIColorTable::instance().getColor("TextFgReadOnlyColor")); support_widget->appendStyledText(LLTrans::getString("ReleaseNotes"), false, false, viewer_link_style); std::string support; @@ -136,7 +136,7 @@ BOOL LLFloaterAbout::postBuild() server_link_style->setVisible(true); server_link_style->setFontName(LLStringUtil::null); server_link_style->setLinkHREF(region->getCapability("ServerReleaseNotes")); - server_link_style->setColor(gSavedSkinSettings.getColor4("HTMLLinkColor")); + server_link_style->setColor(LLUIColorTable::instance().getColor("HTMLLinkColor")); const LLVector3d &pos = gAgent.getPositionGlobal(); LLUIString pos_text = getString("you_are_at"); @@ -158,7 +158,7 @@ BOOL LLFloaterAbout::postBuild() support.append(gLastVersionChannel); support.append("\n"); - support_widget->appendColoredText(support, FALSE, FALSE, LLUI::sSettingGroups["color"]->getColor("TextFgReadOnlyColor")); + support_widget->appendColoredText(support, FALSE, FALSE, LLUIColorTable::instance().getColor("TextFgReadOnlyColor")); support_widget->appendStyledText(LLTrans::getString("ReleaseNotes"), false, false, server_link_style); support = "\n\n"; @@ -246,7 +246,7 @@ BOOL LLFloaterAbout::postBuild() support.append(getString ("PacketsLost", args) + "\n"); } - support_widget->appendColoredText(support, FALSE, FALSE, LLUI::sSettingGroups["color"]->getColor("TextFgReadOnlyColor")); + support_widget->appendColoredText(support, FALSE, FALSE, LLUIColorTable::instance().getColor("TextFgReadOnlyColor")); // Fix views support_widget->setCursorPos(0); diff --git a/indra/newview/llfloaterchat.cpp b/indra/newview/llfloaterchat.cpp index 61ef3abda6..5250c798f9 100644 --- a/indra/newview/llfloaterchat.cpp +++ b/indra/newview/llfloaterchat.cpp @@ -368,11 +368,11 @@ void LLFloaterChat::addChat(const LLChat& chat, F32 size = CHAT_MSG_SIZE; if (chat.mSourceType == CHAT_SOURCE_SYSTEM) { - text_color = gSavedSkinSettings.getColor("SystemChatColor"); + text_color = LLUIColorTable::instance().getColor("SystemChatColor"); } else if(from_instant_message) { - text_color = gSavedSkinSettings.getColor("IMChatColor"); + text_color = LLUIColorTable::instance().getColor("IMChatColor"); size = INSTANT_MSG_SIZE; } // We display anything if it's not an IM. If it's an IM, check pref... @@ -453,37 +453,37 @@ LLColor4 get_text_color(const LLChat& chat) switch(chat.mSourceType) { case CHAT_SOURCE_SYSTEM: - text_color = gSavedSkinSettings.getColor4("SystemChatColor"); + text_color = LLUIColorTable::instance().getColor("SystemChatColor"); break; case CHAT_SOURCE_AGENT: if (chat.mFromID.isNull()) { - text_color = gSavedSkinSettings.getColor4("SystemChatColor"); + text_color = LLUIColorTable::instance().getColor("SystemChatColor"); } else { if(gAgent.getID() == chat.mFromID) { - text_color = gSavedSkinSettings.getColor4("UserChatColor"); + text_color = LLUIColorTable::instance().getColor("UserChatColor"); } else { - text_color = gSavedSkinSettings.getColor4("AgentChatColor"); + text_color = LLUIColorTable::instance().getColor("AgentChatColor"); } } break; case CHAT_SOURCE_OBJECT: if (chat.mChatType == CHAT_TYPE_DEBUG_MSG) { - text_color = gSavedSkinSettings.getColor4("ScriptErrorColor"); + text_color = LLUIColorTable::instance().getColor("ScriptErrorColor"); } else if ( chat.mChatType == CHAT_TYPE_OWNER ) { - text_color = gSavedSkinSettings.getColor4("llOwnerSayChatColor"); + text_color = LLUIColorTable::instance().getColor("llOwnerSayChatColor"); } else { - text_color = gSavedSkinSettings.getColor4("ObjectChatColor"); + text_color = LLUIColorTable::instance().getColor("ObjectChatColor"); } break; default: diff --git a/indra/newview/llfloatercolorpicker.cpp b/indra/newview/llfloatercolorpicker.cpp index 4964f04556..edc96715cd 100644 --- a/indra/newview/llfloatercolorpicker.cpp +++ b/indra/newview/llfloatercolorpicker.cpp @@ -173,7 +173,7 @@ void LLFloaterColorPicker::createUI () // argh! const std::string s ( codec.str () ); - mPalette.push_back ( new LLColor4 ( gSavedSkinSettings.getColor4 ( s ) ) ); + mPalette.push_back ( new LLColor4 ( LLUIColorTable::instance().getColor ( s ) ) ); } } @@ -1017,7 +1017,7 @@ BOOL LLFloaterColorPicker::handleMouseUp ( S32 x, S32 y, MASK mask ) std::ostringstream codec; codec << "ColorPaletteEntry" << std::setfill ( '0' ) << std::setw ( 2 ) << curEntry + 1; const std::string s ( codec.str () ); - gSavedSkinSettings.setColor4( s, *mPalette [ curEntry ] ); + LLUIColorTable::instance().setColor(s, *mPalette [ curEntry ] ); } } diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 15d57ebbcc..6834af4fd5 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -45,6 +45,7 @@ #include "llagent.h" #include "llavatarconstants.h" #include "llcheckboxctrl.h" +#include "llcolorswatch.h" #include "llcombobox.h" #include "llcommandhandler.h" #include "lldirpicker.h" @@ -332,7 +333,6 @@ LLFloaterPreference::LLFloaterPreference(const LLSD& key) mCommitCallbackRegistrar.add("Pref.LogPath", boost::bind(&LLFloaterPreference::onClickLogPath, this)); mCommitCallbackRegistrar.add("Pref.Logging", boost::bind(&LLFloaterPreference::onCommitLogging, this)); mCommitCallbackRegistrar.add("Pref.OpenHelp", boost::bind(&LLFloaterPreference::onOpenHelp, this)); - mCommitCallbackRegistrar.add("Pref.ChangeCustom", boost::bind(&LLFloaterPreference::onChangeCustom, this)); mCommitCallbackRegistrar.add("Pref.UpdateMeterText", boost::bind(&LLFloaterPreference::updateMeterText, this, _1)); mCommitCallbackRegistrar.add("Pref.HardwareSettings", boost::bind(&LLFloaterPreference::onOpenHardwareSettings, this)); mCommitCallbackRegistrar.add("Pref.HardwareDefaults", boost::bind(&LLFloaterPreference::setHardwareDefaults, this)); @@ -342,8 +342,6 @@ LLFloaterPreference::LLFloaterPreference(const LLSD& key) mCommitCallbackRegistrar.add("Pref.AutoDetectAspect", boost::bind(&LLFloaterPreference::onCommitAutoDetectAspect, this)); mCommitCallbackRegistrar.add("Pref.onSelectAspectRatio", boost::bind(&LLFloaterPreference::onKeystrokeAspectRatio, this)); mCommitCallbackRegistrar.add("Pref.QualityPerformance", boost::bind(&LLFloaterPreference::onChangeQuality, this, _2)); - - gSavedSkinSettings.getControl("HTMLLinkColor")->getCommitSignal()->connect(boost::bind(&handleHTMLLinkColorChanged, _2)); } @@ -459,7 +457,7 @@ void LLFloaterPreference::apply() applyResolution(); // Only set window size if we're not in fullscreen mode - if(gSavedSettings.getBOOL("NotFullScreen")) + if(!gSavedSettings.getBOOL("WindowFullScreen")) { applyWindowSize(); } @@ -544,7 +542,7 @@ void LLFloaterPreference::onBtnOK() apply(); closeFloater(false); gSavedSettings.saveToFile( gSavedSettings.getString("ClientSettingsFile"), TRUE ); - gSavedSkinSettings.saveToFile(gSavedSettings.getString("SkinningSettingsFile") , TRUE ); + LLUIColorTable::instance().saveUserSettings(); std::string crash_settings_filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, CRASH_SETTINGS_FILE); // save all settings, even if equals defaults gCrashSettings.saveToFile(crash_settings_filename, FALSE); @@ -605,19 +603,6 @@ void LLFloaterPreference::updateUserInfo(const std::string& visibility, bool im_ } -void LLFloaterPreference::onChangeCustom() -{ - // if custom is turned off, reset everything to defaults - if (this && getChild("CustomSettings")->getValue()) - { - U32 set = (U32)getChild("QualityPerformanceSelection")->getValueF32(); - LLFeatureManager::getInstance()->setGraphicsLevel(set, true); - updateMeterText(getChild("DrawDistance")); - } - - refreshEnabledGraphics(); -} - void LLFloaterPreference::refreshEnabledGraphics() { LLFloaterPreference* instance = LLFloaterReg::findTypedInstance("preferences"); @@ -781,12 +766,6 @@ void LLFloaterPreference::buildLists(void* data) void LLFloaterPreference::refreshEnabledState() { - // disable graphics settings and exit if it's not set to custom - if(!gSavedSettings.getBOOL("RenderCustomSettings")) - { - return; - } - LLCheckBoxCtrl* ctrl_reflections = getChild("Reflections"); LLRadioGroup* radio_reflection_detail = getChild("ReflectionDetailRadio"); @@ -1249,7 +1228,7 @@ void LLFloaterPreference::applyResolution() gSavedSettings.setS32("FullScreenWidth", supported_resolutions[resIndex].mWidth); gSavedSettings.setS32("FullScreenHeight", supported_resolutions[resIndex].mHeight); - gViewerWindow->requestResolutionUpdate(!gSavedSettings.getBOOL("NotFullScreen")); + gViewerWindow->requestResolutionUpdate(gSavedSettings.getBOOL("WindowFullScreen")); send_agent_update(TRUE); @@ -1298,6 +1277,12 @@ LLPanelPreference::LLPanelPreference() // mCommitCallbackRegistrar.add("setControlFalse", boost::bind(&LLPanelPreference::setControlFalse,this, _2)); } + +static void applyUIColor(const std::string& color_name, LLUICtrl* ctrl, const LLSD& param) +{ + LLUIColorTable::instance().setColor(color_name, LLColor4(param)); +} + //virtual BOOL LLPanelPreference::postBuild() { @@ -1460,6 +1445,55 @@ BOOL LLPanelPreference::postBuild() refresh(); } + + if(hasChild("user") && hasChild("agent") && hasChild("im") + && hasChild("system") && hasChild("script_error") && hasChild("objects") + && hasChild("owner") && hasChild("background") && hasChild("links")) + { + LLColorSwatchCtrl* color_swatch = getChild("user"); + color_swatch->setCommitCallback(boost::bind(&applyUIColor, "UserChatColor", _1, _2)); + color_swatch->setOriginal(LLUIColorTable::instance().getColor("UserChatColor")); + + color_swatch = getChild("agent"); + color_swatch->setCommitCallback(boost::bind(&applyUIColor, "AgentChatColor", _1, _2)); + color_swatch->setOriginal(LLUIColorTable::instance().getColor("AgentChatColor")); + + color_swatch = getChild("im"); + color_swatch->setCommitCallback(boost::bind(&applyUIColor, "IMChatColor", _1, _2)); + color_swatch->setOriginal(LLUIColorTable::instance().getColor("IMChatColor")); + + color_swatch = getChild("system"); + color_swatch->setCommitCallback(boost::bind(&applyUIColor, "SystemChatColor", _1, _2)); + color_swatch->setOriginal(LLUIColorTable::instance().getColor("SystemChatColor")); + + color_swatch = getChild("script_error"); + color_swatch->setCommitCallback(boost::bind(&applyUIColor, "ScriptErrorColor", _1, _2)); + color_swatch->setOriginal(LLUIColorTable::instance().getColor("ScriptErrorColor")); + + color_swatch = getChild("objects"); + color_swatch->setCommitCallback(boost::bind(&applyUIColor, "ObjectChatColor", _1, _2)); + color_swatch->setOriginal(LLUIColorTable::instance().getColor("ObjectChatColor")); + + color_swatch = getChild("owner"); + color_swatch->setCommitCallback(boost::bind(&applyUIColor, "llOwnerSayChatColor", _1, _2)); + color_swatch->setOriginal(LLUIColorTable::instance().getColor("llOwnerSayChatColor")); + + color_swatch = getChild("background"); + color_swatch->setCommitCallback(boost::bind(&applyUIColor, "BackgroundChatColor", _1, _2)); + color_swatch->setOriginal(LLUIColorTable::instance().getColor("BackgroundChatColor")); + + color_swatch = getChild("links"); + color_swatch->setCommitCallback(boost::bind(&applyUIColor, "HTMLLinkColor", _1, _2)); + color_swatch->setOriginal(LLUIColorTable::instance().getColor("HTMLLinkColor")); + } + + if(hasChild("effect_color_swatch")) + { + LLColorSwatchCtrl* color_swatch = getChild("effect_color_swatch"); + color_swatch->setCommitCallback(boost::bind(&applyUIColor, "EffectColor", _1, _2)); + color_swatch->setOriginal(LLUIColorTable::instance().getColor("EffectColor")); + } + apply(); return true; } @@ -1475,16 +1509,25 @@ void LLPanelPreference::apply() // Process view on top of the stack LLView* curview = view_stack.front(); view_stack.pop_front(); - LLUICtrl* ctrl = dynamic_cast(curview); - if (ctrl) + + LLColorSwatchCtrl* color_swatch = dynamic_cast(curview); + if (color_swatch) { - LLControlVariable* control = ctrl->getControlVariable(); - if (control) + mSavedColors[color_swatch->getName()] = color_swatch->get(); + } + else + { + LLUICtrl* ctrl = dynamic_cast(curview); + if (ctrl) { - mSavedValues[control] = control->getValue(); + LLControlVariable* control = ctrl->getControlVariable(); + if (control) + { + mSavedValues[control] = control->getValue(); + } } } - + // Push children onto the end of the work stack for (child_list_t::const_iterator iter = curview->getChildList()->begin(); iter != curview->getChildList()->end(); ++iter) @@ -1504,6 +1547,17 @@ void LLPanelPreference::cancel() LLSD ctrl_value = iter->second; control->set(ctrl_value); } + + for (string_color_map_t::iterator iter = mSavedColors.begin(); + iter != mSavedColors.end(); ++iter) + { + LLColorSwatchCtrl* color_swatch = findChild(iter->first); + if(color_swatch) + { + color_swatch->set(iter->second); + color_swatch->onCommit(); + } + } } void LLPanelPreference::setControlFalse(const LLSD& user_data) diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h index afff610c69..cf2ccdce6d 100644 --- a/indra/newview/llfloaterpreference.h +++ b/indra/newview/llfloaterpreference.h @@ -163,6 +163,9 @@ public: private: typedef std::map control_values_map_t; control_values_map_t mSavedValues; + + typedef std::map string_color_map_t; + string_color_map_t mSavedColors; }; #endif // LL_LLPREFERENCEFLOATER_H diff --git a/indra/newview/llfloatersettingsdebug.cpp b/indra/newview/llfloatersettingsdebug.cpp index 8b6102c67f..53b40f8b7a 100644 --- a/indra/newview/llfloatersettingsdebug.cpp +++ b/indra/newview/llfloatersettingsdebug.cpp @@ -80,10 +80,6 @@ BOOL LLFloaterSettingsDebug::postBuild() { gSavedPerAccountSettings.applyToAll(&func); } - if (key == "all" || key == "skin") - { - gSavedSkinSettings.applyToAll(&func); - } settings_combo->sortByName(); settings_combo->updateSelection(); diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp index cb4f2a6711..fef0474062 100644 --- a/indra/newview/llfloatersnapshot.cpp +++ b/indra/newview/llfloatersnapshot.cpp @@ -1297,7 +1297,7 @@ void LLFloaterSnapshot::Impl::updateControls(LLFloaterSnapshot* floater) floater->childSetColor("file_size_label", shot_type == LLSnapshotLivePreview::SNAPSHOT_POSTCARD && got_bytes - && previewp->getDataSize() > MAX_POSTCARD_DATASIZE ? LLColor4::red : LLUI::sSettingGroups["color"]->getColor( "LabelTextColor" )); + && previewp->getDataSize() > MAX_POSTCARD_DATASIZE ? LLUIColor(LLColor4::red) : LLUIColorTable::instance().getColor( "LabelTextColor" )); switch(shot_type) { diff --git a/indra/newview/llfloatervoicedevicesettings.cpp b/indra/newview/llfloatervoicedevicesettings.cpp index 12d12f37f2..16f4ecef07 100644 --- a/indra/newview/llfloatervoicedevicesettings.cpp +++ b/indra/newview/llfloatervoicedevicesettings.cpp @@ -113,7 +113,7 @@ void LLPanelVoiceDeviceSettings::draw() { if (power_bar_idx < discrete_power) { - LLColor4 color = (power_bar_idx >= 3) ? gSavedSkinSettings.getColor4("OverdrivenColor") : gSavedSkinSettings.getColor4("SpeakingColor"); + LLColor4 color = (power_bar_idx >= 3) ? LLUIColorTable::instance().getColor("OverdrivenColor") : LLUIColorTable::instance().getColor("SpeakingColor"); gl_rect_2d(bar_view->getRect(), color, TRUE); } gl_rect_2d(bar_view->getRect(), LLColor4::grey, FALSE); diff --git a/indra/newview/llfloaterworldmap.cpp b/indra/newview/llfloaterworldmap.cpp index 2fe817625a..9711e02f69 100644 --- a/indra/newview/llfloaterworldmap.cpp +++ b/indra/newview/llfloaterworldmap.cpp @@ -387,8 +387,8 @@ void LLFloaterWorldMap::reshape( S32 width, S32 height, BOOL called_from_parent // virtual void LLFloaterWorldMap::draw() { - static LLCachedControl map_track_color(gSavedSkinSettings, "MapTrackColor", LLColor4::white); - static LLCachedControl map_track_disabled_color(gSavedSkinSettings, "MapTrackDisabledColor", LLColor4::white); + static LLUIColor map_track_color = LLUIColorTable::instance().getColor("MapTrackColor", LLColor4::white); + static LLUIColor map_track_disabled_color = LLUIColorTable::instance().getColor("MapTrackDisabledColor", LLColor4::white); // Hide/Show Mature Events controls childSetVisible("events_mature_icon", gAgent.canAccessMature()); diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp index fd8c22b8e5..ebda8b25fd 100644 --- a/indra/newview/llfolderview.cpp +++ b/indra/newview/llfolderview.cpp @@ -793,13 +793,13 @@ BOOL LLFolderViewItem::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, void LLFolderViewItem::draw() { - static LLCachedControl sFgColor(gSavedSkinSettings, "MenuItemEnabledColor", DEFAULT_WHITE); - static LLCachedControl sHighlightBgColor(gSavedSkinSettings, "MenuItemHighlightBgColor", DEFAULT_WHITE); - static LLCachedControl sHighlightFgColor(gSavedSkinSettings, "MenuItemHighlightFgColor", DEFAULT_WHITE); - static LLCachedControl sFilterBGColor(gSavedSkinSettings, "FilterBackgroundColor", DEFAULT_WHITE); - static LLCachedControl sFilterTextColor(gSavedSkinSettings, "FilterTextColor", DEFAULT_WHITE); - static LLCachedControl sSuffixColor(gSavedSkinSettings, "InventoryItemSuffixColor", DEFAULT_WHITE); - static LLCachedControl sSearchStatusColor(gSavedSkinSettings, "InventorySearchStatusColor", DEFAULT_WHITE); + static LLUIColor sFgColor = LLUIColorTable::instance().getColor("MenuItemEnabledColor", DEFAULT_WHITE); + static LLUIColor sHighlightBgColor = LLUIColorTable::instance().getColor("MenuItemHighlightBgColor", DEFAULT_WHITE); + static LLUIColor sHighlightFgColor = LLUIColorTable::instance().getColor("MenuItemHighlightFgColor", DEFAULT_WHITE); + static LLUIColor sFilterBGColor = LLUIColorTable::instance().getColor("FilterBackgroundColor", DEFAULT_WHITE); + static LLUIColor sFilterTextColor = LLUIColorTable::instance().getColor("FilterTextColor", DEFAULT_WHITE); + static LLUIColor sSuffixColor = LLUIColorTable::instance().getColor("InventoryItemSuffixColor", DEFAULT_WHITE); + static LLUIColor sSearchStatusColor = LLUIColorTable::instance().getColor("InventorySearchStatusColor", DEFAULT_WHITE); bool possibly_has_children = false; bool up_to_date = mListener && mListener->isUpToDate(); @@ -2562,7 +2562,7 @@ LLFolderView::LLFolderView(const Params& p) { menu = LLUICtrlFactory::getDefaultWidget("inventory_menu"); } - menu->setBackgroundColor(gSavedSkinSettings.getColor("MenuPopupBgColor")); + menu->setBackgroundColor(LLUIColorTable::instance().getColor("MenuPopupBgColor")); mPopupMenuHandle = menu->getHandle(); } @@ -3148,7 +3148,7 @@ void LLFolderView::commitRename( const LLSD& data ) void LLFolderView::draw() { - static LLCachedControl sSearchStatusColor(gSavedSkinSettings, "InventorySearchStatusColor", DEFAULT_WHITE); + static LLUIColor sSearchStatusColor = LLUIColorTable::instance().getColor("InventorySearchStatusColor", DEFAULT_WHITE); if (mDebugFilters) { std::string current_filter_string = llformat("Current Filter: %d, Least Filter: %d, Auto-accept Filter: %d", diff --git a/indra/newview/llhudmanager.cpp b/indra/newview/llhudmanager.cpp index e1e9d9c51e..8588de0fa0 100644 --- a/indra/newview/llhudmanager.cpp +++ b/indra/newview/llhudmanager.cpp @@ -40,6 +40,7 @@ #include "llagent.h" #include "llhudeffect.h" #include "pipeline.h" +#include "llui.h" #include "llviewercontrol.h" #include "llviewerobjectlist.h" @@ -52,9 +53,9 @@ LLColor4 LLHUDManager::sChildColor; LLHUDManager::LLHUDManager() { - LLHUDManager::sParentColor = gSavedSkinSettings.getColor("FocusColor"); + LLHUDManager::sParentColor = LLUIColorTable::instance().getColor("FocusColor"); // rdw commented out since it's not used. Also removed from colors_base.xml - //LLHUDManager::sChildColor =gSavedSkinSettings.getColor("FocusSecondaryColor"); + //LLHUDManager::sChildColor =LLUIColorTable::instance().getColor("FocusSecondaryColor"); } LLHUDManager::~LLHUDManager() diff --git a/indra/newview/llhudtext.cpp b/indra/newview/llhudtext.cpp index efeac9c197..abb3acd974 100644 --- a/indra/newview/llhudtext.cpp +++ b/indra/newview/llhudtext.cpp @@ -292,7 +292,7 @@ void LLHUDText::renderText(BOOL for_select) LLUIImagePtr imagep = LLUI::getUIImage("rounded_square.tga"); // *TODO: make this a per-text setting - LLColor4 bg_color = gSavedSkinSettings.getColor4("BackgroundChatColor"); + LLColor4 bg_color = LLUIColorTable::instance().getColor("BackgroundChatColor"); bg_color.setAlpha(gSavedSettings.getF32("ChatBubbleOpacity") * alpha_factor); const S32 border_height = 16; diff --git a/indra/newview/llimpanel.cpp b/indra/newview/llimpanel.cpp index 6acd174fc3..fbf990e1af 100644 --- a/indra/newview/llimpanel.cpp +++ b/indra/newview/llimpanel.cpp @@ -1222,7 +1222,7 @@ LLFloaterIMPanel::LLFloaterIMPanel(const std::string& session_label, addHistoryLine( session_start, - gSavedSkinSettings.getColor4("SystemChatColor"), + LLUIColorTable::instance().getColor("SystemChatColor"), false); } } @@ -2004,7 +2004,7 @@ void LLFloaterIMPanel::sendMsg() BOOL other_was_typing = mOtherTyping; - addHistoryLine(history_echo, gSavedSkinSettings.getColor("IMChatColor"), true, gAgent.getID()); + addHistoryLine(history_echo, LLUIColorTable::instance().getColor("IMChatColor"), true, gAgent.getID()); if (other_was_typing) { @@ -2175,7 +2175,7 @@ void LLFloaterIMPanel::addTypingIndicator(const std::string &name) mTypingLineStartIndex = mHistoryEditor->getWText().length(); LLUIString typing_start = sTypingStartString; typing_start.setArg("[NAME]", name); - addHistoryLine(typing_start, gSavedSkinSettings.getColor4("SystemChatColor"), false); + addHistoryLine(typing_start, LLUIColorTable::instance().getColor("SystemChatColor"), false); mOtherTypingName = name; mOtherTyping = TRUE; } @@ -2232,7 +2232,7 @@ void LLFloaterIMPanel::chatFromLogFile(LLLogChat::ELogLineType type, std::string } //self->addHistoryLine(line, LLColor4::grey, FALSE); - self->mHistoryEditor->appendColoredText(message, false, true, gSavedSkinSettings.getColor4("ChatHistoryTextColor")); + self->mHistoryEditor->appendColoredText(message, false, true, LLUIColorTable::instance().getColor("ChatHistoryTextColor")); } void LLFloaterIMPanel::showSessionStartError( diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index d6569663a2..bc98b609ec 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -745,7 +745,7 @@ void LLIMMgr::addMessage( //<< "*** region_id: " << region_id << std::endl //<< "*** position: " << position << std::endl; - floater->addHistoryLine(bonus_info.str(), gSavedSkinSettings.getColor4("SystemChatColor")); + floater->addHistoryLine(bonus_info.str(), LLUIColorTable::instance().getColor("SystemChatColor")); } make_ui_sound("UISndNewIncomingIMSession"); @@ -754,8 +754,8 @@ void LLIMMgr::addMessage( // now add message to floater bool is_from_system = target_id.isNull() || (from == SYSTEM_FROM); const LLColor4& color = ( is_from_system ? - gSavedSkinSettings.getColor4("SystemChatColor") : - gSavedSkinSettings.getColor("IMChatColor")); + LLUIColorTable::instance().getColor("SystemChatColor") : + LLUIColorTable::instance().getColor("IMChatColor")); if ( !link_name ) { floater->addHistoryLine(msg,color); // No name to prepend, so just add the message normally @@ -1332,7 +1332,7 @@ void LLIMMgr::noteOfflineUsers( S32 count = ids.count(); if(count == 0) { - floater->addHistoryLine(sOnlyUserMessage, gSavedSkinSettings.getColor4("SystemChatColor")); + floater->addHistoryLine(sOnlyUserMessage, LLUIColorTable::instance().getColor("SystemChatColor")); } else { @@ -1348,7 +1348,7 @@ void LLIMMgr::noteOfflineUsers( LLUIString offline = sOfflineMessage; offline.setArg("[FIRST]", first); offline.setArg("[LAST]", last); - floater->addHistoryLine(offline, gSavedSkinSettings.getColor4("SystemChatColor")); + floater->addHistoryLine(offline, LLUIColorTable::instance().getColor("SystemChatColor")); } } } diff --git a/indra/newview/lllocationinputctrl.cpp b/indra/newview/lllocationinputctrl.cpp index fac0de0f33..2cee9de1eb 100644 --- a/indra/newview/lllocationinputctrl.cpp +++ b/indra/newview/lllocationinputctrl.cpp @@ -174,8 +174,7 @@ LLLocationInputCtrl::Params::Params() add_landmark_image_disabled("add_landmark_image_disabled"), add_landmark_button("add_landmark_button"), add_landmark_hpad("add_landmark_hpad", 0), - info_button("info_button"), - background("background") + info_button("info_button") { } @@ -185,11 +184,6 @@ LLLocationInputCtrl::LLLocationInputCtrl(const LLLocationInputCtrl::Params& p) mInfoBtn(NULL), mAddLandmarkBtn(NULL) { - // Background image. - LLButton::Params bg_params = p.background; - mBackground = LLUICtrlFactory::create(bg_params); - addChildInBack(mBackground); - // "Place information" button. LLButton::Params info_params = p.info_button; mInfoBtn = LLUICtrlFactory::create(info_params); @@ -213,8 +207,6 @@ LLLocationInputCtrl::LLLocationInputCtrl(const LLLocationInputCtrl::Params& p) enableAddLandmarkButton(true); addChild(mAddLandmarkBtn); - setFocusReceivedCallback(boost::bind(&LLLocationInputCtrl::onFocusReceived, this)); - setFocusLostCallback(boost::bind(&LLLocationInputCtrl::onFocusLost, this)); setPrearrangeCallback(boost::bind(&LLLocationInputCtrl::onLocationPrearrange, this, _2)); updateWidgetlayout(); @@ -354,6 +346,7 @@ void LLLocationInputCtrl::onFocusReceived() void LLLocationInputCtrl::onFocusLost() { + LLUICtrl::onFocusLost(); refreshLocation(); } @@ -462,7 +455,6 @@ void LLLocationInputCtrl::enableAddLandmarkButton(bool val) void LLLocationInputCtrl::updateAddLandmarkButton() { bool cur_parcel_landmarked = false; - // Determine whether there are landmarks pointing to the current parcel. LLInventoryModel::cat_array_t cats; LLInventoryModel::item_array_t items; @@ -481,21 +473,14 @@ void LLLocationInputCtrl::updateWidgetlayout() { const LLRect& rect = getLocalRect(); const LLRect& hist_btn_rect = mButton->getRect(); - LLRect info_btn_rect = mButton->getRect(); + LLRect info_btn_rect = mInfoBtn->getRect(); // info button info_btn_rect.setOriginAndSize( - 0, (rect.getHeight() - info_btn_rect.getHeight()) / 2, + 2, (rect.getHeight() - info_btn_rect.getHeight()) / 2, info_btn_rect.getWidth(), info_btn_rect.getHeight()); mInfoBtn->setRect(info_btn_rect); - // background - mBackground->setRect(LLRect(info_btn_rect.getWidth(), rect.mTop, - rect.mRight - hist_btn_rect.getWidth(), rect.mBottom)); - - // history button - mButton->setRightHPad(0); - // "Add Landmark" button { LLRect al_btn_rect = mAddLandmarkBtn->getRect(); @@ -504,14 +489,4 @@ void LLLocationInputCtrl::updateWidgetlayout() (rect.getHeight() - al_btn_rect.getHeight()) / 2); mAddLandmarkBtn->setRect(al_btn_rect); } - - // text entry - if (mTextEntry) - { - LLRect text_entry_rect(rect); - text_entry_rect.mLeft = info_btn_rect.getWidth(); - text_entry_rect.mRight = mAddLandmarkBtn->getRect().mLeft; - text_entry_rect.stretch(0, -1); // make space for border - mTextEntry->setRect(text_entry_rect); - } } diff --git a/indra/newview/lllocationinputctrl.h b/indra/newview/lllocationinputctrl.h index 1732853263..0a863f6dd8 100644 --- a/indra/newview/lllocationinputctrl.h +++ b/indra/newview/lllocationinputctrl.h @@ -61,8 +61,7 @@ public: add_landmark_image_disabled; Optional add_landmark_hpad; Optional add_landmark_button, - info_button, - background; + info_button; Params(); }; @@ -70,6 +69,8 @@ public: /*virtual*/ void setEnabled(BOOL enabled); /*virtual*/ BOOL handleToolTip(S32 x, S32 y, std::string& msg, LLRect* sticky_rect); /*virtual*/ BOOL handleKeyHere(KEY key, MASK mask); + /*virtual*/ void onFocusReceived(); + /*virtual*/ void onFocusLost(); //======================================================================== // LLUICtrl interface @@ -98,8 +99,6 @@ private: void updateAddLandmarkButton(); void updateWidgetlayout(); - void onFocusReceived(); - void onFocusLost(); void onInfoButtonClicked(); void onLocationHistoryLoaded(); void onLocationPrearrange(const LLSD& data); @@ -107,7 +106,6 @@ private: void onAddLandmarkButtonClicked(); void onAgentParcelChange(); - LLButton* mBackground; LLButton* mAddLandmarkBtn; LLButton* mInfoBtn; S32 mAddLandmarkHPad; diff --git a/indra/newview/llmanip.cpp b/indra/newview/llmanip.cpp index 7039776585..062e781d49 100644 --- a/indra/newview/llmanip.cpp +++ b/indra/newview/llmanip.cpp @@ -581,9 +581,9 @@ void LLManip::renderTickValue(const LLVector3& pos, F32 value, const std::string LLColor4 LLManip::setupSnapGuideRenderPass(S32 pass) { - static LLColor4 grid_color_fg = gSavedSkinSettings.getColor("GridlineColor"); - static LLColor4 grid_color_bg = gSavedSkinSettings.getColor("GridlineBGColor"); - static LLColor4 grid_color_shadow = gSavedSkinSettings.getColor("GridlineShadowColor"); + static LLColor4 grid_color_fg = LLUIColorTable::instance().getColor("GridlineColor"); + static LLColor4 grid_color_bg = LLUIColorTable::instance().getColor("GridlineBGColor"); + static LLColor4 grid_color_shadow = LLUIColorTable::instance().getColor("GridlineShadowColor"); LLColor4 line_color; F32 line_alpha = gSavedSettings.getF32("GridOpacity"); diff --git a/indra/newview/llmaniprotate.cpp b/indra/newview/llmaniprotate.cpp index f228ea624b..d1d112c4bf 100644 --- a/indra/newview/llmaniprotate.cpp +++ b/indra/newview/llmaniprotate.cpp @@ -1107,8 +1107,8 @@ BOOL LLManipRotate::updateVisiblity() mCenterToProfilePlaneMag = mRadiusMeters * mRadiusMeters / mCenterToCamMag; mCenterToProfilePlane = -mCenterToProfilePlaneMag * mCenterToCamNorm; - mCenterScreen.set((S32)((0.5f - mRotationCenter.mdV[VY]) / gAgent.mHUDCurZoom * gViewerWindow->getWindowWidth()), - (S32)((mRotationCenter.mdV[VZ] + 0.5f) / gAgent.mHUDCurZoom * gViewerWindow->getWindowHeight())); + mCenterScreen.set((S32)((0.5f - mRotationCenter.mdV[VY]) / gAgent.mHUDCurZoom * gViewerWindow->getWorldViewWidth()), + (S32)((mRotationCenter.mdV[VZ] + 0.5f) / gAgent.mHUDCurZoom * gViewerWindow->getWorldViewHeight())); visible = TRUE; } else @@ -1624,8 +1624,8 @@ void LLManipRotate::mouseToRay( S32 x, S32 y, LLVector3* ray_pt, LLVector3* ray_ { if (LLSelectMgr::getInstance()->getSelection()->getSelectType() == SELECT_TYPE_HUD) { - F32 mouse_x = (((F32)x / gViewerWindow->getWindowWidth()) - 0.5f) / gAgent.mHUDCurZoom; - F32 mouse_y = ((((F32)y) / gViewerWindow->getWindowHeight()) - 0.5f) / gAgent.mHUDCurZoom; + F32 mouse_x = (((F32)x / gViewerWindow->getWorldViewWidth()) - 0.5f) / gAgent.mHUDCurZoom; + F32 mouse_y = ((((F32)y) / gViewerWindow->getWorldViewHeight()) - 0.5f) / gAgent.mHUDCurZoom; *ray_pt = LLVector3(-1.f, -mouse_x, mouse_y); *ray_dir = LLVector3(1.f, 0.f, 0.f); @@ -1699,7 +1699,7 @@ void LLManipRotate::highlightManipulators( S32 x, S32 y ) F32 dist_y = mouse_dir_y.normVec(); F32 dist_z = mouse_dir_z.normVec(); - F32 distance_threshold = (MAX_MANIP_SELECT_DISTANCE * mRadiusMeters) / gViewerWindow->getWindowHeight(); + F32 distance_threshold = (MAX_MANIP_SELECT_DISTANCE * mRadiusMeters) / gViewerWindow->getWorldViewHeight(); if (llabs(dist_x - mRadiusMeters) * llmax(0.05f, proj_rot_x_axis) < distance_threshold) { diff --git a/indra/newview/llmanipscale.cpp b/indra/newview/llmanipscale.cpp index 5261c130ea..72596e850a 100644 --- a/indra/newview/llmanipscale.cpp +++ b/indra/newview/llmanipscale.cpp @@ -493,8 +493,8 @@ void LLManipScale::highlightManipulators(S32 x, S32 y) mProjectedManipulators.insert(projManipulator); } - F32 half_width = (F32)gViewerWindow->getWindowWidth() / 2.f; - F32 half_height = (F32)gViewerWindow->getWindowHeight() / 2.f; + F32 half_width = (F32)gViewerWindow->getWorldViewWidth() / 2.f; + F32 half_height = (F32)gViewerWindow->getWorldViewHeight() / 2.f; LLVector2 manip2d; LLVector2 mousePos((F32)x - half_width, (F32)y - half_height); LLVector2 delta; @@ -1368,7 +1368,7 @@ void LLManipScale::updateSnapGuides(const LLBBox& bbox) else { F32 object_distance = dist_vec(mScaleCenter, LLViewerCamera::getInstance()->getOrigin()); - mSnapRegimeOffset = (SNAP_GUIDE_SCREEN_OFFSET * gViewerWindow->getWindowWidth() * object_distance) / LLViewerCamera::getInstance()->getPixelMeterRatio(); + mSnapRegimeOffset = (SNAP_GUIDE_SCREEN_OFFSET * gViewerWindow->getWorldViewWidth() * object_distance) / LLViewerCamera::getInstance()->getPixelMeterRatio(); } LLVector3 cam_at_axis; F32 snap_guide_length; @@ -1381,7 +1381,7 @@ void LLManipScale::updateSnapGuides(const LLBBox& bbox) { cam_at_axis = LLViewerCamera::getInstance()->getAtAxis(); F32 manipulator_distance = dist_vec(box_corner_agent, LLViewerCamera::getInstance()->getOrigin()); - snap_guide_length = (SNAP_GUIDE_SCREEN_LENGTH * gViewerWindow->getWindowWidth() * manipulator_distance) / LLViewerCamera::getInstance()->getPixelMeterRatio(); + snap_guide_length = (SNAP_GUIDE_SCREEN_LENGTH * gViewerWindow->getWorldViewWidth() * manipulator_distance) / LLViewerCamera::getInstance()->getPixelMeterRatio(); } mSnapGuideLength = snap_guide_length / llmax(0.1f, (llmin(mSnapGuideDir1 * cam_at_axis, mSnapGuideDir2 * cam_at_axis))); diff --git a/indra/newview/llmaniptranslate.cpp b/indra/newview/llmaniptranslate.cpp index b8c2a3d64b..3a1ffd6546 100644 --- a/indra/newview/llmaniptranslate.cpp +++ b/indra/newview/llmaniptranslate.cpp @@ -414,7 +414,7 @@ BOOL LLManipTranslate::handleHover(S32 x, S32 y, MASK mask) // Handle auto-rotation if necessary. const F32 ROTATE_ANGLE_PER_SECOND = 30.f * DEG_TO_RAD; - const S32 ROTATE_H_MARGIN = gViewerWindow->getWindowWidth() / 20; + const S32 ROTATE_H_MARGIN = gViewerWindow->getWorldViewWidth() / 20; const F32 rotate_angle = ROTATE_ANGLE_PER_SECOND / gFPSClamped; BOOL rotated = FALSE; @@ -426,7 +426,7 @@ BOOL LLManipTranslate::handleHover(S32 x, S32 y, MASK mask) gAgent.cameraOrbitAround(rotate_angle); rotated = TRUE; } - else if (x > gViewerWindow->getWindowWidth() - ROTATE_H_MARGIN) + else if (x > gViewerWindow->getWorldViewWidth() - ROTATE_H_MARGIN) { gAgent.cameraOrbitAround(-rotate_angle); rotated = TRUE; @@ -960,8 +960,8 @@ void LLManipTranslate::highlightManipulators(S32 x, S32 y) LLVector2 manip_start_2d; LLVector2 manip_end_2d; LLVector2 manip_dir; - F32 half_width = gViewerWindow->getWindowWidth() / 2.f; - F32 half_height = gViewerWindow->getWindowHeight() / 2.f; + F32 half_width = gViewerWindow->getWorldViewWidth() / 2.f; + F32 half_height = gViewerWindow->getWorldViewHeight() / 2.f; LLVector2 mousePos((F32)x - half_width, (F32)y - half_height); LLVector2 mouse_delta; @@ -1225,7 +1225,7 @@ void LLManipTranslate::renderSnapGuides() { LLVector3 cam_to_selection = getPivotPoint() - LLViewerCamera::getInstance()->getOrigin(); F32 current_range = cam_to_selection.normVec(); - guide_size_meters = SNAP_GUIDE_SCREEN_SIZE * gViewerWindow->getWindowHeight() * current_range / LLViewerCamera::getInstance()->getPixelMeterRatio(); + guide_size_meters = SNAP_GUIDE_SCREEN_SIZE * gViewerWindow->getWorldViewHeight() * current_range / LLViewerCamera::getInstance()->getPixelMeterRatio(); F32 fraction_of_fov = mAxisArrowLength / (F32) LLViewerCamera::getInstance()->getViewHeightInPixels(); F32 apparent_angle = fraction_of_fov * LLViewerCamera::getInstance()->getView(); // radians @@ -1522,7 +1522,7 @@ void LLManipTranslate::renderSnapGuides() float a = line_alpha; - LLColor4 col = gSavedSkinSettings.getColor("SilhouetteChildColor"); + LLColor4 col = LLUIColorTable::instance().getColor("SilhouetteChildColor"); { //draw grid behind objects LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE); @@ -1800,7 +1800,7 @@ void LLManipTranslate::renderTranslationHandles() // Drag handles if (mObjectSelection->getSelectType() == SELECT_TYPE_HUD) { - mArrowLengthMeters = mAxisArrowLength / gViewerWindow->getWindowHeight(); + mArrowLengthMeters = mAxisArrowLength / gViewerWindow->getWorldViewHeight(); mArrowLengthMeters /= gAgent.mHUDCurZoom; } else diff --git a/indra/newview/llmemoryview.cpp b/indra/newview/llmemoryview.cpp index ab5db93027..3c7716e9c2 100644 --- a/indra/newview/llmemoryview.cpp +++ b/indra/newview/llmemoryview.cpp @@ -119,7 +119,7 @@ void LLMemoryView::draw() const S32 UPDATE_INTERVAL = 60; const S32 MARGIN_AMT = 10; static S32 curUpdate = UPDATE_INTERVAL; - static LLCachedControl s_console_color(gSavedSkinSettings, "ConsoleBackground", LLColor4U::black); + static LLUIColor s_console_color = LLUIColorTable::instance().getColor("ConsoleBackground", LLColor4U::black); // setup update interval if (curUpdate >= UPDATE_INTERVAL) diff --git a/indra/newview/llnetmap.cpp b/indra/newview/llnetmap.cpp index b40af37f7e..1f623af434 100644 --- a/indra/newview/llnetmap.cpp +++ b/indra/newview/llnetmap.cpp @@ -112,12 +112,12 @@ void LLNetMap::translatePan( F32 delta_x, F32 delta_y ) void LLNetMap::draw() { static LLFrameTimer map_timer; - static LLCachedControl map_avatar_color(gSavedSkinSettings, "MapAvatarColor", LLColor4::white); - static LLCachedControl map_avatar_friend_color(gSavedSkinSettings, "MapAvatarFriendColor", LLColor4::white); - static LLCachedControl map_track_color(gSavedSkinSettings, "MapTrackColor", LLColor4::white); - static LLCachedControl map_track_disabled_color(gSavedSkinSettings, "MapTrackDisabledColor", LLColor4::white); - static LLCachedControl map_frustum_color(gSavedSkinSettings, "MapFrustumColor", LLColor4::white); - static LLCachedControl map_frustum_rotating_color(gSavedSkinSettings, "MapFrustumRotatingColor", LLColor4::white); + static LLUIColor map_avatar_color = LLUIColorTable::instance().getColor("MapAvatarColor", LLColor4::white); + static LLUIColor map_avatar_friend_color = LLUIColorTable::instance().getColor("MapAvatarFriendColor", LLColor4::white); + static LLUIColor map_track_color = LLUIColorTable::instance().getColor("MapTrackColor", LLColor4::white); + static LLUIColor map_track_disabled_color = LLUIColorTable::instance().getColor("MapTrackDisabledColor", LLColor4::white); + static LLUIColor map_frustum_color = LLUIColorTable::instance().getColor("MapFrustumColor", LLColor4::white); + static LLUIColor map_frustum_rotating_color = LLUIColorTable::instance().getColor("MapFrustumRotatingColor", LLColor4::white); if (mObjectImagep.isNull()) { diff --git a/indra/newview/lloutputmonitorctrl.cpp b/indra/newview/lloutputmonitorctrl.cpp index ff26707a56..196a86b29c 100644 --- a/indra/newview/lloutputmonitorctrl.cpp +++ b/indra/newview/lloutputmonitorctrl.cpp @@ -55,10 +55,10 @@ LLOutputMonitorCtrl::LLOutputMonitorCtrl(const LLOutputMonitorCtrl::Params& p) mPower(0), mIsMuted(true) { - static LLUICachedControl output_monitor_muted_color("OutputMonitorMutedColor", LLColor4::orange); - static LLUICachedControl output_monitor_overdriven_color("OutputMonitorOverdrivenColor", LLColor4::red); - static LLUICachedControl output_monitor_normal_color("OutputMonitorNotmalColor", LLColor4::green); - static LLUICachedControl output_monitor_bound_color("OutputMonitorBoundColor", LLColor4::white); + static LLUIColor output_monitor_muted_color = LLUIColorTable::instance().getColor("OutputMonitorMutedColor", LLColor4::orange); + static LLUIColor output_monitor_overdriven_color = LLUIColorTable::instance().getColor("OutputMonitorOverdrivenColor", LLColor4::red); + static LLUIColor output_monitor_normal_color = LLUIColorTable::instance().getColor("OutputMonitorNotmalColor", LLColor4::green); + static LLUIColor output_monitor_bound_color = LLUIColorTable::instance().getColor("OutputMonitorBoundColor", LLColor4::white); static LLUICachedControl output_monitor_rects_number("OutputMonitorRectanglesNumber", 20); static LLUICachedControl output_monitor_rect_width_ratio("OutputMonitorRectangleWidthRatio", 0.5f); static LLUICachedControl output_monitor_rect_height_ratio("OutputMonitorRectangleHeightRatio", 0.8f); diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp index ed7c7dce12..baa5f34849 100644 --- a/indra/newview/llselectmgr.cpp +++ b/indra/newview/llselectmgr.cpp @@ -187,12 +187,12 @@ LLSelectMgr::LLSelectMgr() sHighlightUAnim = gSavedSettings.getF32("SelectionHighlightUAnim"); sHighlightVAnim = gSavedSettings.getF32("SelectionHighlightVAnim"); - sSilhouetteParentColor =gSavedSkinSettings.getColor("SilhouetteParentColor"); - sSilhouetteChildColor = gSavedSkinSettings.getColor("SilhouetteChildColor"); - sHighlightParentColor = gSavedSkinSettings.getColor("HighlightParentColor"); - sHighlightChildColor = gSavedSkinSettings.getColor("HighlightChildColor"); - sHighlightInspectColor = gSavedSkinSettings.getColor("HighlightInspectColor"); - sContextSilhouetteColor = gSavedSkinSettings.getColor("ContextSilhouetteColor")*0.5f; + sSilhouetteParentColor =LLUIColorTable::instance().getColor("SilhouetteParentColor"); + sSilhouetteChildColor = LLUIColorTable::instance().getColor("SilhouetteChildColor"); + sHighlightParentColor = LLUIColorTable::instance().getColor("HighlightParentColor"); + sHighlightChildColor = LLUIColorTable::instance().getColor("HighlightChildColor"); + sHighlightInspectColor = LLUIColorTable::instance().getColor("HighlightInspectColor"); + sContextSilhouetteColor = LLUIColorTable::instance().getColor("ContextSilhouetteColor")*0.5f; sRenderLightRadius = gSavedSettings.getBOOL("RenderLightRadius"); diff --git a/indra/newview/llsidetray.cpp b/indra/newview/llsidetray.cpp index daee3ecfa6..2871b16f5c 100644 --- a/indra/newview/llsidetray.cpp +++ b/indra/newview/llsidetray.cpp @@ -162,8 +162,8 @@ BOOL LLSideTrayTab::postBuild() title_panel->getChild(TAB_PANEL_CAPTION_TITLE_BOX)->setValue(mTabTitle); - static LLUICachedControl default_background_color ("FloaterDefaultBackgroundColor", *(new LLColor4)); - static LLUICachedControl focus_background_color ("FloaterFocusBackgroundColor", *(new LLColor4)); + static LLUIColor default_background_color = LLUIColorTable::instance().getColor("FloaterDefaultBackgroundColor"); + static LLUIColor focus_background_color = LLUIColorTable::instance().getColor("FloaterFocusBackgroundColor"); setTransparentColor(default_background_color); setBackgroundColor(focus_background_color); diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index d287f25181..790669c07f 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -469,13 +469,24 @@ bool idle_startup() #if LL_WINDOWS // On the windows dev builds, unpackaged, the message_template.msg - // file will be located in - // indra/build-vc**/newview//app_settings. + // file will be located in: + // build-vc**/newview//app_settings if (!found_template) { message_template_path = gDirUtilp->getExpandedFilename(LL_PATH_EXECUTABLE, "app_settings", "message_template.msg"); found_template = LLFile::fopen(message_template_path.c_str(), "r"); /* Flawfinder: ignore */ } + #elif LL_DARWIN + // On Mac dev builds, message_template.msg lives in: + // indra/build-*/newview//Second Life/Contents/Resources/app_settings + if (!found_template) + { + message_template_path = + gDirUtilp->getExpandedFilename(LL_PATH_EXECUTABLE, + "../Resources/app_settings", + "message_template.msg"); + found_template = LLFile::fopen(message_template_path.c_str(), "r"); /* Flawfinder: ignore */ + } #endif if (found_template) @@ -929,7 +940,7 @@ bool idle_startup() //For HTML parsing in text boxes. - LLTextEditor::setLinkColor( gSavedSkinSettings.getColor4("HTMLLinkColor") ); + LLTextEditor::setLinkColor( LLUIColorTable::instance().getColor("HTMLLinkColor") ); // Load URL History File LLURLHistory::loadFile("url_history.xml"); @@ -1604,7 +1615,7 @@ bool idle_startup() // Since we connected, save off the settings so the user doesn't have to // type the name/password again if we crash. gSavedSettings.saveToFile(gSavedSettings.getString("ClientSettingsFile"), TRUE); - gSavedSkinSettings.saveToFile(gSavedSettings.getString("SkinningSettingsFile"), TRUE); + LLUIColorTable::instance().saveUserSettings(); // // Initialize classes w/graphics stuff. @@ -2187,7 +2198,7 @@ bool idle_startup() // and make sure it's saved gSavedSettings.saveToFile( gSavedSettings.getString("ClientSettingsFile") , TRUE ); - gSavedSkinSettings.saveToFile( gSavedSettings.getString("SkinningSettingsFile") , TRUE ); + LLUIColorTable::instance().saveUserSettings(); }; if (!gNoRender) @@ -2576,7 +2587,7 @@ void login_callback(S32 option, void *userdata) { // turn off the setting and write out to disk gSavedSettings.saveToFile( gSavedSettings.getString("ClientSettingsFile") , TRUE ); - gSavedSkinSettings.saveToFile( gSavedSettings.getString("SkinningSettingsFile") , TRUE ); + LLUIColorTable::instance().saveUserSettings(); } // Next iteration through main loop should shut down the app cleanly. @@ -2786,7 +2797,7 @@ void update_app(BOOL mandatory, const std::string& auth_msg) { // store off config state, as we might quit soon gSavedSettings.saveToFile(gSavedSettings.getString("ClientSettingsFile"), TRUE); - gSavedSkinSettings.saveToFile(gSavedSettings.getString("SkinningSettingsFile"), TRUE); + LLUIColorTable::instance().saveUserSettings(); std::ostringstream message; std::string msg; diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index 8c2372ee74..58af603569 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -237,7 +237,7 @@ void LLStatusBar::draw() if (isBackgroundVisible()) { static LLUICachedControl drop_shadow_floater ("DropShadowFloater", 0); - static LLUICachedControl color_drop_shadow ("ColorDropShadow"); + static LLUIColor color_drop_shadow = LLUIColorTable::instance().getColor("ColorDropShadow"); gl_drop_shadow(0, getRect().getHeight(), getRect().getWidth(), 0, color_drop_shadow, drop_shadow_floater ); } diff --git a/indra/newview/llstylemap.cpp b/indra/newview/llstylemap.cpp index a1384c28ba..a422db1cc1 100644 --- a/indra/newview/llstylemap.cpp +++ b/indra/newview/llstylemap.cpp @@ -64,7 +64,7 @@ const LLStyleSP &LLStyleMap::lookupAgent(const LLUUID &source) style->setFontName(LLStringUtil::null); if (source != LLUUID::null && source != gAgent.getID() ) { - style->setColor(gSavedSkinSettings.getColor4("HTMLLinkColor")); + style->setColor(LLUIColorTable::instance().getColor("HTMLLinkColor")); std::string link = llformat("secondlife:///app/agent/%s/about",source.asString().c_str()); style->setLinkHREF(link); } @@ -90,7 +90,7 @@ const LLStyleSP &LLStyleMap::lookup(const LLUUID& id, const std::string& link) style->setFontName(LLStringUtil::null); if (id != LLUUID::null && !link.empty()) { - style->setColor(gSavedSkinSettings.getColor4("HTMLLinkColor")); + style->setColor(LLUIColorTable::instance().getColor("HTMLLinkColor")); style->setLinkHREF(link); } else @@ -115,6 +115,6 @@ void LLStyleMap::update() { LLStyleSP &style = iter->second; // Update the link color in case it has been changed. - style->setColor(gSavedSkinSettings.getColor4("HTMLLinkColor")); + style->setColor(LLUIColorTable::instance().getColor("HTMLLinkColor")); } } diff --git a/indra/newview/lltoolfocus.cpp b/indra/newview/lltoolfocus.cpp index ca78073575..ee6e36518f 100644 --- a/indra/newview/lltoolfocus.cpp +++ b/indra/newview/lltoolfocus.cpp @@ -359,7 +359,7 @@ BOOL LLToolCamera::handleHover(S32 x, S32 y, MASK mask) // Orbit tool if (hasMouseCapture()) { - const F32 RADIANS_PER_PIXEL = 360.f * DEG_TO_RAD / gViewerWindow->getWindowWidth(); + const F32 RADIANS_PER_PIXEL = 360.f * DEG_TO_RAD / gViewerWindow->getWorldViewWidth(); if (dx != 0) { @@ -387,7 +387,7 @@ BOOL LLToolCamera::handleHover(S32 x, S32 y, MASK mask) F32 dist = (F32) camera_to_focus.normVec(); // Fudge factor for pan - F32 meters_per_pixel = 3.f * dist / gViewerWindow->getWindowWidth(); + F32 meters_per_pixel = 3.f * dist / gViewerWindow->getWorldViewWidth(); if (dx != 0) { @@ -409,7 +409,7 @@ BOOL LLToolCamera::handleHover(S32 x, S32 y, MASK mask) if (hasMouseCapture()) { - const F32 RADIANS_PER_PIXEL = 360.f * DEG_TO_RAD / gViewerWindow->getWindowWidth(); + const F32 RADIANS_PER_PIXEL = 360.f * DEG_TO_RAD / gViewerWindow->getWorldViewWidth(); if (dx != 0) { diff --git a/indra/newview/lltoolgrab.cpp b/indra/newview/lltoolgrab.cpp index 88e79fd4f4..abadd251c1 100644 --- a/indra/newview/lltoolgrab.cpp +++ b/indra/newview/lltoolgrab.cpp @@ -510,8 +510,8 @@ void LLToolGrab::handleHoverActive(S32 x, S32 y, MASK mask) const F32 RADIANS_PER_PIXEL_X = 0.01f; const F32 RADIANS_PER_PIXEL_Y = 0.01f; - S32 dx = x - (gViewerWindow->getWindowWidth() / 2); - S32 dy = y - (gViewerWindow->getWindowHeight() / 2); + S32 dx = x - (gViewerWindow->getWorldViewWidth() / 2); + S32 dy = y - (gViewerWindow->getWorldViewHeight() / 2); if (dx != 0 || dy != 0) { @@ -631,10 +631,10 @@ void LLToolGrab::handleHoverActive(S32 x, S32 y, MASK mask) // Handle auto-rotation at screen edge. LLVector3 grab_pos_agent = gAgent.getPosAgentFromGlobal( grab_point_global ); - LLCoordGL grab_center_gl( gViewerWindow->getWindowWidth() / 2, gViewerWindow->getWindowHeight() / 2); + LLCoordGL grab_center_gl( gViewerWindow->getWorldViewWidth() / 2, gViewerWindow->getWorldViewHeight() / 2); LLViewerCamera::getInstance()->projectPosAgentToScreen(grab_pos_agent, grab_center_gl); - const S32 ROTATE_H_MARGIN = gViewerWindow->getWindowWidth() / 20; + const S32 ROTATE_H_MARGIN = gViewerWindow->getWorldViewWidth() / 20; const F32 ROTATE_ANGLE_PER_SECOND = 30.f * DEG_TO_RAD; const F32 rotate_angle = ROTATE_ANGLE_PER_SECOND / gFPSClamped; // ...build mode moves camera about focus point @@ -649,7 +649,7 @@ void LLToolGrab::handleHoverActive(S32 x, S32 y, MASK mask) gAgent.cameraOrbitAround(rotate_angle); } } - else if (grab_center_gl.mX > gViewerWindow->getWindowWidth() - ROTATE_H_MARGIN) + else if (grab_center_gl.mX > gViewerWindow->getWorldViewWidth() - ROTATE_H_MARGIN) { if (gAgent.getFocusOnAvatar()) { @@ -662,7 +662,7 @@ void LLToolGrab::handleHoverActive(S32 x, S32 y, MASK mask) } // Don't move above top of screen or below bottom - if ((grab_center_gl.mY < gViewerWindow->getWindowHeight() - 6) + if ((grab_center_gl.mY < gViewerWindow->getWorldViewHeight() - 6) && (grab_center_gl.mY > 24)) { // Transmit update to simulator @@ -884,7 +884,7 @@ void LLToolGrab::handleHoverInactive(S32 x, S32 y, MASK mask) // Look for cursor against the edge of the screen // Only works in fullscreen - if (!gSavedSettings.getBOOL("NotFullScreen")) + if (gSavedSettings.getBOOL("WindowFullScreen")) { if (gAgent.cameraThirdPerson() ) { @@ -893,7 +893,7 @@ void LLToolGrab::handleHoverInactive(S32 x, S32 y, MASK mask) gAgent.yaw(rotate_angle); //gAgent.setControlFlags(AGENT_CONTROL_YAW_POS); } - else if (x == (gViewerWindow->getWindowWidth() - 1) ) + else if (x == (gViewerWindow->getWorldViewWidth() - 1) ) { gAgent.yaw(-rotate_angle); //gAgent.setControlFlags(AGENT_CONTROL_YAW_NEG); diff --git a/indra/newview/lltoolgun.cpp b/indra/newview/lltoolgun.cpp index 72fd8b3bac..3dc0ea646a 100644 --- a/indra/newview/lltoolgun.cpp +++ b/indra/newview/lltoolgun.cpp @@ -137,7 +137,7 @@ void LLToolGun::draw() { LLUIImagePtr crosshair = LLUI::getUIImage("crosshairs.tga"); crosshair->draw( - ( gViewerWindow->getWindowWidth() - crosshair->getWidth() ) / 2, - ( gViewerWindow->getWindowHeight() - crosshair->getHeight() ) / 2); + ( gViewerWindow->getWorldViewWidth() - crosshair->getWidth() ) / 2, + ( gViewerWindow->getWorldViewHeight() - crosshair->getHeight() ) / 2); } } diff --git a/indra/newview/lltoolmgr.cpp b/indra/newview/lltoolmgr.cpp index e3ee209030..cf3d15a12a 100644 --- a/indra/newview/lltoolmgr.cpp +++ b/indra/newview/lltoolmgr.cpp @@ -180,6 +180,8 @@ void LLToolMgr::setCurrentTool( LLTool* tool ) mBaseTool = tool; updateToolStatus(); + + mSavedTool = NULL; } LLTool* LLToolMgr::getCurrentTool() diff --git a/indra/newview/lltracker.cpp b/indra/newview/lltracker.cpp index 8e4f637832..5929ecd928 100644 --- a/indra/newview/lltracker.cpp +++ b/indra/newview/lltracker.cpp @@ -112,7 +112,7 @@ void LLTracker::stopTracking(void* userdata) // static virtual void LLTracker::drawHUDArrow() { - static LLCachedControl map_track_color(gSavedSkinSettings, "MapTrackColor", LLColor4::white); + static LLUIColor map_track_color = LLUIColorTable::instance().getColor("MapTrackColor", LLColor4::white); /* tracking autopilot destination has been disabled -- 2004.01.09, Leviathan @@ -163,7 +163,7 @@ void LLTracker::render3D() return; } - static LLCachedControl map_track_color(gSavedSkinSettings, "MapTrackColor", LLColor4::white); + static LLUIColor map_track_color = LLUIColorTable::instance().getColor("MapTrackColor", LLColor4::white); // Arbitary location beacon if( instance()->mIsTrackingLocation ) diff --git a/indra/newview/lluploaddialog.cpp b/indra/newview/lluploaddialog.cpp index f5160fd26c..153e3e7382 100644 --- a/indra/newview/lluploaddialog.cpp +++ b/indra/newview/lluploaddialog.cpp @@ -144,7 +144,7 @@ void LLUploadDialog::setMessage( const std::string& msg) msg_rect.setOriginAndSize( msg_x, msg_y, max_msg_width, line_height ); mLabelBox[line_num]->setRect(msg_rect); mLabelBox[line_num]->setText(cur_line); - mLabelBox[line_num]->setColor( gSavedSkinSettings.getColor( "LabelTextColor" ) ); + mLabelBox[line_num]->setColor( LLUIColorTable::instance().getColor( "LabelTextColor" ) ); mLabelBox[line_num]->setVisible(TRUE); msg_y -= line_height; ++line_num; diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index 320b950649..0f3feb789f 100644 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -78,7 +78,6 @@ BOOL gHackGodmode = FALSE; LLControlGroup gSavedSettings("Global"); // saved at end of session -LLControlGroup gSavedSkinSettings("Skinning"); // saved at end of session LLControlGroup gSavedPerAccountSettings("PerAccount"); // saved at end of session LLControlGroup gCrashSettings("CrashSettings"); // saved at end of session LLControlGroup gWarningSettings("Warnings"); // persists ignored dialogs/warnings @@ -585,7 +584,6 @@ void settings_setup_listeners() gSavedSettings.getControl("DebugViews")->getSignal()->connect(boost::bind(&handleDebugViewsChanged, _2)); gSavedSettings.getControl("UserLogFile")->getSignal()->connect(boost::bind(&handleLogFileChanged, _2)); gSavedSettings.getControl("RenderHideGroupTitle")->getSignal()->connect(boost::bind(handleHideGroupTitleChanged, _2)); - gSavedSkinSettings.getControl("EffectColor")->getSignal()->connect(boost::bind(handleEffectColorChanged, _2)); gSavedSettings.getControl("HighResSnapshot")->getSignal()->connect(boost::bind(handleHighResSnapshotChanged, _2)); gSavedSettings.getControl("VectorizePerfTest")->getSignal()->connect(boost::bind(&handleVectorizeChanged, _2)); gSavedSettings.getControl("VectorizeEnable")->getSignal()->connect(boost::bind(&handleVectorizeChanged, _2)); @@ -603,6 +601,69 @@ void settings_setup_listeners() gSavedSettings.getControl("VelocityInterpolate")->getSignal()->connect(boost::bind(&handleVelocityInterpolate, _2)); } +class ColorConvertFunctor : public LLControlGroup::ApplyFunctor +{ +public: + ColorConvertFunctor(LLUIColorTable::Params& params) + :mParams(params) + { + } + + void apply(const std::string& name, LLControlVariable* control) + { + if(control->isType(TYPE_COL4)) + { + LLUIColorTable::ColorParams color_params; + color_params.value = LLColor4(control->getValue()); + + mParams.color_entries.add(LLUIColorTable::ColorEntryParams().name(name).color(color_params)); + } + } + +private: + LLUIColorTable::Params& mParams; +}; + +static void convert_legacy_color_settings(const std::string& location_key, ELLPath path) +{ + LLControlGroup::getInstance("Skinning")->cleanup(); + LLAppViewer::instance()->loadSettingsFromDirectory(location_key); + + LLUIColorTable::Params params; + ColorConvertFunctor ccf(params); + LLControlGroup::getInstance("Skinning")->applyToAll(&ccf); + + LLXMLNodePtr output_node = new LLXMLNode("colors", false); + LLXUIParser::instance().writeXUI(output_node, params); + + if(!output_node->isNull()) + { + std::string filename = gDirUtilp->getExpandedFilename(path, "colors_def.xml"); + LLFILE *fp = LLFile::fopen(filename, "w"); + + if(fp != NULL) + { + LLXMLNode::writeHeaderToFile(fp); + output_node->writeToFile(fp); + + fclose(fp); + } + } + + LLControlGroup::getInstance("Skinning")->cleanup(); +} + +void convert_legacy_color_settings() +{ + LLControlGroup saved_skin_settings("Skinning"); + + convert_legacy_color_settings("DefaultSkin", LL_PATH_DEFAULT_SKIN); + convert_legacy_color_settings("CurrentSkin", LL_PATH_TOP_SKIN); + convert_legacy_color_settings("UserSkin", LL_PATH_USER_SKIN); + + saved_skin_settings.cleanup(); +} + #if TEST_CACHED_CONTROL diff --git a/indra/newview/llviewercontrol.h b/indra/newview/llviewercontrol.h index 3271e5fe9b..0e1c24e4fb 100644 --- a/indra/newview/llviewercontrol.h +++ b/indra/newview/llviewercontrol.h @@ -50,9 +50,12 @@ void settings_setup_listeners(); // for the graphics settings void create_graphics_group(LLControlGroup& group); +// convert legacy colors.xml LLSD based color settings to +// newer colors_def.xml XUI/Params based color settings +void convert_legacy_color_settings(); + // saved at end of session extern LLControlGroup gSavedSettings; -extern LLControlGroup gSavedSkinSettings; extern LLControlGroup gSavedPerAccountSettings; extern LLControlGroup gWarningSettings; diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 826aca5e64..ae7099d382 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -523,7 +523,7 @@ void init_menus() /// LLColor4 color; - LLColor4 context_menu_color = gSavedSkinSettings.getColor("MenuPopupBgColor"); + LLColor4 context_menu_color = LLUIColorTable::instance().getColor("MenuPopupBgColor"); gPieSelf->setBackgroundColor( context_menu_color ); gPieAvatar->setBackgroundColor( context_menu_color ); @@ -532,17 +532,17 @@ void init_menus() gPieLand->setBackgroundColor( context_menu_color ); - color = gSavedSkinSettings.getColor( "MenuPopupBgColor" ); + color = LLUIColorTable::instance().getColor( "MenuPopupBgColor" ); gPopupMenuView->setBackgroundColor( color ); // If we are not in production, use a different color to make it apparent. if (LLViewerLogin::getInstance()->isInProductionGrid()) { - color = gSavedSkinSettings.getColor( "MenuBarBgColor" ); + color = LLUIColorTable::instance().getColor( "MenuBarBgColor" ); } else { - color = gSavedSkinSettings.getColor( "MenuNonProductionBgColor" ); + color = LLUIColorTable::instance().getColor( "MenuNonProductionBgColor" ); } gMenuBarView = LLUICtrlFactory::getInstance()->createFromFile("menu_viewer.xml", gMenuHolder); gMenuBarView->setRect(LLRect(0, top, 0, top - MENU_BAR_HEIGHT)); @@ -7983,6 +7983,7 @@ void initialize_menus() // Advanced > XUI + commit.add("Advanced.ReloadColorSettings", boost::bind(&LLUIColorTable::loadFromSettings, LLUIColorTable::getInstance())); view_listener_t::addMenu(new LLAdvancedShowFontTest(), "Advanced.ShowFontTest"); view_listener_t::addMenu(new LLAdvancedLoadUIFromXML(), "Advanced.LoadUIFromXML"); view_listener_t::addMenu(new LLAdvancedSaveUIToXML(), "Advanced.SaveUIToXML"); diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp index 8e9c798aca..468c9fbb66 100644 --- a/indra/newview/llviewerobjectlist.cpp +++ b/indra/newview/llviewerobjectlist.cpp @@ -1020,16 +1020,16 @@ void LLViewerObjectList::shiftObjects(const LLVector3 &offset) void LLViewerObjectList::renderObjectsForMap(LLNetMap &netmap) { - LLColor4 above_water_color = gSavedSkinSettings.getColor( "NetMapOtherOwnAboveWater" ); - LLColor4 below_water_color = gSavedSkinSettings.getColor( "NetMapOtherOwnBelowWater" ); + LLColor4 above_water_color = LLUIColorTable::instance().getColor( "NetMapOtherOwnAboveWater" ); + LLColor4 below_water_color = LLUIColorTable::instance().getColor( "NetMapOtherOwnBelowWater" ); LLColor4 you_own_above_water_color = - gSavedSkinSettings.getColor( "NetMapYouOwnAboveWater" ); + LLUIColorTable::instance().getColor( "NetMapYouOwnAboveWater" ); LLColor4 you_own_below_water_color = - gSavedSkinSettings.getColor( "NetMapYouOwnBelowWater" ); + LLUIColorTable::instance().getColor( "NetMapYouOwnBelowWater" ); LLColor4 group_own_above_water_color = - gSavedSkinSettings.getColor( "NetMapGroupOwnAboveWater" ); + LLUIColorTable::instance().getColor( "NetMapGroupOwnAboveWater" ); LLColor4 group_own_below_water_color = - gSavedSkinSettings.getColor( "NetMapGroupOwnBelowWater" ); + LLUIColorTable::instance().getColor( "NetMapGroupOwnBelowWater" ); for (S32 i = 0; i < mMapObjects.count(); i++) diff --git a/indra/newview/llviewerparceloverlay.cpp b/indra/newview/llviewerparceloverlay.cpp index 5b60ed5a27..2056a4be1b 100644 --- a/indra/newview/llviewerparceloverlay.cpp +++ b/indra/newview/llviewerparceloverlay.cpp @@ -206,12 +206,12 @@ void LLViewerParcelOverlay::updateOverlayTexture() { return; } - const LLColor4U avail = gSavedSkinSettings.getColor4("PropertyColorAvail"); - const LLColor4U owned = gSavedSkinSettings.getColor4("PropertyColorOther"); - const LLColor4U group = gSavedSkinSettings.getColor4("PropertyColorGroup"); - const LLColor4U self = gSavedSkinSettings.getColor4("PropertyColorSelf"); - const LLColor4U for_sale = gSavedSkinSettings.getColor4("PropertyColorForSale"); - const LLColor4U auction = gSavedSkinSettings.getColor4("PropertyColorAuction"); + const LLColor4U avail = LLUIColorTable::instance().getColor("PropertyColorAvail").get(); + const LLColor4U owned = LLUIColorTable::instance().getColor("PropertyColorOther").get(); + const LLColor4U group = LLUIColorTable::instance().getColor("PropertyColorGroup").get(); + const LLColor4U self = LLUIColorTable::instance().getColor("PropertyColorSelf").get(); + const LLColor4U for_sale = LLUIColorTable::instance().getColor("PropertyColorForSale").get(); + const LLColor4U auction = LLUIColorTable::instance().getColor("PropertyColorAuction").get(); // Create the base texture. U8 *raw = mImageRaw->getData(); @@ -314,11 +314,11 @@ void LLViewerParcelOverlay::updatePropertyLines() S32 row, col; - const LLColor4U self_coloru = gSavedSkinSettings.getColor4("PropertyColorSelf"); - const LLColor4U other_coloru = gSavedSkinSettings.getColor4("PropertyColorOther"); - const LLColor4U group_coloru = gSavedSkinSettings.getColor4("PropertyColorGroup"); - const LLColor4U for_sale_coloru = gSavedSkinSettings.getColor4("PropertyColorForSale"); - const LLColor4U auction_coloru = gSavedSkinSettings.getColor4("PropertyColorAuction"); + const LLColor4U self_coloru = LLUIColorTable::instance().getColor("PropertyColorSelf").get(); + const LLColor4U other_coloru = LLUIColorTable::instance().getColor("PropertyColorOther").get(); + const LLColor4U group_coloru = LLUIColorTable::instance().getColor("PropertyColorGroup").get(); + const LLColor4U for_sale_coloru = LLUIColorTable::instance().getColor("PropertyColorForSale").get(); + const LLColor4U auction_coloru = LLUIColorTable::instance().getColor("PropertyColorAuction").get(); // Build into dynamic arrays, then copy into static arrays. LLDynamicArray new_vertex_array; diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 2689fff533..569eba2f20 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -1526,10 +1526,10 @@ void LLViewerWindow::initBase() params.rect(LLRect (0, 1, 1, 0)); params.h_pad(4); params.v_pad(2); - params.text_color(gSavedSkinSettings.getColor( "ToolTipTextColor" )); - params.border_color(gSavedSkinSettings.getColor( "ToolTipBorderColor" )); + params.text_color(LLUIColorTable::instance().getColor( "ToolTipTextColor" )); + params.border_color(LLUIColorTable::instance().getColor( "ToolTipBorderColor" )); params.border_visible(false); - params.background_color(gSavedSkinSettings.getColor( "ToolTipBgColor" )); + params.background_color(LLUIColorTable::instance().getColor( "ToolTipBgColor" )); params.bg_visible(true); params.font.style("NORMAL"); params.border_drop_shadow_visible(true); @@ -1824,7 +1824,7 @@ void LLViewerWindow::reshape(S32 width, S32 height) // store the mode the user wants (even if not there yet) - gSavedSettings.setBOOL("NotFullScreen", !mWantFullscreen); + gSavedSettings.setBOOL("WindowFullScreen", mWantFullscreen); // store new settings for the mode we are in, regardless if (!mWindow->getFullscreen()) @@ -1887,19 +1887,19 @@ void LLViewerWindow::setMenuBackgroundColor(bool god_mode, bool dev_grid) if(god_mode && LLViewerLogin::getInstance()->isInProductionGrid()) { - new_bg_color = gSavedSkinSettings.getColor( "MenuBarGodBgColor" ); + new_bg_color = LLUIColorTable::instance().getColor( "MenuBarGodBgColor" ); } else if(god_mode && !LLViewerLogin::getInstance()->isInProductionGrid()) { - new_bg_color = gSavedSkinSettings.getColor( "MenuNonProductionGodBgColor" ); + new_bg_color = LLUIColorTable::instance().getColor( "MenuNonProductionGodBgColor" ); } else if(!god_mode && !LLViewerLogin::getInstance()->isInProductionGrid()) { - new_bg_color = gSavedSkinSettings.getColor( "MenuNonProductionBgColor" ); + new_bg_color = LLUIColorTable::instance().getColor( "MenuNonProductionBgColor" ); } else { - new_bg_color = gSavedSkinSettings.getColor( "MenuBarBgColor" ); + new_bg_color = LLUIColorTable::instance().getColor( "MenuBarBgColor" ); } if(gMenuBarView) @@ -2162,10 +2162,11 @@ BOOL LLViewerWindow::handleKey(KEY key, MASK mask) LLUICtrl* keyboard_focus = gFocusMgr.getKeyboardFocus(); if( keyboard_focus ) { + LLLineEditor* chat_bar = gBottomTray ? gBottomTray->getChatBox() : NULL; // arrow keys move avatar while chatting hack - if (gChatBar && gChatBar->inputEditorHasFocus()) + if (chat_bar && chat_bar->hasFocus()) { - if (gChatBar->getCurrentChat().empty() || gSavedSettings.getBOOL("ArrowKeysMoveAvatar")) + if (chat_bar->getText().empty() || gSavedSettings.getBOOL("ArrowKeysMoveAvatar")) { switch(key) { @@ -2895,15 +2896,17 @@ void LLViewerWindow::updateKeyboardFocus() if(LLSideTray::instanceCreated())//just getInstance will create sidetray. we don't want this LLSideTray::getInstance()->highlightFocused(); - - if (gSavedSettings.getBOOL("ChatBarStealsFocus") - && gChatBar - && gFocusMgr.getKeyboardFocus() == NULL - && gChatBar->isInVisibleChain()) - { - gChatBar->startChat(NULL); - } + //NOTE: this behavior is no longer desirable with a permanently visible chat batr + // which would *always* steal focus, disallowing navigation of the world via WASD controls --RN + + //if (gSavedSettings.getBOOL("ChatBarStealsFocus") + // && gChatBar + // && gFocusMgr.getKeyboardFocus() == NULL + // && gChatBar->isInVisibleChain()) + //{ + // gChatBar->startChat(NULL); + //} } @@ -4649,7 +4652,7 @@ BOOL LLViewerWindow::changeDisplaySettings(BOOL fullscreen, LLCoordScreen size, BOOL was_maximized = gSavedSettings.getBOOL("WindowMaximized"); mWantFullscreen = fullscreen; mShowFullscreenProgress = show_progress_bar; - gSavedSettings.setBOOL("NotFullScreen", !mWantFullscreen); + gSavedSettings.setBOOL("WindowFullScreen", mWantFullscreen); //gResizeScreenTexture = TRUE; diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index c2b54ec9c6..b38e71236d 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -2660,7 +2660,7 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last) new_name = TRUE; } - LLColor4 avatar_name_color = gSavedSkinSettings.getColor( "AvatarNameColor" ); + LLColor4 avatar_name_color = LLUIColorTable::instance().getColor( "AvatarNameColor" ); avatar_name_color.setAlpha(alpha); mNameText->setColor(avatar_name_color); @@ -2802,7 +2802,7 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last) std::deque::iterator chat_iter = mChats.begin(); mNameText->clearString(); - LLColor4 new_chat = gSavedSkinSettings.getColor( "AvatarNameColor" ); + LLColor4 new_chat = LLUIColorTable::instance().getColor( "AvatarNameColor" ); LLColor4 normal_chat = lerp(new_chat, LLColor4(0.8f, 0.8f, 0.8f, 1.f), 0.7f); LLColor4 old_chat = lerp(normal_chat, LLColor4(0.6f, 0.6f, 0.6f, 1.f), 0.7f); if (mTyping && mChats.size() >= MAX_BUBBLE_CHAT_UTTERANCES) diff --git a/indra/newview/llvosky.cpp b/indra/newview/llvosky.cpp index d99758edf8..d4df141477 100644 --- a/indra/newview/llvosky.cpp +++ b/indra/newview/llvosky.cpp @@ -368,7 +368,7 @@ LLVOSky::LLVOSky(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp) initSunDirection(mSunDefaultPosition, LLVector3(0, 0, 0)); } mAmbientScale = gSavedSettings.getF32("SkyAmbientScale"); - mNightColorShift = gSavedSkinSettings.getColor3("SkyNightColorShift"); + mNightColorShift = gSavedSettings.getColor3("SkyNightColorShift"); mFogColor.mV[VRED] = mFogColor.mV[VGREEN] = mFogColor.mV[VBLUE] = 0.5f; mFogColor.mV[VALPHA] = 0.0f; mFogRatio = 1.2f; diff --git a/indra/newview/llworldmapview.cpp b/indra/newview/llworldmapview.cpp index 9ac758433c..9e04c14beb 100644 --- a/indra/newview/llworldmapview.cpp +++ b/indra/newview/llworldmapview.cpp @@ -284,7 +284,7 @@ BOOL is_agent_in_region(LLViewerRegion* region, LLSimInfo* info) void LLWorldMapView::draw() { - static LLCachedControl map_track_color(gSavedSkinSettings, "MapTrackColor", LLColor4::white); + static LLUIColor map_track_color = LLUIColorTable::instance().getColor("MapTrackColor", LLColor4::white); LLTextureView::clearDebugImages(); @@ -908,8 +908,8 @@ void LLWorldMapView::drawImageStack(const LLVector3d& global_pos, LLUIImagePtr i void LLWorldMapView::drawAgents() { - static LLCachedControl map_avatar_color(gSavedSkinSettings, "MapAvatarColor", LLColor4::white); - static LLCachedControl map_avatar_friend_color(gSavedSkinSettings, "MapAvatarFriendColor", LLColor4::white); + static LLUIColor map_avatar_color = LLUIColorTable::instance().getColor("MapAvatarColor", LLColor4::white); + static LLUIColor map_avatar_friend_color = LLUIColorTable::instance().getColor("MapAvatarFriendColor", LLColor4::white); F32 agents_scale = (gMapScale * 0.9f) / 256.f; diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 25ed853146..88d2eab66d 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -5094,8 +5094,8 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield) F32 minLum = llmax(gSavedSettings.getF32("RenderGlowMinLuminance"), 0.0f); F32 maxAlpha = gSavedSettings.getF32("RenderGlowMaxExtractAlpha"); F32 warmthAmount = gSavedSettings.getF32("RenderGlowWarmthAmount"); - LLVector3 lumWeights = gSavedSkinSettings.getVector3("RenderGlowLumWeights"); - LLVector3 warmthWeights = gSavedSkinSettings.getVector3("RenderGlowWarmthWeights"); + LLVector3 lumWeights = gSavedSettings.getVector3("RenderGlowLumWeights"); + LLVector3 warmthWeights = gSavedSettings.getVector3("RenderGlowWarmthWeights"); gGlowExtractProgram.uniform1f("minLuminance", minLum); gGlowExtractProgram.uniform1f("maxExtractAlpha", maxAlpha); gGlowExtractProgram.uniform3f("lumWeights", lumWeights.mV[0], lumWeights.mV[1], lumWeights.mV[2]); diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml index 49ea0bc8aa..94b9b04bb0 100644 --- a/indra/newview/skins/default/colors.xml +++ b/indra/newview/skins/default/colors.xml @@ -123,9 +123,9 @@ Color4 Value - 0.94 - 0.61 - 0 + 1 + 1 + 1 1 @@ -171,9 +171,9 @@ Color4 Value - 1 - 0.75 - 0.24 + 0.334399998188018798828125 + 0.545599997043609619140625 + 0.51590001583099365234375 0.5 @@ -203,10 +203,10 @@ Color4 Value - 0.86 - 0.86 - 0.86 - 1 + 1 + 1 + 1 + 1 ButtonLabelDisabledColor @@ -219,10 +219,10 @@ Color4 Value - 0.58 - 0.66 - 0.84 - 0.78 + 0.75 + 0.75 + 0.75 + 0.7799999713897705078125 ButtonLabelSelectedColor @@ -251,10 +251,10 @@ Color4 Value - 0.64 - 0.75 - 0.93 - 0.78 + 1 + 1 + 1 + 0.7799999713897705078125 ButtonSelectedBgColor @@ -267,9 +267,9 @@ Color4 Value - 0.24 - 0.24 - 0.24 + 1 + 1 + 1 1 @@ -299,9 +299,9 @@ Color4 Value - 0.24 - 0.24 - 0.24 + 1 + 1 + 1 1 @@ -411,9 +411,9 @@ Color4 Value - 0.5 - 0.0 - 0.0 + 0.334399998188018798828125 + 0.545599997043609619140625 + 0.51590001583099365234375 1.0 @@ -1003,9 +1003,9 @@ Color4 Value - 0 - 0 - 0.08 + 1 + 1 + 1 1 @@ -1035,9 +1035,9 @@ Color4 Value - 0.94 - 0.61 - 0 + 0.334399998188018798828125 + 0.545599997043609619140625 + 0.51590001583099365234375 1 @@ -1115,9 +1115,9 @@ Color4 Value - 0.94 - 0.61 - 0 + 0.272800028324127197265625 + 0.607199966907501220703125 + 0.5601749420166015625 1 @@ -1131,9 +1131,9 @@ Color4 Value - 0.94 - 0.65 - 0.35 + 0.334399998188018798828125 + 0.545599997043609619140625 + 0.51590001583099365234375 1 @@ -1211,9 +1211,9 @@ Color4 Value - 0.27 - 0.67 - 1 + 0.334399998188018798828125 + 0.545599997043609619140625 + 0.51590001583099365234375 1 @@ -1259,10 +1259,10 @@ Color4 Value - 0.60 - 0.60 - 1.0 - 1.0 + 0.334399998188018798828125 + 0.545599997043609619140625 + 0.51590001583099365234375 + 1 HealthTextColor @@ -1404,9 +1404,9 @@ Value 1 + 0.5 0 1 - 1 HighlightParentColor @@ -1595,9 +1595,9 @@ Color4 Value - 0.64 - 0.75 - 0.93 + 1 + 1 + 1 0.5 @@ -1611,9 +1611,9 @@ Color4 Value - 0.58 - 0.66 - 0.84 + 1 + 1 + 1 1 @@ -1724,9 +1724,9 @@ Color4 Value - 0.0 1.0 - 0.0 + 1.0 + 1.0 1.0 @@ -1756,10 +1756,10 @@ Color4 Value - 1.0 - 1.0 - 1.0 - 1.0 + 0.53125 + 0 + 0.498047053813934326171875 + 1 MapFrustumColor @@ -1854,9 +1854,9 @@ Color4 Value - 0.24 - 0.5 - 0.24 + 0.0 + 0.0 + 0.0 1 @@ -2014,9 +2014,9 @@ Color4 Value - 0.72 - 0.72 - 0.74 + 1 + 1 + 1 1 @@ -2500,36 +2500,6 @@ 0.4 - RenderGlowLumWeights - - Comment - Weights for each color channel to be used in calculating luminance (should add up to 1.0) - Persist - 1 - Type - Vector3 - Value - - 0.299 - 0.587 - 0.114 - - - RenderGlowWarmthWeights - - Comment - Weight of each color channel used before finding the max warmth - Persist - 1 - Type - Vector3 - Value - - 1.0 - 0.5 - 0.7 - - ScriptBgReadOnlyColor Comment @@ -2572,10 +2542,10 @@ Color4 Value - 0.39 - 0.39 - 0.39 - 0.16 + 0.334399998188018798828125 + 0.545599997043609619140625 + 0.51590001583099365234375 + 0.1599999964237213134765625 ScrollBgReadOnlyColor @@ -2716,9 +2686,9 @@ Color4 Value - 0.24 - 0.3 - 0.49 + 1 + 1 + 1 1 @@ -2732,9 +2702,9 @@ Color4 Value - 0.6 - 0.6 - 0.62 + 1 + 1 + 1 1 @@ -2770,21 +2740,6 @@ 1 - SkyNightColorShift - - Comment - Controls moonlight color (base color applied to moon as light source) - Persist - 1 - Type - Color3 - Value - - 0.67 - 0.67 - 1.0 - - SliderDisabledThumbColor Comment @@ -2795,9 +2750,9 @@ Color4 Value - 0 - 0 - 0 + 1 + 1 + 1 1 @@ -2811,9 +2766,9 @@ Color4 Value - 0.78 - 0.78 - 0.78 + 1 + 1 + 1 1 diff --git a/indra/newview/skins/default/textures/containers/Accordion_ArrowClosed_Off.png b/indra/newview/skins/default/textures/containers/Accordion_ArrowClosed_Off.png new file mode 100644 index 0000000000000000000000000000000000000000..19c842b81689c95e048cb2d14cbf2419ff6dc692 GIT binary patch literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4NtU=qlmzFem6RtIr7}3C>XIfEVx+!T**yG?cEvG*Q9BmPuHFKt+P)Nr*j@3>%T?ZW9a~hagBp6IZ W)VE#U^K%Z+a0X9TKbLh*2~7ZxB0ZV_ literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/containers/Accordion_ArrowClosed_Over.png b/indra/newview/skins/default/textures/containers/Accordion_ArrowClosed_Over.png new file mode 100644 index 0000000000000000000000000000000000000000..e47f913db1a3025f19fcaf02d4bd30645457eefd GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4NtU=qlmzFem6RtIr7}3C zjVA^oO4@2G1eQre_6eRfeqon<f4NtU=qlmzFem6RtIr7}3Cp;)CMP>>XIfEVx+!T**yG?cEvG*Q9BmOzOHVfz3h7wKvDzu8>wu$sP6IQG1Vhh3 Wb@BItTTFq5GkCiCxvXf4NtU=qlmzFem6RtIr7}3Cf4NtU=qlmzFem6RtIr7}3CbZ{94qaixP;`XRNBP~)l(40Auq$I7)xu9WLzU}R&sog-`BC9uI0 PXe@)LtDnm{r-UW|$6+{3 literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/containers/Accordion_Off.png b/indra/newview/skins/default/textures/containers/Accordion_Off.png new file mode 100644 index 0000000000000000000000000000000000000000..414f4509c6f7db90fa6ad017dc55d248184bd355 GIT binary patch literal 239 zcmeAS@N?(olHy`uVBq!ia0y~yV3Y*1B{k35G7gS8c`CQpH@kx(6&P&)J{k z@tXDBVZ**hhfiq>e*85@is5&vWU|fmC?)2caIcfMzZ*TTNnh5 zJI28zopr05y(Nga7~l literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/containers/Accordion_Over.png b/indra/newview/skins/default/textures/containers/Accordion_Over.png new file mode 100644 index 0000000000000000000000000000000000000000..5416d733108f2d382bcdec6fc096a01e5ca773c6 GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0y~yV3Y*1B{k35G7gS8c`CQpH@G9zV%-c>dC^2{NG+?26^cf~Hy0AHk35G7gS8c`CQpH@f&OyOYoucs*|y7I=;vPdw*z75wa TjZvQqw3Wfr)z4*}Q$iB}ey={8 literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/containers/Container.png b/indra/newview/skins/default/textures/containers/Container.png new file mode 100644 index 0000000000000000000000000000000000000000..511eb94386fee975c567d67c8db3a666896ee1f6 GIT binary patch literal 673 zcmeAS@N?(olHy`uVBq!ia0vp^zd)FS4M=vpiLwP!k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n4CRb978H@y}9hjd%!?|`CzfAj$*(+7q4fFCcJoT^4WmF zd-kd-Zi(ExFW;RPH3**ccL(D$VJi+<0V{j~gd-q=Xf7klTny(nTp(;Ns*i~c1~e}#lwi0Q!(4PP zGcLq%FG^%!^)iPnL31&@?C=7oxd;AVo2znL)Zn^c0z+yuTgc80Aya{Aj=|H_&t;uc GLK6TQ?9i(K literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/containers/TabTop_Left_Off.png b/indra/newview/skins/default/textures/containers/TabTop_Left_Off.png new file mode 100644 index 0000000000000000000000000000000000000000..1951413f8de36576a01e0babf58e5d2599634d6f GIT binary patch literal 339 zcmV-Z0j&OsP)=Vj4t>S&=@Pjd&vNy{4(zwO+-qfwT}6<;#u&_)Wj2dDC<1W zmqk&iBuOG;jGZ`_gXTw^W!a`IOXHji^Q@6PVnTq1!(g7yHON4|sM2p$!p4kj3>-7=7*q*Y30DbM2~~o8u`!VEzsWZMhT)(}kneZ$ lMU_5ONjc{t;JD`^zyNKt(66$^ZG8X$002ovPDHLkV1ktpk!%0} literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/containers/TabTop_Left_Over.png b/indra/newview/skins/default/textures/containers/TabTop_Left_Over.png new file mode 100644 index 0000000000000000000000000000000000000000..295cd89a57e8c0986f577a5094e926b5bd76d89b GIT binary patch literal 337 zcmV-X0j~auP)%HI9 zbv>)9YN3>xX3ix@K1%1@u4$U3F(x|Y$aChQjKP=)X5Y4LVXa+7Qal#{bzlx5ghI2D zQy>NtVJK!2BXr6178Ia?=~_zxZU14xXB{|j_Ls5Fl6upQ^Kg@HBiMV9wR?>%>pWM*M22!h;Pr{-kl zL}KD4J(RP@*XQfveswv|@(U60V#-hyRZ7~VtY4n4iif)!68hwA`>9l=HU}<2}ap5#&3NZ#%BZ9w2GQHMNN$bkcreHt!$7SNRPhzOwizaA4BKu_6^I zAgL>jl3Kp?KL)f?e=hkwMqrN_>@lK!D`E2;$u|Us!v!$El!ST@ska3K$Bf=e+=0Pk zX#fU}`O7ho%)Vrh7>w(Gjcew4oJip4|>!;J3vH$=807*qoM6N<$g2lzm A=Kufz literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/containers/TabTop_Middle_Off.png b/indra/newview/skins/default/textures/containers/TabTop_Middle_Off.png new file mode 100644 index 0000000000000000000000000000000000000000..21f1c2d8a87298f424ee7e36d465174784182b68 GIT binary patch literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^Za^&0!3HFw*6-d8q$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6)o{}aSW-r^=9Tqt_A}h7h%mC|3Ch(KXq1fTZxx1S5x_4|m2B~!my{ASdj^KG6)Hv3_2b?w9ACfSFZSoYbPx#i3W zDGlL_f3#E0kh8{6&B%={Wy2xkHm%meOs0Js4bPZ=or^7Ccvz~ zlv1SDdI!hX)jB1Sob%pV+rjbCW}$WzU;wQ%$TYDa>_Gqk N002ovPDHLkV1l*R}{s8thL95JLXk>RaJfzMcWlvjAX+w>>cFw9m6h8kg$+`;bAK&aGA&yI|0S0 zi~(jAjCz&~a10+cM2OO)T^tLP?>iVZLT`65ccM+uIZaSS?UzGDz2Y$a?ZY$Zeq z8yYfYpK14|wV>D2V^$=hHF5v2`Vdz2^00000NkvXXu0mjf DkRXy5 literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/containers/TabTop_Right_Over.png b/indra/newview/skins/default/textures/containers/TabTop_Right_Over.png new file mode 100644 index 0000000000000000000000000000000000000000..c2cbc2b1e5d539487045676fb58534acf2205129 GIT binary patch literal 362 zcmV-w0hRuVP)<`_S_ugz^BAOBEC|yXej4@k# zp=2|WbDB~a9Ngf`KaM0 za;$UGG(E&|ys=gSl53SVYr-(JfQHse=GG{plkfX|S$kG708`b2g}R(zrz(k=={~NF z0hxEz01UwV0EPhOv!IwJ#axFHz&uSQWK6AGZY%(%9t_{Z7ep#B2;Z-YLHOc}C~03_rGE3E8p5dZ)H07*qo IM6N<$f;It<@&Et; literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/containers/TabTop_Right_Selected.png b/indra/newview/skins/default/textures/containers/TabTop_Right_Selected.png new file mode 100644 index 0000000000000000000000000000000000000000..b0f1f163982e7527ce895cf601663a642095f4e5 GIT binary patch literal 474 zcmV<00VV#4P)RCwC#mpx9yP!NRI&iW@HkVrug zhoGUNgC1JW$Q7uNQg8vp1*if@6b=E$etygP`7c(Sg4(muTCvMdv$H!M5nU20*IsLX zh{&q^zz?sByTIpQ)Ks$k=j;7*`TY3w=6T+W!dY^%Nz=?^$!MvF=La14hx3!OoBP`% zV~i-AwJ$=}3ejkr#BNMxzBlQw1RP&nU(FTQISc7eYwRXt6oFUd`SIy&rms^j#UwD_ z%4-TMQ5?nkcfz8BB>DgrRY=)(;=8S+GbRN=GfmlgfY{j!hN)9c&4R61DKJW%V#GFz zaZ3r3X%$oX3Onlsm@UOL9^>v9xNo^s|z5U=Wsez`$enc?|BmVUvMku&)2Tu0;;Qh=HPSzJCG?0OdYx`!K|n QN&o-=07*qoM6N<$f@2NV3IG5A literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/containers/Toolbar_Left_Off.png b/indra/newview/skins/default/textures/containers/Toolbar_Left_Off.png new file mode 100644 index 0000000000000000000000000000000000000000..41b5d24d87e8028c542cd0456ffa2c4572313d77 GIT binary patch literal 306 zcmV-20nPr2P)X1^@s6$@ldn0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUy)Ja4^RCwC#mQ4!6Fc5_&nj#p2xDglK z^acTM(p|66L-z(Qgn*(X-OU~-iBew-g^UiR*OnGfERa?<@8_(_*;Mh0Kho8jMCp7egFUf07*qoM6N<$ Ef~#nT%>V!Z literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/containers/Toolbar_Left_Over.png b/indra/newview/skins/default/textures/containers/Toolbar_Left_Over.png new file mode 100644 index 0000000000000000000000000000000000000000..083acc01564d748c95d3e5900a9d793aaf0c0038 GIT binary patch literal 310 zcmV-60m=S}P)X1^@s6$@ldn0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUy*hxe|RCwCVmOT!GFbsvApDF{YsxDP$ zF2GPJbFPrna9d8%DyS6F=L%3yU}MQR+vn$(gcu@v)LKVWN3t<{{sKOsJcZ%GuZy~- zWYkSLX@uX~5N^O2L!0tnsEu7?^v6)XEQ=`FTC1m=d1{_B&;K=|<2m~+?fHJrRh6r5 zIE}G0?+|0xJ8G()YyHz1K9^EH&N)%>4C6=RCB`_mZELXu#poWv@b@qb*PQbdLa$;}z`&UYd(1ge{+H5M(z!~L+Y>+1j_*Z}d0E5o7tR|q}bpQYW07*qo IM6N<$g61@cZvX%Q literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/containers/Toolbar_Left_Selected.png b/indra/newview/skins/default/textures/containers/Toolbar_Left_Selected.png new file mode 100644 index 0000000000000000000000000000000000000000..ee4649a8f969a07083e1269eb4235f2f95e79188 GIT binary patch literal 380 zcmV-?0fYXDP)X1^@s6$@ldn0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUz9!W$&RCwCNmBCTNFc3vovSb@GI0KWR z1Fl?hfF8J0CT-9HC6I7Q$i&8uw986%1}gZLw3csA|L>RWh-mZn@%~g5z9Qfl;(2iC z<entmQW;hcIy61_R;k(bReE)O?32*CWf;YFTF${i0 z!kcP_=WiSMq9vZA1?iR+98=mg>5NXh@)lLTxb2ZScDfe~bY5oL`{URC;HDu+(N)J&Z(rzv~^#C`z-D_QIc|_lT a1sDJ{ZpeJS%Rd?b0000?nK7lRbzdu= zNy_(GCy%SXP1|;}>aOa8a20ii^{P$JqIIVVZk_k`-L!4WA3_eb*WI2zRrX9`_4`S1sUv?tUH4L7velF{r5}E)nfmuKR literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/containers/Toolbar_Middle_Over.png b/indra/newview/skins/default/textures/containers/Toolbar_Middle_Over.png new file mode 100644 index 0000000000000000000000000000000000000000..2f6ea9019635ebe178195dcdd3e269e12cce847c GIT binary patch literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^@<1%f!3HExe*dZh;*_{XlmzFem6RtIr7}3Cc@uw^Y?`_9m%xKN!g_6MS?9PP_g9}D zWbypu5hMRJ+4%`Z=l67;`EThycQLQ~RNI*qH+Kd)8!r#j+7&Ua;GEeVIi*v1h4xKf bI1L!2F0O9YuDo~^=pqJBS3j3^P6X1^@s6$@ldn0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUy%1J~)RCwCt)XfdTFboA?7hYOg2@tce z6~nOxD=-3Z0wh}cV;iS1gMA>${gdq%7svDIP%TqM&Zpk^T6Geawn uZMz1wJ-dIN_H|jOh_vUOzK^Q>BftPK9-Lt&z#5$Z0000X1^@s6$@ldn0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUy&`Cr=RCwC#mO&1}AP_|d+N4Pry6^(t z!Mk#R?s_VAE?jg2>cYr4Lm=q|{E+BRrVVUf|7V~WWOb`fi(MTLqHWuZbM7Eh*Btvi&(pWz zAp~BQ#R~Z7y?=<|p!P4I#Py1Pm%1rfCq4oU0R2zHl8FC-aR2}S07*qoM6N<$f`STz AhX4Qo literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/containers/Toolbar_Right_Over.png b/indra/newview/skins/default/textures/containers/Toolbar_Right_Over.png new file mode 100644 index 0000000000000000000000000000000000000000..74e00635f1d719344c00049c1081901fa1204795 GIT binary patch literal 297 zcmV+^0oMMBP)X1^@s6$@ldn0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUy%Sl8*RCwCNmcb3fAPhwfL2aat(qpG& zDGqGF5;^o*B81vNZ4|me{Vh2XT%P|o4w&Bioro6Fjl&qTI)=Y_k(J?B&eid!pQ#yx zC&~#GZj_;10QZ}w@)0oGQP$&?x7Jk2)>@qM$%FKK^4wVnrsvXc?VkVU9I708;1IS? z9^7`^s6l&)1iEHOp_7PSK>iUpi=Chz@?x3*#Xh2!7wTI&%) v7~quB&e)gyWFJb7%M*R)dX1^@s6$@ldn0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUz8%ab#RCwCN)JsmoFc1LHu`@|%BtYDv zdsbY7V{kMU*&)P|70L}b0ip#(rB#zU$;@CISK&T|IH=>FBH4i9;eFVq(>_Q%V0KmpqXJ zuzt;fQ`%W%0bM+p=d=rGH+uq+e9C9-hD&8e1{Up_2Q%W^&yDO)gVDsVE}B2Qxw)Pe zS5BIEQztx*obsTZJ%o(9g^UYBud{ZyCogN{dDAY+X}87zGY#RPQ}1@Pg*|-jdjC6G z&4{Z4ZEbMq+GpplK4Q0DR;yBBv`_o*zJGmua$Wnf@$4bI>9>Yo z>%n7y=gO5Um%udt{{4GBkk%u{08qI2p=n+Vq*c*fjLiT(K|#Uj&6_tbhiU%v=g$ft zt%c3Y7zS8dTZbJva%2rm^N$}tCIe|nTw#V`05Fg$k!;>;Vq%g6)Wc7-0U&<@H7*1h z@bBNh{f7=6T5V)xR0z~3K$HPc1%iM7{%wW1T~8#0m`gc4R{w z92^>eQffq}10bIZh~Z)K_U+r9b#--xq$DJmK{+r(zJLE-OR@n_LqIM8MJYeJ0gRMp cXMg|$02GbV0X^cc@c;k-07*qoM6N<$g8Z|b7XSbN literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/navbar/Arrow_Left_Over.png b/indra/newview/skins/default/textures/navbar/Arrow_Left_Over.png new file mode 100644 index 0000000000000000000000000000000000000000..a91b74819f2081adf8fb343655d768477619c85f GIT binary patch literal 381 zcmV-@0fPRCP)$TTdfUgxCly&eSPuaMJU4FKc;r76ynXw24JihA z?%cWaBuw+4KYv~TDLY~e0ELSmQ1b~S&Ch_8A-b2b8NeqdCKh|};K6e+&42&?y$_@; zu!R|h0bX8Su@^2}xB=7r>({TtKuQr;pko*S45WETHve&Qa>@ki;V0SvAT|POyaqDh z-@kwV&z(DW&EDR=5~xprCvq{LC^^x(~$Agr%&5~^nMUtv0}v%pprl! zX2+!m!vG+*`19w_I+!6qm#mPMmX1UAE?xtm3KV|*`ZX73$kC%m*YNT2MFXXHh%x}G zNCMfABS(&`QBzYZ1WHK~WdPI=v2WkLfx=`T$dCsQ9&AlYN=hKw03Z-FFfhpa{rmSm zm`gr=`cy)!0Wu~gCRG7_S?5_cjD4a(16dMKi45?P9v0hv86;YAnpX>IAW4NBc<6H aAiw}&IL}9QF_Y#10000Dj literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/navbar/Arrow_Right_Over.png b/indra/newview/skins/default/textures/navbar/Arrow_Right_Over.png new file mode 100644 index 0000000000000000000000000000000000000000..a2caf227a73d39d0f58f5d5d0dcaf1086aea54b9 GIT binary patch literal 379 zcmV->0fhdEP)(`mY8X)87=-71Y)~)+6&Hw)W+X$qji7`MjDJf~<+qZAu{YQW~K+Hi*Aj(HXMD%_5 z@Zlqp=7~h7gT}_j>W?2kenQebiKLYH?c29yNSZrHPRgLD1LEyKT!$+MBCBVlG&=(X Z7y#g&@|&zvz~%q|002ovPDHLkV1lBLq$mIY literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/navbar/Favorite_Star_Active.png b/indra/newview/skins/default/textures/navbar/Favorite_Star_Active.png new file mode 100644 index 0000000000000000000000000000000000000000..a4060e5e376bec6a202203df50ed98d96782b506 GIT binary patch literal 641 zcmV-{0)G98P)eL5cb_B7Uk-Co-3mQbNWZ zs!**W&s&vhjiulFElOysx=`I6$5`v!_191Adi#On-}b&@+04-$!q9IAL0B>d$|w?h==a!yuJ0PR}$eX&+?Bzb_Xid$%MEE$GK3c z)%>H!Nc(-oINu4va1G=-tSgRH4UL4-HxSKZLg+5^4HzvPr%&4%JR zMALMEn+Nz{5>W*CScGb922r#MdHH~a`hCd==%tN#ZmtIvy@ELKA7G6}*T}5yBkIj) b{1jjSOwBd&Au!k|00000NkvXXu0mjfS&uQd literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/navbar/Favorite_Star_Off.png b/indra/newview/skins/default/textures/navbar/Favorite_Star_Off.png new file mode 100644 index 0000000000000000000000000000000000000000..9c2815ebba05f6f4960f6370cf0dbf7e7cd26240 GIT binary patch literal 573 zcmV-D0>b@?P)6#vg&-n`HiGH35JW4nuu?D&vztxgcV!h< zvkH=d;mm!^nLB6huG(s~luiuww_rRT@9}s%6U}DxJeSKowafV^#Pb^wB>g0=2>w-( zD^V;K^FuP}^Z8~3#r_wO*XtbwX6yC3C1~638l}@|)z-?PSGioCqms=~DAdjRSyk0# z)(77ul9@`STCQRz5{cbFATZC>6sl5cwc1`bn_X}dTTLdD17HNlDmcQ_Bp?J3eQtp0 zozNa~-5aW01B;nV=D}Mm7GENfNCjsvGaL*Cb*7?en&V`#{eHh_r!*RkM{*Bw??ZC$ z=%Z*f+QkrEl9*$Ow&9l6bj~#J`yL5cTCbc<~64}NNoFB;*ux% zuFp^RmVi5E<-^COuPNfcv-8~h$ZonJP936~-^Hy~tM`Ipi(lgHn$w{u8fjc%2~qp# zokv_3Y(C}1rdW^jihYJ*ERlDHZMYIymK6fRB)>us<61{lVu9P>H2y8b4cmE@wqL)L z%hL{%xCqG!o3FlV!Jj~fY?Syk@f|9^&FAyRXG3=Ef7B_WHvt9!#=Y&y8Y$^VMBKQM*Q4kTVE`shl2%=MQa56N~hNLgQBS~p$ zqX-Qg&ONX1p8MT%!?xRPW)L6yTQHZ)4e>lb-)uH-lgZ>qzZ|C#?l&Ng<3?Mp)+Xt{ zI`Ra{X0sC1f+&hhq;32EK!PBQLoHjD)gW!#-W(MQ1=i-u#aE?LS;6@a!r`!jwZ^jS z2G+%1ib!IySlg5Ad_I2?2n1GfGzMKUhGCp05{Wf0vRM?2LC?am1DV3k0tF;VVgS@B z01#uErc>NN-ZNwu=6yUKf8$G~lCG+16^>y@M3&`HFc@TfKA&r6vi*KPamUo_^>=`r zL(TwFcFj>HlM&Gc@v;q>Q4~e&J%*-f7K$Gr`{=HiPN%IOb3{(e%q5ccFgH&aLKg_x z1HVp zy4v^kQ@eQSlUS|;(RCwB~l)FpAa1h6nG)-yIK{rJ~ z1aZ?{K^M`%rJzzsyINcYX9ou-|A8X7^a1q&E+Y6?1RdOTD2PttAPzc+4M}a|=QI^l zn~Knb<9qMl{qA>(>bkDd4pLh=lgVVarfCzkTJ0>K&p$VdsW+mvJVjM|30xBVtE0d| zrfEiiNnO`x1U>!#g+ifFKQQ|a33_^P_vv(6^=9Rpmt|RTuC*DBM!S$-xZWc2e&dLQ zGntGVIP6p^wHt{<=IBJJR;!9_+k3fOZa!$(DhYky7`zG(!@4+_jba$acY@nk}dPQ(;CrNhX8sp}-@ibNGa(p906l&g+@Poub=; zg(%Vi3=nLA%Ut7tPTrZ%HnW+=z9oJy?yc$9FYS^vgt$P`5y{s-XThJK6aNUsr%`wC p-xdl5`+FhV^*_>-HqnOw0{|j=;)^A^6KDVc002ovPDHLkV1fna`C9-0 literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/navbar/FileMenu_Divider.png b/indra/newview/skins/default/textures/navbar/FileMenu_Divider.png new file mode 100644 index 0000000000000000000000000000000000000000..5ab4abc5b861e700b2e3954a43d10e471e172025 GIT binary patch literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^%Ym4YgAGXT4&EmZq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6^VJeIEGZ*O8WEv|9+9f8WOC{0t_q?3_{t=k_RL@X9HC* Nc)I$ztaD0e0sxH?APoQj literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/navbar/Help_Over.png b/indra/newview/skins/default/textures/navbar/Help_Over.png new file mode 100644 index 0000000000000000000000000000000000000000..b9bc0d0f87d7c454bd55a0b7b84ae6d0dff32914 GIT binary patch literal 348 zcmV-i0i*tjP)h2R1Bg!m@dFGCK>{!g1rD=k&))Iw-Mjbyq2R)W3)j=q(iQ;a6p+<}^`IHRv1-+- z1OE|VKM>!Caq8;on(!Ksot>?Qq`3g*q>mpzz5xl`x^?R;UIT#G0BY-gBwt!Qefsn{ z$bb(YKAa}x1$5v63J)Y#C6Ho(!1nFik0WWGj~?iF4e03TutByNTdd(V;N{DgZXlh1 z{``4_E80Pr1y>65@bKVucX#jn{rmSLyh#z43yvN=x)T^}_dzs17vS^4MUWRjG+AB{ u6BFA9q}~DP3;2A%NNH|lVxSNJ1Q-CYuZ@a)urufY0000h2R1Bg!m@dI=VnXnk@P*70dasU2(0gz%4UcY|5hJ%Ac0#Hr?T`?oFi9i={G&D3+ z)YsR;gdRX$0d`49NXVl#Yu3y|F#%=^2)nqr$N}jFD7Jv9dGh2*El6zNzI|oL>OmOA z3%hsk{sp!50njxkVBzul^=oDjLseDv8-|CGO~V2_fZ@@A0fhdEP)sDJ~VPST3%^)Bl zArTFv*kF8Q16Xx*bP^XVSl}ooCdQ7-$v|)Uii(QH0GS*pUJwxxNjQ4+Xpp+PIxnG^ zJ9qBfdw+lb9giPBo&`7H*|TS}rKF@(2xx+Dqi1)%2LK`6pHRCwBA{Qv(y14RI203Jicf!H6) zZh&GGz4#0e_xJaoc=+()^FVgie<&c<0Kt%uknSHq0MhjQ`SVw#7$D@};L!Zx!-tRG zf#5$H0LruBGl19A)3f^ByLTV{;{fvV@+mMw&<$WUH#aYN^ytyE|9HUFt5@&H$jGDu z)pMX2ASET0{P5w!r~ionH*VaxtD>Tkg<`<#*RM|!qxmlofav${-=9M<0Eml$_yG|H z`~y-Tmx5iu2n#?)Mn+i35=@$mP{kmnEW{|pXD|~3g@7goJOJXKK>Qbr+z+Tc!kd(4 cXMg|$0MDd(`wETGZ2$lO07*qoM6N<$g1TjtM*si- literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/navbar/Info_Off.png b/indra/newview/skins/default/textures/navbar/Info_Off.png new file mode 100644 index 0000000000000000000000000000000000000000..64722255a33f4cb596a2b9d623ad923a7c63069e GIT binary patch literal 608 zcmV-m0-ybfP)HDJ_yzu`^AIXyX;ZE5z!qyFLU`3E`@g$sb?}g9t)WcmcsJRC`r&uh?E87PSfIYyl?@XWpRDe5ouy?s!I_EHO2ILou#pZlI z7y4{}Qqwdd@9}u9{C@uh?z)Nq!A|nm)oOJzo6UsDKA%qv!w@7$r_&Mm1hE^_>GacN zGTB1>=U_1SLyyPfbbdjlk8r32RFG&iDuqHp5{ZN&7!HR51)}RZ3+|whUM`m_8mjFB z`O#>k{jMBZiWOVkmPhZoOSjNfk}b}DkmKk|3iR*KWO+=!1PQ4Zook}9DWJp+3mA| zMOpV8;vI0sox2B=&1Tgc2%cXL5CzNCYW2};Ka2~g*upxG?UyE{Qc2#i>%m~~4gY67 z5{Ymaf57^k&l8v1fS(gy0}J!IMDk^`+5E}(rn5gfF~HxoTCEZah1wwc3+EE|oA^)g ue?oyz9;iG|pBO$y;4X_6|7;z1Nai%1gj{Qt@K zJytP?Imp1b`}WPuH{Y8#>nIco^1zOP6W|Ci?L7;)1**W!Zm_Xhtv2f*a1Nvvi^TyT z%jHsRe^k@7sIKcNhr@C0a=9+C_gxV%&`!=H_~mRillgou2$FC(EJ%=cyRC>o=$%fd z7vu5xaJ^o?^7(vs8wKY~hEq^QJRXk(gF#6qlS*2#Sd><)C5B-rKMI_JlOP*G8_&ipU=y` z3?yC@d~SgCh|oeCh9aR+`aVM=pQu}4 z02_pjt+QUQZ`ZrZ9uNo>SU{8nY|cJ=M1e(uTikDy9cLf@hXBexX?Rr8&3h71>IQ*8 zU>nHwuFuABFc^H~9NggJnsczZYa)?Ih-Fy{T<`h_6ns-El|CExU|d4QA!gx}y`bfC zIeEn1^?JRxc;D-$X|fr=!1x7ZI@V7?=wyfYV2DCj-EQ})R;zV6Z+avWQBKVG&vLn3 z_51zbFc-h!Tw(tJm?G&b$Uk5@Uso!X_xQQ`OpeFn%Rd4P0PMPtP++*HGynhq07*qo IM6N<$g8Wq&zyJUM literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/navbar/Info_Press.png b/indra/newview/skins/default/textures/navbar/Info_Press.png new file mode 100644 index 0000000000000000000000000000000000000000..169105829ecc1c148eb998663904c0c0eb25d026 GIT binary patch literal 605 zcmV-j0;2tiP)0Uq zi^XCts@3XI5-jtTA4O;E&TW%GgR-O1=zo4MU@y4?ApvLC@@f5k|M5R_o-&Tm0c@{) zZJOX%j0SZb65QfpYZV6x&l14@ojYit(>-N+=L?6!t^$JZBRiPR=ksqWolgHkQVaw( z6|gIj&*x<_nYc(K64LAS9%BS*D$Qo|hIhbEcn#+%#(0hMbmi6Sb$P}*M1Iz<&a00000NkvXXu0mjfCs+=s literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/navbar/NavBar_BG.png b/indra/newview/skins/default/textures/navbar/NavBar_BG.png new file mode 100644 index 0000000000000000000000000000000000000000..1df61751a88333c695b2a15affde9fdb15eb63b7 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^8bBP(!3HGXO1tI*DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MJ1jtjv*Dd-dsP(+2FwAdN5XSTW`+tvN>@CkvNV}zg1Rmu7f3!6$`$5h7S3ET=5)5aXI2ImM S>~{v*&*16m=d#Wzp$Pz*y**z5 literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/navbar/Row_Selection.png b/indra/newview/skins/default/textures/navbar/Row_Selection.png new file mode 100644 index 0000000000000000000000000000000000000000..fc4f0c07eff0fe695e5f582b974fbdc026ae78ca GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^%Yj&wgAGV3i~O4eq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6?J;LIEGZ*dUI&2&=)#QCxwGB-+2t{uaE_U3Y z`gdYy{w|3RG8NGW3J%Y`{`;-PF^kl8M%$WA&(9Q}oc89en#so1dfKNSx13xc3rC=@80 z&64l?WLZ`fF+G_~R*}D75+QJgqH?8DA;T~T-DinXsYLB|TN#hXO~hUh`iMo0uawW{ zsaC7~2)N~PIns5VyBRb-T%5!(C8Me;tusy2;zqkmB1w{b*LBy5MxzmhVaVO30)|)W z4h91n4u`))olb|Q)2S;6LU%DP7K_Dqta#!$4pS6`QmNEzf@zv$+csY>gy;daZ?Q<2 z|C51^7mP6#e?&N(Pw*j75aanza146!KXJQ3K@Y_|v4zfIB9VB8zYkhq8{C2;@FXp) z`i0`w%2|C7fh(}d&jja;{DSr z1<%~X^wgl##FWaylc_d9MYWzTjv*Dd-rU&8*dLaGqP{}(fvV~Z9r-?F{v6ly-lIP2-p4;sOXr!z1!G#=;Vzvulb4(JdD MPgg&ebxsLQ0JdsQivR!s literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/taskpanel/TaskPanel_Tab_Selected.png b/indra/newview/skins/default/textures/taskpanel/TaskPanel_Tab_Selected.png new file mode 100644 index 0000000000000000000000000000000000000000..b3316386b9f7ce7497cdd2fdefb15a308cb0cb62 GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^3P7yE!3HGfYyOxCq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6+QQKaSW-r_2z~lUz33d+k^c^ZT!uoQE`TA-eCqdg9b*P1O{e_0}!Udfd|qB%k7gDTg(sad~M~S zxtGx|_qJW8yFlB*&z?2;+EaqA+nm4dIjO-w&nbK1{|k#Ab$p+7?!d)a?^F*ktk|4C VXJYatKcJTxJYD@<);T3K0RUu4fXx5^ literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml index 84dd3ffd7a..e6c9cdb246 100644 --- a/indra/newview/skins/default/textures/textures.xml +++ b/indra/newview/skins/default/textures/textures.xml @@ -1,75 +1,85 @@ - - + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - + @@ -115,7 +125,7 @@ - + @@ -142,13 +152,13 @@ - + - + - + @@ -158,17 +168,17 @@ - + - + - + @@ -199,11 +209,11 @@ - + - + @@ -214,7 +224,7 @@ - + @@ -226,7 +236,7 @@ - + @@ -234,39 +244,51 @@ - + - - - - - + + + + + - + - + - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -282,7 +304,7 @@ - + @@ -306,7 +328,7 @@ - + @@ -321,17 +343,36 @@ - + - + - - + + + + + + + + + + + + + + + + + + + + + + + - - diff --git a/indra/newview/skins/default/textures/widgets/Checkbox_Disabled.png b/indra/newview/skins/default/textures/widgets/Checkbox_Disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..c1ee210099597175f03ad300c4b3d12a44ffa621 GIT binary patch literal 306 zcmV-20nPr2P)XZFboFZ#CG;H5QLp& zyX`4_8K26R@kPeOv$r0Ewl+(~RCd`?h+gvXw~ZnIR9rW%Gw7D*dRTtkyRN%5O;c*r zIF41{_fBBxoWp6FLeBXoDvAQ6SByYNDNzW4G>M4#es2(BjH&|~W4<6UR3%z#4=8DZ zHIRF8hu(WymIaiMcE|_LT-wVy5@ihQx~dYlk?oL+l<-I-BKSA_ZAtIvc5RsFIn{M- zG*EiQ*tTt-!!TTV94F-*qZs69Ns1r;P)`%{uKM5ZmXl0=Utb)WgjTd4>42EMbV3f_RuDh8D zJh3prfmxRKzMq--&SMB69>{A*C;28SmC9u@nfy7KOa=~z;};8OztidTnaATf`U(>%Hak`CFD{C0UjU zERgB<`){8e!GnV7cDo<4+3a1b)%wTt{2_LODaPRIFV$eKJwg=%V|jD;ygDyG^ssA(G6yu@%iodbG@NrV1_XLc@% zqRDEt9*`XZv@$YGG#WkcbUN3t2>mV~ZZ{H%v>9lPop}1DI|O=~e+V!DN7eGDimz6k P00000NkvXXu0mjfHxmVD literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/Checkbox_On_Disabled.png b/indra/newview/skins/default/textures/widgets/Checkbox_On_Disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..beaa7bcbf6aab389447dc22830be88fad903b895 GIT binary patch literal 558 zcmV+}0@3}6P)eG3au@KG-4rWC8&+1pnt$h5fdT!5o2=6eR!9dz=;GCTzHRV zcb=VhW{wgo1x5MFJn9i<1 zfnYEQ{b9cvjfNTug}6v0!p35;Tc^`$9gRkExm;c_45P}jOt68I$wdCi2sP*^Q4}}D zV)3ch>q!oWgTZXz;tlHhFk?_htN04o_>tf5-xdmm=We$vjmKlT-EO~}-kT$1Ob~P& z2f!PE4G6S=3+Z&eu%}1RFbwj0_<|s8%{!F2%stf1D67>#wEzGB literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/Checkbox_On_Over.png b/indra/newview/skins/default/textures/widgets/Checkbox_On_Over.png new file mode 100644 index 0000000000000000000000000000000000000000..bc504d130ee6fdb98e644e67baccf3f797cf7a3f GIT binary patch literal 547 zcmV+;0^I$HP)>D$VyNusrksoPzWRviBPZCd$8N>VFtckrPJv%p688!L1wdA8;wT& z)9F;s<#GZt2=3|idbZ#1Pef6aH-Vv0=$PX;rdq9j3XyR+GBU*M&Y(I_2LsZ<9JKOqYji^VQ*M8DsEf@k@BzH2g> zUhodqIu3_J;&3=RnM?-r9z`M%V>})Y=yW=^*=&v)jm9lxlhDhuELnjxO$$(>*XwO( zvsn=``NH9_5&vGV*L$$HKIU9{*D@{&<#xNDv9m18K7+wP!}#}*ZFN}y{&tj?Qmx<# zV9dk76z{4dqWF|OE=n!zyfhLusQ4Jr7~bCm!tatTgkEGA*wuBpT-Lx?+HF99Cdg1Q l#tyzcWv5#RXC40tFaU-Y@j!U!1dRXy002ovPDHLkV1gnh^4I_X literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/Checkbox_On_Press.png b/indra/newview/skins/default/textures/widgets/Checkbox_On_Press.png new file mode 100644 index 0000000000000000000000000000000000000000..5bced95a8959a259a472eff5f81eeb021db630da GIT binary patch literal 612 zcmV-q0-ODbP)Q$@G-BtawD3P@X<;jtDu{nTi-3?~3#+6{Hg_h7Cef_8vx?(P z-ZR9-7zlgdc=^uzoXdAUmSLEC@MrK4^B?PWyNPTz`(!eid<+JIPkEfZ2!%rV-EMbc zv)Oc(W&eS~;V_>{r4&umm`bH`LJWZti9H_AC%fH#h5zO;SglqcAU1qyab)#OdKaRy>4={(;Xf%dsX_Cw39%6o3Rn;{v=QX5Pq$P%< z55q9bOeXVXI2`^&Rk2(yKSzs7I-QPhw_CH>Y<}iAP9=!6#N2`>G2dP2)qcN!5s5@( zxH}q+-p7TAlxMI<%l&@;`$D0>v|6oGROB(+8%dI^>=Y;MA!w2#VD<0yde8IuJe~21 zqI@UdPu y?2MbuW+HO~1EdkdB9lOGZ@<$U81=jQEx-UbeEYG0bqOZ`0000P)^M|aRkxxjwghgHB+*UN^v=2P4U$qu)JqJ3;JpvyIJ#eMcrYlXB<*L=S{tTm z3Y@4yi0}@25(lKXAC4p@_;PI97KUM9%|dGpPY_SBDEGG`#+=0jUyk8X9B}Dd<~WN} zOJ9uD)pgycX}aQo)Jsg9W!a@HOM!P>b3lZ8Vj_&J=<{9 literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/Checkbox_Press.png b/indra/newview/skins/default/textures/widgets/Checkbox_Press.png new file mode 100644 index 0000000000000000000000000000000000000000..44be193678c0287280879794648147d8bb297a69 GIT binary patch literal 373 zcmV-*0gC>KP)xGc-BIF3hZ9#oR^JUhmCR&#=Wfty zEr`|QZDvf(nS0j&V4bKX6V!G6*))yUbzOR7!U0{$NMwpQdkF8~-$B3qw*UhGpj5Iy TNwERv00000NkvXXu0mjfzkr?M literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/ComboButton_Disabled.png b/indra/newview/skins/default/textures/widgets/ComboButton_Disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..d0fff1b3c32aa22d79b7602ea93966ea0b851501 GIT binary patch literal 450 zcmV;z0X_bSP)6LV^WVE2Uj` zLC?VjxC9@u%pzO%9D-XQF3|%Zg=AB8PooxCP(H37i6gawG*VxmG$31#(J=Pdln`PQ zoEilV0z1xmtHyEsFpeX~V6Lj_K26gVrSw@9gP|vmisDfnhJgT( z6pxywQDMcMDjq~wL9pt?$5ilFDCStiQl#4VJ(?9zz&8$;<2SjZ(SvMgII5wF+lw}oACRNOQTt?Qc3HF=)5OOoX2=X?+Z zJIKV`H_}!n5;HQ!77>Qw7E&bv<4gSllVT$=6Y$&bOd%Mc sG>W2^&1Ulf*NB1W2ITn@to{;U04~icq8?=8Z~y=R07*qoM6N<$f`A~x-~a#s literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/ComboButton_Off.png b/indra/newview/skins/default/textures/widgets/ComboButton_Off.png new file mode 100644 index 0000000000000000000000000000000000000000..80402458b7c7267ce23b3cddb7a83522d21b9930 GIT binary patch literal 470 zcmV;{0V)28P)hkanr^A(H`DD6R1nPXM$g!ez~M>SxuE_a#HC)aiF@GEit zZSVf@j;%b~w&%xI-VWRh!jk@SOvpWOOx}e4EfkO$g~AAjs;Ydm*;IyMJY%n5gTX+h z0AtTdlH|>@tVd4uGsVIHr!T(mKTN07R}LXLr3x?hAW)9|=Tm?I07Q*MpV$wD*#H0l M07*qoM6N<$g1W-bwEzGB literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/ComboButton_On.png b/indra/newview/skins/default/textures/widgets/ComboButton_On.png new file mode 100644 index 0000000000000000000000000000000000000000..b42cc7542e6c55f3fad0fc62e0363ff3bba30b79 GIT binary patch literal 486 zcmV@P)KpViF8q?PNGc{+Pr(-C5=L9Y{ffr z+`Y%k=N;eoF40P+TKfT;mBU3tnFKlX{r1J_*{s%j2mGKFy*EFj|3V3- z^6rS9TUwaDuU^jsTB8t+NW}qhTmT>eCV+`TO2ix{A)*UtkRK~_fC`O4jwA)`A_=xu zCtySxpb`UP!eXH*mm{a=1qRLcF1_}A_c)dXn4Fnv^qXg1TCp-2x8mfuGM)uqJ1RFa zG>)Sa2B8XCeqUcMZ`_hls@Hiw>z%L_Bwz<}m;=c4)q~v{b(Kw>$G@#-UJT~S?EqWZ z->&guj&`8MJ)%HyHbm!ndt0?3uSIfr-BheWQWhjwG44;rc1S7y+#ps7>d<95j?)1_ zCIfXl2-}51;RX11Ss#T8mjcQR4QG1p7*9n>`_5^JLF9+ c{!4%X04``*HDXcHsQ>@~07*qoM6N<$f{yIZ?EnA( literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/ComboButton_Selected.png b/indra/newview/skins/default/textures/widgets/ComboButton_Selected.png new file mode 100644 index 0000000000000000000000000000000000000000..bbc06574877ec1f82ee7bc603ac8de986b678c71 GIT binary patch literal 539 zcmV+$0_6RPP)XT`5DF+f|NqB1MpWC#bgDNIgV4t z^F)BIu$!dJczBX??!ksF4Fv51XpmWh7{m*}Dhy1htl)?hDJCm|%t7&9pa^YHD3@R0 z$z*bV3{tDrUXs9(rDEs8F5(LZgMoPrJRA;*#hD)@&TjxtA3%69? zFW>Im1g?}~obyx0*ez5X3O|#=F9|h+8Uy3C36QOHI{lE#<<4!}Hpw4-v{)=Id%d0w zj2}(IFmAHhY+MMzrqk(0N~y@A@C)EF%d$i!lZiWyb8SMb6L@?BeTgect3=C4B*KB~ zg$W5Z5b$=pC1*4gvIWM%yOZ&_2GA5|9Xm29z10Klx-KPJQz6>}XrxX}n6`=L-$5%% zw6>tt0rY0G!H83$1Fp$rlJMJ0CX=&c&w=e%qM$FLmbx4)7-&_W0WCCSR*t6Hs&+U@rJ{(GfT8R1mZ zPhz)uXvX&MTcqHtR4R?S-EIn2=TFVpZhArvhDe1%!THVa_G9e>Xhnl=Ed^NlPtfFw zo}d{W-Tw(RG-X@$DRM-Ab0hC!}qCS;0if$`kT=kw2l!61=JrL1T) zN<$Nkgu{~IaQKFd@!toc)oR6>&F0m7K0k9^_k=78ziJy)sQ}qJ?0000?oKWp)eli69i>aZf`f<@+KgSS7Li<%zONXiMWNly^?l&w zF1bw4kN58JWS-|KjIpSqC|Rg;D4dgmF99`ydIZKF8bCfV45OCKW-nr~ScLqMN3+@N zy5H{`!1!L{oZn_LnYgN|%(ARc*L6LzDEI=nimvNgI-QP>Mx$E|+B$*TH_*3nBuUlL zb~qg7!1YRl4n9J_j^mIs5(?P@ZQJ&s#R>F*Ydjub?psSHlP|m8BijvVNM@MFD2yGrOw%;>t<`F^ z$)41`4P*29oGlg$MphoSip8SY>2&UXzAu-{CJa0I!I8WLt*WYnMOGfZs?}<*-EQao z=Srp019p4A_tz+O2T-L_>7m>0=3(spDU7XePsqUlsZc2Ne)FAwt?h$eiR_b4KG#i0 z6K82bE3|e0C(w|}mb7)ty>$a)Ta8Ae)^fRYIOp^`S~4M1WDAU6wOlUuJQxfTsZ=T! zi9|TrBaiU^i{Wtij*J;}HgC0BXU%5wW;&go3L$i|DEPt)FzDpBMx*gmuh%WMKAQ3R pOLK@`Vlc4xhyVVjdc zAW5Ov2#4S=NFrWwCxFlw@(dWQ+ zH@}f$P}W^SC(Nz7zO-?aI&!%$48|nmZpJx}NxU#(W)zbw+<>jYOG{K5i^&#EbqtUw6 zO@MJ-GfnfT=2mL3pqLi5B$-OK!1$15GMW5lek;*CGTa+`&}LwI)Dic&xA$}Nk7P{2 z!*$1Tp4hfMS}K(ud!E;hDN>@EeW>KWxm@mtWm!iwXx17;2ZRyKQEIg3I>bL&+-Cv| Y0Fzz;WnVE)761SM07*qoM6N<$f=VziL;wH) literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/DropDown_Press.png b/indra/newview/skins/default/textures/widgets/DropDown_Press.png new file mode 100644 index 0000000000000000000000000000000000000000..16cb25cc77aa17f7c3599f1ca0ae0bae72495dda GIT binary patch literal 679 zcmV;Y0$BZtP) zyF8>3r_@+;iKCJkKp5glAb+7x4l?V^;aKLwrQM1LKvzAn-iz+I8J$S(a67+s<(< z=RB2KB280bnx+oPvsX(D*?L_$MF+ltYGVx1i4nL zMRX+4DCL}~5{s5&fEL^B*2VE5F(%M;l{cOhNqr8fNm@n zi;%jnHw{Qid4otfjpwh~Y_{oiI*orpCZ%a=V>Na+P~qrStL3BPW=9()ax`E!mdji7gm^Qtfv8{d_)ug&mgXx~>F${_(&7CzFk_hpt3X^qm+}$+mmF-sN;UeH+K| zbF|}+IaTEsafXvWce~x`cs%|l4(l>CWe*SzH)!SDSr z1<%~X^wgl##FWaylc_d9MRlGojv*Dd?p!&^+hD-MazI8ccZt%k|4aB467ktaMHOdWnLteZb)bJwa_&3ZxsqMrqPPo(rTTB;vq z+u;= literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/ProgressTrack.png b/indra/newview/skins/default/textures/widgets/ProgressTrack.png new file mode 100644 index 0000000000000000000000000000000000000000..bb6d9f4144384ce6ad2a37ee704d4a41eacf72e7 GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^Gk}<%gAGVZEM&U{q$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6(xDPIEGZ*dUMm7tHD6T<)Zk8QhUAgPj{-@pLeUCt=UpM z>&szP7Nb>Jx*Rj-6&tfMo|e9m$vw$@#sL9||GYWotS1lf1wUYOPEat|b5KB{hVP9L oE9c^xvdKJacBdOpDB?C?(0U~x+_tjY31}OGr>mdKI;Vst0JXF}{{R30 literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/PushButton_Disabled.png b/indra/newview/skins/default/textures/widgets/PushButton_Disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..04e91bdaab21997e642fa3f135196cc10a544a42 GIT binary patch literal 461 zcmV;;0W$uHP)gNpN&&zr zS1F+DI&ue)^CSS(%-wwdIKVCi2xM{t_UlE`qZF_E*5N4lGszXvSU~gIa(* zdE7M3L(?<@9wubu$c3E1U1(t#zVCLswc|L(YPDiiLnuwtFXYBo2~U#5+-x@YMN!#T?|X00000NkvXXu0mjf D6WPAs literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/PushButton_Off.png b/indra/newview/skins/default/textures/widgets/PushButton_Off.png new file mode 100644 index 0000000000000000000000000000000000000000..1ee0329e66b152d90a1e8afeff566c1604773687 GIT binary patch literal 464 zcmV;>0WbcEP) z=^*$cN-*G--_jwgd!{V?DMCl-(!Zb}rAzDB#l{lEkJob(NgCSKYcCvqPUpOH?>kSS z?8^dt;JRD)SvBwqJOZBrj|7;3ZG)L|IDBuVn1YnnFqJa3|^s>rhJ zt8H7^C%F(pF-=pS&1RD{P3O9late^Dir!2PRO9hj1K+KV9iI_#(=-Za5hu7uI(=Z# zLO{zY0F*R;%1%IC*X#}u=Rp7sUf;v_hXe9N02~-jKvh)|maqyS&Vv9T=Q;aY%cEQe|VxGUAN ztgI}{20tcjIY3;*3GO$2u~YnS7gZHNI z?z?+L7-K*P5dc7qa+}hg^NfV@nevj@pNilcrONSHrGC1v;eKquo_62a#jGf4~ADj%A6UXVQA98YCuZ(V*nRx zz|amL?+#=grv(i9eHg`KRs)IW&kQ(9qC~~I1H_!)0s9Dem%uWA3&<(}<}I8v@N?xg z0RIfYLJcfn1XG@J9A|8R*?-0(_QVN-pcfBEFp68l9p8jVi3bH7(C9~S+B z=d%2YH71X@-6zWyGz-~ox3|JDJc*)cGf9%AoV(Z5`D?4yx^6a`J&`SgL%B@pX6L-e gKcVbf8Q%g70FdkChO>I+2><{907*qoM6N<$f+QN(vj6}9 literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/PushButton_On_Over.png b/indra/newview/skins/default/textures/widgets/PushButton_On_Over.png new file mode 100644 index 0000000000000000000000000000000000000000..064a4c4f7f116d00ff1ff6db55a9ac967afea874 GIT binary patch literal 498 zcmVF~h$tuo z3Hl3!fLf?vFoh8$MSe-z*a@lfKg7Z=g&l+APvAV#|F|k65YsnmB-Op5&Z|(^>*#N7DEG&M*igri6W(NlYM^SthbyM6Fi)c)WioEEV#L zp7NyNf@Ll2Uf*5bJZ*1moiR*8v|6ovv)SC~cDu`Q9M5FjeS)38HX4oVdcEFZqtV;b oFpE+IC&L2mz5i)<@k@XK02%7%G9W{!uK)l507*qoM6N<$g8ysQsQ>@~ literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/PushButton_On_Selected.png b/indra/newview/skins/default/textures/widgets/PushButton_On_Selected.png new file mode 100644 index 0000000000000000000000000000000000000000..48e8aa2eabf0723108ad12b8b3cdb8784feb5221 GIT binary patch literal 572 zcmV-C0>k}@P)<;Z~D z*a(6I4v;2YO2LQ75e!#4fDWO?t$H887qJUFNRcLiiv$ReA_^p0CUf{tw)c3tI#f#a`bPgFOc!4yrh2073`~MNf;;ft_17>tp$yMs;=m9RT7&d2G9yDVQvJ-Xefm-jJyYIM{zy!oean> zx$R5z3^Xj-I?!y=oKC=+-kpNZCz%6X0mPk3qhQ0*^q-eS8cS~bpDcte3+$CHisFl_ zy|hGQhf*ov!V)IfcXl)yUEO}YKg;s$#Aw~q#za34)XPWn_vh~iVaox)OeT|ev)Syt zEXxo0M;t~z4>-K}{dhc{O{dfEs_nakv5)E{2&MpQ)Itn-7GMD1BQKX~&;>sL0000< KMNUMnLSTYfM)XYp literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/PushButton_Over.png b/indra/newview/skins/default/textures/widgets/PushButton_Over.png new file mode 100644 index 0000000000000000000000000000000000000000..c227f07513ee688479381592845d2a0979fe7455 GIT binary patch literal 457 zcmV;)0XF`LP)C`=ku~@ z8q+0QN-2m%%skJB${2G26INN4HO?Fb5X5pE#{%zCA!C=oU1z=@#M?3*ML)FG4a8=k zWzze{0GtSJ1H{}JAUGtLD`0j8%qAL61K`P>fx4~@iPHck&-`zJ>8%CJbC z;=e6WN@>k}3&9loV`w-RQOo?Z2im#pWe@aO0Za58{kOoftg2mx%*h+D*UI<(*=n`A z#fRj&2gCwXgZ-wWD0-ewr#FMa;LLShn`sMbFlWS;sJuOyOist+@m*0AC)iL29cNFO zzmGMijmTJ)-gfa)n4~Xnh6lLIYGt7A-<@6-AcuYx!qcCrY4XHzQ5_Nb&vq&+K@a z_Y(;+LtdGCo6#VjkPpa`;pZetlE)wjE{0*42q6^SDNAtH_dPNDwr$_avb>d?^LyX- z&%-cm0AJyGu(^CJl0(F#s;V<$OQqB`!J{Zz(Uk-+#;m}>A_1(f>j2k7Vv~Rv_P59{ zh-d&;HXQ&@udeI50QaFBoxy{GHOjLe3aclMF16eUQ`#aIVK{0n0E)B%qs)Z>VtHEv zP!kWkz=;FI+7+M`jW2D7VQora>OTyQ6cB6dH!T2DNpBBW!(0dek60T4wD*xTfSfpB zSief(bQ^A!z>G+zO}Hyy9j@lU$dZ5A;%E};;NG4?q8lsPf_rE}pjpl1IDVz6gmVBN zKb5vW$HXEg*v}$O(~qJkZg46(l2Qt&68N8-`S&!A`*apqE|;Iv>2yxki`i^;n&MijmTJ)-gfa)n4~Xnh6lLIYGt7A-<@6-AcuYx!qcCrY4XHzQ5_Nb&vq&+K@a z_Y(;+LtdGCo6#VjkPpa`;pZetlE)wjE{0*42q6^SDNAtH_dPNDwr$_avb>d?^LyX- z&%-cm0AJyGu(^CJl0(F#s;V<$OQqB`!J{Zz(Uk-+#;m}>A_1(f>j2k7Vv~Rv_P59{ zh-d&;HXQ&@udeI50QaFBoxy{GHOjLe3aclMF16eUQ`#aIVK{0n0E)B%qs)Z>VtHEv zP!kWkz=;FI+7+M`jW2D7VQora>OTyQ6cB6dH!T2DNpBBW!(0dek60T4wD*xTfSfpB zSief(bQ^A!z>G+zO}Hyy9j@lU$dZ5A;%E};;NG4?q8lsPf_rE}pjpl1IDVz6gmVBN zKb5vW$HXEg*v}$O(~qJkZg46(l2Qt&68N8-`S&!A`*apqE|;Iv>2yxki`i^;n&YnS7gZHNI z?z?+L7-K*P5dc7qa+}hg^NfV@nevj@pNilcrONSHrGC1v;eKquo_62a#jGf4~ADj%A6UXVQA98YCuZ(V*nRx zz|amL?+#=grv(i9eHg`KRs)IW&kQ(9qC~~I1H_!)0s9Dem%uWA3&<(}<}I8v@N?xg z0RIfYLJcfn1XG@J9A|8R*?-0(_QVN-pcfBEFp68l9p8jVi3bH7(C9~S+B z=d%2YH71X@-6zWyGz-~ox3|JDJc*)cGf9%AoV(Z5`D?4yx^6a`J&`SgL%B@pX6L-e gKcVbf8Q%g70FdkChO>I+2><{907*qoM6N<$f+QN(vj6}9 literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/PushButton_Selected_Over.png b/indra/newview/skins/default/textures/widgets/PushButton_Selected_Over.png new file mode 100644 index 0000000000000000000000000000000000000000..064a4c4f7f116d00ff1ff6db55a9ac967afea874 GIT binary patch literal 498 zcmVF~h$tuo z3Hl3!fLf?vFoh8$MSe-z*a@lfKg7Z=g&l+APvAV#|F|k65YsnmB-Op5&Z|(^>*#N7DEG&M*igri6W(NlYM^SthbyM6Fi)c)WioEEV#L zp7NyNf@Ll2Uf*5bJZ*1moiR*8v|6ovv)SC~cDu`Q9M5FjeS)38HX4oVdcEFZqtV;b oFpE+IC&L2mz5i)<@k@XK02%7%G9W{!uK)l507*qoM6N<$g8ysQsQ>@~ literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/PushButton_Selected_Press.png b/indra/newview/skins/default/textures/widgets/PushButton_Selected_Press.png new file mode 100644 index 0000000000000000000000000000000000000000..48e8aa2eabf0723108ad12b8b3cdb8784feb5221 GIT binary patch literal 572 zcmV-C0>k}@P)<;Z~D z*a(6I4v;2YO2LQ75e!#4fDWO?t$H887qJUFNRcLiiv$ReA_^p0CUf{tw)c3tI#f#a`bPgFOc!4yrh2073`~MNf;;ft_17>tp$yMs;=m9RT7&d2G9yDVQvJ-Xefm-jJyYIM{zy!oean> zx$R5z3^Xj-I?!y=oKC=+-kpNZCz%6X0mPk3qhQ0*^q-eS8cS~bpDcte3+$CHisFl_ zy|hGQhf*ov!V)IfcXl)yUEO}YKg;s$#Aw~q#za34)XPWn_vh~iVaox)OeT|ev)Syt zEXxo0M;t~z4>-K}{dhc{O{dfEs_nakv5)E{2&MpQ)Itn-7GMD1BQKX~&;>sL0000< KMNUMnLSTYfM)XYp literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/RadioButton_Disabled.png b/indra/newview/skins/default/textures/widgets/RadioButton_Disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..a1052684b929a576195621973498b09c3401c0fa GIT binary patch literal 541 zcmV+&0^wl+?>ogB93G21|fuv z$4Afst@QXWxCfu14Q^WF&h)8NDpgvomRqmaKX{&()VAAgG@sA^O(v5UXnw%_JJIut zG&LHHuf1N+E*6W%>2!+E=X26ZCX*4_Y*wsRt7teJ2D91h8_fpWD-;TqPN!qpwykeA zo2ydlwSQcq1wkNKqh`O~SKtW@+~(D4HOF;b-S_<~pglkwMbVWSYN7KC2p#;7JRXmV zEoyJza=GxKsHKO-oN1bR7=|(4-!u}?Xw=e^B!{nQXeGWM%_HF7V#6>5-(@bB3(@mM z*L8)$yQGF%dZcApf7a`Dk_dx&j|8>!NDTWK@OQhNl2U3M#Urvt4Yl-e0c5k;{DKXs zRjXCgaU7d1c>D{;k+@6J==b~1Xf$%MJx_%>$mjEZx7&Rg3_qt-5Mn z;tH||3YCH&Y#;gy`s@$%XY`>Df>0rurr(&`Axn8f|R4SEZHk&oLKA+Fs@p$}q zI2_)C^Bv+JXCXz^YV~Wo-7Xdi1=Dri0|ZaZ#p7|=Y&Ne-rIOj}^{&9xD3&ZQpU>YR zd7Vn7Vzb%o>2Nrl>&GVkX0s8@k+WK@?x1;)hGE>6%Vj&0$;8*|weo%c<xo2Sftq)bNW@3Ndk^H0OO2jPCjU&Q(`W9265d5P4d7Cv!|dOS#ll%GmrB=l zjaIw{=ExzJ8i9MsTCLWG;a_aq&ZN`nD4TTh5(0q|1^iQ!$>b4T{Wcnndg9m+qtR%z z9LMGUuf zjW+#${|T7yApf`!iImIbzE&!gcq|t49S#Qrgd@egUawdxm2MJ=gs;=-+yLt$vPk7c zqtOQhZ-c?0G?`3}hGAUlM-qL#UNedjX0cd2fb%TMvV5OTr&UE!ysOoU>$?8Z^vf~N z=QAe^VS&3B0aVeCxZCYGl}M;st(LAtp9X6y*8N3ktB%?hr{h=vuOzs z``2tX(~yM=g5V-4UNedjhOoq;^2B^TUxDDCR8>_%p^%3pakK=1p+pA#_;@`2hZeq} z^bWHJA{UFrvZiV8K};g(f#4nrpeK%`97HXdO#bZkdR^KJcD3YkyQ>C%N5j z-_oVu@1I2?5v^P literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/RadioButton_On_Disabled.png b/indra/newview/skins/default/textures/widgets/RadioButton_On_Disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..d7d444fd0c207f6a502c41feb3584dac9d2b9533 GIT binary patch literal 605 zcmV-j0;2tiP)tz@-aUf?EYCqOGO%VbSN)M2#Q$=$v34E*>42+my0hY91inHB*Is#l|2{?%;|Lc9b^ge5{X2% zR;$GnMG@EQwd1<(yM8LdOw;7Z0khlfvcxeZs;1}jc~#Ri(J%~$jD299ZQBkoz!FZE z2&mG1gwyHdLLyMDR!eO*n{k}`{r38$MlN!NDUc%d%)$7OMIVQYMp8;5Y|y zV1Nb3?;QP&ArXw`Q7+CTE$F-_NfO6djKyMc(k|0o8JI{?Rfi-!?f3g@uh;uKnM^Fi zMN#yqQOLA7s?};{xm+fR_>7ig z;7H(3RMaJ+kxr*qqtWOOg>C+@sBifKK0CxW`;f0)+jEP)&VGy+!GwpIv#(j&4 z%wSX$i6R8iiy@F}ZvH@Tx#kit0TILmQAEtlFgS{%iHf-Nxb>1(Voy9IAH43OzW1tY zYerR7opu<8@!)k01OeyC{R`*;H{d>MT>eay3IqcAOeS+34u`Eao6SJ}>2$j3cDwUh zt#$*>H;BI<`Se8+B@&5Gg+k$_-|sgc4hLD1B;^>H=UKg8&kY8Hb-7%AXf~UlNz7Av zKA$h2%jNtIheKE_7CS{z{^qaK$t=rCbVr=oY?g=SkrxCZ9F0a_Ih{_!dcBrpSw0tO zM@0rIafplb!#s#VkH=%&ZnyG&zn6)X&1U`Sboz?ydcA&IsZ<6K>ZmN@l7_{@VX;^) zcDo(bb&Q-!rLJ5qmxDmI<|htuNptM#YPDjKx2lZ>H9qG^_Hwz@I!_#yY|d;pzdlaZ3O>2G@3@E zF~exSu%S@s77-psqmhWH)PR2;x+4y8Nkd8Vkx1m-X0v%8i^ZrRMw+8mFVfdR#Ei$| zr*^yj+h8z!?Q}X-=0p(U@pxu3nY{ISy#c_88ZYPqHSLDO;S$(C!#kTDV0G+g8u9+;$rmFwdTMQm`3Ox)CehUa-y-O6gU za&W*P-EOxp;P{Gi2M9{ogzg zG_qw`Y`tFJG@H$jv)SyNi+fepb={cH=LXU}!5u}s7f%5c#K#jjIO$5$w8?Zjoxr{4 z5=}1m`+aRPnLJ)Dmk%MXkQ1BSR;$&YhGAR|1_NsLeblDOuOseV5hf%)0FOEk=EUo0 b{1adRd`LMtVkzcQ00000NkvXXu0mjf>hLH? literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/RadioButton_Over.png b/indra/newview/skins/default/textures/widgets/RadioButton_Over.png new file mode 100644 index 0000000000000000000000000000000000000000..a5c8cbe29364fc5f220b364d9b0e28b8da2659c5 GIT binary patch literal 575 zcmV-F0>J%=P)N}r-SrpL&1?pQ=|T~a7KTa0>Wqqr+9aB1dQZ?cblN#^Q0_bD zy?f7l;T^}}PT+YyK|gt7mKZyh{}6u@?@0S_(uy9_mrN#8uU4yhRaL{0NJK_`KA#)I z;c(gMbnZy=oy1i{7{G>gTePM!x*k|ecQEMCN7F?qAu*o-l+ z=>&&5aG-&f+E+yqW)q2o-!x6O+wB!1ENJ0@Q3-`Y=ayx$cTRgb)^QlL@VKe2 z*K2|LcDz^f7LFRh4J{A|EGUpQ;(ry&KcJ9!Tn{`#Fc{P|O*6>EV~+n38ff7Wa=F~S zuIt)lGTG9OnBz@g4H{_SLDOQPQ21&X#p3I(JRg8f+!J@l|1O>c7yxvzHD)xA)C2$k N002ovPDHLkV1mAh2}u9| literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/RadioButton_Press.png b/indra/newview/skins/default/textures/widgets/RadioButton_Press.png new file mode 100644 index 0000000000000000000000000000000000000000..33eaa1403026605805608d417a64b628c5c00dde GIT binary patch literal 589 zcmV-T0!X%yOh6N^?C}VI`P{M!%O<(Ft zbxO&ytgtslQ68{7!5#cw9{z=o@lR;4Znb+5=y|i*d|9nl&s9}DO_Jn}#5GO3PSf<~ zYPGtU&*$&ZzrO_qYPZ|3%jNPjpt5CIe_6L80J65*ZH4s)`!JnO-w3Qrd5uQnMX6MB z0W#K0*0o_6k$_PY8GxnrdVK=miWcTdw{82ZSS&t8tW_$NANV!DouyoszT!Mvxu4#3Uyg(F!92p!a&c^T}lLs$Q?(t<`E$ZXj3B z57W@t%jHsEEEc~zozC0QXmqh3IoowzZ#*7*wEPiwFnKRc5;P>?2|`Z#>Nt)+91eZL zfpRe9cE8_ueBXaOo6Q~~K9Qg_qSb1B_dM^*U@(wj5B?kS+~j#o+{pL4zR2X^VZPtl bKLG{+bhSV!(eO$B00000NkvXXu0mjflp+j8 literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Down.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Down.png new file mode 100644 index 0000000000000000000000000000000000000000..186822da431c71df9f504ea1b76a43ff50b2ce3b GIT binary patch literal 239 zcmeAS@N?(olHy`uVBq!ia0vp^{2yt6-|LxnicRPwEX0V)8T%CF-jd>TNhg2X#+gT620@lo?tdgV4+61Q@YN)$o mdF1iTn6qz|WU+A=Fnr1LnRx4;*ioS47(8A5T-G@yGywprieB3Q literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Over.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Over.png new file mode 100644 index 0000000000000000000000000000000000000000..605d159eaaea086018c245614a33e3057c02daad GIT binary patch literal 257 zcmeAS@N?(olHy`uVBq!ia0vp^{2D;!_+rrHBrTCp zzVIJgBdbGB*WqoK9p*5kZZ=+cljl&OLk(B=vETs99Z_l~_J<92F&gx0yfXOH!;;ic zVK_y$TYujFhaIajl7vp$8$Ft7HA~Y^WzCXXJOT*}_3|zo-}Hp;0y>w$)78&qol`;+ E0HTs*p#T5? literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Left.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Left.png new file mode 100644 index 0000000000000000000000000000000000000000..42f999a4510b2f7180c1859a6788f6ec0336c732 GIT binary patch literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^{2fk z-BCYb#Y|=w1ICZ_H4$-f_oUio>dqP&8JYccXz(`XHe#3b@btXtH`8coyoZN}aJNm~ zSs@{zZI_q%HfN?Ncz#|Jxp~*mA3wHS5MBIv<_1<(d;9 S_xAxE&*16m=d#Wzp$Pyvkz}?2 literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Left_Over.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Left_Over.png new file mode 100644 index 0000000000000000000000000000000000000000..c79547dffd197654373dffd430120952e3dfd028 GIT binary patch literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^{23w+wY9aO zlO|0%74hW%!z(gkVrf=|kB(%maAS*^CE2)eEkCb`MaB1bcdZl^6@66{eNE23IdCB? z)$toM4})o)Tks!w>G_=Q8pjzvdYYs!N}e;z(L(AZ!z9z@0u_Pz2bM~vhbT63bP0l+XkK7PxFT literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Right.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Right.png new file mode 100644 index 0000000000000000000000000000000000000000..176ffcdbb98997da260e4e996f6e4be52039e12e GIT binary patch literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^{23-L-kT>(nDA_g=j2~Ymn_NgxW*&IB59C% zYDyg^C#UozQ)k`_vrMzY%vPux{PDRWDv-B__@2o=a#TFq>v$N_A7F{z$+I)*yHl7sDZ+OU{!FbFo e>lg!v0fUios_VxmQ*Q%3!r!}LgACF@y3 z=0E~3UgF_#&1W-WaA;s;NPQg;KQ+a=2Iyu6Pgg&e IbxsLQ0Lc4c^Z)<= literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Over.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Over.png new file mode 100644 index 0000000000000000000000000000000000000000..dd2fceb71680ba4ad8bde591039d6e80f4b62f11 GIT binary patch literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^{2`lwo7M2*>FMe74?a)lIh&Z6xJ+2xZ%x~#=&-d>rBboR z%qCmDHbyYFH8(dW&$q2E`)x1Ma6`c`#ZHP*baSk1}q+*%I5}}Udg*jz8b$x246aOeH&s({8<|CIwUenI@^z^jxq%brvFf){A W_gvz1ZCVQS0fVQjpUXO@geCxg$!Y-r literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/ScrollThumb_Horiz.png b/indra/newview/skins/default/textures/widgets/ScrollThumb_Horiz.png new file mode 100644 index 0000000000000000000000000000000000000000..8a085aa96652eb2a29afb89714a3ae2cc457a11d GIT binary patch literal 364 zcmV-y0h9iTP)AgFc3t$Z8IV}6lI?S zj5Mpc{}ISZBC$XMgg;Xz-Nc$3G$j=@-aS>(GM7@mi0A=-(7y`V6*uz+|8UOviNV7w zoas7pa1SpExhWu$Er!!PQe;TJYk0SSM*>$=FoCpQS9J!j4`512GgUAgTm}*t$J;rV zc;ELs4psrn7pkk1u|JX&X8|*xq@-A@T0v77$C0LKDoB)4N~f*Ldw;s?x-tv{@vKa1mg8)$jXA)3@QP6e{MbrS2QO5UFN!fw|y#cb-?b-$; zpj7J`Yk%v8)jmtIY&1b`=K5c5JkN8z-+jsz=xP`A1km4?00RKgN6?xv&m}Pc0000< KMNUMnLSTXoLXmj@ literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/ScrollThumb_Horiz_Over.png b/indra/newview/skins/default/textures/widgets/ScrollThumb_Horiz_Over.png new file mode 100644 index 0000000000000000000000000000000000000000..cf78ea392474e13d0287905499da79b46854d30b GIT binary patch literal 311 zcmV-70m%M|P)?(~`am6nAmuZ>AF)T5oWzZel5C+|*{c)<@>h}w4p@?eR4Hl$ z-4&z%GAF6hb)62wK&ndCY2OdRO~_hh_Khi}L?WX32-*92(qg%0tNoV?Fj$?002ov JPDHLkV1gB5gZlsg literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/ScrollThumb_Vert.png b/indra/newview/skins/default/textures/widgets/ScrollThumb_Vert.png new file mode 100644 index 0000000000000000000000000000000000000000..fc7fd93e7a877454361d9b3aa9eb6b5f8e923aff GIT binary patch literal 323 zcmeAS@N?(olHy`uVBq!ia0vp^d_Zi;!3HGR%%zS1DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MNd6l978H@y_tTH>yQDD!(}~%ChLk1?`(elw>Rl}aIslo z(VE_uXWZ^+tx)IZ+_N?N^R=AiX9O=wF?>7I<;in$#;t8jmu2RC;FpZL;s17*U${e&!~E_^Hj_Wi2vXY0zAI&p&K`kem9Kfu z787QzRA?4Te=TXR`|$G4cKO3D!oDUK!NigMLU+xJb#i#VuUoaMeAD436QxDkQ@gyB zRKN0W_`dH7PyeI2E0+XbSFd)t!ms=_Hc5kR$)8QBDSr z1<%~X^wgl##FWaylc_d9MK?WN978H@y_sgqcgTRpZSDl6FtsaFnH7%w)jxRbM3|vc z=%3)vtTI#BngxWLb@$%#{UcPqI{6u=pzZ+)gBL7$v)W$ovb&%haib~pKr$a&0<)e{ zY;xXhGqY!l*p&^we%dtsS;=GDWGTICN$2@?C@e3%sljRWW35I9$!lQiE_ml!X$>8bg=d#Wz Gp$Pz9qkXyn literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/ScrollTrack_Horiz.png b/indra/newview/skins/default/textures/widgets/ScrollTrack_Horiz.png new file mode 100644 index 0000000000000000000000000000000000000000..4f31c48c026d6230956eb29f9ff14d3f3fbfe954 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^8bHj?!3HF!h4(%NQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JimW|d978H@C8Z=Ja3o3`X<+S$=P6_VC;f)+kG)irh}DPp zE12D7EnXc6WbZ3r=X*EH#o4(z)4*Cl;Q&LF7w@G%is46r#xQug`njxgN@xNAleRBF literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/ScrollTrack_Vert.png b/indra/newview/skins/default/textures/widgets/ScrollTrack_Vert.png new file mode 100644 index 0000000000000000000000000000000000000000..f89ee3f68fb7d462667be2a3f2c72f7179b78967 GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^{6MV1!3HE1>lYjWQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JiYz=`978H@C8Z=Ja4YHVBw wRy+$lyLgtnX@8d7Rhw0nA)ilN;}J+;Nc+zFB6LOLeV`c(p00i_>zopr06mH^7XSbN literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Disabled.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..3b39c51a777ae162965ab937f6b923bbab70c228 GIT binary patch literal 378 zcmV-=0fqjFP)dr!nJ29Xv>?%zS{x~eLY`@a-{#t{5c!Y~B8t_a5|1)^Q*4w*W#X7fl%TC{BjT;mW$f}DSfHcfL$(=-W!zzFR+1*FQ2vnPf?2NP7SYII1B?Eh!FW>w_h+$?h#$*7n zkh+u#_rZ^mI=h=cyv&!+HH*>Z6UX)^lw`fP}ahXzf?#|g^lt^f`G z)EghhsByx}BN3%R!jspbL=xa1F+6GmQ9IC@)%SM$&(0 zMEfyf$%ynaqCTVV^&0ACt7eosj7IW(AV;W{QRv@i6qZgeq|h1Rp9G5A5J4QFiX`Bj z5$wfCd32#ST5Goq%5w{wmu1;|v#A>a8buahp69FA)!X%Sc0WxIMv0D*{Fli5Tv?VE yMNvFfRdwFB?V-wlL%#%8>PRZ-?}MLT0R{kR=C^DVPRk_#00002vnPf?2NP7SYII1B?Eh!FW>w_h+$?h#$*7n zkh+u#_rVVeNR!dW*JndaJTz!BK2A_ZcO_o< zQ*V42qs9p@k3^IP2~S>!5=nr6#PFzbgwTP!C)PCb5=sXW9bi47u75O=puA|Q8A<=0 z5$(r_B_q?kV0pKe-bEeLj-YzDw2SA zMz9wn<XhwudVJ4gC^WsUxYRzYl(X1sDLJ1h;a~Pa2{C0000A4ZfJ0TODGJ8@D{{f315#5Y^^bd`I18se8jT2A9!(}73nQUhSOQcOB(=S@ zc0YzmK91wBL%FX^aPnl34iC33Ns{g7$98eIe7KFGNzj@)!ylJr*>#$xk9nS7)pb2p o`ETf~k?EVsZPDd}<4=GA0OZuZ#_dKjm;e9(07*qoM6N<$f;3aC_y7O^ literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_On_Selected.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_On_Selected.png new file mode 100644 index 0000000000000000000000000000000000000000..3f207cbea2beb7aa94659eee314601f87f2cb240 GIT binary patch literal 495 zcmV_roY{o>0-J6a$N~P3`S;(6B_gG@&XrQH zTvuFjAAMPdoLt}CzFBLYnx@H&v8Z%BfNLC7n+?kw^8yJx4=3X$9cEv~8qaWw1=^NX zvi@FWmaV%Pjz{(6;;hK0ldVZC#ssZbMQQ-FMZ`24<@M2YT#ZhTD*&LF)^Q_L7C(np z9>5q6)}R7KsF1(L10gF);Osw`Um-?M8?_(`AOUzJ@;#75S7dG19-;T4VuOM%U#)c% zybBfIItu!>ZBMN8%6X^aTjzs*0R7fAm1RXLvC&%+UC|F94S?E!MBK*)iLU5_+S6)N zCl|F9J#}FO;O@Y7*;CX*GqmfdMf4MI)x~>%d&JYamQIjoc5e;Ifz9*$6C3Av;AtKg z8VpeUE#m1to6VN*AIpa{8{Au_$nPTJ??}0_KB%j0!gi5aEEbpZ`TVgcigV}OppQM$ lUD6~J8CRlu3do-T0{~y_@O44e;JW|-002ovPDHLkV1fcS+TH*F literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Over.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Over.png new file mode 100644 index 0000000000000000000000000000000000000000..5b8878e0cbaaf6bdc5c942e1a584d3f153d2765d GIT binary patch literal 384 zcmV-`0e}99P)} z=eq}x9iZt1X#y#bwH6i-B04AN2C9FxcaVIrSJ$!6S>l`Fh>o;6C=MCjvVyeM)3zK08wwc5 z@p&A_4+4VJJuPM^isH9vn)f`i)aZa{rmpL!s;WM_u6v}tbSv_6vR)0l?~Zh{ e=DWwA00RJ5OU^}CZaxJ70000fccKs!fqk z>#QQAVl;oshjnxb@;v{hH!P_Gd*IEw$1mwNd*S&xM*+o7ZNp1pnq7yy$bBDYd&(fccKs!fqk z>#QQAVl;oshjnxb@;v{hH!P_Gd*IEw$1mwNd*S&xM*+o7ZNp1pnq7yy$bBDYd&(2vnPf?2NP7SYII1B?Eh!FW>w_h+$?h#$*7n zkh+u#_rVVeNR!dW*JndaJTz!BK2A_ZcO_o< zQ*V42qs9p@k3^IP2~S>!5=nr6#PFzbgwTP!C)PCb5=sXW9bi47u75O=puA|Q8A<=0 z5$(r_B_q?kV0pKe-bEeLj-YzDw2SA zMz9wn<XhwudVJ4gC^WsUxYRzYl(X1sDLJ1h;a~Pa2{C0000A4ZfJ0TODGJ8@D{{f315#5Y^^bd`I18se8jT2A9!(}73nQUhSOQcOB(=S@ zc0YzmK91wBL%FX^aPnl34iC33Ns{g7$98eIe7KFGNzj@)!ylJr*>#$xk9nS7)pb2p o`ETf~k?EVsZPDd}<4=GA0OZuZ#_dKjm;e9(07*qoM6N<$f;3aC_y7O^ literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Selected_Press.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_Selected_Press.png new file mode 100644 index 0000000000000000000000000000000000000000..3f207cbea2beb7aa94659eee314601f87f2cb240 GIT binary patch literal 495 zcmV_roY{o>0-J6a$N~P3`S;(6B_gG@&XrQH zTvuFjAAMPdoLt}CzFBLYnx@H&v8Z%BfNLC7n+?kw^8yJx4=3X$9cEv~8qaWw1=^NX zvi@FWmaV%Pjz{(6;;hK0ldVZC#ssZbMQQ-FMZ`24<@M2YT#ZhTD*&LF)^Q_L7C(np z9>5q6)}R7KsF1(L10gF);Osw`Um-?M8?_(`AOUzJ@;#75S7dG19-;T4VuOM%U#)c% zybBfIItu!>ZBMN8%6X^aTjzs*0R7fAm1RXLvC&%+UC|F94S?E!MBK*)iLU5_+S6)N zCl|F9J#}FO;O@Y7*;CX*GqmfdMf4MI)x~>%d&JYamQIjoc5e;Ifz9*$6C3Av;AtKg z8VpeUE#m1to6VN*AIpa{8{Au_$nPTJ??}0_KB%j0!gi5aEEbpZ`TVgcigV}OppQM$ lUD6~J8CRlu3do-T0{~y_@O44e;JW|-002ovPDHLkV1fcS+TH*F literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Disabled.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..deb87c84897cf476ba934ca747a5cfe911e2a57f GIT binary patch literal 277 zcmV+w0qXvVP)I)eT$x`jiG?s0^N!Hf?23TmxM ztyNf*5W=$=L}czYK^r9K-yPVSAT1(j9Y;jYf1;y1vgT5qUFW^04J`EK*5^caey?FIWm0*83CA_>la5X_TU_4@fw|yB0*WdfJE{}V9}X=>5*nXK$7V@h=rYs zD${R{h>=s*dbF(@t;-ApZR4SUh7={H1k29!Yjkc;anaQe)>g=qfm)B6Dc~)k>5u8) zNWszl##;%Tn@t{ds_IDTIF19(ky7aOa}si+u023s0R{lj-;j#*+K)N_0000K{<+Vn4B7;bPO0AzqdA?bo)8Uu{ zq^3|+nr*HhAQ;Se&V_z}=2lIk(nzkqSm&F^3H<UJp)%&C)Jj}vLMa}Us0fB^v4Y@Wql)Vuot0000zKc|rOOAuC7gC~QzlJ#?vwKM=8Zn1LiS2`gELu`9$3 zS%^-hj>6EwgG)UOVqLl!{QVBMs{`vwbr9>azJSck(9Bvcb?;c0_0xAGd61Q1M#TCy z9c5@4I7xGicg%y7Iwa}pnujqDuZ=W1}0k4QSaQ7ch{vaOLcJ2 nowI&1)z3*00?v1^0*x_v zHf(L8zd+0^4O^W^FVOU7AUzWOy*fgIME`g+K`I_e4WLIisI|t@D3ECHV_@(x@P1)U zDaD{bA%r^_oO5F~>>8H-PcpDdG9V-9B!k984^pZVLE!YhK|36P1O0s_RE~kX_ZGQ2 kqxExQ=2%Y+&{u!~0B!)YH(Hsrga7~l07*qoM6N<$f@srjFaQ7m literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected.png new file mode 100644 index 0000000000000000000000000000000000000000..ca7027da917327a98545e11b213c82ec88e25ac9 GIT binary patch literal 359 zcmV-t0hs=YP)FbqW-l}*JtL_c#M zvF{ywnV_?xb-97KvFFA>EcD?X?rlmX=iJ>LP#Hd5*WJppoYOR2V*}Q8O~-LO38-nB zM^#m?JkNb>&@@eFuB(9Ry6)Syee(K_4eI;8NRosE1Sjn1&7dJRD1_jKVekUlxH!vz zHaMdI{Y{oN6YH@4Uy)mBG{PTIhc7|7HfHkM^E0YP7*3t9$KhhYc;n&+AL z_7dhjHVC@V7Z4EzhM=R59dx0;4}-Qrbl+jnyJT=gyQU7qKJP~N$Yp< z+AO2PlDLCP9C`2aq9`tSb`7E{p-)HsoDfIY9Rd0XFaXL3|1!a|#{2*P002ovPDHLk FV1f>FnN9!z literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected_Disabled.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected_Disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..220df9db251b1404f4e10998d4b1c0da525717f0 GIT binary patch literal 308 zcmV-40n7f0P)?FIWm0*83CA_>la5X_TU_4@fw|yB0*WdfJE{}V9}X=>5*nXK$7V@h=rYs zD${R{h>=s*dbF(@t;-ApZR4SUh7={H1k29!Yjkc;anaQe)>g=qfm)B6Dc~)k>5u8) zNWszl##;%Tn@t{ds_IDTIF19(ky7aOa}si+u023s0R{lj-;j#*+K)N_0000K{<+Vn4B7;bPO0AzqdA?bo)8Uu{ zq^3|+nr*HhAQ;Se&V_z}=2lIk(nzkqSm&F^3H<UJp)%&C)Jj}vLMa}Us0fB^v4Y@Wql)Vuot0000zKc|rOOAuC7gC~QzlJ#?vwKM=8Zn1LiS2`gELu`9$3 zS%^-hj>6EwgG)UOVqLl!{QVBMs{`vwbr9>azJSck(9Bvcb?;c0_0xAGd61Q1M#TCy z9c5@4I7xGicg%y7Iwa}pnujqDuZ=W1}0k4QSaQ7ch{vaOLcJ2 nowI&1)z3*00?^Ghg;+T6r@_EN6`i-2;hmwvdONt-4{zEAs6%Mz4HphPCUuxh%_1Lj9aryPT4`uFq9feakbO0o{}R^CPAD a6<`2pN!BO9*5G0Q0000^@RCwClmc34eKoEszSR{dh%HG1x z=sS?ynx~zenFf#iPWvVcOZ!{T!2WP z=aK+vtvAq;2Pc%eEezv0;xG&-0iuy?AiBji2m+DVQQs|fB=2uhC;c+)6#4b!c+g&v z5a&YC|FDjdrvngNN-3PC$);)gzP@!3$FUN)tiEZQuRPCRQR?S}9{^JFQI_RPQ52s@ l7G4WE$1~Sd1Dp0EzyORM;wU{Ht!MxM002ovPDHLkV1m>%p|pgnd3$P7w78bFP2z%OeR5O>o7WZi@&&Z%T4+T-YA ze5`XA;+ O0000nvjf7$fq>h}7KiFs^N@Qc;#=I#g)FEhx8(0=>hW=sf5P2JQSpPwE+-#?vX z5HSG}jqaUada~9!vF;#)fI;3zcMiDkEh1b7MNuQFSR)bAJGls*b?MRJ0GVzi8N{N7 zlt^o*dJv>^tAJAP0Te0b(wPzdw=M}%$amL!0}4K%UwBkevAG$qA2;O>-w>(s!tR(`$|De!$|j#pCs;2fB^s>qYLI(F=Ybf-47rn?Hn^H)B_tC zQT&jVbL_$$?p|dCV5udMw?wwCPzBQaJ?yqQM0v~#qL>uB21zARMG+aRb`+ChAEgT= zDi?E&kYd*$@2WZ;*_#2N+1_P81Y-p?Vnzo~jp9wIzIxPTV;i7<(!tTi`2+=)pM6rx zmc}?u1pj_JWwh35n!bgMiahV=e0!qfSh77m){5azOx_oZ s#nXH~|DY*2Zc9CS-Mnq6Tz>)#0O*h!M%C|rxC|}DJAo(Q0vy2F#)66)*!bQB5P=x>k25HXFR|Qtn|y&#%rDMg@U()aXdydedT?zb)(iB}Nz$8z*&t4-G}I>80nTHG|qqG)$S_85m@2jRTKIF7)whqT_KQ%YGB%QRr!%c&zVjrYaW362%??|a1U zNQx^Rzk;q3-L@Q<%s46K^7k_loPYqB=hVnaO>=^>E3B^y~C#v>o0v5@{2WWG6D$VXRZ8IEe_4 zus5P{9A(#a(s3NgNko{0y%8aX3MAC5u_H{v-i5(5vvvD0n771yMLRqbhF#{F-;vlU zGK98jQ)J7!|BAFl>on4Lc5GP%e0o0~O$3aew?z>qp&tZ6j7^to@XVnaO>=^>E3B^y~C#v>o0v5@{2WWG6D$VXRZ8IEe_4 zus5P{9A(#a(s3NgNko{0y%8aX3MAC5u_H{v-i5(5vvvD0n771yMLRqbhF#{F-;vlU zGK98jQ)J7!|BAFl>on4Lc5GP%e0o0~O$3aew?z>qp&tZ6j7^to@X%p|pgnd3$P7w78bFP2z%OeR5O>o7WZi@&&Z%T4+T-YA ze5`XA;+d3(C&+2c!56mz5Xb0Tg~oV-_6bzhd{hmmIODz;}Oa}mt_2rvLnvjf7$fq>h}7KiFs^N@Qc;#=I#g)FEhx8(0=>hW=sf5P2JQSpPwE+-#?vX z5HSG}jqaUada~9!vF;#)fI;3zcMiDkEh1b7MNuQFSR)bAJGls*b?MRJ0GVzi8N{N7 zlt^o*dJv>^tAJAP0Te0b(wPzdw=M}%$amL!0}4K%UwBkevAG$qA2;O>-w>(s!tR(`$|De!$|j#pCs;2fB^s>qYLI(F=Ybf-47rn?Hn^H)B_tC zQT&jVbL_$$?p|dCV5udMw?wwCPzBQaJ?yqQM0v~#qL>uB21zARMG+aRb`+ChAEgT= zDi?E&kYd*$@2WZ;*_#2N+1_P81Y-p?Vnzo~jp9wIzIxPTV;i7<(!tTi`2+=)pM6rx zmc}?u1pj_JWwh35n!bgMiahV=e0!qfSh77m){5azOx_oZ s#nXH~|DY*2Zc9CS-Mnq6Tz>)#0O*h!M%CY`8J1DG(nI{ISntR_4GiHVyX2uoWCh6GA0ltMiRX(A?~-sFUGdw%ye=ldja zST)Fi8c=258$(0Lf}F%CeSxm4)#|Nb7&oO-sgcj;i)?zH_cobKhL&aZMx#*|tv>sy z1Zp;$52k5$0GXT3rVs>yvRp0|S(Xc$rqy*_zksheolb3TCRi(%%XjT|yOYgk&wbw) zVHgU)JFVC2-TzD`bCS#D&K8SB0FOoRs?}=UW8x(??96c-A85PXiYSVNs;Z~_O4oH? z6b6Awbx!5plYBffBze4oT zONQ>@d_Er}AsiDu^pfG;5Q*tH@VcTX8ebmSHn45Gi{B@L9v*xEIubi2Ok*;D0EN^C zIEEfBz$4nP$<1+asO~!ok;e!?#sC%15deEOn>{;@)7?Y;?|1cIm;6J30RX~{?Z!g+ RJ9Yp7002ovPDHLkV1hd6&5i&7 literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/SliderThumb_Off.png b/indra/newview/skins/default/textures/widgets/SliderThumb_Off.png new file mode 100644 index 0000000000000000000000000000000000000000..b62723201284662c61736fbf853c3d83a319c818 GIT binary patch literal 475 zcmV<10VMv3P)Y`8J1DG(nI{ISntR_4GiHVyX2uoWCh6GA0ltMiRX(A?~-sFUGdw%ye=ldja zST)Fi8c=258$(0Lf}F%CeSxm4)#|Nb7&oO-sgcj;i)?zH_cobKhL&aZMx#*|tv>sy z1Zp;$52k5$0GXT3rVs>yvRp0|S(Xc$rqy*_zksheolb3TCRi(%%XjT|yOYgk&wbw) zVHgU)JFVC2-TzD`bCS#D&K8SB0FOoRs?}=UW8x(??96c-A85PXiYSVNs;Z~_O4oH? z6b6Awbx!5plYBffBze4oT zONQ>@d_Er}AsiDu^pfG;5Q*tH@VcTX8ebmSHn45Gi{B@L9v*xEIubi2Ok*;D0EN^C zIEEfBz$4nP$<1+asO~!ok;e!?#sC%15deEOn>{;@)7?Y;?|1cIm;6J30RX~{?Z!g+ RJ9Yp7002ovPDHLkV1hd6&5i&7 literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/SliderThumb_Over.png b/indra/newview/skins/default/textures/widgets/SliderThumb_Over.png new file mode 100644 index 0000000000000000000000000000000000000000..b6f900d3bdbdf27e2a676ed1b0a3f126a972de15 GIT binary patch literal 482 zcmV<80UiE{P)Z z4&tcoylZ`QmJ&LD2l#buNB8}o>3WKRaMn<(=^-p zd|vf^pCN#WqA1p4v55a?vsr3FER4tFfV${$IFqjHCxRfTRE1eCm&|Il+7e>eg9lzP zX}#V#B_LB=CX(Sf)0LXo=3S7la31FaQ};L$<#xj^n<5@lLbZ>^%wm2Ehvk zZfi6eJ)+IsOW74X@Pff}gmftdNs<~o&&xlZ6V+VTwfp`46+PJvK$ku|0*bj@?htTt zgGfTd5XN72><{9 literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/SliderThumb_Press.png b/indra/newview/skins/default/textures/widgets/SliderThumb_Press.png new file mode 100644 index 0000000000000000000000000000000000000000..7081f9cfe0d1a0cb8879ccd072b3de16f2eef761 GIT binary patch literal 470 zcmV;{0V)28P)k5k&Bpumqyw`X^S%z5;3I4O(v9iGrMp1ts?fL z1K2l0guBAYL8E8P4bP0jLrA!p>w_ z)FGKgkzOGwcG70P17t~OQ4!a({vByct#Di^k^JJsZ=^=R%XwO z&1NI0rH95AG99ni>nwX-P(y9zA+cO8vwoN{FEA)kD16V8J-WD}OY*OvhFW@PoM7}0 zNmk4QHPq6>x)H8vmdoW6Ttl+YLnc*KSRp1C!@PzRj9{ri?wl$4@@9Mvn{7ZlV0Ce>BJ3KH-GXMYp M07*qoM6N<$g7Rv}i2wiq literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/SliderTrack_Horiz.png b/indra/newview/skins/default/textures/widgets/SliderTrack_Horiz.png new file mode 100644 index 0000000000000000000000000000000000000000..232006ee5ad32a176bb2654a79ff804bbdf9714b GIT binary patch literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^89>a&!3HGtAKmT-Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JikdxL978H@CH?vT-~O#rWp-_Us6mW*!X|^{H(6gBym7+ z$+Bf-AK%^G-80|5ewrNbtVZ@dd-nJ{7Ba1GZfKD0uymN2X;Q()`h)j~y@MpD!U2Y- XHOgzu(iR8gTe~DWM4f#T8Ra literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/SliderTrack_Vert.png b/indra/newview/skins/default/textures/widgets/SliderTrack_Vert.png new file mode 100644 index 0000000000000000000000000000000000000000..cd002b3973d3bca4827f025eae159cc84aad3786 GIT binary patch literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^Y(SjB0U|FMH6{Tm$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GU7jwEAr-fh{`~)M&un&pV^Ts&$`!Uvz6+CC>mUq|{Vjrml?!j-i?#K76<%EGD+^%kS^`mJ0KGI~lDLj;S6r&@x1WjuVeC z&tPC@Kb|abmMQx}?T-(QFF!v&-=n3aCEoaFe~-sm#|cVi8o$LI8Wbw!o3TNRBH7y$`8wq$ zl(}u1^Z!Aswd)Z<2d~qAuU)&9$8}=qwJJNtj-W16g^Blm|31I0VGj!f3xfcI1IQV; z7!Cg`^_gm~J2u2DD-aR+#Fo&raVBHYE*1#}uXf(A&t`~(0iDC(>FVdQ&MBb@00jp} A@c;k- literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/TextField_Disabled.png b/indra/newview/skins/default/textures/widgets/TextField_Disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..3d205a3f2e72ad2599157b854008ab434ade4fab GIT binary patch literal 225 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5#5vf2D17!+_b zKG@%PT~MmXaw3`A-BB^0;n|#aQwP8849pA+^}Mx)Ey3G?&SCI$^>bP0l+XkKLK{ME literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/TextField_Off.png b/indra/newview/skins/default/textures/widgets/TextField_Off.png new file mode 100644 index 0000000000000000000000000000000000000000..911d907acc3c38551f90b85e23f0bd2dbfbbf4c0 GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5#5vf2#Hi~YCwmtJIc6JB#L zC7n-dU3JCr{jNtO9lW0Y{Bnk1@s4^%pG%zqQF>v5! y{5ij!V~dzmgUvPrF0M*ugXbn}9G-WXco;PF`Pf~=l*@pwVeoYIb6Mw<&;$U1`9qHY literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/widgets/TextField_Search_Active.png b/indra/newview/skins/default/textures/widgets/TextField_Search_Active.png new file mode 100644 index 0000000000000000000000000000000000000000..fa79cb62609a040ae53ddceab01699b985558b8d GIT binary patch literal 923 zcmV;M17!S(P)P4%FtWUK$Ow1cDI>?DGNlY<~mnX@~zOF-=wh*Uz`q4lssi(u2V215mF zL}$9;W$1BpZ;W}4<*!!SBRp-_9P!2gzz=H^5=JUl!o z6bgH`ZRgYJ^hcT8vvTXRB!Ywbv1-E#;GWOtdpaU3K9rBbOV+uPf}GMUWg+}zxh=5m3gjn* zT=D&YB!T1OV`Xh^?ft^S!t&PER@zMhdQJXz%>0mlbab>g5D0L#C&VMTt9ZDL>xqep zeewGM+X3x73+Q?emi?IdDL*0J15U$jI1bn0{JHybBWzjL0QUS?_EUaByqg5zI9!j# zVgqvhMQdwoyFWHI_SAjgM+ouub^xx!dAN@)Kqrp+C_f?BCkeoLxUV^m6UI3|kN63> z9>8@t5BIfdwHiW^56<}sA>IeB!+E%`@$Vqy`l88lpp3FXR1OhByboN5^Kf7D`~AOB zGmNr9LWuW)>u?_KYk@%ECmIG&E=UORK5!k*!+k9pjqa?htb9Vl0FwYA-j^S)!+E%` zXS3N|!!R~7namRu2;hi-)qsR}4>bOvDF~f``FwsuwgJ011*i@V4sI?kF1|sx(9zM6 zQr{v>2=Rvea2t-pbvO_A-FD!X{{H@lGT_DZ^zx8yg27;}1h$|OKY6QgO`35tAz!Qg&494=ax^&^!^?aHmcSoYVCRsZwA4~YN| x0rXn9Wy9PD5Yptk0L;}APAw{p;=BA4U;r;XI@{gdy{+CCjYjViKn)!&EiEq=78c%(jEr;#gTXdA)(pca$DQnN0SrudjcM#bT$D1g`(;0DxTR2!%p#=I7_%j*X24 z-EOxA`3WJ71q!uv>*avQ(#5x-n46~Q+1S|ditC@MNkGROfc&6UWPiQ9y!<{Ai3B|! z534;P&gu%Zd_J!w5{cBx%F2ggvG`fe-KugM;Bq}f+mFgm`3Z4mR{*!+I9!MGW%uO* z#tHox^P^p${De3+3BYlfr##6)j(!jBN*T;Modhx2eBLx6U?>ZAOG zG*1$M^Kf64N+loO^W!xiA;kH>bvO_Am1S9OEb?IjAf$N`0Gx;WijRYk=0(YPpnzqA zk`4GY2x$V~I-H05%Io$1#+qR!079B40l;~&kmmjXfdAP6Q@p$Iy>gqI^Or94C1+8{}078g!fZK2!uETk_kGBAJ zEEYT8+S)okJUmR{g8?Q1LYyZ*+=k5n%Bm1E2c7>kRGfkYzFF2jOACX?|%i`Lf;9BZVTnPo!O`+1A7)gn?i`4Fli2X<{h8QeS zB%O@*ylDo~P`Zwj_kkni&bS$P&N=taovU76UMe=Ksw!0&5`Kx>5}gt^D&yA_LP$OH zOX8=*k;FHN1MxijuN!szNhA{0W33W{{r&yXNF?&0udnY;dwY9lOG`_uuIp|-TSDra zQmJH~ot>TJa=D}Z{rxY=Wb(ZfcS!zWb93{=zAqY${z(8;^t#>d$jr>lR45b*c6WDo z$#2Ewa+RZ|Lm-6IAyVz#mSuH_za0Yu19yjph6dB=^uv{vl^3yCEGbFg^IshRkPE$j zzyHbf^z_uQ;PH4A$WI8lTA)x%w_Xl-EM0sTin(DJZL6!RZQ}YXI|-;*1CW1c71M0#oSOvTI9!MGa9@+G&^J0ddf#5~BZN2?I1bn0Jlw|= zpa-w|C_f>MlLX*A+}BE_l7aX9c+E!$aXxSz&cl7(vaIXa-+=k$bJ zIIHbP<%j%hYin`CFy3r!ZGA!luulZCWMFT6d|X{xTFOfzIOc&Mgk0TfkClFeJ?BT; zkIEkm2H$OLZ0x~#oCs9z0PG{dWWYT)H`lqozJAZ^^@c}AMnXIijF78E?U7(u@H;&{ zO-)Qpd|X^yJQCl{itmbAdnl;<#-3o$?Ck8VR4UaY-N4O4q0lCo#D{w>E-sh^2&rQ< zO*65{$LI4MOS}Ig91ee7US2+wOGUK()%U9ZS@1(5zzM*5CG2g(oCgq6=d%FRYBU3t g_*E;u&2Iq)0J+PT5gP!MCIA2c07*qoM6N<$f|ByX3;+NC literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/windows/Flyout.png b/indra/newview/skins/default/textures/windows/Flyout.png new file mode 100644 index 0000000000000000000000000000000000000000..5596b194c946c03038f1faff7b83f19e27acebf9 GIT binary patch literal 820 zcmeAS@N?(olHy`uVBq!ia0vp^OMv(k2OE&o_I{lWq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~;1Ffd*7ba4!+xb^0aVYYCh#DR~yy%(t*V`=wk46?GE$?}Ug z<`3J^_ZP1oeXrD|$Cp>fr0H@ZYqgqUunf~g2mR?szEACtjggrY^5^dZ%{#Hn+wI>M z2Fz01FWYX(TP(6{;(>RfiR%u<u}uHsJC)^k>K&qb~c+a0erJ$QH0b*Gk- zNgIFMd;dM&Z~0~Ohreoh-Y4$9TX*ek+5EJ~Y3ssP&)+Y>UZ(kF+7z#)DSPA8n-4y? zT47Tc$Mt>wm#V#=tsMhJl2X>Ir`RxDHt~J+_1DP)i$4*3-~F|wp4$6EVH#JvfYh3! z?`KG)h;jEi9#XuMp}*(ILov<&Rnwal9{M}}n&CL%!PH)bhxyHCKHpI*aB5NzRN)YE z1W|9g?ClS8ayC7=&sk(P`zFhF^%HJ~|Fa%&=Y=XjrW_}52(ff3AgD`R0x*N%>QEFw zlq-0!a5lM2K&Dt6l{^GgnouaX5nz{rc?hfE7NeU4G8f&XrY%f#w()=Egx7BmDCQ=$ z8=g3S{rdIzH_gts%zkVYseAJ9k>lo@HB**l-pso3`{It9PbQyyQabN>e)5F-(@v+_ z%|D-hHEZj{)JW4avDr!diee89{+LMh#_5Q4mp}aFT=n>8;f%`$?uk;@j>?IE5?YId f{^MSGCLRX%;)7>OOnA+K*?_^*)z4*}Q$iB}kQXl& literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/windows/Flyout_Pointer.png b/indra/newview/skins/default/textures/windows/Flyout_Pointer.png new file mode 100644 index 0000000000000000000000000000000000000000..69fc08ceaaf082a1a2c1645c363f21a668385709 GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^;y}#9!3HEdt<`=2DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MSY$wjv*Ddl2Q^9GA>-Zwk~~v(T=LGS<1!}p4I*R^)=Vf z(2zY#if4(R@!$Xd>$N)=MHkFEs8Br9f$7R7hMNfj^EuTVSF*lfTP)$%$$Eq5n86$w z?gGi4s|7(i2ht7v4tH*Bm~gOy_jo#^A=_adg^tDp(z7Nz&S4XnFHzeQaF&HpSy}l6 iQ}Ch~9##fMHU{S_N6kgWmWl#h#^CAd=d#Wzp$Py69#KgE literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/windows/Icon_Close_Foreground.png b/indra/newview/skins/default/textures/windows/Icon_Close_Foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..fb59f2e61e4f3aec4726495a7dfaab3007408744 GIT binary patch literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GEuJopAr-f_1Um8^P~e!H`d?}v&o`sHr)6TV2s}$|pP0b3 zCDSo$?Na@XOV?i%y)x-A$JV5GpDVpIeO*>58)kh`PK>ac`O{!R*@i`K_Et(8Iykf# zyw`q}dN616zP?9Nm)o{)zjLs8;S(hI2ysMa&oO0A6ggrrGhR|>8L!L4!O#xdv%R(6g%bH0QGf(8cm*0YOt zZ_b0R>&UFE$#EQ-OeW;}J_SLb^v}!(1ggoL`O>y6m1Rj)Rnh5mGRGv#vM3BgisP7U+eYe+ z`HCjk!3T4cWf?6N3;GLD6j7R{2tS!OmR#ZpBj5{w&1OSMl3Wzxj647x^r%C%}*YLq^xBJ$>98H~}msrDb5p1|zE<4ZjI@fiDE%Q7Vu_Dd@V(6fkh}1{rUgjo>^I0nOP{~z%jO!%#3a&yuZJ{|IeRn zZDnP&C_5oZL2$yFMpm!SOofJGl{4h48h;qy;b-TQnZUGZ{v*SPTL%w5l)U5VaK6#v z(hd>lr-6SPoQ1oRO8nIsRPRnO@pS&lc|z*J#|;%9AN^Knym8}3tAXc&2%8WeLFGpi mlzC(ulmuLvH5n8RFkHCcFnjfi2yvk67(8A5T-G@yGywqmHCFxr literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/windows/Icon_Dock_Press.png b/indra/newview/skins/default/textures/windows/Icon_Dock_Press.png new file mode 100644 index 0000000000000000000000000000000000000000..08f8cfc3d43a9d3541a1cb23494d4c82c4a5d5f4 GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GlRaG=Ln>}1{rUgjo>^I0nOP{~z%jO!%#3a&ynK9o{}bOZ zv-24&%1%g95S*~4k=5%nQ=y?)c}JIe zO1=1*9^uT{t+pX4=HM)bt6R8NaW1*RyQ+|}jjg!&^KXU5$?E=kEt32q-R)hPNf{1( l1|KP)&?I4diw1vUjhxf4J+OF}MU1ce9Cb_ZWy-*{{aH*em&@a);M zAnz>zVgaB~0TyKw7>kOEuJiHnX&}22O8 zAd4ZX0R_4vnjwy$$N-1Yo;`ayTwGkrv3U(B*9nwE4{T6u?uQz303^T!BJ6TAYiOiB1yuX3=)ING2k!^4p@)`51=VHfUX#CI{N?rKLa%YK!5=N*@|7a T=EpsW00000NkvXXu0mjf*}jM+ literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/windows/Icon_Gear_Foreground.png b/indra/newview/skins/default/textures/windows/Icon_Gear_Foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..1032e45f7e2c6ef2fc3f3ff29fe6fad4105088fb GIT binary patch literal 373 zcmV-*0gC>KP)8U}fi7AzZCsS>JigtRsIEGZ*N=i7u!WrNr_2d74`;MT7tgs!Wudme#xQQ{Z zJlGn@vueeP7Yvzx-rmt4X8Wz|U@d}Ut{!hx-V5>3lC#B7M@4x)MLdf^J zkn2xnF~$hzJc2WW#j`9sAW;;>X2L)tOa{<9?sgPKr0@G3rSx(bhPChe%yFDm+qPbs zrd!*#m!9W6nT&)GUlVm*_Y4hZIw5c`z~#S9WMLjb5U?akwmM;1mXCE^&}r`!E4b)4YM^6ponXyT)j}0Ko?ws50s;?s(;?q-Kl+7Cyp3G1)+m z7&EG>>MoAsYu(j=+XJ_o!AzQ=$r#cJe!?(3H-%~7xSWhnz-R=oa-)#Pkr9&|F_;}| qp@4iQ;B)bhe>VJt}1{rLaio|!|LF-{?`;Zg!aFmqV@vc~Yp$erc? z|NZ^%XyPNR$6IjJfah|{nnuC2U0q#X@8?(+cS&4u@bdDyKi9gvE3sxr8#6oKpY#Ka zGBPp}h9(9^PDdR48a=J7tc(u*VPN**QDK^7x}1{rLaio|!|LF-{?`;Zg!aFmqV@vc~D{?aQwp zJowPQqb<|v+5wK>Gbc`P1l>tUN(y4RT>I?I%zgUt`%DEn;w`*U1 zetw?B!`s)__g}K0;qUM7#z`3rR-8V~clamU6g*&1KErQt;E02gLL@V{kTqksjZY3^ zo4k&W&b#Iplhyt8T0CdXo_)Oeg|NDxMv$D>5vB$PW`?De$wKR1w08qt%;4$j=d#Wz Gp$Pyqeq$>D literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/windows/Resize_Corner.png b/indra/newview/skins/default/textures/windows/Resize_Corner.png new file mode 100644 index 0000000000000000000000000000000000000000..16ed63e4288aada9cb87fa2ec6985ee1f9b4aaca GIT binary patch literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1|(OmDOUqhk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xv^`xMLn>}1{rUgjo_V4|%S4u=JU&Nec$7|dUXfSCan+Y^ i;jWX4M`rN|BrrU6lXxuJ!(I#2#^CAd=d#Wzp$P!)tSY(y literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/windows/Toast_CloseBtn.png b/indra/newview/skins/default/textures/windows/Toast_CloseBtn.png new file mode 100644 index 0000000000000000000000000000000000000000..78b137cdaf5ef4671749bd0bdddd1ab3bc7f70c3 GIT binary patch literal 471 zcmV;|0Vw{7P)-&zo60NpS{NRIkFW-CI zyZbIJAp{-Zf_cLnF#F6)=7zaszA;~!yS)lDX>i2cir=wSy6?JHV<(TyI|TFjoED1( ztyU{4ih?Z5qF%2@uItipIMn(l<~;)4WW;Zh}zz%>c%P0)Py+W*!2cUxPsp6?~BA`N8U}fi7AzZCsS=07#NK_T^vIyZoRpt$aN?|;&@`L7|ZI^vkDaq8{ZktOT75X zca7S?7lL8?Rc5d_UU>2Qtlq`olf2eW^uy!!HFfL*UY|wBJ zQNZM45kk>`RTGj59LB;`pj!OD@6kh^3)Rmw&b?#U8{D_3@9tfuTl<$;xnDdIw$b^` nGd-RQ)@41q!Cq(G8yFcP-bhJ2xcklz7{m;ou6{1-oD!M<){KQW literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/windows/Window_Background.png b/indra/newview/skins/default/textures/windows/Window_Background.png new file mode 100644 index 0000000000000000000000000000000000000000..e9f15e76b967b997a0ca3be09ee1ede4aae91290 GIT binary patch literal 950 zcmeAS@N?(olHy`uVBq!ia0vp^4;UC2^*Gpotm!-CCITtR64!{5;QX|b^2DN42FH~A zq*MjZ+{Elu92*oI9Kg8X23I(PnF5D^036H6{AX_BE%RR@2@JO#noe--Yi=FX@(W^6{-ReIaVm(){D%XE&$d$!b^Lv+K7PmsCAG|GCKF^Vh1ms+IG$ zKQ0n{trDipye(JoweB^AUDdw)tJeQmH|y-P*yWdZuD$;HcxdR;Z(Q57d3WE;`DQ1> z_xs|V;ye47TsRlK_FD4x+k5r9l;ZWK&yT<3YtCQWsxbVL#Jn-l>YZ zyRW~>@f}LqC?Nl)fN2?{_+|a>$1A9SJY1JC zG~WGvElS3#aqmjA^k9dE5C56Id}3wc=v&ah@bEv2#r*ScS!OgSI5@!Zhw>kmLLi|8 zc}BnG!Pbnwxi(z - + + - - - - - - - If unchecked, viewer will display full-screen when logged in. - - Window Size: + Window size: + + - - - - - - - - Display Resolution: - - - - Aspect Ratio: - - - - - - - Quality and + left="30" + name="QualitySpeed" + top_pad="5" + width="400"> + Quality and speed: - Performance: - - Faster @@ -224,80 +100,20 @@ follows="left|top" height="12" layout="topleft" - left="158" - name="ShadersPrefText" - top="93" - width="40"> - Low - - - Mid - - - High - - - Ultra - - - Higher + Better - - Quality - - - - - - + Low + + + Mid + + + High + + + Ultra + + + diff --git a/indra/newview/skins/default/xui/en/panel_profile.xml b/indra/newview/skins/default/xui/en/panel_profile.xml index f99d629aed..1af3c6511d 100644 --- a/indra/newview/skins/default/xui/en/panel_profile.xml +++ b/indra/newview/skins/default/xui/en/panel_profile.xml @@ -578,7 +578,7 @@ top="0" width="50" /> - - + --> diff --git a/indra/newview/skins/default/xui/en/panel_progress.xml b/indra/newview/skins/default/xui/en/panel_progress.xml index 6139bae874..4f23c4d26d 100644 --- a/indra/newview/skins/default/xui/en/panel_progress.xml +++ b/indra/newview/skins/default/xui/en/panel_progress.xml @@ -61,28 +61,28 @@ width="640" /> + width="593" /> + width="593" /> + width="610" /> + top="700" + width="90" /> diff --git a/indra/newview/skins/default/xui/en/panel_region_covenant.xml b/indra/newview/skins/default/xui/en/panel_region_covenant.xml index 7bd548d464..8265ab3227 100644 --- a/indra/newview/skins/default/xui/en/panel_region_covenant.xml +++ b/indra/newview/skins/default/xui/en/panel_region_covenant.xml @@ -2,13 +2,13 @@ + width="280"> Purchased land in this region may be resold. @@ -49,7 +49,7 @@ mouse_opaque="false" name="estate_name_lbl" top_pad="5" - width="100"> + width="75"> Name: + width="75"> Owner: + width="75"> Covenant: + width="167"> Last Modified Wed Dec 31 16:00:00 1969