Thanks for the feedback. I guess some of these proposals are too different from the underlying C API for now. But here are more ideas:
Often people will already be tracking positions or sizes in a wx[Point|Size] or in a 2 element sequence and so the new methods save them the step of unpacking their data just to have it pakced back in a wxPoint or wxSize by the wx code. If you don't like using the packed data then the old methods are still available with the new names.
I think only more experienced users would be more likely to use wxPoints and wxSizes, so it would be easier for them to use a non-default name for the methods, like DrawRectangle2(wxpoint, wxsize). For novices it is simpler to just call DrawRectangle(x,y,w,h).
2.5 gets rid of ID numbers, why not wxPoints and macros (like EVT_SIZE) too?
They are not macros in Python, never have been.
The only reason we have unfriendly names like EVT_... is because those are the names of the C macros used in wxWindows. Why not let python users just type "size" (as a string or a constant, either way you decide).
self.Bind("size", self.OnSize) # window event
I really dislike toolkits that use strings for binding events, it's too
String or constant, either way. What I'm talking about is names that are simpler to use and remember than the macros.
file_exit.Bind(self.OnFileExit) # default menu event
What is file_exit? A wx.MenuItem? If so it won't work because you don't bind handlers to the menu item or even to the menu (although that may change) but to the frame the menubar is attached to. That is where
This is a proposal, not how it works now. Right now, you have to pass an ID number for the menu to the window. You could have the wx.MenuItem class autogenerate the ID, simplify menu.append, and link the events to the proper window handler when setmenubar is called, or let users pass the window to the wx.MenuBar constructor.
menu = wx.MenuBar() # or wx.MenuBar(self) & setmenubar unnecessary
file = wx.Menu()
file.AppendItem("Exit", self.OnFileExit)
menu.Append(filemenu)
self.SetMenuBar(menu) #connect event handlers
or the longer way
fileexit = wx.MenuItem(file, "Exit")
fileexit.Bind(self.OnFileExit)
file.AppendItem(fileexit) #this seems redundant, we already specified
#the parent menu in fileexit's constructor