mirror of https://github.com/bsnes-emu/bsnes.git
Update to bsnes v036r11? release.
Another WIP. A few changes here; I added on_change notifications to both Windows and Linux textboxes. I use that to only enable the "Add Code" button on the cheat code screen when a valid GG/PAR code is entered. A bit nicer than just not doing anything when you click "Add Code". Also disabled toggle / delete code when one is not selected. Minor touches. Added on_input mouse capture to the canvas widget for Linux. Needed for the input.acquire() mouse capture hook. Tried to use SDL_WM_GrabInput and SDL_GetRelativeMouseState ... doesn't work at all. Unless SDL creates the window itself, it doesn't give you any mouse info. SDL_WINDOWID hack doesn't work here either, same issue with the keyboard input and why I had to use raw Xlib there. So, I use XGrabPointer + XQueryPointer + XWarpPointer and some magic to make my own invisible cursor. Major pain in the ass. It works okay, but it feels a bit too jumpy ... I'm going to try screwing around with the acceleration controls to see if I can smooth it out a bit. And hooray, more fucking cross-platform headache: Windows: button 1 = right, 2 = middle Linux: button 1 = middle, 2 = right I had to completely disable the scale for this build to get the mouse to work well on Linux, so no joypad axes for this one. I'd be interested to see how the mouse performs for FitzRoy; where the last one was too slow, this should be 5x faster. Surprisingly still playable for me, but a bit too fast for my tastes. The scalar of 1 feels great for Windows with the cheapo 400dpi mouse here, too. I think this is a reasonable default. ----- Detecting listbox column header clicks was easy enough on Windows: if(((LPNMHDR)lparam)->code == LVN_COLUMNCLICK) { printf("%d\n", ((LPNMLISTVIEW)lparam)->iSubItem); } And of course, there's no obvious way to do the same with GTK+: http://www.gtk.org/api/2.6/gtk/GtkTreeView.html http://www.gtk.org/api/2.6/gtk/GtkTreeViewColumn.html http://www.gtk.org/api/2.6/gtk/TreeWidget.html I have a couple of hangups about a column sort click, anyway. 1) there's no logical reason to sort by code (they're technically gibberish, especially encoded Game Genie codes), status (you want the list to change around when you toggle the status? yuck), or by reverse description (scroll to the bottom and read up, same thing.) 2) it won't save the setting across runs; each time you load a new game, you'll have to re-click to sort the list. 3) there'd be no way to stop sorting completely. But again, we can make this a hidden option like deep filetype detection if it's too obscure. [No archive available]
This commit is contained in:
parent
448a8336b1
commit
18389cb8f7