aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview/llviewerwindow.cpp
diff options
context:
space:
mode:
authorJacek Antonelli2009-08-29 17:44:38 -0500
committerJacek Antonelli2009-08-29 22:49:51 -0500
commit6a5aab98892df74f60743f5b789959c9593d6647 (patch)
tree62da18f8540879ed01e12eeb0ce49375474272e4 /linden/indra/newview/llviewerwindow.cpp
parentMerge branch 'mac-openal-url' into next (diff)
parentConverted 1.23 XUI files to unix line endings. (diff)
downloadmeta-impy-6a5aab98892df74f60743f5b789959c9593d6647.zip
meta-impy-6a5aab98892df74f60743f5b789959c9593d6647.tar.gz
meta-impy-6a5aab98892df74f60743f5b789959c9593d6647.tar.bz2
meta-impy-6a5aab98892df74f60743f5b789959c9593d6647.tar.xz
Merged SL 1.23.4 into Imprudence.
Conflicts: linden/doc/contributions.txt linden/indra/CMakeLists.txt linden/indra/cmake/APR.cmake linden/indra/cmake/CopyWinLibs.cmake linden/indra/cmake/OPENAL.cmake linden/indra/develop.py linden/indra/llaudio/audioengine.cpp linden/indra/llcommon/indra_constants.h linden/indra/llcommon/llversionviewer.h linden/indra/llcrashlogger/llcrashlogger.cpp linden/indra/llmedia/llmediaimplgstreamer.cpp linden/indra/llmedia/llmediaimplgstreamer.h linden/indra/llmedia/llmediaimplgstreamer_syms.cpp linden/indra/llmedia/llmediaimplgstreamer_syms.h linden/indra/llmedia/llmediaimplgstreamer_syms_raw.inc linden/indra/llmedia/llmediamanager.cpp linden/indra/llmessage/llassetstorage.cpp linden/indra/llui/lltexteditor.cpp linden/indra/llvfs/lldir.cpp linden/indra/newview/CMakeLists.txt linden/indra/newview/English.lproj/InfoPlist.strings linden/indra/newview/Info-Imprudence.plist linden/indra/newview/app_settings/logcontrol.xml linden/indra/newview/app_settings/settings.xml linden/indra/newview/installers/windows/installer_template.nsi linden/indra/newview/llagent.cpp linden/indra/newview/llappviewer.cpp linden/indra/newview/llcallingcard.cpp linden/indra/newview/llfilepicker.cpp linden/indra/newview/llfloateractivespeakers.cpp linden/indra/newview/llfloateravatarpicker.cpp linden/indra/newview/llfloaterbulkpermission.cpp linden/indra/newview/llfloaterbulkpermission.h linden/indra/newview/llfloaterchat.cpp linden/indra/newview/llfloatergodtools.cpp linden/indra/newview/llfloaterhtmlhelp.cpp linden/indra/newview/llfloatertools.cpp linden/indra/newview/llfloatertools.h linden/indra/newview/llfloatertopobjects.cpp linden/indra/newview/llinventorybridge.cpp linden/indra/newview/llinventoryview.cpp linden/indra/newview/llnetmap.cpp linden/indra/newview/llnetmap.h linden/indra/newview/llpanelland.cpp linden/indra/newview/llpanellogin.cpp linden/indra/newview/llpanelobject.cpp linden/indra/newview/llprefsim.cpp linden/indra/newview/lltexturecache.cpp linden/indra/newview/lltoolbrush.cpp linden/indra/newview/llvieweraudio.cpp linden/indra/newview/llviewermenu.cpp linden/indra/newview/llviewermessage.cpp linden/indra/newview/llviewerparcelmedia.cpp linden/indra/newview/llvoavatar.cpp linden/indra/newview/llwebbrowserctrl.cpp linden/indra/newview/llworldmapview.cpp linden/indra/newview/pipeline.cpp linden/indra/newview/res/viewerRes.rc linden/indra/newview/skins/default/colors_base.xml linden/indra/newview/skins/default/xui/de/floater_active_speakers.xml linden/indra/newview/skins/default/xui/de/floater_instant_message_ad_hoc.xml linden/indra/newview/skins/default/xui/de/floater_instant_message_group.xml linden/indra/newview/skins/default/xui/de/floater_joystick.xml linden/indra/newview/skins/default/xui/de/floater_mute_object.xml linden/indra/newview/skins/default/xui/de/floater_sim_release_message.xml linden/indra/newview/skins/default/xui/de/panel_media_controls.xml linden/indra/newview/skins/default/xui/de/panel_preferences_voice.xml linden/indra/newview/skins/default/xui/de/strings.xml linden/indra/newview/skins/default/xui/de/teleport_strings.xml linden/indra/newview/skins/default/xui/en-us/alerts.xml linden/indra/newview/skins/default/xui/en-us/floater_about_land.xml linden/indra/newview/skins/default/xui/en-us/floater_avatar_picker.xml linden/indra/newview/skins/default/xui/en-us/floater_beacons.xml linden/indra/newview/skins/default/xui/en-us/floater_bulk_perms.xml linden/indra/newview/skins/default/xui/en-us/floater_buy_land.xml linden/indra/newview/skins/default/xui/en-us/floater_chatterbox.xml linden/indra/newview/skins/default/xui/en-us/floater_inventory_view_finder.xml linden/indra/newview/skins/default/xui/en-us/floater_media_browser.xml linden/indra/newview/skins/default/xui/en-us/floater_mini_map.xml linden/indra/newview/skins/default/xui/en-us/floater_tools.xml linden/indra/newview/skins/default/xui/en-us/menu_login.xml linden/indra/newview/skins/default/xui/en-us/menu_mini_map.xml linden/indra/newview/skins/default/xui/en-us/menu_pie_attachment.xml linden/indra/newview/skins/default/xui/en-us/menu_pie_avatar.xml linden/indra/newview/skins/default/xui/en-us/menu_pie_object.xml linden/indra/newview/skins/default/xui/en-us/menu_pie_self.xml linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml linden/indra/newview/skins/default/xui/en-us/notify.xml linden/indra/newview/skins/default/xui/en-us/panel_bars.xml linden/indra/newview/skins/default/xui/en-us/panel_groups.xml linden/indra/newview/skins/default/xui/en-us/panel_media_controls.xml linden/indra/newview/skins/default/xui/en-us/panel_mini_map.xml linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml linden/indra/newview/skins/default/xui/en-us/panel_preferences_input.xml linden/indra/newview/skins/default/xui/en-us/panel_preferences_voice.xml linden/indra/newview/skins/default/xui/en-us/strings.xml linden/indra/newview/skins/default/xui/es/alerts.xml linden/indra/newview/skins/default/xui/es/floater_about.xml linden/indra/newview/skins/default/xui/es/floater_about_land.xml linden/indra/newview/skins/default/xui/es/floater_animation_preview.xml linden/indra/newview/skins/default/xui/es/floater_auction.xml linden/indra/newview/skins/default/xui/es/floater_avatar_picker.xml linden/indra/newview/skins/default/xui/es/floater_avatar_textures.xml linden/indra/newview/skins/default/xui/es/floater_build_options.xml linden/indra/newview/skins/default/xui/es/floater_bumps.xml linden/indra/newview/skins/default/xui/es/floater_buy_contents.xml linden/indra/newview/skins/default/xui/es/floater_buy_currency.xml linden/indra/newview/skins/default/xui/es/floater_buy_land.xml linden/indra/newview/skins/default/xui/es/floater_buy_object.xml linden/indra/newview/skins/default/xui/es/floater_chat_history.xml linden/indra/newview/skins/default/xui/es/floater_choose_group.xml linden/indra/newview/skins/default/xui/es/floater_clothing.xml linden/indra/newview/skins/default/xui/es/floater_color_picker.xml linden/indra/newview/skins/default/xui/es/floater_critical.xml linden/indra/newview/skins/default/xui/es/floater_customize.xml linden/indra/newview/skins/default/xui/es/floater_directory.xml linden/indra/newview/skins/default/xui/es/floater_gesture.xml linden/indra/newview/skins/default/xui/es/floater_group_info.xml linden/indra/newview/skins/default/xui/es/floater_html.xml linden/indra/newview/skins/default/xui/es/floater_im.xml linden/indra/newview/skins/default/xui/es/floater_image_preview.xml linden/indra/newview/skins/default/xui/es/floater_import.xml linden/indra/newview/skins/default/xui/es/floater_instant_message.xml linden/indra/newview/skins/default/xui/es/floater_inventory.xml linden/indra/newview/skins/default/xui/es/floater_inventory_item_properties.xml linden/indra/newview/skins/default/xui/es/floater_inventory_view_finder.xml linden/indra/newview/skins/default/xui/es/floater_land_holdings.xml linden/indra/newview/skins/default/xui/es/floater_live_lsleditor.xml linden/indra/newview/skins/default/xui/es/floater_moveview.xml linden/indra/newview/skins/default/xui/es/floater_mute.xml linden/indra/newview/skins/default/xui/es/floater_name_description.xml linden/indra/newview/skins/default/xui/es/floater_new_im.xml linden/indra/newview/skins/default/xui/es/floater_new_outfit_dialog.xml linden/indra/newview/skins/default/xui/es/floater_openobject.xml linden/indra/newview/skins/default/xui/es/floater_pay.xml linden/indra/newview/skins/default/xui/es/floater_pay_object.xml linden/indra/newview/skins/default/xui/es/floater_postcard.xml linden/indra/newview/skins/default/xui/es/floater_preferences.xml linden/indra/newview/skins/default/xui/es/floater_preview_animation.xml linden/indra/newview/skins/default/xui/es/floater_preview_embedded_texture.xml linden/indra/newview/skins/default/xui/es/floater_preview_gesture.xml linden/indra/newview/skins/default/xui/es/floater_preview_notecard.xml linden/indra/newview/skins/default/xui/es/floater_preview_notecard_keep_discard.xml linden/indra/newview/skins/default/xui/es/floater_preview_sound.xml linden/indra/newview/skins/default/xui/es/floater_preview_texture.xml linden/indra/newview/skins/default/xui/es/floater_preview_texture_keep_discard.xml linden/indra/newview/skins/default/xui/es/floater_price_for_listing.xml linden/indra/newview/skins/default/xui/es/floater_profile.xml linden/indra/newview/skins/default/xui/es/floater_report_abuse.xml linden/indra/newview/skins/default/xui/es/floater_script_debug.xml linden/indra/newview/skins/default/xui/es/floater_script_ed_panel.xml linden/indra/newview/skins/default/xui/es/floater_script_preview.xml linden/indra/newview/skins/default/xui/es/floater_script_queue.xml linden/indra/newview/skins/default/xui/es/floater_script_search.xml linden/indra/newview/skins/default/xui/es/floater_sell_land.xml linden/indra/newview/skins/default/xui/es/floater_settings_debug.xml linden/indra/newview/skins/default/xui/es/floater_snapshot.xml linden/indra/newview/skins/default/xui/es/floater_sound_preview.xml linden/indra/newview/skins/default/xui/es/floater_telehub.xml linden/indra/newview/skins/default/xui/es/floater_texture_ctrl.xml linden/indra/newview/skins/default/xui/es/floater_tools.xml linden/indra/newview/skins/default/xui/es/floater_top_objects.xml linden/indra/newview/skins/default/xui/es/floater_tos.xml linden/indra/newview/skins/default/xui/es/floater_wearable_save_as.xml linden/indra/newview/skins/default/xui/es/floater_world_map.xml linden/indra/newview/skins/default/xui/es/menu_inventory.xml linden/indra/newview/skins/default/xui/es/menu_pie_attachment.xml linden/indra/newview/skins/default/xui/es/menu_pie_avatar.xml linden/indra/newview/skins/default/xui/es/menu_pie_land.xml linden/indra/newview/skins/default/xui/es/menu_pie_object.xml linden/indra/newview/skins/default/xui/es/menu_pie_self.xml linden/indra/newview/skins/default/xui/es/menu_viewer.xml linden/indra/newview/skins/default/xui/es/notify.xml linden/indra/newview/skins/default/xui/es/panel_avatar.xml linden/indra/newview/skins/default/xui/es/panel_avatar_classified.xml linden/indra/newview/skins/default/xui/es/panel_avatar_pick.xml linden/indra/newview/skins/default/xui/es/panel_chat_bar.xml linden/indra/newview/skins/default/xui/es/panel_classified.xml linden/indra/newview/skins/default/xui/es/panel_event.xml linden/indra/newview/skins/default/xui/es/panel_group.xml linden/indra/newview/skins/default/xui/es/panel_group_finder.xml linden/indra/newview/skins/default/xui/es/panel_group_general.xml linden/indra/newview/skins/default/xui/es/panel_group_invite.xml linden/indra/newview/skins/default/xui/es/panel_group_land_money.xml linden/indra/newview/skins/default/xui/es/panel_group_notices.xml linden/indra/newview/skins/default/xui/es/panel_group_roles.xml linden/indra/newview/skins/default/xui/es/panel_group_voting.xml linden/indra/newview/skins/default/xui/es/panel_land_covenant.xml linden/indra/newview/skins/default/xui/es/panel_login.xml linden/indra/newview/skins/default/xui/es/panel_overlaybar.xml linden/indra/newview/skins/default/xui/es/panel_place.xml linden/indra/newview/skins/default/xui/es/panel_place_small.xml linden/indra/newview/skins/default/xui/es/panel_preferences_audio.xml linden/indra/newview/skins/default/xui/es/panel_preferences_chat.xml linden/indra/newview/skins/default/xui/es/panel_preferences_general.xml linden/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml linden/indra/newview/skins/default/xui/es/panel_preferences_im.xml linden/indra/newview/skins/default/xui/es/panel_preferences_input.xml linden/indra/newview/skins/default/xui/es/panel_preferences_network.xml linden/indra/newview/skins/default/xui/es/panel_preferences_popups.xml linden/indra/newview/skins/default/xui/es/panel_region_covenant.xml linden/indra/newview/skins/default/xui/es/panel_region_debug.xml linden/indra/newview/skins/default/xui/es/panel_region_estate.xml linden/indra/newview/skins/default/xui/es/panel_region_general.xml linden/indra/newview/skins/default/xui/es/panel_region_terrain.xml linden/indra/newview/skins/default/xui/es/panel_region_texture.xml linden/indra/newview/skins/default/xui/es/panel_scrolling_param.xml linden/indra/newview/skins/default/xui/es/panel_status_bar.xml linden/indra/newview/skins/default/xui/es/panel_toolbar.xml linden/indra/newview/skins/default/xui/es/panel_top_pick.xml linden/indra/newview/skins/default/xui/fr/alerts.xml linden/indra/newview/skins/default/xui/fr/floater_about.xml linden/indra/newview/skins/default/xui/fr/floater_about_land.xml linden/indra/newview/skins/default/xui/fr/floater_avatar_picker.xml linden/indra/newview/skins/default/xui/fr/floater_avatar_textures.xml linden/indra/newview/skins/default/xui/fr/floater_beacons.xml linden/indra/newview/skins/default/xui/fr/floater_buy_contents.xml linden/indra/newview/skins/default/xui/fr/floater_buy_currency.xml linden/indra/newview/skins/default/xui/fr/floater_buy_land.xml linden/indra/newview/skins/default/xui/fr/floater_chat_history.xml linden/indra/newview/skins/default/xui/fr/floater_clothing.xml linden/indra/newview/skins/default/xui/fr/floater_customize.xml linden/indra/newview/skins/default/xui/fr/floater_directory.xml linden/indra/newview/skins/default/xui/fr/floater_god_tools.xml linden/indra/newview/skins/default/xui/fr/floater_group_info.xml linden/indra/newview/skins/default/xui/fr/floater_html.xml linden/indra/newview/skins/default/xui/fr/floater_im.xml linden/indra/newview/skins/default/xui/fr/floater_instant_message.xml linden/indra/newview/skins/default/xui/fr/floater_instant_message_group.xml linden/indra/newview/skins/default/xui/fr/floater_inventory.xml linden/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml linden/indra/newview/skins/default/xui/fr/floater_joystick.xml linden/indra/newview/skins/default/xui/fr/floater_land_holdings.xml linden/indra/newview/skins/default/xui/fr/floater_live_lsleditor.xml linden/indra/newview/skins/default/xui/fr/floater_media_browser.xml linden/indra/newview/skins/default/xui/fr/floater_mem_leaking.xml linden/indra/newview/skins/default/xui/fr/floater_name_description.xml linden/indra/newview/skins/default/xui/fr/floater_preview_gesture.xml linden/indra/newview/skins/default/xui/fr/floater_profile.xml linden/indra/newview/skins/default/xui/fr/floater_report_abuse.xml linden/indra/newview/skins/default/xui/fr/floater_script_search.xml linden/indra/newview/skins/default/xui/fr/floater_sell_land.xml linden/indra/newview/skins/default/xui/fr/floater_snapshot.xml linden/indra/newview/skins/default/xui/fr/floater_sound_preview.xml linden/indra/newview/skins/default/xui/fr/floater_tools.xml linden/indra/newview/skins/default/xui/fr/floater_top_objects.xml linden/indra/newview/skins/default/xui/fr/floater_world_map.xml linden/indra/newview/skins/default/xui/fr/menu_inventory.xml linden/indra/newview/skins/default/xui/fr/menu_login.xml linden/indra/newview/skins/default/xui/fr/menu_pie_attachment.xml linden/indra/newview/skins/default/xui/fr/menu_pie_avatar.xml linden/indra/newview/skins/default/xui/fr/menu_pie_object.xml linden/indra/newview/skins/default/xui/fr/menu_viewer.xml linden/indra/newview/skins/default/xui/fr/notify.xml linden/indra/newview/skins/default/xui/fr/panel_audio.xml linden/indra/newview/skins/default/xui/fr/panel_avatar.xml linden/indra/newview/skins/default/xui/fr/panel_avatar_classified.xml linden/indra/newview/skins/default/xui/fr/panel_classified.xml linden/indra/newview/skins/default/xui/fr/panel_event.xml linden/indra/newview/skins/default/xui/fr/panel_friends.xml linden/indra/newview/skins/default/xui/fr/panel_group_general.xml linden/indra/newview/skins/default/xui/fr/panel_group_invite.xml linden/indra/newview/skins/default/xui/fr/panel_group_land_money.xml linden/indra/newview/skins/default/xui/fr/panel_group_roles.xml linden/indra/newview/skins/default/xui/fr/panel_login.xml linden/indra/newview/skins/default/xui/fr/panel_media_controls.xml linden/indra/newview/skins/default/xui/fr/panel_media_remote_expanded.xml linden/indra/newview/skins/default/xui/fr/panel_overlaybar.xml linden/indra/newview/skins/default/xui/fr/panel_place.xml linden/indra/newview/skins/default/xui/fr/panel_place_small.xml linden/indra/newview/skins/default/xui/fr/panel_preferences_audio.xml linden/indra/newview/skins/default/xui/fr/panel_preferences_general.xml linden/indra/newview/skins/default/xui/fr/panel_preferences_im.xml linden/indra/newview/skins/default/xui/fr/panel_preferences_input.xml linden/indra/newview/skins/default/xui/fr/panel_preferences_network.xml linden/indra/newview/skins/default/xui/fr/panel_preferences_voice.xml linden/indra/newview/skins/default/xui/fr/panel_region_covenant.xml linden/indra/newview/skins/default/xui/fr/panel_region_debug.xml linden/indra/newview/skins/default/xui/fr/panel_region_general.xml linden/indra/newview/skins/default/xui/fr/panel_voice_controls.xml linden/indra/newview/skins/default/xui/fr/role_actions.xml linden/indra/newview/skins/default/xui/fr/strings.xml linden/indra/newview/skins/default/xui/fr/teleport_strings.xml linden/indra/newview/skins/default/xui/ja/floater_active_speakers.xml linden/indra/newview/skins/default/xui/ja/floater_html.xml linden/indra/newview/skins/default/xui/ja/floater_instant_message_ad_hoc.xml linden/indra/newview/skins/default/xui/ja/floater_instant_message_group.xml linden/indra/newview/skins/default/xui/ja/floater_joystick.xml linden/indra/newview/skins/default/xui/ja/floater_media_browser.xml linden/indra/newview/skins/default/xui/ja/floater_windlight_options.xml linden/indra/newview/skins/default/xui/ja/menu_login.xml linden/indra/newview/skins/default/xui/ja/panel_friends.xml linden/indra/newview/skins/default/xui/ja/panel_media_controls.xml linden/indra/newview/skins/default/xui/ja/panel_media_remote_expanded.xml linden/indra/newview/skins/default/xui/ja/panel_preferences_voice.xml linden/indra/newview/skins/default/xui/ja/panel_speaker_controls.xml linden/indra/newview/skins/default/xui/ja/strings.xml linden/indra/newview/skins/default/xui/ja/teleport_strings.xml linden/indra/newview/skins/default/xui/ko/panel_media_controls.xml linden/indra/newview/skins/default/xui/pt/alerts.xml linden/indra/newview/skins/default/xui/pt/floater_about.xml linden/indra/newview/skins/default/xui/pt/floater_about_land.xml linden/indra/newview/skins/default/xui/pt/floater_active_speakers.xml linden/indra/newview/skins/default/xui/pt/floater_animation_preview.xml linden/indra/newview/skins/default/xui/pt/floater_auction.xml linden/indra/newview/skins/default/xui/pt/floater_avatar_picker.xml linden/indra/newview/skins/default/xui/pt/floater_avatar_textures.xml linden/indra/newview/skins/default/xui/pt/floater_beacons.xml linden/indra/newview/skins/default/xui/pt/floater_build_options.xml linden/indra/newview/skins/default/xui/pt/floater_bumps.xml linden/indra/newview/skins/default/xui/pt/floater_buy_contents.xml linden/indra/newview/skins/default/xui/pt/floater_buy_currency.xml linden/indra/newview/skins/default/xui/pt/floater_buy_land.xml linden/indra/newview/skins/default/xui/pt/floater_buy_object.xml linden/indra/newview/skins/default/xui/pt/floater_chat_history.xml linden/indra/newview/skins/default/xui/pt/floater_clothing.xml linden/indra/newview/skins/default/xui/pt/floater_color_picker.xml linden/indra/newview/skins/default/xui/pt/floater_critical.xml linden/indra/newview/skins/default/xui/pt/floater_customize.xml linden/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml linden/indra/newview/skins/default/xui/pt/floater_directory.xml linden/indra/newview/skins/default/xui/pt/floater_env_settings.xml linden/indra/newview/skins/default/xui/pt/floater_gesture.xml linden/indra/newview/skins/default/xui/pt/floater_god_tools.xml linden/indra/newview/skins/default/xui/pt/floater_group_info.xml linden/indra/newview/skins/default/xui/pt/floater_im.xml linden/indra/newview/skins/default/xui/pt/floater_image_preview.xml linden/indra/newview/skins/default/xui/pt/floater_inspect.xml linden/indra/newview/skins/default/xui/pt/floater_instant_message.xml linden/indra/newview/skins/default/xui/pt/floater_instant_message_ad_hoc.xml linden/indra/newview/skins/default/xui/pt/floater_instant_message_group.xml linden/indra/newview/skins/default/xui/pt/floater_inventory.xml linden/indra/newview/skins/default/xui/pt/floater_inventory_item_properties.xml linden/indra/newview/skins/default/xui/pt/floater_inventory_view_finder.xml linden/indra/newview/skins/default/xui/pt/floater_joystick.xml linden/indra/newview/skins/default/xui/pt/floater_lagmeter.xml linden/indra/newview/skins/default/xui/pt/floater_land_holdings.xml linden/indra/newview/skins/default/xui/pt/floater_landmark_ctrl.xml linden/indra/newview/skins/default/xui/pt/floater_live_lsleditor.xml linden/indra/newview/skins/default/xui/pt/floater_lsl_guide.xml linden/indra/newview/skins/default/xui/pt/floater_media_browser.xml linden/indra/newview/skins/default/xui/pt/floater_moveview.xml linden/indra/newview/skins/default/xui/pt/floater_mute.xml linden/indra/newview/skins/default/xui/pt/floater_mute_object.xml linden/indra/newview/skins/default/xui/pt/floater_name_description.xml linden/indra/newview/skins/default/xui/pt/floater_new_outfit_dialog.xml linden/indra/newview/skins/default/xui/pt/floater_openobject.xml linden/indra/newview/skins/default/xui/pt/floater_pay.xml linden/indra/newview/skins/default/xui/pt/floater_postcard.xml linden/indra/newview/skins/default/xui/pt/floater_preferences.xml linden/indra/newview/skins/default/xui/pt/floater_preview_animation.xml linden/indra/newview/skins/default/xui/pt/floater_preview_classified.xml linden/indra/newview/skins/default/xui/pt/floater_preview_event.xml linden/indra/newview/skins/default/xui/pt/floater_preview_gesture.xml linden/indra/newview/skins/default/xui/pt/floater_preview_notecard_keep_discard.xml linden/indra/newview/skins/default/xui/pt/floater_preview_sound.xml linden/indra/newview/skins/default/xui/pt/floater_preview_url.xml linden/indra/newview/skins/default/xui/pt/floater_price_for_listing.xml linden/indra/newview/skins/default/xui/pt/floater_profile.xml linden/indra/newview/skins/default/xui/pt/floater_report_abuse.xml linden/indra/newview/skins/default/xui/pt/floater_script_debug.xml linden/indra/newview/skins/default/xui/pt/floater_script_queue.xml linden/indra/newview/skins/default/xui/pt/floater_script_search.xml linden/indra/newview/skins/default/xui/pt/floater_sell_land.xml linden/indra/newview/skins/default/xui/pt/floater_settings_debug.xml linden/indra/newview/skins/default/xui/pt/floater_sim_release_message.xml linden/indra/newview/skins/default/xui/pt/floater_snapshot.xml linden/indra/newview/skins/default/xui/pt/floater_sound_preview.xml linden/indra/newview/skins/default/xui/pt/floater_telehub.xml linden/indra/newview/skins/default/xui/pt/floater_texture_ctrl.xml linden/indra/newview/skins/default/xui/pt/floater_tools.xml linden/indra/newview/skins/default/xui/pt/floater_top_objects.xml linden/indra/newview/skins/default/xui/pt/floater_tos.xml linden/indra/newview/skins/default/xui/pt/floater_url_entry.xml linden/indra/newview/skins/default/xui/pt/floater_water.xml linden/indra/newview/skins/default/xui/pt/floater_wearable_save_as.xml linden/indra/newview/skins/default/xui/pt/floater_windlight_options.xml linden/indra/newview/skins/default/xui/pt/floater_world_map.xml linden/indra/newview/skins/default/xui/pt/menu_inventory.xml linden/indra/newview/skins/default/xui/pt/menu_pie_attachment.xml linden/indra/newview/skins/default/xui/pt/menu_pie_avatar.xml linden/indra/newview/skins/default/xui/pt/menu_pie_land.xml linden/indra/newview/skins/default/xui/pt/menu_pie_object.xml linden/indra/newview/skins/default/xui/pt/menu_viewer.xml linden/indra/newview/skins/default/xui/pt/notify.xml linden/indra/newview/skins/default/xui/pt/panel_account_details.xml linden/indra/newview/skins/default/xui/pt/panel_account_planning.xml linden/indra/newview/skins/default/xui/pt/panel_account_transactions.xml linden/indra/newview/skins/default/xui/pt/panel_audio_device.xml linden/indra/newview/skins/default/xui/pt/panel_avatar.xml linden/indra/newview/skins/default/xui/pt/panel_avatar_classified.xml linden/indra/newview/skins/default/xui/pt/panel_avatar_pick.xml linden/indra/newview/skins/default/xui/pt/panel_chat_bar.xml linden/indra/newview/skins/default/xui/pt/panel_classified.xml linden/indra/newview/skins/default/xui/pt/panel_event.xml linden/indra/newview/skins/default/xui/pt/panel_friends.xml linden/indra/newview/skins/default/xui/pt/panel_group.xml linden/indra/newview/skins/default/xui/pt/panel_group_finder.xml linden/indra/newview/skins/default/xui/pt/panel_group_general.xml linden/indra/newview/skins/default/xui/pt/panel_group_invite.xml linden/indra/newview/skins/default/xui/pt/panel_group_land_money.xml linden/indra/newview/skins/default/xui/pt/panel_group_notices.xml linden/indra/newview/skins/default/xui/pt/panel_group_roles.xml linden/indra/newview/skins/default/xui/pt/panel_group_voting.xml linden/indra/newview/skins/default/xui/pt/panel_land_covenant.xml linden/indra/newview/skins/default/xui/pt/panel_login.xml linden/indra/newview/skins/default/xui/pt/panel_overlaybar.xml linden/indra/newview/skins/default/xui/pt/panel_place.xml linden/indra/newview/skins/default/xui/pt/panel_place_small.xml linden/indra/newview/skins/default/xui/pt/panel_preferences_audio.xml linden/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml linden/indra/newview/skins/default/xui/pt/panel_preferences_general.xml linden/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml linden/indra/newview/skins/default/xui/pt/panel_preferences_im.xml linden/indra/newview/skins/default/xui/pt/panel_preferences_input.xml linden/indra/newview/skins/default/xui/pt/panel_preferences_network.xml linden/indra/newview/skins/default/xui/pt/panel_preferences_popups.xml linden/indra/newview/skins/default/xui/pt/panel_preferences_voice.xml linden/indra/newview/skins/default/xui/pt/panel_preferences_web.xml linden/indra/newview/skins/default/xui/pt/panel_region_covenant.xml linden/indra/newview/skins/default/xui/pt/panel_region_debug.xml linden/indra/newview/skins/default/xui/pt/panel_region_estate.xml linden/indra/newview/skins/default/xui/pt/panel_region_general.xml linden/indra/newview/skins/default/xui/pt/panel_region_terrain.xml linden/indra/newview/skins/default/xui/pt/panel_region_texture.xml linden/indra/newview/skins/default/xui/pt/panel_scrolling_param.xml linden/indra/newview/skins/default/xui/pt/panel_speaker_controls.xml linden/indra/newview/skins/default/xui/pt/panel_status_bar.xml linden/indra/newview/skins/default/xui/pt/panel_toolbar.xml linden/indra/newview/skins/default/xui/pt/panel_top_pick.xml linden/indra/newview/skins/default/xui/pt/panel_voice_controls.xml linden/indra/newview/skins/default/xui/pt/panel_voice_enable.xml linden/indra/newview/skins/default/xui/pt/panel_voice_options.xml linden/indra/newview/skins/default/xui/pt/strings.xml linden/indra/newview/skins/default/xui/pt/teleport_strings.xml linden/indra/newview/skins/default/xui/zh/floater_env_settings.xml linden/indra/newview/skins/default/xui/zh/floater_instant_message_ad_hoc.xml linden/indra/newview/skins/default/xui/zh/floater_lagmeter.xml linden/indra/newview/skins/default/xui/zh/floater_landmark_ctrl.xml linden/indra/newview/skins/default/xui/zh/floater_post_process.xml linden/indra/newview/skins/default/xui/zh/floater_settings_debug.xml linden/indra/newview/skins/default/xui/zh/floater_windlight_options.xml linden/indra/newview/skins/default/xui/zh/menu_pie_attachment.xml linden/indra/newview/skins/default/xui/zh/menu_pie_avatar.xml linden/indra/newview/skins/default/xui/zh/menu_pie_land.xml linden/indra/newview/skins/default/xui/zh/menu_pie_object.xml linden/indra/newview/skins/default/xui/zh/menu_viewer.xml linden/indra/newview/skins/default/xui/zh/panel_avatar.xml linden/indra/newview/skins/default/xui/zh/panel_friends.xml linden/indra/newview/skins/default/xui/zh/panel_group_general.xml linden/indra/newview/skins/default/xui/zh/panel_group_invite.xml linden/indra/newview/skins/default/xui/zh/panel_group_land_money.xml linden/indra/newview/skins/default/xui/zh/panel_group_notices.xml linden/indra/newview/skins/default/xui/zh/panel_group_roles.xml linden/indra/newview/skins/default/xui/zh/panel_preferences_audio.xml linden/indra/newview/skins/default/xui/zh/panel_preferences_im.xml linden/indra/newview/skins/default/xui/zh/panel_region_covenant.xml linden/indra/newview/skins/default/xui/zh/panel_speaker_controls.xml linden/indra/newview/skins/default/xui/zh/panel_voice_options.xml linden/indra/newview/skins/default/xui/zh/strings.xml linden/indra/newview/skins/silver/colors_base.xml linden/indra/newview/skins/silver/xui/en-us/floater_about_land.xml linden/indra/newview/skins/silver/xui/en-us/floater_directory.xml linden/indra/newview/skins/silver/xui/en-us/floater_tools.xml linden/indra/newview/skins/silver/xui/en-us/panel_media_controls.xml linden/indra/newview/viewer_manifest.py linden/install.xml
Diffstat (limited to 'linden/indra/newview/llviewerwindow.cpp')
-rw-r--r--linden/indra/newview/llviewerwindow.cpp303
1 files changed, 159 insertions, 144 deletions
diff --git a/linden/indra/newview/llviewerwindow.cpp b/linden/indra/newview/llviewerwindow.cpp
index 7e6c24f..c0e4fed 100644
--- a/linden/indra/newview/llviewerwindow.cpp
+++ b/linden/indra/newview/llviewerwindow.cpp
@@ -17,7 +17,8 @@
17 * There are special exceptions to the terms and conditions of the GPL as 17 * There are special exceptions to the terms and conditions of the GPL as
18 * it is applied to this Source Code. View the full text of the exception 18 * it is applied to this Source Code. View the full text of the exception
19 * in the file doc/FLOSS-exception.txt in this software distribution, or 19 * in the file doc/FLOSS-exception.txt in this software distribution, or
20 * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception 20 * online at
21 * http://secondlifegrid.net/programs/open_source/licensing/flossexception
21 * 22 *
22 * By copying, modifying or distributing this software, you acknowledge 23 * By copying, modifying or distributing this software, you acknowledge
23 * that you have read and understood your obligations described above, 24 * that you have read and understood your obligations described above,
@@ -182,6 +183,9 @@
182#include "llviewernetwork.h" 183#include "llviewernetwork.h"
183#include "llpostprocess.h" 184#include "llpostprocess.h"
184 185
186#include "llfloatertest.h" // HACK!
187#include "llfloaternotificationsconsole.h"
188
185#if LL_WINDOWS 189#if LL_WINDOWS
186#include <tchar.h> // For Unicode conversion methods 190#include <tchar.h> // For Unicode conversion methods
187#endif 191#endif
@@ -189,7 +193,7 @@
189// 193//
190// Globals 194// Globals
191// 195//
192void render_ui(); 196void render_ui(F32 zoom_factor = 1.f, int subfield = 0);
193LLBottomPanel* gBottomPanel = NULL; 197LLBottomPanel* gBottomPanel = NULL;
194 198
195extern BOOL gDebugClicks; 199extern BOOL gDebugClicks;
@@ -246,6 +250,7 @@ std::string LLViewerWindow::sMovieBaseName;
246extern void toggle_debug_menus(void*); 250extern void toggle_debug_menus(void*);
247 251
248 252
253
249//////////////////////////////////////////////////////////////////////////// 254////////////////////////////////////////////////////////////////////////////
250// 255//
251// LLDebugText 256// LLDebugText
@@ -441,7 +446,7 @@ public:
441 if (gPipeline.mBatchCount > 0) 446 if (gPipeline.mBatchCount > 0)
442 { 447 {
443 addText(xpos, ypos, llformat("Batch min/max/mean: %d/%d/%d", gPipeline.mMinBatchSize, gPipeline.mMaxBatchSize, 448 addText(xpos, ypos, llformat("Batch min/max/mean: %d/%d/%d", gPipeline.mMinBatchSize, gPipeline.mMaxBatchSize,
444 gPipeline.mMeanBatchSize)); 449 gPipeline.mTrianglesDrawn/gPipeline.mBatchCount));
445 450
446 gPipeline.mMinBatchSize = gPipeline.mMaxBatchSize; 451 gPipeline.mMinBatchSize = gPipeline.mMaxBatchSize;
447 gPipeline.mMaxBatchSize = 0; 452 gPipeline.mMaxBatchSize = 0;
@@ -458,9 +463,46 @@ public:
458 463
459 ypos += y_inc; 464 ypos += y_inc;
460 465
466 addText(xpos,ypos, llformat("%d Lights visible", LLPipeline::sVisibleLightCount));
467
468 ypos += y_inc;
469
461 LLVertexBuffer::sBindCount = LLImageGL::sBindCount = 470 LLVertexBuffer::sBindCount = LLImageGL::sBindCount =
462 LLVertexBuffer::sSetCount = LLImageGL::sUniqueCount = 471 LLVertexBuffer::sSetCount = LLImageGL::sUniqueCount =
463 gPipeline.mNumVisibleNodes = 0; 472 gPipeline.mNumVisibleNodes = LLPipeline::sVisibleLightCount = 0;
473 }
474 if (gSavedSettings.getBOOL("DebugShowRenderMatrices"))
475 {
476 addText(xpos, ypos, llformat("%.4f .%4f %.4f %.4f", gGLProjection[12], gGLProjection[13], gGLProjection[14], gGLProjection[15]));
477 ypos += y_inc;
478
479 addText(xpos, ypos, llformat("%.4f .%4f %.4f %.4f", gGLProjection[8], gGLProjection[9], gGLProjection[10], gGLProjection[11]));
480 ypos += y_inc;
481
482 addText(xpos, ypos, llformat("%.4f .%4f %.4f %.4f", gGLProjection[4], gGLProjection[5], gGLProjection[6], gGLProjection[7]));
483 ypos += y_inc;
484
485 addText(xpos, ypos, llformat("%.4f .%4f %.4f %.4f", gGLProjection[0], gGLProjection[1], gGLProjection[2], gGLProjection[3]));
486 ypos += y_inc;
487
488 addText(xpos, ypos, "Projection Matrix");
489 ypos += y_inc;
490
491
492 addText(xpos, ypos, llformat("%.4f .%4f %.4f %.4f", gGLModelView[12], gGLModelView[13], gGLModelView[14], gGLModelView[15]));
493 ypos += y_inc;
494
495 addText(xpos, ypos, llformat("%.4f .%4f %.4f %.4f", gGLModelView[8], gGLModelView[9], gGLModelView[10], gGLModelView[11]));
496 ypos += y_inc;
497
498 addText(xpos, ypos, llformat("%.4f .%4f %.4f %.4f", gGLModelView[4], gGLModelView[5], gGLModelView[6], gGLModelView[7]));
499 ypos += y_inc;
500
501 addText(xpos, ypos, llformat("%.4f .%4f %.4f %.4f", gGLModelView[0], gGLModelView[1], gGLModelView[2], gGLModelView[3]));
502 ypos += y_inc;
503
504 addText(xpos, ypos, "View Matrix");
505 ypos += y_inc;
464 } 506 }
465 if (gSavedSettings.getBOOL("DebugShowColor")) 507 if (gSavedSettings.getBOOL("DebugShowColor"))
466 { 508 {
@@ -513,7 +555,7 @@ public:
513 iter != mLineList.end(); ++iter) 555 iter != mLineList.end(); ++iter)
514 { 556 {
515 const Line& line = *iter; 557 const Line& line = *iter;
516 LLFontGL::sMonospace->renderUTF8(line.text, 0, (F32)line.x, (F32)line.y, mTextColor, 558 LLFontGL::getFontMonospace()->renderUTF8(line.text, 0, (F32)line.x, (F32)line.y, mTextColor,
517 LLFontGL::LEFT, LLFontGL::TOP, 559 LLFontGL::LEFT, LLFontGL::TOP,
518 LLFontGL::NORMAL, S32_MAX, S32_MAX, NULL, FALSE); 560 LLFontGL::NORMAL, S32_MAX, S32_MAX, NULL, FALSE);
519 } 561 }
@@ -1341,8 +1383,9 @@ void LLViewerWindow::handleDataCopy(LLWindow *window, S32 data_type, void *data)
1341 case SLURL_MESSAGE_TYPE: 1383 case SLURL_MESSAGE_TYPE:
1342 // received URL 1384 // received URL
1343 std::string url = (const char*)data; 1385 std::string url = (const char*)data;
1344 const bool from_external_browser = true; 1386 LLWebBrowserCtrl* web = NULL;
1345 if (LLURLDispatcher::dispatch(url, from_external_browser)) 1387 const bool trusted_browser = false;
1388 if (LLURLDispatcher::dispatch(url, web, trusted_browser))
1346 { 1389 {
1347 // bring window to foreground, as it has just been "launched" from a URL 1390 // bring window to foreground, as it has just been "launched" from a URL
1348 mWindow->bringToFront(); 1391 mWindow->bringToFront();
@@ -1420,6 +1463,12 @@ LLViewerWindow::LLViewerWindow(
1420 mIsFullscreenChecked(false), 1463 mIsFullscreenChecked(false),
1421 mCurrResolutionIndex(0) 1464 mCurrResolutionIndex(0)
1422{ 1465{
1466 LLNotificationChannel::buildChannel("VW_alerts", "Visible", LLNotificationFilters::filterBy<std::string>(&LLNotification::getType, "alert"));
1467 LLNotificationChannel::buildChannel("VW_alertmodal", "Visible", LLNotificationFilters::filterBy<std::string>(&LLNotification::getType, "alertmodal"));
1468
1469 LLNotifications::instance().getChannel("VW_alerts")->connectChanged(&LLViewerWindow::onAlert);
1470 LLNotifications::instance().getChannel("VW_alertmodal")->connectChanged(&LLViewerWindow::onAlert);
1471
1423 // Default to application directory. 1472 // Default to application directory.
1424 LLViewerWindow::sSnapshotBaseName = "Snapshot"; 1473 LLViewerWindow::sSnapshotBaseName = "Snapshot";
1425 LLViewerWindow::sMovieBaseName = "SLmovie"; 1474 LLViewerWindow::sMovieBaseName = "SLmovie";
@@ -1531,8 +1580,6 @@ LLViewerWindow::LLViewerWindow(
1531 // Can't have spaces in settings.ini strings, so use underscores instead and convert them. 1580 // Can't have spaces in settings.ini strings, so use underscores instead and convert them.
1532 LLStringUtil::replaceChar(mOverlayTitle, '_', ' '); 1581 LLStringUtil::replaceChar(mOverlayTitle, '_', ' ');
1533 1582
1534 LLAlertDialog::setDisplayCallback(alertCallback); // call this before calling any modal dialogs
1535
1536 // sync the keyboard's setting with the saved setting 1583 // sync the keyboard's setting with the saved setting
1537 gSavedSettings.getControl("NumpadControl")->firePropertyChanged(); 1584 gSavedSettings.getControl("NumpadControl")->firePropertyChanged();
1538 1585
@@ -1615,33 +1662,16 @@ void LLViewerWindow::initBase()
1615 gFloaterView->setVisible(TRUE); 1662 gFloaterView->setVisible(TRUE);
1616 1663
1617 gSnapshotFloaterView = new LLSnapshotFloaterView("Snapshot Floater View", full_window); 1664 gSnapshotFloaterView = new LLSnapshotFloaterView("Snapshot Floater View", full_window);
1618 gSnapshotFloaterView->setVisible(TRUE); 1665 // Snapshot floater must start invisible otherwise it eats all
1666 // the tooltips. JC
1667 gSnapshotFloaterView->setVisible(FALSE);
1619 1668
1620 // Console 1669 // Console
1621 llassert( !gConsole ); 1670 llassert( !gConsole );
1622 LLRect console_rect = full_window;
1623 console_rect.mTop -= 24;
1624
1625 console_rect.mBottom += getChatConsoleBottomPad();
1626
1627 // TODO: Eliminate magic constants - please used named constants if changing this - don't be a programmer hater
1628 console_rect.mLeft += 24; //gSavedSettings.getS32("StatusBarButtonWidth") + gSavedSettings.getS32("StatusBarPad");
1629
1630 if (gSavedSettings.getBOOL("ChatFullWidth"))
1631 {
1632 console_rect.mRight -= 10;
1633 }
1634 else
1635 {
1636 // Make console rect somewhat narrow so having inventory open is
1637 // less of a problem.
1638 console_rect.mRight = console_rect.mLeft + 2 * width / 3;
1639 }
1640
1641 gConsole = new LLConsole( 1671 gConsole = new LLConsole(
1642 "console", 1672 "console",
1643 gSavedSettings.getS32("ConsoleBufferSize"), 1673 gSavedSettings.getS32("ConsoleBufferSize"),
1644 console_rect, 1674 getChatConsoleRect(),
1645 gSavedSettings.getS32("ChatFontSize"), 1675 gSavedSettings.getS32("ChatFontSize"),
1646 gSavedSettings.getF32("ChatPersistTime") ); 1676 gSavedSettings.getF32("ChatPersistTime") );
1647 gConsole->setFollows(FOLLOWS_LEFT | FOLLOWS_RIGHT | FOLLOWS_BOTTOM); 1677 gConsole->setFollows(FOLLOWS_LEFT | FOLLOWS_RIGHT | FOLLOWS_BOTTOM);
@@ -1721,13 +1751,24 @@ void adjust_rect_top_right(const std::string& control, const LLRect& window)
1721 } 1751 }
1722} 1752}
1723 1753
1754// *TODO: Adjust based on XUI XML
1755const S32 TOOLBAR_HEIGHT = 64;
1756
1757void adjust_rect_bottom_left(const std::string& control, const LLRect& window)
1758{
1759 LLRect r = gSavedSettings.getRect(control);
1760 if (r.mLeft == 0 && r.mBottom == 0)
1761 {
1762 r.setOriginAndSize(0, TOOLBAR_HEIGHT, r.getWidth(), r.getHeight());
1763 gSavedSettings.setRect(control, r);
1764 }
1765}
1766
1724void adjust_rect_bottom_center(const std::string& control, const LLRect& window) 1767void adjust_rect_bottom_center(const std::string& control, const LLRect& window)
1725{ 1768{
1726 LLRect r = gSavedSettings.getRect(control); 1769 LLRect r = gSavedSettings.getRect(control);
1727 if (r.mLeft == 0 && r.mBottom == 0) 1770 if (r.mLeft == 0 && r.mBottom == 0)
1728 { 1771 {
1729 // *TODO: Adjust based on XUI XML
1730 const S32 TOOLBAR_HEIGHT = 64;
1731 r.setOriginAndSize( 1772 r.setOriginAndSize(
1732 window.getWidth()/2 - r.getWidth()/2, 1773 window.getWidth()/2 - r.getWidth()/2,
1733 TOOLBAR_HEIGHT, 1774 TOOLBAR_HEIGHT,
@@ -1786,6 +1827,23 @@ void LLViewerWindow::adjustRectanglesForFirstUse(const LLRect& window)
1786 1827
1787 adjust_rect_top_left("FloaterBuildOptionsRect", window); 1828 adjust_rect_top_left("FloaterBuildOptionsRect", window);
1788 1829
1830 adjust_rect_bottom_left("FloaterActiveSpeakersRect", window);
1831
1832 adjust_rect_bottom_left("FloaterBumpRect", window);
1833
1834 adjust_rect_bottom_left("FloaterRegionInfo", window);
1835
1836 adjust_rect_bottom_left("FloaterEnvRect", window);
1837
1838 adjust_rect_bottom_left("FloaterAdvancedSkyRect", window);
1839
1840 adjust_rect_bottom_left("FloaterAdvancedWaterRect", window);
1841
1842 adjust_rect_bottom_left("FloaterDayCycleRect", window);
1843
1844 adjust_rect_top_right("FloaterStatisticsRect", window);
1845
1846
1789 // bottom-right 1847 // bottom-right
1790 r = gSavedSettings.getRect("FloaterInventoryRect"); 1848 r = gSavedSettings.getRect("FloaterInventoryRect");
1791 if (r.mLeft == 0 && r.mBottom == 0) 1849 if (r.mLeft == 0 && r.mBottom == 0)
@@ -2136,7 +2194,7 @@ void LLViewerWindow::setNormalControlsVisible( BOOL visible )
2136 2194
2137void LLViewerWindow::setMenuBackgroundColor(bool god_mode, bool dev_grid) 2195void LLViewerWindow::setMenuBackgroundColor(bool god_mode, bool dev_grid)
2138{ 2196{
2139 LLStringUtil::format_map_t args; 2197 LLSD args;
2140 LLColor4 new_bg_color; 2198 LLColor4 new_bg_color;
2141 2199
2142 if(god_mode && LLViewerLogin::getInstance()->isInProductionGrid()) 2200 if(god_mode && LLViewerLogin::getInstance()->isInProductionGrid())
@@ -2189,12 +2247,6 @@ void LLViewerWindow::draw()
2189 stop_glerror(); 2247 stop_glerror();
2190 2248
2191 LLUI::setLineWidth(1.f); 2249 LLUI::setLineWidth(1.f);
2192 //popup alerts from the UI
2193 LLAlertInfo alert;
2194 while (LLPanel::nextAlert(alert))
2195 {
2196 alertXml(alert.mLabel, alert.mArgs);
2197 }
2198 2250
2199 LLUI::setLineWidth(1.f); 2251 LLUI::setLineWidth(1.f);
2200 // Reset any left-over transforms 2252 // Reset any left-over transforms
@@ -2303,7 +2355,7 @@ void LLViewerWindow::draw()
2303 { 2355 {
2304 // Used for special titles such as "Second Life - Special E3 2003 Beta" 2356 // Used for special titles such as "Second Life - Special E3 2003 Beta"
2305 const S32 DIST_FROM_TOP = 20; 2357 const S32 DIST_FROM_TOP = 20;
2306 LLFontGL::sSansSerifBig->renderUTF8( 2358 LLFontGL::getFontSansSerifBig()->renderUTF8(
2307 mOverlayTitle, 0, 2359 mOverlayTitle, 0,
2308 llround( getWindowWidth() * 0.5f), 2360 llround( getWindowWidth() * 0.5f),
2309 getWindowHeight() - DIST_FROM_TOP, 2361 getWindowHeight() - DIST_FROM_TOP,
@@ -2370,6 +2422,17 @@ BOOL LLViewerWindow::handleKey(KEY key, MASK mask)
2370 } 2422 }
2371 } 2423 }
2372 2424
2425 // Debugging view for unified notifications: CTRL-SHIFT-5
2426 // *FIXME: Having this special-cased right here (just so this can be invoked from the login screen) sucks.
2427 if ((MASK_SHIFT & mask)
2428 && (!(MASK_ALT & mask))
2429 && (MASK_CONTROL & mask)
2430 && ('5' == key))
2431 {
2432 LLFloaterNotificationConsole::showInstance();
2433 return TRUE;
2434 }
2435
2373 // handle escape key 2436 // handle escape key
2374 //if (key == KEY_ESCAPE && mask == MASK_NONE) 2437 //if (key == KEY_ESCAPE && mask == MASK_NONE)
2375 //{ 2438 //{
@@ -2965,7 +3028,7 @@ BOOL LLViewerWindow::handlePerFrameHover()
2965 } 3028 }
2966 3029
2967 // Always update console 3030 // Always update console
2968 LLRect console_rect = gConsole->getRect(); 3031 LLRect console_rect = getChatConsoleRect();
2969 console_rect.mBottom = gHUDView->getRect().mBottom + getChatConsoleBottomPad(); 3032 console_rect.mBottom = gHUDView->getRect().mBottom + getChatConsoleBottomPad();
2970 gConsole->reshape(console_rect.getWidth(), console_rect.getHeight()); 3033 gConsole->reshape(console_rect.getWidth(), console_rect.getHeight());
2971 gConsole->setRect(console_rect); 3034 gConsole->setRect(console_rect);
@@ -3413,9 +3476,9 @@ void LLViewerWindow::schedulePick(LLPickInfo& pick_info)
3413 LLGLState scissor_state(GL_SCISSOR_TEST); 3476 LLGLState scissor_state(GL_SCISSOR_TEST);
3414 scissor_state.enable(); 3477 scissor_state.enable();
3415 glScissor(pick_info.mScreenRegion.mLeft, pick_info.mScreenRegion.mBottom, pick_info.mScreenRegion.getWidth(), pick_info.mScreenRegion.getHeight()); 3478 glScissor(pick_info.mScreenRegion.mLeft, pick_info.mScreenRegion.mBottom, pick_info.mScreenRegion.getWidth(), pick_info.mScreenRegion.getHeight());
3416 glClearColor(0.f, 0.f, 0.f, 0.f); 3479 glClearColor(0.f, 0.f, 0.f, 0.f);
3417 glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); 3480 glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
3418 //glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); 3481 //glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
3419 } 3482 }
3420 3483
3421 // build perspective transform and picking viewport 3484 // build perspective transform and picking viewport
@@ -3968,6 +4031,10 @@ void LLViewerWindow::playSnapshotAnimAndSound()
3968 4031
3969BOOL LLViewerWindow::thumbnailSnapshot(LLImageRaw *raw, S32 preview_width, S32 preview_height, BOOL show_ui, BOOL do_rebuild, ESnapshotType type) 4032BOOL LLViewerWindow::thumbnailSnapshot(LLImageRaw *raw, S32 preview_width, S32 preview_height, BOOL show_ui, BOOL do_rebuild, ESnapshotType type)
3970{ 4033{
4034 return rawSnapshot(raw, preview_width, preview_height, FALSE, FALSE, show_ui, do_rebuild, type);
4035
4036 // *TODO below code was broken in deferred pipeline
4037 /*
3971 if ((!raw) || preview_width < 10 || preview_height < 10) 4038 if ((!raw) || preview_width < 10 || preview_height < 10)
3972 { 4039 {
3973 return FALSE; 4040 return FALSE;
@@ -3999,7 +4066,7 @@ BOOL LLViewerWindow::thumbnailSnapshot(LLImageRaw *raw, S32 preview_width, S32 p
3999 LLVOAvatar::updateFreezeCounter(1) ; //pause avatar updating for one frame 4066 LLVOAvatar::updateFreezeCounter(1) ; //pause avatar updating for one frame
4000 4067
4001 S32 w = preview_width ; 4068 S32 w = preview_width ;
4002 S32 h = preview_height ; 4069 S32 h = preview_height ;
4003 LLVector2 display_scale = mDisplayScale ; 4070 LLVector2 display_scale = mDisplayScale ;
4004 mDisplayScale.setVec((F32)w / mWindowRect.getWidth(), (F32)h / mWindowRect.getHeight()) ; 4071 mDisplayScale.setVec((F32)w / mWindowRect.getWidth(), (F32)h / mWindowRect.getHeight()) ;
4005 LLRect window_rect = mWindowRect; 4072 LLRect window_rect = mWindowRect;
@@ -4038,7 +4105,7 @@ BOOL LLViewerWindow::thumbnailSnapshot(LLImageRaw *raw, S32 preview_width, S32 p
4038 gltype = GL_UNSIGNED_BYTE ; 4105 gltype = GL_UNSIGNED_BYTE ;
4039 } 4106 }
4040 4107
4041 raw->resize(w, h, glpixel_length); 4108 raw->resize(w, h, glpixel_length);
4042 glReadPixels(0, 0, w, h, glformat, gltype, raw->getData()); 4109 glReadPixels(0, 0, w, h, glformat, gltype, raw->getData());
4043 4110
4044 if(SNAPSHOT_TYPE_DEPTH == type) 4111 if(SNAPSHOT_TYPE_DEPTH == type)
@@ -4100,7 +4167,7 @@ BOOL LLViewerWindow::thumbnailSnapshot(LLImageRaw *raw, S32 preview_width, S32 p
4100 4167
4101 gSavedSettings.setS32("RenderName", render_name); 4168 gSavedSettings.setS32("RenderName", render_name);
4102 4169
4103 return TRUE; 4170 return TRUE;*/
4104} 4171}
4105 4172
4106// Saves the image from the screen to the specified filename and path. 4173// Saves the image from the screen to the specified filename and path.
@@ -4150,7 +4217,7 @@ BOOL LLViewerWindow::rawSnapshot(LLImageRaw *raw, S32 image_width, S32 image_hei
4150 F32 ratio = llmin( (F32)window_width / image_width , (F32)window_height / image_height) ; 4217 F32 ratio = llmin( (F32)window_width / image_width , (F32)window_height / image_height) ;
4151 snapshot_width = (S32)(ratio * image_width) ; 4218 snapshot_width = (S32)(ratio * image_width) ;
4152 snapshot_height = (S32)(ratio * image_height) ; 4219 snapshot_height = (S32)(ratio * image_height) ;
4153 scale_factor = llmax(1.0f, 1.0f / ratio) ; 4220 scale_factor = llmax(1.0f, 1.0f / ratio) ;
4154 } 4221 }
4155 else //the scene(window) proportion needs to be maintained. 4222 else //the scene(window) proportion needs to be maintained.
4156 { 4223 {
@@ -4167,7 +4234,7 @@ BOOL LLViewerWindow::rawSnapshot(LLImageRaw *raw, S32 image_width, S32 image_hei
4167 4234
4168 snapshot_width = image_width; 4235 snapshot_width = image_width;
4169 snapshot_height = image_height; 4236 snapshot_height = image_height;
4170 target.allocate(snapshot_width, snapshot_height, GL_RGBA, TRUE, LLTexUnit::TT_RECT_TEXTURE, TRUE); 4237 target.allocate(snapshot_width, snapshot_height, GL_RGBA, TRUE, TRUE, LLTexUnit::TT_RECT_TEXTURE, TRUE);
4171 window_width = snapshot_width; 4238 window_width = snapshot_width;
4172 window_height = snapshot_height; 4239 window_height = snapshot_height;
4173 scale_factor = 1.f; 4240 scale_factor = 1.f;
@@ -4244,9 +4311,10 @@ BOOL LLViewerWindow::rawSnapshot(LLImageRaw *raw, S32 image_width, S32 image_hei
4244 } 4311 }
4245 else 4312 else
4246 { 4313 {
4247 display(do_rebuild, scale_factor, subimage_x+(subimage_y*llceil(scale_factor)), TRUE); 4314 const U32 subfield = subimage_x+(subimage_y*llceil(scale_factor));
4315 display(do_rebuild, scale_factor, subfield, TRUE);
4248 // Required for showing the GUI in snapshots? See DEV-16350 for details. JC 4316 // Required for showing the GUI in snapshots? See DEV-16350 for details. JC
4249 render_ui(); 4317 render_ui(scale_factor, subfield);
4250 } 4318 }
4251 4319
4252 S32 subimage_x_offset = llclamp(buffer_x_offset - (subimage_x * window_width), 0, window_width); 4320 S32 subimage_x_offset = llclamp(buffer_x_offset - (subimage_x * window_width), 0, window_width);
@@ -4543,7 +4611,7 @@ void LLViewerWindow::stopGL(BOOL save_state)
4543 gBumpImageList.destroyGL(); 4611 gBumpImageList.destroyGL();
4544 stop_glerror(); 4612 stop_glerror();
4545 4613
4546 LLFontGL::destroyGL(); 4614 LLFontGL::destroyAllGL();
4547 stop_glerror(); 4615 stop_glerror();
4548 4616
4549 LLVOAvatar::destroyGL(); 4617 LLVOAvatar::destroyGL();
@@ -4573,7 +4641,7 @@ void LLViewerWindow::stopGL(BOOL save_state)
4573 gGLManager.mIsDisabled = TRUE; 4641 gGLManager.mIsDisabled = TRUE;
4574 stop_glerror(); 4642 stop_glerror();
4575 4643
4576 llinfos << "Remaining allocated texture memory: " << LLImageGL::sGlobalTextureMemory << " bytes" << llendl; 4644 llinfos << "Remaining allocated texture memory: " << LLImageGL::sGlobalTextureMemoryInBytes << " bytes" << llendl;
4577 } 4645 }
4578} 4646}
4579 4647
@@ -4630,23 +4698,12 @@ void LLViewerWindow::restoreGL(const std::string& progress_message)
4630 4698
4631void LLViewerWindow::initFonts(F32 zoom_factor) 4699void LLViewerWindow::initFonts(F32 zoom_factor)
4632{ 4700{
4633 LLFontGL::destroyGL(); 4701 LLFontGL::destroyAllGL();
4634 LLFontGL::initDefaultFonts( gSavedSettings.getF32("FontScreenDPI"), 4702 LLFontGL::initDefaultFonts( gSavedSettings.getF32("FontScreenDPI"),
4635 mDisplayScale.mV[VX] * zoom_factor, 4703 mDisplayScale.mV[VX] * zoom_factor,
4636 mDisplayScale.mV[VY] * zoom_factor, 4704 mDisplayScale.mV[VY] * zoom_factor,
4637 gSavedSettings.getString("FontMonospace"), 4705 gDirUtilp->getAppRODataDir(),
4638 gSavedSettings.getF32("FontSizeMonospace"), 4706 LLUICtrlFactory::getXUIPaths());
4639 gSavedSettings.getString("FontSansSerif"),
4640 gSavedSettings.getString("FontSansSerifFallback"),
4641 gSavedSettings.getF32("FontSansSerifFallbackScale"),
4642 gSavedSettings.getF32("FontSizeSmall"),
4643 gSavedSettings.getF32("FontSizeMedium"),
4644 gSavedSettings.getF32("FontSizeLarge"),
4645 gSavedSettings.getF32("FontSizeHuge"),
4646 gSavedSettings.getString("FontSansSerifBold"),
4647 gSavedSettings.getF32("FontSizeMedium"),
4648 gDirUtilp->getAppRODataDir()
4649 );
4650} 4707}
4651 4708
4652 4709
@@ -4738,8 +4795,6 @@ BOOL LLViewerWindow::checkSettings()
4738 } 4795 }
4739 4796
4740 mResDirty = false; 4797 mResDirty = false;
4741 // This will force a state update the next frame.
4742 mStatesDirty = true;
4743 } 4798 }
4744 4799
4745 BOOL is_fullscreen = mWindow->getFullscreen(); 4800 BOOL is_fullscreen = mWindow->getFullscreen();
@@ -4890,10 +4945,10 @@ BOOL LLViewerWindow::changeDisplaySettings(BOOL fullscreen, LLCoordScreen size,
4890 4945
4891 if (!result_first_try) 4946 if (!result_first_try)
4892 { 4947 {
4893 LLStringUtil::format_map_t args; 4948 LLSD args;
4894 args["[RESX]"] = llformat("%d",size.mX); 4949 args["RESX"] = llformat("%d",size.mX);
4895 args["[RESY]"] = llformat("%d",size.mY); 4950 args["RESY"] = llformat("%d",size.mY);
4896 alertXml("ResolutionSwitchFail", args); 4951 LLNotifications::instance().add("ResolutionSwitchFail", args);
4897 size = old_size; // for reshape below 4952 size = old_size; // for reshape below
4898 } 4953 }
4899 4954
@@ -5006,74 +5061,47 @@ S32 LLViewerWindow::getChatConsoleBottomPad()
5006 return offset; 5061 return offset;
5007} 5062}
5008 5063
5009//---------------------------------------------------------------------------- 5064LLRect LLViewerWindow::getChatConsoleRect()
5010
5011// static
5012bool LLViewerWindow::alertCallback(S32 modal)
5013{ 5065{
5014 if (gNoRender) 5066 LLRect full_window(0, getWindowHeight(), getWindowWidth(), 0);
5015 { 5067 LLRect console_rect = full_window;
5016 return false;
5017 }
5018 else
5019 {
5020// if (modal) // we really always want to take you out of mouselook
5021 {
5022 // If we're in mouselook, the mouse is hidden and so the user can't click
5023 // the dialog buttons. In that case, change to First Person instead.
5024 if( gAgent.cameraMouselook() )
5025 {
5026 gAgent.changeCameraToDefault();
5027 }
5028 }
5029 return true;
5030 }
5031}
5032 5068
5033LLAlertDialog* LLViewerWindow::alertXml(const std::string& xml_filename, 5069 const S32 CONSOLE_PADDING_TOP = 24;
5034 LLAlertDialog::alert_callback_t callback, void* user_data) 5070 const S32 CONSOLE_PADDING_LEFT = 24;
5035{ 5071 const S32 CONSOLE_PADDING_RIGHT = 10;
5036 LLStringUtil::format_map_t args;
5037 return alertXml( xml_filename, args, callback, user_data );
5038}
5039 5072
5040LLAlertDialog* LLViewerWindow::alertXml(const std::string& xml_filename, const LLStringUtil::format_map_t& args, 5073 console_rect.mTop -= CONSOLE_PADDING_TOP;
5041 LLAlertDialog::alert_callback_t callback, void* user_data) 5074 console_rect.mBottom += getChatConsoleBottomPad();
5042{ 5075
5043 if (gNoRender) 5076 console_rect.mLeft += CONSOLE_PADDING_LEFT;
5077
5078 if (gSavedSettings.getBOOL("ChatFullWidth"))
5044 { 5079 {
5045 llinfos << "Alert: " << xml_filename << llendl; 5080 console_rect.mRight -= CONSOLE_PADDING_RIGHT;
5046 if (callback)
5047 {
5048 callback(-1, user_data);
5049 }
5050 return NULL;
5051 } 5081 }
5052 5082 else
5053 // If we're in mouselook, the mouse is hidden and so the user can't click
5054 // the dialog buttons. In that case, change to First Person instead.
5055 if( gAgent.cameraMouselook() )
5056 { 5083 {
5057 gAgent.changeCameraToDefault(); 5084 // Make console rect somewhat narrow so having inventory open is
5085 // less of a problem.
5086 console_rect.mRight = console_rect.mLeft + 2 * getWindowWidth() / 3;
5058 } 5087 }
5059 5088
5060 // Note: object adds, removes, and destroys itself. 5089 return console_rect;
5061 return LLAlertDialog::showXml( xml_filename, args, callback, user_data );
5062} 5090}
5091//----------------------------------------------------------------------------
5092
5063 5093
5064LLAlertDialog* LLViewerWindow::alertXmlEditText(const std::string& xml_filename, const LLStringUtil::format_map_t& args, 5094//static
5065 LLAlertDialog::alert_callback_t callback, void* user_data, 5095bool LLViewerWindow::onAlert(const LLSD& notify)
5066 LLAlertDialog::alert_text_callback_t text_callback, void *text_data,
5067 const LLStringUtil::format_map_t& edit_args, BOOL draw_asterixes)
5068{ 5096{
5097 LLNotificationPtr notification = LLNotifications::instance().find(notify["id"].asUUID());
5098
5069 if (gNoRender) 5099 if (gNoRender)
5070 { 5100 {
5071 llinfos << "Alert: " << xml_filename << llendl; 5101 llinfos << "Alert: " << notification->getName() << llendl;
5072 if (callback) 5102 notification->respond(LLSD::emptyMap());
5073 { 5103 LLNotifications::instance().cancel(notification);
5074 callback(-1, user_data); 5104 return false;
5075 }
5076 return NULL;
5077 } 5105 }
5078 5106
5079 // If we're in mouselook, the mouse is hidden and so the user can't click 5107 // If we're in mouselook, the mouse is hidden and so the user can't click
@@ -5082,20 +5110,7 @@ LLAlertDialog* LLViewerWindow::alertXmlEditText(const std::string& xml_filename,
5082 { 5110 {
5083 gAgent.changeCameraToDefault(); 5111 gAgent.changeCameraToDefault();
5084 } 5112 }
5085 5113 return false;
5086 // Note: object adds, removes, and destroys itself.
5087 LLAlertDialog* alert = LLAlertDialog::createXml( xml_filename, args, callback, user_data );
5088 if (alert)
5089 {
5090 if (text_callback)
5091 {
5092 alert->setEditTextCallback(text_callback, text_data);
5093 }
5094 alert->setEditTextArgs(edit_args);
5095 alert->setDrawAsterixes(draw_asterixes);
5096 alert->show();
5097 }
5098 return alert;
5099} 5114}
5100 5115
5101//////////////////////////////////////////////////////////////////////////// 5116////////////////////////////////////////////////////////////////////////////