Hi Croqueteers,
I'm creating a simple interface to Croquet to allow setting of keyframes, sketching, etc., and I need to create my own UI behaviors. As it now stands, the tool support is insufficient (I did read the TPointer class comment, and realize that tool support isn't done). It appears that the tool only operates when there is an object selected. I envision a pen-based system that uses Genie to interpret any stroke made with the pen, even if there is no selected object. I would also like to be able to assign different behaviors to the yellow and red buttons.
The approach that I have come up with is to have a hierarchy beneath TPointer, where each class defines a different type of UI behavior. There would be a TStandardPointer that supports the current behavior. Some of the protocol of TCamera (such as snapBack) would be moved into TPointer or TStandardPointer.
I also want to add a history to support undo/redo. I haven't decided whether this belongs in the camera, the pointer, or somewhere more global. I'll probably opt for the pointer, and move it later if necessary.
I'm writing this so as not to re-invent the wheel in case this area is actively being worked on. If not, I hope that I can do some work that furthers my research and is useful for Croquet. I'm also hoping to generate a bit of discussion, since I'm not sure I have a solid grasp on the design space, and know that there are others out there. If anyone is interested, I'll write something a bit more detailed than this email.
Thanks, Joshua