Various additions to the GTK frontend's display options, and a small "FIXME" that was nearby.
1) Added options to switch between vertical, horizontal, or single-screen orientation, and to swap screen positions.
2) Replaced toggleable Gap option with set of choices (0px, 5px, 92px, or custom), and added option to scale gap size with the rest of the rendered area.
3) Added option to preserve the default aspect ratio or not (fill entire available area).
4) Changed the Rotation menu to use radio menu items for consistency.
5) Modified Screenshot function to work properly with non-default Rotation/Orientation.
6) Touch screen now ignores mouse clicks while the mouse is outside of it, but also now allows dragging outside of the touch screen area in any direction (previously ignored mouse movement that drifted above the touch screen's top border).
Additional display options for the GTK frontend. (For r3606)
Thank you very much for the patch. I usually prefer to have the patch splitted in logical changes, anyway i'll do the split when commiting. Then i don't like the configurable gap size, i'd like to have the gtk frontend as simple as possible without adding tons of configuration toggles in the menu, probably not a popular opinion :)
ps. Do you prefer using noodlebox or tomsires in the commit log?
Yeah, sorry for lumping them all together like that, I'll try to keep stuff separate in the future :P As far as gap size, I usually use the thin gap or no gap, but I saw the "realistic" DS sizes in the Windows port, so I figured there might be *someone* who will want it. And allowing gap scaling maintains the realistic proportions when resizing the screen. Personally, I like offering as many reasonable configuration options as possible to the user, but that's just me. There's the CLI frontend for simplicity :P
Mainly, my goal is lessen the gap between the GTK frontend and the Windows one, and surpass it where possible. Will probably work on supporting more command line parameters next (especially for the new display options) and actually have it save more than just the button mappings between sessions.
And, I'm fine with "noodlebox" in the commit logs.
I understand your plan, my concern is if trying to replicate the windows ui is the right thing to do :)
Ok, so i'm trying to separate the orientation code, i've cleaned up the stuff a bit, mostly consolidating the various variables in structs, but in the process i've broken the touchscreen for 90 and 180 rotation while vertical and 180, 270 while horizontal. So i hope to post a patch tomorrow.
What specific parts do you want in or out? I could probably make a quick patch to apply part of my changes.
Fixes segfault/catastrophic error when taking screenshots at 90 or 180 rotation. (For r3620)
Ignores initial mouse clicks from outside the touchscreen, but allows dragging outside of it once touch is started. (For r3620)
Made the two small bugfixes into standalone patches. Note that screenshots taken when the screen rotation is 90 or 270 will still not save correctly due to the misordered bytes, but at least it doesn't segfault :P
Added screen layout options, modified screenshot to work properly under any combination of options. (For r3620+requires previous two fixes)
Add horizontal orientation
So we ended up duplicating the work, anyway please take a look at te patch i posted. Will add the remaining bits (as i said before not all your changes) on top of that.
Why no single screen and swap screen? Those are trivial to implement on top of what's there and are actually pretty useful.
I've applied everything i think is sensible to have in the gtk frontend. Comments?
Adds Single Screen orientation (For r3635)
I've submitted one more patch that adds the Single Screen orientation to your implementation of the Horizontal one. It's useful, and is really the main reason for the Swap Screen option :P Also, there's a fix for a minor bug with setting the window size. Anyway, thanks for adding.
Window size bugfix, isolated from previous patch.