Scale Buttons Inside GUILayout.BeginHorizontal()

I have a custom editor that mimics a toolbar by drawing a variable number of GUILayout.Button() objects within GUILayout.BeginHorizontal() which is within a BeginArea(rect), roughtly like this:

BeginArea(myRect)
    BeginHorizontal()
        Loop thru drawing buttons ...
               if (GUILayout.Button(buttonText, myButtonStyle)) ...
        EndLoop
    EndHorizontal()
EndArea()

QUESTION 1:
My problem is that, when there are too many buttons, or their text is too long, they get clipped by “myRect”.
I do want them to stay within “myRect”, but I would like the buttons to resize to fit within “myRect”. Is there any automated way to force the buttons to all squish down to fit?

This may not be possible and, if it’s not, does anyone have an algorithm to adjust the button widths down with most of the reduction for those with the longest text?

QUESTION 2:
I cannot for the life of me get the buttons to align on the right within “myRect”. I have tried a myriad of things and none worked. I know it will be simple, but how do I do it?

Help Mr. Wizard!
Thanks.

Question 1 is rather moot.
I am determining the maximum button size based on: rect.width / #buttons.
Then, I just make all the buttons the same size.
They are quaranteed to fit and it looks good that way anyway.