From 35af28cec1c16e66da3abff4d75a8a68dc381a72 Mon Sep 17 00:00:00 2001 From: McCabe Maxsted Date: Sun, 6 Jun 2010 06:14:18 -0700 Subject: Applied snowglobe-0-v14000-AvatarNameInWindowTitle_v1.patch and set the name in the window title only when running multiple instances --- linden/indra/llwindow/llwindow.h | 1 + linden/indra/llwindow/llwindowheadless.h | 1 + linden/indra/llwindow/llwindowmacosx.cpp | 6 ++++++ linden/indra/llwindow/llwindowmacosx.h | 1 + linden/indra/llwindow/llwindowmesaheadless.h | 1 + linden/indra/llwindow/llwindowsdl.cpp | 5 +++++ linden/indra/llwindow/llwindowsdl.h | 1 + linden/indra/llwindow/llwindowwin32.cpp | 11 +++++++++++ linden/indra/llwindow/llwindowwin32.h | 1 + linden/indra/newview/llappviewer.cpp | 6 +++--- linden/indra/newview/llstartup.cpp | 10 ++++++++++ 11 files changed, 41 insertions(+), 3 deletions(-) (limited to 'linden/indra') diff --git a/linden/indra/llwindow/llwindow.h b/linden/indra/llwindow/llwindow.h index a649766..14759cc 100644 --- a/linden/indra/llwindow/llwindow.h +++ b/linden/indra/llwindow/llwindow.h @@ -107,6 +107,7 @@ public: // currently unused }; public: + virtual void setWindowTitle(std::string &title) {} ; virtual void show() = 0; virtual void hide() = 0; virtual void close() = 0; diff --git a/linden/indra/llwindow/llwindowheadless.h b/linden/indra/llwindow/llwindowheadless.h index 4353d15..e33637d 100644 --- a/linden/indra/llwindow/llwindowheadless.h +++ b/linden/indra/llwindow/llwindowheadless.h @@ -38,6 +38,7 @@ class LLWindowHeadless : public LLWindow { public: + /*virtual*/ void setWindowTitle(std::string &title) {}; /*virtual*/ void show() {}; /*virtual*/ void hide() {}; /*virtual*/ void close() {}; diff --git a/linden/indra/llwindow/llwindowmacosx.cpp b/linden/indra/llwindow/llwindowmacosx.cpp index 4f6df0f..ad99813 100644 --- a/linden/indra/llwindow/llwindowmacosx.cpp +++ b/linden/indra/llwindow/llwindowmacosx.cpp @@ -318,6 +318,12 @@ LLWindowMacOSX::LLWindowMacOSX(const std::string& title, const std::string& name stop_glerror(); } +void LLWindowSDL::setWindowTitle(std::string &title) +{ + CFStringRef string = CFStringCreateWithCString(NULL, title.c_str(), kCFStringEncodingUTF8); + SetWindowTitleWithCFString(mWindow, string); +} + BOOL LLWindowMacOSX::createContext(int x, int y, int width, int height, int bits, BOOL fullscreen, BOOL disable_vsync) { OSStatus err; diff --git a/linden/indra/llwindow/llwindowmacosx.h b/linden/indra/llwindow/llwindowmacosx.h index 3886782..bf5bfc0 100644 --- a/linden/indra/llwindow/llwindowmacosx.h +++ b/linden/indra/llwindow/llwindowmacosx.h @@ -47,6 +47,7 @@ class LLWindowMacOSX : public LLWindow { public: + /*virtual*/ void setWindowTitle(std::string &title); /*virtual*/ void show(); /*virtual*/ void hide(); /*virtual*/ void close(); diff --git a/linden/indra/llwindow/llwindowmesaheadless.h b/linden/indra/llwindow/llwindowmesaheadless.h index ab562d9..d3c2b1d 100644 --- a/linden/indra/llwindow/llwindowmesaheadless.h +++ b/linden/indra/llwindow/llwindowmesaheadless.h @@ -42,6 +42,7 @@ class LLWindowMesaHeadless : public LLWindow { public: + /*virtual*/ void setWindowTitle(std::string &title) {}; /*virtual*/ void show() {}; /*virtual*/ void hide() {}; /*virtual*/ void close() {}; diff --git a/linden/indra/llwindow/llwindowsdl.cpp b/linden/indra/llwindow/llwindowsdl.cpp index 61ef01d..bf339f2 100644 --- a/linden/indra/llwindow/llwindowsdl.cpp +++ b/linden/indra/llwindow/llwindowsdl.cpp @@ -414,6 +414,11 @@ static int x11_detect_VRAM_kb() } #endif // LL_X11 +void LLWindowSDL::setWindowTitle(std::string &title) +{ + SDL_WM_SetCaption(title.c_str(), title.c_str()); +} + BOOL LLWindowSDL::createContext(int x, int y, int width, int height, int bits, BOOL fullscreen, BOOL disable_vsync) { //bool glneedsinit = false; diff --git a/linden/indra/llwindow/llwindowsdl.h b/linden/indra/llwindow/llwindowsdl.h index 632d8fc..39a6007 100644 --- a/linden/indra/llwindow/llwindowsdl.h +++ b/linden/indra/llwindow/llwindowsdl.h @@ -54,6 +54,7 @@ class LLWindowSDL : public LLWindow { public: + /*virtual*/ void setWindowTitle(std::string &title); /*virtual*/ void show(); /*virtual*/ void hide(); /*virtual*/ void close(); diff --git a/linden/indra/llwindow/llwindowwin32.cpp b/linden/indra/llwindow/llwindowwin32.cpp index b2826c8..e47cab4 100644 --- a/linden/indra/llwindow/llwindowwin32.cpp +++ b/linden/indra/llwindow/llwindowwin32.cpp @@ -622,6 +622,17 @@ LLWindowWin32::~LLWindowWin32() mWindowClassName = NULL; } +void LLWindowWin32::setWindowTitle(std::string &title) +{ + int len = title.size() + 1; + wchar_t *wText = new wchar_t[len]; + if (wText == 0) return; + memset(wText, 0, len); + MultiByteToWideChar(CP_ACP, NULL, title.c_str(), -1, wText, len); + SetWindowText(mWindowHandle, wText); + delete [] wText; +} + void LLWindowWin32::show() { ShowWindow(mWindowHandle, SW_SHOW); diff --git a/linden/indra/llwindow/llwindowwin32.h b/linden/indra/llwindow/llwindowwin32.h index d3ae325..cc95993 100644 --- a/linden/indra/llwindow/llwindowwin32.h +++ b/linden/indra/llwindow/llwindowwin32.h @@ -47,6 +47,7 @@ typedef void (*LLW32MsgCallback)(const MSG &msg); class LLWindowWin32 : public LLWindow { public: + /*virtual*/ void setWindowTitle(std::string &title); /*virtual*/ void show(); /*virtual*/ void hide(); /*virtual*/ void close(); diff --git a/linden/indra/newview/llappviewer.cpp b/linden/indra/newview/llappviewer.cpp index b8d0d14..35e7a46 100644 --- a/linden/indra/newview/llappviewer.cpp +++ b/linden/indra/newview/llappviewer.cpp @@ -235,6 +235,9 @@ BOOL gUseQuickTime = TRUE; BOOL gAcceptTOS = FALSE; BOOL gAcceptCriticalMessage = FALSE; +std::string gSecondLife; +std::string gWindowTitle; + eLastExecEvent gLastExecEvent = LAST_EXEC_NORMAL; LLSD gDebugInfo; @@ -314,9 +317,6 @@ const char* const VIEWER_WINDOW_CLASSNAME = "Imprudence"; const char *VFS_DATA_FILE_BASE = "data.db2.x."; const char *VFS_INDEX_FILE_BASE = "index.db2.x."; -static std::string gSecondLife; -static std::string gWindowTitle; - std::string gLoginPage; std::vector gLoginURIs; static std::string gHelperURI; diff --git a/linden/indra/newview/llstartup.cpp b/linden/indra/newview/llstartup.cpp index 4cb7061..82b950e 100644 --- a/linden/indra/newview/llstartup.cpp +++ b/linden/indra/newview/llstartup.cpp @@ -214,6 +214,8 @@ std::string SCREEN_LAST_FILENAME = "screen_last.bmp"; // extern S32 gStartImageWidth; extern S32 gStartImageHeight; +extern std::string gSecondLife; +extern std::string gWindowTitle; // // local globals @@ -2144,6 +2146,14 @@ bool idle_startup() { LL_DEBUGS("AppInitStartupState") << "STATE_INVENTORY_SEND" << LL_ENDL; + // Change the window title to include the avatar name if we're using multiple viewers -- MC + if (gSavedSettings.getBOOL("AllowMultipleViewers")) + { + gWindowTitle = gSecondLife + " - " + firstname + " " + lastname; + LLStringUtil::truncate(gWindowTitle, 255); + gViewerWindow->getWindow()->setWindowTitle(gWindowTitle); + } + // unpack thin inventory LLUserAuth::options_t options; options.clear(); -- cgit v1.1