Well, as for the weirdness, we use a local clone of NGUI over which we commit custom changes on a branch that we sync regularly with master.
As I find it quite awful not to use stock code, I started the process of exporting atomic patches of changes that have been made and that could be of any benefit to everyone. I could list them if you'd like to have a look.
Unfortunately, there's a bunch of code review to be performed before submitting patches, since not all (by far) our changes deserves to be kept.
Now, concerning this particular patch :
- the Color type is due to a merge error (I should I've check before sending

)
- the mTruncate field is here to allow the display of ellipsis in the case of truncated text. It appears in the patch because this feature has been committed before the shadow one.