Archive for 2009

Now that Windows 7 is available and the Offie 2010 Beta released I wanted to look at the ribbon controls they use to see how the Krypton Ribbon should be updated to match them. More accurately it means adding one or more new palettes that draw according to a new style. The existing palettes will continue to draw the ribbon in the same way so the Office 2007 built in palettes will always draw the ribbon in the Office 2007 manner.

Windows 7
The updated Microsoft Paint uses the Windows 7 ribbon control that is provided with the operating system. You can see straight away that it has done away with the application button as an orb and replaced it with a more traditional style button. The groups have also changed and now use a separator on the right hand side instead of having a box drawn around each one.


 

Office 2010 Technical Preview
This screenshot was taken from an installation inside a virtual machine and so it does not have any Aero glass for the borders. Ignoring that detail we can see that Office 2010 also has a button instead of an orb for the application button. Also note that the button clusters inside the Font group no longer have a border around the buttons themselves. The border only appears when you move the mouse over them.

 

Office 2010 Beta
This Beta release is only slightly different from the previous technical preview. The main change has been the application button changing to have the more familiar File as its name. I presume that end users find it easier to relate to the traditional File menu option.

Another change that cannot be seen in the screenshots is that the Beta has three color schemes. These are Silver, Blue and Black of which the above screenshot is the Silver variation. So I think the best approach is to add three new palettes that represent those three new schemes. Although only a Beta I believe the fact they have added all three colors means they are pretty much finished in creating the visuals.

I want to quickly clarify my development priorities for the future. There seems to be concern that with my post about Silverlight/WPF yesterday that the usual Krypton work has slipped down my list of priorities. So let me clarify my immediate and longer term plans.

Priority One
My number one priority is Krypton. My number two and number three priorities are also Krypton. Maybe I should have pointed out that it took about a year to go from playing with Silverlight/WPF to actually having the MetaPanel control up and working as it is today. As you can see, it was very much a low priority background activity. I have been and will continue to dedicate 5 days per week to Krypton. But where possible I will continue to play around and learn Silverlight/WPF and maybe from time to time a useful control will emerge from that effort.

Version 4.0 of Krypton has been a real milestone for me because it completes the initial roadmap I created when I first started Component Factory four years ago. My original goal was to create a docking  system. To create the docking system would require the Workspace component. But to create the Workspace I first needed the Navigator. Hence the order in which I created those components was the order of dependency to build up to the docking system itself.

Krypton 4.1
So what next for Krypton? The current development work is building towards version 4.1 and will include a few smaller changes rather than one big change. Already completed is the new Toolkit control KryptonGroupBox. I will be adding a Windows 7 palette, updating the ribbon so it can display like the Windows 7 ribbon and adding the usual raft of bug fixes. There might be extra changes on top of this depending on the actual timing of the release.

Krypton 4.X
So what is the next major component to be added? Actually I have no idea at the moment. Should it be gauge controls a tree control or maybe something completely new that no other vendor has? This is where your feedback comes into play. Maybe I should email out a survey to find out? Or maybe it should not be a major component but instead I should spend several months just adding another 10 unique palettes? I have no preference and am happy to work on whatever the market indicates is the most needed.

When WPF was released over three years ago I was expecting it to become the dominant desktop technology by now. This has not been the case, which is lucky for me because it has taken until now for me to complete the original set of components I wanted to create for Krypton.

But I do think that given enough time it will gradually take over because of the extra power and flexibility it provides. Silverlight 3 now makes it possible to build desktop quality applications for the web which has the potential to really drive the adoption of XAML and WPF.

So to make sure I don’t completely miss the boat I need to start playing around with Silverlight/WPF and coming up with ideas for components. Given that Silverlight/WPF will be around for at least a decade it makes sense to create some controls or components that have a long potential lifetime of use. Write once and sell for a decade feels like a good business model. It also makes sense to start with components that can be used as building blocks for creating bigger and better components in the future.

The first result of my experimenting is an animating panel that this pluggable. This MetaPanel control is intended to solve two related problems. First is the problem of changing panel layouts. If you want to alter the layout of children between a WrapPanel to a StackPanel you need to create the StackPanel, move all the children across and then remove the old WrapPanel. Not difficult but a painful process.

The MetaPanel control instead has a pluggable layout algorithm so that you can switch the layout without having to create a new control. This is a much easier process to manage and also makes it easy for the developer to create custom pluggable layout algorithms for specialized scenarios.

The second problem is one of animation. As panel children are moved to new locations it would be nice to have some form of animation in order to give the user visual feedback. If you are moving all the children from one panel control to another this becomes very difficult to achieve. But as our children are always children of our single MetaPanel it becomes very easy. Whenever the layout is changed we animate the children to new positions. In fact the animation algorithm is also pluggable allowing maximum flexibility in specifying different animation requirements. With the layout and animation being pluggable you can see why I named it MetaPanel.

Use this MetaPanel TestPage link to see a simple Silverlight application that allows you to play around with the control. You should see something like the following…

Use the top row to add and remove child items.
Use the second row to change the layout algorithm.
Use the third row to alter layout specific values.
Use the last row to alter animation settings.

Feel the need to group your controls but finding that the KryptonHeaderGroup is taking up too much space?

Well now you can use the all new KryptonGroupBox control. Just like the standard windows forms control it draws a caption text over the top of a group border. Here you see an instance in the default Office 2007 Blue palette.

You can actually specify two strings plus an image for the caption.

Or move the caption to one of the other three edges.

By default the border edge is indented 50% of the height of the caption area. If you specify 100% then you get the left image below and a value of 0% gives the variation on the right.

The KryptonGroupBox is a simple little control but that does not make it any less useful in your Toolkit.

Download  using this direct link…
    Download 4.0

New for Version 4.0
   – VS2010 Style Docking system
   – KryptonWrapLabel
   – KryptonSeparator
   – Workspace persistence
   – Workspace max/restore feature
   – Various bug fixes

Change Lists
  – Toolkit
  – Navigator
  – Workspace
  – Ribbon