SL-16102 Set window title to agent name (child of SL-15999 Support for low overhead, non interactive viewer sessions)
parent
dc48e174c4
commit
851fef6801
|
|
@ -137,6 +137,12 @@ BOOL LLWindow::canDelete()
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
//virtual
|
||||
void LLWindow::setTitle(const std::string title)
|
||||
{
|
||||
// the action happens in the platform specific impl
|
||||
}
|
||||
|
||||
// virtual
|
||||
void LLWindow::incBusyCount()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -86,6 +86,13 @@ public:
|
|||
virtual void showCursorFromMouseMove() = 0;
|
||||
virtual void hideCursorUntilMouseMove() = 0;
|
||||
|
||||
// Provide a way to set the Viewer window title after the
|
||||
// windows has been created. The initial use case for this
|
||||
// is described in SL-16102 (update window title with agent
|
||||
// name, location etc. for non-interactive viewer) but it
|
||||
// may also be useful in other cases.
|
||||
virtual void setTitle(const std::string title);
|
||||
|
||||
// These two functions create a way to make a busy cursor instead
|
||||
// of an arrow when someone's busy doing something. Draw an
|
||||
// arrow/hour if busycount > 0.
|
||||
|
|
|
|||
|
|
@ -1811,6 +1811,13 @@ void LLWindowWin32::moveWindow( const LLCoordScreen& position, const LLCoordScre
|
|||
MoveWindow(mWindowHandle, position.mX, position.mY, size.mX, size.mY, TRUE);
|
||||
}
|
||||
|
||||
void LLWindowWin32::setTitle(const std::string title)
|
||||
{
|
||||
// TODO: Do we need to use the wide string version of this call
|
||||
// to support non-ascii usernames (and region names??)
|
||||
SetWindowTextA(mWindowHandle, title.c_str());
|
||||
}
|
||||
|
||||
BOOL LLWindowWin32::setCursorPosition(const LLCoordWindow position)
|
||||
{
|
||||
mMousePositionModified = TRUE;
|
||||
|
|
|
|||
|
|
@ -58,7 +58,8 @@ public:
|
|||
/*virtual*/ BOOL setSizeImpl(LLCoordScreen size);
|
||||
/*virtual*/ BOOL setSizeImpl(LLCoordWindow size);
|
||||
/*virtual*/ BOOL switchContext(BOOL fullscreen, const LLCoordScreen &size, BOOL disable_vsync, const LLCoordScreen * const posp = NULL);
|
||||
/*virtual*/ BOOL setCursorPosition(LLCoordWindow position);
|
||||
/*virtual*/ void setTitle(const std::string title);
|
||||
/*virtual*/ BOOL setCursorPosition(LLCoordWindow position);
|
||||
/*virtual*/ BOOL getCursorPosition(LLCoordWindow *position);
|
||||
/*virtual*/ void showCursor();
|
||||
/*virtual*/ void hideCursor();
|
||||
|
|
|
|||
|
|
@ -16666,6 +16666,17 @@
|
|||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>UpdateAppWindowTitleBar</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Updates the application window title bar with brief information about user/location</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
</map>
|
||||
</llsd>
|
||||
|
||||
|
|
|
|||
|
|
@ -39,6 +39,11 @@
|
|||
#include "llviewerregion.h"
|
||||
#include "llworldmap.h"
|
||||
#include "llagentui.h"
|
||||
#include "llwindow.h"
|
||||
#include "llviewerwindow.h"
|
||||
#include "llavatarname.h"
|
||||
#include "llavatarnamecache.h"
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// LLTeleportHistoryItem
|
||||
|
|
@ -174,6 +179,28 @@ void LLTeleportHistory::updateCurrentLocation(const LLVector3d& new_pos)
|
|||
if (!mGotInitialUpdate)
|
||||
mGotInitialUpdate = true;
|
||||
|
||||
// update Viewer window title with username and region name
|
||||
// if we are in "non-interactive mode" (SL-15999) or the debug
|
||||
// setting to allow it is enabled (may be useful in other situations)
|
||||
if (gNonInteractive || gSavedSettings.getBOOL("UpdateAppWindowTitleBar"))
|
||||
{
|
||||
LLAvatarName av_name;
|
||||
if (LLAvatarNameCache::get(gAgent.getID(), &av_name))
|
||||
{
|
||||
if (gAgent.getRegion() && gViewerWindow && gViewerWindow->getWindow())
|
||||
{
|
||||
std::string region = gAgent.getRegion()->getName();
|
||||
std::string username = av_name.getUserName();
|
||||
|
||||
// this first pass simply displays username and region name
|
||||
// but could easily be extended to include other details like
|
||||
// X/Y/Z location within a region etc.
|
||||
std::string new_title = STRINGIZE(username << " @ " << region);
|
||||
gViewerWindow->getWindow()->setTitle(new_title);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Signal the interesting party that we've changed.
|
||||
onHistoryChanged();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue