Hi there! Stonesense is great, congrats! When I first came to DF I never imagined I'd see something like this so soon
I understand that developing it into a GUI would be a nice feature in the long term. But what if there was an easy way to control DF with the mouse? It wouldn't be a fully-featured GUI -- it would always be managed by DF -- but it would certainly bring a better GUI back to the short-term goals. The most annoying aspect is moving the cursor, so I'm sure lots of folks would kill to have it controlled by the mouse; but if the commands were clickable too it would also be great. Well, it just might be possible...
First, the commands. They obey rigid structures: there's usually the associated key to the left of the command description, after a colon; or to the far right, as in lists. If your program could access DF's display, and assuming the panel is fixed or known, so that clicks in the main view don't count: a click in a non-space character, or in a space between characters (ie, between words) is a command click. Now, just follow that row to the left, until you hit a colon, and the letter/word after that is the key your program must simulate for DF to issue the clicked command. If none is found, the command must be to the far right, like in lists.
This alone would let you click most commands in DF, turning GUI navigation into a breeze.
Secondly, the cursor. The basic behavior would be simply to record internally the last position of the cursor and turn a click into a series of presses of the appropriate keys: delta_x = click_x - cursor_x (in tiles), then if delta_x>0 press right delta_x times; if delta_x<0 press left -delta_x times. (Likewise for y). However, since the view can change, you'd also have to take its position into account. This would be a possibility whenever Stonesense is able to synchronize with DF's view by keeping track of its position.
What do you think? Too ambitious? I think it would be nice even if implemented in a very crude and simple way...