Another week developing interface stuff. I finally got the scrolling window working right and debugged, so I’ve started implementing all of my entity editor interface components using it, and I’ll be trying to spot other places where it might come in handy as I go. With that, I’ve started finishing up with creating and adding the control panels, only to run into two difficulties:
First, for some reason none of the text input works on the control panels. This is something of a mystery, since testing shows that the text fields are properly receiving mouse events, but the text isn’t getting selected or edited the way an input text field is supposed to. All of the code looks good to me, so it’s probably some kind of weird interaction with something else I’ve written or a structural problem with the way mouse events are going through the display list. This was only a minor issue as long as I was inputting solely boolean and numerical values, but as I develop the animation and sound control panels, which use a lot of string parameters, this is going to become more and more problematic.
Second, and less confusingly, there’s currently no support for creating an ’empty’ command for the sound or animation behaviors, something crucial to making the actual control panel interface work. This isn’t really a big challenge, but it is, alongside the aforementioned text problem, an obstacle that will definitely need to be addressed before I can make progress on the sound and animation editors.
That’s what it looks like right now. Notice that the panel at the top is now handled in terms of nested scrolling windows: Each of the most internal ones represents a discrete sound command, and hidden to the right is a (currently non-functioning) button for adding new commands. For the next few days, I’ll be working on getting that button working… and figuring out what the heck is going wrong with these text fields.
It’s been slow going. I’ve been working on some flavor of these problems for more than a month now, I think. But I’m starting, however slowly, to approach the end of this particularly boring side of the project, and get slowly back into the parts I actually find interesting. Hopefully not too much longer now…