Original Post
Hi, I am currently trying to write a text input function in SDL and I have a question. How would I handle having/not having a shift modifier? Here is my code so far: I think im using SDL_GetModState() improperly but the documentation doesent help to much.
//regular
if ( event.key.keysym.sym == SDLK_a && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"a";}
if ( event.key.keysym.sym == SDLK_b && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"b";}
if ( event.key.keysym.sym == SDLK_c && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"c";}
if ( event.key.keysym.sym == SDLK_d && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"d";}
if ( event.key.keysym.sym == SDLK_e && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"e";}
if ( event.key.keysym.sym == SDLK_f && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"f";}
if ( event.key.keysym.sym == SDLK_g && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"g";}
if ( event.key.keysym.sym == SDLK_h && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"h";}
if ( event.key.keysym.sym == SDLK_i && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"i";}
if ( event.key.keysym.sym == SDLK_j && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"j";}
if ( event.key.keysym.sym == SDLK_k && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"k";}
if ( event.key.keysym.sym == SDLK_l && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"l";}
if ( event.key.keysym.sym == SDLK_m && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"m";}
if ( event.key.keysym.sym == SDLK_n && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"n";}
if ( event.key.keysym.sym == SDLK_o && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"o";}
if ( event.key.keysym.sym == SDLK_p && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"p";}
if ( event.key.keysym.sym == SDLK_q && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"q";}
if ( event.key.keysym.sym == SDLK_r && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"r";}
if ( event.key.keysym.sym == SDLK_s && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"s";}
if ( event.key.keysym.sym == SDLK_t && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"t";}
if ( event.key.keysym.sym == SDLK_u && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"u";}
if ( event.key.keysym.sym == SDLK_v && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"v";}
if ( event.key.keysym.sym == SDLK_w && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"w";}
if ( event.key.keysym.sym == SDLK_x && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"x";}
if ( event.key.keysym.sym == SDLK_y && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"y";}
if ( event.key.keysym.sym == SDLK_z && (SDL_GetModState() != KMOD_SHIFT)) {blah=blah+"z";}
//with shift
if ( event.key.keysym.sym == SDLK_a && (SDL_GetModState() == KMOD_SHIFT))) {blah=blah+"A";}
if ( event.key.keysym.sym == SDLK_b && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"B";}
if ( event.key.keysym.sym == SDLK_c && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"C";}
if ( event.key.keysym.sym == SDLK_d && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"D";}
if ( event.key.keysym.sym == SDLK_e && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"E";}
if ( event.key.keysym.sym == SDLK_f && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"F";}
if ( event.key.keysym.sym == SDLK_g && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"G";}
if ( event.key.keysym.sym == SDLK_h && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"H";}
if ( event.key.keysym.sym == SDLK_i && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"I";}
if ( event.key.keysym.sym == SDLK_j && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"J";}
if ( event.key.keysym.sym == SDLK_k && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"K";}
if ( event.key.keysym.sym == SDLK_l && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"L";}
if ( event.key.keysym.sym == SDLK_m && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"M";}
if ( event.key.keysym.sym == SDLK_n && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"N";}
if ( event.key.keysym.sym == SDLK_o && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"O";}
if ( event.key.keysym.sym == SDLK_p && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"P";}
if ( event.key.keysym.sym == SDLK_q && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"Q";}
if ( event.key.keysym.sym == SDLK_r && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"R";}
if ( event.key.keysym.sym == SDLK_s && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"S";}
if ( event.key.keysym.sym == SDLK_t && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"T";}
if ( event.key.keysym.sym == SDLK_u && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"U";}
if ( event.key.keysym.sym == SDLK_v && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"V";}
if ( event.key.keysym.sym == SDLK_w && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"W";}
if ( event.key.keysym.sym == SDLK_x && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"X";}
if ( event.key.keysym.sym == SDLK_y && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"Y";}
if ( event.key.keysym.sym == SDLK_z && (SDL_GetModState() == KMOD_SHIFT)) {blah=blah+"Z";}