Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#include "CreateTokenDialog.h"
#include "LocalizationDialog.h"
#include "vgui_controls/TextEntry.h"
#include "vgui_controls/Button.h"
#include "vgui_controls/MessageBox.h"
#include "tier1/KeyValues.h"
#include "vgui/ILocalize.h"
using namespace vgui;
//-----------------------------------------------------------------------------
// Purpose: Cosntructor
//-----------------------------------------------------------------------------
CCreateTokenDialog::CCreateTokenDialog( CLocalizationDialog *pLocalizationDialog ) : Frame(NULL, "CreateTokenDialog"), m_pLocalizationDialog( m_pLocalizationDialog ) { Assert( m_pLocalizationDialog );
MakePopup();
SetTitle("Create New Token - Localizer", true);
m_pSkipButton = new Button(this, "SkipButton", "&Skip Token"); m_pTokenName = new TextEntry(this, "TokenName");
m_pTokenValue = new TextEntry(this, "TokenValue"); m_pTokenValue->SetMultiline(true); m_pTokenValue->SetCatchEnterKey(true); m_pSkipButton->SetCommand("SkipToken"); m_pSkipButton->SetVisible(false);
LoadControlSettings("Resource/CreateTokenDialog.res"); }
//-----------------------------------------------------------------------------
// Purpose: Destructor
//-----------------------------------------------------------------------------
CCreateTokenDialog::~CCreateTokenDialog() { }
//-----------------------------------------------------------------------------
// Purpose: prompts user to create a single token
//-----------------------------------------------------------------------------
void CCreateTokenDialog::CreateSingleToken() { // bring us to the front
SetVisible(true); RequestFocus(); MoveToFront(); m_pTokenName->RequestFocus(); m_pSkipButton->SetVisible(false);
m_bMultiToken = false; }
//-----------------------------------------------------------------------------
// Purpose: loads a file to create multiple tokens
//-----------------------------------------------------------------------------
void CCreateTokenDialog::CreateMultipleTokens() { SetVisible(true); RequestFocus(); MoveToFront(); m_pTokenValue->RequestFocus(); m_pSkipButton->SetVisible(true);
m_bMultiToken = true;
//!! read tokens from file, prompt user to each in turn
}
//-----------------------------------------------------------------------------
// Purpose: Handles an OK message, creating the current token
//-----------------------------------------------------------------------------
void CCreateTokenDialog::OnOK() { // get the data
char tokenName[1024], tokenValue[1024]; m_pTokenName->GetText( tokenName, sizeof( tokenName ) ); m_pTokenValue->GetText( tokenValue, sizeof( tokenValue ) );
if ( Q_strlen( tokenName ) < 4 ) { MessageBox *box = new MessageBox("Create Token Error", "Could not create token.\nToken names need to be at least 4 characters long."); box->DoModal(); } else { // create the token
wchar_t unicodeString[1024]; g_pVGuiLocalize->ConvertANSIToUnicode(tokenValue, unicodeString, sizeof(unicodeString) / sizeof(wchar_t)); g_pVGuiLocalize->AddString(tokenName, unicodeString, m_pLocalizationDialog->GetFileName() );
// notify the dialog creator
PostActionSignal(new KeyValues("TokenCreated", "name", tokenName));
// close
if (!m_bMultiToken) { PostMessage(this, new KeyValues("Close")); } } }
//-----------------------------------------------------------------------------
// Purpose: skips the current token in the multitoken edit mode
//-----------------------------------------------------------------------------
void CCreateTokenDialog::OnSkip() { }
//-----------------------------------------------------------------------------
// Purpose: handles a button command
// Input : *command -
//-----------------------------------------------------------------------------
void CCreateTokenDialog::OnCommand(const char *command) { if (!stricmp(command, "OK")) { OnOK(); } else if (!stricmp(command, "SkipToken")) { OnSkip(); } else { BaseClass::OnCommand(command); } }
//-----------------------------------------------------------------------------
// Purpose: handles the close message
//-----------------------------------------------------------------------------
void CCreateTokenDialog::OnClose() { BaseClass::OnClose(); MarkForDeletion(); }
|