00001
00033 #include "llviewerprecompiledheaders.h"
00034 #include "lllcd.h"
00035
00036 #include "llcontrol.h"
00037 #include "llstatusbar.h"
00038 #include "llviewerregion.h"
00039 #include "llviewerstats.h"
00040 #include "lluictrlfactory.h"
00041 #include "llviewercontrol.h"
00042
00043 #if LL_LCD_COMPILE
00044
00045 extern LLControlGroup gSavedSettings;
00046
00047 #define ICON_WIDTH 28
00048
00049 #if LL_WINDOWS
00050
00051 #include "EZ_LCD.h"
00052 #include "lllogitechlcd.h"
00053
00054 LLLCD *gLcdScreen = NULL;
00055
00056
00057 LLPanel *bogus = NULL;
00058
00059
00060 void CreateLCDDebugWindows()
00061 {
00062 if (gLcdScreen->Enabled())
00063 {
00064
00065 bogus = new LLPanel();
00066 LLUICtrlFactory::getInstance()->buildPanel(bogus, "lcd_text.xml");
00067
00068 LLLCDPageGroup *pageGroup = NULL;
00069 pageGroup = new llDefaultPageGroup(gLcdScreen->mLCD, LLLCD::kLCDDefault, gLcdScreen->mSLIcon);
00070
00071 gLcdScreen->mPageGroupArray.push_back(pageGroup);
00072
00073 pageGroup = new LLChatPageGroup(gLcdScreen->mLCD, LLLCD::kLCDChat, gLcdScreen->mSLIcon);
00074
00075 gLcdScreen->mPageGroupArray.push_back(pageGroup);
00076
00077 pageGroup = new LLIMPageGroup(gLcdScreen->mLCD, LLLCD::kLCDIM, gLcdScreen->mSLIcon);
00078
00079 gLcdScreen->mPageGroupArray.push_back(pageGroup);
00080
00081 pageGroup = new LLDebugPageGroup(gLcdScreen->mLCD, LLLCD::kLCDDebug, gLcdScreen->mSLIcon);
00082
00083 gLcdScreen->mPageGroupArray.push_back(pageGroup);
00084
00085 pageGroup = new LLLindenPageGroup(gLcdScreen->mLCD, LLLCD::kLCDLinden, gLcdScreen->mSLIcon);
00086
00087 gLcdScreen->mPageGroupArray.push_back(pageGroup);
00088
00089 pageGroup = new LLRegionPageGroup(gLcdScreen->mLCD, LLLCD::kLCDRegion, gLcdScreen->mSLIcon);
00090
00091 gLcdScreen->mPageGroupArray.push_back(pageGroup);
00092
00093 pageGroup = new LLDebugConsolePageGroup(gLcdScreen->mLCD, LLLCD::kLCDDebugConsole, gLcdScreen->mSLIcon);
00094
00095 gLcdScreen->mPageGroupArray.push_back(pageGroup);
00096 }
00097 }
00098
00099
00100 void AddNewIMToLCD(const LLString &newLine)
00101 {
00102 if (gLcdScreen->Enabled())
00103 {
00104 LLIMPageGroup *imGroup = (LLIMPageGroup *)gLcdScreen->mPageGroupArray[2];
00105 imGroup->InsertText(newLine);
00106 }
00107 }
00108
00109 void AddNewChatToLCD(const LLString &newLine)
00110 {
00111 if (gLcdScreen->Enabled())
00112 {
00113 LLChatPageGroup *chatGroup = (LLChatPageGroup *)gLcdScreen->mPageGroupArray[1];
00114 chatGroup->InsertText(newLine);
00115 }
00116 }
00117
00118 void AddNewDebugConsoleToLCD(const LLWString &newLine)
00119 {
00120 if (gLcdScreen->Enabled())
00121 {
00122 LLDebugConsolePageGroup *debugGroup = (LLDebugConsolePageGroup *)gLcdScreen->mPageGroupArray[6];
00123 debugGroup->InsertText(newLine);
00124 }
00125 }
00126
00128
00129
00130
00132
00133 void LLDebugConsolePageGroup::UpdateDetails()
00134 {
00135 mLCD->ModifyControlsOnPage(mPageArray[0].mPageIndex);
00136 mLCD->SetText(mPageArray[0].mDisplayItemArray[0], (LPCTSTR)(wstring_to_utf16str(mLine1).c_str()));
00137 mLCD->SetText(mPageArray[0].mDisplayItemArray[1], (LPCTSTR)(wstring_to_utf16str(mLine2).c_str()));
00138 mLCD->SetText(mPageArray[0].mDisplayItemArray[2], (LPCTSTR)(wstring_to_utf16str(mLine3).c_str()));
00139 }
00140
00141 void LLDebugConsolePageGroup::GetDisplayable()
00142 {
00143 mDisplayPage = gSavedSettings.getBOOL("DisplayDebugConsole");
00144 }
00145
00146 void LLDebugConsolePageGroup::InsertText(const LLWString &newLine)
00147 {
00148 mLine1 = mLine2;
00149 mLine2 = mLine3;
00150 mLine3 = newLine;
00151 }
00152
00153 LLDebugConsolePageGroup::LLDebugConsolePageGroup(CEzLcd *LCD, int type, HICON SLIcon)
00154 :LLLCDPageGroup(LCD, type, SLIcon)
00155 {
00156
00157 LLLCDSpecificPage newPage;
00158 newPage.mPageIndex = mLCD->AddNewPage() - 1;
00159 mLCD->ModifyControlsOnPage(newPage.mPageIndex);
00160
00161
00162
00163
00164 HANDLE m_rightIcon = mLCD->AddIcon(mSLIcon, 32, 32);
00165 mLCD->SetOrigin(m_rightIcon, 0, 0);
00166
00167
00168 HANDLE title = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_CENTER, 128);
00169 mLCD->SetOrigin(title, 32, 0);
00170 mLCD->SetText(title, _T("Debug Console"));
00171
00172
00173 HANDLE chatLine = mLCD->AddText(LG_SCROLLING_TEXT, LG_SMALL, DT_LEFT, 160 - ICON_WIDTH);
00174 mLCD->SetOrigin(chatLine, ICON_WIDTH, 11);
00175 mLCD->SetText(chatLine, _T(""));
00176 newPage.mDisplayItemArray.push_back(chatLine);
00177
00178
00179 chatLine = mLCD->AddText(LG_SCROLLING_TEXT, LG_SMALL, DT_LEFT, 160 - ICON_WIDTH);
00180 mLCD->SetOrigin(chatLine, ICON_WIDTH, 22);
00181 mLCD->SetText(chatLine, _T(""));
00182 newPage.mDisplayItemArray.push_back(chatLine);
00183
00184
00185 chatLine = mLCD->AddText(LG_SCROLLING_TEXT, LG_SMALL, DT_LEFT, 160 - ICON_WIDTH);
00186 mLCD->SetOrigin(chatLine, ICON_WIDTH, 33);
00187 mLCD->SetText(chatLine, _T(""));
00188 newPage.mDisplayItemArray.push_back(chatLine);
00189
00190
00191 mPageArray.push_back(newPage);
00192 }
00193
00195
00196
00197
00199
00200 void LLDebugPageGroup::UpdateDetails()
00201 {
00202 mLCD->ModifyControlsOnPage(mPageArray[0].mPageIndex);
00203 LLString ping = "1000";
00204 LLString packetsIn = "0";
00205 LLString packetsOut = "0";
00206 LLString packetLoss = "0";
00207 LLString fps = "0";
00208 LLString simfps = "0";
00209
00210 if (gStatusBar)
00211 {
00212 ping = llformat("%d", gStatusBar->mRegionDetails.mPing);
00213 }
00214
00215 packetLoss = llformat("%.1f%%", LLViewerStats::getInstance()->mPacketsLostPercentStat.getCurrent());
00216 simfps = llformat("%d", (int)LLViewerStats::getInstance()->mSimFPS.getCurrent());
00217 fps = llformat("%.1f%", LLViewerStats::getInstance()->mFPSStat.getMeanPerSec());
00218 packetsIn = llformat("%d", (int)LLViewerStats::getInstance()->mSimInPPS.getCurrent());
00219 packetsOut = llformat("%d", (int)LLViewerStats::getInstance()->mSimOutPPS.getCurrent());
00220
00221
00222 mLCD->SetText(mPageArray[0].mDisplayItemArray[0], (LPCTSTR)(utf8str_to_utf16str(fps).c_str()));
00223
00224 mLCD->SetText(mPageArray[0].mDisplayItemArray[1], (LPCTSTR)(utf8str_to_utf16str(simfps).c_str()));
00225
00226 mLCD->SetText(mPageArray[0].mDisplayItemArray[2], (LPCTSTR)(utf8str_to_utf16str(packetsIn).c_str()));
00227
00228 mLCD->SetText(mPageArray[0].mDisplayItemArray[3], (LPCTSTR)(utf8str_to_utf16str(packetsOut).c_str()));
00229
00230 mLCD->SetText(mPageArray[0].mDisplayItemArray[4], (LPCTSTR)(utf8str_to_utf16str(packetLoss).c_str()));
00231
00232 mLCD->SetText(mPageArray[0].mDisplayItemArray[5], (LPCTSTR)(utf8str_to_utf16str(ping).c_str()));
00233 }
00234
00235 void LLDebugPageGroup::GetDisplayable()
00236 {
00237 mDisplayPage = gSavedSettings.getBOOL("DisplayDebug");
00238 }
00239
00240 LLDebugPageGroup::LLDebugPageGroup(CEzLcd *LCD, int type, HICON SLIcon)
00241 :LLLCDPageGroup(LCD, type, SLIcon)
00242 {
00243
00244 LLLCDSpecificPage newPage;
00245 newPage.mPageIndex = mLCD->AddNewPage() - 1;
00246 mLCD->ModifyControlsOnPage(newPage.mPageIndex);
00247
00248
00249
00250
00251 HANDLE m_rightIcon = mLCD->AddIcon(mSLIcon, 32, 32);
00252 mLCD->SetOrigin(m_rightIcon, 0, 0);
00253
00254
00255 HANDLE title = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_CENTER, 128);
00256 mLCD->SetOrigin(title, 32, 0);
00257 mLCD->SetText(title, (LPCTSTR)(utf8str_to_utf16str(bogus->getString("DebugInfo")).c_str()));
00258
00259 HANDLE fpsStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 18);
00260 mLCD->SetOrigin(fpsStatic, ICON_WIDTH, 11);
00261 mLCD->SetText(fpsStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->getString("FPS")).c_str()));
00262
00263 HANDLE fps = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 25);
00264 mLCD->SetOrigin(fps, ICON_WIDTH+25, 11);
00265 mLCD->SetText(fps, _T(""));
00266 newPage.mDisplayItemArray.push_back(fps);
00267
00268 HANDLE simfpsStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 35);
00269 mLCD->SetOrigin(simfpsStatic, ICON_WIDTH+37+25, 11);
00270 mLCD->SetText(simfpsStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->getString("SimFPS")).c_str()));
00271
00272 HANDLE simfps = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 25);
00273 mLCD->SetOrigin(simfps, ICON_WIDTH+37+27+37, 11);
00274 mLCD->SetText(simfps, _T(""));
00275 newPage.mDisplayItemArray.push_back(simfps);
00276
00277 HANDLE packetsinStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 25);
00278 mLCD->SetOrigin(packetsinStatic, ICON_WIDTH, 22);
00279 mLCD->SetText(packetsinStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->getString("Pin")).c_str()));
00280
00281 HANDLE packetsin = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 25);
00282 mLCD->SetOrigin(packetsin, ICON_WIDTH+32, 22);
00283 mLCD->SetText(packetsin, _T(""));
00284 newPage.mDisplayItemArray.push_back(packetsin);
00285
00286 HANDLE packetsoutStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 30);
00287 mLCD->SetOrigin(packetsoutStatic, ICON_WIDTH+37+25, 22);
00288 mLCD->SetText(packetsoutStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->getString("Pout")).c_str()));
00289
00290 HANDLE packetsout = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 25);
00291 mLCD->SetOrigin(packetsout, ICON_WIDTH+37+27+37, 22);
00292 mLCD->SetText(packetsout, _T(""));
00293 newPage.mDisplayItemArray.push_back(packetsout);
00294
00295 HANDLE packetlossStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 30);
00296 mLCD->SetOrigin(packetlossStatic, ICON_WIDTH, 33);
00297 mLCD->SetText(packetlossStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->getString("PLoss")).c_str()));
00298
00299 HANDLE packetloss = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 35);
00300 mLCD->SetOrigin(packetloss, ICON_WIDTH+33, 33);
00301 mLCD->SetText(packetloss, _T(""));
00302 newPage.mDisplayItemArray.push_back(packetloss);
00303
00304 HANDLE pingStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 20);
00305 mLCD->SetOrigin(pingStatic, ICON_WIDTH+32+38, 33);
00306 mLCD->SetText(pingStatic,(LPCTSTR)(utf8str_to_utf16str(bogus->getString("Ping")).c_str()));
00307
00308 HANDLE ping = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 30);
00309 mLCD->SetOrigin(ping, ICON_WIDTH+37+27+37, 33);
00310 mLCD->SetText(ping, _T(""));
00311 newPage.mDisplayItemArray.push_back(ping);
00312
00313
00314 mPageArray.push_back(newPage);
00315 }
00316
00318
00319
00320
00322
00323 void LLLindenPageGroup::UpdateDetails()
00324 {
00325 mLCD->ModifyControlsOnPage(mPageArray[0].mPageIndex);
00326 LLString time = "Unknown";
00327 LLString balance = "Unknown";
00328
00329 if (gStatusBar)
00330 {
00331 time = gStatusBar->mRegionDetails.mTime;
00332 balance = llformat("%d", gStatusBar->mRegionDetails.mBalance);
00333 }
00334
00335
00336 mLCD->SetText(mPageArray[0].mDisplayItemArray[0], (LPCTSTR)(utf8str_to_utf16str(time).c_str()));
00337
00338 mLCD->SetText(mPageArray[0].mDisplayItemArray[1], (LPCTSTR)(utf8str_to_utf16str(balance).c_str()));
00339 }
00340
00341 void LLLindenPageGroup::GetDisplayable()
00342 {
00343 mDisplayPage = gSavedSettings.getBOOL("DisplayLinden");
00344 }
00345
00346 LLLindenPageGroup::LLLindenPageGroup(CEzLcd *LCD, int type, HICON SLIcon)
00347 :LLLCDPageGroup(LCD, type, SLIcon)
00348 {
00349
00350 LLLCDSpecificPage newPage;
00351 newPage.mPageIndex = mLCD->AddNewPage() - 1;
00352 mLCD->ModifyControlsOnPage(newPage.mPageIndex);
00353
00354
00355
00356
00357 HANDLE m_rightIcon = mLCD->AddIcon(mSLIcon, 32, 32);
00358 mLCD->SetOrigin(m_rightIcon, 0, 0);
00359
00360
00361 HANDLE title = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_CENTER, 128);
00362 mLCD->SetOrigin(title, 32, 0);
00363 mLCD->SetText(title, (LPCTSTR)(utf8str_to_utf16str(bogus->getString("AccountDetails")).c_str()));
00364
00365 HANDLE timeStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 30);
00366 mLCD->SetOrigin(timeStatic, ICON_WIDTH, 11);
00367 mLCD->SetText(timeStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->getString("Time")).c_str()));
00368
00369 HANDLE time = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 160 - ICON_WIDTH - 32);
00370 mLCD->SetOrigin(time, ICON_WIDTH+32, 11);
00371 mLCD->SetText(time, _T(""));
00372 newPage.mDisplayItemArray.push_back(time);
00373
00374 HANDLE balanceStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 30);
00375 mLCD->SetOrigin(balanceStatic, ICON_WIDTH, 22);
00376 mLCD->SetText(balanceStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->getString("LBal")).c_str()));
00377
00378 HANDLE balance = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 160 - ICON_WIDTH - 35);
00379 mLCD->SetOrigin(balance, ICON_WIDTH+35, 22);
00380 mLCD->SetText(balance, _T(""));
00381 newPage.mDisplayItemArray.push_back(balance);
00382
00383
00384 mPageArray.push_back(newPage);
00385 }
00386
00388
00389
00390
00392
00393 void LLRegionPageGroup::UpdateDetails()
00394 {
00395 LLString pos = "Unknown";
00396 LLString parcel = "Unknown";
00397 LLString region = "Unknown";
00398 LLString owner = "Unknown";
00399 LLString forsale = bogus->getString("No");
00400 LLString rtype = "Unknown";
00401 LLString sqm = "0";
00402 LLString traffic = "0";
00403
00404
00405 if (gStatusBar)
00406 {
00407 pos = llformat(" %d, %d, %d", gStatusBar->mRegionDetails.mX, gStatusBar->mRegionDetails.mY, gStatusBar->mRegionDetails.mZ);
00408 parcel = gStatusBar->mRegionDetails.mParcelName;
00409 region = gStatusBar->mRegionDetails.mRegionName;
00410 rtype = gStatusBar->mRegionDetails.mAccesString;
00411 sqm = llformat("%d", gStatusBar->mRegionDetails.mArea);
00412 if (gStatusBar->mRegionDetails.mForSale)
00413 {
00414 forsale = bogus->getString("Yes");
00415 }
00416 owner = gStatusBar->mRegionDetails.mOwner;
00417 traffic = llformat("%d", (int)gStatusBar->mRegionDetails.mTraffic);
00418 }
00419
00420
00421 mLCD->ModifyControlsOnPage(mPageArray[0].mPageIndex);
00422
00423 mLCD->SetText(mPageArray[0].mDisplayItemArray[0], (LPCTSTR)(utf8str_to_utf16str(region).c_str()));
00424
00425 mLCD->SetText(mPageArray[0].mDisplayItemArray[1], (LPCTSTR)(utf8str_to_utf16str(parcel).c_str()));
00426
00427 mLCD->SetText(mPageArray[0].mDisplayItemArray[2], (LPCTSTR)(utf8str_to_utf16str(pos).c_str()));
00428
00429 mLCD->SetText(mPageArray[0].mDisplayItemArray[3], (LPCTSTR)(utf8str_to_utf16str(sqm).c_str()));
00430
00431
00432 mLCD->ModifyControlsOnPage(mPageArray[1].mPageIndex);
00433
00434 mLCD->SetText(mPageArray[1].mDisplayItemArray[0], (LPCTSTR)(utf8str_to_utf16str(owner).c_str()));
00435
00436 mLCD->SetText(mPageArray[1].mDisplayItemArray[1], (LPCTSTR)(utf8str_to_utf16str(rtype).c_str()));
00437
00438 mLCD->SetText(mPageArray[1].mDisplayItemArray[2], (LPCTSTR)(utf8str_to_utf16str(forsale).c_str()));
00439
00440 mLCD->SetText(mPageArray[1].mDisplayItemArray[3], (LPCTSTR)(utf8str_to_utf16str(traffic).c_str()));
00441
00442 }
00443
00444 void LLRegionPageGroup::GetDisplayable()
00445 {
00446 mDisplayPage = gSavedSettings.getBOOL("DisplayRegion");
00447 }
00448
00449 LLRegionPageGroup::LLRegionPageGroup(CEzLcd *LCD, int type, HICON SLIcon)
00450 :LLLCDPageGroup(LCD, type, SLIcon)
00451 {
00452
00453 LLLCDSpecificPage newPage;
00454 newPage.mPageIndex = mLCD->AddNewPage() - 1;
00455 mLCD->ModifyControlsOnPage(newPage.mPageIndex);
00456
00457
00458
00459
00460 HANDLE m_rightIcon = mLCD->AddIcon(mSLIcon, 32, 32);
00461 mLCD->SetOrigin(m_rightIcon, 0, 0);
00462
00463
00464 HANDLE title = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_CENTER, 128);
00465 mLCD->SetOrigin(title, 32, 0);
00466 mLCD->SetText(title, (LPCTSTR)(utf8str_to_utf16str(bogus->getString("LocationDetails1")).c_str()));
00467
00468 HANDLE regionNameStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 30);
00469 mLCD->SetOrigin(regionNameStatic, ICON_WIDTH, 11);
00470 mLCD->SetText(regionNameStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->getString("Region")).c_str()));
00471
00472 HANDLE regionName = mLCD->AddText(LG_SCROLLING_TEXT, LG_SMALL, DT_LEFT, 160 - ICON_WIDTH - 30 - 2);
00473 mLCD->SetOrigin(regionName, ICON_WIDTH+32, 11);
00474 mLCD->SetText(regionName, _T(""));
00475 newPage.mDisplayItemArray.push_back(regionName);
00476
00477 HANDLE parcelStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 30);
00478 mLCD->SetOrigin(parcelStatic, ICON_WIDTH, 22);
00479 mLCD->SetText(parcelStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->getString("Parcel")).c_str()));
00480
00481 HANDLE parcel = mLCD->AddText(LG_SCROLLING_TEXT, LG_SMALL, DT_CENTER, 160 - ICON_WIDTH - 30 - 2);
00482 mLCD->SetOrigin(parcel, ICON_WIDTH+32, 22);
00483 mLCD->SetText(parcel, _T(""));
00484 newPage.mDisplayItemArray.push_back(parcel);
00485
00486 HANDLE positionStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 18);
00487 mLCD->SetOrigin(positionStatic, 0, 33);
00488 mLCD->SetText(positionStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->getString("Parcel")).c_str()));
00489
00490 HANDLE position = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 60);
00491 mLCD->SetOrigin(position, 20, 33);
00492 mLCD->SetText(position, _T("100, 100, 100"));
00493 newPage.mDisplayItemArray.push_back(position);
00494
00495 HANDLE sqmStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 18);
00496 mLCD->SetOrigin(sqmStatic, 90, 33);
00497 mLCD->SetText(sqmStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->getString("Sqm")).c_str()));
00498
00499 HANDLE sqm = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 40);
00500 mLCD->SetOrigin(sqm, 90 + 20, 33);
00501 mLCD->SetText(sqm, _T("1000"));
00502 newPage.mDisplayItemArray.push_back(sqm);
00503
00504
00505 mPageArray.push_back(newPage);
00506
00507
00508 LLLCDSpecificPage newPage2;
00509 newPage2.mPageIndex = mLCD->AddNewPage() - 1;
00510 mLCD->ModifyControlsOnPage(newPage2.mPageIndex);
00511
00512
00513
00514
00515 m_rightIcon = mLCD->AddIcon(mSLIcon, 32, 32);
00516 mLCD->SetOrigin(m_rightIcon, 0, 0);
00517
00518
00519 title = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_CENTER, 128);
00520 mLCD->SetOrigin(title, 32, 0);
00521 mLCD->SetText(title, (LPCTSTR)(utf8str_to_utf16str(bogus->getString("LocationDetails2")).c_str()));
00522
00523 HANDLE ownerStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 30);
00524 mLCD->SetOrigin(ownerStatic, ICON_WIDTH, 11);
00525 mLCD->SetText(ownerStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->getString("Owner")).c_str()));
00526
00527 HANDLE owner = mLCD->AddText(LG_SCROLLING_TEXT, LG_SMALL, DT_LEFT, 160 - 30 - ICON_WIDTH - 2);
00528 mLCD->SetOrigin(owner, ICON_WIDTH+32, 11);
00529 mLCD->SetText(owner, _T(""));
00530 newPage2.mDisplayItemArray.push_back(owner);
00531
00532 HANDLE typeStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 30);
00533 mLCD->SetOrigin(typeStatic, ICON_WIDTH, 22);
00534 mLCD->SetText(typeStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->getString("Type")).c_str()));
00535
00536 HANDLE rtype = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 160 - 30 - ICON_WIDTH - 2);
00537 mLCD->SetOrigin(rtype, ICON_WIDTH+32, 22);
00538 mLCD->SetText(rtype, _T(""));
00539 newPage2.mDisplayItemArray.push_back(rtype);
00540
00541 HANDLE forsaleStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 40);
00542 mLCD->SetOrigin(forsaleStatic, 0, 33);
00543 mLCD->SetText(forsaleStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->getString("Forsale")).c_str()));
00544
00545 HANDLE forsale = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 30);
00546 mLCD->SetOrigin(forsale, 42, 33);
00547 mLCD->SetText(forsale, (LPCTSTR)(utf8str_to_utf16str(bogus->getString("No")).c_str()));
00548 newPage2.mDisplayItemArray.push_back(forsale);
00549
00550 HANDLE trafficStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 50);
00551 mLCD->SetOrigin(trafficStatic, 70, 33);
00552 mLCD->SetText(trafficStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->getString("Traffic")).c_str()));
00553
00554 HANDLE traffic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 30);
00555 mLCD->SetOrigin(traffic, 122, 33);
00556 mLCD->SetText(traffic, _T("200"));
00557 newPage2.mDisplayItemArray.push_back(traffic);
00558
00559
00560 mPageArray.push_back(newPage2);
00561 }
00562
00564
00565
00566
00568
00569 void LLChatPageGroup::UpdateDetails()
00570 {
00571 mLCD->ModifyControlsOnPage(mPageArray[0].mPageIndex);
00572 mLCD->SetText(mPageArray[0].mDisplayItemArray[0], (LPCTSTR)(utf8str_to_utf16str(mLine1).c_str()));
00573 mLCD->SetText(mPageArray[0].mDisplayItemArray[1], (LPCTSTR)(utf8str_to_utf16str(mLine2).c_str()));
00574 mLCD->SetText(mPageArray[0].mDisplayItemArray[2], (LPCTSTR)(utf8str_to_utf16str(mLine3).c_str()));
00575 }
00576
00577 void LLChatPageGroup::GetDisplayable()
00578 {
00579 mDisplayPage = gSavedSettings.getBOOL("DisplayChat");
00580 }
00581
00582 void LLChatPageGroup::InsertText(const LLString &newLine)
00583 {
00584 mLine1 = mLine2;
00585 mLine2 = mLine3;
00586 mLine3 = newLine;
00587 }
00588
00589 LLChatPageGroup::LLChatPageGroup(CEzLcd *LCD, int type, HICON SLIcon)
00590 :LLLCDPageGroup(LCD, type, SLIcon)
00591 {
00592 mLine1 = "";
00593 mLine2 = "";
00594 mLine3 = "";
00595
00596 LLLCDSpecificPage newPage;
00597 newPage.mPageIndex = mLCD->AddNewPage() - 1;
00598 mLCD->ModifyControlsOnPage(newPage.mPageIndex);
00599
00600
00601
00602
00603 HANDLE m_rightIcon = mLCD->AddIcon(mSLIcon, 32, 32);
00604 mLCD->SetOrigin(m_rightIcon, 0, 0);
00605
00606
00607 HANDLE title = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_CENTER, 128);
00608 mLCD->SetOrigin(title, 32, 0);
00609 mLCD->SetText(title, (LPCTSTR)(utf8str_to_utf16str(bogus->getString("Last3ChatLines")).c_str()));
00610
00611
00612 HANDLE chatLine = mLCD->AddText(LG_SCROLLING_TEXT, LG_SMALL, DT_LEFT, 160 - ICON_WIDTH);
00613 mLCD->SetOrigin(chatLine, ICON_WIDTH, 11);
00614 mLCD->SetText(chatLine, _T(""));
00615 newPage.mDisplayItemArray.push_back(chatLine);
00616
00617
00618 chatLine = mLCD->AddText(LG_SCROLLING_TEXT, LG_SMALL, DT_LEFT, 160 - ICON_WIDTH);
00619 mLCD->SetOrigin(chatLine, ICON_WIDTH, 22);
00620 mLCD->SetText(chatLine, _T(""));
00621 newPage.mDisplayItemArray.push_back(chatLine);
00622
00623
00624 chatLine = mLCD->AddText(LG_SCROLLING_TEXT, LG_SMALL, DT_LEFT, 160 - ICON_WIDTH);
00625 mLCD->SetOrigin(chatLine, ICON_WIDTH, 33);
00626 mLCD->SetText(chatLine, _T(""));
00627 newPage.mDisplayItemArray.push_back(chatLine);
00628
00629
00630 mPageArray.push_back(newPage);
00631 }
00632
00634
00635
00636
00638
00639 void LLIMPageGroup::UpdateDetails()
00640 {
00641 mLCD->ModifyControlsOnPage(mPageArray[0].mPageIndex);
00642 mLCD->SetText(mPageArray[0].mDisplayItemArray[0], (LPCTSTR)(utf8str_to_utf16str(mLine1).c_str()));
00643 mLCD->SetText(mPageArray[0].mDisplayItemArray[1], (LPCTSTR)(utf8str_to_utf16str(mLine2).c_str()));
00644 mLCD->SetText(mPageArray[0].mDisplayItemArray[2], (LPCTSTR)(utf8str_to_utf16str(mLine3).c_str()));
00645 }
00646
00647 void LLIMPageGroup::GetDisplayable()
00648 {
00649 mDisplayPage = gSavedSettings.getBOOL("DisplayIM");
00650 }
00651
00652 void LLIMPageGroup::InsertText(const LLString &newLine)
00653 {
00654 mLine1 = mLine2;
00655 mLine2 = mLine3;
00656 mLine3 = newLine;
00657 }
00658
00659 LLIMPageGroup::LLIMPageGroup(CEzLcd *LCD, int type, HICON SLIcon)
00660 :LLLCDPageGroup(LCD, type, SLIcon){
00661 mLine1 = "";
00662 mLine2 = "";
00663 mLine3 = "";
00664
00665 LLLCDSpecificPage newPage;
00666 newPage.mPageIndex = mLCD->AddNewPage() - 1;
00667 mLCD->ModifyControlsOnPage(newPage.mPageIndex);
00668
00669
00670
00671
00672 HANDLE m_rightIcon = mLCD->AddIcon(mSLIcon, 32, 32);
00673 mLCD->SetOrigin(m_rightIcon, 0, 0);
00674
00675
00676 HANDLE title = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_CENTER, 128);
00677 mLCD->SetOrigin(title, 32, 0);
00678 mLCD->SetText(title, (LPCTSTR)(utf8str_to_utf16str(bogus->getString("Last3IMLines")).c_str()));
00679
00680
00681 HANDLE chatLine = mLCD->AddText(LG_SCROLLING_TEXT, LG_SMALL, DT_LEFT, 160 - ICON_WIDTH);
00682 mLCD->SetOrigin(chatLine, ICON_WIDTH, 11);
00683 mLCD->SetText(chatLine, _T(""));
00684 newPage.mDisplayItemArray.push_back(chatLine);
00685
00686
00687 chatLine = mLCD->AddText(LG_SCROLLING_TEXT, LG_SMALL, DT_LEFT, 160 - ICON_WIDTH);
00688 mLCD->SetOrigin(chatLine, ICON_WIDTH, 22);
00689 mLCD->SetText(chatLine, _T(""));
00690 newPage.mDisplayItemArray.push_back(chatLine);
00691
00692
00693 chatLine = mLCD->AddText(LG_SCROLLING_TEXT, LG_SMALL, DT_LEFT, 160 - ICON_WIDTH);
00694 mLCD->SetOrigin(chatLine, ICON_WIDTH, 33);
00695 mLCD->SetText(chatLine, _T(""));
00696 newPage.mDisplayItemArray.push_back(chatLine);
00697
00698
00699 mPageArray.push_back(newPage);
00700 }
00701
00702 #endif //LL_WINDOWS
00703 #endif //LL_LCD_COMPILE