Simplification of the code used for the Navigate Gizmo. In a nutshell it goes from 623 lines down to 362, so about a **42% decrease**. Unused code removed, more defines, improved comments, etc.
While there I changed the behavior substantially.
There is no longer any flashing when balls pass from behind to in front. Instead there is a smooth transition, from brighter when close to duller and darker when further away. They are also a bit bigger when closer and smaller in the back. And the negative balls become transparent when far away. Even the axis lines themselves smoothly transition along their lengths.
{F9479828}
I've changed highlighting so it primarily affects the text color. And now it shows the negative axis names on hover.
{F9479829}
While aligned it is showing all axis lines so it looks a bit more like the axis lines in the viewport. The middle ball always shows axis name, even if negative. The other negative axis will show on hover though.
{F9492431}
There are also changes that allow the gizmo to resize nicely. The following captures shows the interface at 1X interface scale. The one on the right though has had a single define changed from "80" to "100". You will notice that every part of it scales proportionately, while the buttons move down. Of course the gizmo also follows changes in interface scale and line width.
{F9479844}
Note that this changes the mouse cursor used here. Currently the mouse changes to a "+" (WM_CURSOR_EDIT) when hovering over this gizmo. But that type of cursor obscures the text (negative axis names) when hovering. So obscuring the very thing that is revealed. So this patch uses the normal "pointer" cursor when hovering as that is less obscuring because of its offset design.