Fixed the History and Teleport panels in Instant Messages.

This commit is contained in:
CharleyLevenque
2010-08-22 22:22:24 -04:00
parent 5578e92150
commit 794a5ce848
5 changed files with 49 additions and 0 deletions

View File

@@ -202,6 +202,7 @@ public:
virtual void updateLanguageTextInputArea() {}
virtual void interruptLanguageTextInput() {}
virtual void spawnWebBrowser(const std::string& escaped_url) {};
virtual void ShellEx(const std::string& command) {};
static std::vector<std::string> getDynamicFallbackFontList();

View File

@@ -2918,6 +2918,19 @@ S32 OSMessageBoxWin32(const std::string& text, const std::string& caption, U32 t
return retval;
}
void LLWindowWin32::ShellEx(const std::string& command )
{
LLWString url_wstring = utf8str_to_wstring( command );
llutf16string url_utf16 = wstring_to_utf16str( url_wstring );
SHELLEXECUTEINFO sei = { sizeof( sei ) };
sei.fMask = SEE_MASK_FLAG_DDEWAIT;
sei.nShow = SW_SHOWNORMAL;
sei.lpVerb = L"open";
sei.lpFile = url_utf16.c_str();
ShellExecuteEx( &sei );
}
void LLWindowWin32::spawnWebBrowser(const std::string& escaped_url )
{

View File

@@ -111,6 +111,7 @@ public:
/*virtual*/ void updateLanguageTextInputArea();
/*virtual*/ void interruptLanguageTextInput();
/*virtual*/ void spawnWebBrowser(const std::string& escaped_url);
/*virtual*/ void ShellEx(const std::string& command);
static std::vector<std::string> getDynamicFallbackFontList();

View File

@@ -1290,7 +1290,9 @@ BOOL LLFloaterIMPanel::postBuild()
mInputEditor->setReplaceNewlinesWithSpaces( FALSE );
childSetAction("profile_callee_btn", onClickProfile, this);
childSetAction("profile_tele_btn", onClickTeleport, this);
childSetAction("group_info_btn", onClickGroupInfo, this);
childSetAction("history_btn", onClickHistory, this);
childSetAction("start_call_btn", onClickStartCall, this);
childSetAction("end_call_btn", onClickEndCall, this);
@@ -1776,6 +1778,36 @@ void LLFloaterIMPanel::onClickProfile( void* userdata )
}
}
//static
void LLFloaterIMPanel::onClickTeleport( void* userdata )
{
// Bring up the Profile window
LLFloaterIMPanel* self = (LLFloaterIMPanel*) userdata;
if (self->mOtherParticipantUUID.notNull())
{
handle_lure(self->getOtherParticipantID());
//do a teleport to other part id
//LLFloaterAvatarInfo::showFromDirectory(self->getOtherParticipantID());
}
}
// static
void LLFloaterIMPanel::onClickHistory( void* userdata )
{
LLFloaterIMPanel* self = (LLFloaterIMPanel*) userdata;
if (self->mOtherParticipantUUID.notNull())
{
char command[256];
std::string fullname(gDirUtilp->getScrubbedFileName(self->getTitle()));
sprintf(command, "\"%s\\%s.txt\"", gDirUtilp->getPerAccountChatLogsDir().c_str(),fullname.c_str());
gViewerWindow->getWindow()->ShellEx(command);
llinfos << command << llendl;
}
}
// static
void LLFloaterIMPanel::onClickGroupInfo( void* userdata )
{

View File

@@ -231,6 +231,8 @@ public:
static void onTabClick( void* userdata );
static void onClickProfile( void* userdata );
static void onClickHistory( void* userdata );
static void onClickTeleport( void* userdata );
static void onClickGroupInfo( void* userdata );
static void onClickClose( void* userdata );
static void onClickStartCall( void* userdata );