reorganize files and add btgui
This commit is contained in:
75
btgui/Gwen/Controls/TextBoxNumeric.cpp
Normal file
75
btgui/Gwen/Controls/TextBoxNumeric.cpp
Normal file
@@ -0,0 +1,75 @@
|
||||
/*
|
||||
GWEN
|
||||
Copyright (c) 2010 Facepunch Studios
|
||||
See license in Gwen.h
|
||||
*/
|
||||
|
||||
|
||||
#include "Gwen/Gwen.h"
|
||||
#include "Gwen/Controls/TextBox.h"
|
||||
#include "Gwen/Skin.h"
|
||||
#include "Gwen/Utility.h"
|
||||
#include "Gwen/Platform.h"
|
||||
|
||||
|
||||
using namespace Gwen;
|
||||
using namespace Gwen::Controls;
|
||||
|
||||
GWEN_CONTROL_CONSTRUCTOR( TextBoxNumeric )
|
||||
{
|
||||
SetText( L"0" );
|
||||
}
|
||||
|
||||
bool TextBoxNumeric::IsTextAllowed( const Gwen::UnicodeString& str, int iPos )
|
||||
{
|
||||
const UnicodeString& strString = GetText();
|
||||
|
||||
if ( str.length() == 0 )
|
||||
return true;
|
||||
|
||||
for (size_t i=0; i<str.length(); i++)
|
||||
{
|
||||
if ( str[i] == L'-' )
|
||||
{
|
||||
// Has to be at the start
|
||||
if ( i != 0 || iPos != 0 )
|
||||
return false;
|
||||
|
||||
// Can only be one
|
||||
if ( std::count( strString.begin(), strString.end(), L'-' ) > 0 )
|
||||
return false;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( str[i] == L'0' ) continue;
|
||||
if ( str[i] == L'1' ) continue;
|
||||
if ( str[i] == L'2' ) continue;
|
||||
if ( str[i] == L'3' ) continue;
|
||||
if ( str[i] == L'4' ) continue;
|
||||
if ( str[i] == L'5' ) continue;
|
||||
if ( str[i] == L'6' ) continue;
|
||||
if ( str[i] == L'7' ) continue;
|
||||
if ( str[i] == L'8' ) continue;
|
||||
if ( str[i] == L'9' ) continue;
|
||||
|
||||
if ( str[i] == L'.' )
|
||||
{
|
||||
// Already a fullstop
|
||||
if ( std::count( strString.begin(), strString.end(), L'.' ) > 0 )
|
||||
return false;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
float TextBoxNumeric::GetFloatFromText()
|
||||
{
|
||||
double temp = GwenUtil_WideStringToFloat( GetText().c_str() );
|
||||
return temp;
|
||||
}
|
||||
Reference in New Issue
Block a user