00001
00033 #include "llviewerprecompiledheaders.h"
00034
00035 #include "llprefschat.h"
00036 #include "lltexteditor.h"
00037 #include "llviewercontrol.h"
00038 #include "lluictrlfactory.h"
00039
00040 class LLPrefsChatImpl : public LLPanel
00041 {
00042 public:
00043 LLPrefsChatImpl();
00044 ~LLPrefsChatImpl(){};
00045
00046 virtual void refresh();
00047
00048 void apply();
00049 void cancel();
00050
00051 protected:
00052 S32 mChatSize;
00053 F32 mChatPersist;
00054 S32 mChatMaxLines;
00055 LLColor4 mSystemChatColor;
00056 LLColor4 mAgentChatColor;
00057 LLColor4 mIMChatColor;
00058 LLColor4 mObjectChatColor;
00059 LLColor4 mOwnerSayChatColor;
00060 LLColor4 mBGChatColor;
00061 LLColor4 mScriptErrorColor;
00062 LLColor4 mHTMLLinkColor;
00063 BOOL mChatFullWidth;
00064 BOOL mCloseChatOnReturn;
00065 BOOL mArrowKeysMoveAvatar;
00066 BOOL mShowTimestamps;
00067 BOOL mPlayTypingAnim;
00068 BOOL mChatBubbles;
00069 BOOL mScriptErrorAsChat;
00070 F32 mConsoleOpacity;
00071 F32 mBubbleOpacity;
00072 };
00073
00074
00075 LLPrefsChatImpl::LLPrefsChatImpl()
00076 : LLPanel("Chat Panel")
00077 {
00078 LLUICtrlFactory::getInstance()->buildPanel(this, "panel_preferences_chat.xml");
00079
00080 refresh();
00081 }
00082
00083 void LLPrefsChatImpl::refresh()
00084 {
00085 LLPanel::refresh();
00086
00087
00088 mChatSize = gSavedSettings.getS32("ChatFontSize");
00089 mChatPersist = gSavedSettings.getF32("ChatPersistTime");
00090 mChatMaxLines = gSavedSettings.getS32("ConsoleMaxLines");
00091 mSystemChatColor = gSavedSettings.getColor4("SystemChatColor");
00092 mAgentChatColor = gSavedSettings.getColor4("AgentChatColor");
00093 mIMChatColor = gSavedSettings.getColor4("IMChatColor");
00094 mObjectChatColor = gSavedSettings.getColor4("ObjectChatColor");
00095 mOwnerSayChatColor = gSavedSettings.getColor4("llOwnerSayChatColor");
00096 mBGChatColor = gSavedSettings.getColor4("BackgroundChatColor");
00097 mScriptErrorColor = gSavedSettings.getColor4("ScriptErrorColor");
00098 mHTMLLinkColor = gSavedSettings.getColor4("HTMLLinkColor");
00099 mArrowKeysMoveAvatar = gSavedSettings.getBOOL("ArrowKeysMoveAvatar");
00100 mShowTimestamps = gSavedSettings.getBOOL("ChatShowTimestamps");
00101 mScriptErrorAsChat = gSavedSettings.getBOOL("ScriptErrorsAsChat");
00102 mChatBubbles = gSavedSettings.getBOOL("UseChatBubbles");
00103 mChatFullWidth = gSavedSettings.getBOOL("ChatFullWidth");
00104 mCloseChatOnReturn = gSavedSettings.getBOOL("CloseChatOnReturn");
00105 mConsoleOpacity = gSavedSettings.getF32("ConsoleBackgroundOpacity");
00106 mBubbleOpacity = gSavedSettings.getF32("ChatBubbleOpacity");
00107 }
00108
00109 void LLPrefsChatImpl::cancel()
00110 {
00111 gSavedSettings.setS32("ChatFontSize", mChatSize);
00112 gSavedSettings.setF32("ChatPersistTime", mChatPersist);
00113 gSavedSettings.setS32("ConsoleMaxLines", mChatMaxLines);
00114 gSavedSettings.setColor4("SystemChatColor", mSystemChatColor);
00115 gSavedSettings.setColor4("AgentChatColor", mAgentChatColor);
00116 gSavedSettings.setColor4("IMChatColor", mIMChatColor);
00117 gSavedSettings.setColor4("ObjectChatColor", mObjectChatColor);
00118 gSavedSettings.setColor4("llOwnerSayChatColor", mOwnerSayChatColor);
00119 gSavedSettings.setColor4("BackgroundChatColor", mBGChatColor);
00120 gSavedSettings.setColor4("ScriptErrorColor", mScriptErrorColor);
00121 gSavedSettings.setColor4("HTMLLinkColor", mHTMLLinkColor);
00122 gSavedSettings.setBOOL("ArrowKeysMoveAvatar", mArrowKeysMoveAvatar);
00123 gSavedSettings.setBOOL("ChatShowTimestamps", mShowTimestamps);
00124 gSavedSettings.setBOOL("ScriptErrorsAsChat", mScriptErrorAsChat);
00125 gSavedSettings.setBOOL("UseChatBubbles", mChatBubbles);
00126 gSavedSettings.setBOOL("ChatFullWidth", mChatFullWidth);
00127 gSavedSettings.setBOOL("CloseChatOnReturn", mCloseChatOnReturn);
00128 gSavedSettings.setF32("ConsoleBackgroundOpacity", mConsoleOpacity);
00129 gSavedSettings.setF32("ChatBubbleOpacity", mBubbleOpacity);
00130 }
00131
00132 void LLPrefsChatImpl::apply()
00133 {
00134
00135 }
00136
00137
00138
00139 LLPrefsChat::LLPrefsChat()
00140 : impl( * new LLPrefsChatImpl() )
00141 { }
00142
00143 LLPrefsChat::~LLPrefsChat()
00144 {
00145 delete &impl;
00146 }
00147
00148 void LLPrefsChat::apply()
00149 {
00150 impl.apply();
00151 LLTextEditor::setLinkColor( gSavedSettings.getColor4("HTMLLinkColor") );
00152 }
00153
00154 void LLPrefsChat::cancel()
00155 {
00156 impl.cancel();
00157 }
00158
00159 LLPanel* LLPrefsChat::getPanel()
00160 {
00161 return &impl;
00162 }