SW_NavWindows

aim: use a TrackPoint for 4 functions: **up down left right**
 * left right** navigate to the previous / next sibling window
 * up** goes to the parent window
 * down** goes to the first child window

Windows navigation is a mess. safer example I have Notepad, Microsoft Word and Fire Fox running. I can switch between these using alt-tab and alt- shift- tab. already it is not ideal because it would be nice to look through them one at time, like turning pages in a book, and alt-tab is like tearing a page out of the book and sticking it on the top. but never mind.

so, say I get into fire fox, which has several tabs. now to navigate between the tabs I have to use ctrl-tab and ctrl-shift-tab. already is is not very good - I am doing exactly the same thing but at a different level. it is not optimal that I have to use different keys.

Now I have navigated to the correct window. say this window contains many different text boxes. how am I going to navigate between these text boxes? probably Tab and Shift-Tab.

now this example is tolerable on the keyboard. but the stupid problem is it does not transfer to all situations. another problem is it is limited to 3 levels ( window within window within window ). many applications will not use three levels. try navigating Windows Help. the help window has two panes. now try getting from one to the other on the keyboard. give up? try finding the keyboard shortcut - you will probably have to use Google. I cannot remember what it is - F6 or something stupid.

windows have a natural tree structure - they all derive from the desktop window, and a window can have siblings and children, and has to have one parent ( apart from the desktop window which is the big daddy ). so why on earth do we not have a navigation system that lets us navigate the tree?!!?

so I am trying to create this, and visually make it Clear - What is the current scope: (ie what level we are at; the root window level? the pane level? the desktop window level?) **aim is to draw anice sparkly rectangle around the current window**. give it a different colour depending on the level.

Looks like I need to enumerate all the windows, and refresh that enumeration every time some window is created or destroyed

It looks like this code project article contains code to enumerate windows [|WindowTrayMinimizer]

and this one contains code to hook system wide window creation / destruction notification messages [|KillToolTips]

I am currently looking for
 * better / more concise code examples
 * Some talented programmer to implement it