diff options
-rw-r--r-- | indra/newview/llfloaterchat.cpp | 17 | ||||
-rw-r--r-- | indra/newview/llfloaterpreference.cpp | 35 | ||||
-rw-r--r-- | indra/newview/llfloaterpreference.h | 2 | ||||
-rw-r--r-- | indra/newview/llstatusbar.cpp | 63 | ||||
-rw-r--r-- | indra/newview/llstatusbar.h | 20 | ||||
-rw-r--r-- | indra/newview/llviewerparcelmgr.h | 1 | ||||
-rw-r--r-- | indra/newview/llviewerregion.cpp | 5 | ||||
-rw-r--r-- | indra/newview/llviewerregion.h | 3 | ||||
-rw-r--r-- | indra/newview/llviewerstats.cpp | 6 | ||||
-rw-r--r-- | indra/newview/llviewerstats.h | 3 | ||||
-rw-r--r-- | indra/newview/res/icon1.ico | bin | 0 -> 766 bytes | |||
-rw-r--r-- | indra/newview/res/resource.h | 3 |
12 files changed, 154 insertions, 4 deletions
diff --git a/indra/newview/llfloaterchat.cpp b/indra/newview/llfloaterchat.cpp index 75c68acb78..12b0e953b6 100644 --- a/indra/newview/llfloaterchat.cpp +++ b/indra/newview/llfloaterchat.cpp @@ -47,6 +47,9 @@ #include "llfloaterhtml.h" #include "llweb.h" +// Used for LCD display +extern void AddNewIMToLCD(const LLString &newLine); +extern void AddNewChatToLCD(const LLString &newLine); // // Constants // @@ -340,6 +343,20 @@ void LLFloaterChat::addChat(const LLChat& chat, chat.mChatType == CHAT_TYPE_DEBUG_MSG && !gSavedSettings.getBOOL("ScriptErrorsAsChat"); +#if LL_WINDOWS + // add into LCD displays + if (!invisible_script_debug_chat) + { + if (!from_instant_message) + { + AddNewChatToLCD(chat.mText); + } + else + { + AddNewIMToLCD(chat.mText); + } + } +#endif if (!invisible_script_debug_chat && !chat.mMuted && gConsole diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 8a1a0dcaaa..68ab91402b 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -31,6 +31,7 @@ #include "llpaneldebug.h" #include "llpanelgeneral.h" #include "llpanelinput.h" +#include "llpanelLCD.h" #include "llpanelmsgs.h" #include "llpanelweb.h" #include "llprefschat.h" @@ -56,6 +57,14 @@ const S32 PREF_FLOATER_MIN_HEIGHT = 2 * SCROLLBAR_SIZE + 2 * LLPANEL_BORDER_WIDT LLFloaterPreference* LLFloaterPreference::sInstance = NULL; +#if LL_WINDOWS +// for Logitech LCD keyboards / speakers +#ifndef LL_LOGITECH_LCD_H +#include "lllogitechlcd.h" +#endif +extern llLCD *gLcdScreen; +#endif + // Must be done at run time, not compile time. JC S32 pref_min_width() { @@ -84,6 +93,7 @@ LLPreferenceCore::LLPreferenceCore(LLTabContainerCommon* tab_container, LLButton mDisplayPanel(NULL), mDisplayPanel2(NULL), mAudioPanel(NULL), + mLCDPanel(NULL), mMsgPanel(NULL) { mGeneralPanel = new LLPanelGeneral(); @@ -128,6 +138,15 @@ LLPreferenceCore::LLPreferenceCore(LLTabContainerCommon* tab_container, LLButton mTabContainer->addTabPanel(mPrefsIM->getPanel(), mPrefsIM->getPanel()->getLabel(), FALSE, onTabChanged, mTabContainer); mPrefsIM->getPanel()->setDefaultBtn(default_btn); +#if LL_WINDOWS + // only add this option if we actually have a logitech keyboard / speaker set + if (gLcdScreen->Enabled()) + { + mLCDPanel = new LLPanelLCD(); + mTabContainer->addTabPanel(mLCDPanel, mLCDPanel->getLabel(), FALSE, onTabChanged, mTabContainer); + mLCDPanel->setDefaultBtn(default_btn); + } +#endif mMsgPanel = new LLPanelMsgs(); mTabContainer->addTabPanel(mMsgPanel, mMsgPanel->getLabel(), FALSE, onTabChanged, mTabContainer); mMsgPanel->setDefaultBtn(default_btn); @@ -212,6 +231,14 @@ void LLPreferenceCore::apply() #if LL_LIBXUL_ENABLED mWebPanel->apply(); #endif +#if LL_WINDOWS + // only add this option if we actually have a logitech keyboard / speaker set + if (gLcdScreen->Enabled()) + { + mLCDPanel->apply(); + } +#endif +// mWebPanel->apply(); } @@ -230,6 +257,14 @@ void LLPreferenceCore::cancel() #if LL_LIBXUL_ENABLED mWebPanel->cancel(); #endif +#if LL_WINDOWS + // only add this option if we actually have a logitech keyboard / speaker set + if (gLcdScreen->Enabled()) + { + mLCDPanel->cancel(); + } +#endif +// mWebPanel->cancel(); } // static diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h index dcfa123137..c40532fb48 100644 --- a/indra/newview/llfloaterpreference.h +++ b/indra/newview/llfloaterpreference.h @@ -20,6 +20,7 @@ class LLPanelGeneral; class LLPanelInput; +class LLPanelLCD; class LLPanelDisplay; class LLPanelDisplay2; class LLPanelDisplay3; @@ -65,6 +66,7 @@ private: LLPrefsChat *mPrefsChat; LLPrefsIM *mPrefsIM; LLPanelMsgs *mMsgPanel; + LLPanelLCD *mLCDPanel; LLPanelWeb *mWebPanel; }; diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index 72aca1999e..6990102d24 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -403,6 +403,10 @@ void LLStatusBar::refresh() pos_y -= pos_y % 2; } + mRegionDetails.mTime = mTextTime->getText(); + mRegionDetails.mBalance = mBalance; + mRegionDetails.mAccesString = (char *)region->getSimAccessString(); + mRegionDetails.mPing = region->getNetDetailsForLCD(); if (parcel && parcel->getName()) { location_name = region->getName() @@ -410,6 +414,43 @@ void LLStatusBar::refresh() pos_x, pos_y, pos_z, region->getSimAccessString(), parcel->getName()); + + // keep these around for the LCD to use + mRegionDetails.mRegionName = region->getName(); + mRegionDetails.mParcelName = (char *)parcel->getName(); + mRegionDetails.mX = pos_x; + mRegionDetails.mY = pos_y; + mRegionDetails.mZ = pos_z; + mRegionDetails.mArea = parcel->getArea(); + mRegionDetails.mForSale = parcel->getForSale(); + mRegionDetails.mTraffic = gParcelMgr->getDwelling(); + + if (parcel->isPublic()) + { + snprintf(mRegionDetails.mOwner, MAX_STRING, "Public"); + } + else + { + if (parcel->getIsGroupOwned()) + { + if(!parcel->getGroupID().isNull()) + { + gCacheName->getGroupName(parcel->getGroupID(), mRegionDetails.mOwner); + } + else + { + snprintf(mRegionDetails.mOwner, MAX_STRING, "Group Owned"); + } + } + else + { + // Figure out the owner's name + char owner_first[MAX_STRING]; /*Flawfinder: ignore*/ + char owner_last[MAX_STRING]; /*Flawfinder: ignore*/ + gCacheName->getName(parcel->getOwnerID(), owner_first, owner_last); + snprintf(mRegionDetails.mOwner, MAX_STRING, "%s %s", owner_first, owner_last); /* Flawfinder: ignore */ + } + } } else { @@ -417,12 +458,34 @@ void LLStatusBar::refresh() + llformat(" %d, %d, %d (%s)", pos_x, pos_y, pos_z, region->getSimAccessString()); + // keep these around for the LCD to use + mRegionDetails.mRegionName = region->getName(); + mRegionDetails.mParcelName = "Unknown"; + + mRegionDetails.mX = pos_x; + mRegionDetails.mY = pos_y; + mRegionDetails.mZ = pos_z; + mRegionDetails.mArea = 0; + mRegionDetails.mForSale = FALSE; + snprintf(mRegionDetails.mOwner, MAX_STRING, "Unknown"); + mRegionDetails.mTraffic = 0.0f; } } else { // no region location_name = "(Unknown)"; + // keep these around for the LCD to use + mRegionDetails.mRegionName = LLString("Unknown"); + mRegionDetails.mParcelName = "Unknown"; + mRegionDetails.mAccesString = "Unknown"; + mRegionDetails.mX = 0; + mRegionDetails.mY = 0; + mRegionDetails.mZ = 0; + mRegionDetails.mArea = 0; + mRegionDetails.mForSale = FALSE; + snprintf(mRegionDetails.mOwner, MAX_STRING, "Unknown"); + mRegionDetails.mTraffic = 0.0f; } mTextParcelName->setText(location_name); diff --git a/indra/newview/llstatusbar.h b/indra/newview/llstatusbar.h index c44c7acffe..f33a5d93e1 100644 --- a/indra/newview/llstatusbar.h +++ b/indra/newview/llstatusbar.h @@ -24,6 +24,25 @@ class LLUUID; class LLFrameTimer; class LLStatGraph; +// used by LCD screen +class cLLRegionDetails +{ +public: + LLString mRegionName; + char *mParcelName; + char *mAccesString; + S32 mX; + S32 mY; + S32 mZ; + S32 mArea; + BOOL mForSale; + char mOwner[MAX_STRING]; + F32 mTraffic; + S32 mBalance; + LLString mTime; + U32 mPing; +}; + class LLStatusBar : public LLPanel { @@ -60,6 +79,7 @@ public: S32 getSquareMetersCredit() const; S32 getSquareMetersCommitted() const; S32 getSquareMetersLeft() const; + cLLRegionDetails mRegionDetails; protected: static void onClickParcelInfo(void*); diff --git a/indra/newview/llviewerparcelmgr.h b/indra/newview/llviewerparcelmgr.h index 20c6b6895d..e629b65af1 100644 --- a/indra/newview/llviewerparcelmgr.h +++ b/indra/newview/llviewerparcelmgr.h @@ -107,6 +107,7 @@ public: F32 getSelectionHeight() const { return F32(mEastNorth.mdV[VY] - mWestSouth.mdV[VY]); } BOOL getSelection(LLVector3d &min, LLVector3d &max) { min = mWestSouth; max = mEastNorth; return !selectionEmpty();} LLViewerRegion* getSelectionRegion(); + F32 getDwelling() const { return mSelectedDwell;} void getDisplayInfo(S32* area, S32* claim, S32* rent, BOOL* for_sale, F32* dwell); diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index 6fd31f3e72..076ae2ecce 100644 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -731,7 +731,10 @@ void LLViewerRegion::calculateCameraDistance() mCameraDistanceSquared = (F32)(gAgent.getCameraPositionGlobal() - getCenterGlobal()).magVecSquared(); } -// ---------------- Friends ---------------- +U32 LLViewerRegion::getNetDetailsForLCD() +{ + return mPingDelay; +} std::ostream& operator<<(std::ostream &s, const LLViewerRegion ®ion) { diff --git a/indra/newview/llviewerregion.h b/indra/newview/llviewerregion.h index 05c37fe08f..a1b9cfd3ea 100644 --- a/indra/newview/llviewerregion.h +++ b/indra/newview/llviewerregion.h @@ -212,6 +212,9 @@ public: friend std::ostream& operator<<(std::ostream &s, const LLViewerRegion ®ion); + // used by LCD to get details for debug screen + U32 getNetDetailsForLCD(); + public: struct CompareDistance { diff --git a/indra/newview/llviewerstats.cpp b/indra/newview/llviewerstats.cpp index f1df0d39e0..fefa86123d 100644 --- a/indra/newview/llviewerstats.cpp +++ b/indra/newview/llviewerstats.cpp @@ -153,7 +153,11 @@ const StatAttributes STAT_INFO[LLViewerStats::ST_COUNT] = // ST_TEX_BAKES StatAttributes("Texture Bakes", FALSE, FALSE), // ST_TEX_REBAKES - StatAttributes("Texture Rebakes", FALSE, FALSE) + StatAttributes("Texture Rebakes", FALSE, FALSE), + + // ST_LOGITECH_KEYBOARD + StatAttributes("Logitech LCD", FALSE, FALSE) + }; LLViewerStats::LLViewerStats() diff --git a/indra/newview/llviewerstats.h b/indra/newview/llviewerstats.h index 33ed6bcbcf..f0ef106054 100644 --- a/indra/newview/llviewerstats.h +++ b/indra/newview/llviewerstats.h @@ -137,8 +137,9 @@ public: ST_WINDOW_HEIGHT = 55, ST_TEX_BAKES = 56, ST_TEX_REBAKES = 57, + ST_LOGITECH_LCD = 58, - ST_COUNT = 58 + ST_COUNT = 59 }; diff --git a/indra/newview/res/icon1.ico b/indra/newview/res/icon1.ico Binary files differnew file mode 100644 index 0000000000..ad607598fa --- /dev/null +++ b/indra/newview/res/icon1.ico diff --git a/indra/newview/res/resource.h b/indra/newview/res/resource.h index c7e1552dff..e4d01b1050 100644 --- a/indra/newview/res/resource.h +++ b/indra/newview/res/resource.h @@ -19,6 +19,7 @@ #define IDB_LOGIN 149 #define IDC_CURSOR4 153 #define IDC_CURSOR5 154 +#define IDI_LCD_LL_ICON 157 #define IDC_RADIO_56 1000 #define IDC_RADIO_128 1001 #define IDC_RADIO_256 1002 @@ -151,7 +152,7 @@ // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 156 +#define _APS_NEXT_RESOURCE_VALUE 167 #define _APS_NEXT_COMMAND_VALUE 40002 #define _APS_NEXT_CONTROL_VALUE 1139 #define _APS_NEXT_SYMED_VALUE 101 |