Paint.NET v3.5 prepares for beta and gets a visual refresh

I’ve been chipping away at the last changes and fixes for Paint.NET before I stamp it as beta and release it to the larger, hungrier “Beta crowd.” This update will be published to users of previous stable versions who’ve opted into public beta updates, and made available via the built-in updater. Hopefully I can finalize and push the stable version out the door to all users by the time Windows 7 hits retail shelves (October 22nd).

Now, the visual styling of an application does not affect its functionality. However, it is a key ingredient for a positive, even enjoyable, user experience. Up through version 2.5, Paint.NET used a 16-color “Windows 95” icon styling. The icons were free, and the style and color palette were very easy to emulate for any custom icons:

For version 2.6, I upgraded the whole application to .NET 2.0, 64-bit, and “Windows XP” / “Visual Studio 2005” icon styling. This was great during Windows XP’s heyday:

For version 3.0, much of the styling remained the same albeit with subtle tweaks throughout. Since version 3.36 was released in August of 2008, to borrow a phrase from Stephen King’s The Dark Tower, “the world has moved on.” It’s quickly looking dated compared to other software and graphics trends.

I decided that I wanted Paint.NET v3.5 to look more at home when installed on Windows 7 and Windows Vista with the Aero theme. To accomplish this, I needed two things: updated visual styling, and updated icons. Visual styling refers to how the menus or highlighted items are drawn, and the first part of this implementation is already in the latest, public alpha release. There are some additional styling changes that will be in the next update, and here’s a preview:

(Note that the close button is simulated in this screenshot, since it only shows up when the mouse is over an image’s thumbnail, which is not the case here. But visually, you should get the idea.)

For non-Aero themes such as Classic or Luna, simpler visual styling will be used. There isn’t enough time right now for further changes, such as glass, but I’ve definitely got it on my radar for version 4.0.

However, icons are much more difficult and time consuming to update. Paint.NET has about 200 of them throughout the application. Some icons are standard and can be used as-is from whatever icon sets I’m pulling from, such as “Open” and “Save”. Others must be formed by combining other icons. “Paste into New Layer” is a good example of this. Others must be created from scratch, such as the selection mode and many effect icons. Some icons are extremely difficult to create; the pan tool (“hand”) and lasso tool icons are easily the trickiest icons ever (yes, I made them both myself!).

Icons are a significant problem for freeware software, both financially and with respect to their creation. While Paint.NET is an image and bitmap editor, I am not an artist. Every once in awhile I can take a good photograph, but that’s an exception and definitely not the rule. Custom icons through a professional studio would several thousand dollars (USD$). Even purchasing several stock icon sets to get a large enough pool of icons to work with would cost around $2,000 USD.

There just aren’t many high quality, free* icon sets out there. For years, I have fed off the freely redistributable icons from Visual Studio and from the very popular and free famfamfam “Silk” icons. Tango is another excellent icon set with wonderful licensing (it’s public domain!), and I’ve used a small number of them for Paint.NET v3.5.

I finally found two icon sets that were free, and whose licensing and distribution requirements were acceptable. They are the Crystal and Oxygen icon sets, which are LGPL and have been popularized via software such as KDE and OpenOffice.org. I don’t use either of those, but the icons are absolutely beautiful and fit in well with the Aero theme in Windows Vista and Windows 7.

Be sure to check out the preview pages for Oxygen, and for Crystal.

With respect to Paint.NET, it’s still a work in progress, but check it out anyway:

Like I said, the authors of these icons released them under the LGPL license. To adhere to their licensing and distribution requirements (they’ve posted guidelines that were very useful), and to avoid converting the entire application to GPL or LGPL**, these icons are not being linked into PaintDotNet.Resources.dll. Instead, they are installed as “loose” PNG files in the Resources/en-US/ directory where Paint.NET is installed. Also, I will be releasing the “source code” for the icon set, which means you’ll be able to download the layered PDN sources for any icon that needed it. For example, the “Open” icon above requires a few layers to achieve contrast, and to separate the folder from the blue arrow. Et cetera. The resources DLL will contain all of the old icons, for reliability reasons. The 2nd exception in the Paint.NET license will be removed. It will also be much easier to customize Paint.NET with your own custom icon sets, although this will not be surfaced as a feature yet – for this release, it is simply a side-effect of the way that the resource manager does resource lookup and fallback.

