Once you can get the shift register to light the leds you should do ok. One bit in the led word will light the red led another bit (possibly in a different led variable if it is on a different shift register) will light the green led. Once you can light the red or green led with code you just move that code in to the place where the current state of the push button is determined. There you arrange (via the code you have working for the leds) to turn off the red led and turn on the green led (for instance) depending on the state of the push button and you are away. I think your initial error was likely that you didn't remove the { and } after the for loop. It they are there with code in them they form a new lexical scope and updateShiftRegister indeed won't be defined in it thus the error. You can use the #define statement in C to define logical names to the leds (such as Button1RedLed) to set the number that actually needs to go in to the led variable to turn on that led. This makes your code much more readable.
Peter