00001 
00033 
00034 
00035 #include "llviewerprecompiledheaders.h"
00036 
00037 #include "llviewercontrol.h"
00038 
00039 #include "indra_constants.h"
00040 
00041 #include "v3math.h"
00042 #include "v3dmath.h"
00043 #include "llrect.h"
00044 #include "v4color.h"
00045 #include "v4coloru.h"
00046 #include "v3color.h"
00047 #include "llfirstuse.h"
00048 
00049 
00050 #include "audioengine.h"
00051 #include "llagent.h"
00052 #include "llconsole.h"
00053 #include "lldrawpoolterrain.h"
00054 #include "llflexibleobject.h"
00055 #include "llfloatereventlog.h"
00056 #include "llfeaturemanager.h"
00057 #include "llglslshader.h"
00058 #include "llmediaengine.h"
00059 #include "llpanelgeneral.h"
00060 #include "llpanelinput.h"
00061 #include "llsky.h"
00062 #include "llviewerimagelist.h"
00063 #include "llviewerthrottle.h"
00064 #include "llviewerwindow.h"
00065 #include "llvoavatar.h"
00066 #include "llvosky.h"
00067 #include "llvotree.h"
00068 #include "llvovolume.h"
00069 #include "llworld.h"
00070 #include "pipeline.h"
00071 #include "viewer.h"
00072 #include "llviewerjoystick.h"
00073 #include "llviewerparcelmgr.h"
00074 #include "llparcel.h"
00075 #include "llnotify.h"
00076 #include "llkeyboard.h"
00077 
00078 void declare_settings()
00079 {
00080         
00081         const S32 WINDOW_WIDTH = 800;
00082         const S32 WINDOW_HEIGHT = 600;
00083 
00084         
00085         
00086         
00087 
00088         const S32 TOOL_PANEL_HEIGHT = 162 + 32;
00089         const S32 TOOL_PANEL_WIDTH = 75 + 8;
00090 
00091         
00092         gSavedSettings.declareColor4("EffectColor", LLColor4(1.f, 1.f, 1.f, 1.f), "Particle effects color");
00093         gSavedSettings.declareColor4("SystemChatColor", LLColor4(0.8f, 1.f, 1.f, 1.f), "Color of chat messages from SL System");
00094         gSavedSettings.declareColor4("AgentChatColor",  LLColor4(1.0f, 1.0f, 1.0f, 1.0f), "Color of chat messages from other residents");
00095         gSavedSettings.declareColor4("ObjectChatColor", LLColor4(0.7f, 0.9f, 0.7f, 1.0f), "Color of chat messages from objects");
00096         gSavedSettings.declareColor4("llOwnerSayChatColor",     LLColor4(0.99f, 0.99f, 0.69f, 1.0f), "Color of chat messages from objects only visible to the owner");
00097         gSavedSettings.declareColor4("BackgroundChatColor",     LLColor4(0.f, 0.f, 0.f, 1.0f), "Color of chat bubble background");
00098         gSavedSettings.declareColor4("ScriptErrorColor",        LLColor4(0.82f, 0.82f, 0.99f, 1.0f), "Color of script error messages");
00099         gSavedSettings.declareColor4("HTMLLinkColor",   LLColor4(0.6f, 0.6f, 1.0f, 1.0f), "Color of hyperlinks");
00100         
00101         
00102         gSavedSettings.declareColor4("ColorPaletteEntry01", LLColor4 ( 0.0f, 0.0f, 0.0f, 1.0f ), "Color picker palette entry");
00103         gSavedSettings.declareColor4("ColorPaletteEntry02", LLColor4 ( 0.5f, 0.5f, 0.5f, 1.0f ), "Color picker palette entry");
00104         gSavedSettings.declareColor4("ColorPaletteEntry03", LLColor4 ( 0.5f, 0.0f, 0.0f, 1.0f ), "Color picker palette entry");
00105         gSavedSettings.declareColor4("ColorPaletteEntry04", LLColor4 ( 0.5f, 0.5f, 0.0f, 1.0f ), "Color picker palette entry");
00106         gSavedSettings.declareColor4("ColorPaletteEntry05", LLColor4 ( 0.0f, 0.5f, 0.0f, 1.0f ), "Color picker palette entry");
00107         gSavedSettings.declareColor4("ColorPaletteEntry06", LLColor4 ( 0.0f, 0.5f, 0.5f, 1.0f ), "Color picker palette entry");
00108         gSavedSettings.declareColor4("ColorPaletteEntry07", LLColor4 ( 0.0f, 0.0f, 0.5f, 1.0f ), "Color picker palette entry");
00109         gSavedSettings.declareColor4("ColorPaletteEntry08", LLColor4 ( 0.5f, 0.0f, 0.5f, 1.0f ), "Color picker palette entry");
00110         gSavedSettings.declareColor4("ColorPaletteEntry09", LLColor4 ( 0.5f, 0.5f, 0.0f, 1.0f ), "Color picker palette entry");
00111         gSavedSettings.declareColor4("ColorPaletteEntry10", LLColor4 ( 0.0f, 0.25f, 0.25f, 1.0f ), "Color picker palette entry");
00112         gSavedSettings.declareColor4("ColorPaletteEntry11", LLColor4 ( 0.0f, 0.5f, 1.0f, 1.0f ), "Color picker palette entry");
00113         gSavedSettings.declareColor4("ColorPaletteEntry12", LLColor4 ( 0.0f, 0.25f, 0.5f, 1.0f ), "Color picker palette entry");
00114         gSavedSettings.declareColor4("ColorPaletteEntry13", LLColor4 ( 0.5f, 0.0f, 1.0f, 1.0f ), "Color picker palette entry");
00115         gSavedSettings.declareColor4("ColorPaletteEntry14", LLColor4 ( 0.5f, 0.25f, 0.0f, 1.0f ), "Color picker palette entry");
00116         gSavedSettings.declareColor4("ColorPaletteEntry15", LLColor4 ( 1.0f, 1.0f, 1.0f, 1.0f ), "Color picker palette entry");
00117         gSavedSettings.declareColor4("ColorPaletteEntry16", LLColor4 ( 1.0f, 1.0f, 1.0f, 1.0f ), "Color picker palette entry");
00118 
00119         gSavedSettings.declareColor4("ColorPaletteEntry17", LLColor4 ( 1.0f, 1.0f, 1.0f, 1.0f ), "Color picker palette entry");
00120         gSavedSettings.declareColor4("ColorPaletteEntry18", LLColor4 ( 0.75f, 0.75f, 0.75f, 1.0f ), "Color picker palette entry");
00121         gSavedSettings.declareColor4("ColorPaletteEntry19", LLColor4 ( 1.0f, 0.0f, 0.0f, 1.0f ), "Color picker palette entry");
00122         gSavedSettings.declareColor4("ColorPaletteEntry20", LLColor4 ( 1.0f, 1.0f, 0.0f, 1.0f ), "Color picker palette entry");
00123         gSavedSettings.declareColor4("ColorPaletteEntry21", LLColor4 ( 0.0f, 1.0f, 0.0f, 1.0f ), "Color picker palette entry");
00124         gSavedSettings.declareColor4("ColorPaletteEntry22", LLColor4 ( 0.0f, 1.0f, 1.0f, 1.0f ), "Color picker palette entry");
00125         gSavedSettings.declareColor4("ColorPaletteEntry23", LLColor4 ( 0.0f, 0.0f, 1.0f, 1.0f ), "Color picker palette entry");
00126         gSavedSettings.declareColor4("ColorPaletteEntry24", LLColor4 ( 1.0f, 0.0f, 1.0f, 1.0f ), "Color picker palette entry");
00127         gSavedSettings.declareColor4("ColorPaletteEntry25", LLColor4 ( 1.0f, 1.0f, 0.5f, 1.0f ), "Color picker palette entry");
00128         gSavedSettings.declareColor4("ColorPaletteEntry26", LLColor4 ( 0.0f, 1.0f, 0.5f, 1.0f ), "Color picker palette entry");
00129         gSavedSettings.declareColor4("ColorPaletteEntry27", LLColor4 ( 0.5f, 1.0f, 1.0f, 1.0f ), "Color picker palette entry");
00130         gSavedSettings.declareColor4("ColorPaletteEntry28", LLColor4 ( 0.5f, 0.5f, 1.0f, 1.0f ), "Color picker palette entry");
00131         gSavedSettings.declareColor4("ColorPaletteEntry29", LLColor4 ( 1.0f, 0.0f, 0.5f, 1.0f ), "Color picker palette entry");
00132         gSavedSettings.declareColor4("ColorPaletteEntry30", LLColor4 ( 1.0f, 0.5f, 0.0f, 1.0f ), "Color picker palette entry");
00133         gSavedSettings.declareColor4("ColorPaletteEntry31", LLColor4 ( 1.0f, 1.0f, 1.0f, 1.0f ), "Color picker palette entry");
00134         gSavedSettings.declareColor4("ColorPaletteEntry32", LLColor4 ( 1.0f, 1.0f, 1.0f, 1.0f ), "Color picker palette entry");
00135 
00136         
00137         
00138         
00139         gSavedSettings.declareS32("MenuBarHeight", 18, "", NO_PERSIST );
00140         gSavedSettings.declareS32("MenuBarWidth", 410, "", NO_PERSIST );
00141 
00142         gSavedSettings.declareF32("MenuAccessKeyTime", 0.25f, "Time (seconds) in which the menu key must be tapped to move focus to the menu bar");
00143         gSavedSettings.declareBOOL("UseAltKeyForMenus", FALSE, "Access menus via keyboard by tapping Alt");
00144         
00145         gSavedSettings.declareS32("MapOverlayIndex", 0, "Currently selected world map type");
00146 
00147 
00148         
00149         
00150         
00151         gSavedSettings.declareF32("PieMenuLineWidth", 2.5f, "Width of lines in pie menu display (pixels)");
00152 
00153         
00154         
00155         
00156         gSavedSettings.declareS32("DropShadowButton",   2, "Drop shadow width for buttons (pixels)");
00157         gSavedSettings.declareS32("DropShadowFloater",  5, "Drop shadow width for floaters (pixels)");
00158         gSavedSettings.declareS32("DropShadowSlider",   3, "Drop shadow width for sliders (pixels)");
00159         gSavedSettings.declareS32("DropShadowTooltip",  4, "Drop shadow width for tooltips (pixels)");
00160 
00161         
00162         
00163         
00164         gSavedSettings.declareS32("ButtonHPad", 10, "Default horizontal spacing between buttons (pixels)");             
00165         gSavedSettings.declareS32("ButtonVPad", 1, "Default vertical spacing between buttons (pixels)");                
00166         gSavedSettings.declareS32("ButtonHeightSmall", 16, "Default height for small buttons (pixels)");
00167         gSavedSettings.declareS32("ButtonHeight", 20, "Default height for normal buttons (pixels)");
00168         
00169 
00170         
00171         
00172 
00173         
00174         
00175         
00176         gSavedSettings.declareF32("TypeAheadTimeout", 1.5f, "Time delay before clearing type-ahead buffer in lists (seconds)");
00177 
00178         
00179         
00180         
00181         gSavedSettings.declareF32("ToolTipDelay", 0.7f, "Seconds before displaying tooltip when mouse stops over UI element");
00182         gSavedSettings.declareF32("DragAndDropToolTipDelay", 0.1f, "Seconds before displaying tooltip when performing drag and drop operation");
00183 
00184         
00185         
00186         
00187         gSavedSettings.declareF32("FolderAutoOpenDelay", 0.75f, "Seconds before automatically expanding the folder under the mouse when performing inventory drag and drop");
00188         gSavedSettings.declareF32("InventoryAutoOpenDelay", 1.f, "Seconds before automatically opening inventory when mouse is over inventory button when performing inventory drag and drop");
00189         gSavedSettings.declareBOOL("ShowEmptyFoldersWhenSearching", FALSE, "Shows folders that do not have any visible contents when applying a filter to inventory");
00190         gSavedSettings.declareS32("FilterItemsPerFrame", 500, "Maximum number of inventory items to match against search filter every frame (lower to increase framerate while searching, higher to improve search speed)");
00191         gSavedSettings.declareBOOL("DebugInventoryFilters", FALSE, "Turn on debugging display for inventory filtering");
00192 
00193         
00194         
00195         
00196         gSavedSettings.declareS32("StatusBarHeight", 26, "Height of menu/status bar at top of screen (pixels)" );
00197         
00198 
00199         gSavedSettings.declareS32("StatusBarPad", 10, "Spacing between popup buttons at bottom of screen (Stand up, Release Controls)");
00200 
00201         
00202 
00203         
00204         
00205         
00206         
00207         
00208         
00209 
00210         
00211         
00212         
00213         gSavedSettings.declareF32("FontScreenDPI",      96.f, "Font resolution, higher is bigger (pixels per inch)");           
00214         gSavedSettings.declareF32("FontSizeMonospace", 9.f, "Size of monospaced font (points, or 1/72 of an inch)");
00215         gSavedSettings.declareF32("FontSizeSmall",      9.f, "Size of small font (points, or 1/72 of an inch)");
00216         gSavedSettings.declareF32("FontSizeMedium",     10.f, "Size of medium font (points, or 1/72 of an inch)");
00217         gSavedSettings.declareF32("FontSizeLarge",      12.f, "Size of large font (points, or 1/72 of an inch)");
00218         gSavedSettings.declareF32("FontSizeHuge",       16.f, "Size of huge font (points, or 1/72 of an inch)");
00219 
00220         gSavedSettings.declareString("FontMonospace",           "profontwindows.ttf", "Name of monospace font (Truetype file name)");
00221         gSavedSettings.declareString("FontSansSerif",           "MtBkLfRg.ttf", "Name of san-serif font (Truetype file name)");
00222 #if LL_WINDOWS
00223         
00224         
00225         gSavedSettings.declareString(
00226                 "FontSansSerifFallback",
00227                 "MSGOTHIC.TTC;gulim.ttc;simhei.ttf;ArialUni.ttf",
00228                 "Name of fallback san-serif font (Truetype file name)");
00229 #elif LL_DARWIN
00230         
00231         
00232         
00233         gSavedSettings.declareString("FontSansSerifFallback",   "\xE3\x83\x92\xE3\x83\xA9\xE3\x82\xAD\xE3\x82\x99\xE3\x83\x8E\xE8\xA7\x92\xE3\x82\xB3\xE3\x82\x99 Pro W3.otf;\xE3\x83\x92\xE3\x83\xA9\xE3\x82\xAD\xE3\x82\x99\xE3\x83\x8E\xE8\xA7\x92\xE3\x82\xB3\xE3\x82\x99 ProN W3.otf;AppleGothic.dfont;AppleGothic.ttf;\xe5\x8d\x8e\xe6\x96\x87\xe7\xbb\x86\xe9\xbb\x91.ttf", "Name of san-serif font (Truetype file name)");
00234 #else
00235         
00236         
00237         gSavedSettings.declareString("FontSansSerifFallback",   "unicode.ttf", "Name of fallback san-serif font (Truetype file name)");
00238 #endif
00239         gSavedSettings.declareF32("FontSansSerifFallbackScale", 1.0, "Scale of fallback font relative to huge font (fraction of huge font size)");
00240         gSavedSettings.declareString("FontSansSerifBold",       "MtBdLfRg.ttf", "Name of bold font (Truetype file name)");
00241 
00242         
00243         
00244         
00245 
00246         
00247         gSavedSettings.declareS32("ChatFontSize", 1, "Size of chat text in chat console (0 = small, 1 = big)");
00248 
00249         
00250         gSavedSettings.declareBOOL("ChatFullWidth", TRUE, "Chat console takes up full width of SL window");
00251 
00252         
00253         gSavedSettings.declareF32("ConsoleBackgroundOpacity", 0.4f, "Opacity of chat console (0.0 = completely transparent, 1.0 = completely opaque)");
00254         gSavedSettings.declareS32("ConsoleMaxLines", 40, "Max number of lines of chat text visible in console.");
00255 
00256         
00257         gSavedSettings.declareF32("ChatPersistTime", 15.f, "Time for which chat stays visible in console (seconds)");
00258         gSavedSettings.declareBOOL("PlayTypingAnim", TRUE, "Your avatar plays the typing animation whenever you type in the chat bar");
00259 
00260         
00261         gSavedSettings.declareBOOL("UseChatBubbles", FALSE, "Show chat above avatars head in chat bubbles");
00262         gSavedSettings.declareF32("ChatBubbleOpacity", 0.5f, "Opacity of chat bubble background (0.0 = completely transparent, 1.0 = completely opaque)");
00263 
00264         gSavedSettings.declareBOOL("AllowIdleAFK", TRUE, "Automatically set AFK (away from keyboard) mode when idle");
00265         gSavedSettings.declareF32("AFKTimeout", 300.f, "Time before automatically setting AFK (away from keyboard) mode (seconds)");    
00266 
00267         gSavedSettings.declareBOOL("SmallAvatarNames", TRUE, "Display avatar name text in smaller font");
00268         gSavedSettings.declareBOOL("ScriptErrorsAsChat", FALSE, "Display script errors and warning in chat history");
00269 
00270         gSavedSettings.declareBOOL("ChatShowTimestamps", TRUE, "Show timestamps in chat");
00271 
00272         gSavedSettings.declareBOOL("EnableVoiceChat", FALSE, "Enable talking to other residents with a microphone");
00273         gSavedSettings.declareBOOL("VoiceCallsFriendsOnly", FALSE, "Only accept voice calls from residents on your friends list");
00274         gSavedSettings.declareBOOL("PTTCurrentlyEnabled", TRUE, "", NO_PERSIST);
00275         gSavedSettings.declareBOOL("EnablePushToTalk", TRUE, "Must hold down a key or moouse button when talking into your microphone");
00276         gSavedSettings.declareString("PushToTalkButton", "MiddleMouse", "Which button or keyboard key is used for push-to-talk");
00277         gSavedSettings.declareBOOL("PushToTalkToggle", FALSE, "Should the push-to-talk button behave as a toggle");
00278         gSavedSettings.declareS32("VoiceEarLocation", 0, "Location of the virtual ear for voice");
00279         gSavedSettings.declareString("VivoxDebugServerName", "bhd.vivox.com", "Hostname of the vivox account server to use for voice when not connected to Agni.");
00280         gSavedSettings.declareColor4("SpeakingColor", LLColor4(0.f, 1.f, 0.f, 1.f), "Color of various indicators when resident is speaking on a voice channel.");
00281         gSavedSettings.declareColor4("OverdrivenColor", LLColor4(1.f, 0.f, 0.f, 1.f), "Color of various indicators when resident is speaking too loud.");
00282         gSavedSettings.declareString("VoiceInputAudioDevice", "Default", "Audio input device to use for voice");
00283         gSavedSettings.declareString("VoiceOutputAudioDevice", "Default", "Audio output device to use for voice");
00284         gSavedSettings.declareString("VivoxDebugLevel", "-1", "Logging level to use when launching the vivox daemon");
00285 
00286         
00287         
00288         
00289 
00290 
00291 
00292 
00293 
00294 
00295 
00296 
00297         
00298         
00299 
00300 
00301 
00302 
00303 
00304 
00305 
00306 
00307 
00308         
00309         
00310         
00311 
00312 
00313 
00314 
00315 
00316 
00317 
00318 
00319         
00320         
00321 
00322 
00323 
00324 
00325 
00326 
00327 
00328 
00329 
00330         
00331         
00332         gSavedSettings.declareString("VoiceImageLevel0", "041ee5a0-cb6a-9ac5-6e49-41e9320507d5", "Texture UUID for voice image level 0");       
00333         gSavedSettings.declareString("VoiceImageLevel1", "29de489d-0491-fb00-7dab-f9e686d31e83", "Texture UUID for voice image level 1");
00334         gSavedSettings.declareString("VoiceImageLevel2", "29de489d-0491-fb00-7dab-f9e686d31e83", "Texture UUID for voice image level 2");
00335         gSavedSettings.declareString("VoiceImageLevel3", "29de489d-0491-fb00-7dab-f9e686d31e83", "Texture UUID for voice image level 3");
00336         gSavedSettings.declareString("VoiceImageLevel4", "29de489d-0491-fb00-7dab-f9e686d31e83", "Texture UUID for voice image level 4");
00337         gSavedSettings.declareString("VoiceImageLevel5", "29de489d-0491-fb00-7dab-f9e686d31e83", "Texture UUID for voice image level 5");
00338         gSavedSettings.declareString("VoiceImageLevel6", "29de489d-0491-fb00-7dab-f9e686d31e83", "Texture UUID for voice image level 6");
00339         
00340         gSavedSettings.declareString("VoiceHost", "127.0.0.1", "Client SLVoice host to connect to");
00341         gSavedSettings.declareU32("VoicePort", 44124, "Client SLVoice port to connect to");
00342         
00343         
00344         
00345         
00346 
00347         gSavedSettings.declareBOOL("PermissionsCautionEnabled", TRUE, "When enabled, changes the handling of script permission requests to help avoid accidental granting of certain permissions, such as the debit permission", NO_PERSIST);
00348         gSavedSettings.declareS32("PermissionsCautionNotifyBoxHeight", 344, "Height of caution-style notification messages", NO_PERSIST);
00349 
00350         
00351         
00352         
00353 
00354         gSavedSettings.declareBOOL("ScriptHelpFollowsCursor", FALSE, "Scripting help window updates contents based on script editor contents under text cursor");
00355 
00356         gSavedSettings.declareS32("LastFeatureVersion", 0, "[DO NOT MODIFY] Version number for tracking hardware changes", TRUE);
00357         gSavedSettings.declareS32("NumSessions", 0, "Number of successful logins to Second Life");
00358         gSavedSettings.declareBOOL("ShowInventory", FALSE, "Open inventory window on login");
00359         gSavedSettings.declareBOOL("ChatOnlineNotification", TRUE, "Provide notifications for when friend log on and off of SL");
00360 
00361         gSavedSettings.declareString("DefaultObjectTexture", "89556747-24cb-43ed-920b-47caed15465f", "Texture used as 'Default' in texture picker. (UUID texture reference)" );  
00362 
00363         gSavedSettings.declareBOOL("ShowPropertyLines", FALSE, "Show line overlay demarking property boundaries");
00364         gSavedSettings.declareBOOL("ShowParcelOwners", FALSE, "", NO_PERSIST);
00365         gSavedSettings.declareBOOL("ToolboxAutoMove", FALSE, "[NOT USED]");
00366         gSavedSettings.declareBOOL("ToolboxShowMore", TRUE, "Whether to show additional build tool controls", TRUE);
00367 
00368         gSavedSettings.declareRect("ToolboxRect", LLRect(0, 100, 100, 100), "Rectangle for tools window" ); 
00369 
00370         
00371         gSavedSettings.declareBOOL("FirstPersonBtnState",       FALSE,  "", NO_PERSIST);
00372         gSavedSettings.declareBOOL("MouselookBtnState",         FALSE,  "", NO_PERSIST);
00373         gSavedSettings.declareBOOL("ThirdPersonBtnState",       TRUE,   "", NO_PERSIST);
00374         gSavedSettings.declareBOOL("BuildBtnState",                     FALSE,  "", NO_PERSIST);
00375 
00376         
00377 
00378         gSavedSettings.declareBOOL("ShowPermissions",   FALSE, "", NO_PERSIST);
00379         gSavedSettings.declareBOOL("ShowTools",                 FALSE, "", NO_PERSIST);
00380 
00381 
00382         gSavedSettings.declareString("NextLoginLocation", "", "Location to log into by default.");      
00383 
00384 
00385         gSavedSettings.declareRect("BasicHelpRect",                     LLRect(0, 404, 467, 0), "Rectangle for help window" );  
00386 
00387         gSavedSettings.declareS32("LastPrefTab", 0, "Last selected tab in preferences window");
00388 
00389         gSavedSettings.declareString("LSLHelpURL", "https://wiki.secondlife.com/wiki/[LSL_STRING]", "URL that points to LSL help files, with [LSL_STRING] corresponding to the referenced LSL function or keyword");
00390         
00391         
00392         
00393 
00394         const char* UI_IMG_WHITE_UUID           = "5748decc-f629-461c-9a36-a35a221fe21f";
00395 
00396 
00397 
00398         gSavedSettings.declareString("UIImgDefaultShirtUUID",           UI_IMG_WHITE_UUID,                                      "", NO_PERSIST);
00399         gSavedSettings.declareString("UIImgDefaultPantsUUID",           UI_IMG_WHITE_UUID,                                      "", NO_PERSIST);
00400         gSavedSettings.declareString("UIImgDefaultEyesUUID",            "6522e74d-1660-4e7f-b601-6f48c1659a77", "", NO_PERSIST);
00401         gSavedSettings.declareString("UIImgDefaultHairUUID",            "7ca39b4c-bd19-4699-aff7-f93fd03d3e7b", "", NO_PERSIST);
00402         gSavedSettings.declareString("UIImgDefaultShoesUUID",           UI_IMG_WHITE_UUID,                                              "", NO_PERSIST);
00403         gSavedSettings.declareString("UIImgDefaultSocksUUID",           UI_IMG_WHITE_UUID,                                      "", NO_PERSIST);
00404         gSavedSettings.declareString("UIImgDefaultGlovesUUID",          UI_IMG_WHITE_UUID,                                      "", NO_PERSIST);
00405         gSavedSettings.declareString("UIImgDefaultJacketUUID",          UI_IMG_WHITE_UUID,                                      "", NO_PERSIST);
00406         gSavedSettings.declareString("UIImgDefaultUnderwearUUID",       UI_IMG_WHITE_UUID,                                      "", NO_PERSIST);
00407         gSavedSettings.declareString("UIImgDefaultSkirtUUID",           UI_IMG_WHITE_UUID,                                      "", NO_PERSIST);
00408 
00409         
00410         gSavedSettings.declareString("UIImgWhiteUUID",                          UI_IMG_WHITE_UUID,                                              "", NO_PERSIST);
00411 
00412         
00413         const S32 MOVE_BTN_COL1 = 20;
00414         const S32 MOVE_BTN_COL2 = MOVE_BTN_COL1 + 25;
00415         const S32 MOVE_BTN_COL3 = MOVE_BTN_COL2 + 21;
00416         const S32 MOVE_BTN_COL4 = MOVE_BTN_COL3 + 25;
00417         const S32 MOVE_BTN_COL5 = MOVE_BTN_COL4 + 25;
00418 
00419         const S32 MOVE_BTN_ROW1 = 4;
00420         const S32 MOVE_BTN_ROW2 = MOVE_BTN_ROW1 + 25;
00421         const S32 MOVE_BTN_ROW3 = MOVE_BTN_ROW2 + 25;
00422         const S32 MOVE_BTN_FLY_LEFT = MOVE_BTN_COL1+96;
00423         const S32 MOVE_BTN_FLY_WIDTH = 40;
00424         const S32 MOVE_BTN_FLY_RIGHT = MOVE_BTN_FLY_LEFT + MOVE_BTN_FLY_WIDTH;
00425 
00426         
00427 
00428         
00429 
00430         gSavedSettings.declareRect("SlideLeftBtnRect",
00431                 LLRect(MOVE_BTN_COL1, MOVE_BTN_ROW3,    MOVE_BTN_COL2,  MOVE_BTN_ROW2),
00432                 "", NO_PERSIST  );
00433         gSavedSettings.declareRect("TurnLeftBtnRect",
00434                 LLRect(MOVE_BTN_COL1, MOVE_BTN_ROW2,    MOVE_BTN_COL2,  MOVE_BTN_ROW1),
00435                 "", NO_PERSIST  );
00436         gSavedSettings.declareRect("ForwardBtnRect",
00437                 LLRect(MOVE_BTN_COL2, MOVE_BTN_ROW3,    MOVE_BTN_COL3,  MOVE_BTN_ROW2),
00438                 "", NO_PERSIST  );
00439         gSavedSettings.declareRect("BackwardBtnRect",
00440                 LLRect(MOVE_BTN_COL2, MOVE_BTN_ROW2,    MOVE_BTN_COL3,  MOVE_BTN_ROW1),
00441                 "", NO_PERSIST  );
00442         gSavedSettings.declareRect("SlideRightBtnRect",
00443                 LLRect(MOVE_BTN_COL3, MOVE_BTN_ROW3,    MOVE_BTN_COL4,  MOVE_BTN_ROW2),
00444                 "", NO_PERSIST  );
00445         gSavedSettings.declareRect("TurnRightBtnRect",
00446                 LLRect(MOVE_BTN_COL3, MOVE_BTN_ROW2,    MOVE_BTN_COL4,  MOVE_BTN_ROW1),
00447                 "", NO_PERSIST  );
00448         gSavedSettings.declareRect("MoveUpBtnRect",
00449                 LLRect(MOVE_BTN_COL4, MOVE_BTN_ROW3,    MOVE_BTN_COL5,  MOVE_BTN_ROW2),
00450                 "", NO_PERSIST  );
00451         gSavedSettings.declareRect("MoveDownBtnRect",
00452                 LLRect(MOVE_BTN_COL4, MOVE_BTN_ROW2,    MOVE_BTN_COL5,  MOVE_BTN_ROW1),
00453                 "", NO_PERSIST  );
00454         gSavedSettings.declareBOOL("FlyBtnState",                       FALSE,  "", NO_PERSIST);
00455         gSavedSettings.declareBOOL("SitBtnState",                       FALSE,  "", NO_PERSIST);
00456         gSavedSettings.declareRect("FlyBtnRect",
00457                 LLRect(MOVE_BTN_FLY_LEFT, 20,   MOVE_BTN_FLY_RIGHT,      4), "", NO_PERSIST     );
00458         gSavedSettings.declareBOOL("RunBtnState",                       FALSE,  "", NO_PERSIST);
00459         gSavedSettings.declareRect("RunBtnRect",
00460                 LLRect(MOVE_BTN_FLY_LEFT, 40,   MOVE_BTN_FLY_RIGHT,      24), "", NO_PERSIST    );
00461 
00462         const S32 MOVE_WIDTH = MOVE_BTN_FLY_RIGHT + 4;
00463         const S32 MOVE_HEIGHT = MOVE_BTN_ROW3 + 4;
00464         gSavedSettings.declareRect("FloaterMoveRect", LLRect(0, MOVE_HEIGHT, MOVE_WIDTH, 0), "Rectangle for avatar control window");
00465 
00466         
00467         gSavedSettings.declareS32("RenderName", 2, "Controls display of names above avatars (0 = never, 1 = fade, 2 = always)");
00468         gSavedSettings.declareF32("RenderNameShowTime", 10.f, "Fade avatar names after specified time (seconds)");              
00469         gSavedSettings.declareF32("RenderNameFadeDuration", 1.f, "Time interval over which to fade avatar names (seconds)");    
00470         gSavedSettings.declareBOOL("RenderNameHideSelf", FALSE, "Don't display own name above avatar");
00471         gSavedSettings.declareBOOL("RenderHideGroupTitle", FALSE, "Don't show my group title in my name label");
00472         gSavedSettings.declareBOOL("RenderGroupTitleAll", TRUE, "Show group titles in name labels");
00473 
00474         
00475         const S32 CAMERA_LEFT = MOVE_BTN_FLY_RIGHT + 10;
00476         const S32 CAMERA_WIDTH = 16 + 64 + 16 + 64 + 16;
00477         const S32 CAMERA_HEIGHT = 64;
00478         gSavedSettings.declareRect("FloaterCameraRect",
00479                 LLRect(CAMERA_LEFT, CAMERA_HEIGHT, CAMERA_LEFT+CAMERA_WIDTH, 0), "Rectangle for camera control window");
00480 
00481         
00482         LLRect floater_tools_rect;
00483         floater_tools_rect.setOriginAndSize(0, 300, TOOL_PANEL_WIDTH, 368);
00484         
00485         gSavedSettings.declareRect("ToolHelpRect",      LLRect(8, TOOL_PANEL_HEIGHT-16, TOOL_PANEL_WIDTH -8, TOOL_PANEL_HEIGHT-16-16), "", NO_PERSIST); 
00486 
00487         gSavedSettings.declareRect("FloaterEventLogRect", LLRect(0,200,200,0), "Rectangle for event log");
00488         gSavedSettings.declareU32("EventLogMaxAge", 120, "Maximum age of the entries to show in the log");
00489         gSavedSettings.declareU32("EventLogMaxEntries", 64, "Maximum amount of entries to show in the log");
00490 
00491         gSavedSettings.declareRect("FloaterFriendsRect", LLRect(0, 400, 250, 0), "Rectangle for friends window");
00492         gSavedSettings.declareRect("FloaterSnapshotRect", LLRect(0, 200, 200, 400), "Rectangle for snapshot window");
00493 
00494         gSavedSettings.declareRect("FloaterAvatarListRect", LLRect(0, 400, 200, 0), "Rectangle for avatar list window");
00495 
00496         
00497 
00498         
00499         
00500         gSavedSettings.declareS32("EnergyFromTop", 20, "", NO_PERSIST );
00501         gSavedSettings.declareS32("EnergyWidth", 175, "", NO_PERSIST );
00502         gSavedSettings.declareS32("EnergyHeight", 40, "", NO_PERSIST );
00503 
00504         gSavedSettings.declareBOOL("UIFloaterTestBool", FALSE, "Example saved setting for the test floater");
00505 
00506         
00507         
00508         
00509         gSavedSettings.declareString("UIImgBtnCloseInactiveUUID",       "779e4fa3-9b13-f74a-fba9-3886fe9c86ba", "", NO_PERSIST);
00510         gSavedSettings.declareString("UIImgBtnCloseActiveUUID",         "47a8c844-cd2a-4b1a-be01-df8b1612fe5d", "", NO_PERSIST);
00511         gSavedSettings.declareString("UIImgBtnClosePressedUUID",        "e5821134-23c0-4bd0-af06-7fa95b9fb01a", "", NO_PERSIST);
00512 
00513         gSavedSettings.declareString("UIImgBtnMinimizeInactiveUUID","6e72abba-1378-437f-bf7a-f0c15f3e99a3", "", NO_PERSIST);
00514         gSavedSettings.declareString("UIImgBtnMinimizeActiveUUID",      "34c9398d-bb78-4643-9633-46a2fa3e9637", "", NO_PERSIST);
00515         gSavedSettings.declareString("UIImgBtnMinimizePressedUUID",     "39801651-26cb-4926-af57-7af9352c273c", "", NO_PERSIST);
00516 
00517         gSavedSettings.declareString("UIImgBtnRestoreInactiveUUID",     "0eafa471-70af-4882-b8c1-40a310929744", "", NO_PERSIST);
00518         gSavedSettings.declareString("UIImgBtnRestoreActiveUUID",       "111b39de-8928-4690-b7b2-e17d5c960277", "", NO_PERSIST);
00519         gSavedSettings.declareString("UIImgBtnRestorePressedUUID",      "90a0ed5c-2e7b-4845-9958-a64a1b30f312", "", NO_PERSIST);
00520 
00521         gSavedSettings.declareString("UIImgBtnTearOffInactiveUUID",     "74e1a96f-4833-a24d-a1bb-1bce1468b0e7", "", NO_PERSIST);
00522         gSavedSettings.declareString("UIImgBtnTearOffActiveUUID",       "74e1a96f-4833-a24d-a1bb-1bce1468b0e7", "", NO_PERSIST);
00523         gSavedSettings.declareString("UIImgBtnTearOffPressedUUID",      "d2524c13-4ba6-af7c-e305-8ac6cc18d86a", "", NO_PERSIST);
00524 
00525         
00526         gSavedSettings.declareBOOL("PinTalkViewOpen", TRUE, "Stay in IM after hitting return");
00527 
00528         
00529         gSavedSettings.declareBOOL("CloseChatOnReturn", FALSE, "Close chat after hitting return");
00530 
00531         
00532         gSavedSettings.declareBOOL("ChatHistoryTornOff", FALSE, "Show chat history window separately from Communicate window.");
00533         gSavedSettings.declareBOOL("IMInChatHistory", FALSE, "Copy IM into chat history");
00534         gSavedSettings.declareBOOL("IMShowTimestamps", TRUE, "Show timestamps in IM");
00535 
00536         
00537         
00538         gSavedSettings.declareBOOL("ChatVisible", FALSE, "Chat bar is visible");
00539 
00540         gSavedSettings.declareString("UIImgDirectionArrowUUID",         "586383e8-4d9b-4fba-9196-2b5938e79c2c", "", NO_PERSIST);
00541 
00542         gSavedSettings.declareString("UIImgResizeBottomRightUUID",      "e3690e25-9690-4f6c-a745-e7dcd885285a", "", NO_PERSIST);
00543 
00544         
00545         gSavedSettings.declareString("UIImgBtnForwardOutUUID",          "a0eb4021-1b20-4a53-892d-8faa9265a6f5", "", NO_PERSIST);
00546         gSavedSettings.declareString("UIImgBtnForwardInUUID",           "54197a61-f5d1-4c29-95d2-c071d08849cb", "", NO_PERSIST);
00547         gSavedSettings.declareString("UIImgBtnSlideLeftOutUUID",        "82476321-0374-4c26-9567-521535ab4cd7", "", NO_PERSIST);
00548         gSavedSettings.declareString("UIImgBtnSlideLeftInUUID",         "724996f5-b956-46f6-9844-4fcfce1d5e83", "", NO_PERSIST);
00549         gSavedSettings.declareString("UIImgBtnLeftOutUUID",                     "13a93910-6b44-45eb-ad3a-4d1324c59bac", "", NO_PERSIST);
00550         gSavedSettings.declareString("UIImgBtnLeftInUUID",                      "95463c78-aaa6-464d-892d-3a805b6bb7bf", "", NO_PERSIST);
00551         gSavedSettings.declareString("UIImgBtnRightOutUUID",            "5a44fd04-f52b-4c30-8b00-4a31e27614bd", "", NO_PERSIST);
00552         gSavedSettings.declareString("UIImgBtnRightInUUID",                     "5e616d0d-4335-476f-9977-560bccd009da", "", NO_PERSIST);
00553         gSavedSettings.declareString("UIImgBtnSlideRightOutUUID",       "1fbe4e60-0607-44d1-a50a-032eff56ae75", "", NO_PERSIST);
00554         gSavedSettings.declareString("UIImgBtnSlideRightInUUID",        "7eeb57d2-3f37-454d-a729-8b217b8be443", "", NO_PERSIST);
00555         gSavedSettings.declareString("UIImgBtnMoveUpInUUID",            "49b4b357-e430-4b56-b9e0-05b8759c3c82", "", NO_PERSIST);
00556         gSavedSettings.declareString("UIImgBtnMoveUpOutUUID",           "f887146d-829f-4e39-9211-cf872b78f97c", "", NO_PERSIST);
00557         gSavedSettings.declareString("UIImgBtnMoveDownInUUID",          "b92a70b9-c841-4c94-b4b3-cee9eb460d48", "", NO_PERSIST);
00558         gSavedSettings.declareString("UIImgBtnMoveDownOutUUID",         "b5abc9fa-9e62-4e03-bc33-82c4c1b6b689", "", NO_PERSIST);
00559 
00560 
00561 
00562 
00563         
00564         gSavedSettings.declareString("UIImgBtnScrollUpOutUUID",         "dad084d7-9a46-452a-b0ff-4b9f1cefdde9", "", NO_PERSIST);
00565         gSavedSettings.declareString("UIImgBtnScrollUpInUUID",          "a93abdf3-27b5-4e22-a8fa-c48216cd2e3a", "", NO_PERSIST);
00566         gSavedSettings.declareString("UIImgBtnScrollDownOutUUID",       "b4ecdecf-5c8d-44e7-b882-17a77e88ed55", "", NO_PERSIST);
00567         gSavedSettings.declareString("UIImgBtnScrollDownInUUID",        "d2421bab-2eaf-4863-b8f6-5e4c52519247", "", NO_PERSIST);
00568         gSavedSettings.declareString("UIImgBtnScrollLeftOutUUID",       "43773e8d-49aa-48e0-80f3-a04715f4677a", "", NO_PERSIST);
00569         gSavedSettings.declareString("UIImgBtnScrollLeftInUUID",        "ea137a32-6718-4d05-9c22-7d570d27b2cd", "", NO_PERSIST);
00570         gSavedSettings.declareString("UIImgBtnScrollRightOutUUID",      "3d700d19-e708-465d-87f2-46c8c0ee7938", "", NO_PERSIST);
00571         gSavedSettings.declareString("UIImgBtnScrollRightInUUID",       "b749de64-e903-4c3c-ac0b-25fb6fa39cb5", "", NO_PERSIST);
00572 
00573         gSavedSettings.declareString("UIImgBtnJumpLeftOutUUID",     "3c18c87e-5f50-14e2-e744-f44734aa365f",     "", NO_PERSIST);
00574         gSavedSettings.declareString("UIImgBtnJumpLeftInUUID",      "9cad3e6d-2d6d-107d-f8ab-5ba272b5bfe1",     "", NO_PERSIST);
00575         gSavedSettings.declareString("UIImgBtnJumpRightOutUUID",        "ff9a71eb-7414-4cf8-866e-a701deb7c3cf", "", NO_PERSIST);
00576         gSavedSettings.declareString("UIImgBtnJumpRightInUUID",     "7dabc040-ec13-2309-ddf7-4f161f6de2f4",     "", NO_PERSIST);
00577 
00578         
00579         gSavedSettings.declareString("UIImgBtnSpinUpOutUUID",                   "56576e6e-6710-4e66-89f9-471b59122794", "", NO_PERSIST);
00580         gSavedSettings.declareString("UIImgBtnSpinUpInUUID",                    "c8450082-96a0-4319-8090-d3ff900b4954", "", NO_PERSIST);
00581         gSavedSettings.declareString("UIImgBtnSpinDownOutUUID",                 "b6d240dd-5602-426f-b606-bbb49a30726d", "", NO_PERSIST);
00582         gSavedSettings.declareString("UIImgBtnSpinDownInUUID",                  "a985ac71-052f-48e6-9c33-d931c813ac92", "", NO_PERSIST);
00583 
00584         
00585         gSavedSettings.declareString("UIImgRadioActiveUUID",                    "7a1ba9b8-1047-4d1e-9cfc-bc478c80b63f", "", NO_PERSIST);
00586         gSavedSettings.declareString("UIImgRadioActiveSelectedUUID",    "52f09e07-5816-4052-953c-94c6c10479b7", "", NO_PERSIST);
00587         gSavedSettings.declareString("UIImgRadioInactiveUUID",                  "90688481-67ff-4af0-be69-4aa084bcad1e", "", NO_PERSIST);
00588         gSavedSettings.declareString("UIImgRadioInactiveSelectedUUID",  "1975db39-aa29-4251-aea0-409ac09d414d", "", NO_PERSIST);
00589 
00590         
00591         gSavedSettings.declareString("UIImgCheckboxActiveUUID",                 "05bb64ee-96fd-4243-b74e-f40a41bc53ba", "", NO_PERSIST);
00592         gSavedSettings.declareString("UIImgCheckboxActiveSelectedUUID", "cf4a2ed7-1533-4686-9dde-df9a37ddca55", "", NO_PERSIST);
00593         gSavedSettings.declareString("UIImgCheckboxInactiveUUID",               "7d94cb59-32a2-49bf-a516-9e5a2045f9d9", "", NO_PERSIST);
00594         gSavedSettings.declareString("UIImgCheckboxInactiveSelectedUUID", "c817c642-9abd-4236-9287-ae0513fe7d2b", "", NO_PERSIST);
00595 
00596         
00597         gSavedSettings.declareString("UIImgBtnTabTopPartialOutUUID",    "932ad585-0e45-4a57-aa23-4cf81beeb7b0", "", NO_PERSIST);
00598         gSavedSettings.declareString("UIImgBtnTabTopPartialInUUID",             "7c6c6c26-0e25-4438-89bd-30d8b8e9d704", "",  NO_PERSIST);
00599         gSavedSettings.declareString("UIImgBtnTabBottomPartialOutUUID", "8dca716c-b29c-403a-9886-91c028357d6e", "", NO_PERSIST);
00600         gSavedSettings.declareString("UIImgBtnTabBottomPartialInUUID",  "eb0b0904-8c91-4f24-b500-1180b91140de", "", NO_PERSIST);
00601         gSavedSettings.declareString("UIImgBtnTabTopOutUUID",                   "1ed83f57-41cf-4052-a3b4-2e8bb78d8191", "", NO_PERSIST);
00602         gSavedSettings.declareString("UIImgBtnTabTopInUUID",                    "16d032e8-817b-4368-8a4e-b7b947ae3889", "", NO_PERSIST);
00603         gSavedSettings.declareString("UIImgBtnTabBottomOutUUID",                "bf0a8779-689b-48c3-bb9a-6af546366ef4", "", NO_PERSIST);
00604         gSavedSettings.declareString("UIImgBtnTabBottomInUUID",                 "c001d8fd-a869-4b6f-86a1-fdcb106df9c7", "", NO_PERSIST);
00605 
00606         
00607         
00608         gSavedSettings.declareString("UIImgGrabUUID",                                   "c63f124c-6340-4fbf-b59e-0869a44adb64", "", NO_PERSIST);
00609         gSavedSettings.declareString("UIImgGrabSelectedUUID",                   "c1e21504-f136-451d-b8e9-929037812f1d", "", NO_PERSIST);
00610 
00611         gSavedSettings.declareString("UIImgMoveUUID",                                   "2fa5dc06-bcdd-4e09-a426-f9f262d4fa65", "", NO_PERSIST);
00612         gSavedSettings.declareString("UIImgMoveSelectedUUID",                   "46f17c7b-8381-48c3-b628-6a406e060dd6", "", NO_PERSIST);
00613 
00614         gSavedSettings.declareString("UIImgRotateUUID",                                 "c34b1eaa-aae3-4351-b082-e26c0b636779", "", NO_PERSIST);
00615         gSavedSettings.declareString("UIImgRotateSelectedUUID",                 "cdfb7fde-0d13-418a-9d89-2bd91019fc95", "", NO_PERSIST);
00616 
00617         gSavedSettings.declareString("UIImgScaleUUID",                                  "88a90fef-b448-4883-9344-ecf378a60433", "", NO_PERSIST);
00618         gSavedSettings.declareString("UIImgScaleSelectedUUID",                  "55aa57ef-508a-47f7-8867-85d21c5a810d", "", NO_PERSIST);
00619 
00620         gSavedSettings.declareString("UIImgFaceUUID",                                   "ce15fd63-b0b6-463c-a37d-ea6393208b3e", "", NO_PERSIST);
00621         gSavedSettings.declareString("UIImgFaceSelectedUUID",                   "b4870163-6208-42a9-9801-93133bf9a6cd", "", NO_PERSIST);
00622 
00623         gSavedSettings.declareString("UIImgFocusUUID",                                  "57bc39d1-288c-4519-aea6-6d1786a5c274", "", NO_PERSIST);
00624         gSavedSettings.declareString("UIImgFocusSelectedUUID",                  "ab6a730e-ddfd-4982-9a32-c6de3de6d31d", "", NO_PERSIST);
00625 
00626         gSavedSettings.declareString("UIImgCreateUUID",                                 "7a0b1bdb-b5d9-4df5-bac2-ba230da93b5b", "", NO_PERSIST);
00627         gSavedSettings.declareString("UIImgCreateSelectedUUID",                 "0098b015-3daf-4cfe-a72f-915369ea97c2", "", NO_PERSIST);
00628 
00629         
00630         gSavedSettings.declareBOOL("ShowCrosshairs",                                    TRUE, "Display crosshairs when in mouselook mode");
00631         gSavedSettings.declareString("UIImgCrosshairsUUID",                             "6e1a3980-bf2d-4274-8970-91e60d85fb52", "Image to use for crosshair display (UUID texture reference)");
00632 
00633         gSavedSettings.declareString("Language",                                                "default", "Language specifier (for XUI)" );
00634         gSavedSettings.declareString("SystemLanguage",                                  "en-us", "Language indicated by system settings (for XUI)" );
00635         
00637         
00638         gSavedSettings.declareBOOL("DebugPermissions",                                  FALSE, "Log permissions for selected inventory items");
00639 
00640         gSavedSettings.declareBOOL("ApplyColorImmediately", TRUE, "Preview selections in color picker immediately");
00641         gSavedSettings.declareBOOL("ApplyTextureImmediately", TRUE, "Preview selections in texture picker immediately");
00642 
00643         gSavedSettings.declareBOOL("CreateToolKeepSelected", FALSE, "After using create tool, keep the create tool active");
00644         gSavedSettings.declareBOOL("CreateToolCopySelection", FALSE, "", NO_PERSIST);
00645         gSavedSettings.declareBOOL("CreateToolCopyCenters", TRUE, "", NO_PERSIST);
00646         gSavedSettings.declareBOOL("CreateToolCopyRotates", FALSE, "", NO_PERSIST);
00647 
00648         gSavedSettings.declareBOOL("QuietSnapshotsToDisk", FALSE, "Take snapshots to disk without playing animation or sound");
00649         gSavedSettings.declareBOOL("DisableCameraConstraints", FALSE, "Disable the normal bounds put on the camera by avatar position");
00650         
00651         
00652         
00653         gSavedSettings.declareBOOL("AutoLogin", FALSE, "Login automatically using last username/password combination");
00654         gSavedSettings.declareBOOL("LoginAsGod", FALSE, "Attempt to login with god powers (Linden accounts only)");
00655         
00656         gSavedSettings.declareBOOL("CameraOffset", FALSE, "Render with camera offset from view frustum (rendering debug)");
00657         
00658         gSavedSettings.declareBOOL("AnimationDebug", FALSE, "Show active animations in a bubble above avatars head");
00659         gSavedSettings.declareBOOL("DisplayAvatarAgentTarget", FALSE, "Show avatar positioning locators (animation debug)");
00660         
00661         gSavedSettings.declareBOOL("DisplayTimecode", FALSE, "Display timecode on screen");
00662         
00663         gSavedSettings.declareBOOL("DisableRendering", FALSE, "Disable GL rendering and GUI (load testing)");
00664         
00665         
00666         gSavedSettings.declareBOOL("VerboseLogs", FALSE, "Display source file and line number for each log item for debugging purposes");
00667         gSavedSettings.declareBOOL("FirstPersonAvatarVisible", FALSE, "Display avatar and attachments below neck while in mouselook");
00668         gSavedSettings.declareBOOL("ShowNearClip", FALSE, "", NO_PERSIST);
00669         gSavedSettings.declareBOOL("DebugWindowProc", FALSE, "Log windows messages");
00670         gSavedSettings.declareBOOL("ShowTangentBasis", FALSE, "Render normal and binormal (debugging bump mapping)");
00671         gSavedSettings.declareBOOL("AnimateTextures", TRUE, "Enable texture animation (debug)");
00672 
00673         
00674         gSavedSettings.declareBOOL("LimitSelectDistance", TRUE, "Disallow selection of objects beyond max select distance");
00675         gSavedSettings.declareF32( "MaxSelectDistance", 64.f, "Maximum allowed selection distance (meters from avatar)");
00676         gSavedSettings.declareBOOL("LimitDragDistance", TRUE, "Limit translation of object via translate tool");
00677         gSavedSettings.declareF32( "MaxDragDistance", 48.f, "Maximum allowed translation distance in a single operation of translate tool (meters from start point)");
00678         gSavedSettings.declareBOOL( "SelectOwnedOnly", FALSE, "Select only objects you own" );
00679         gSavedSettings.declareBOOL( "SelectMovableOnly", FALSE, "Select only objects you can move" );
00680         gSavedSettings.declareBOOL( "RectangleSelectInclusive", TRUE, "Select objects that have at least one vertex inside selection rectangle" );
00681         gSavedSettings.declareBOOL( "RenderHiddenSelections", TRUE, "Show selection lines on objects that are behind other objects" );
00682         gSavedSettings.declareBOOL( "RenderLightRadius", FALSE, "Render the radius of selected lights" );
00683 
00684         gSavedSettings.declareF32("SelectionHighlightThickness", 0.010f, "Thickness of selection highlight line (fraction of view distance)");
00685         gSavedSettings.declareF32("SelectionHighlightUScale", 0.1f, "Scale of texture display on selection highlight line (fraction of texture size)");
00686         gSavedSettings.declareF32("SelectionHighlightVScale", 1.f, "Scale of texture display on selection highlight line (fraction of texture size)");
00687         gSavedSettings.declareF32("SelectionHighlightAlpha", 0.40f, "Opacity of selection highlight (0.0 = completely transparent, 1.0 = completely opaque)" );
00688         gSavedSettings.declareF32("SelectionHighlightAlphaTest", 0.1f, "Alpha value below which pixels are displayed on selection highlight line (0.0 = show all pixels, 1.0 = show now pixels)");
00689         gSavedSettings.declareF32("SelectionHighlightUAnim", 0.f, "Rate at which texture animates along U direction in selection highlight line (fraction of texture per second)");
00690         gSavedSettings.declareF32("SelectionHighlightVAnim", 0.5f, "Rate at which texture animates along V direction in selection highlight line (fraction of texture per second)");
00691 
00692         gSavedSettings.declareBOOL("LogMessages", FALSE, "Log network traffic");
00693         gSavedSettings.declareBOOL("LoggedIn", FALSE, "Login status at end of last session");
00694         gSavedSettings.declareBOOL("MouseSun", FALSE, "", NO_PERSIST);
00695 
00696         gSavedSettings.declareBOOL("ShowAxes", FALSE, "Render coordinate frame at your position");
00697 
00698         gSavedSettings.declareBOOL("ShowMiniMap", TRUE, "Display mini map on login");
00699         gSavedSettings.declareBOOL("ShowWorldMap", FALSE, "Display world map on login");
00700         gSavedSettings.declareBOOL("ShowToolBar", TRUE, "Show toolbar at bottom of screen");
00701         gSavedSettings.declareBOOL("ShowCameraControls", FALSE, "Display camera controls on login");
00702         gSavedSettings.declareBOOL("ShowMovementControls", FALSE, "Display movement controls on login");
00703 
00704         gSavedSettings.declareBOOL("ShowWebBrowser", FALSE, "Show in-world web browser");
00705 
00706         gSavedSettings.declareBOOL("ShowLeaders", FALSE, "", NO_PERSIST);
00707         gSavedSettings.declareBOOL("ShowDirectory", FALSE, "", NO_PERSIST);
00708 
00709         gSavedSettings.declareBOOL("AutoLoadWebProfiles", FALSE, "Automatically load ALL profile webpages without asking first.");
00710 
00711         gSavedSettings.declareBOOL("ShowCommunicate", FALSE, "", NO_PERSIST);
00712         gSavedSettings.declareBOOL("ShowChatHistory", FALSE, "", NO_PERSIST);
00713 
00714 #ifdef LL_RELEASE_FOR_DOWNLOAD
00715         gSavedSettings.declareBOOL("ShowConsoleWindow", FALSE, "Show log in separate OS window");
00716 #else
00717         gSavedSettings.declareBOOL("ShowConsoleWindow", TRUE, "Show log in separate OS window");
00718 #endif
00719 
00720         
00721 
00722         gSavedSettings.addWarning("AboutDirectX9");
00723         gSavedSettings.addWarning("AboutBadPCI");
00724         gSavedSettings.addWarning("AboutOldGraphicsDriver");
00725         gSavedSettings.addWarning("AboutPCIGraphics");
00726         gSavedSettings.addWarning("ReturnToOwner");
00727         gSavedSettings.addWarning("QuickTimeInstalled");
00728         gSavedSettings.addWarning("BrowserLaunch");
00729         gSavedSettings.addWarning("DeedObject");
00730         gSavedSettings.addWarning("NewClassified");
00731 
00732         
00733         
00734         LLFirstUse::addConfigVariable("FirstBalanceIncrease");
00735         LLFirstUse::addConfigVariable("FirstBalanceDecrease");
00736         LLFirstUse::addConfigVariable("FirstSit");
00737         LLFirstUse::addConfigVariable("FirstMap");
00738         LLFirstUse::addConfigVariable("FirstGoTo");
00739         LLFirstUse::addConfigVariable("FirstBuild");
00740         LLFirstUse::addConfigVariable("FirstLeftClickNoHit");
00741         LLFirstUse::addConfigVariable("FirstTeleport");
00742         LLFirstUse::addConfigVariable("FirstOverrideKeys");
00743         LLFirstUse::addConfigVariable("FirstAttach");
00744         LLFirstUse::addConfigVariable("FirstAppearance");
00745         LLFirstUse::addConfigVariable("FirstInventory");
00746         LLFirstUse::addConfigVariable("FirstSandbox");
00747         LLFirstUse::addConfigVariable("FirstFlexible");
00748         LLFirstUse::addConfigVariable("FirstDebugMenus");
00749         LLFirstUse::addConfigVariable("FirstStreamingMusic");
00750         LLFirstUse::addConfigVariable("FirstStreamingVideo");
00751         LLFirstUse::addConfigVariable("FirstSculptedPrim");
00752         LLFirstUse::addConfigVariable("FirstVoice");
00753 
00754         gSavedSettings.declareBOOL("ShowDebugConsole", FALSE, "Show log in SL window");
00755         gSavedSettings.declareBOOL("ShowDebugStats", FALSE, "Show performance stats display");
00756         gSavedSettings.declareBOOL("OpenDebugStatBasic", TRUE, "Expand basic performance stats display");
00757         gSavedSettings.declareBOOL("OpenDebugStatAdvanced", FALSE, "Expand advanced performance stats display");
00758         gSavedSettings.declareBOOL("OpenDebugStatNet", TRUE, "Expand network stats display");
00759         gSavedSettings.declareBOOL("OpenDebugStatRender", TRUE, "Expand render stats display");
00760         gSavedSettings.declareBOOL("OpenDebugStatSim", TRUE, "Expand simulator performance stats display");
00761         gSavedSettings.declareBOOL("ShowDepthBuffer", FALSE, "Show depth buffer contents");
00762 
00763         gSavedSettings.declareBOOL("DebugShowTime", FALSE, "Show depth buffer contents");
00764         gSavedSettings.declareBOOL("DebugShowRenderInfo", FALSE, "Show depth buffer contents");
00765         
00766 
00767         
00768         
00769         
00770 
00771         
00772         
00773         
00774         gSavedSettings.declareBOOL("ShowObjectUpdates", FALSE, "Show when update messages are received for individual objects");
00775         
00776         
00777 
00778         
00779         
00780         gSavedSettings.declareBOOL("SpeedTest", FALSE, "Performance testing mode, no network");
00781         
00782         gSavedSettings.declareBOOL("UseEnergy", TRUE, "", NO_PERSIST);
00783 
00784         
00785         
00786         gSavedSettings.declareBOOL("VelocityInterpolate", TRUE, "Extrapolate object motion from last packet based on received velocity");
00787         gSavedSettings.declareBOOL("PingInterpolate", FALSE, "Extrapolate object position along velocity vector based on ping delay");
00788         gSavedSettings.declareBOOL("AvatarBacklight", TRUE, "Add rim lighting to avatar rendering to approximate shininess of skin");
00789 
00790         
00791         gSavedSettings.declareF32("PrecachingDelay", 6.f, "Delay when logging in to load world before showing it (seconds)");   
00792 
00793         
00794         gSavedSettings.declareF32("RenderGamma",                                0.f, "Sets gamma exponent for renderer");
00795         gSavedSettings.declareF32( "RenderNightBrightness",             1.0f, "Brightness multiplier for moon during nighttime" );
00796         gSavedSettings.declareBOOL("RenderWater",                               TRUE, "Display water" );
00797         gSavedSettings.declareF32( "RenderFarClip",                             256.f, "Distance of far clip plane from camera (meters)" );
00798         gSavedSettings.declareF32( "RenderFogRatio",                    2.0f, "Distance from camera where fog reaches maximum density (fraction or multiple of far clip distance)");
00799         gSavedSettings.declareBOOL("RenderAnisotropic",                 FALSE, "Render textures using anisotropic filtering" );
00800         gSavedSettings.declareBOOL("ShowXUINames",                          FALSE, "Display XUI Names as Tooltips" );
00801         gSavedSettings.declareS32("RenderLightingDetail",               1, "Amount of detail for lighting objects/avatars/terrain (0=sun/moon only, 1=enable local lights)" );
00802         gSavedSettings.declareS32("RenderTerrainDetail",                2, "Detail applied to terrain texturing (0 = none, 1 or 2 = full)" );
00803         gSavedSettings.declareF32( "RenderVolumeLODFactor",             1.f, "Controls level of detail of primitives (multiplier for current screen area when calculated level of detail)" );
00804         gSavedSettings.declareF32( "RenderFlexTimeFactor",              1.f, "Controls level of detail of flexible objects (multiplier for amount of time spent processing flex objects)" );
00805         gSavedSettings.declareF32( "RenderTreeLODFactor",               0.5f, "Controls level of detail of vegetatopm (multiplier for current screen area when calculated level of detail)" );
00806         gSavedSettings.declareF32( "RenderAvatarLODFactor",             0.5f, "Controls level of detail of avatars (multiplier for current screen area when calculated level of detail)" );
00807         gSavedSettings.declareF32( "RenderBumpmapMinDistanceSquared", 100.f, "Maximum distance at which to render bumpmapped primitives (distance in meters, squared)" );
00808         gSavedSettings.declareS32( "RenderMaxPartCount",                4096, "Maximum number of particles to display on screen");
00809         gSavedSettings.declareBOOL("RenderVBOEnable",                   TRUE, "Use GL Vertex Buffer Objects" );
00810         gSavedSettings.declareS32("RenderReflectionRes",                64, "Reflection map resolution.");
00811         
00812         
00813         gSavedSettings.declareF32("RenderTerrainScale",                 12.f, "Terrain detail texture scale");
00814         gSavedSettings.declareBOOL("VertexShaderEnable",                FALSE, "Enable/disable all GLSL shaders (debug)");
00815         gSavedSettings.declareBOOL("RenderInitError",                   FALSE, "Error occured while initializing GL");
00816         gSavedSettings.declareBOOL("RenderRippleWater",                 FALSE, "Display more realistic water, with refraction (requires pixel shader support on your video card)");
00817         gSavedSettings.declareBOOL("RenderDynamicReflections",  FALSE, "Generate a dynamic cube map for reflections (objects reflect their environment, experimental).");
00818         gSavedSettings.declareBOOL("RenderGlow",                                FALSE, "Make light sources glow.");
00819         gSavedSettings.declareF32("RenderGlowStrength",                 1.25f, "Strength of glow");
00820         gSavedSettings.declareS32("RenderGlowSize",                             5, "Size of glow (in pixels)");
00821         gSavedSettings.declareS32("RenderGlowResolution",               256, "Glow map resolution.");
00822         gSavedSettings.declareBOOL("RenderObjectBump",                  TRUE, "Show bumpmapping on primitives");
00823         gSavedSettings.declareS32("RenderAvatarMode",                   1, "Controls how avatars are rendered (0 = normal, 1 = bump mapped, 2 = bump mapped and wavy cloth)");
00824         gSavedSettings.declareBOOL("RenderAvatarVP",                    TRUE, "Use vertex programs to perform hardware skinning of avatar");
00825         gSavedSettings.declareS32("RenderAvatarMaxVisible",             35, "Maximum number of avatars to display at any one time");
00826         
00827         gSavedSettings.declareBOOL("RenderFastUI",                              FALSE, "[NOT USED]");
00828         gSavedSettings.declareBOOL("RenderUseSharedDrawables",  TRUE, "Collapse transforms on moving linked objects for faster updates");
00829         gSavedSettings.declareS32("DebugBeaconLineWidth", 1, "Size of lines for Debug Beacons");
00830 
00831         
00832         gSavedSettings.declareBOOL("RenderUIInSnapshot",                FALSE, "Display user interface in snapshot" );
00833         gSavedSettings.declareBOOL("RenderHUDInSnapshot",               FALSE, "Display HUD attachments in snapshot" );
00834         gSavedSettings.declareBOOL("HighResSnapshot",                   FALSE, "Double resolution of snapshot from current window resolution" );
00835         gSavedSettings.declareBOOL("CompressSnapshotsToDisk",   FALSE, "Compress snapshots saved to disk (Using JPEG 2000)" );
00836         gSavedSettings.declareBOOL("FreezeTime",                                FALSE, "", FALSE );
00837         gSavedSettings.declareBOOL("UseFreezeFrame",                    FALSE, "Freeze time when taking snapshots.");
00838         gSavedSettings.declareBOOL("CloseSnapshotOnKeep",               TRUE, "Close snapshot window after saving snapshot" );
00839         gSavedSettings.declareBOOL("KeepAspectForSnapshot",             FALSE, "Use full window when taking snapshot, regardless of requested image size" );
00840         gSavedSettings.declareBOOL("AutoSnapshot",                              TRUE, "Update snapshot when camera stops moving, or any parameter changes" );
00841         gSavedSettings.declareS32("LastSnapshotType",                   0, "Select this as next type of snapshot to take (0 = postcard, 1 = texture, 2 = local image)" );
00842         gSavedSettings.declareS32("LastSnapshotWidth",                  1024, "The width of the last snapshot, in px" );
00843         gSavedSettings.declareS32("LastSnapshotHeight",                 768, "The height of the last snapshot, in px" );
00844         
00845         gSavedSettings.declareS32("SnapshotPostcardLastResolution",     0, "Take next postcard snapshot at this resolution" );
00846         gSavedSettings.declareS32("SnapshotTextureLastResolution",      0, "Take next texture snapshot at this resolution" );
00847         gSavedSettings.declareS32("SnapshotLocalLastResolution",        0, "Take next local snapshot at this resolution" );
00848         gSavedSettings.declareS32("SnapshotQuality",                    75, "Quality setting of postcard JPEGs (0 = worst, 100 = best)" );
00849 
00850         gSavedSettings.declareBOOL("DisableVerticalSync",               TRUE, "Update frames as fast as possible (FALSE = update frames between display scans)" );
00851 
00852         
00853         gSavedSettings.declareBOOL("StatsAutoRun", FALSE, "Play back autopilot");
00854         gSavedSettings.declareS32("StatsNumRuns", -1, "Loop autopilot playback this number of times");
00855         
00856         gSavedSettings.declareBOOL("StatsQuitAfterRuns", FALSE, "Quit application after this number of autopilot playback runs");
00857         gSavedSettings.declareBOOL("StatsSessionTrackFrameStats", FALSE, "Track rendering and network statistics");
00858         gSavedSettings.declareString("StatsPilotFile", "pilot.txt", "Filename for stats logging autopilot path");
00859         gSavedSettings.declareString("StatsSummaryFile", "fss.txt", "Filename for stats logging summary");
00860         gSavedSettings.declareString("StatsFile", "fs.txt", "Filename for stats logging output");
00861 
00862         
00863         gSavedSettings.declareS32("GraphicsCardMemorySetting", -1, "Amount of memory on your video card (-1 = autodetect, 0 = 16MB, 1 = 32MB, 2 = 64MB, 3 = 128MB, 4 = 256MB, 5 = 512MB)"); 
00864         
00865         
00866         
00867         gSavedSettings.declareBOOL("ImagePipelineUseHTTP", FALSE, "If TRUE use HTTP GET to fetch textures from the server");
00868 
00869         
00870         gSavedSettings.declareBOOL("LosslessJ2CUpload", FALSE, "Use lossless compression for small image uploads");
00871         
00872         
00873         gSavedSettings.declareBOOL("RunMultipleThreads", FALSE, "If TRUE keep background threads active during render");
00874 
00875         
00876         gSavedSettings.declareS32("BackgroundYieldTime", 40, "Amount of time to yield every frame to other applications when SL is not the foreground window (milliseconds)");
00877 
00878         
00879         gSavedSettings.declareBOOL("AutoPilotLocksCamera", FALSE, "Keep camera position locked when avatar walks to selected position");
00880         
00881         
00882         gSavedSettings.declareF32("DynamicCameraStrength", 2.f, "Amount camera lags behind avatar motion (0 = none, 30 = avatar velocity)");
00883 
00884         gSavedSettings.declareVec3("CameraOffsetBuild",         LLVector3(-6.0f,  0,  6.0f), "Default camera position relative to focus point when entering build mode");
00885         gSavedSettings.declareVec3("CameraOffsetDefault",       LLVector3(-3.0f,  0,  0.75f), "Default camera offset from avatar");
00886         
00887 
00888         
00889         gSavedSettings.declareVec3("FocusOffsetDefault",        LLVector3(1,  0,  1), "Default focus point offset relative to avatar (x-axis is forward)");
00890         gSavedSettings.declareBOOL("TrackFocusObject", TRUE, "Camera tracks last object zoomed on");
00891 
00892         gSavedSettings.declareVec3d("FocusPosOnLogout",         LLVector3d(0,  0,  0), "Camera focus point when last logged out (global coordinates)");
00893         gSavedSettings.declareVec3d("CameraPosOnLogout",        LLVector3d(0,  0,  0), "Camera position when last logged out (global coordinates)");
00894 
00895         
00896         
00897         
00898         gSavedSettings.declareF32("TerrainColorStartHeight", 20.f, "Starting altitude for terrain texturing (meters)"); 
00899         gSavedSettings.declareF32("TerrainColorHeightRange", 60.f, "Altitude range over which a given terrain texture has effect (meters)");    
00900 
00901         
00902         gSavedSettings.declareF32("PitchFromMousePosition", 90.f, "Vertical range over which avatar head tracks mouse position (degrees of head rotation from top of window to bottom)");
00903         gSavedSettings.declareF32("YawFromMousePosition", 90.f, "Horizontal range over which avatar head tracks mouse position (degrees of head rotation from left of window to right)");
00904         gSavedSettings.declareF32("ZoomTime", 0.4f, "Time of transition between different camera modes (seconds)");
00905         gSavedSettings.declareS32("AvatarCompositeLimit", 5, "Maximum number of avatars to display appearance changes on the fly");
00906 
00907         
00908         
00909         
00910         gSavedSettings.declareF32("ThrottleBandwidthKBPS", 500.f, "Maximum allowable downstream bandwidth (kilo bits per second)");
00911 
00912         gSavedSettings.declareBOOL("ConnectionPortEnabled", FALSE, "Use the custom connection port?");
00913         gSavedSettings.declareU32("ConnectionPort", 13000, "Custom connection port number");
00914 
00915         
00916         gSavedSettings.declareF32("XferThrottle", 150000.f, "Maximum allowable downstream bandwidth for asset transfers (bits per second)");
00917 
00918         
00919 
00920         gSavedSettings.declareRect("ChatterboxRect", LLRect(0, 400, 350, 0), "Rectangle for chatterbox window");
00921         gSavedSettings.declareRect("FloaterActiveSpeakersRect", LLRect(0, 300, 250, 0), "Rectangle for active speakers window");
00922 
00923         
00924         gSavedSettings.declareRect("FloaterCustomizeAppearanceRect", LLRect(0, 540, 494, 0), "Rectangle for avatar customization window");
00925 
00926         
00927         gSavedSettings.declareRect("FloaterBuildOptionsRect", LLRect(0,0,0,0), "Rectangle for build options window.");
00928         
00929         gSavedSettings.declareRect("FloaterJoystickRect", LLRect(0,0,0,0), "Rectangle for joystick controls window.");
00930 
00931         
00932         gSavedSettings.declareRect("FloaterMapRect", LLRect(0, 225, 200, 0), "Rectangle for world map");
00933 
00934         
00935         gSavedSettings.declareRect("FloaterLagMeter", LLRect(0, 142, 350, 0), "Rectangle for lag meter");
00936         gSavedSettings.declareBOOL("LagMeterShrunk", FALSE, "Last large/small state for lag meter");
00937 
00938         gSavedSettings.declareF32("MapScale", 128.f, "World map zoom level (pixels per region)");
00939 
00940         gSavedSettings.declareF32("MiniMapScale", 128.f, "Miniature world map zoom levle (pixels per region)");
00941 
00942         gSavedSettings.declareBOOL("MiniMapRotate",     TRUE, "Rotate miniature world map to avatar direction");
00943 
00944         gSavedSettings.declareString("UIImgBtnPanUpOutUUID",    "47a8c844-cd2a-4b1a-be01-df8b1612fe5d", "", NO_PERSIST);
00945         gSavedSettings.declareString("UIImgBtnPanUpInUUID",             "e5821134-23c0-4bd0-af06-7fa95b9fb01a", "", NO_PERSIST);
00946         gSavedSettings.declareString("UIImgBtnPanDownOutUUID",  "47a8c844-cd2a-4b1a-be01-df8b1612fe5d", "", NO_PERSIST);
00947         gSavedSettings.declareString("UIImgBtnPanDownInUUID",   "e5821134-23c0-4bd0-af06-7fa95b9fb01a", "", NO_PERSIST);
00948         gSavedSettings.declareString("UIImgBtnPanLeftOutUUID",  "47a8c844-cd2a-4b1a-be01-df8b1612fe5d", "", NO_PERSIST);
00949         gSavedSettings.declareString("UIImgBtnPanLeftInUUID",   "e5821134-23c0-4bd0-af06-7fa95b9fb01a", "", NO_PERSIST);
00950         gSavedSettings.declareString("UIImgBtnPanRightOutUUID", "47a8c844-cd2a-4b1a-be01-df8b1612fe5d", "", NO_PERSIST);
00951         gSavedSettings.declareString("UIImgBtnPanRightInUUID",  "e5821134-23c0-4bd0-af06-7fa95b9fb01a", "", NO_PERSIST);
00952 
00953         
00954         gSavedSettings.declareRect("FloaterIMRect",                             LLRect(0, 10*16, 500, 0), "Rectangle for IM window");
00955 
00956         
00957         
00958         
00959         gSavedSettings.declareRect("FloaterChatRect",                   LLRect( 0, 10*16 + 12, 500, 0 ), "Rectangle for chat history");
00960         gSavedSettings.declareRect("FloaterMuteRect3",                  LLRect( 0, 300, 300, 0), "Rectangle for mute window");
00961         gSavedPerAccountSettings.declareString("BusyModeResponse",              "The Resident you messaged is in 'busy mode' which means they have requested not to be disturbed.  Your message will still be shown in their IM panel for later viewing.", "Auto response to instant messages while in busy mode.");
00962         gSavedPerAccountSettings.declareString("InstantMessageLogPath", "", "Path to your log files.");
00963         gSavedPerAccountSettings.declareBOOL("LogInstantMessages",      FALSE, "Log Instant Messages");
00964         gSavedPerAccountSettings.declareBOOL("LogChat", FALSE, "Log Chat");
00965         gSavedPerAccountSettings.declareBOOL("LogShowHistory",  FALSE, "Log Show History");
00966         gSavedPerAccountSettings.declareBOOL("IMLogTimestamp",  FALSE, "Log Timestamp of Instant Messages");
00967         gSavedPerAccountSettings.declareBOOL("LogChatTimestamp",        FALSE, "Log Timestamp of Chat");
00968         gSavedPerAccountSettings.declareBOOL("LogChatIM",       FALSE, "Log Incoming Instant Messages with Chat");
00969         gSavedPerAccountSettings.declareBOOL("LogTimestampDate",        FALSE, "Include Date with Timestamp");
00970 
00971         
00972         gSavedSettings.declareRect("FloaterInventoryRect", LLRect(0, 400, 300, 0), "Rectangle for inventory window" );
00973 
00974         
00975         gSavedSettings.declareRect("PropertiesRect", LLRect(0, 320, 350, 0), "Rectangle for inventory item properties window");
00976 
00977         
00978         gSavedSettings.declareRect("PreviewTextureRect",                        LLRect(0, 400, 400, 0), "Rectangle for texture preview window" );  
00979         gSavedSettings.declareRect("PreviewScriptRect",                         LLRect(0, 550, 500, 0), "Rectangle for script preview window" );  
00980         gSavedSettings.declareRect("LSLHelpRect",                                       LLRect(0, 400, 400, 0), "Rectangle for LSL help window" );  
00981         gSavedSettings.declareRect("PreviewLandmarkRect",                       LLRect(0,  90, 300, 0), "Rectangle for landmark preview window" );  
00982         gSavedSettings.declareRect("PreviewURLRect",                            LLRect(0,  90, 300, 0), "Rectangle for URL preview window" );  
00983         gSavedSettings.declareRect("PreviewEventRect",                          LLRect(0, 530, 420, 0), "Rectangle for Event preview window" );  
00984         gSavedSettings.declareRect("PreviewClassifiedRect",                     LLRect(0, 530, 420, 0), "Rectangle for URL preview window" );  
00985         gSavedSettings.declareRect("PreviewSoundRect",                          LLRect(0,  85, 300, 0), "Rectangle for sound preview window" );  
00986         gSavedSettings.declareRect("PreviewObjectRect",                         LLRect(0,  85, 300, 0), "Rectangle for object preview window" );  
00987         gSavedSettings.declareRect("PreviewWearableRect",                       LLRect(0,  85, 300, 0), "Rectangle for wearable preview window" );  
00988         gSavedSettings.declareRect("PreviewAnimRect",                           LLRect(0,  85, 300, 0), "Rectangle for animation preview window" );  
00989         
00990         gSavedSettings.declareRect("PermissionsManagerRect",            LLRect(0,  85, 300, 0), "Rectangle for permissions manager window" );  
00991 
00992         
00993         
00994         
00995         gSavedSettings.declareRect("FloaterLandRect5", LLRect(0, 370, 460, 0), "Rectangle for About Land window");
00996 
00997         
00998         gSavedSettings.declareRect("TexturePickerRect",                         LLRect(0, 290, 350, 0), "Rectangle for texture picker" );  
00999         gSavedSettings.declareBOOL("TexturePickerShowFolders", TRUE, "Show folders with no texures in texture picker");
01000 
01001         gSavedSettings.declareRect("FloaterGestureRect", LLRect(0, 480, 320, 0), "Rectangle for gestures window");
01002         gSavedSettings.declareRect("FloaterClothingRect", LLRect(0, 480, 320, 0), "Rectangle for clothing window");
01003         gSavedSettings.declareBOOL("ClothingBtnState", FALSE, "", NO_PERSIST);
01004         gSavedSettings.declareRect("FloaterHTMLRect", LLRect(0, 500, 700, 0), "Rectangle for HTML window");
01005 
01006         gSavedSettings.declareRect("FloaterRegionInfo", LLRect(0, 512, 480, 0), "Rectangle for region info window");
01007 
01008         
01009         gSavedSettings.declareRect("FloaterLandmarkRect", LLRect(0, 290, 310, 0), "Rectangle for landmark picker" );  
01010 
01011         
01012         
01013         gSavedSettings.declareRect("NotecardEditorRect", LLRect(0, 400, 400, 0), "Rectangle for notecard editor");
01014 
01015         
01016         gSavedSettings.declareRect("CompileOutputRect", LLRect(0, 400, 300, 0), "Rectangle for script Recompile Everything output window");
01017 
01018         
01019         gSavedSettings.declareRect("FloaterPayRectB", LLRect(0, 150, 400, 0), "Rectangle for pay window");
01020 
01021         
01022         gSavedSettings.declareRect("FloaterBuyRect", LLRect(0, 250, 300, 0), "Rectangle for buy window");
01023 
01024         
01025         gSavedSettings.declareRect("FloaterBuyContentsRect", LLRect(0, 250, 300, 0), "Rectangle for Buy Contents window");
01026 
01027         
01028         gSavedSettings.declareRect("FloaterOpenObjectRect", LLRect(0, 350, 300, 0), "Rectangle for Open Object window");
01029 
01030         
01031         gSavedSettings.declareRect("FloaterAboutRect", LLRect(0, 440, 470, 0), "Rectangle for About window");
01032 
01033         
01034         gSavedSettings.declareRect("FloaterBumpRect", LLRect(0, 180, 400, 0), "Rectangle for Bumps/Hits window");
01035 
01036         
01037         gSavedSettings.declareRect("FloaterInspectRect", LLRect(0, 400, 400, 0), "Rectangle for Object Inspect window");
01038 
01039         
01040         gSavedSettings.declareRect("FloaterWorldMapRect",
01041                                                                 LLRect(0,0,0,0), "Rectangle for world map window");
01042 
01043         
01044         gSavedSettings.declareRect("FloaterFindRect2", LLRect(0, 570, 780, 0), "Rectangle for Find window");
01045 
01046         
01047         
01048         
01049         gSavedSettings.declareRect("FloaterScriptDebugRect", LLRect(0, 130, 450, 0), "Rectangle for Script Error/Debug window");
01050 
01051         
01052         gSavedSettings.declareS32("ConsoleBufferSize",  40, "Size of chat console history (lines of chat)");
01053 
01054         
01055 
01056         
01057         
01058 
01059         
01060         gSavedSettings.declareRect("FloaterAudioVolumeRect", LLRect(0, 440, 470, 0), "Rectangle for Audio Volume window");
01061         
01062         
01063         gSavedSettings.declareU32("AvatarSex", 0, "", NO_PERSIST);
01064 
01065         
01066         gSavedSettings.declareS32("RadioLandBrushAction", 0, "Last selected land modification operation (0 = flatten, 1 = raise, 2 = lower, 3 = smooth, 4 = roughen, 5 = revert)");
01067         gSavedSettings.declareS32("RadioLandBrushSize", 0, "Size of land modification brush (0 = small, 1 = medium, 2 = large)");
01068 
01069         
01070         gSavedSettings.declareBOOL("SnapEnabled", TRUE, "Enable snapping to grid");
01071         gSavedSettings.declareBOOL("SnapToMouseCursor", FALSE, "When snapping to grid, center object on nearest grid point to mouse cursor");
01072         gSavedSettings.declareF32 ("GridResolution", 0.5f, "Size of single grid step (meters)");
01073         gSavedSettings.declareF32 ("GridDrawSize", 12.0f, "Visible extent of 2D snap grid (meters)");
01074         gSavedSettings.declareBOOL("GridSubUnit", FALSE, "Display fractional grid steps, relative to grid size");
01075         gSavedSettings.declareF32("GridOpacity", 0.7f, "Grid line opacity (0.0 = completely transparent, 1.0 = completely opaque)");
01076         gSavedSettings.declareBOOL("GridCrossSections", FALSE, "Highlight cross sections of prims with grid manipulation plane.");
01077         
01078         gSavedSettings.declareS32("GridMode", 0, "Snap grid reference frame (0 = world, 1 = local, 2 = reference object)");
01079         
01080         gSavedSettings.declareS32("GridSubdivision", 32, "Maximum number of times to divide single snap grid unit when GridSubUnit is true");
01081         gSavedSettings.declareF32 ("RotationStep", 1.0f, "All rotations via rotation tool are constrained to multiples of this unit (degrees)");
01082 
01083         
01084         gSavedSettings.declareBOOL("WindowMaximized", TRUE, "SL viewer window maximized on login");
01085         gSavedSettings.declareS32("WindowHeight", WINDOW_HEIGHT, "SL viewer window height");
01086         gSavedSettings.declareS32("WindowWidth", WINDOW_WIDTH, "SL viewer window width");
01087         gSavedSettings.declareS32("WindowX", 10, "X coordinate of lower left corner of SL viewer window, relative to primary display (pixels)");
01088         gSavedSettings.declareS32("WindowY", 10, "Y coordinate of lower left corner of SL viewer window, relative to primary display (pixels)");
01089 
01090         
01091         gSavedSettings.declareBOOL("FullScreen", FALSE, "Run SL in fullscreen mode");
01092 
01093 
01094 
01095 
01096 
01097 
01098         
01099         gSavedSettings.declareS32("FullScreenWidth", 1024, "Fullscreen resolution in width");
01100         gSavedSettings.declareS32("FullScreenHeight", 768, "Fullscreen resolution in height");
01101         gSavedSettings.declareF32("FullScreenAspectRatio", 1.3333f, "Aspect ratio of fullscreen display (width / height)");
01102         gSavedSettings.declareBOOL("FullScreenAutoDetectAspectRatio", TRUE, "Automatically detect proper aspect ratio for fullscreen display");
01103         
01104         
01105         gSavedSettings.declareBOOL("TabToTextFieldsOnly", FALSE, "TAB key takes you to next text entry field, instead of next widget");
01106         gSavedSettings.declareF32("UIScaleFactor", 1.f, "Size of UI relative to default layout on 1024x768 screen");
01107         gSavedSettings.declareBOOL("UIAutoScale", TRUE, "Keep UI scale consistent across different resolutions");
01108         
01109         
01110         gSavedSettings.declareString("FirstName", "", "Login first name");
01111         gSavedSettings.declareString("LastName", "", "Login last name");
01112     gSavedPerAccountSettings.declareU32("LastLogoff", 0, "Last logoff");
01113 
01114         
01115         gSavedSettings.declareString("Marker", "", "[NOT USED]");
01116 
01117         gSavedSettings.declareBOOL("RememberPassword", TRUE, "Keep password (in encrypted form) for next login");
01118         gSavedSettings.declareBOOL("LoginLastLocation", TRUE, "Login at same location you last logged out");
01119         gSavedSettings.declareBOOL("ShowStartLocation", FALSE, "Display starting location menu on login screen");
01120         gSavedSettings.declareBOOL("FlyingAtExit", FALSE, "Was flying when last logged out, so fly when logging in");
01121 
01122 
01123         gSavedSettings.declareU32("RegionTextureSize", 256, "Terrain texture dimensions (power of 2)");
01124 
01125         
01126         gSavedSettings.declareBOOL("EditLinkedParts", FALSE, "Select individual parts of linked objects", NO_PERSIST);
01127 
01128         
01129         gSavedSettings.declareBOOL("ShowSelectionBeam", TRUE, "Show selection particle beam when selecting or interacting with objects.");
01130         
01131         
01132         gSavedSettings.declareBOOL("ScaleUniform", FALSE, "Scale selected objects evenly about center of selection");
01133         gSavedSettings.declareBOOL("ScaleShowAxes", FALSE, "Show indicator of selected scale axis when scaling");
01134         gSavedSettings.declareBOOL("ScaleStretchTextures", TRUE, "Stretch textures along with object when scaling");
01135 
01136         
01137         
01138         
01139         gSavedSettings.declareString("HelpHomeURL", "help/index.html", "URL of initial help page");
01140         gSavedSettings.declareString("HelpLastVisitedURL", "help/index.html", "URL of last help page, will be shown next time help is accessed");
01141 
01142         
01143         gSavedSettings.declareRect("HtmlFloaterRect", LLRect(100,460,370,100), "Rectangle for HTML Floater window");
01144 
01145         
01146         gSavedSettings.declareRect("HtmlReleaseMessage", LLRect(46,520,400,128), "Rectangle for HTML Release Message Floater window");
01147         
01148         
01149         
01150         gSavedSettings.declareString("HtmlHelpLastPage", "", "Last URL visited via help system");
01151         gSavedSettings.declareRect("HtmlHelpRect", LLRect(16,650,600,128), "Rectangle for HTML help window");
01152         gSavedSettings.declareRect("HtmlFindRect", LLRect(16,650,600,128), "Rectangle for HTML find window");
01153 
01154         
01155         gSavedSettings.declareF32("AudioLevelMaster", 1.0f, "Master audio level, or overall volume");
01156         gSavedSettings.declareF32("AudioLevelSFX",        1.0f, "Audio level of in-world sound effects");
01157         gSavedSettings.declareF32("AudioLevelAmbient",0.5f, "Audio level of environment sounds");
01158         gSavedSettings.declareF32("AudioLevelUI",        0.5f, "Audio level of UI sound effects");
01159         gSavedSettings.declareF32("AudioLevelMusic", 1.0f, "Audio level of streaming music");
01160         gSavedSettings.declareF32("AudioLevelVoice", 1.0f, "Audio level of voice chat");
01161         gSavedSettings.declareF32("AudioLevelMedia", 1.0f, "Audio level of Quicktime movies");
01162         gSavedSettings.declareF32("AudioLevelMic", 1.0f, "Audio level of microphone input");
01163 
01164 
01165 
01166         gSavedSettings.declareF32("AudioLevelDistance", 1.0f, "Scale factor for audio engine (multiple of world scale, 2.0 = audio falls off twice as fast)");
01167         gSavedSettings.declareF32("AudioLevelDoppler", 1.0f, "Scale of doppler effect on moving audio sources (1.0 = normal, <1.0 = diminished doppler effect, >1.0 = enhanced doppler effect)");
01168         gSavedSettings.declareF32("AudioLevelRolloff", 1.0f, "Controls the distance-based dropoff of audio volume (fraction or multiple of default audio rolloff)");
01169 
01170         gSavedSettings.declareS32("AudioDefaultBitrate", 64, "Data streaming rate of uploaded audio samples (thousands of bits per second)");
01171         gSavedSettings.declareBOOL("AudioStreamingMusic", FALSE, "Enable streaming audio");
01172         gSavedSettings.declareBOOL("AudioStreamingVideo", FALSE, "Enable streaming video");
01173 
01174         
01175 
01176         gSavedSettings.declareBOOL("UISndDebugSpamToggle", FALSE, "Log UI sound effects as they are played");
01177 
01178         gSavedSettings.declareF32("UISndHealthReductionThreshold", 10.f, "Amount of health reduction required to trigger \"pain\" sound");
01179         gSavedSettings.declareF32("UISndMoneyChangeThreshold", 50.f, "Amount of change in L$ balance required to trigger \"money\" sound");
01180 
01181         gSavedSettings.declareString("UISndAlert",                      "ed124764-705d-d497-167a-182cd9fa2e6c", "Sound file for alerts (uuid for sound asset)");
01182         
01183         gSavedSettings.declareString("UISndBadKeystroke",       "2ca849ba-2885-4bc3-90ef-d4987a5b983a", "Sound file for invalid keystroke (uuid for sound asset)");
01184         
01185         gSavedSettings.declareString("UISndClick",                      "4c8c3c77-de8d-bde2-b9b8-32635e0fd4a6", "Sound file for mouse click (uuid for sound asset)");
01186         gSavedSettings.declareString("UISndClickRelease",       "4c8c3c77-de8d-bde2-b9b8-32635e0fd4a6", "Sound file for mouse button release (uuid for sound asset)");
01187 
01188         gSavedSettings.declareString("UISndHealthReductionF",   "219c5d93-6c09-31c5-fb3f-c5fe7495c115", "Sound file for female pain (uuid for sound asset)");
01189         gSavedSettings.declareString("UISndHealthReductionM",   "e057c244-5768-1056-c37e-1537454eeb62", "Sound file for male pain (uuid for sound asset)");
01190         
01191         
01192         
01193         gSavedSettings.declareString("UISndInvalidOp",          "4174f859-0d3d-c517-c424-72923dc21f65", "Sound file for invalid operations (uuid for sound asset)");
01194         
01195         gSavedSettings.declareString("UISndMoneyChangeDown",    "104974e3-dfda-428b-99ee-b0d4e748d3a3", "Sound file for L$ balance increase (uuid for sound asset)");
01196         gSavedSettings.declareString("UISndMoneyChangeUp",      "77a018af-098e-c037-51a6-178f05877c6f", "Sound file for L$ balance decrease(uuid for sound asset)");
01197         gSavedSettings.declareString("UISndNewIncomingIMSession",     "67cc2844-00f3-2b3c-b991-6418d01e1bb7", "Sound file for new instant message session(uuid for sound asset)");
01198         
01199         gSavedSettings.declareString("UISndObjectCreate",               "f4a0660f-5446-dea2-80b7-6482a082803c", "Sound file for object creation (uuid for sound asset)");
01200         gSavedSettings.declareString("UISndObjectDelete",               "0cb7b00a-4c10-6948-84de-a93c09af2ba9", "Sound file for object deletion (uuid for sound asset)");
01201         gSavedSettings.declareString("UISndObjectRezIn",                "3c8fc726-1fd6-862d-fa01-16c5b2568db6", "Sound file for rezzing objects (uuid for sound asset)");
01202         gSavedSettings.declareString("UISndObjectRezOut",               "00000000-0000-0000-0000-000000000000", "Sound file for derezzing objects (uuid for sound asset)");
01203         gSavedSettings.declareString("UISndPieMenuAppear",      "8eaed61f-92ff-6485-de83-4dcc938a478e", "Sound file for opening pie menu (uuid for sound asset)");
01204         gSavedSettings.declareString("UISndPieMenuHide",            "00000000-0000-0000-0000-000000000000", "Sound file for closing pie menu (uuid for sound asset)");
01205         gSavedSettings.declareString("UISndPieMenuSliceHighlight0",     "d9f73cf8-17b4-6f7a-1565-7951226c305d", "Sound file for selecting pie menu item 0 (uuid for sound asset)");
01206         gSavedSettings.declareString("UISndPieMenuSliceHighlight1",     "f6ba9816-dcaf-f755-7b67-51b31b6233e5", "Sound file for selecting pie menu item 1 (uuid for sound asset)");
01207         gSavedSettings.declareString("UISndPieMenuSliceHighlight2",     "7aff2265-d05b-8b72-63c7-dbf96dc2f21f", "Sound file for selecting pie menu item 2 (uuid for sound asset)");
01208         gSavedSettings.declareString("UISndPieMenuSliceHighlight3",     "09b2184e-8601-44e2-afbb-ce37434b8ba1", "Sound file for selecting pie menu item 3 (uuid for sound asset)");
01209         gSavedSettings.declareString("UISndPieMenuSliceHighlight4",     "bbe4c7fc-7044-b05e-7b89-36924a67593c", "Sound file for selecting pie menu item 4 (uuid for sound asset)");
01210         gSavedSettings.declareString("UISndPieMenuSliceHighlight5",     "d166039b-b4f5-c2ec-4911-c85c727b016c", "Sound file for selecting pie menu item 5 (uuid for sound asset)");
01211         gSavedSettings.declareString("UISndPieMenuSliceHighlight6",     "242af82b-43c2-9a3b-e108-3b0c7e384981", "Sound file for selecting pie menu item 6 (uuid for sound asset)");
01212         gSavedSettings.declareString("UISndPieMenuSliceHighlight7",     "c1f334fb-a5be-8fe7-22b3-29631c21cf0b", "Sound file for selecting pie menu item 7 (uuid for sound asset)");
01213         gSavedSettings.declareString("UISndSnapshot",               "3d09f582-3851-c0e0-f5ba-277ac5c73fb4", "Sound file for taking a snapshot (uuid for sound asset)");
01214         
01215         
01216         gSavedSettings.declareString("UISndStartIM",                "c825dfbc-9827-7e02-6507-3713d18916c1", "Sound file for starting a new IM session (uuid for sound asset)");
01217         
01218         gSavedSettings.declareString("UISndTeleportOut",                "d7a9a565-a013-2a69-797d-5332baa1a947", "Sound file for teleporting (uuid for sound asset)");
01219         
01220         
01221         gSavedSettings.declareString("UISndTyping",             "5e191c7b-8996-9ced-a177-b2ac32bfea06", "Sound file for starting to type a chat message (uuid for sound asset)");
01222 
01223         gSavedSettings.declareString("UISndWindowClose",            "2c346eda-b60c-ab33-1119-b8941916a499", "Sound file for closing a window (uuid for sound asset)");
01224         gSavedSettings.declareString("UISndWindowOpen",             "c80260ba-41fd-8a46-768a-6bf236360e3a", "Sound file for opening a window (uuid for sound asset)");
01225 
01226         
01227         gSavedSettings.declareBOOL("SkyOverrideSimSunPosition", FALSE, "", NO_PERSIST);
01228         gSavedSettings.declareVec3("SkySunDefaultPosition", LLVector3(1.f, 0.f, 0.1f), "Default position of sun in sky (direction in world coordinates)");
01229         gSavedSettings.declareF32("SkyAmbientScale", 0.3f, "Controls strength of ambient, or non-directional light from the sun and moon (fraction or multiple of default ambient level)");
01230         gSavedSettings.declareColor3("SkyNightColorShift", LLColor3(0.7f, 0.7f, 1.0f), "Controls moonlight color (base color applied to moon as light source)");
01231         gSavedSettings.declareBOOL("FixedWeather", FALSE, "Weather effects do not change over time");
01232 
01233         
01234         gSavedSettings.declareU32("VFSSalt", 1, "[DO NOT MODIFY] Controls local file caching behavior");
01235         gSavedSettings.declareU32("VFSOldSize", 0, "[DO NOT MODIFY] Controls resizing of local file cache");
01236 
01237         gSavedSettings.declareU32("CacheSize", 500, "Controls amount of hard drive space reserved for local file caching in MB");
01238         gSavedSettings.declareString("CacheLocation", "", "Controls the location of the local disk cache");
01239         gSavedSettings.declareString("NewCacheLocation", "", "Change the location of the local disk cache to this");
01240         gSavedSettings.declareU32("CacheValidateCounter", 0, "Used to distribute cache validation");
01241         
01242         gSavedSettings.declareBOOL("PurgeCacheOnStartup", FALSE, "Clear local file cache every time viewer is run");
01243         gSavedSettings.declareBOOL("PurgeCacheOnNextStartup", FALSE, "Clear local file cache next time viewer is run");
01244 
01245         
01246         gSavedSettings.declareBOOL("ShowOverlayTitle", FALSE, "Prints watermark text message on screen");
01247         gSavedSettings.declareString("OverlayTitle", "Set_via_OverlayTitle_in_settings.xml", 
01248                 "Controls watermark text message displayed on screen when \"ShowOverlayTitle\" is enabled (one word, underscores become spaces)");  
01249 
01250         
01251         gSavedSettings.declareBOOL("UseDebugMenus", FALSE, "Turns on \"Debug\" menu");
01252         gSavedSettings.declareS32("ServerChoice", 0, "[DO NOT MODIFY] Controls which grid you connect to");
01253         gSavedSettings.declareString("CustomServer", "", "Specifies IP address or hostname of userserver to which you connect");
01254         gSavedSettings.declareBOOL("UseDebugLogin", FALSE, "Provides extra control over which grid to connect to");
01255 
01256         
01257         
01258         
01259         gSavedSettings.declareBOOL("FirstRunThisInstall", TRUE, "Specifies that you have not run the viewer since you installed the latest update");
01260 
01261         
01262         
01263         
01264         gSavedSettings.declareBOOL("FirstLoginThisInstall", TRUE, "Specifies that you have not successfully logged in since you installed the latest update");
01265 
01266         
01267         
01268         gSavedSettings.declareString("LastRunVersion", "0.0.0", "Version number of last instance of the viewer that you ran");
01269         
01270         gSavedSettings.declareS32("LocalCacheVersion", 0, "Version number of cache");
01271 
01272         
01273         gSavedSettings.declareBOOL("MeanCollisionBump", FALSE, "You have experienced an abuse of being bumped by an object or avatar" );
01274         gSavedSettings.declareBOOL("MeanCollisionPushObject", FALSE, "You have experienced an abuse of being pushed by a scripted object");
01275         gSavedSettings.declareBOOL("MeanCollisionSelected", FALSE, "You have experienced an abuse of being pushed via a selected object");
01276         gSavedSettings.declareBOOL("MeanCollisionScripted", FALSE, "You have experienced an abuse from a scripted object");
01277         gSavedSettings.declareBOOL("MeanCollisionPhysical", FALSE, "You have experienced an abuse from a physical object");
01278 
01279         
01280         gSavedSettings.declareBOOL("LeftClickShowMenu", FALSE, "Left click opens pie menu (FALSE = left click touches or grabs object)");
01281 
01282         gSavedSettings.declareF32("MouseSensitivity", 3.f, "Controls responsiveness of mouse when in mouselook mode (fraction or multiple of default mouse sensitivity)");
01283         gSavedSettings.declareBOOL("MouseSmooth", FALSE, "Smooths out motion of mouse when in mouselook mode.");
01284         gSavedSettings.declareBOOL("InvertMouse", FALSE, "When in mouselook, moving mouse up looks down and vice verse (FALSE = moving up looks up)");
01285 
01286         gSavedSettings.declareBOOL("EditCameraMovement", FALSE, "When entering build mode, camera moves up above avatar");
01287         gSavedSettings.declareBOOL("AppearanceCameraMovement", TRUE, "When entering appearance editing mode, camera zooms in on currently selected portion of avatar");
01288 
01289         
01290         gSavedSettings.declareBOOL("BeaconAlwaysOn", FALSE, "Beacons / highlighting always on");
01291         gSavedSettings.declareBOOL("scriptsbeacon", FALSE, "Beacon / Highlight scripted objects");
01292         gSavedSettings.declareBOOL("physicalbeacon", TRUE, "Beacon / Highlight physical objects");
01293         gSavedSettings.declareBOOL("soundsbeacon", FALSE, "Beacon / Highlight sound generators");
01294         gSavedSettings.declareBOOL("particlesbeacon", FALSE, "Beacon / Highlight particle generators");
01295         gSavedSettings.declareBOOL("scripttouchbeacon", TRUE, "Beacon / Highlight scripted objects with touch function");
01296         gSavedSettings.declareBOOL("renderbeacons", FALSE, "Beacon / Highlight particle generators");
01297         gSavedSettings.declareBOOL("renderhighlights", TRUE, "Beacon / Highlight scripted objects with touch function");
01298 
01299         gSavedSettings.declareBOOL("MuteAudio", FALSE, "All audio plays at 0 volume (streaming audio still takes up bandwidth, for example)");
01300         gSavedSettings.declareBOOL("MuteWhenMinimized", TRUE, "Mute audio when SL window is minimized");
01301 
01302         gSavedSettings.declareS32("NotifyBoxWidth", 350, "Width of notification messages");
01303         gSavedSettings.declareS32("NotifyBoxHeight", 200, "Height of notification messages");
01304 
01305         gSavedSettings.declareS32("GroupNotifyBoxWidth", 400, "Width of group notice messages");
01306         gSavedSettings.declareS32("GroupNotifyBoxHeight", 260, "Height of group notice messages");
01307 
01308         
01309         gSavedSettings.declareF32("NotifyTipDuration", 4.f, "Length of time that notification tips stay on screen (seconds)");
01310 
01311         gSavedSettings.declareBOOL("NotifyMoneyChange", TRUE, "Pop up notifications for all L$ transactions");
01312 
01313         gSavedSettings.declareBOOL("ShowNewInventory", TRUE,
01314                 "Automatically views new notecards/textures/landmarks");
01315         gSavedSettings.declareBOOL("AutoAcceptNewInventory", FALSE,
01316                 "Automatically accept new notecards/textures/landmarks");
01317 
01318 
01319         
01320         gSavedPerAccountSettings.declareString("Network2080Password", "", "Network 2080 password");
01321 
01322         
01323         
01324         
01325         
01326         
01327         gSavedSettings.declareU32("InventorySortOrder", 1 | 2 | 4, "Specifies sort key for inventory items (+0 = name, +1 = date, +2 = folders always by name, +4 = system folders to top)");
01328         gSavedSettings.declareU32("RecentItemsSortOrder", 1, "Specifies sort key for recent inventory items (+0 = name, +1 = date, +2 = folders always by name, +4 = system folders to top)");
01329         gSavedSettings.declareU32("TexturePickerSortOrder", 2, "Specifies sort key for textures in texture picker (+0 = name, +1 = date, +2 = folders always by name, +4 = system folders to top)");
01330         gSavedSettings.declareU32("AvatarPickerSortOrder", 2, "Specifies sort key for textures in avatar picker (+0 = name, +1 = date, +2 = folders always by name, +4 = system folders to top)");
01331 
01332         
01333         gSavedSettings.declareS32("SnapMargin", 10, "Controls maximum distance between windows before they auto-snap together (pixels)");
01334 
01335         
01336         gSavedSettings.declareS32("FloaterViewBottom", -1, "[DO NOT MODIFY] Controls layout of floating windows within SL window");
01337 
01338         
01339         
01340         gSavedSettings.declareBOOL("AutomaticFly", TRUE, "Fly by holding jump key or using \"Fly\" command (FALSE = fly by using \"Fly\" command only)");
01341 
01342         
01343         gSavedSettings.declareString("LastFindPanel", "find_all_panel", "Controls which find operation appears by default when clicking \"Find\" button ");
01344 
01345         
01346         gSavedSettings.declareBOOL("AsyncKeyboard", TRUE, "Improves responsiveness to keyboard input when at low framerates");
01347 
01348         
01349         gSavedSettings.declareS32("NumpadControl", 0, "How numpad keys control your avatar. 0 = Like the normal arrow keys, 1 = Numpad moves avatar when numlock is off, 2 = Numpad moves avatar regardless of numlock (use this if you have no numlock)");
01350 
01351         
01352         
01353         
01354         
01355         
01356         gSavedSettings.declareBOOL("AskedAboutCrashReports", FALSE, "Turns off dialog asking if you want to enable crash reporting");
01357 
01358         
01359         gSavedSettings.declareBOOL("FindPeopleOnline", TRUE, "Limits people search to only users who are logged on");
01360 
01361         
01362         
01363         
01364 
01365         
01366         gSavedSettings.declareString("FindLandType", "All", "Controls which type of land you are searching for in Find Land interface (\"All\", \"Auction\", \"For Sale\")");
01367 
01368         gSavedSettings.declareBOOL("FindLandPrice", TRUE, "Enables filtering of land search results by price");
01369         gSavedSettings.declareBOOL("FindLandArea", FALSE, "Enables filtering of land search results by area");
01370 
01371         
01372         
01373         gSavedSettings.declareBOOL("ShowMatureFindAll",FALSE, "Display results of find all that are in mature sims");
01374         gSavedSettings.declareBOOL("ShowMatureSims", FALSE, "Display results of find places or find popular that are in mature sims");
01375         gSavedSettings.declareBOOL("ShowMatureEvents", FALSE, "Display results of find events that are flagged as mature");
01376         gSavedSettings.declareBOOL("ShowMatureClassifieds", FALSE, "Display results of find classifieds that are flagged as mature");
01377         gSavedSettings.declareBOOL("ShowMatureGroups", TRUE, "Display results of find groups that are in flagged as mature");
01378         
01379         gSavedSettings.declareBOOL("FindPlacesPictures", TRUE, "Display only results of find places that have pictures");
01380 
01381         gSavedSettings.declareBOOL("MapShowEvents", TRUE, "Show events on world map");
01382         
01383         gSavedSettings.declareBOOL("MapShowPopular", TRUE, "Show popular places on world map");
01384         gSavedSettings.declareBOOL("MapShowLandForSale", FALSE, "Show land for sale on world map");
01385         gSavedSettings.declareBOOL("MapShowTelehubs", TRUE, "Show telehubs on world map");
01386         gSavedSettings.declareBOOL("MapShowPeople", TRUE, "Show other users on world map");
01387         gSavedSettings.declareBOOL("MapShowInfohubs", TRUE, "Show infohubs on the world map");
01388         gSavedSettings.declareBOOL("MapShowClassifieds", TRUE, "Show locations associated with classified ads on world map");
01389 
01390         
01391         gSavedSettings.declareString("SearchURLDefault",
01392                 "http://secondlife.com/app/search/index.php?",
01393                 "URL to load for empty searches");
01394         gSavedSettings.declareString("SearchURLQuery",
01395                 "http://secondlife.com/app/search/search_proxy.php?q=[QUERY]&s=[COLLECTION]&",
01396                 "URL to use for searches");
01397         gSavedSettings.declareString("SearchURLSuffix",
01398                 "m=[MATURE]&t=[TEEN]®ion=[REGION]&x=[X]&y=[Y]&z=[Z]",
01399                 "Parameters added to end of search queries");
01400 
01401         
01402         gSavedSettings.declareBOOL("ArrowKeysMoveAvatar", TRUE, "While cursor is in chat entry box, arrow keys still control your avatar");
01403         gSavedSettings.declareBOOL("ChatBarStealsFocus", TRUE, "Whenever keyboard focus is removed from the UI, and the chat bar is visible, the chat bar takes focus");
01404 
01405         
01406         gSavedSettings.declareBOOL("AuctionShowFence", TRUE, "When auctioning land, include parcel boundary marker in snapshot");
01407 
01408         
01409         
01410         gSavedSettings.declareBOOL("ProbeHardwareOnStartup", TRUE, "Query current hardware configuration on application startup");
01411 
01412         
01413         gSavedSettings.declareBOOL("UseDefaultColorPicker", FALSE, "Use color picker supplied by operating system");
01414         gSavedSettings.declareF32("PickerContextOpacity", 0.35f, "Controls overall opacity of context frustrum connecting color and texture pickers with their swatches");
01415 
01416         gSavedSettings.declareF32("ColumnHeaderDropDownDelay", 0.3f, "Time in seconds of mouse click before column header shows sort options list");
01417         
01418         
01419         
01420 
01421         
01422         gSavedSettings.declareBOOL("ShowHoverTips", TRUE, "Show descriptive tooltip when mouse hovers over items in world");
01423         gSavedSettings.declareBOOL("ShowLandHoverTip", FALSE, "Show descriptive tooltip when mouse hovers over land");
01424         gSavedSettings.declareBOOL("ShowAllObjectHoverTip", FALSE, "Show descriptive tooltip when mouse hovers over non-interactive and interactive objects.");
01425 
01426         
01427         
01428         
01429         gSavedSettings.declareBOOL("UseExternalBrowser", TRUE, "[NOT USED]");
01430         gSavedSettings.declareBOOL("CookiesEnabled", TRUE, "Accept cookies from Web sites?");
01431 
01432         
01433         gSavedSettings.declareString("BrowserHomePage", "http://www.secondlife.com", "[NOT USED]");
01434 
01435         
01436         gSavedSettings.declareBOOL("BrowserProxyEnabled", FALSE, "[NOT USED]");
01437         gSavedSettings.declareString("BrowserProxyAddress", "", "[NOT USED]");
01438         gSavedSettings.declareS32("BrowserProxyPort", 3128, "[NOT USED]");
01439         gSavedSettings.declareS32("BrowserProxySocks45", 5, "[NOT USED]");
01440         gSavedSettings.declareString("BrowserProxyExclusions", "", "[NOT USED]");
01441 
01442         
01443         gSavedSettings.declareBOOL("UseWebPagesOnPrims", FALSE, "[NOT USED]");
01444 
01445         
01446         gSavedSettings.declareBOOL("UseOcclusion", TRUE, "Enable object culling based on occlusion (coverage) by other objects");
01447 
01448         gSavedSettings.declareBOOL("DoubleClickAutoPilot", FALSE, "Enable double-click auto pilot");
01449         
01450         
01451         gSavedSettings.declareBOOL("CheesyBeacon", FALSE, "Enable cheesy beacon effects");
01452 
01453         
01454         
01455         
01456         gSavedSettings.declareBOOL("DBEnabled", FALSE, "Enable database");
01457         gSavedSettings.declareS32("DBRetrievalMode", 0, "Database retrieval mode (0=Avatar, 1=URL)");
01458         gSavedPerAccountSettings.declareString("DBAvatarName", "", "Database avatar's name");
01459         gSavedPerAccountSettings.declareString("DBAvatarKey", "", "Database avatar's key");
01460         gSavedSettings.declareString("DBURL", "", "Database URL");
01461         gSavedSettings.declareString("DBURLUsername", "", "Database URL Username");
01462         gSavedSettings.declareString("DBURLPassword", "", "Database URL Password");
01463 
01464         gSavedSettings.declareString("DBSendPattern", "$NAME", "Database send pattern");
01465         gSavedSettings.declareString("DBPositivePattern", "", "Database positive pattern");
01466         gSavedSettings.declareString("DBNegativePattern", "", "Database negative pattern");
01467         gSavedSettings.declareString("DBDeniedPattern", "", "Database denied pattern");
01468 
01469         gSavedSettings.declareS32("DBMaxConcurrentRequests", 4, "Maximum concurrent database requests");
01470         gSavedSettings.declareS32("DBDelayBetweenRequests", 1, "Delay between database requests");
01471         gSavedSettings.declareS32("DBRequestTimeout", 64, "Database request timeout");
01472         gSavedSettings.declareS32("DBGiveUpAfter", 4096, "Give up on database after");
01473 
01474         
01475         gSavedSettings.declareS32("FlycamAxis0", 0, "Flycam hardware axis mapping for internal axis 0 ([0, 5]).");
01476         gSavedSettings.declareS32("FlycamAxis1", 1, "Flycam hardware axis mapping for internal axis 1 ([0, 5]).");
01477         gSavedSettings.declareS32("FlycamAxis2", 2, "Flycam hardware axis mapping for internal axis 2 ([0, 5]).");
01478         gSavedSettings.declareS32("FlycamAxis3", 3, "Flycam hardware axis mapping for internal axis 3 ([0, 5]).");
01479         gSavedSettings.declareS32("FlycamAxis4", 4, "Flycam hardware axis mapping for internal axis 4 ([0, 5]).");
01480         gSavedSettings.declareS32("FlycamAxis5", 5, "Flycam hardware axis mapping for internal axis 5 ([0, 5]).");
01481         gSavedSettings.declareS32("FlycamAxis6", -1, "Flycam hardware axis mapping for internal axis 6 ([0, 5]).");
01482 
01483         gSavedSettings.declareF32("FlycamAxisScale0", 1, "Flycam axis 0 scaler.");
01484         gSavedSettings.declareF32("FlycamAxisScale1", 1, "Flycam axis 1 scaler.");
01485         gSavedSettings.declareF32("FlycamAxisScale2", 1, "Flycam axis 2 scaler.");
01486         gSavedSettings.declareF32("FlycamAxisScale3", 1, "Flycam axis 3 scaler.");
01487         gSavedSettings.declareF32("FlycamAxisScale4", 1, "Flycam axis 4 scaler.");
01488         gSavedSettings.declareF32("FlycamAxisScale5", 1, "Flycam axis 5 scaler.");
01489         gSavedSettings.declareF32("FlycamAxisScale6", 1, "Flycam axis 6 scaler.");
01490 
01491         gSavedSettings.declareF32("FlycamAxisDeadZone0", 0.1f, "Flycam axis 0 dead zone.");
01492         gSavedSettings.declareF32("FlycamAxisDeadZone1", 0.1f, "Flycam axis 1 dead zone.");
01493         gSavedSettings.declareF32("FlycamAxisDeadZone2", 0.1f, "Flycam axis 2 dead zone.");
01494         gSavedSettings.declareF32("FlycamAxisDeadZone3", 0.1f, "Flycam axis 3 dead zone.");
01495         gSavedSettings.declareF32("FlycamAxisDeadZone4", 0.1f, "Flycam axis 4 dead zone.");
01496         gSavedSettings.declareF32("FlycamAxisDeadZone5", 0.1f, "Flycam axis 5 dead zone.");
01497         gSavedSettings.declareF32("FlycamAxisDeadZone6", 0.1f, "Flycam axis 6 dead zone.");
01498 
01499         gSavedSettings.declareF32("FlycamFeathering", 16.f, "Flycam feathering (less is softer)");
01500         gSavedSettings.declareBOOL("FlycamAutoLeveling", TRUE, "Keep Flycam level.");
01501         gSavedSettings.declareBOOL("FlycamAbsolute", FALSE, "Treat Flycam values as absolute positions (not deltas).");
01502         gSavedSettings.declareBOOL("FlycamZoomDirect", FALSE, "Map flycam zoom axis directly to camera zoom."); 
01503 
01504         
01505         gSavedSettings.declareBOOL("TrustNetShowInBubble", FALSE, "Show TrustNet score in avatar's bubble");
01506         
01507         
01508         gSavedSettings.declareS32("LCDDestination", 0, "Which LCD to use");
01509         gSavedSettings.declareBOOL("DisplayChat", TRUE, "Display Latest Chat message on LCD");
01510         gSavedSettings.declareBOOL("DisplayIM", TRUE, "Display Latest IM message on LCD");
01511         gSavedSettings.declareBOOL("DisplayRegion", TRUE, "Display Location information on LCD");
01512         gSavedSettings.declareBOOL("DisplayDebug", TRUE, "Display Network Information on LCD");
01513         gSavedSettings.declareBOOL("DisplayDebugConsole", TRUE, "Display Console Debug Information on LCD");
01514         gSavedSettings.declareBOOL("DisplayLinden", TRUE, "Display Account Information on LCD");
01515 
01516         
01517         gSavedSettings.declareBOOL("VectorizePerfTest", TRUE, "Test SSE/vectorization performance and choose fastest version.");
01518         gSavedSettings.declareBOOL("VectorizeEnable", FALSE, "Enable general vector operations and data alignment.");
01519         gSavedSettings.declareBOOL("VectorizeSkin", TRUE, "Enable vector operations for avatar skinning.");
01520         gSavedSettings.declareU32( "VectorizeProcessor", 0, "0=Compiler Default, 1=SSE, 2=SSE2, autodetected", NO_PERSIST);
01521 
01522         
01523         gSavedSettings.declareBOOL("EventLogEnabled", TRUE, "Enable the collection of data for the event log");
01524         gSavedSettings.declareBOOL("EventLogShowNULLs", TRUE, "Show events with NULL UUIDs in the event log");
01525         gSavedSettings.declareBOOL("EventLogShowZeroCount", TRUE, "Show events with a count of 0 in the event log");
01526         gSavedSettings.declareS32("EventLogQuickAction", LLFloaterEventLog::QB_OBJECT_MUTE, "Action performed by the button under the highest scored events display");
01527 
01528         gSavedPerAccountSettings.declareS32("RealtimeChatRelayChannel", 0, "Channel where to copy keypresses while the user is typing. 0 disables this function");
01529 
01530         gSavedSettings.declareS32("StereoMode", 0, "Stereo mode. 0: None, 1: Anaglyph, 2: Active");
01531         gSavedSettings.declareF32("StereoEyeSeparation", 0.065f, "Stereo eye separation");
01532         gSavedSettings.declareF32("StereoFocalDistance", 6.0f, "Stereo focal distance");
01533 
01534         
01535         
01536         
01537 
01538         
01539         gCrashSettings.declareS32(CRASH_BEHAVIOR_SETTING, CRASH_BEHAVIOR_ASK, "Controls behavior when viewer crashes "
01540                 "(0 = ask before sending crash report, 1 = always send crash report, 2 = never send crash report)");
01541 }
01542 
01543 void fixup_settings()
01544 {
01545 #if LL_RELEASE_FOR_DOWNLOAD
01546         
01547         gSavedSettings.setBOOL("AnimateTextures", TRUE); 
01548 #endif
01549 }
01550 
01552 
01553 
01554 class LLAFKTimeoutListener: public LLSimpleListener
01555 {
01556         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01557         {
01558                 gAFKTimeout = (F32) event->getValue().asReal();
01559                 return true;
01560         }
01561 };
01562 static LLAFKTimeoutListener afk_timeout_listener;
01563 
01564 class LLMouseSensitivityListener: public LLSimpleListener
01565 {
01566         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01567         {
01568                 gMouseSensitivity = (F32) event->getValue().asReal();
01569                 return true;
01570         }
01571 };
01572 static LLMouseSensitivityListener mouse_sensitivity_listener;
01573 
01574 
01575 class LLInvertMouseListener: public LLSimpleListener
01576 {
01577         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01578         {
01579                 gInvertMouse = event->getValue().asBoolean();
01580                 return true;
01581         }
01582 };
01583 static LLInvertMouseListener invert_mouse_listener;
01584 
01585 class LLRenderAvatarMouselookListener: public LLSimpleListener
01586 {
01587         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01588         {
01589                 LLVOAvatar::sVisibleInFirstPerson = event->getValue().asBoolean();
01590                 return true;
01591         }
01592 };
01593 static LLRenderAvatarMouselookListener render_avatar_mouselook_listener;
01594 
01595 class LLRenderFarClipListener: public LLSimpleListener
01596 {
01597         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01598         {
01599                 F32 draw_distance = (F32) event->getValue().asReal();
01600                 gAgent.mDrawDistance = draw_distance;
01601                 if (gWorldPointer)
01602                 {
01603                         gWorldPointer->setLandFarClip(draw_distance);
01604                 }
01605                 return true;
01606         }
01607 };
01608 static LLRenderFarClipListener render_far_clip_listener;
01609 
01610 class LLTerrainDetailListener: public LLSimpleListener
01611 {
01612         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01613         {
01614                 LLDrawPoolTerrain::sDetailMode = event->getValue().asInteger();
01615                 return true;
01616         }
01617 };
01618 static LLTerrainDetailListener terrain_detail_listener;
01619 
01620 
01621 class LLSetShaderListener: public LLSimpleListener
01622 {
01623         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01624         {
01625                 LLShaderMgr::setShaders();
01626                 return true;
01627         }
01628 };
01629 static LLSetShaderListener set_shader_listener;
01630 
01631 class LLReleaseGLBufferListener: public LLSimpleListener
01632 {
01633         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01634         {
01635                 gPipeline.releaseGLBuffers();
01636                 LLShaderMgr::setShaders();
01637                 return true;
01638         }
01639 };
01640 static LLReleaseGLBufferListener release_gl_buffer_listener;
01641 
01642 class LLVolumeLODListener: public LLSimpleListener
01643 {
01644         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01645         {
01646                 LLVOVolume::sLODFactor = (F32) event->getValue().asReal();
01647                 LLVOVolume::sDistanceFactor = 1.f-LLVOVolume::sLODFactor * 0.1f;
01648                 return true;
01649         }
01650 };
01651 static LLVolumeLODListener volume_lod_listener;
01652 
01653 class LLAvatarLODListener: public LLSimpleListener
01654 {
01655         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01656         {
01657                 LLVOAvatar::sLODFactor = (F32) event->getValue().asReal();
01658                 return true;
01659         }
01660 };
01661 static LLAvatarLODListener avatar_lod_listener;
01662 
01663 class LLTreeLODListener: public LLSimpleListener
01664 {
01665         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01666         {
01667                 LLVOTree::sTreeFactor = (F32) event->getValue().asReal();
01668                 return true;
01669         }
01670 };
01671 static LLTreeLODListener tree_lod_listener;
01672 
01673 class LLFlexLODListener: public LLSimpleListener
01674 {
01675         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01676         {
01677                 LLVolumeImplFlexible::sUpdateFactor = (F32) event->getValue().asReal();
01678                 return true;
01679         }
01680 };
01681 static LLFlexLODListener flex_lod_listener;
01682 
01683 class LLGammaListener: public LLSimpleListener
01684 {
01685         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01686         {
01687                 F32 gamma = (F32) event->getValue().asReal();
01688                 if (gamma == 0.0f)
01689                 {
01690                         gamma = 1.0f; 
01691                 }
01692                 if (gamma != gViewerWindow->getWindow()->getGamma())
01693                 {
01694                         
01695                         if (!gViewerWindow->getWindow()->setGamma(gamma))
01696                         {
01697                                 llwarns << "setGamma failed!" << llendl;
01698                         }
01699                 }
01700 
01701                 return true;
01702         }
01703 };
01704 static LLGammaListener gamma_listener;
01705 
01706 class LLNightBrightnessListener: public LLSimpleListener
01707 {
01708         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01709         {
01710                 LLVOSky::sNighttimeBrightness = (F32) event->getValue().asReal();
01711                 return true;
01712         }
01713 };
01714 static LLNightBrightnessListener night_brightness_listener;
01715 
01716 const F32 MAX_USER_FOG_RATIO = 4.f;
01717 const F32 MIN_USER_FOG_RATIO = 0.5f;
01718 
01719 class LLFogRatioListener: public LLSimpleListener
01720 {
01721         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01722         {
01723                 F32 fog_ratio = llmax(MIN_USER_FOG_RATIO, 
01724                                                         llmin((F32) event->getValue().asReal(), 
01725                                                         MAX_USER_FOG_RATIO));
01726                 gSky.setFogRatio(fog_ratio);
01727                 return true;
01728         }
01729 };
01730 static LLFogRatioListener fog_ratio_listener;
01731 
01732 class LLMaxPartCountListener: public LLSimpleListener
01733 {
01734         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01735         {
01736                 LLViewerPartSim::setMaxPartCount(event->getValue().asInteger());
01737                 return true;
01738         }
01739 };
01740 static LLMaxPartCountListener max_partCount_listener;
01741 
01742 const S32 MAX_USER_COMPOSITE_LIMIT = 100;
01743 const S32 MIN_USER_COMPOSITE_LIMIT = 0;
01744 
01745 class LLCompositeLimitListener: public LLSimpleListener
01746 {
01747         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01748         {
01749                 S32 composite_limit = llmax(MIN_USER_COMPOSITE_LIMIT, 
01750                                                         llmin((S32)event->getValue().asInteger(), 
01751                                                         MAX_USER_COMPOSITE_LIMIT));
01752                 LLVOAvatar::sMaxOtherAvatarsToComposite = composite_limit;
01753                 return true;
01754         }
01755 };
01756 static LLCompositeLimitListener composite_limit_listener;
01757 
01758 class LLVideoMemoryListener: public LLSimpleListener
01759 {
01760         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01761         {
01762                 gImageList.updateMaxResidentTexMem(event->getValue().asInteger());
01763                 return true;
01764         }
01765 };
01766 static LLVideoMemoryListener video_memory_listener;
01767 
01768 class LLBandwidthListener: public LLSimpleListener
01769 {
01770         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01771         {
01772                 gViewerThrottle.setMaxBandwidth((F32) event->getValue().asReal());
01773                 return true;
01774         }
01775 };
01776 static LLBandwidthListener bandwidth_listener;
01777 
01778 class LLChatFontSizeListener: public LLSimpleListener
01779 {
01780         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01781         {
01782                 gConsole->setFontSize(event->getValue().asInteger());
01783                 return true;
01784         }
01785 };
01786 static LLChatFontSizeListener chat_font_size_listener;
01787 
01788 class LLChatPersistTimeListener: public LLSimpleListener
01789 {
01790         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01791         {
01792                 gConsole->setLinePersistTime((F32) event->getValue().asReal());
01793                 return true;
01794         }
01795 };
01796 static LLChatPersistTimeListener chat_persist_time_listener;
01797 
01798 class LLConsoleMaxLinesListener: public LLSimpleListener
01799 {
01800         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01801         {
01802                 gConsole->setMaxLines(event->getValue().asInteger());
01803                 return true;
01804         }
01805 };
01806 static LLConsoleMaxLinesListener console_max_lines_listener;
01807 
01808 
01809 class LLAudioListener: public LLSimpleListener
01810 {
01811         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01812         {
01813                 audio_update_volume(true);
01814                 return true;
01815         }
01816 };
01817 static LLAudioListener audio_listener;
01818 
01819 class LLJoystickListener : public LLSimpleListener
01820 {
01821         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01822         {
01823                 LLViewerJoystick::updateCamera(TRUE);
01824                 return true;
01825         }
01826 };
01827 static LLJoystickListener joystick_listener;
01828 
01829 void stop_video();
01830 void prepare_video(const LLParcel *parcel);
01831 
01832 class LLAudioStreamMusicListener: public LLSimpleListener
01833 {
01834         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01835         {
01836                 if (gAudiop)
01837                 {
01838                         if ( event->getValue().asBoolean() )
01839                         {
01840                                 if (gParcelMgr
01841                                         && gParcelMgr->getAgentParcel()
01842                                         && !gParcelMgr->getAgentParcel()->getMusicURL().empty())
01843                                 {
01844                                         
01845                                         
01846                                         if ( ! gAudiop->isInternetStreamPlaying() )
01847                                         {
01848                                                 gAudiop->startInternetStream(gParcelMgr->getAgentParcel()->getMusicURL().c_str());
01849                                         }
01850                                 }
01851                         }
01852                         else
01853                         {
01854                                 gAudiop->stopInternetStream();
01855                         }
01856                 }
01857                 return true;
01858         }
01859 };
01860 
01861 static LLAudioStreamMusicListener audio_stream_music_listener;
01862 
01863 
01864 
01865 class LLAudioStreamMediaListener: public LLSimpleListener
01866 {
01867         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01868         {
01869                 if (LLMediaEngine::getInstance() && LLMediaEngine::getInstance()->isAvailable())
01870                 {
01871                         if (event->getValue().asBoolean())
01872                         {
01873                                 gMessageSystem->setHandlerFunc ( "ParcelMediaCommandMessage", LLMediaEngine::process_parcel_media );
01874                                 gMessageSystem->setHandlerFunc ( "ParcelMediaUpdate", LLMediaEngine::process_parcel_media_update );
01875                                 if ( ( gParcelMgr ) &&
01876                                          ( gParcelMgr->getAgentParcel () ) && 
01877                                          ( !gParcelMgr->getAgentParcel()->getMediaURL().empty() ) )
01878                                 {
01879                                         prepare_video ( gParcelMgr->getAgentParcel () );
01880                                 }
01881                         }
01882                         else
01883                         {
01884                                 gMessageSystem->setHandlerFunc("ParcelMediaCommandMessage", null_message_callback);
01885                                 gMessageSystem->setHandlerFunc ( "ParcelMediaUpdate", null_message_callback );
01886                                 stop_video();
01887                         }
01888                 }
01889                 else
01890                 {
01891                         if (gSavedSettings.getWarning("QuickTimeInstalled"))
01892                         {
01893                                 gSavedSettings.setWarning("QuickTimeInstalled", FALSE);
01894 
01895                                 LLNotifyBox::showXml("NoQuickTime" );
01896                         }
01897                 }
01898 
01899                 return true;
01900         }
01901 };
01902 
01903 static LLAudioStreamMediaListener audio_stream_media_listener;
01904 
01905 
01906 class LLUseOcclusionListener: public LLSimpleListener
01907 {
01908         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01909         {
01910                 LLPipeline::sUseOcclusion = (event->getValue().asBoolean() && gGLManager.mHasOcclusionQuery 
01911                                 && gFeatureManagerp->isFeatureAvailable("UseOcclusion") && !gUseWireframe);
01912                 return true;
01913         }
01914 };
01915 static LLUseOcclusionListener use_occlusion_listener;
01916 
01917 class LLNumpadControlListener: public LLSimpleListener
01918 {
01919         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01920         {
01921                 if (gKeyboard)
01922                 {
01923                         gKeyboard->setNumpadDistinct(static_cast<LLKeyboard::e_numpad_distinct>(event->getValue().asInteger()));
01924                 }
01925                 return true;
01926         }
01927 };
01928 
01929 static LLNumpadControlListener numpad_control_listener;
01930 
01931 class LLRenderUseVBOListener: public LLSimpleListener
01932 {
01933         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01934         {
01935                 gPipeline.setUseVBO(event->getValue().asBoolean());
01936                 return true;
01937         }
01938 };
01939 static LLRenderUseVBOListener render_use_vbo_listener;
01940 
01941 class LLRenderLightingDetailListener: public LLSimpleListener
01942 {
01943         bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
01944         {
01945                 gPipeline.setLightingDetail(event->getValue().asInteger());
01946                 return true;
01947         }
01948 };
01949 static LLRenderLightingDetailListener render_lighting_detail_listener;
01950 
01952 
01953 void settings_setup_listeners()
01954 {
01955         gSavedSettings.getControl("FirstPersonAvatarVisible")->addListener(&render_avatar_mouselook_listener);
01956         gSavedSettings.getControl("MouseSensitivity")->addListener(&mouse_sensitivity_listener);
01957         gSavedSettings.getControl("InvertMouse")->addListener(&invert_mouse_listener);
01958         gSavedSettings.getControl("AFKTimeout")->addListener(&afk_timeout_listener);
01959         gSavedSettings.getControl("RenderFarClip")->addListener(&render_far_clip_listener);
01960         gSavedSettings.getControl("RenderTerrainDetail")->addListener(&terrain_detail_listener);
01961         gSavedSettings.getControl("RenderRippleWater")->addListener(&set_shader_listener);
01962         gSavedSettings.getControl("RenderAvatarVP")->addListener(&set_shader_listener);
01963         gSavedSettings.getControl("VertexShaderEnable")->addListener(&set_shader_listener);
01964         gSavedSettings.getControl("RenderDynamicReflections")->addListener(&set_shader_listener);
01965         gSavedSettings.getControl("RenderGlow")->addListener(&release_gl_buffer_listener);
01966         gSavedSettings.getControl("RenderGlowResolution")->addListener(&release_gl_buffer_listener);
01967         gSavedSettings.getControl("RenderAvatarMode")->addListener(&set_shader_listener);
01968         gSavedSettings.getControl("RenderVolumeLODFactor")->addListener(&volume_lod_listener);
01969         gSavedSettings.getControl("RenderAvatarLODFactor")->addListener(&avatar_lod_listener);
01970         gSavedSettings.getControl("RenderTreeLODFactor")->addListener(&tree_lod_listener);
01971         gSavedSettings.getControl("RenderFlexTimeFactor")->addListener(&flex_lod_listener);
01972         gSavedSettings.getControl("ThrottleBandwidthKBPS")->addListener(&bandwidth_listener);
01973         gSavedSettings.getControl("RenderGamma")->addListener(&gamma_listener);
01974         gSavedSettings.getControl("RenderNightBrightness")->addListener(&night_brightness_listener);
01975         gSavedSettings.getControl("RenderFogRatio")->addListener(&fog_ratio_listener);
01976         gSavedSettings.getControl("RenderMaxPartCount")->addListener(&max_partCount_listener);
01977         gSavedSettings.getControl("AvatarCompositeLimit")->addListener(&composite_limit_listener);
01978         gSavedSettings.getControl("GraphicsCardMemorySetting")->addListener(&video_memory_listener);
01979         gSavedSettings.getControl("ChatFontSize")->addListener(&chat_font_size_listener);
01980         gSavedSettings.getControl("ChatPersistTime")->addListener(&chat_persist_time_listener);
01981         gSavedSettings.getControl("ConsoleMaxLines")->addListener(&console_max_lines_listener);
01982         gSavedSettings.getControl("UseOcclusion")->addListener(&use_occlusion_listener);
01983         gSavedSettings.getControl("AudioLevelMaster")->addListener(&audio_listener);
01984 
01985 
01986         gSavedSettings.getControl("AudioLevelAmbient")->addListener(&audio_listener);
01987         gSavedSettings.getControl("AudioLevelMusic")->addListener(&audio_listener);
01988         gSavedSettings.getControl("AudioLevelMedia")->addListener(&audio_listener);
01989         gSavedSettings.getControl("AudioLevelVoice")->addListener(&audio_listener);
01990         gSavedSettings.getControl("AudioLevelDistance")->addListener(&audio_listener);
01991         gSavedSettings.getControl("AudioLevelDoppler")->addListener(&audio_listener);
01992         gSavedSettings.getControl("AudioLevelRolloff")->addListener(&audio_listener);
01993         gSavedSettings.getControl("AudioStreamingMusic")->addListener(&audio_stream_music_listener);
01994         gSavedSettings.getControl("AudioStreamingVideo")->addListener(&audio_stream_media_listener);
01995         gSavedSettings.getControl("MuteAudio")->addListener(&audio_listener);
01996         gSavedSettings.getControl("RenderVBOEnable")->addListener(&render_use_vbo_listener);
01997         gSavedSettings.getControl("RenderLightingDetail")->addListener(&render_lighting_detail_listener);
01998         gSavedSettings.getControl("NumpadControl")->addListener(&numpad_control_listener);
01999         gSavedSettings.getControl("FlycamAxis0")->addListener(&joystick_listener);
02000         gSavedSettings.getControl("FlycamAxis1")->addListener(&joystick_listener);
02001         gSavedSettings.getControl("FlycamAxis2")->addListener(&joystick_listener);
02002         gSavedSettings.getControl("FlycamAxis3")->addListener(&joystick_listener);
02003         gSavedSettings.getControl("FlycamAxis4")->addListener(&joystick_listener);
02004         gSavedSettings.getControl("FlycamAxis5")->addListener(&joystick_listener);
02005         gSavedSettings.getControl("FlycamAxis6")->addListener(&joystick_listener);
02006 }