Graaahhh! It seems like I end every nightly coding session with a frustration... the windows are no longer related, however, thanks to the magic that is boost::bind the Tilesheet Editor can open/close the Tile Editor. Which is good.
The bad part is that (for some reason) the dragging code which I fixed months ago is bork. Like, if you wave the mouse around really fast you'll "drop" the window, and it'll still be in the drag state or something. I have a feeling this was from me mucking around in the window code earlier (trying to fix subwindowing) before I decided to ditch it and just hack it with boost::bind.
Needless to say, it'll be fixed in the morning.
Editor design-wise; the tilesheet editor is a "child" (lol not anymore with the hacked apart window class :D) of the map editor. Basically the structure looks like this -
+-+- Tilesheets (essentially a texture)
| +---- Tiles (essentially texture coordinates)
+--- Collision Lines
+--- Shadow Maps (a possibility)
+---- Attributes, etc.
GUI-layout wise; the tilesheet editor is going to have some kind of display between the bottom of the window and the bottom of the tilesheet picture showing either thumbnails or a textual list of all the created tiles, as well as buttons to delete/edit them.
Creation of a tile is done by clicking the "New Tile" button which pops up the Tile Editor, which should be renamed "Texture Coordinate Finder". Then you click the non-existant "OK" button which sends a WM_DESTROY notice out when it dies, and the Tilesheet editor grabs the texture coordinates from it and makes a new tile.
Now I just have to remember... is the WM_DESTROY message sent before or after deallocation? Does the window even get freed? I don't think it does, actually. Hrm...
Yeah, after this I'm definitely scrapping the GUI code >:|
Night everyone! :D