reorganize files and add btgui
This commit is contained in:
111
btgui/Gwen/Utility.cpp
Normal file
111
btgui/Gwen/Utility.cpp
Normal file
@@ -0,0 +1,111 @@
|
||||
/*
|
||||
GWEN
|
||||
Copyright (c) 2010 Facepunch Studios
|
||||
See license in Gwen.h
|
||||
*/
|
||||
|
||||
|
||||
#include "Gwen/ToolTip.h"
|
||||
#include "Gwen/Utility.h"
|
||||
|
||||
using namespace Gwen;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(disable:4267)// conversion from 'size_t' to 'int', possible loss of data
|
||||
#endif
|
||||
|
||||
UnicodeString Gwen::Utility::Format( const wchar_t* fmt, ... )
|
||||
{
|
||||
wchar_t strOut[ 4096 ];
|
||||
|
||||
va_list s;
|
||||
va_start( s, fmt );
|
||||
GwenUtil_VSWPrintFSafeSized( strOut, fmt, s );
|
||||
va_end(s);
|
||||
|
||||
UnicodeString str = strOut;
|
||||
return str;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void Gwen::Utility::Strings::Split( const Gwen::String& str, const Gwen::String& seperator, Strings::List& outbits, bool bLeave )
|
||||
{
|
||||
int iOffset = 0;
|
||||
int iLength = str.length();
|
||||
int iSepLen = seperator.length();
|
||||
|
||||
size_t i = str.find( seperator, 0 );
|
||||
while ( i != std::string::npos )
|
||||
{
|
||||
outbits.push_back( str.substr( iOffset, i-iOffset ) );
|
||||
iOffset = i + iSepLen;
|
||||
|
||||
i = str.find( seperator, iOffset );
|
||||
if ( bLeave ) iOffset -= iSepLen;
|
||||
}
|
||||
|
||||
outbits.push_back( str.substr( iOffset, iLength-iOffset ) );
|
||||
}
|
||||
|
||||
void Gwen::Utility::Strings::Split( const Gwen::UnicodeString& str, const Gwen::UnicodeString& seperator, Strings::UnicodeList& outbits, bool bLeave )
|
||||
{
|
||||
int iOffset = 0;
|
||||
int iLength = str.length();
|
||||
int iSepLen = seperator.length();
|
||||
|
||||
size_t i = str.find( seperator, 0 );
|
||||
while ( i != std::wstring::npos )
|
||||
{
|
||||
outbits.push_back( str.substr( iOffset, i-iOffset ) );
|
||||
iOffset = i + iSepLen;
|
||||
|
||||
i = str.find( seperator, iOffset );
|
||||
if ( bLeave ) iOffset -= iSepLen;
|
||||
}
|
||||
|
||||
outbits.push_back( str.substr( iOffset, iLength-iOffset ) );
|
||||
}
|
||||
|
||||
int Gwen::Utility::Strings::To::Int( const Gwen::String& str )
|
||||
{
|
||||
if ( str == "" ) return 0;
|
||||
return atoi( str.c_str() );
|
||||
}
|
||||
|
||||
float Gwen::Utility::Strings::To::Float( const Gwen::String& str )
|
||||
{
|
||||
if ( str == "" ) return 0.0f;
|
||||
return (float)atof( str.c_str() );
|
||||
}
|
||||
|
||||
bool Gwen::Utility::Strings::To::Bool( const Gwen::String& str )
|
||||
{
|
||||
if ( str.size() == 0 ) return false;
|
||||
if ( str[0] == 'T' || str[0] == 't' || str[0] == 'y' || str[0] == 'Y' ) return true;
|
||||
if ( str[0] == 'F' || str[0] == 'f' || str[0] == 'n' || str[0] == 'N' ) return false;
|
||||
if ( str[0] == '0' ) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Gwen::Utility::Strings::To::Floats( const Gwen::String& str, float* f, size_t iCount )
|
||||
{
|
||||
Strings::List lst;
|
||||
Strings::Split( str, " ", lst );
|
||||
if ( lst.size() != iCount ) return false;
|
||||
|
||||
for ( size_t i=0; i<iCount; i++ )
|
||||
{
|
||||
f[i] = Strings::To::Float( lst[i] );
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user