Thinking ahead, for Paint.NET v4.0 I’m figuring out what direction I want to take the UI. My current thoughts include … glass, ribbonization, how that would work with MDI (or not), extensibility extensibility extensibility, and moving to Windows Vista as the minimum OS requirement. The latter will free me from many of the development constraints I currently have, such as not being able to use Direct2D or many of the shell-related APIs. My experience with dual-targeting GDI and DirectWrite for fonts and typography has taught me that doing something similar with GDI+ and Direct2D would be suicide. I’m only 1 guy, and I simply won’t do that.

Oh, and the tentative, nebulous, waving-my-hands release date target isn’t until 2011. So don’t worry if you’re still on XP: you’ve got plenty of time. And, I think you’ll really enjoy the upgrade to Windows 7***.

* Free in this context means 1) no cost, and 2) compatible license and distribution requirements. Licenses such as GPL are incompatible with Paint.NET.

** Ideological opinions aside, this would not be possible for logistical (legal) reasons.

*** I say this honestly, but also bear in mind that I’m a Microsoft employee so I’m probably biased.

41 thoughts on “Paint.NET v3.5 prepares for beta and gets a visual refresh

  1. Dean says:

    I agree on the problems finding nice, free, icons for indie applications. The main problem that I have is that while there technically is a LOT of “free” icons out there, they’re all it completely different styles. So you might find a good cut/copy/paste set of icons, but then you want an icon for “Select All” or something and that particular set doesn’t haven’t it, so you’ve got to look in another set and it’s a totally different style, but it’s mising the “Paste Special” icon you had from the previous set and it’s all too much!

    Still, I guess there’s not much we can do about it…

  2. Aaron says:

    One thing I’ve noticed in Windows 7… I don’t know if you want to do anything about it for this release, or if it even bothers anyone else…

    But the new taskbar makes Paint.NET’s icon look off-center! I know this is because you have the main part of the icon kind of to the left and the paintbrush sticking off to the right. But have a look:

    To me, it looks like the icon is skewed to the left (whether or not the application is open).

    All in all, a minor complaint. I just thought I might mention it, with all the talk of icons and such in this post.

    Keep up the awesome work!

  3. Rick Brewster says:

    Aaron, same thing if you click on Paint.NET icon on the desktop. I noticed this when I made the icon in 2006, and decided it was an acceptable artistic compromise.

  4. Matthew says:

    Wow, it looks VERY nice … can’t wait to try it out. Thanks for you excellent work! I would love to see a drastic change like the ribbon and/or glass in PDN 4.0; it will be exciting to see what you are able to do with it. Keep us informed, with lots of screenshots 🙂

  5. Joey says:

    Will you consider using some of the new shell APIs in Windows 7, such as having tabs as individual thumbnails or showing progress in the task bar?

  6. Uwe says:

    What I love to have is to DOCK all the floating tool”bars”.

    Currently I cannot maximize the main window and edit the edges of an image when being zoomed, because the edges are covered by one or another toolbar.

    Of course I could constantly move the toolbars or place them in the CENTER of the maximized main window, but this would look bad either.

    Thanks
    Uwe

  7. Rick Brewster says:

    Joey — of course I’ll consider it. That has its own design issues though, w.r.t. modality.

    Uwe — Like I said, I’m thinking about where I want to take the UI … the “floaters” are increasingly an anachronism, imo.

  8. Jirka Š. says:

    I vote for ribbon and docking panels too. It’s not essential but it would improve the productivity of work and also (IMHO) it would observe currents trends.

  9. Zink says:

    Ribbonization has been he wrongest decision in softwaremaking ever.
    It splits and polarizes the users in those who can handle them (or even like them) and the others who think and work in another kind of way and therefore are highly confused of them.

    Sadly, I’m one of the last group. I used MS Office 2007 for a year and still can’t manage the simplest task I have been doing for years.
    I switched to OpenOffice for that reason (what a relief!) and, guess what, they also plan to introduce ribbons. 😦

    If this was optional I had no problem with it but I need menus and submenus and commands otherwise I’m lost in an application.

  10. John says:

    The alternative to Uwe’s suggestion is the ablity to pan past the edge of the image (if you know what I mean). I’ve seen that issue before, but I think being able to pan further is a better solution that docking the toolbars.

    Rick, perhaps you could appeal to the community for icons, perhaps even have a mini-icon design contest. I’m sure there’s people on the forums who could churn out some very impressive icon sets.

    But the new look is quite nice – not sure about the wand icon since it’s hard to tell what it is at first, but otherwise very nice.

  11. Timothy Fries says:

    To be honest, those new icons don’t really look that good. They’re visually inconsistent with the rest of Windows, and they’re visually inconsistent with each other: the ‘New’ icon has a solid black border while the other icons have lighter, gray borders; the colors are fairly muted amongst all the icons except for Undo/Redo.

  12. Rick Brewster says:

    Alberto – Those are actually pretty good. Thanks!

    Zink – I disagree. No changes will be “optional” — I’m not writing and supporting 2 UIs, that’d be suicide.

    John – I like handling the icons myself. Also, soliciting from the community could have me end up with icons that the contributors didn’t have permission to modify.

    Timothy – 1) I disagree, 2) it’s still a work in progress.

  13. Rick Brewster says:

    Timothy – Also, to clarify, I disagree with “[they] don’t really look that good.” The consistency is something I’m still working on — I noticed the outline contrast differences too, and actually had to do extra work on the Open icon to make it appear less faint. I had to duplicate a scanline of the Save icon so that it would line up vertically with the icons next to it. And I’m not sure I really like the undo/redo icons, but I don’t have many choices on that front either, unfortunately. In the end, perfection is not the goal. Good icons yes. Perfect icons? No. I’m not spending that kind of money 🙂

  14. Mark says:

    Will you make the current icons available as “loose icons”?

    I know that this is definately not the place to talk about taste, but I always disliked those Linux-style icons. They are a bit – how should I put this – childish and also over-colored. In my opinion they also don’t fit in a windows environment.
    But first of all, aren’t those the icons GIMP uses? Maybe it would be a wrong decission to use the icons depictured – people will start nag you “if you use GIMP’s icons, you also can take it’s smudge tool” and so on.

    I understand that you want a visual refresh. But actually, the current icons have fit in Vista’s theme for years. I always liked their serious, eye-pleasant look. And 7 does not differ so much from Vista – in terms of the look and design – that “the world has moved on”. I do not know you for quickly jumping on new ideas just because people regard them as cool at the moment – take the Ribbon for example.

    Please do not take this post as an offense to your work – I’m aware that you have spent time on looking for those icons. Yet I have to ask you for either providing the current icons or to point me to the download location for them – are they available as a part of Visual Studio?

    Thanks in advance and also for your continuous work on Paint.NET.
    And as a very sidenote, yes, that photograph is good.

  15. Rick Brewster says:

    Mark – You can get those icons right now by extracting the PNG’s from PaintDotNet.Resources.dll. And yes many icons are available as part of Visual Studio in the Common7 folder, iirc.

    Look at the icons that Alberto linked to, http://pinvoke.com . I’m actually using those now, for the most part. They’re quite good, although the “Cut” (scissors) icon is bleh, so I won’t be using that. Other than that I think they fit Windows better.

  16. Dan Brown says:

    I know i keep going on about this, but can we PLEASE have the vista/7 silver menu bars? THAT would be good for consistantcy. PDN is currently the only program i have with Xp styled bage menu bars.

  17. Dan Brown says:

    Cheers for looking into it rick, will definately enhance the look of the program, and its integration with windows, which is what your trying to achieve here.

    And i hope you drop XP soon, people need to move on from 8 year old tech, and stop holding the rest of us up. You wouldnt be the first, MicroSoft have already done it with Windows Live Movie Maker.

    😀

    Cheers,
    danny.

  18. Andrew says:

    You got a point Rick, I don’t wanna install windows 7 on this comp, I’ll get a new comp by 2012! I mean i got a laptop with vista on it. Also Ribbon, I mean Ribbon is ok, but with PDN, there should be like an option. I mean MS office 2007 (can’t w8 for 2010!!!), and some other MS programs Ribbon is cool, dunno about PDN. oh, and i’ll deff get a windows 7 comp with the Xp mode, good ideas for MS to put that.

  19. Andrew says:

    oh, and if PDN would have the ribbon interface where would the plugins be at?, just wondering. oh and i hate double posting, so Yeah sorry about that.

  20. Dan Brown says:

    Sorry Rick, youve lost me, i meant the silver menu BARS. You know… file edit… etc That bit. Aero silver style.

    you can see here that windows vista/7 uses a more 3D silver style menu bar, whereas XP uses a flat bage style. Paint.NET for some reason still uses the flat bage XP style in windows 7/Vista. Can you update it to silver?

  21. Zwicky says:

    I like the implementation of the pinvoke icons already (I couldn’t help but notice in the screen-shot you provided Dan Brown with)!

  22. James says:

    I develop .NET apps, and I have no idea how you restyled the MenuStrip component to look so nice. I custom draw listboxes. Are you drawing that effect yourself using GDI, using some new-fangled Vista API, or using some custom component?

    I would really like to do it myself.

  23. Agnain says:

    Hi James.
    To custom draw menus, you have to create a class which implements ToolStripRenderer abstract class.
    Then you override the drawing methods of this class to draw what you want.
    Finally, you set the static ToolStripManager.Renderer property to a new instance of your class at the starting of your application.

    Of course you can google ToolStripRenderer to get more infos about it.

  24. Igor Brejc says:

    Rick,

    You mention moving to Direct2D. Does this mean that you’ll be replacing all of GDI+ code with Direct2D or just some parts?

    I’m asking because I’m working on an open-source mapping application which heavily uses GDI+ and I’m always looking for better (/faster) alternatives for rendering.

  25. Rick Brewster says:

    Igor, I probably will not be replacing GDI+. It works just fine and is plenty fast for “UI graphics” … antialiased lines, rectangles, curves, gradients, bitmaps. I plan to *investigate* the wholesale replacement of GDI+ with D2D, but there’s so much GDI+ code in Paint.NET that’s already working fine that it’s probably just not worth it. If anything though I’d like the main window and canvas area to use Direct2D, but it depends on many things.

  26. Igor Brejc says:

    Rick, thanks for the response. BTW: am I right to assume that in order to use D2D and DirectWrite, you need to work in unmanaged C++ code? No C# then?

  27. Rick Brewster says:

    Igor, D2D doesn’t have a managed interface, so yes it does require you to write your own. I’ve already done this for DirectWrite — it’s really just a matter of jumping into my PaintDotNet.SystemLayer.Native.[x86 / x64].dll and adding the necessary code. That DLL is written in C++/CLI, which means that it can contain native code and just #include , and that it can also expose classes for use by C# or any other .NET language.

  28. Cellus says:

    Hmm…rick rick. we spoke on the forum, when i read the new feature that would be on 4.0. I made a new topic and asked about the ribbon. You said there wouldn’t be one.

    Now you might put the ribbon in Paint.net in a few years? I love the ribbon, But now i thought about the Ribbon UI shouldn’t be for PDN, it wouldn’t be a bad idea i just saying that the “effects tab” would require you to scroll across or would take up allot of space, people have allot of plugins. thats the only problem.

    when we talked about this it was months ago in febuary but now most of everyone agrees with the Ribbon and people have adapted to it now. But 4.0 won’t be until 2 or 1 year from now right. we will just see what you’ll have for us. 🙂

  29. Rick Brewster says:

    The increased use of the ribbon in Win7’s Paint and WordPad, along with its improved used in Office 2010, have provided more examples of how to implement it correctly. I didn’t want to jump into the ribbon without the right amount of preparation, but it’s getting there.

  30. Thomas says:

    Hey everybody, Rick!
    I just had an Idea for the ‘Floaters’.
    Some XP-Installations ago, I had a tool for Windows called ‘Magic Formation’ http://magic-formation.softonic.de/
    On Mousewheel-click, Bubbles appear around the Coursor. One Bubble for each Programm, you set into the Tool before!
    You already know what I mean, right?
    On Mousewheel-click, 4 Icons appear, one for each Floater.
    That would be fast and easy to use!

    I’m don’t know much about coding, don’t know if that is possible!
    But it would be great, don’t you think?

    I hope you can understand my german english. 😉

  31. Thomas says:

    You could always have the right Floater at the right Place. Just where you need it!
    And they wouldn’t be in the way, when you zoom into your Picture.

    Awful?? Come on!

Comments are closed.