Hi gang,
if you don’t mind, I would like to present my latest creature: it is called Symphony, and it will be used in our work to do pre and post-processing of our simulations. Here is a screenshot of Symphony using Luna blue theme (comments below) :
http://xoomer.alice.it/infinity77/Symphony_lunablue.png
And another screenshot that has the newly born family of FlatMenu and FlatMenuBar (thanks to Eran, as always), using Luna metallic theme:
http://xoomer.alice.it/infinity77/Symphony_metallic_FlatMenu.png
Sorry for the big PNGs (400 Kb), but I was unable to reduce them with the tools I have at home.
As for the comments:
-
Astonishingly enough, PyAUI works again with wxPython 2.7, so I was able to tweak it and to use uxtheme.dll to paint the active/inactive panes using Windows XP native themes (notice the colour of active/inactive panes and also the small close button). I have done the same with ButtonPanel
-
FlatMenu and FlatMenuBar are almost finished, but the nice shadows behind the menus that Eran was able to accomplish in C++ using uxtheme.dll still baffle me. It seems that in wxWidgets it is possible to do this:
class ShadowPopupWindow(wx.Window):
def init(self):
parent = wx.GetApp().GetTopWindow()
if "__WXMSW__" in wx.Platform:
style = wx.BORDER_NONE
wx.WANTS_CHARS | wx.POPUP_WINDOW
# So NOW it is a PopupWindow, not a wx.Window
pre = wx.PreWindow()
pre.Create(parent, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, style, “flat_menu”)
self.CreateMSW() # Creates the window using win32 functions
And then:
class FlatMenuBase(ShadowPopupWindow):
def __init__(self):
ShadowPopupWindow.__init__(self)
# So it is a wx.Window right now, because ShadowPopupWindow inherits from wx.Window
if "__WXMSW__" in wx.Platform:
parent = wx.GetApp().GetTopWindow()
self.PostCreate(self.pre)
# Uh??? How can I create a wx.Window if I am a subclass of wx.PopupWindow??
wx.PopupWindow.Create(self, parent, wx.BORDER_NONE)
And I havent found a way to do that in wxPython, so I still don’t have shadows behind menus. But I think it is nice enough. FlatMenu and FlatMenuBar provide XP style and Office 2007 style menus, and:
A drop down arrow button to the right of the menu, it always contains the “Customize” option, which will popup an options dialog, the dialog functionality is not completed, but it will have:
- Ability to add/remove menus (done)
- Select different colour schems for the menu bar
- Control various options, such as: colour for highlight menu item, draw border around menu (classic look only), display decorations for popup menus (menus which are not related to menu bar)
- Ability to change accelerators for menu items (maybe after first release)
If the menu bar contains many menus and the frame size is too small to show all the menus, the last menus are hidden. Hidden menus are shown in the ‘more’ button, as you can see from Eran screenshots:
http://wxforum.shadonet.com/viewtopic.php?t=10497&start=15
I hope you liked Symphony
Enjoy the screenshot… wxPython rules!
Andrea.