Diving Log 5.0 – Window Management

Yes – it is done! The importers and downloaders are integrated into the main project and for the first time the project is complete. It’s like putting the last piece into a jigsaw puzzle and you see for the first time the complete picture. I’ll do for the rest of this week some smaller refinements and testing and I’m going to release next week a first alpha version for all Diving Log 4.0 users who are interested (no public beta yet).

In this post I want to explain the window management and interaction between the several windows in version 5.0, which is a little bit different from 4.0. Diving Log 4.0 (and also 5.0) is a MDI style application, which is a little bit unusual, because you don’t edit different documents at the same time. In version 4.0 all windows open inside the main window, even non resizable windows, which cause a weird behavior. When a resizable window is maximized and you open a non resizable window in version 4.0, the maximized window will switch from maximized to normal view.

In .NET it would be even weirder, so I decided to display non resizable windows always outside of the main window (they are still owned by the main window, so they will not move behind the main window). For resizable windows I’ve made it configurable, so you can decide for every resizable window if it should be displayed inside the main window (like in version 4.0) or outside.

Advantages of the “outside” method (default):

  • The content has more room, because the window can overlap the main window controls, which is especially useful on small Netbooks
  • On Vista and Windows 7 the window border get the glass look, which is nicer than the Aero basic look of MDI childs
  • The drawing of the UI seems to be faster on Vista and Win 7
  • The sizable windows can be above non sizable windows, so the content is not overlapped

Advantages of the “inside” method (version 4.0 style)

  • You can maximize the window without hiding the main window and controls
  • No “wasted” empty space of the main window background
  • Familiar behavior like in version 4.0

I have thought about the advantages and disadvantages for a long time and came to no real solution. So I decided to make it configurable for each window. Here a few screenshots which show you how it will look like:

Table inside, Logbook outside

Table inside, Logbook outside

On the screenshot above, the logbook table is configured to be displayed inside the main window, the logbook is outside and on top you can see the settings dialog.

Maximized table and logbook on top

Maximized table and logbook on top

In this screenshot you see the maximized logbook table inside the main window and the logbook window on top of it displaying the same dive. You just have to double click a dive in the table to view it in the logbook window.

Tree browser and logbook

Tree browser and logbook

Here you can see the logbook window inside the main window and the tree browser outside. You can use the tree browser to navigate through your logbook – when you select a dive in the tree browser it will automatically show up in the logbook window.

OK, the countdown runs… 🙂

Tags: , ,

Comments are closed.