Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //String input
- class StringInput
- {
- private:
- std::string str;
- SDL_Surface *Text;
- public:
- StringInput();
- ~StringInput();
- void HandleInput();
- void ShowCentered();
- };
- StringInput::StringInput()
- {
- str = "";
- Text = NULL;
- SDL_EnableUNICODE( SDL_ENABLE );
- }
- StringInput::~StringInput()
- {
- SDL_FreeSurface( Text );
- SDL_EnableUNICODE( SDL_DISABLE );
- }
- void StringInput::HandleInput()
- {
- if( event.type == SDL_KEYDOWN )
- {
- std::string temp = str;
- if( str.length() <= 6 )
- {
- if( event.key.keysym.unicode == (Uint16)' ' )
- {
- str += (char)event.key.keysym.unicode;
- }
- else if( ( event.key.keysym.unicode >= (Uint16)'0' ) && ( event.key.keysym.unicode <= (Uint16)'9' ) )
- {
- str += (char)event.key.keysym.unicode;
- }
- else if( ( event.key.keysym.unicode >= (Uint16)'A' ) && ( event.key.keysym.unicode <= (Uint16)'Z' ) )
- {
- str += (char)event.key.keysym.unicode;
- }
- else if( ( event.key.keysym.unicode >= (Uint16)'a' ) && ( event.key.keysym.unicode <= (Uint16)'z' ) )
- {
- str += (char)event.key.keysym.unicode;
- }
- }
- if( ( event.key.keysym.sym == SDLK_BACKSPACE ) && ( str.length() != 0 ) )
- {
- str.erase( str.length() - 1 );
- }
- if( str != temp )
- {
- SDL_FreeSurface( Text );
- text = TTF_RenderText_Solid( font, str.c_str(), TextColour );
- }
- }
- }
- void StringInput::ShowCentered()
- {
- if( Text != NULL )
- {
- ApplySurface( ( ScreenWidth - BlackRectangle -> w) / 2, (ScreenHeight - BlackRectangle->h)/2, BlackRectangle, Screen);
- ApplySurface( ( ScreenWidth - Text->w ) / 2, ( ScreenHeight - Text->h ) / 2, Text, screen );
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment