Actually, it already does all this stuff, except that it doesn't toggle full-screen/windowed mode until you change the game resolution.
Here I'm running OpenGL at 1152x864, and it's nice and big. My only complaints about windowed-mode are problems with OpenGL. You see, it just thinks it's okay to remove the beautiful skinning from my window. It is NOT okay, I do NOT want some ugly !#& window with the classic style theming. That's ugly as hell. The other part I don't like is that it won't let you move the window. It's stuck like glue to the upper-left corner of the screen. You can click and drag the window or choose the Move option from the context menu, but after you move it, it just decides that it's alright to move back to the corner again. There's also an issue with staying on top, but SRB2JTE fixes this.
Oh yeah, and I'm running OpenGL in windowed mode because OpenGL is stupid and doesn't position the full-screen window properly on the screen, so I have to change to a window and then back to full-screen again so that it covers the whole screen and doesn't have an annoying gap on the edges.
Long live DirectX 9!