Sizer 3.4 Development
Sizer 3.4
This page holds information and work-in-progress downloads for the new version of Sizer. I'm pretty slow at releasing proper versions. This partly because I don't like to rush things; and partly because I find it difficult to write things up and put them on the web.
I know a lot of people are very keen to get 64 bit support so I'm posting work in progress versions here. I suspect many users are happy to sacrifice a bit of stability to get their hands on a bleeding edge version. These versions come with the following cavaets:
- Incomplete. See notes in the Features section for details what's been done.
- No installer. It's only available as a zip package. Just unzip all the files and run sizer.exe
- May have bugs. Hopefully these versions are stable but testing will have been limited.
- No docs.
Downloads
- 29 Sept 2011: Sizer 3.4 Dev Build 426. Rework config dialog box to use a list view with columns for name, width, height and hotkey name.
- 26 Sept 2011: Sizer 3.4 Dev Build 422
Features
The exact feature set of Version 3.4 may change. Depending on how long things take I might drop features in order to release a proper version. I've split features into two sections: things I will definitely put in and things I hope to put in. The comments in green are things that have been done; the stuff in red is still to do.
Must haves
- 64 bit support. Sizer 3.4 is all about 64 bit support. I get lots of emails asking for this and a few offering help. Without going into lot of technical details this is tricky task. It's complex because Sizer must integrate with both full 64 bit applications and 32 bit applications (which, noticeably to most users, run under an emulation layer).
- Did some experiments and proved the MSDN documentation on Windows hooks is wrong. As part of my day job I went to a conference and managed to collar Jeffrey Richter and ask a few questions. (Jeff wrote the seminal book "Advanced Windows" which introduced me to windows hooks.) He was extremely helpful explaining why things are the way they are. Unfortunately his advice turned into a dead-end but I owe him a bit thank you.
- Did more experiments are things are stranger than I first thought. The order things happen is important and there's no way I can control what other program do before Sizer is run. So after a bit of thought have devised another approach.
- Implemented the 64-bit part of Sizer and it everything seems to work.
- Made a few tweaks to get things working on XP64 as well.
- TODO: More testing on x64, try all the poorly written applications like: Firefox, iTunes and Acrobat.
- TODO: Confirm changes work on older OSes. I'll do XP and W2K but won't bother with Win9x or NT4.
- Hot-Key function. I've always used Hot Key Plus to to resize windows but I appreciate this approach is limited. Lots of people ask for this feature but I've always resisted. It's not the number of requests but the weight of poorly written application that's put this on the must-have list. I'll save the rant for another time but I get a lots of “bug” reports for Sizer where the bug is actually another program. To provide a sensible workaround for situations where interactive sizing doesn't, hotkeys are on the must haves.
- Configuration dialog updated to include hotkey controls.
- Hot key registration and error messages implemented.
- TODO: check key handling on non-English OS.
- TODO: Show assigned hot-keys in pop-up menu.
- Changed configuration dialog to have multi-column list view, one column to show hot-key.
Should haves
- Multi-monitor awareness.
- Added placeholders in config dialog for selecting monitor.
- TODO: implement it!
- Portable version.
- Made lots of changes so hook portions don't use registry.
- TODO: implement saving and load to an XML file in main application.
- TODO: figure out a sensible mechanism to record hotkeys in a portable way. The problem stems from using virtual key codes to be portable but Windows only provides a way to get the name of the key from the scan code (which depends on the keyboard installed). There's no mechanism to work with extended scan codes so for example right arrow ends up with Num-6.
- Firefox 6 workaround. I don't know what it is with Mozilla developers but they simply can't accept the way Windows works and insist on using undocumented routines or non-standard mechanisms. Firefox 6 throws up yet another problem with non-client Windows messages which means you have to double right-click to get the Sizer popup.
- Used Spy++ to figure out why Firefox 6.0 is broken. 99% sure there's a workaround that's a bit clumsy but shouldn't break other applications.
- TODO: implement it!
- TODO: Tell the world to use Chrome so Firefox is no longer a problem!
- Use current window settings as new entry. Have option to include a Sizer menu item that picks up the current size and position and populates the config dialog box.
- TODO: implement it.