So it generates 100 priv+pub key pairs at the time of installation but does not show them up.
Correct.
Once I click on generating new addresses, it picks one of those and show it to me?
Correct. It also uses one of those addresses every time you send a transaction (for the change from the transaction).
If I go beyond 100, it generates new priv+pub key everytime?
Is that how it works?
Not quite.
Each time it takes a priv+pub key from the pre-generated pool, it generates a new one to add to the queue. That way there continues to be a pool of 100 available.
Because of this, you can create a backup at any time, and as long as you haven't used up more than 100 addresses since the backup, you can recover your entire wallet balance from the backup.