I just checked in the first pass at the ResizableFrame. It extends Frame.
You can test it in org.xith3d.test.ui.HUDResizableFrameTest.
Very great job and good work. Nice and clean commit.
To properly display the correct move/resize cursors, I added several types to Cursor.Type and also made CursorSet more extensible by changing it to a HashMap. I hope I didn't overstep my developer bounds. Let me know if you prefer for it to work differently.
It's good just like that.
ResizableFrame extends Frame. Do you think I should just integrate the resize functionality into Frame and make the resize capability an option?
Yes, please.
I believe I followed all of the code formatting standards and such. However, you may want to take a look at my changes/check-in comments to see if they are all Kosher.
Yes, almost. I know, my coding style is a bit uncommon here and there. Though it should be pretty well readable. At least I hope so and it is the goal behind my rules.
The only thing, that differs, is, 1) that I always write the return argument in braces like this.
return ( someValue );
2) I use to put the constructors to the bottom and follow the "define first, then use" paradigm, which almost forces the constructors to the bottom. Well, I know, this might be pretty confusing at first. And if you don't want to use that, feel free to pu them to the top in new classes. Just try to keep them at the bottom in classes, where they're at the bottom.
3) no-modifier is not private. So never use no-modifier, if you actually mean private. One of the little advantages is, that the compiler and the IDE will be able to help you track down unused private fields.
4) Make fields final where ever you can. I use this to help myself not accidentally manipulate fields, that are meant to be constant.
Apart from that you did a very good job adapting my style. Thanks a lot.
There is still a bug redrawing the border and the Header Widget. I believe this is outside of what I've changed, but I'll spend some time tracking it down. Any idea where it may be? To reproduce the problem, run the test and try resizing the frame a bit, and you'll see the Header Widget disappear, and some weird artifacts on the drop shadow border.
Yeah, I saw that. If I had to guess, I would say, the clear() method gets outdated coordinates when resizing the frame. About the header widget I have no idea.
Thanks for your great work.